id = "vsce" name = "vsce" homepage = "https://github.com/microsoft/vscode-vsce" description = "VS Code Extension Manager" icon = "theSVG:visual-studio-code" executables = ["vsce"] [dotfiles] # vsce has no user-level configuration: everything about an extension comes from # its package.json and the command line. The one file it writes to the home # directory is the publisher token store below. paths = [] exclude = [] # @vscode/vsce 3.7.1, out/store.js: `FileStore.DefaultPath = path.join(homedir(), # '.vsce')` — a *file*, not a directory: FileStore.open() reads it with # fs.promises.readFile and save() writes JSON.stringify({ publishers }) back with # mode 0600. Every entry is { name, pat }, a publisher and its Azure DevOps # Personal Access Token, so the file is a credential end to end. # # It is the store vsce uses when VSCE_STORE=file is set, and the fallback it # falls back to whenever the OS credential manager cannot be opened — # openDefaultStore() logs "Failed to open credential store. Falling back to # storing secrets clear-text in: ". The README documents VSCE_STORE=file # as the escape hatch on Linux without libsecret. secret = ["~/.vsce"] [commands] format = 1 label = "vsce" description = "VS Code extension manager. Forms cover package and publish; the access token is deliberately not offered (use VSCE_PAT)." quality = "ai-draft" base = "fig:vsce" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/vsce.ts" license = "MIT" [[commands.subcommand]] path = ["package"] label = "Package extension" description = "Build a .vsix file." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/vsce.ts" license = "MIT" [[commands.subcommand.field]] id = "out" label = "Output .vsix" type = "path" option = ["-o", "--out"] path = { kind = "file", role = "output" } sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Target platform" type = "string" option = ["-t", "--target"] multiple = true suggestions = [{ value = "win32-x64", label = "win32-x64" }, { value = "win32-arm64", label = "win32-arm64" }, { value = "linux-x64", label = "linux-x64" }, { value = "linux-arm64", label = "linux-arm64" }, { value = "darwin-x64", label = "darwin-x64" }, { value = "darwin-arm64", label = "darwin-arm64" }] sources = ["fig"] [[commands.subcommand.field]] id = "pre_release" label = "Pre-release" type = "boolean" option = ["--pre-release"] sources = ["fig"] [[commands.subcommand.field]] id = "no_deps" label = "Skip dependency detection" type = "boolean" option = ["--no-dependencies"] sources = ["fig"] [[commands.subcommand.field]] id = "yarn" label = "Use yarn" type = "boolean" option = ["--yarn"] sources = ["fig"] [[commands.subcommand.field]] id = "no_yarn" label = "Use npm" type = "boolean" option = ["--no-yarn"] sources = ["fig"] [[commands.subcommand.task]] id = "package" label = "Package" fields = ["out", "target"] required = [] [[commands.subcommand.task]] id = "prerelease" label = "Pre-release package" set = { pre_release = [true] } fields = ["out", "pre_release"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["out", "target", "pre_release"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["yarn", "no_yarn", "no_deps"] [[commands.subcommand]] path = ["publish"] label = "Publish extension" description = "Publish to the Marketplace. Uses VSCE_PAT for authentication." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/vsce.ts" license = "MIT" [[commands.subcommand.field]] id = "package_path" label = "Publish .vsix" type = "path" option = ["-i", "--packagePath"] multiple = true path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Target platform" type = "string" option = ["-t", "--target"] multiple = true suggestions = [{ value = "win32-x64", label = "win32-x64" }, { value = "win32-arm64", label = "win32-arm64" }, { value = "linux-x64", label = "linux-x64" }, { value = "linux-arm64", label = "linux-arm64" }, { value = "darwin-x64", label = "darwin-x64" }, { value = "darwin-arm64", label = "darwin-arm64" }] sources = ["fig"] [[commands.subcommand.field]] id = "pre_release" label = "Pre-release" type = "boolean" option = ["--pre-release"] sources = ["fig"] [[commands.subcommand.field]] id = "no_deps" label = "Skip dependency detection" type = "boolean" option = ["--no-dependencies"] sources = ["fig"] [[commands.subcommand.task]] id = "publish-vsix" label = "Publish a .vsix" fields = ["package_path"] required = ["package_path"] [[commands.subcommand.task]] id = "publish" label = "Publish project" fields = ["target", "pre_release"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["package_path", "target", "pre_release"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["no_deps"]