varlock 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit.command-PXY2ZGU2.js +16 -0
- package/dist/{audit.command-LLD5UIAW.js.map → audit.command-PXY2ZGU2.js.map} +1 -1
- package/dist/{chunk-HMWAOBZR.js → chunk-2GZ4APXU.js} +7 -7
- package/dist/{chunk-HMWAOBZR.js.map → chunk-2GZ4APXU.js.map} +1 -1
- package/dist/{chunk-XXSPHSF7.js → chunk-66VKZYD7.js} +6 -6
- package/dist/{chunk-XXSPHSF7.js.map → chunk-66VKZYD7.js.map} +1 -1
- package/dist/{chunk-MPHVA4WC.js → chunk-7VERU3F7.js} +3 -3
- package/dist/{chunk-MPHVA4WC.js.map → chunk-7VERU3F7.js.map} +1 -1
- package/dist/{chunk-RQZZDYWL.js → chunk-A5L3SRQS.js} +7 -7
- package/dist/{chunk-RQZZDYWL.js.map → chunk-A5L3SRQS.js.map} +1 -1
- package/dist/{chunk-WTBUNHUJ.js → chunk-DQTUCLA7.js} +5 -5
- package/dist/{chunk-WTBUNHUJ.js.map → chunk-DQTUCLA7.js.map} +1 -1
- package/dist/{chunk-NW4KR67N.js → chunk-EGFAEO7L.js} +7 -7
- package/dist/{chunk-NW4KR67N.js.map → chunk-EGFAEO7L.js.map} +1 -1
- package/dist/{chunk-WJLMLKSG.js → chunk-F64DA7XN.js} +6 -6
- package/dist/{chunk-WJLMLKSG.js.map → chunk-F64DA7XN.js.map} +1 -1
- package/dist/{chunk-4A54P4EM.js → chunk-MGUGRIW2.js} +1185 -1152
- package/dist/chunk-MGUGRIW2.js.map +1 -0
- package/dist/{chunk-F6ZYIWAR.js → chunk-N7FJTNE5.js} +11 -5
- package/dist/chunk-N7FJTNE5.js.map +1 -0
- package/dist/{chunk-XUY3HAO2.js → chunk-NHNQJTPB.js} +4 -4
- package/dist/{chunk-XUY3HAO2.js.map → chunk-NHNQJTPB.js.map} +1 -1
- package/dist/{chunk-INGOLNLE.js → chunk-NZTQKZND.js} +4 -4
- package/dist/{chunk-INGOLNLE.js.map → chunk-NZTQKZND.js.map} +1 -1
- package/dist/{chunk-YWTIKDGU.js → chunk-P4HNABAM.js} +98 -20
- package/dist/chunk-P4HNABAM.js.map +1 -0
- package/dist/{chunk-GKN3UJNE.js → chunk-PBWMMYWL.js} +520 -373
- package/dist/chunk-PBWMMYWL.js.map +1 -0
- package/dist/{chunk-C5LW5EET.js → chunk-Q4I7MXFB.js} +5 -5
- package/dist/{chunk-C5LW5EET.js.map → chunk-Q4I7MXFB.js.map} +1 -1
- package/dist/{chunk-GJ7PTJM4.js → chunk-Q7XUQDLE.js} +3 -3
- package/dist/{chunk-GJ7PTJM4.js.map → chunk-Q7XUQDLE.js.map} +1 -1
- package/dist/{chunk-IO2OGZQU.js → chunk-ROZITJAP.js} +7 -7
- package/dist/{chunk-IO2OGZQU.js.map → chunk-ROZITJAP.js.map} +1 -1
- package/dist/{chunk-CESFJIM4.js → chunk-RTKFINP6.js} +6 -6
- package/dist/{chunk-CESFJIM4.js.map → chunk-RTKFINP6.js.map} +1 -1
- package/dist/{chunk-5DRCCFKV.js → chunk-RWXFFQWH.js} +4 -4
- package/dist/{chunk-5DRCCFKV.js.map → chunk-RWXFFQWH.js.map} +1 -1
- package/dist/{chunk-JOGGSYT2.js → chunk-SX2NUZCL.js} +3 -3
- package/dist/{chunk-JOGGSYT2.js.map → chunk-SX2NUZCL.js.map} +1 -1
- package/dist/{chunk-KI5QLKPU.js → chunk-T3NMDBCU.js} +5 -5
- package/dist/{chunk-KI5QLKPU.js.map → chunk-T3NMDBCU.js.map} +1 -1
- package/dist/{chunk-HH647LSU.js → chunk-YZCCCHDD.js} +6 -6
- package/dist/{chunk-HH647LSU.js.map → chunk-YZCCCHDD.js.map} +1 -1
- package/dist/{chunk-OGGTDFVX.js → chunk-ZCYV47TZ.js} +7 -7
- package/dist/{chunk-OGGTDFVX.js.map → chunk-ZCYV47TZ.js.map} +1 -1
- package/dist/cli/cli-executable.js +1545 -38
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-HMRJLPJY.js +7 -0
- package/dist/{config-item-SQFJ2BJ2.js.map → config-item-HMRJLPJY.js.map} +1 -1
- package/dist/encrypt.command-7M34IUJY.js +14 -0
- package/dist/{encrypt.command-WISNYCTG.js.map → encrypt.command-7M34IUJY.js.map} +1 -1
- package/dist/explain.command-LZJOP4TM.js +15 -0
- package/dist/{explain.command-THO6CRHD.js.map → explain.command-LZJOP4TM.js.map} +1 -1
- package/dist/help.command-VIBYZWCF.js +5 -0
- package/dist/{help.command-7E52XAOO.js.map → help.command-VIBYZWCF.js.map} +1 -1
- package/dist/index.js +6 -6
- package/dist/init.command-FFORG2JL.js +14 -0
- package/dist/{init.command-3EDACW36.js.map → init.command-FFORG2JL.js.map} +1 -1
- package/dist/install-plugin.command-SFNHDKVE.js +13 -0
- package/dist/{install-plugin.command-MXBZTBTE.js.map → install-plugin.command-SFNHDKVE.js.map} +1 -1
- package/dist/load.command-V3C5H6CZ.js +15 -0
- package/dist/{load.command-XRABTXAE.js.map → load.command-V3C5H6CZ.js.map} +1 -1
- package/dist/lock.command-QQV2S6NY.js +7 -0
- package/dist/{lock.command-O5MPBQ2I.js.map → lock.command-QQV2S6NY.js.map} +1 -1
- package/dist/printenv.command-2BIP7FCF.js +15 -0
- package/dist/{printenv.command-DLCI4IPZ.js.map → printenv.command-2BIP7FCF.js.map} +1 -1
- package/dist/reveal.command-7LHNCYS4.js +15 -0
- package/dist/{reveal.command-6BTK3FJZ.js.map → reveal.command-7LHNCYS4.js.map} +1 -1
- package/dist/run.command-TRSRYDOM.js +16 -0
- package/dist/{run.command-5CIHZECD.js.map → run.command-TRSRYDOM.js.map} +1 -1
- package/dist/{scan.command-PW3OOLQY.js → scan.command-NMBEPFUC.js} +9 -9
- package/dist/{scan.command-PW3OOLQY.js.map → scan.command-NMBEPFUC.js.map} +1 -1
- package/dist/telemetry.command-SMIT5ZZB.js +13 -0
- package/dist/{telemetry.command-TZDNG2WR.js.map → telemetry.command-SMIT5ZZB.js.map} +1 -1
- package/dist/typegen.command-C5KWLYPL.js +14 -0
- package/dist/{typegen.command-QD26Q3MP.js.map → typegen.command-C5KWLYPL.js.map} +1 -1
- package/native-bins/darwin/VarlockEnclave.app/Contents/CodeResources +0 -0
- package/native-bins/darwin/VarlockEnclave.app/Contents/MacOS/varlock-local-encrypt +0 -0
- package/native-bins/linux-arm64/varlock-local-encrypt +0 -0
- package/native-bins/linux-x64/varlock-local-encrypt +0 -0
- package/native-bins/win32-x64/varlock-local-encrypt.exe +0 -0
- package/package.json +4 -3
- package/dist/audit.command-LLD5UIAW.js +0 -16
- package/dist/chunk-4A54P4EM.js.map +0 -1
- package/dist/chunk-F6ZYIWAR.js.map +0 -1
- package/dist/chunk-GKN3UJNE.js.map +0 -1
- package/dist/chunk-YWTIKDGU.js.map +0 -1
- package/dist/config-item-SQFJ2BJ2.js +0 -7
- package/dist/encrypt.command-WISNYCTG.js +0 -14
- package/dist/explain.command-THO6CRHD.js +0 -15
- package/dist/help.command-7E52XAOO.js +0 -5
- package/dist/init.command-3EDACW36.js +0 -14
- package/dist/install-plugin.command-MXBZTBTE.js +0 -13
- package/dist/load.command-XRABTXAE.js +0 -15
- package/dist/lock.command-O5MPBQ2I.js +0 -7
- package/dist/printenv.command-DLCI4IPZ.js +0 -15
- package/dist/reveal.command-6BTK3FJZ.js +0 -15
- package/dist/run.command-5CIHZECD.js +0 -16
- package/dist/telemetry.command-TZDNG2WR.js +0 -13
- package/dist/typegen.command-QD26Q3MP.js +0 -14
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/utils-DNS9AIR_.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/constants-WviiKqbt.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/context-CHDIbgwd.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/definition.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-C9P_Gd_f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-eN5xmB3s.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/src-CfO5ab2f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/cli-l4AYjN-O.js"],"names":["cmd","extension","arg","renderer","decorator","plugin","dependencies","pluginId"],"mappings":"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","file":"chunk-4A54P4EM.js","sourcesContent":["//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/utils-CxvkckUD.js\n/**\n* Entry point of utils.\n*\n* Note that this entry point is used by gunshi to import utility functions.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Convert a string to kebab-case.\n*\n* @param str - A string to convert\n* @returns Converted string into kebab-case.\n*/\nfunction kebabnize(str) {\n\treturn str.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase());\n}\n\n//#endregion\n//#region src/utils.ts\n/**\n* Check if the given command is a {@link LazyCommand}.\n*\n* @param cmd - A command to check\n* @returns `true` if the command is a {@link LazyCommand}, otherwise `false\n*/\nfunction isLazyCommand(cmd) {\n\treturn typeof cmd === \"function\" && \"commandName\" in cmd && !!cmd.commandName;\n}\n/**\n* Resolve a lazy command to a {@link Command}.\n*\n* @param cmd - A {@link Commandable} or {@link LazyCommand} to resolve\n* @param name - Optional name of the command, if not provided, it will use the name from the command itself.\n* @param needRunResolving - Whether to run the resolving function of the lazy command.\n* @returns A resolved {@link Command}\n*/\nasync function resolveLazyCommand(cmd, name, needRunResolving = false) {\n\tlet command;\n\tif (isLazyCommand(cmd)) {\n\t\tconst baseCommand = {\n\t\t\tname: cmd.commandName,\n\t\t\tdescription: cmd.description,\n\t\t\targs: cmd.args,\n\t\t\texamples: cmd.examples,\n\t\t\tinternal: cmd.internal,\n\t\t\tentry: cmd.entry,\n\t\t\tsubCommands: cmd.subCommands\n\t\t};\n\t\tif (\"resource\" in cmd && cmd.resource) baseCommand.resource = cmd.resource;\n\t\tcommand = Object.assign(create(), baseCommand);\n\t\tif (needRunResolving) {\n\t\t\tconst loaded = await cmd();\n\t\t\tif (typeof loaded === \"function\") command.run = loaded;\n\t\t\telse if (typeof loaded === \"object\") {\n\t\t\t\tif (loaded.run == null) throw new TypeError(`'run' is required in command: ${cmd.name || name}`);\n\t\t\t\tcommand.run = loaded.run;\n\t\t\t\tcommand.name = loaded.name;\n\t\t\t\tcommand.description = loaded.description;\n\t\t\t\tcommand.args = loaded.args;\n\t\t\t\tcommand.examples = loaded.examples;\n\t\t\t\tcommand.internal = loaded.internal;\n\t\t\t\tcommand.entry = loaded.entry;\n\t\t\t\tcommand.subCommands = loaded.subCommands || cmd.subCommands;\n\t\t\t\tif (\"resource\" in loaded && loaded.resource) command.resource = loaded.resource;\n\t\t\t} else throw new TypeError(`Cannot resolve command: ${cmd.name || name}`);\n\t\t}\n\t} else command = Object.assign(create(), cmd);\n\tif (command.name == null && name) command.name = name;\n\treturn deepFreeze(command);\n}\n/**\n* Create an object with the specified prototype. A shorthand for `Object.create`.\n*\n* @param obj - An object to use as the prototype for the new object. If `null`, it will create an object with no prototype.\n* @returns A new object with the specified prototype\n*/\nfunction create(obj = null) {\n\treturn Object.create(obj);\n}\n/**\n* Log a message to the console.\n*\n* @param args - Arguments to log\n*/\nfunction log(...args) {\n\tconsole.log(...args);\n}\n/**\n* Get the sub-commands of a command as a normalized Map.\n*\n* @param cmd - A command or lazy command\n* @returns A Map of sub-commands, or undefined if the command has no sub-commands.\n*/\nfunction getCommandSubCommands(cmd) {\n\tconst subCommands = isLazyCommand(cmd) ? cmd.subCommands : typeof cmd === \"object\" ? cmd.subCommands : void 0;\n\tif (!subCommands) return;\n\tif (subCommands instanceof Map) return subCommands.size > 0 ? subCommands : void 0;\n\tif (typeof subCommands === \"object\") {\n\t\tconst entries = Object.entries(subCommands);\n\t\tif (entries.length === 0) return;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const [name, cmd] of entries) map.set(name, cmd);\n\t\treturn map;\n\t}\n}\n/**\n* Deep freeze an object, making it immutable.\n*\n* @param obj - The object to freeze\n* @param ignores - Properties to ignore during freezing\n* @returns A frozen object\n*/\nfunction deepFreeze(obj, ignores = []) {\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tfor (const key of Object.keys(obj)) {\n\t\tconst value = obj[key];\n\t\tif (ignores.includes(key)) continue;\n\t\tif (typeof value === \"object\" && value !== null) deepFreeze(value, ignores);\n\t}\n\treturn Object.freeze(obj);\n}\n\n//#endregion\nexport { log as a, isLazyCommand as i, deepFreeze as n, resolveLazyCommand as o, getCommandSubCommands as r, kebabnize as s, create as t };","//#region src/constants.ts\nconst ANONYMOUS_COMMAND_NAME = \"(anonymous)\";\n/**\n* A no-operation function.\n*/\nconst NOOP = () => {};\nconst CLI_OPTIONS_DEFAULT = {\n\tname: void 0,\n\tdescription: void 0,\n\tversion: void 0,\n\tcwd: void 0,\n\tusageSilent: false,\n\tsubCommands: void 0,\n\tleftMargin: 2,\n\tmiddleMargin: 10,\n\tusageOptionType: false,\n\tusageOptionValue: true,\n\trenderHeader: void 0,\n\trenderUsage: void 0,\n\trenderValidationErrors: void 0,\n\tplugins: void 0,\n\tfallbackToEntry: false\n};\n\n//#endregion\nexport { CLI_OPTIONS_DEFAULT as n, NOOP as r, ANONYMOUS_COMMAND_NAME as t };","import { a as log, i as isLazyCommand, n as deepFreeze, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\n\n//#region src/context.ts\n/**\n* The entry for gunshi context.\n* This module is exported for the purpose of testing the command.\n*\n* @example\n* ```js\n* import { createCommandContext } from 'gunshi/context'\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a command context.\n*\n* @param param - A {@link CommandContextParams | parameters} to create a command context.\n* @returns A {@link CommandContext | command context}, which is readonly.\n*/\nasync function createCommandContext({ args = {}, explicit = {}, values = {}, positionals = [], rest = [], argv = [], tokens = [], command = {}, extensions = {}, cliOptions = {}, callMode = \"entry\", commandPath = [], omitted = false, validationError = void 0 }) {\n\t/**\n\t* normailize the options schema and values, to avoid prototype pollution\n\t*/\n\tconst _args = Object.entries(args).reduce((acc, [key, value]) => {\n\t\tacc[key] = Object.assign(create(), value);\n\t\treturn acc;\n\t}, create());\n\t/**\n\t* setup the environment\n\t*/\n\tconst env = Object.assign(create(), CLI_OPTIONS_DEFAULT, cliOptions);\n\t/**\n\t* apply Command definition's rendering option with highest priority\n\t*/\n\tif (command.rendering) {\n\t\tconst { header, usage, validationErrors } = command.rendering;\n\t\tif (header !== void 0) env.renderHeader = header;\n\t\tif (usage !== void 0) env.renderUsage = usage;\n\t\tif (validationErrors !== void 0) env.renderValidationErrors = validationErrors;\n\t}\n\t/**\n\t* create the command context\n\t*/\n\tconst core = Object.assign(create(), {\n\t\tname: getCommandName(command),\n\t\tdescription: command.description,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tenv,\n\t\targs: _args,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\t_: argv,\n\t\ttokens,\n\t\ttoKebab: command.toKebab,\n\t\tlog: cliOptions.usageSilent ? NOOP : log,\n\t\tvalidationError\n\t});\n\t/**\n\t* extend the command context with extensions\n\t*/\n\tif (Object.keys(extensions).length > 0) {\n\t\tconst ext = create(null);\n\t\tObject.defineProperty(core, \"extensions\", {\n\t\t\tvalue: ext,\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\tfor (const [key, extension] of Object.entries(extensions)) {\n\t\t\text[key] = await extension.factory(core, command);\n\t\t\tif (extension.onFactory) await extension.onFactory(core, command);\n\t\t}\n\t}\n\treturn deepFreeze(core, [\"extensions\"]);\n}\nfunction getCommandName(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.commandName || cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse if (typeof cmd === \"object\") return cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse return ANONYMOUS_COMMAND_NAME;\n}\n\n//#endregion\nexport { createCommandContext as t };","import { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region src/definition.ts\n/**\n* Define a {@link Command | command}.\n*\n* @typeParam G - A {@link GunshiParamsConstraint} type\n*\n* @param definition - A {@link Command | command} definition\n* @returns A defined {@link Command | command}\n*/\nfunction define(definition) {\n\treturn definition;\n}\n/**\n* Define a {@link Command | command} with types\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* // Define a command with specific extensions type\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = defineWithTypes<{ extensions: MyExtensions }>()({\n* name: 'greet',\n* args: {\n* name: { type: 'string' }\n* },\n* run: ctx => {\n* // ctx.values is inferred as { name?: string }\n* // ctx.extensions is MyExtensions\n* }\n* })\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a command definition via {@link define}\n*\n* @since v0.27.0\n*/\nfunction defineWithTypes() {\n\treturn (definition) => {\n\t\treturn define(definition);\n\t};\n}\n/**\n* Define a {@link LazyCommand | lazy command} with or without definition.\n*\n* @param loader - A {@link CommandLoader | command loader} function that returns a command definition\n* @param definition - An optional {@link Command | command} definition\n* @returns A {@link LazyCommand | lazy command} that can be executed later\n*/\nfunction lazy(loader, definition) {\n\tconst lazyCommand = loader;\n\tif (definition != null) {\n\t\tlazyCommand.commandName = definition.name;\n\t\tlazyCommand.description = definition.description;\n\t\tlazyCommand.args = definition.args;\n\t\tlazyCommand.examples = definition.examples;\n\t\tlazyCommand.internal = definition.internal;\n\t\tlazyCommand.entry = definition.entry;\n\t\tlazyCommand.toKebab = definition.toKebab;\n\t\tif (definition.subCommands) lazyCommand.subCommands = definition.subCommands;\n\t\tif (\"resource\" in definition) lazyCommand.resource = definition.resource;\n\t}\n\treturn lazyCommand;\n}\n/**\n* Define a {@link LazyCommand | lazy command} with specific type parameters.\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = lazyWithTypes<{ extensions: MyExtensions }>()(\n* () => {\n* return ctx => {\n* // Command runner implementation\n* ctx.extensions.logger?.log('Command executed')\n* },\n* {\n* name: 'lazy-command',\n* args: {\n* opt: {\n* type: 'string',\n* description: 'An optional string argument',\n* required: false,\n* },\n* },\n* )\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a lazy command definition via {@link lazy}\n*\n* @since v0.27.0\n*/\nfunction lazyWithTypes() {\n\treturn (loader, definition) => {\n\t\treturn lazy(loader, definition);\n\t};\n}\n\n//#endregion\nexport { createCommandContext, define, defineWithTypes, lazy, lazyWithTypes };","import { i as isLazyCommand, o as resolveLazyCommand, r as getCommandSubCommands, s as kebabnize, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/parser.js\nconst HYPHEN_CHAR = \"-\";\nconst HYPHEN_CODE = HYPHEN_CHAR.codePointAt(0);\nconst EQUAL_CHAR = \"=\";\nconst EQUAL_CODE = EQUAL_CHAR.codePointAt(0);\nconst TERMINATOR = \"--\";\nconst SHORT_OPTION_PREFIX = HYPHEN_CHAR;\nconst LONG_OPTION_PREFIX = \"--\";\n/**\n* Parse command line arguments.\n*\n* @param args - command line arguments\n* @param options - parse options, about details see {@link ParserOptions}\n* @returns Argument tokens.\n*\n* @example\n* ```js\n* import { parseArgs } from 'args-tokens' // for Node.js and Bun\n* // import { parseArgs } from 'jsr:@kazupon/args-tokens' // for Deno\n*\n* const tokens = parseArgs(['--foo', 'bar', '-x', '--bar=baz'])\n* // do something with using tokens\n* // ...\n* console.log('tokens:', tokens)\n* ```\n*/\nfunction parseArgs(args, options = {}) {\n\tconst { allowCompatible = false } = options;\n\tconst tokens = [];\n\tconst remainings = [...args];\n\tlet index = -1;\n\tlet groupCount = 0;\n\tlet hasShortValueSeparator = false;\n\twhile (remainings.length > 0) {\n\t\tconst arg = remainings.shift();\n\t\tif (arg == void 0) break;\n\t\tconst nextArg = remainings[0];\n\t\tif (groupCount > 0) groupCount--;\n\t\telse index++;\n\t\tif (arg === TERMINATOR) {\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option-terminator\",\n\t\t\t\tindex\n\t\t\t});\n\t\t\tconst mapped = remainings.map((arg) => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"positional\",\n\t\t\t\t\tindex: ++index,\n\t\t\t\t\tvalue: arg\n\t\t\t\t};\n\t\t\t});\n\t\t\ttokens.push(...mapped);\n\t\t\tbreak;\n\t\t}\n\t\tif (isShortOption(arg)) {\n\t\t\tconst shortOption = arg.charAt(1);\n\t\t\tlet value;\n\t\t\tlet inlineValue;\n\t\t\tif (groupCount) {\n\t\t\t\ttokens.push({\n\t\t\t\t\tkind: \"option\",\n\t\t\t\t\tname: shortOption,\n\t\t\t\t\trawName: arg,\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue,\n\t\t\t\t\tinlineValue\n\t\t\t\t});\n\t\t\t\tif (groupCount === 1 && hasOptionValue(nextArg)) {\n\t\t\t\t\tvalue = remainings.shift();\n\t\t\t\t\tif (hasShortValueSeparator) {\n\t\t\t\t\t\tinlineValue = true;\n\t\t\t\t\t\thasShortValueSeparator = false;\n\t\t\t\t\t}\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\tkind: \"option\",\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tinlineValue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else tokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: shortOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue\n\t\t\t});\n\t\t\tif (value != null) ++index;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isShortOptionGroup(arg)) {\n\t\t\tconst expanded = [];\n\t\t\tlet shortValue = \"\";\n\t\t\tfor (let i = 1; i < arg.length; i++) {\n\t\t\t\tconst shortableOption = arg.charAt(i);\n\t\t\t\tif (hasShortValueSeparator) shortValue += shortableOption;\n\t\t\t\telse if (!allowCompatible && shortableOption.codePointAt(0) === EQUAL_CODE) hasShortValueSeparator = true;\n\t\t\t\telse expanded.push(`${SHORT_OPTION_PREFIX}${shortableOption}`);\n\t\t\t}\n\t\t\tif (shortValue) expanded.push(shortValue);\n\t\t\tremainings.unshift(...expanded);\n\t\t\tgroupCount = expanded.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOption(arg)) {\n\t\t\tconst longOption = arg.slice(2);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue: void 0,\n\t\t\t\tinlineValue: void 0\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOptionAndValue(arg)) {\n\t\t\tconst equalIndex = arg.indexOf(EQUAL_CHAR);\n\t\t\tconst longOption = arg.slice(2, equalIndex);\n\t\t\tconst value = arg.slice(equalIndex + 1);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: `${LONG_OPTION_PREFIX}${longOption}`,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue: true\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\ttokens.push({\n\t\t\tkind: \"positional\",\n\t\t\tindex,\n\t\t\tvalue: arg\n\t\t});\n\t}\n\treturn tokens;\n}\n/**\n* Check if `arg` is a short option (e.g. `-f`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option.\n*/\nfunction isShortOption(arg) {\n\treturn arg.length === 2 && arg.codePointAt(0) === HYPHEN_CODE && arg.codePointAt(1) !== HYPHEN_CODE;\n}\n/**\n* Check if `arg` is a short option group (e.g. `-abc`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option group.\n*/\nfunction isShortOptionGroup(arg) {\n\tif (arg.length <= 2) return false;\n\tif (arg.codePointAt(0) !== HYPHEN_CODE) return false;\n\tif (arg.codePointAt(1) === HYPHEN_CODE) return false;\n\treturn true;\n}\n/**\n* Check if `arg` is a long option (e.g. `--foo`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOption(arg) {\n\treturn hasLongOptionPrefix(arg) && !arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option with value (e.g. `--foo=bar`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOptionAndValue(arg) {\n\treturn hasLongOptionPrefix(arg) && arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option prefix (e.g. `--`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option prefix.\n*/\nfunction hasLongOptionPrefix(arg) {\n\treturn arg.length > 2 && ~arg.indexOf(LONG_OPTION_PREFIX);\n}\n/**\n* Check if a `value` is an option value.\n*\n* @param value - A value to check\n* @returns Whether a `value` is an option value.\n*/\nfunction hasOptionValue(value) {\n\treturn !(value == null) && value.codePointAt(0) !== HYPHEN_CODE;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/resolver.js\n/**\n* Entry point of argument options resolver.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst SKIP_POSITIONAL_DEFAULT = -1;\n/**\n* Resolve command line arguments.\n*\n* @typeParam A - {@link Args | Arguments}, which is an object that defines the command line arguments.\n*\n* @param args - An arguments that contains {@link ArgSchema | arguments schema}.\n* @param tokens - An array of {@link ArgToken | tokens}.\n* @param resolveArgs - An arguments that contains {@link ResolveArgs | resolve arguments}.\n* @returns An object that contains the values of the arguments, positional arguments, rest arguments, {@link AggregateError | validation errors}, and explicit provision status.\n*\n* @example\n* ```typescript\n* // passed tokens: --port 3000\n*\n* const { values, explicit } = resolveArgs({\n* port: {\n* type: 'number',\n* default: 8080\n* },\n* host: {\n* type: 'string',\n* default: 'localhost'\n* }\n* }, parsedTokens)\n*\n* values.port // 3000\n* values.host // 'localhost'\n*\n* explicit.port // true (explicitly provided)\n* explicit.host // false (not provided, fallback to default)\n* ```\n*/\nfunction resolveArgs(args, tokens, { shortGrouping = false, skipPositional = SKIP_POSITIONAL_DEFAULT, toKebab = false } = {}) {\n\tconst skipPositionalIndex = typeof skipPositional === \"number\" ? Math.max(skipPositional, SKIP_POSITIONAL_DEFAULT) : SKIP_POSITIONAL_DEFAULT;\n\tconst rest = [];\n\tconst optionTokens = [];\n\tconst positionalTokens = [];\n\tlet currentLongOption;\n\tlet currentShortOption;\n\tconst expandableShortOptions = [];\n\tfunction toShortValue() {\n\t\tif (expandableShortOptions.length === 0) return;\n\t\telse {\n\t\t\tconst value = expandableShortOptions.map((token) => token.name).join(\"\");\n\t\t\texpandableShortOptions.length = 0;\n\t\t\treturn value;\n\t\t}\n\t}\n\tfunction applyLongOptionValue(value = void 0) {\n\t\tif (currentLongOption) {\n\t\t\tcurrentLongOption.value = value;\n\t\t\toptionTokens.push({ ...currentLongOption });\n\t\t\tcurrentLongOption = void 0;\n\t\t}\n\t}\n\tfunction applyShortOptionValue(value = void 0) {\n\t\tif (currentShortOption) {\n\t\t\tcurrentShortOption.value = value || toShortValue();\n\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\tcurrentShortOption = void 0;\n\t\t}\n\t}\n\t/**\n\t* analyze phase to resolve value\n\t* separate tokens into positionals, long and short options, after that resolve values\n\t*/\n\tconst schemas = Object.values(args);\n\tlet terminated = false;\n\tfor (let i = 0; i < tokens.length; i++) {\n\t\tconst token = tokens[i];\n\t\tif (token.kind === \"positional\") {\n\t\t\tif (terminated && token.value) {\n\t\t\t\trest.push(token.value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (currentShortOption) {\n\t\t\t\tif (schemas.find((schema) => schema.short === currentShortOption.name && schema.type === \"boolean\")) positionalTokens.push({ ...token });\n\t\t\t} else if (currentLongOption) {\n\t\t\t\tif (args[currentLongOption.name]?.type === \"boolean\") positionalTokens.push({ ...token });\n\t\t\t} else positionalTokens.push({ ...token });\n\t\t\tapplyLongOptionValue(token.value);\n\t\t\tapplyShortOptionValue(token.value);\n\t\t} else if (token.kind === \"option\") if (token.rawName) {\n\t\t\tif (hasLongOptionPrefix(token.rawName)) {\n\t\t\t\tapplyLongOptionValue();\n\t\t\t\tif (token.inlineValue) optionTokens.push({ ...token });\n\t\t\t\telse currentLongOption = { ...token };\n\t\t\t\tapplyShortOptionValue();\n\t\t\t} else if (isShortOption(token.rawName)) if (currentShortOption) {\n\t\t\t\tif (currentShortOption.index === token.index) if (shortGrouping) {\n\t\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t} else expandableShortOptions.push({ ...token });\n\t\t\t\telse {\n\t\t\t\t\tcurrentShortOption.value = toShortValue();\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t}\n\t\t\t\tapplyLongOptionValue();\n\t\t\t} else {\n\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\tapplyLongOptionValue();\n\t\t\t}\n\t\t} else {\n\t\t\tif (currentShortOption && currentShortOption.index == token.index && token.inlineValue) {\n\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\tcurrentShortOption = void 0;\n\t\t\t}\n\t\t\tapplyLongOptionValue();\n\t\t}\n\t\telse {\n\t\t\tif (token.kind === \"option-terminator\") terminated = true;\n\t\t\tapplyLongOptionValue();\n\t\t\tapplyShortOptionValue();\n\t\t}\n\t}\n\t/**\n\t* check if the last long or short option is not resolved\n\t*/\n\tapplyLongOptionValue();\n\tapplyShortOptionValue();\n\t/**\n\t* resolve values\n\t*/\n\tconst values = Object.create(null);\n\tconst errors = [];\n\tconst explicit = Object.create(null);\n\tconst actualInputNames = /* @__PURE__ */ new Map();\n\tfunction checkTokenName(option, schema, token) {\n\t\treturn token.name === (schema.type === \"boolean\" ? schema.negatable && token.name?.startsWith(\"no-\") ? `no-${option}` : option : option);\n\t}\n\tconst positionalItemCount = tokens.filter((token) => token.kind === \"positional\").length;\n\tfunction getPositionalSkipIndex() {\n\t\treturn Math.min(skipPositionalIndex, positionalItemCount);\n\t}\n\tlet positionalsCount = 0;\n\tfor (const [rawArg, schema] of Object.entries(args)) {\n\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\texplicit[rawArg] = false;\n\t\tif (schema.type === \"positional\") {\n\t\t\tif (skipPositionalIndex > SKIP_POSITIONAL_DEFAULT) while (positionalsCount <= getPositionalSkipIndex()) positionalsCount++;\n\t\t\tif (schema.multiple) {\n\t\t\t\tconst remainingPositionals = positionalTokens.slice(positionalsCount);\n\t\t\t\tif (remainingPositionals.length > 0) {\n\t\t\t\t\tvalues[rawArg] = remainingPositionals.map((p) => p.value);\n\t\t\t\t\tpositionalsCount += remainingPositionals.length;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else if (schema.required) errors.push(createRequireError(arg, schema));\n\t\t\t} else {\n\t\t\t\tconst positional = positionalTokens[positionalsCount];\n\t\t\t\tif (positional != null) {\n\t\t\t\t\tvalues[rawArg] = positional.value;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else errors.push(createRequireError(arg, schema));\n\t\t\t\tpositionalsCount++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (schema.required) {\n\t\t\tif (!optionTokens.find((token) => {\n\t\t\t\treturn schema.short && token.name === schema.short || token.rawName && hasLongOptionPrefix(token.rawName) && token.name === arg;\n\t\t\t})) {\n\t\t\t\terrors.push(createRequireError(arg, schema));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < optionTokens.length; i++) {\n\t\t\tconst token = optionTokens[i];\n\t\t\tif (checkTokenName(arg, schema, token) && token.rawName != void 0 && hasLongOptionPrefix(token.rawName) || schema.short === token.name && token.rawName != void 0 && isShortOption(token.rawName)) {\n\t\t\t\tconst invalid = validateRequire(token, arg, schema);\n\t\t\t\tif (invalid) {\n\t\t\t\t\terrors.push(invalid);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\texplicit[rawArg] = true;\n\t\t\t\tconst actualInputName = isShortOption(token.rawName) ? `-${token.name}` : `--${arg}`;\n\t\t\t\tactualInputNames.set(rawArg, actualInputName);\n\t\t\t\tif (schema.type === \"boolean\") token.value = void 0;\n\t\t\t\tconst [parsedValue, error] = parse(token, arg, schema);\n\t\t\t\tif (error) errors.push(error);\n\t\t\t\telse if (schema.multiple) {\n\t\t\t\t\tvalues[rawArg] ||= [];\n\t\t\t\t\tvalues[rawArg].push(parsedValue);\n\t\t\t\t} else values[rawArg] = parsedValue;\n\t\t\t}\n\t\t}\n\t\tif (values[rawArg] == null && schema.default != null) values[rawArg] = schema.default;\n\t}\n\tconst conflictErrors = checkConflicts(args, explicit, toKebab, actualInputNames);\n\terrors.push(...conflictErrors);\n\treturn {\n\t\tvalues,\n\t\tpositionals: positionalTokens.map((token) => token.value),\n\t\trest,\n\t\terror: errors.length > 0 ? new AggregateError(errors) : void 0,\n\t\texplicit\n\t};\n}\nfunction parse(token, option, schema) {\n\tswitch (schema.type) {\n\t\tcase \"string\": return typeof token.value === \"string\" ? [token.value || schema.default, void 0] : [void 0, createTypeError(option, schema)];\n\t\tcase \"boolean\": return token.value ? [token.value || schema.default, void 0] : [!(schema.negatable && token.name.startsWith(\"no-\")), void 0];\n\t\tcase \"number\":\n\t\t\tif (!isNumeric(token.value)) return [void 0, createTypeError(option, schema)];\n\t\t\treturn token.value ? [+token.value, void 0] : [+(schema.default || \"\"), void 0];\n\t\tcase \"enum\":\n\t\t\tif (schema.choices && !schema.choices.includes(token.value)) return [void 0, new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be chosen from '${schema.type}' [${schema.choices.map((c) => JSON.stringify(c)).join(\", \")}] values`, option, \"type\", schema)];\n\t\t\treturn [token.value || schema.default, void 0];\n\t\tcase \"custom\":\n\t\t\tif (typeof schema.parse !== \"function\") throw new TypeError(`argument '${option}' should have a 'parse' function`);\n\t\t\ttry {\n\t\t\t\treturn [schema.parse(token.value || String(schema.default || \"\")), void 0];\n\t\t\t} catch (error) {\n\t\t\t\treturn [void 0, error];\n\t\t\t}\n\t\tdefault: throw new Error(`Unsupported argument type '${schema.type}' for option '${option}'`);\n\t}\n}\nfunction createRequireError(option, schema) {\n\treturn new ArgResolveError(schema.type === \"positional\" ? `Positional argument '${option}' is required` : `Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}is required`, option, \"required\", schema);\n}\n/**\n* An error that occurs when resolving arguments.\n* This error is thrown when the argument is not valid.\n*/\nvar ArgResolveError = class extends Error {\n\tname;\n\tschema;\n\ttype;\n\t/**\n\t* Create an `ArgResolveError` instance.\n\t*\n\t* @param message - the error message\n\t* @param name - the name of the argument\n\t* @param type - the type of the error, either 'type' or 'required'\n\t* @param schema - the argument schema that caused the error\n\t*/\n\tconstructor(message, name, type, schema) {\n\t\tsuper(message);\n\t\tthis.name = name;\n\t\tthis.type = type;\n\t\tthis.schema = schema;\n\t}\n};\nfunction validateRequire(token, option, schema) {\n\tif (schema.required && schema.type !== \"boolean\" && !token.value) return createRequireError(option, schema);\n}\nfunction isNumeric(str) {\n\treturn str.trim() !== \"\" && !isNaN(str);\n}\nfunction createTypeError(option, schema) {\n\treturn new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be '${schema.type}'`, option, \"type\", schema);\n}\nfunction checkConflicts(args, explicit, toKebab, actualInputNames) {\n\tfor (const rawArg in args) {\n\t\tconst schema = args[rawArg];\n\t\tif (!explicit[rawArg]) continue;\n\t\tif (!schema.conflicts) continue;\n\t\tconst conflicts = Array.isArray(schema.conflicts) ? schema.conflicts : [schema.conflicts];\n\t\tfor (let i = 0; i < conflicts.length; i++) {\n\t\t\tconst conflictingArg = conflicts[i];\n\t\t\tif (!explicit[conflictingArg]) continue;\n\t\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\t\tconst conflictingArgKebab = toKebab || args[conflictingArg]?.toKebab ? kebabnize(conflictingArg) : conflictingArg;\n\t\t\treturn [new ArgResolveError(`Optional argument '${actualInputNames.get(rawArg) || `--${arg}`}' conflicts with '${actualInputNames.get(conflictingArg) || `--${conflictingArgKebab}`}'`, rawArg, \"conflict\", schema)];\n\t\t}\n\t}\n\treturn [];\n}\n\n//#endregion\n//#region src/decorators.ts\nconst EMPTY_RENDERER = () => Promise.resolve(\"\");\n/**\n* Factory function for creating a decorators manager.\n*\n* @returns A new decorators manager instance\n*/\nfunction createDecorators() {\n\t/**\n\t* private states\n\t*/\n\tconst headerDecorators = [];\n\tconst usageDecorators = [];\n\tconst validationDecorators = [];\n\tconst commandDecorators = [];\n\t/**\n\t* helper function for building renderers\n\t*/\n\tfunction buildRenderer(decorators, defaultRenderer) {\n\t\tif (decorators.length === 0) return defaultRenderer;\n\t\tlet renderer = defaultRenderer;\n\t\tfor (const decorator of decorators) {\n\t\t\tconst previousRenderer = renderer;\n\t\t\trenderer = (ctx) => decorator(previousRenderer, ctx);\n\t\t}\n\t\treturn renderer;\n\t}\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\taddHeaderDecorator(decorator) {\n\t\t\theaderDecorators.push(decorator);\n\t\t},\n\t\taddUsageDecorator(decorator) {\n\t\t\tusageDecorators.push(decorator);\n\t\t},\n\t\taddValidationErrorsDecorator(decorator) {\n\t\t\tvalidationDecorators.push(decorator);\n\t\t},\n\t\taddCommandDecorator(decorator) {\n\t\t\tcommandDecorators.push(decorator);\n\t\t},\n\t\tget commandDecorators() {\n\t\t\treturn [...commandDecorators];\n\t\t},\n\t\tgetHeaderRenderer() {\n\t\t\treturn buildRenderer(headerDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetUsageRenderer() {\n\t\t\treturn buildRenderer(usageDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetValidationErrorsRenderer() {\n\t\t\tif (validationDecorators.length === 0) return EMPTY_RENDERER;\n\t\t\tlet renderer = EMPTY_RENDERER;\n\t\t\tfor (const decorator of validationDecorators) {\n\t\t\t\tconst previousRenderer = renderer;\n\t\t\t\trenderer = (ctx, error) => decorator(previousRenderer, ctx, error);\n\t\t\t}\n\t\t\treturn renderer;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/context.ts\n/**\n* Factory function for creating a plugin context.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command parameters.\n*\n* @param decorators - A {@linkcode Decorators} instance.\n* @param initialSubCommands - Initial sub commands map.\n* @returns A new {@linkcode PluginContext} instance.\n*/\nfunction createPluginContext(decorators, initialSubCommands) {\n\t/**\n\t* private states\n\t*/\n\tconst globalOptions = /* @__PURE__ */ new Map();\n\tconst subCommands = new Map(initialSubCommands || []);\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\tget globalOptions() {\n\t\t\treturn new Map(globalOptions);\n\t\t},\n\t\taddGlobalOption(name, schema) {\n\t\t\tif (!name) throw new Error(\"Option name must be a non-empty string\");\n\t\t\tif (globalOptions.has(name)) throw new Error(`Global option '${name}' is already registered`);\n\t\t\tglobalOptions.set(name, schema);\n\t\t},\n\t\tget subCommands() {\n\t\t\treturn new Map(subCommands);\n\t\t},\n\t\taddCommand(name, command) {\n\t\t\tif (!name) throw new Error(\"Command name must be a non-empty string\");\n\t\t\tif (subCommands.has(name)) throw new Error(`Command '${name}' is already registered`);\n\t\t\tsubCommands.set(name, command);\n\t\t},\n\t\thasCommand(name) {\n\t\t\treturn subCommands.has(name);\n\t\t},\n\t\tdecorateHeaderRenderer(decorator) {\n\t\t\tdecorators.addHeaderDecorator(decorator);\n\t\t},\n\t\tdecorateUsageRenderer(decorator) {\n\t\t\tdecorators.addUsageDecorator(decorator);\n\t\t},\n\t\tdecorateValidationErrorsRenderer(decorator) {\n\t\t\tdecorators.addValidationErrorsDecorator(decorator);\n\t\t},\n\t\tdecorateCommand(decorator) {\n\t\t\tdecorators.addCommandDecorator(decorator);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/dependency.ts\n/**\n* Resolve plugin dependencies using topological sort\n*\n* @param plugins - Array of plugins to resolve\n* @returns Array of plugins sorted by dependencies\n*/\nfunction resolveDependencies(plugins) {\n\tconst sorted = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst visiting = /* @__PURE__ */ new Set();\n\tconst pluginMap = /* @__PURE__ */ new Map();\n\tfor (const plugin of plugins) if (plugin.id) {\n\t\tif (pluginMap.has(plugin.id)) console.warn(`Duplicate plugin id detected: \\`${plugin.id}\\``);\n\t\tpluginMap.set(plugin.id, plugin);\n\t}\n\tfunction visit(plugin) {\n\t\tif (!plugin.id) return;\n\t\tif (visited.has(plugin.id)) return;\n\t\tif (visiting.has(plugin.id)) throw new Error(`Circular dependency detected: \\`${[...visiting].join(` -> `) + \" -> \" + plugin.id}\\``);\n\t\tvisiting.add(plugin.id);\n\t\tconst deps = plugin.dependencies || [];\n\t\tfor (const dep of deps) {\n\t\t\tconst depId = typeof dep === \"string\" ? dep : dep.id;\n\t\t\tconst isOptional = typeof dep === \"string\" ? false : dep.optional || false;\n\t\t\tconst depPlugin = pluginMap.get(depId);\n\t\t\tif (!depPlugin && !isOptional) throw new Error(`Missing required dependency: \\`${depId}\\` on \\`${plugin.id}\\``);\n\t\t\tif (depPlugin) visit(depPlugin);\n\t\t}\n\t\tvisiting.delete(plugin.id);\n\t\tvisited.add(plugin.id);\n\t\tsorted.push(plugin);\n\t}\n\tfor (const plugin of plugins) visit(plugin);\n\treturn sorted;\n}\n\n//#endregion\n//#region src/cli/core.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param argv - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @param plugins - An array of {@link Plugin | plugins} to be applied\n* @returns A rendered usage or undefined. if you will use {@link CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cliCore(argv, entry, options, plugins) {\n\tconst decorators = createDecorators();\n\tconst pluginContext = createPluginContext(decorators, createInitialSubCommands(options, entry));\n\tconst resolvedPlugins = await applyPlugins(pluginContext, [...plugins, ...options.plugins || []]);\n\tconst cliOptions = normalizeCliOptions(options, decorators, pluginContext);\n\tconst tokens = parseArgs(argv);\n\tconst resolved = resolveCommandTree(tokens, entry, cliOptions);\n\tconst { commandName: name, command, callMode, commandPath, depth, levelSubCommands } = resolved;\n\tif (!command) throw new Error(`Command not found: ${name || \"\"}`);\n\tconst args = resolveArguments(pluginContext, getCommandArgs(command));\n\tconst skipPositional = depth > 0 ? depth - 1 : -1;\n\tconst { explicit, values, positionals, rest, error } = resolveArgs(args, tokens, {\n\t\tshortGrouping: true,\n\t\ttoKebab: command.toKebab,\n\t\tskipPositional\n\t});\n\tconst omitted = resolved.omitted;\n\tif (levelSubCommands) cliOptions.subCommands = levelSubCommands;\n\tconst resolvedCommand = isLazyCommand(command) ? await resolveLazyCommand(command, name, true) : command;\n\treturn await executeCommand(resolvedCommand, await createCommandContext({\n\t\targs,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\targv,\n\t\ttokens,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tcommand: resolvedCommand,\n\t\textensions: getPluginExtensions(resolvedPlugins),\n\t\tvalidationError: error,\n\t\tcliOptions\n\t}), decorators.commandDecorators);\n}\nasync function applyPlugins(pluginContext, plugins) {\n\tconst sortedPlugins = resolveDependencies(plugins);\n\ttry {\n\t\tfor (const plugin of sortedPlugins)\n /**\n\t\t* NOTE(kazupon):\n\t\t* strictly `Args` are not required for plugin installation.\n\t\t* because the strictly `Args` required by each plugin are unknown,\n\t\t* and the plugin side can not know what the user will specify.\n\t\t*/\n\t\tawait plugin(pluginContext);\n\t} catch (error) {\n\t\tconsole.error(\"Error loading plugin:\", error.message);\n\t}\n\treturn sortedPlugins;\n}\nfunction getCommandArgs(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.args || create();\n\telse if (typeof cmd === \"object\") return cmd.args || create();\n\telse return create();\n}\nfunction resolveArguments(pluginContext, args) {\n\treturn Object.assign(create(), Object.fromEntries(pluginContext.globalOptions), args);\n}\nconst isObject = (val) => val !== null && typeof val === \"object\";\nfunction createInitialSubCommands(options, entryCmd) {\n\tconst hasSubCommands = options.subCommands ? options.subCommands instanceof Map ? options.subCommands.size > 0 : isObject(options.subCommands) && Object.keys(options.subCommands).length > 0 : false;\n\tconst subCommands = new Map(options.subCommands instanceof Map ? options.subCommands : []);\n\tif (!(options.subCommands instanceof Map) && isObject(options.subCommands)) for (const [name, cmd] of Object.entries(options.subCommands)) subCommands.set(name, cmd);\n\tif (hasSubCommands) {\n\t\tif (isLazyCommand(entryCmd)) {\n\t\t\tconst entryCopy = Object.assign((...args) => entryCmd(...args), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"object\") {\n\t\t\tconst entryCopy = Object.assign(create(), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"function\") {\n\t\t\tconst name = entryCmd.name || ANONYMOUS_COMMAND_NAME;\n\t\t\tsubCommands.set(name, {\n\t\t\t\trun: entryCmd,\n\t\t\t\tname,\n\t\t\t\tentry: true\n\t\t\t});\n\t\t}\n\t}\n\treturn subCommands;\n}\nfunction normalizeCliOptions(options, decorators, pluginContext) {\n\tconst subCommands = new Map(pluginContext.subCommands);\n\tconst resolvedOptions = Object.assign(create(), CLI_OPTIONS_DEFAULT, options, { subCommands });\n\tif (resolvedOptions.renderHeader === void 0) resolvedOptions.renderHeader = decorators.getHeaderRenderer();\n\tif (resolvedOptions.renderUsage === void 0) resolvedOptions.renderUsage = decorators.getUsageRenderer();\n\tif (resolvedOptions.renderValidationErrors === void 0) resolvedOptions.renderValidationErrors = decorators.getValidationErrorsRenderer();\n\treturn resolvedOptions;\n}\nfunction getPositionalTokens(tokens) {\n\treturn tokens.filter((t) => t.kind === \"positional\").map((t) => t.value).filter((v) => !!v);\n}\nfunction resolveCommandTree(tokens, entry, options) {\n\tconst positionals = getPositionalTokens(tokens);\n\tfunction resolveAsEntry() {\n\t\tif (typeof entry === \"function\") if (\"commandName\" in entry && entry.commandName) return {\n\t\t\tcommandName: entry.commandName,\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcommand: {\n\t\t\t\trun: entry,\n\t\t\t\tentry: true\n\t\t\t},\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse if (typeof entry === \"object\") return {\n\t\t\tcommandName: resolveEntryName(entry),\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcallMode: \"unexpected\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: false,\n\t\t\tlevelSubCommands: void 0\n\t\t};\n\t}\n\tif (positionals.length === 0 || options.subCommands.size === 0) return resolveAsEntry();\n\tlet currentSubCommands = options.subCommands;\n\tlet resolvedCommand;\n\tlet resolvedName;\n\tconst commandPath = [];\n\tlet depth = 0;\n\tfor (let i = 0; i < positionals.length; i++) {\n\t\tconst token = positionals[i];\n\t\tconst cmd = currentSubCommands.get(token);\n\t\tif (cmd == null) {\n\t\t\tif (depth === 0) {\n\t\t\t\tif (options.fallbackToEntry) return resolveAsEntry();\n\t\t\t\treturn {\n\t\t\t\t\tcommandName: token,\n\t\t\t\t\tcallMode: \"unexpected\",\n\t\t\t\t\tcommandPath: [],\n\t\t\t\t\tdepth: 0,\n\t\t\t\t\tomitted: false,\n\t\t\t\t\tlevelSubCommands: void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tlet resolved = cmd;\n\t\tif (typeof cmd === \"function\" && cmd.commandName == null) resolved = Object.assign((...args) => cmd(...args), cmd, { commandName: token });\n\t\telse if (typeof cmd === \"object\" && cmd.name == null) resolved = Object.assign(create(), cmd, { name: token });\n\t\tresolvedCommand = resolved;\n\t\tresolvedName = token;\n\t\tcommandPath.push(token);\n\t\tdepth++;\n\t\tconst nestedSubCommands = getCommandSubCommands(cmd);\n\t\tif (nestedSubCommands && nestedSubCommands.size > 0) currentSubCommands = nestedSubCommands;\n\t\telse break;\n\t}\n\tif (!resolvedCommand) return resolveAsEntry();\n\tconst resolvedSubCommands = getCommandSubCommands(resolvedCommand);\n\tconst omitted = resolvedSubCommands != null && resolvedSubCommands.size > 0;\n\tlet levelSubCommands;\n\tif (omitted && resolvedSubCommands) {\n\t\tlevelSubCommands = new Map(resolvedSubCommands);\n\t\tlet entryCopy;\n\t\tif (typeof resolvedCommand === \"function\") entryCopy = Object.assign((...args) => resolvedCommand(...args), resolvedCommand, { entry: true });\n\t\telse entryCopy = Object.assign(create(), resolvedCommand, { entry: true });\n\t\tlevelSubCommands.set(resolvedName || resolveEntryName(entryCopy), entryCopy);\n\t}\n\treturn {\n\t\tcommandName: resolvedName,\n\t\tcommand: resolvedCommand,\n\t\tcallMode: depth > 0 ? \"subCommand\" : \"entry\",\n\t\tcommandPath,\n\t\tdepth,\n\t\tomitted,\n\t\tlevelSubCommands\n\t};\n}\nfunction resolveEntryName(entry) {\n\treturn isLazyCommand(entry) ? entry.commandName || ANONYMOUS_COMMAND_NAME : entry.name || ANONYMOUS_COMMAND_NAME;\n}\nfunction getPluginExtensions(plugins) {\n\tconst extensions = create();\n\tfor (const plugin of plugins) if (plugin.extension) {\n\t\tconst key = plugin.id;\n\t\tif (extensions[key]) console.warn(`Plugin \"${key}\" is already installed. Ignore it for command context extending.`);\n\t\telse extensions[key] = plugin.extension;\n\t}\n\treturn extensions;\n}\nasync function executeCommand(cmd, ctx, decorators) {\n\tconst baseRunner = cmd.run || NOOP;\n\tconst decoratedRunner = decorators.reduceRight((runner, decorator) => decorator(runner), baseRunner);\n\ttry {\n\t\tif (ctx.env.onBeforeCommand) await ctx.env.onBeforeCommand(ctx);\n\t\tconst result = await decoratedRunner(ctx);\n\t\tif (ctx.env.onAfterCommand) await ctx.env.onAfterCommand(ctx, result);\n\t\treturn typeof result === \"string\" ? result : void 0;\n\t} catch (error) {\n\t\tif (ctx.env.onErrorCommand) try {\n\t\t\tawait ctx.env.onErrorCommand(ctx, error);\n\t\t} catch (hookError) {\n\t\t\tconsole.error(\"Error in onErrorCommand hook:\", hookError);\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n//#endregion\nexport { resolveArgs as n, parseArgs as r, cliCore as t };","//#region src/plugin/core.ts\nconst NOOP_EXTENSION = () => {\n\treturn Object.create(null);\n};\n/**\n* Define a plugin\n*\n* @param options - {@linkcode PluginOptions | plugin options}\n* @returns A defined plugin\n*\n* @since v0.27.0\n*/\nfunction plugin(options = {}) {\n\tconst { id, name, setup, onExtension, dependencies } = options;\n\tconst extension = options.extension || NOOP_EXTENSION;\n\tconst pluginFn = async (ctx) => {\n\t\tif (setup) await setup(ctx);\n\t};\n\tconst props = {\n\t\twritable: false,\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t};\n\treturn Object.defineProperties(pluginFn, {\n\t\tid: {\n\t\t\tvalue: id,\n\t\t\t...props\n\t\t},\n\t\t...name && { name: {\n\t\t\tvalue: name,\n\t\t\t...props\n\t\t} },\n\t\t...dependencies && { dependencies: {\n\t\t\tvalue: dependencies,\n\t\t\t...props\n\t\t} },\n\t\t...extension && { extension: {\n\t\t\tvalue: {\n\t\t\t\tkey: Symbol(id),\n\t\t\t\tfactory: extension,\n\t\t\t\tonFactory: onExtension\n\t\t\t},\n\t\t\t...props\n\t\t} }\n\t});\n}\n\n//#endregion\nexport { plugin as t };","import { o as resolveLazyCommand, s as kebabnize } from \"./utils-DNS9AIR_.js\";\nimport { t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\n\n//#region ../shared/src/constants.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst BUILT_IN_PREFIX = \"_\";\nconst PLUGIN_PREFIX = \"g\";\nconst ARG_PREFIX = \"arg\";\nconst BUILT_IN_KEY_SEPARATOR = \":\";\nconst BUILD_IN_PREFIX_AND_KEY_SEPARATOR = `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_PREFIX_AND_KEY_SEPARATOR = `${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_NEGATABLE_PREFIX = \"no-\";\nconst COMMON_ARGS = {\n\thelp: {\n\t\ttype: \"boolean\",\n\t\tshort: \"h\",\n\t\tdescription: \"Display this help message\"\n\t},\n\tversion: {\n\t\ttype: \"boolean\",\n\t\tshort: \"v\",\n\t\tdescription: \"Display this version\"\n\t}\n};\n\n//#endregion\n//#region ../resources/locales/en-US.json\nvar NEGATABLE = \"Negatable of\";\nvar en_US_default = {\n\tCOMMAND: \"COMMAND\",\n\tCOMMANDS: \"COMMANDS\",\n\tSUBCOMMAND: \"SUBCOMMAND\",\n\tUSAGE: \"USAGE\",\n\tARGUMENTS: \"ARGUMENTS\",\n\tOPTIONS: \"OPTIONS\",\n\tEXAMPLES: \"EXAMPLES\",\n\tFORMORE: \"For more info, run any command with the `--help` flag\",\n\tNEGATABLE,\n\tDEFAULT: \"default\",\n\tCHOICES: \"choices\",\n\thelp: \"Display this help message\",\n\tversion: \"Display this version\"\n};\n\n//#endregion\n//#region ../shared/src/utils.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Resolve a namespaced key for built-in resources.\n*\n* Built-in keys are prefixed with \"_:\".\n*\n* @typeParam K - The type of the built-in key to resolve. Defaults to command built-in argument and resource keys.\n*\n* @param key - The built-in key to resolve.\n* @returns Prefixed built-in key.\n*/\nfunction resolveBuiltInKey(key) {\n\treturn `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for argument resources.\n*\n* Argument keys are prefixed with \"arg:\".\n* If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:arg:foo\").\n*\n* @typeParam A - The {@linkcode Args} type extracted from G\n*\n* @param key - The argument key to resolve.\n* @param name - The command name.\n* @returns Prefixed argument key.\n*/\nfunction resolveArgKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for non-built-in resources.\n*\n* Non-built-in keys are not prefixed with any special characters. If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:foo\").\n*\n* @typeParam T - The type of the non-built-in key to resolve. Defaults to string.\n*\n* @param key - The non-built-in key to resolve.\n* @param name - The command name.\n* @returns Prefixed non-built-in key.\n*/\nfunction resolveKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${key}`;\n}\n/**\n* Resolve command examples.\n*\n* @typeParam G - Type parameter extending {@linkcode GunshiParams}\n*\n* @param ctx - A {@linkcode CommandContext | command context}.\n* @param examples - The examples to resolve, which can be a string or a {@linkcode CommandExamplesFetcher | function} that returns a string.\n* @returns A resolved string of examples.\n*/\nasync function resolveExamples$1(ctx, examples) {\n\treturn typeof examples === \"string\" ? examples : typeof examples === \"function\" ? await examples(ctx) : \"\";\n}\n/**\n* Generate a namespaced key for a plugin.\n*\n* @typeParam K - The type of the plugin id to generate a namespaced key for.\n*\n* @param id - A plugin id to generate a namespaced key.\n* @returns A namespaced key for the plugin.\n*/\nfunction namespacedId(id) {\n\treturn `${PLUGIN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${id}`;\n}\n/**\n* Generate a short and long option pair for command arguments.\n*\n* @param schema - The {@linkcode ArgSchema | argument schema} to generate the option pair.\n* @param name - The name of the argument.\n* @param toKebab - Whether to convert the name to kebab-case for display in help text.\n* @returns A string representing the short and long option pair.\n*/\nfunction makeShortLongOptionPair(schema, name, toKebab) {\n\tlet key = `--${toKebab || schema.toKebab ? kebabnize(name) : name}`;\n\tif (schema.short) key = `-${schema.short}, ${key}`;\n\treturn key;\n}\n\n//#endregion\n//#region ../shared/src/localization.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a localizable function for a command.\n*\n* This function will resolve the translation key based on the command context and the provided translation function.\n*\n* @typeParam A - The {@linkcode Args} type extracted from Gunshi command.\n* @typeParam C - Additional context type for command localization.\n* @typeParam E - Extended resource keys type.\n*\n* @param ctx - Command context\n* @param cmd - Command\n* @param translate - Translation function\n* @returns Localizable function\n*/\nfunction localizable(ctx, cmd, translate) {\n\tasync function localize(key, values) {\n\t\tif (translate) return translate(key, values);\n\t\tif (key.startsWith(BUILD_IN_PREFIX_AND_KEY_SEPARATOR)) return en_US_default[key.slice(BUILD_IN_PREFIX_AND_KEY_SEPARATOR.length)] || key;\n\t\tconst namaspacedArgKey = resolveKey(ARG_PREFIX_AND_KEY_SEPARATOR, ctx.name);\n\t\tif (key.startsWith(namaspacedArgKey)) {\n\t\t\tlet argKey = key.slice(namaspacedArgKey.length);\n\t\t\tlet negatable = false;\n\t\t\tif (argKey.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\t\targKey = argKey.slice(ARG_NEGATABLE_PREFIX.length);\n\t\t\t\tnegatable = true;\n\t\t\t}\n\t\t\tconst schema = ctx.args[argKey];\n\t\t\tif (!schema) return argKey;\n\t\t\treturn negatable && schema.type === \"boolean\" && schema.negatable ? `${NEGATABLE} ${makeShortLongOptionPair(schema, argKey, ctx.toKebab)}` : schema.description || \"\";\n\t\t}\n\t\tif (key === resolveKey(\"description\", ctx.name)) return \"\";\n\t\telse if (key === resolveKey(\"examples\", ctx.name)) return await resolveExamples$1(ctx, cmd.examples);\n\t\telse return key;\n\t}\n\treturn localize;\n}\n\n//#endregion\n//#region ../plugin-renderer/src/header.ts\n/**\n* Render the header.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered header.\n*/\nfunction renderHeader(ctx) {\n\tconst title = ctx.env.description || ctx.env.name || \"\";\n\treturn Promise.resolve(title ? `${title} (${ctx.env.name || \"\"}${ctx.env.version ? ` v${ctx.env.version}` : \"\"})` : title);\n}\n\n//#endregion\n//#region ../plugin-renderer/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for usage renderer plugin.\n*/\nconst pluginId = namespacedId(\"renderer\");\n\n//#endregion\n//#region ../plugin-renderer/src/usage.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst COMMON_ARGS_KEYS = Object.keys(COMMON_ARGS);\n/**\n* Render the usage.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage.\n*/\nasync function renderUsage(ctx) {\n\tconst messages = [];\n\tif (ctx.callMode === \"subCommand\") {\n\t\tconst description = await resolveDescription(ctx);\n\t\tif (description) messages.push(description, \"\");\n\t}\n\tmessages.push(...await renderUsageSection(ctx), \"\");\n\tif (ctx.omitted && await hasCommands(ctx)) messages.push(...await renderCommandsSection(ctx), \"\");\n\tif (hasPositionalArgs(ctx.args)) messages.push(...await renderPositionalArgsSection(ctx), \"\");\n\tif (hasOptionalArgs(ctx.args)) messages.push(...await renderOptionalArgsSection(ctx), \"\");\n\tconst examples = await renderExamplesSection(ctx);\n\tif (examples.length > 0) messages.push(...examples, \"\");\n\treturn messages.join(\"\\n\");\n}\n/**\n* Render the positional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered arguments section\n*/\nasync function renderPositionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"ARGUMENTS\"))}:`);\n\tmessages.push(await generatePositionalArgsUsage(ctx));\n\treturn messages;\n}\n/**\n* Render the optional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered options section\n*/\nasync function renderOptionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}:`);\n\tmessages.push(await generateOptionalArgsUsage(ctx, getOptionalArgsPairs(ctx)));\n\treturn messages;\n}\n/**\n* Render the examples section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered examples section\n*/\nasync function renderExamplesSection(ctx) {\n\tconst messages = [];\n\tconst resolvedExamples = await resolveExamples(ctx);\n\tif (resolvedExamples) {\n\t\tconst examples = resolvedExamples.split(\"\\n\").map((example) => example.padStart(ctx.env.leftMargin + example.length));\n\t\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"EXAMPLES\"))}:`, ...examples);\n\t}\n\treturn messages;\n}\n/**\n* Render the usage section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage section\n*/\nasync function renderUsageSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"USAGE\"))}:`];\n\tconst usageStr = await makeUsageSymbols(ctx);\n\tmessages.push(usageStr.padStart(ctx.env.leftMargin + usageStr.length));\n\treturn messages;\n}\nasync function makeUsageSymbols(ctx) {\n\tconst messages = [await resolveEntry(ctx)];\n\tif (ctx.omitted) if (await hasCommands(ctx)) messages.push(` [${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}]`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\tconst optionsSymbols = await generateOptionsSymbols(ctx, ctx.args);\n\tif (optionsSymbols) messages.push(\" \", optionsSymbols);\n\tconst positionalSymbols = generatePositionalSymbols(ctx.args);\n\tif (positionalSymbols) messages.push(\" \", positionalSymbols);\n\treturn messages.join(\"\");\n}\n/**\n* Render the commands section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered commands section\n*/\nasync function renderCommandsSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}:`];\n\tconst loadedCommands = await ctx.extensions?.[pluginId].loadCommands() || [];\n\tconst commandMaxLength = Math.max(...loadedCommands.map((cmd) => (cmd.name || \"\").length));\n\tconst commandsStr = await Promise.all(loadedCommands.map(async (cmd) => {\n\t\tconst desc = cmd.description || \"\";\n\t\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\t\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\t\tconst commandStr = await makeCommandSymbol(ctx, cmd);\n\t\tconst symbolLength = desc.length > 0 ? commandMaxLength + optionSymbol.length + positionalSymbol.length : 0;\n\t\tconst command = `${commandStr.padEnd(symbolLength + ctx.env.middleMargin)}${desc}`;\n\t\treturn `${command.padStart(ctx.env.leftMargin + command.length)}`;\n\t}));\n\tmessages.push(...commandsStr, \"\", `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"FORMORE\"))}:`);\n\tconst basePath = ctx.commandPath && ctx.commandPath.length > 0 ? `${ctx.env.name} ${ctx.commandPath.join(\" \")}` : ctx.env.name;\n\tmessages.push(...loadedCommands.map((cmd) => {\n\t\tlet commandStr = cmd.entry ? \"\" : cmd.name || \"\";\n\t\tif (commandStr) commandStr += \" \";\n\t\tconst commandHelp = `${basePath} ${commandStr}--help`;\n\t\treturn `${commandHelp.padStart(ctx.env.leftMargin + commandHelp.length)}`;\n\t}));\n\treturn messages;\n}\nasync function makeCommandSymbol(ctx, cmd) {\n\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\tlet commandStr = cmd.entry ? cmd.name === void 0 || cmd.name === ANONYMOUS_COMMAND_NAME ? \"\" : `[${cmd.name}]` : cmd.name || \"\";\n\tif (optionSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${optionSymbol}`;\n\t}\n\tif (positionalSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${positionalSymbol}`;\n\t}\n\treturn commandStr;\n}\n/**\n* Resolve the entry command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The entry command name\n*/\nasync function resolveEntry(ctx) {\n\treturn ctx.env.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMAND\"));\n}\n/**\n* Resolve the sub command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The sub command name\n*/\nasync function resolveSubCommand(ctx) {\n\tif (ctx.commandPath && ctx.commandPath.length > 0) return ctx.commandPath.join(\" \");\n\treturn ctx.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"SUBCOMMAND\"));\n}\n/**\n* Resolve the command description\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command description\n*/\nasync function resolveDescription(ctx) {\n\treturn await ctx.extensions[pluginId].text(resolveKey(\"description\", ctx.name)) || ctx.description || \"\";\n}\n/**\n* Resolve the command examples\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command examples, if not resolved, return empty string\n*/\nasync function resolveExamples(ctx) {\n\tconst ret = await ctx.extensions[pluginId].text(resolveKey(\"examples\", ctx.name));\n\tif (ret) return ret;\n\tconst command = ctx.env.subCommands?.get(ctx.name || \"\");\n\treturn await resolveExamples$1(ctx, command?.examples);\n}\n/**\n* Check if the command has sub commands\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns True if the command has sub commands\n*/\nasync function hasCommands(ctx) {\n\treturn (await ctx.extensions?.[pluginId].loadCommands() || []).length > 1;\n}\n/**\n* Check if the command has optional arguments\n*\n* @param args - A {@link Args | command optional arguments}\n* @returns True if the command has options\n*/\nfunction hasOptionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type !== \"positional\");\n}\n/**\n* Check if the command has positional arguments\n*\n* @param args - A {@link Args | command positional arguments}\n* @returns True if the command has options\n*/\nfunction hasPositionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type === \"positional\");\n}\n/**\n* Check if all options have default values\n*\n* @param args - An {@link Args | command argument}\n* @returns True if all options have default values\n*/\nfunction hasAllDefaultOptions(args) {\n\treturn !!(args && Object.values(args).every((arg) => arg.default));\n}\n/**\n* Generate options symbols for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param args - {@link Args | command arguments}\n* @returns Options symbols for usage\n*/\nasync function generateOptionsSymbols(ctx, args) {\n\treturn hasOptionalArgs(args) ? hasAllDefaultOptions(args) ? `[${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}]` : `<${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}>` : \"\";\n}\n/**\n* Get optional arguments pairs for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns Options pairs for usage\n*/\nfunction getOptionalArgsPairs(ctx) {\n\treturn Object.entries(ctx.args).reduce((acc, [name, schema]) => {\n\t\tif (schema.type === \"positional\") return acc;\n\t\tlet key = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\tif (schema.type !== \"boolean\") {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tkey = schema.default ? `${key} [${displayName}]` : `${key} <${displayName}>`;\n\t\t}\n\t\tacc[name] = key;\n\t\tif (schema.type === \"boolean\" && schema.negatable && !COMMON_ARGS_KEYS.includes(name)) {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tacc[`${ARG_NEGATABLE_PREFIX}${name}`] = `--${ARG_NEGATABLE_PREFIX}${displayName}`;\n\t\t}\n\t\treturn acc;\n\t}, Object.create(null));\n}\nconst resolveNegatableKey = (key) => key.split(ARG_NEGATABLE_PREFIX)[1];\nfunction resolveNegatableType(key, ctx) {\n\treturn ctx.args[key.startsWith(ARG_NEGATABLE_PREFIX) ? resolveNegatableKey(key) : key].type;\n}\nasync function generateDefaultDisplayValue(ctx, schema) {\n\treturn `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"DEFAULT\"))}: ${schema.default}`;\n}\nasync function resolveDisplayValue(ctx, key) {\n\tif (COMMON_ARGS_KEYS.includes(key)) return \"\";\n\tconst schema = ctx.args[key];\n\tif ((schema.type === \"boolean\" || schema.type === \"number\" || schema.type === \"string\" || schema.type === \"custom\") && schema.default !== void 0) return `(${await generateDefaultDisplayValue(ctx, schema)})`;\n\tif (schema.type === \"enum\") {\n\t\tconst _default = schema.default === void 0 ? \"\" : await generateDefaultDisplayValue(ctx, schema);\n\t\tconst choices = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"CHOICES\"))}: ${schema.choices.join(\" | \")}`;\n\t\treturn `(${_default ? `${_default}, ${choices}` : choices})`;\n\t}\n\treturn \"\";\n}\n/**\n* Generate optional arguments usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param optionsPairs - Options pairs for usage\n* @returns Generated options usage\n*/\nasync function generateOptionalArgsUsage(ctx, optionsPairs) {\n\tconst optionsMaxLength = Math.max(...Object.entries(optionsPairs).map(([_, value]) => value.length));\n\tconst optionSchemaMaxLength = ctx.env.usageOptionType ? Math.max(...Object.entries(optionsPairs).map(([key]) => resolveNegatableType(key, ctx).length)) : 0;\n\treturn (await Promise.all(Object.entries(optionsPairs).map(async ([key, value]) => {\n\t\tlet rawDesc = await ctx.extensions[pluginId].text(resolveArgKey(key, ctx.name));\n\t\tif (!rawDesc && key.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\tconst name = resolveNegatableKey(key);\n\t\t\tconst schema = ctx.args[name];\n\t\t\tconst optionKey = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\t\trawDesc = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"NEGATABLE\"))} ${optionKey}`;\n\t\t}\n\t\tconst optionsSchema = ctx.env.usageOptionType ? `[${resolveNegatableType(key, ctx)}] ` : \"\";\n\t\tconst valueDesc = key.startsWith(ARG_NEGATABLE_PREFIX) ? \"\" : await resolveDisplayValue(ctx, key);\n\t\tconst desc = `${optionsSchema ? optionsSchema.padEnd(optionSchemaMaxLength + 3) : \"\"}${rawDesc}`;\n\t\tconst descLength = desc.length + valueDesc.length;\n\t\tconst option = `${value.padEnd((descLength > 0 ? optionsMaxLength : 0) + ctx.env.middleMargin)}${desc}${valueDesc ? ` ${valueDesc}` : \"\"}`;\n\t\treturn `${option.padStart(ctx.env.leftMargin + option.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction getPositionalArgs(args) {\n\treturn Object.entries(args).filter(([_, schema]) => schema.type === \"positional\");\n}\nasync function generatePositionalArgsUsage(ctx) {\n\tconst positionals = getPositionalArgs(ctx.args);\n\tconst argsMaxLength = Math.max(...positionals.map(([name]) => name.length));\n\treturn (await Promise.all(positionals.map(async ([name]) => {\n\t\tconst desc = await ctx.extensions[pluginId].text(resolveArgKey(name, ctx.name)) || ctx.args[name].description || \"\";\n\t\tconst arg = `${name.padEnd(argsMaxLength + ctx.env.middleMargin)} ${desc}`;\n\t\treturn `${arg.padStart(ctx.env.leftMargin + arg.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction generatePositionalSymbols(args) {\n\treturn hasPositionalArgs(args) ? getPositionalArgs(args).map(([name, arg]) => {\n\t\tconst elements = [];\n\t\tif (!arg.multiple || arg.required) elements.push(`<${name}>`);\n\t\tif (arg.multiple) elements.push(`[<${name}> ...]`);\n\t\treturn elements.join(\" \");\n\t}).join(\" \") : \"\";\n}\n\n//#endregion\n//#region ../plugin-renderer/src/validation.ts\n/**\n* Render the validation errors.\n*\n* @param _ctx - A {@link CommandContext | command context}\n* @param error - An {@link AggregateError} of option in `args-token` validation\n* @returns A rendered validation error.\n*/\nfunction renderValidationErrors(_ctx, error) {\n\tconst messages = [];\n\tfor (const err of error.errors) messages.push(err.message);\n\treturn Promise.resolve(messages.join(\"\\n\"));\n}\n\n//#endregion\n//#region ../plugin-renderer/src/index.ts\n/**\n* The entry point of usage renderer plugin\n*\n* @example\n* ```js\n* import renderer from '@gunshi/plugin-renderer'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* renderer()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst i18nPluginId = namespacedId(\"i18n\");\nconst dependencies = [{\n\tid: i18nPluginId,\n\toptional: true\n}];\n/**\n* usage renderer plugin\n*\n* @returns A defined plugin as usage renderer\n*/\nfunction renderer() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"usage renderer\",\n\t\tdependencies,\n\t\textension: (ctx, cmd) => {\n\t\t\tconst i18n = ctx.extensions[i18nPluginId];\n\t\t\tlet cachedCommands;\n\t\t\tasync function loadCommands() {\n\t\t\t\tif (cachedCommands) return cachedCommands;\n\t\t\t\tconst subCommands = [...ctx.env.subCommands || []];\n\t\t\t\tcachedCommands = (await Promise.all(subCommands.map(async ([name, cmd]) => await resolveLazyCommand(cmd, name)))).filter((cmd) => !cmd.internal).filter(Boolean);\n\t\t\t\tcachedCommands.sort((a, b) => {\n\t\t\t\t\tif (a.entry && !b.entry) return -1;\n\t\t\t\t\tif (!a.entry && b.entry) return 1;\n\t\t\t\t\tif (a.name && b.name) return a.name.localeCompare(b.name);\n\t\t\t\t\tif (a.name && !b.name) return -1;\n\t\t\t\t\tif (!a.name && b.name) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\treturn cachedCommands;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttext: localizable(ctx, cmd, i18n?.translate),\n\t\t\t\tloadCommands\n\t\t\t};\n\t\t},\n\t\tsetup: (ctx) => {\n\t\t\tctx.decorateHeaderRenderer(async (_baseRenderer, cmdCtx) => await renderHeader(cmdCtx));\n\t\t\tctx.decorateUsageRenderer(async (_baseRenderer, cmdCtx) => await renderUsage(cmdCtx));\n\t\t\tctx.decorateValidationErrorsRenderer(async (_baseRenderer, cmdCtx, error) => await renderValidationErrors(cmdCtx, error));\n\t\t}\n\t});\n}\n\n//#endregion\nexport { namespacedId as a, renderHeader as i, renderValidationErrors as n, BUILT_IN_PREFIX as o, renderUsage as r, COMMON_ARGS as s, renderer as t };","import { t as cliCore } from \"./core-C9P_Gd_f.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\nimport { a as namespacedId, s as COMMON_ARGS, t as renderer } from \"./src-CfO5ab2f.js\";\n\n//#region ../plugin-global/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for the global options plugin.\n*/\nconst pluginId = namespacedId(\"global\");\n\n//#endregion\n//#region ../plugin-global/src/decorator.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Decorator function to extend the command with global options.\n*\n* @param baseRunner - The base command runner\n* @returns A command decorator that adds global options handling\n*/\nconst decorator = (baseRunner) => async (ctx) => {\n\tconst { values, validationError, extensions: { [pluginId]: { showVersion, showHeader, showUsage, showValidationErrors } } } = ctx;\n\tif (values.version) return showVersion();\n\tconst buf = [];\n\tconst header = await showHeader();\n\tif (header) buf.push(header);\n\tif (values.help) {\n\t\tconst usage = await showUsage();\n\t\tif (usage) {\n\t\t\tbuf.push(usage);\n\t\t\treturn buf.join(\"\\n\");\n\t\t}\n\t\treturn;\n\t}\n\tif (validationError) return await showValidationErrors(validationError);\n\treturn baseRunner(ctx);\n};\nvar decorator_default = decorator;\n\n//#endregion\n//#region ../plugin-global/src/extension.ts\n/**\n* Extends the command context for global options plugin.\n*\n* @param ctx - The {@linkcode CommandContextCore | command context} core\n* @returns An {@linkcode GlobalExtension} of global options plugin\n*/\nfunction extension(ctx) {\n\treturn {\n\t\tshowVersion: () => {\n\t\t\tconst version = ctx.env.version || \"unknown\";\n\t\t\tif (!ctx.env.usageSilent) ctx.log(version);\n\t\t\treturn version;\n\t\t},\n\t\tshowHeader: async () => {\n\t\t\tlet header;\n\t\t\tif (ctx.env.renderHeader != null) {\n\t\t\t\theader = await ctx.env.renderHeader(ctx);\n\t\t\t\tif (header) {\n\t\t\t\t\tctx.log(header);\n\t\t\t\t\tctx.log();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn header;\n\t\t},\n\t\tshowUsage: async () => {\n\t\t\tif (ctx.env.renderUsage != null) {\n\t\t\t\tconst usage = await ctx.env.renderUsage(ctx);\n\t\t\t\tif (usage) {\n\t\t\t\t\tctx.log(usage);\n\t\t\t\t\treturn usage;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tshowValidationErrors: async (error) => {\n\t\t\tif (ctx.env.renderValidationErrors === null) return;\n\t\t\tif (ctx.env.renderValidationErrors !== void 0) {\n\t\t\t\tconst message = await ctx.env.renderValidationErrors(ctx, error);\n\t\t\t\tctx.log(message);\n\t\t\t\treturn message;\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region ../plugin-global/src/index.ts\n/**\n* The entry point of global options plugin\n*\n* @example\n* ```js\n* import global from '@gunshi/plugin-global'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* global()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* global options plugin\n*\n* @returns A defined plugin as global options\n*/\nfunction global() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"global options\",\n\t\textension,\n\t\tsetup(ctx) {\n\t\t\tfor (const [name, schema] of Object.entries(COMMON_ARGS)) ctx.addGlobalOption(name, schema);\n\t\t\tctx.decorateCommand(decorator_default);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/cli/builtin.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param args - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @returns A rendered usage or undefined. if you will use {@linkcode CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cli(args, entry, options = {}) {\n\treturn cliCore(args, entry, options, [global(), renderer()]);\n}\n\n//#endregion\nexport { cli as t };"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../utils/src/git-utils.ts","../src/cli/helpers/infer-schema.ts","../src/cli/helpers/find-env-files.ts","../src/cli/commands/init.command.ts"],"names":["path","fs"],"mappings":"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","file":"chunk-F6ZYIWAR.js","sourcesContent":["import { spawnAsync } from './exec-helpers';\nimport { dirname } from 'node:path';\n\nexport async function checkIsFileGitIgnored(path: string, warnIfNotGitRepo = false) {\n try {\n // Use spawnAsync with array arguments to properly handle paths with spaces\n // Pass cwd to run git from the file's directory\n await spawnAsync('git', ['check-ignore', path, '-q'], { cwd: dirname(path) });\n return true;\n } catch (err) {\n // git binary not found (not installed or not in PATH) - check this first\n // before accessing err.data which won't exist on native spawn ENOENT errors\n if ((err as any).code === 'ENOENT') return undefined;\n\n const errorOutput = (err as any).data as string | undefined;\n // git is not installed, so we can't check\n if (\n (err as any).exitCode === 127\n || errorOutput?.includes('not found')\n || errorOutput?.includes('not recognized') // windows\n ) {\n return undefined;\n }\n // `git check-ignore -q` exits with code 1 but no other error if is not ignored\n if (errorOutput === '') return false;\n if (errorOutput?.includes('not a git repository')) {\n if (warnIfNotGitRepo) {\n // eslint-disable-next-line no-console\n console.log('🔶 Your code is not currently in a git repository - run `git init` to initialize a new repo.');\n }\n return false;\n }\n // file is outside the current git repository (e.g., importing from home directory)\n if (errorOutput?.includes('is outside repository')) {\n return undefined;\n }\n // otherwise we'll let it throw since something else is happening\n throw err;\n }\n}\n","import fs from 'node:fs/promises';\nimport {\n envSpecUpdater, ParsedEnvSpecFile, ParsedEnvSpecStaticValue,\n} from '@env-spec/parser';\n\n\nexport type DetectedEnvFile = {\n fileName: string,\n fullPath: string,\n parsedFile: ParsedEnvSpecFile\n};\n\nconst PUBLIC_PREFIXES = [\n 'PUBLIC',\n 'VITE',\n 'NEXT_PUBLIC',\n 'NUXT_PUBLIC',\n];\nconst PUBLIC_KEYWORDS = ['PUBLIC'];\nconst SENSITIVE_KEYWORDS = [\n 'SECRET',\n 'API_KEY',\n 'PASSWORD',\n 'TOKEN',\n 'PRIVATE',\n 'CREDENTIALS',\n];\n\nfunction isValidUrl(val: string) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const u = new URL(val);\n return true;\n } catch (err) {\n return false;\n }\n}\n\nconst EMAIL_REGEX = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nconst VALID_NUMBER_REGEX = /^(0|([1-9][0-9]*))?(\\.[0-9]+)?$/;\n\n\nexport function inferItemDecorators(file: ParsedEnvSpecFile, itemKey: string, valueStr = '') {\n // infer @sensitive\n let itemIsPublic = false;\n if (PUBLIC_PREFIXES.some((prefix) => itemKey.startsWith(prefix))) itemIsPublic = true;\n if (PUBLIC_KEYWORDS.some((keyword) => itemKey.includes(keyword))) itemIsPublic = true;\n\n let itemIsSensitive = false;\n if (SENSITIVE_KEYWORDS.some((keyword) => itemKey.includes(keyword))) itemIsSensitive = true;\n\n if (itemIsPublic) {\n // not marking these for now, since we've already made the default not sensitive\n // envSpecUpdater.setItemDecorator(file, itemKey, 'sensitive', 'false');\n } else if (itemIsSensitive) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'sensitive', 'true');\n }\n\n // infer @type\n // > from key\n if (itemKey === 'PORT' || itemKey.endsWith('_PORT')) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'port');\n } else if (itemKey.endsWith('_EMAIL')) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'email');\n } else if (itemKey.endsWith('_URL') || itemKey.endsWith('_URI')) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'url');\n\n\n // > from value\n } else if (valueStr) {\n // move obvious examples to @example\n if (valueStr.startsWith('<') && valueStr.endsWith('>')) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'example', valueStr);\n // remove example from value\n }\n\n if (valueStr === 'true' || valueStr === 'false') {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'boolean');\n } else if (EMAIL_REGEX.test(valueStr)) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'email');\n } else if (valueStr !== '0' && valueStr !== '1' && VALID_NUMBER_REGEX.test(valueStr)) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'number');\n } else if (isValidUrl(valueStr)) {\n envSpecUpdater.setItemDecorator(file, itemKey, 'type', 'url');\n }\n // TODO: more...\n }\n}\n\nexport function inferSchemaUpdates(file: ParsedEnvSpecFile) {\n for (const item of file.configItems) {\n const valueStr = (\n item.value instanceof ParsedEnvSpecStaticValue && item.value.value?.toString()\n ) || '';\n // console.log(item.key, '-', valueStr);\n inferItemDecorators(file, item.key, valueStr);\n }\n}\n\n\nexport function ensureAllItemsExist(schemaFile: ParsedEnvSpecFile, otherFiles: Array<DetectedEnvFile>) {\n const addedItemKeys: Array<string> = [];\n for (const otherFile of otherFiles) {\n for (const item of otherFile.parsedFile.configItems) {\n const itemInSchema = schemaFile.configItems.find((i) => i.key === item.key);\n if (itemInSchema) continue;\n\n if (addedItemKeys.length === 0) {\n envSpecUpdater.injectFromStr(schemaFile, [\n '',\n '# items added to schema by `varlock init`',\n '# that were missing in example, but detected in other .env files',\n '# PLEASE REVIEW THESE!',\n '# ---',\n '',\n ].join('\\n'), { location: 'end' });\n }\n addedItemKeys.push(item.key);\n envSpecUpdater.injectFromStr(schemaFile, `${item.key}=`);\n const itemValue = (\n item.value instanceof ParsedEnvSpecStaticValue && item.value.value?.toString()\n ) || '';\n inferItemDecorators(schemaFile, item.key, String(itemValue));\n }\n }\n}\n\nexport async function detectRedundantValues(\n schemaFile: ParsedEnvSpecFile,\n otherFiles: Record<string, DetectedEnvFile>,\n opts: { delete?: boolean } = {},\n) {\n const redundantItemsBySourcePath: Record<string, Array<string>> = {};\n const schemaValues = schemaFile.toSimpleObj();\n for (const otherFile of Object.values(otherFiles)) {\n if (\n otherFile.fileName.startsWith('.env.schema')\n || otherFile.fileName.startsWith('.env.example')\n || otherFile.fileName.startsWith('.env.sample')\n || otherFile.fileName.startsWith('.env.default')\n ) continue;\n\n const otherFileValues = otherFile.parsedFile.toSimpleObj();\n for (const itemKey in otherFileValues) {\n if (!(itemKey in schemaValues)) continue;\n if (otherFileValues[itemKey] !== schemaValues[itemKey]) continue;\n\n redundantItemsBySourcePath[otherFile.fullPath] ||= [];\n redundantItemsBySourcePath[otherFile.fullPath].push(itemKey);\n if (opts.delete) {\n envSpecUpdater.deleteItem(otherFile.parsedFile, itemKey);\n }\n }\n\n if (opts.delete) {\n await fs.writeFile(otherFile.fullPath, otherFile.parsedFile.toString(), 'utf8');\n }\n }\n\n return redundantItemsBySourcePath;\n}\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\n\n// our tool may generate some additional files which we want to ignore\nconst SKIP_FILE_TYPES = ['.md', '.d.ts'];\n\nexport async function findEnvFiles(opts?: {\n cwd?: string,\n}) {\n const cwd = opts?.cwd || process.cwd();\n\n const envFiles = [];\n\n const filesWithinDir = await fs.readdir(cwd);\n\n // Filter for files starting with .env and check if they exist\n for (const fileName of filesWithinDir) {\n if (fileName === '.env' || fileName.startsWith('.env.')) { // this ignores `.envrc` files\n let skip = false;\n for (const fileType of SKIP_FILE_TYPES) {\n if (fileName.endsWith(fileType)) skip = true;\n }\n if (skip) continue;\n envFiles.push(path.join(cwd, fileName));\n }\n }\n\n // TODO: we may want to look up or down the folder tree?\n // TODO: we could support looking within specific directories (\"config\", \"env\", etc)\n\n return envFiles;\n}\n","/* eslint-disable @stylistic/quotes */\nimport path from 'node:path';\nimport fs from 'node:fs/promises';\nimport ansis from 'ansis';\nimport { isCancel, select } from '@clack/prompts';\nimport { define } from 'gunshi';\nimport { gracefulExit } from 'exit-hook';\n\nimport { envSpecUpdater, parseEnvSpecDotEnvFile } from '@env-spec/parser';\nimport { checkIsFileGitIgnored } from '@env-spec/utils/git-utils';\nimport { pathExists } from '@env-spec/utils/fs-utils';\nimport _ from '@env-spec/utils/my-dash';\n\nimport prompts from '../helpers/prompts';\nimport { fmt, logLines } from '../helpers/pretty-format';\nimport {\n detectRedundantValues, ensureAllItemsExist, inferSchemaUpdates, type DetectedEnvFile,\n inferItemDecorators,\n} from '../helpers/infer-schema';\nimport { detectJsPackageManager, installJsDependency } from '../helpers/js-package-manager-utils';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport { findEnvFiles } from '../helpers/find-env-files';\nimport { tryCatch } from '@env-spec/utils/try-catch';\nimport { scanCodeForEnvVars } from '../helpers/env-var-scanner';\n\nexport const commandSpec = define({\n name: 'init',\n description: 'Set up varlock in the current project',\n args: {\n agent: {\n type: 'boolean',\n description: 'Run in non-interactive mode for agent/automation workflows',\n },\n },\n examples: `\nThis command starts an interactive onboarding process to help you get started with Varlock.\nIt will:\n - Scan for existing .env files in your project\n - Help create a .env.schema file from your .env.example or .env.sample file\n - Install varlock as a dependency in package.json (if applicable)\n\n📍 Run this command in directories that contain .env or .env.* files\n\nExamples:\n varlock init # Run in the current directory\n varlock init --agent # Run non-interactively (agent/automation friendly)\n cd path/to/your/project && varlock init\n\nFor more information, visit https://varlock.dev/getting-started/installation\n `.trim(),\n});\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const agentMode = Boolean(ctx.values.agent);\n const jsPackageManager = detectJsPackageManager();\n\n console.log('🧙 Hello and welcome to Varlock 🔒🔥✨');\n if (agentMode) {\n logLines([ansis.dim('Agent mode enabled: running init non-interactively with deterministic defaults.')]);\n }\n\n // scan for all .env files within current directory\n const envFilePaths = await findEnvFiles();\n const parsedEnvFiles: Record<string, DetectedEnvFile> = {};\n for (const filePath of envFilePaths) {\n const fileContents = await fs.readFile(filePath, 'utf-8');\n const fileName = path.basename(filePath);\n const parsedFile = await tryCatch(async () => parseEnvSpecDotEnvFile(fileContents), () => {\n logLines([\n '',\n `Unable to parse ${fmt.filePath(filePath)}`,\n 'This file will be skipped.',\n ]);\n });\n if (!parsedFile) {\n continue;\n }\n parsedEnvFiles[fileName] = {\n fileName,\n fullPath: filePath,\n parsedFile,\n };\n }\n\n const existingSchemaFile = parsedEnvFiles['.env.schema'];\n\n // * SET UP SCHEMA ---------------------------------------------\n if (existingSchemaFile) {\n // for now - we don't do anything if they already have a schema set up\n // in the future, we may want to add more tools for projects that are already set up\n logLines([\n `It looks like you already have a ${fmt.fileName('.env.schema')} file 🎉`,\n 'This init helper is meant to help you get a new project set up.',\n 'If you need to make changes to your schema or values, you can update your files directly.',\n 'See more docs at https://varlock.dev/guides/schema',\n ]);\n } else {\n const allExampleFileNames = Object.keys(parsedEnvFiles).filter((fileName) => {\n return fileName.startsWith('.env.example') || fileName.startsWith('.env.sample');\n });\n let exampleFileToConvert: typeof parsedEnvFiles[keyof typeof parsedEnvFiles] | undefined;\n\n if (allExampleFileNames.length === 1) {\n exampleFileToConvert = parsedEnvFiles[allExampleFileNames[0]];\n } else if (allExampleFileNames.length > 1) {\n if (agentMode) {\n const sortedFileNames = [...allExampleFileNames].sort((a, b) => a.localeCompare(b));\n const preferredFileName = sortedFileNames.find((name) => name === '.env.example')\n ?? sortedFileNames.find((name) => name.startsWith('.env.example.'))\n ?? sortedFileNames.find((name) => name === '.env.sample')\n ?? sortedFileNames.find((name) => name.startsWith('.env.sample.'))\n ?? sortedFileNames[0];\n exampleFileToConvert = parsedEnvFiles[preferredFileName];\n logLines([\n '',\n ansis.dim(`Agent mode: auto-selected ${fmt.fileName(preferredFileName)} to generate ${fmt.fileName('.env.schema')}.`),\n ]);\n } else {\n console.log('');\n // not quite sure about this, but we'll just let them select one\n const selectedExample = await select({\n message: `We detected more than one example .env file. Which one should we use to create your new ${fmt.fileName('.env.schema')}?`,\n options: allExampleFileNames.map((fileName) => ({\n label: fileName,\n value: parsedEnvFiles[fileName],\n })),\n });\n if (isCancel(selectedExample)) return gracefulExit(0);\n exampleFileToConvert = selectedExample;\n }\n }\n\n let scannedCodeEnvKeys: Array<string> = [];\n if (!exampleFileToConvert) {\n const scanResult = await scanCodeForEnvVars();\n scannedCodeEnvKeys = scanResult.keys;\n }\n\n // update the schema\n const parsedEnvSchemaFile = exampleFileToConvert?.parsedFile || parseEnvSpecDotEnvFile('');\n if (!parsedEnvSchemaFile) throw new Error('expected parsed .env example file');\n envSpecUpdater.ensureHeader(parsedEnvSchemaFile, [\n 'This env file uses @env-spec - see https://varlock.dev/env-spec for more info',\n '',\n // TODO: add env spec version? real links?\n ].join('\\n'));\n envSpecUpdater.setRootDecorator(parsedEnvSchemaFile, 'defaultRequired', 'infer', { explicitTrue: true });\n envSpecUpdater.setRootDecorator(parsedEnvSchemaFile, 'defaultSensitive', 'false', { explicitTrue: true });\n // TODO: detect js/ts project before adding this\n envSpecUpdater.setRootDecorator(parsedEnvSchemaFile, 'generateTypes', 'lang=ts, path=env.d.ts', { bareFnArgs: true });\n // envSpecUpdater.setRootDecorator(parsedEnvFile, 'envFlag', 'APP_ENV', { comment: 'controls automatic loading of env-specific files (e.g. .env.test, .env.prod, etc.)' });\n\n // add example item\n envSpecUpdater.injectFromStr(parsedEnvSchemaFile, [\n '',\n '# example env variable injected by `varlock init` ⚠️ DELETE THIS ITEM! ⚠️',\n '# @required @sensitive @example=\"example value\"',\n 'EXAMPLE_ITEM=\"delete me!\"',\n '',\n ].join('\\n'), { location: 'after_header' });\n // update some decorators based on some simple heuristics\n inferSchemaUpdates(parsedEnvSchemaFile);\n // add items we find in other env files, but are missing in the schema/example\n ensureAllItemsExist(parsedEnvSchemaFile, Object.values(parsedEnvFiles));\n\n const scannedCodeKeysToAdd = !exampleFileToConvert\n ? scannedCodeEnvKeys.filter((key) => !parsedEnvSchemaFile.configItems.find((i) => i.key === key))\n : [];\n\n // add items we detect in source code if no sample/example file was provided\n if (scannedCodeKeysToAdd.length > 0) {\n envSpecUpdater.injectFromStr(parsedEnvSchemaFile, [\n '',\n '# items added to schema by `varlock init`',\n '# detected by scanning your source code for env var references',\n '# PLEASE REVIEW THESE!',\n '# ---',\n '',\n ].join('\\n'), { location: 'end' });\n\n for (const key of scannedCodeKeysToAdd) {\n envSpecUpdater.injectFromStr(parsedEnvSchemaFile, `${key}=`);\n inferItemDecorators(parsedEnvSchemaFile, key, '');\n }\n }\n\n // write new updated schema file\n const schemaFilePath = path.join(process.cwd(), '.env.schema');\n await fs.writeFile(schemaFilePath, parsedEnvSchemaFile.toString());\n\n // log new schema file path\n if (exampleFileToConvert) {\n logLines([\n '',\n `Your ${fmt.fileName(exampleFileToConvert.fileName)} has been used to generate your new ${fmt.fileName('.env.schema')}:`,\n fmt.filePath(schemaFilePath),\n ]);\n } else if (scannedCodeKeysToAdd.length > 0) {\n logLines([\n '',\n `Your new ${fmt.fileName('.env.schema')} file has been created from scanned source code references:`,\n fmt.filePath(schemaFilePath),\n ansis.dim(`Detected ${scannedCodeEnvKeys.length} env var key${scannedCodeEnvKeys.length === 1 ? '' : 's'} in your codebase.`),\n ]);\n } else {\n logLines([\n '',\n `Your new ${fmt.fileName('.env.schema')} file has been created:`,\n fmt.filePath(schemaFilePath),\n ]);\n }\n\n // make sure .env.schema is not gitignored\n if (await checkIsFileGitIgnored(schemaFilePath)) {\n // maybe could do this silently? it's relatively harmless\n logLines([ansis.dim(`(and updated ${fmt.fileName('.gitignore')} to ensure it will be tracked by git)`)]);\n await fs.appendFile('.gitignore', '\\n!.env.schema');\n }\n\n if (agentMode) {\n logLines([\n '',\n ansis.bold('Agent setup instructions:'),\n '- Initial schema generation uses heuristics, and must be reviewed and confirmed explicitly with the user',\n '- Schema writing guide: https://varlock.dev/guides/schema',\n '- Confirm/add `@type` on items, default is string, so no `@type=string` necessary',\n '- Add `@required`/`@optional`, can adjust `@defaultRequired` root decorator to change default behavior',\n '- Confirm with user which items are `@sensitive` (secrets, private keys, etc) - see https://varlock.dev/guides/secrets/',\n '- Remove placeholder example values, move useful ones to `@example`',\n '- Add description comments when key itself is not self-explanitory',\n '- Add `@docs()` to attach docs links to items',\n '',\n 'Help user review and update .env.schema file for them, validating that config is resolving correctly and valid.',\n 'Schema file is safe to read, do not look directly at values in .env / .env.local files - tell user to edit those files if necessary.',\n `Validate the resolved config any time using ${fmt.command('varlock load --agent', { jsPackageManager: true })}. It prints JSON with sensitive values redacted so you can safely inspect output in logs or transcripts. Or drop the \\`--agent\\` flag to get human-readable output to show the user.`,\n '',\n 'Advanced setup:',\n '- Can use multiple .env files or functions to manage variation per environment, see https://varlock.dev/guides/environments/',\n '- Complex/large files can be broken up and use `@import`, see https://varlock.dev/guides/import/',\n '- If user wants to load secrets from external sources, help install and configure plugins - see https://varlock.dev/guides/plugins/',\n '- If user has any sensitive values in plaintext, can use local encryption, see `https://varlock.dev/guides/local-encryption/',\n '',\n ]);\n } else {\n // ask them to review and confirm\n logLines([\n '',\n ansis.bold(`🚧 Please review and update your new ${fmt.fileName('.env.schema')} file! 🚧`),\n `We've done our best to get you started, but you must review and make sure it is correct!`,\n '',\n `👉 Some helpful pointers to get you started:`,\n `- add a description to each item when the name is not self explanatory - it will come through in generated types`,\n `- use ${fmt.decorator('@required')} (or ${fmt.decorator('@optional')}) to tag items that should fail validation when empty`,\n `- use ${fmt.decorator('@sensitive')} to tag items that contain sensitive secrets, and must be handled accordingly`,\n `- use ${fmt.decorator('@type')} to set an item's data type (if not a basic string), which affects validation and coercion logic`,\n `- if an item value is a ${ansis.italic('useful example')} rather than a default, use ${fmt.decorator('@example')}`,\n `- if an item value is just a dummy placeholder, delete it`,\n ]);\n const confirmReviewed = await prompts.confirm({\n message: `Have you reviewed and updated your new ${fmt.fileName('.env.schema')} file?`,\n });\n if (isCancel(confirmReviewed)) return gracefulExit(0);\n\n // reload the graph\n const reloadedSchemaFile = await parseEnvSpecDotEnvFile(await fs.readFile(schemaFilePath, 'utf-8'));\n // check if they removed the EXAMPLE_ITEM and warn them\n if (reloadedSchemaFile.configItems.find((i) => i.key === 'EXAMPLE_ITEM')) {\n logLines([\n '',\n ansis.bold(`🚨 Really? ${ansis.red(\"You didn't remove the EXAMPLE_ITEM!\")}`),\n `Please make sure your schema is all correct before using it...`,\n ]);\n }\n }\n\n // delete the example file if they want us to\n if (exampleFileToConvert) {\n if (agentMode) {\n logLines([`- left ${exampleFileToConvert.fileName} in place (no destructive prompts) - confirm with user and remove for them`]);\n } else {\n const confirmDeleteExample = await prompts.confirm({\n message: `Should we delete your ${fmt.fileName(exampleFileToConvert.fileName)} file? ${ansis.italic.gray('(you can always do this yourself later)')}`,\n });\n if (isCancel(confirmDeleteExample)) return gracefulExit(0);\n if (confirmDeleteExample) {\n await fs.unlink(exampleFileToConvert.fullPath);\n }\n }\n }\n\n // recommendation to delete defaults file\n const defaultsFile = Object.values(parsedEnvFiles).find((f) => {\n return f.fileName.startsWith('.env.default'); // also covers \".env.defaults\"\n });\n if (defaultsFile) {\n if (agentMode) {\n logLines([`- found ${defaultsFile.fileName} in project - tell user to migrate defaults to .env.schema and delete it`]);\n } else {\n logLines([\n '',\n `🚧 We detected a ${fmt.fileName(defaultsFile.fileName)} file in your project`,\n `You should migrate these default values into ${fmt.fileName('.env.schema')} and delete it.`,\n ]);\n }\n }\n\n // detect and remove redundant defaults that are now in the schema\n const redundantInfo = await detectRedundantValues(parsedEnvSchemaFile, parsedEnvFiles);\n if (Object.keys(redundantInfo).length > 0) {\n if (agentMode) {\n logLines([`- found redundant values in other .env files - tell user to review and delete them`]);\n } else {\n logLines([\n '',\n ansis.bold('‼️ Now that your schema contains defaults, some values in your other .env files are redundant:'),\n ]);\n for (const [sourcePath, itemKeys] of Object.entries(redundantInfo)) {\n console.log(fmt.filePath(sourcePath));\n console.log(' ', itemKeys.map((k) => ansis.italic(k)).join(', '));\n }\n\n const confirmDeleteRedundant = await prompts.confirm({\n message: 'Should we delete these redundant values from your other .env files?',\n });\n if (isCancel(confirmDeleteRedundant)) return gracefulExit(0);\n if (confirmDeleteRedundant) {\n await detectRedundantValues(parsedEnvSchemaFile, parsedEnvFiles, { delete: true });\n }\n }\n }\n\n // final success!\n if (!agentMode) {\n logLines([\n '',\n ansis.bold('🎉 Great!'),\n `You can run ${fmt.command('varlock load', { jsPackageManager })} to attempt loading your env vars validate against your new schema.`,\n '',\n 'Check out our docs for more info about integrating into your application.',\n '',\n '📖 https://varlock.dev 👈',\n '',\n ]);\n }\n }\n\n // * MAKE SURE VARLOCK IS INSTALLED ------------------------------------------\n if (jsPackageManager && await pathExists(path.join(process.cwd(), 'package.json'))) {\n const installResult = installJsDependency({\n packageManager: jsPackageManager.name,\n packageName: 'varlock',\n });\n if (installResult) {\n logLines([\n '',\n `✅ Added ${fmt.packageName('varlock')} as a dependency in your package.json`,\n ]);\n }\n }\n\n // * CONFIGURE BUNFIG.TOML FOR BUN PROJECTS ----------------------------------\n if (jsPackageManager?.name === 'bun') {\n const bunfigPath = path.join(process.cwd(), 'bunfig.toml');\n const bunfigExists = await pathExists(bunfigPath);\n\n if (bunfigExists) {\n const bunfigContents = await fs.readFile(bunfigPath, 'utf-8');\n // check if `env = false` is already set (allowing for whitespace variations)\n if (!/^\\s*env\\s*=\\s*false\\s*$/m.test(bunfigContents)) {\n await fs.writeFile(bunfigPath, `env = false\\n${bunfigContents}`);\n logLines([\n '',\n `✅ Added ${ansis.bold('env = false')} to your existing ${fmt.fileName('bunfig.toml')}`,\n ansis.dim('This disables Bun\\'s automatic .env loading, which conflicts with Varlock.'),\n ansis.dim(`See ${ansis.underline('https://varlock.dev/integrations/bun')} for more info.`),\n ]);\n }\n } else {\n await fs.writeFile(bunfigPath, 'env = false\\n');\n logLines([\n '',\n `✅ Created ${fmt.fileName('bunfig.toml')} with ${ansis.bold('env = false')}`,\n ansis.dim('This disables Bun\\'s automatic .env loading, which conflicts with Varlock.'),\n ansis.dim(`See ${ansis.underline('https://varlock.dev/integrations/bun')} for more info.`),\n ]);\n }\n }\n};\n"]}
|