varlock 0.2.1 → 0.2.3

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.
Files changed (85) hide show
  1. package/README.md +2 -0
  2. package/dist/auto-load.js +8 -8
  3. package/dist/chunk-2YPKUF3A.js +18 -0
  4. package/dist/{chunk-7SH6C6WJ.js.map → chunk-2YPKUF3A.js.map} +1 -1
  5. package/dist/{chunk-RZT65DRA.js → chunk-35SAMS66.js} +4 -4
  6. package/dist/{chunk-RZT65DRA.js.map → chunk-35SAMS66.js.map} +1 -1
  7. package/dist/{chunk-XN24GZXQ.js → chunk-6PEHRAEP.js} +3 -8
  8. package/dist/{chunk-XN24GZXQ.js.map → chunk-6PEHRAEP.js.map} +1 -1
  9. package/dist/{chunk-ZLM3MCYF.js → chunk-BXR2RIO6.js} +6 -6
  10. package/dist/{chunk-ZLM3MCYF.js.map → chunk-BXR2RIO6.js.map} +1 -1
  11. package/dist/{chunk-NA4YDM42.js → chunk-HTF7NU5C.js} +10 -9
  12. package/dist/chunk-HTF7NU5C.js.map +1 -0
  13. package/dist/{chunk-NDWB3TT5.js → chunk-ISSW6NKZ.js} +9 -4
  14. package/dist/chunk-ISSW6NKZ.js.map +1 -0
  15. package/dist/{chunk-FGMXIEFA.js → chunk-MIBOBKI4.js} +3 -3
  16. package/dist/{chunk-FGMXIEFA.js.map → chunk-MIBOBKI4.js.map} +1 -1
  17. package/dist/chunk-OY5U5WTF.js +10829 -0
  18. package/dist/chunk-OY5U5WTF.js.map +1 -0
  19. package/dist/chunk-PESTWPBG.js +307 -0
  20. package/dist/chunk-PESTWPBG.js.map +1 -0
  21. package/dist/{chunk-H5IG4ZVM.js → chunk-Q3C4VKFT.js} +6 -6
  22. package/dist/chunk-Q3C4VKFT.js.map +1 -0
  23. package/dist/chunk-QZ6HBRJC.js +97 -0
  24. package/dist/chunk-QZ6HBRJC.js.map +1 -0
  25. package/dist/{chunk-FUDH2TTI.js → chunk-TVFOIGJP.js} +3 -3
  26. package/dist/{chunk-FUDH2TTI.js.map → chunk-TVFOIGJP.js.map} +1 -1
  27. package/dist/{chunk-5IMCRQTM.js → chunk-TYIS6T2T.js} +4 -4
  28. package/dist/{chunk-5IMCRQTM.js.map → chunk-TYIS6T2T.js.map} +1 -1
  29. package/dist/chunk-UDXNNRWI.js +1386 -0
  30. package/dist/chunk-UDXNNRWI.js.map +1 -0
  31. package/dist/{chunk-HPNRKYVF.js → chunk-UIOEEWG5.js} +4 -4
  32. package/dist/{chunk-HPNRKYVF.js.map → chunk-UIOEEWG5.js.map} +1 -1
  33. package/dist/{chunk-MSRPV5WH.js → chunk-WAMBVZL2.js} +4 -4
  34. package/dist/{chunk-MSRPV5WH.js.map → chunk-WAMBVZL2.js.map} +1 -1
  35. package/dist/chunk-YIXN7TC7.js +1532 -0
  36. package/dist/chunk-YIXN7TC7.js.map +1 -0
  37. package/dist/{chunk-NSY7JMFV.js → chunk-ZXJ4CEDK.js} +4 -4
  38. package/dist/{chunk-NSY7JMFV.js.map → chunk-ZXJ4CEDK.js.map} +1 -1
  39. package/dist/cli/cli-executable.js +20 -21
  40. package/dist/cli/cli-executable.js.map +1 -1
  41. package/dist/dotenv-compat.js +8 -8
  42. package/dist/{env-graph-BZwrHQbb.d.ts → env-graph-DIcuAiYh.d.ts} +9 -2
  43. package/dist/help.command-MLH2WA5Y.js +5 -0
  44. package/dist/{help.command-B7VWA53B.js.map → help.command-MLH2WA5Y.js.map} +1 -1
  45. package/dist/index.d.ts +2 -3
  46. package/dist/index.js +10 -9
  47. package/dist/index.js.map +1 -1
  48. package/dist/init.command-RAYBZ66R.js +9 -0
  49. package/dist/{init.command-GNLFBWYF.js.map → init.command-RAYBZ66R.js.map} +1 -1
  50. package/dist/lib/exec-sync-varlock.js +2 -2
  51. package/dist/load.command-KOSPGLV6.js +9 -0
  52. package/dist/{load.command-WR5QCE6M.js.map → load.command-KOSPGLV6.js.map} +1 -1
  53. package/dist/plugin-lib.d.ts +2 -3
  54. package/dist/plugin-lib.js +2 -1
  55. package/dist/run.command-BOBQIELJ.js +10 -0
  56. package/dist/{run.command-GXQTDDDP.js.map → run.command-BOBQIELJ.js.map} +1 -1
  57. package/dist/runtime/env.d.ts +1 -2
  58. package/dist/runtime/env.js +3 -3
  59. package/dist/runtime/patch-console.js +4 -4
  60. package/dist/runtime/patch-response.js +4 -4
  61. package/dist/runtime/patch-server-response.js +4 -4
  62. package/dist/telemetry.command-SFEMMU3U.js +9 -0
  63. package/dist/{telemetry.command-ZFW55RLH.js.map → telemetry.command-SFEMMU3U.js.map} +1 -1
  64. package/package.json +35 -22
  65. package/dist/chunk-33ROL4J5.js +0 -1013
  66. package/dist/chunk-33ROL4J5.js.map +0 -1
  67. package/dist/chunk-4CRDKWAU.js +0 -1281
  68. package/dist/chunk-4CRDKWAU.js.map +0 -1
  69. package/dist/chunk-7SH6C6WJ.js +0 -18
  70. package/dist/chunk-H5IG4ZVM.js.map +0 -1
  71. package/dist/chunk-NA4YDM42.js.map +0 -1
  72. package/dist/chunk-NDWB3TT5.js.map +0 -1
  73. package/dist/chunk-NHA2P5AV.js +0 -135
  74. package/dist/chunk-NHA2P5AV.js.map +0 -1
  75. package/dist/chunk-OKNWYS57.js +0 -4061
  76. package/dist/chunk-OKNWYS57.js.map +0 -1
  77. package/dist/en-US-TSGNDI2P.js +0 -22
  78. package/dist/en-US-TSGNDI2P.js.map +0 -1
  79. package/dist/help.command-B7VWA53B.js +0 -5
  80. package/dist/init.command-GNLFBWYF.js +0 -8
  81. package/dist/ja-JP-UBPCQAAD.js +0 -22
  82. package/dist/ja-JP-UBPCQAAD.js.map +0 -1
  83. package/dist/load.command-WR5QCE6M.js +0 -8
  84. package/dist/run.command-GXQTDDDP.js +0 -9
  85. package/dist/telemetry.command-ZFW55RLH.js +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/utils-DNS9AIR_.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/constants-WviiKqbt.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/context-CHDIbgwd.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/definition.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/core-C9P_Gd_f.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/core-eN5xmB3s.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/src-CfO5ab2f.js","../../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/cli-l4AYjN-O.js"],"names":["cmd","extension","arg","renderer","decorator","plugin","dependencies","pluginId"],"mappings":"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","file":"chunk-UDXNNRWI.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,5 +1,5 @@
1
- import { debug, varlockSettings, scanForLeaks } from './chunk-MSRPV5WH.js';
2
- import { __name } from './chunk-XN24GZXQ.js';
1
+ import { debug, varlockSettings, scanForLeaks } from './chunk-WAMBVZL2.js';
2
+ import { __name } from './chunk-6PEHRAEP.js';
3
3
 
4
4
  // src/runtime/patch-response.ts
5
5
  function patchGlobalResponse() {
@@ -34,5 +34,5 @@ function patchGlobalResponse() {
34
34
  __name(patchGlobalResponse, "patchGlobalResponse");
35
35
 
36
36
  export { patchGlobalResponse };
37
- //# sourceMappingURL=chunk-HPNRKYVF.js.map
38
- //# sourceMappingURL=chunk-HPNRKYVF.js.map
37
+ //# sourceMappingURL=chunk-UIOEEWG5.js.map
38
+ //# sourceMappingURL=chunk-UIOEEWG5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime/patch-response.ts"],"names":[],"mappings":";;;;AAGO,SAAS,mBAAA,GAAsB;AACpC,EAAA,KAAA,CAAM,uCAA6B,CAAA;AACnC,EAAA,IAAK,UAAA,CAAW,SAAiB,iBAAA,EAAmB;AAClD,IAAA,KAAA,CAAM,mBAAmB,CAAA;AACzB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,eAAA,CAAgB,iBAAiB,KAAA,EAAO;AAC1C,IAAA,KAAA,CAAM,wBAAwB,CAAA;AAC9B,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,qBAAqB,UAAA,CAAW,QAAA;AACtC,EAAA,UAAA,CAAW,QAAA,GAAW,MAAM,sBAAA,SAA+B,kBAAA,CAAmB;AAAA,IAfhF;AAegF,MAAA,MAAA,CAAA,IAAA,EAAA,wBAAA,CAAA;AAAA;AAAA,IAC5E,OAAO,iBAAA,GAAoB,IAAA;AAAA,IAC3B,WAAA,CAAY,MAAW,IAAA,EAAW;AAChC,MAAA,KAAA,CAAM,2CAAiC,CAAA;AACvC,MAAA,KAAA,CAAM,aAAa,IAAA,EAAM,EAAE,QAAQ,8BAAA,EAAgC,GAAU,IAAI,CAAA;AAAA,IACnF;AAAA,IACA,OAAO,IAAA,CAAK,IAAA,EAAW,IAAA,EAAW;AAChC,MAAA,KAAA,CAAM,oCAA0B,CAAA;AAChC,MAAA,YAAA,CAAa,KAAK,SAAA,CAAU,IAAI,GAAG,EAAE,MAAA,EAAQ,yBAAyB,CAAA;AACtE,MAAA,MAAM,CAAA,GAAI,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,IAAI,CAAA;AAC5C,MAAA,MAAA,CAAO,cAAA,CAAe,CAAA,EAAG,QAAA,CAAS,SAAS,CAAA;AAC3C,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,GACF;AACF;AA1BgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA","file":"chunk-HPNRKYVF.js","sourcesContent":["import { scanForLeaks, varlockSettings } from './env';\nimport { debug } from './lib/debug';\n\nexport function patchGlobalResponse() {\n debug('⚡️ PATCHING global Response');\n if ((globalThis.Response as any)._patchedByVarlock) {\n debug('> already patched');\n return;\n }\n if (varlockSettings.preventLeaks === false) {\n debug('> disabled by settings');\n return;\n }\n\n const _UnpatchedResponse = globalThis.Response;\n globalThis.Response = class VarlockPatchedResponse extends _UnpatchedResponse {\n static _patchedByVarlock = true;\n constructor(body: any, init: any) {\n debug('⚡️ patched Response constructor');\n super(scanForLeaks(body, { method: 'patched Response constructor' }) as any, init);\n }\n static json(data: any, init: any) {\n debug('⚡️ patched Response.json');\n scanForLeaks(JSON.stringify(data), { method: 'patched Response.json' });\n const r = _UnpatchedResponse.json(data, init);\n Object.setPrototypeOf(r, Response.prototype);\n return r;\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/runtime/patch-response.ts"],"names":[],"mappings":";;;;AAGO,SAAS,mBAAA,GAAsB;AACpC,EAAA,KAAA,CAAM,uCAA6B,CAAA;AACnC,EAAA,IAAK,UAAA,CAAW,SAAiB,iBAAA,EAAmB;AAClD,IAAA,KAAA,CAAM,mBAAmB,CAAA;AACzB,IAAA;AAAA,EACF;AACA,EAAA,IAAI,eAAA,CAAgB,iBAAiB,KAAA,EAAO;AAC1C,IAAA,KAAA,CAAM,wBAAwB,CAAA;AAC9B,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,qBAAqB,UAAA,CAAW,QAAA;AACtC,EAAA,UAAA,CAAW,QAAA,GAAW,MAAM,sBAAA,SAA+B,kBAAA,CAAmB;AAAA,IAfhF;AAegF,MAAA,MAAA,CAAA,IAAA,EAAA,wBAAA,CAAA;AAAA;AAAA,IAC5E,OAAO,iBAAA,GAAoB,IAAA;AAAA,IAC3B,WAAA,CAAY,MAAW,IAAA,EAAW;AAChC,MAAA,KAAA,CAAM,2CAAiC,CAAA;AACvC,MAAA,KAAA,CAAM,aAAa,IAAA,EAAM,EAAE,QAAQ,8BAAA,EAAgC,GAAU,IAAI,CAAA;AAAA,IACnF;AAAA,IACA,OAAO,IAAA,CAAK,IAAA,EAAW,IAAA,EAAW;AAChC,MAAA,KAAA,CAAM,oCAA0B,CAAA;AAChC,MAAA,YAAA,CAAa,KAAK,SAAA,CAAU,IAAI,GAAG,EAAE,MAAA,EAAQ,yBAAyB,CAAA;AACtE,MAAA,MAAM,CAAA,GAAI,kBAAA,CAAmB,IAAA,CAAK,IAAA,EAAM,IAAI,CAAA;AAC5C,MAAA,MAAA,CAAO,cAAA,CAAe,CAAA,EAAG,QAAA,CAAS,SAAS,CAAA;AAC3C,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,GACF;AACF;AA1BgB,MAAA,CAAA,mBAAA,EAAA,qBAAA,CAAA","file":"chunk-UIOEEWG5.js","sourcesContent":["import { scanForLeaks, varlockSettings } from './env';\nimport { debug } from './lib/debug';\n\nexport function patchGlobalResponse() {\n debug('⚡️ PATCHING global Response');\n if ((globalThis.Response as any)._patchedByVarlock) {\n debug('> already patched');\n return;\n }\n if (varlockSettings.preventLeaks === false) {\n debug('> disabled by settings');\n return;\n }\n\n const _UnpatchedResponse = globalThis.Response;\n globalThis.Response = class VarlockPatchedResponse extends _UnpatchedResponse {\n static _patchedByVarlock = true;\n constructor(body: any, init: any) {\n debug('⚡️ patched Response constructor');\n super(scanForLeaks(body, { method: 'patched Response constructor' }) as any, init);\n }\n static json(data: any, init: any) {\n debug('⚡️ patched Response.json');\n scanForLeaks(JSON.stringify(data), { method: 'patched Response.json' });\n const r = _UnpatchedResponse.json(data, init);\n Object.setPrototypeOf(r, Response.prototype);\n return r;\n }\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { redactString } from './chunk-FGMXIEFA.js';
2
- import { __name } from './chunk-XN24GZXQ.js';
1
+ import { redactString } from './chunk-MIBOBKI4.js';
2
+ import { __name } from './chunk-6PEHRAEP.js';
3
3
 
4
4
  // src/lib/detect-runtime.ts
5
5
  typeof process !== "undefined" && process.versions != null && process.versions.node != null;
@@ -201,5 +201,5 @@ var EnvProxy = new Proxy({}, {
201
201
  var ENV = EnvProxy;
202
202
 
203
203
  export { ENV, debug, initVarlockEnv, redactSensitiveConfig, resetRedactionMap, revealSensitiveConfig, scanForLeaks, varlockSettings };
204
- //# sourceMappingURL=chunk-MSRPV5WH.js.map
205
- //# sourceMappingURL=chunk-MSRPV5WH.js.map
204
+ //# sourceMappingURL=chunk-WAMBVZL2.js.map
205
+ //# sourceMappingURL=chunk-WAMBVZL2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/detect-runtime.ts","../src/runtime/lib/debug.ts","../src/runtime/env.ts"],"names":[],"mappings":";;;;AAO+B,OAAO,OAAA,KAAY,WAAA,IAC7C,QAAQ,QAAA,IAAY,IAAA,IACpB,OAAA,CAAQ,QAAA,CAAS,IAAA,IAAQ;AAOG,OAAO,MAAA,KAAW,WAAA,IAAe,MAAA,CAAO,SAAS,QAAA,IAC5E,OAAO,SAAA,KAAc,WAAA,IACpB,WAAA,IAAe,SAAA,IACf,OAAO,SAAA,CAAU,SAAA,KAAc,QAAA,KAC9B,SAAA,CAAU,SAAA,CAAU,QAAA,CAAS,SAAS,CAAA,IACrC,SAAA,CAAU,SAAA,CAAU,QAAA,CAAS,OAAO,CAAA;AAEd,OAAO,IAAA,KAAS,WAAA,IAC1C,OAAO,IAAA,CAAK,OAAA,KAAY,WAAA,IACxB,OAAO,IAAA,CAAK,OAAA,CAAQ,IAAA,KAAS;AAGb,OAAO,OAAA,KAAY,WAAA,IAAe,QAAQ,QAAA,IAAY,IAAA,IAAQ,OAAA,CAAQ,QAAA,CAAS,GAAA,IAAO;AAIpG,IAAM,YAAY,OAAO,MAAA,KAAW,eACtC,OAAO,MAAA,CAAO,aAAa,WAAA,IAC3B,OAAO,MAAA,CAAO,QAAA,CAAS,kBAAkB,UAAA,IACzC,OAAO,cAAc,WAAA,IACrB,OAAO,UAAU,SAAA,KAAc,QAAA;;;ACnC7B,SAAS,SAAS,IAAA,EAAkB;AACzC,EAAA,IAAI,CAAC,UAAA,CAAW,OAAA,EAAS,GAAA,CAAI,aAAA,EAAe;AAC5C,EAAA,OAAA,CAAQ,GAAA,CAAI,GAAG,IAAI,CAAA;AACrB;AAHgB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA;;;ACUhB,SAAS,SAAS,CAAA,EAAQ;AACxB,EAAA,OAAO,MAAA,CAAO,SAAA,CAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,iBAAA;AAC/C;AAFS,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA;AAIT,IAAM,UAAA,GAAa,WAAA;AAInB,IAAI,sBAAyE,EAAC;AAG9E,IAAI,mBAAA;AAEG,SAAS,kBAAkB,KAAA,EAA2B;AAE3D,EAAA,mBAAA,GAAsB,EAAC;AACvB,EAAA,KAAA,MAAW,OAAA,IAAW,MAAM,MAAA,EAAQ;AAClC,IAAA,MAAM,IAAA,GAAO,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA;AACjC,IAAA,IAAI,KAAK,WAAA,IAAe,IAAA,CAAK,SAAS,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,EAAG;AAE1D,MAAA,MAAM,QAAA,GAAW,YAAA,CAAa,IAAA,CAAK,KAAK,CAAA;AACxC,MAAA,IAAI,QAAA,sBAA8B,IAAA,CAAK,KAAK,IAAI,EAAE,GAAA,EAAK,SAAS,QAAA,EAAS;AAAA,IAC3E;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,MAAA,CAAO,IAAA,CAAK,mBAAmB,EAAE,MAAA,EAAQ;AAC5C,IAAA,mBAAA,GAAsB,MAAA;AACtB,IAAA;AAAA,EACF;AAGA,EAAA,MAAM,YAAY,IAAI,MAAA;AAAA,IACpB;AAAA,MACE,IAAI,UAAU,CAAA,GAAA,CAAA;AAAA,MACd,GAAA;AAAA,MACA,MAAA,CAAO,KAAK,mBAAmB,CAAA,CAE5B,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,OAAA,CAAQ,2BAAA,EAA6B,MAAM,CAAC,CAAA,CAEzD,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,SAAS,CAAA,CAAE,MAAM,CAAA,CAClC,IAAA,CAAK,GAAG,CAAA;AAAA,MACX,GAAA;AAAA,MACA,KAAK,UAAU,CAAA,EAAA;AAAA,KACjB,CAAE,KAAK,EAAE,CAAA;AAAA,IACT;AAAA,GACF;AAEA,EAAA,MAAM,SAAA,mBAAuB,MAAA,CAAA,CAAC,KAAA,EAAO,GAAA,EAAK,KAAK,IAAA,KAAS;AAGtD,IAAA,IAAI,GAAA,IAAO,MAAM,OAAO,KAAA;AACxB,IAAA,OAAO,mBAAA,CAAoB,GAAG,CAAA,CAAE,QAAA;AAAA,EAClC,CAAA,EAL6B,WAAA,CAAA;AAM7B,EAAA,mBAAA,GAAsB,EAAE,IAAA,EAAM,SAAA,EAAW,OAAA,EAAS,SAAA,EAAU;AAC9D;AAzCgB,MAAA,CAAA,iBAAA,EAAA,mBAAA,CAAA;AAqDT,SAAS,sBAAsB,CAAA,EAAa;AACjD,EAAA,IAAI,CAAC,qBAAqB,OAAO,CAAA;AACjC,EAAA,IAAI,CAAC,GAAG,OAAO,CAAA;AAKf,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG;AACpB,IAAA,OAAO,CAAA,CAAE,IAAI,qBAAqB,CAAA;AAAA,EACpC;AAEA,EAAA,IAAI,CAAA,IAAK,OAAQ,CAAA,KAAO,QAAA,IAAY,OAAO,cAAA,CAAe,CAAC,CAAA,KAAM,MAAA,CAAO,SAAA,EAAW;AACjF,IAAA,IAAI;AACF,MAAA,OAAO,KAAK,KAAA,CAAM,qBAAA,CAAsB,KAAK,SAAA,CAAU,CAAC,CAAC,CAAC,CAAA;AAAA,IAC5D,SAAS,GAAA,EAAK;AACZ,MAAA,OAAO,CAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,MAAM,OAAO,OAAO,CAAA;AACpB,EAAA,IAAI,IAAA,KAAS,QAAA,IAAa,IAAA,KAAS,QAAA,IAAY,MAAA,CAAO,UAAU,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA,KAAM,iBAAA,EAAoB;AACvG,IAAA,OAAQ,CAAA,CAAa,UAAA,CAAW,mBAAA,CAAoB,IAAA,EAAM,oBAAoB,OAAO,CAAA;AAAA,EACvF;AAEA,EAAA,OAAO,CAAA;AACT;AAzBgB,MAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA;AA+BT,SAAS,sBAAsB,SAAA,EAAmB;AAEvD,EAAA,IAAI,CAAE,UAAA,CAAmB,4BAAA,EAA8B,OAAO,SAAA;AAE9D,EAAA,OAAO,CAAA,EAAG,UAAU,CAAA,CAAA,EAAI,SAAS,IAAI,UAAU,CAAA,CAAA;AACjD;AALgB,MAAA,CAAA,qBAAA,EAAA,uBAAA,CAAA;AAYT,SAAS,YAAA,CACd,QAEA,IAAA,EAIA;AACA,EAAA,KAAA,CAAM,yCAA+B,CAAA;AACrC,EAAA,IAAI,CAAC,QAAQ,OAAO,MAAA;AAEpB,EAAA,SAAS,gBAAgB,SAAA,EAAmB;AAI1C,IAAA,KAAA,MAAW,kBAAkB,mBAAA,EAAqB;AAChD,MAAA,IAAI,SAAA,CAAU,QAAA,CAAS,cAAc,CAAA,EAAG;AACtC,QAAA,MAAM,OAAA,GAAU,mBAAA,CAAoB,cAAc,CAAA,CAAE,GAAA;AAKpD,QAAA,OAAA,CAAQ,KAAA,CAAM;AAAA,UACZ,EAAA;AAAA,UACA,aAAM,kCAAkC,CAAA,UAAA,CAAA;AAAA,UACxC,sBAAsB,OAAO,CAAA,CAAA;AAAA,UAC7B,GAAG,MAAM,MAAA,GAAS,CAAC,kBAAkB,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA,GAAI,EAAC;AAAA,UACvD,GAAG,MAAM,IAAA,GAAO,CAAC,WAAW,IAAA,CAAK,IAAI,CAAA,CAAE,CAAA,GAAI,EAAC;AAAA,UAC5C;AAAA,SACF,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA;AAEZ,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,6CAAA,EAAyC,OAAO,CAAA,CAAE,CAAA;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AAvBS,EAAA,MAAA,CAAA,eAAA,EAAA,iBAAA,CAAA;AA0BT,EAAA,IAAI,QAAA,CAAS,MAAM,CAAA,EAAG;AACpB,IAAA,eAAA,CAAgB,MAAgB,CAAA;AAChC,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,MAAA,IAAW,kBAAkB,MAAA,EAAQ;AACnC,IAAA,eAAA,CAAgB,MAAA,CAAO,UAAU,CAAA;AACjC,IAAA,OAAO,MAAA;AAAA,EAET,CAAA,MAAA,IAAW,kBAAkB,cAAA,EAAgB;AAC3C,IAAA,IAAI,OAAO,MAAA,EAAQ;AAEjB,MAAA,OAAO,MAAA;AAAA,IACT;AAGA,IAAA,MAAM,YAAA,GAAe,IAAI,WAAA,EAAY;AACrC,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,IAAI,eAAA,CAAgB;AAAA,QAClB,SAAA,CAAU,OAAO,UAAA,EAAY;AAC3B,UAAA,MAAM,QAAA,GAAW,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA;AAC1C,UAAA,eAAA,CAAgB,QAAQ,CAAA;AACxB,UAAA,UAAA,CAAW,QAAQ,KAAK,CAAA;AAAA,QAC1B;AAAA,OACD;AAAA,KACH;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAhEgB,MAAA,CAAA,YAAA,EAAA,cAAA,CAAA;AAyEhB,IAAI,cAAA,GAAiB,KAAA;AACrB,IAAM,YAAY,EAAC;AACZ,IAAM,kBAAkB;AAE/B,IAAM,aAAA,GAAgB,CAAC,CAAC,UAAA,CAAW,OAAA;AACnC,IAAM,kBAAA,GAAqB,EAAE,GAAG,aAAA,IAAiB,QAAQ,GAAA,EAAI;AAC7D,IAAI,6BAAA;AAEG,SAAS,eAAe,IAAA,EAE5B;AACD,EAAA,KAAA,CAAM,gCAAA,EAAwB,cAAA,EAAgB,CAAC,CAAE,UAAA,CAAmB,kBAAA,EAAoB,CAAC,CAAC,UAAA,CAAW,OAAA,EAAS,GAAA,CAAI,aAAa,CAAA;AAK/H,EAAA,IAAI,SAAA,IAAa,CAAC,UAAA,CAAW,OAAA,EAAS,IAAI,aAAA,EAAe;AACvD,IAAA,cAAA,GAAiB,IAAA;AACjB,IAAA;AAAA,EACF;AAGA,EAAA,IAAI,iBAAA;AAEJ,EAAA,IAAK,WAAmB,kBAAA,EAAoB;AAC1C,IAAA,iBAAA,GAAqB,UAAA,CAAmB,kBAAA;AAAA,EAG1C,CAAA,MAAA,IAAW,aAAA,IAAiB,OAAA,CAAQ,GAAA,CAAI,aAAA,EAAe;AACrD,IAAA,iBAAA,GAAoB,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,GAAA,CAAI,aAAa,CAAA;AAAA,EAC1D,CAAA,MAAO;AACL,IAAA,IAAI,MAAM,SAAA,EAAW;AAErB,IAAA,OAAA,CAAQ,KAAA,CAAM;AAAA,MACZ,EAAA;AAAA,MACA,4CAAA;AAAA,MACA,8CAAA;AAAA,MACA;AAAA,KACF,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA;AACZ,IAAA,MAAM,IAAI,MAAM,uBAAuB,CAAA;AAAA,EACzC;AACA,EAAA,MAAA,CAAO,MAAA,CAAO,eAAA,EAAiB,iBAAA,CAAkB,QAAQ,CAAA;AACzD,EAAA,iBAAA,CAAkB,iBAAiB,CAAA;AAEnC,EAAA,MAAM,aAAA,GAAgB,aAAA;AAGtB,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,IAAI,6BAAA,EAA+B;AACjC,MAAA,KAAA,MAAW,GAAA,IAAO,6BAAA,EAA+B,OAAO,OAAA,CAAQ,IAAI,GAAG,CAAA;AACvE,MAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,kBAAkB,CAAA,UAAW,GAAA,CAAI,GAAG,CAAA,GAAI,kBAAA,CAAmB,GAAG,CAAA;AAAA,IAC9F;AACA,IAAA,6BAAA,GAAgC,EAAC;AAAA,EACnC;AAEA,EAAA,KAAA,MAAW,OAAA,IAAW,kBAAkB,MAAA,EAAQ;AAC9C,IAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,MAAA,CAAO,OAAO,CAAA,CAAE,KAAA;AACpD,IAAA,SAAA,CAAU,OAAO,CAAA,GAAI,SAAA;AACrB,IAAA,IAAI,aAAA,EAAe;AACjB,MAAA,6BAAA,EAA+B,KAAK,OAAO,CAAA;AAG3C,MAAA,OAAA,CAAQ,IAAI,OAAO,CAAA,GAAI,cAAc,MAAA,GAAY,EAAA,GAAK,OAAO,SAAS,CAAA;AAAA,IACxE;AAAA,EACF;AACA,EAAA,cAAA,GAAiB,IAAA;AACnB;AA1DgB,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA;AA8DhB,IAAI;AACF,EAAA,IAAI,CAAC,cAAA,EAAgB;AAGnB,IAAA,cAAA,CAAe,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAAA,EACpC;AACF,CAAA,CAAA,OAAS,GAAA,EAAK;AAGd;AAQA,IAAM,kBAAA,GAAqB;AAAA;AAAA,EAEzB;AACF,CAAA;AAUA,IAAM,QAAA,GAAW,IAAI,KAAA,CAAsB,EAAC,EAAG;AAAA,EAC7C,GAAA,CAAI,QAAQ,IAAA,EAAM;AAEhB,IAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAE9B,IAAA,IAAI,kBAAA,CAAmB,QAAA,CAAS,IAAI,CAAA,EAAG;AAEvC,IAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,MAAA,MAAM,IAAI,MAAM,6BAA6B,CAAA;AAAA,IAC/C;AAEA,IAAA,IAAI,IAAA,IAAQ,SAAA,EAAW,OAAO,SAAA,CAAU,IAAI,CAAA;AAC5C,IAAA,IAAK,WAAmB,2BAAA,EAA6B;AAEnD,MAAA,IAAK,WAAmB,kBAAA,IAAuB,UAAA,CAAmB,kBAAA,CAAmB,QAAA,CAAS,IAAI,CAAA,EAAG;AACnG,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,MAAA,EAAS,IAAI,CAAA,mDAAA,CAAqD,CAAA;AAAA,MACpF,CAAA,MAAO;AACL,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,MAAA,EAAS,IAAI,CAAA,iBAAA,CAAmB,CAAA;AAAA,MAClD;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AACF,CAAC,CAAA;AAEM,IAAM,GAAA,GAAM","file":"chunk-MSRPV5WH.js","sourcesContent":["declare const Deno: any;\ndeclare const navigator: any;\ndeclare const window: any;\ndeclare const self: any;\n// declare const process: any;\n\n\nexport const isNode: boolean = typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n\nexport const isWebWorker: boolean = typeof self === 'object'\n && self.constructor\n && self.constructor.name === 'DedicatedWorkerGlobalScope';\n\n// https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\nexport const isJsDom: boolean = (typeof window !== 'undefined' && window.name === 'nodejs')\n || (typeof navigator !== 'undefined'\n && 'userAgent' in navigator\n && typeof navigator.userAgent === 'string'\n && (navigator.userAgent.includes('Node.js')\n || navigator.userAgent.includes('jsdom')));\n\nexport const isDeno: boolean = typeof Deno !== 'undefined'\n && typeof Deno.version !== 'undefined'\n && typeof Deno.version.deno !== 'undefined';\n\n/** @see {@link https://bun.sh/guides/util/detect-bun} */\nexport const isBun = typeof process !== 'undefined' && process.versions != null && process.versions.bun != null;\n\n\n\nexport const isBrowser = typeof window !== 'undefined'\n && typeof window.document !== 'undefined'\n && typeof window.document.createElement === 'function'\n && typeof navigator !== 'undefined'\n && typeof navigator.userAgent === 'string';\n","/* eslint-disable no-console */\nexport function debug(...args: Array<any>) {\n if (!globalThis.process?.env.DEBUG_VARLOCK) return;\n console.log(...args);\n}\n","import { redactString } from './lib/redaction';\n\nimport type { SerializedEnvGraph } from '../env-graph';\nimport { isBrowser } from '../lib/detect-runtime';\nimport { debug } from './lib/debug';\n\n// TODO: would like to move all of the redaction utils out of this file\n// but its complicated since it is imported by code that may be run in the backend and frontend\n// but the patching code (which only runs in the backend) use these helper functions\n\n// this does not cover all cases, but serves our needs so far for Next.js\nfunction isString(s: any) {\n return Object.prototype.toString.call(s) === '[object String]';\n}\n\nconst UNMASK_STR = '👁';\n\n\n/** key value lookup of sensitive values to their redacted version */\nlet sensitiveSecretsMap: Record<string, { key: string, redacted: string }> = {};\n\ntype ReplaceFn = (match: string, pre: string, val: string, post: string) => string;\nlet redactorFindReplace: undefined | { find: RegExp, replace: ReplaceFn };\n\nexport function resetRedactionMap(graph: SerializedEnvGraph) {\n // reset map of { [sensitive] => redacted }\n sensitiveSecretsMap = {};\n for (const itemKey in graph.config) {\n const item = graph.config[itemKey];\n if (item.isSensitive && item.value && isString(item.value)) {\n // TODO: we want to respect masking settings from the schema (once added)\n const redacted = redactString(item.value);\n if (redacted) sensitiveSecretsMap[item.value] = { key: itemKey, redacted };\n }\n }\n // if no sensitive items exist, we dont need to do any redaction, but the redact fn is checking for undefined\n if (!Object.keys(sensitiveSecretsMap).length) {\n redactorFindReplace = undefined;\n return;\n }\n\n // reset find/replace regex+fn used for redacting secrets in strings\n const findRegex = new RegExp(\n [\n `(${UNMASK_STR} )?`,\n '(',\n Object.keys(sensitiveSecretsMap)\n // Escape special characters\n .map((s) => s.replace(/[()[\\]{}*+?^$|#.,/\\\\\\s-]/g, '\\\\$&'))\n // Sort for maximal munch\n .sort((a, b) => b.length - a.length)\n .join('|'),\n ')',\n `( ${UNMASK_STR})?`,\n ].join(''),\n 'g',\n );\n\n const replaceFn: ReplaceFn = (match, pre, val, post) => {\n // the pre and post matches only will be populated if they were present\n // and they are used to unmask the secret - so we do not want to replace in this case\n if (pre && post) return match;\n return sensitiveSecretsMap[val].redacted;\n };\n redactorFindReplace = { find: findRegex, replace: replaceFn };\n}\n\n\n// While the module itself acts as a singleton to hold the current map of redacted values\n// we expose only the below const to end users\n\n\n/**\n * Redacts senstive config values from any string/array/object/etc\n *\n * NOTE - must be used only after varlock has loaded config\n * */\nexport function redactSensitiveConfig(o: any): any {\n if (!redactorFindReplace) return o;\n if (!o) return o;\n\n // TODO: handle more cases?\n // we can probably redact safely from a few other datatypes - like set,map,etc?\n // objects are a bit tougher\n if (Array.isArray(o)) {\n return o.map(redactSensitiveConfig);\n }\n // try to redact if it's a plain object - not necessarily great for perf...\n if (o && typeof (o) === 'object' && Object.getPrototypeOf(o) === Object.prototype) {\n try {\n return JSON.parse(redactSensitiveConfig(JSON.stringify(o)));\n } catch (err) {\n return o;\n }\n }\n\n const type = typeof o;\n if (type === 'string' || (type === 'object' && Object.prototype.toString.call(o) === '[object String]')) {\n return (o as string).replaceAll(redactorFindReplace.find, redactorFindReplace.replace);\n }\n\n return o;\n}\n\n/**\n * utility to unmask a secret/sensitive value when logging to the console\n * currently this only works on a single secret, not objects or aggregated strings\n * */\nexport function revealSensitiveConfig(secretStr: string) {\n // if redaction not enabled, we just return the secret itself\n if (!(globalThis as any)._varlockOrigWriteToConsoleFn) return secretStr;\n // otherwise we add some wrapper characters which will be removed by the patched console behaviour\n return `${UNMASK_STR} ${secretStr} ${UNMASK_STR}`;\n}\n\n\n\n\n\n// reusable leak scanning helper function, used by various integrations\nexport function scanForLeaks(\n toScan: string | ReadableStream | null,\n // optional additional information about what is being scanned to be used in error messages\n meta?: {\n method?: string,\n file?: string,\n },\n) {\n debug('⚡️ varlock scanning for leaks');\n if (!toScan) return toScan;\n\n function scanStrForLeaks(strToScan: string) {\n // console.log('[varlock leak scanner] ', strToScan.substr(0, 100));\n\n // TODO: probably should use a single regex\n for (const sensitiveValue in sensitiveSecretsMap) {\n if (strToScan.includes(sensitiveValue)) {\n const itemKey = sensitiveSecretsMap[sensitiveValue].key;\n\n // error stack can gets awkwardly buried since we're so deep in the internals\n // so we'll write a nicer error message to help the user debug\n // eslint-disable-next-line no-console\n console.error([\n '',\n `🚨 ${'DETECTED LEAKED SENSITIVE CONFIG'} 🚨`,\n `> Config item key: ${itemKey}`,\n ...meta?.method ? [`> Scan method: ${meta.method}`] : [],\n ...meta?.file ? [`> File: ${meta.file}`] : [],\n '',\n ].join('\\n'));\n\n throw new Error(`🚨 DETECTED LEAKED SENSITIVE CONFIG - ${itemKey}`);\n }\n }\n }\n\n // scan a string\n if (isString(toScan)) {\n scanStrForLeaks(toScan as string);\n return toScan;\n } else if (toScan instanceof Buffer) {\n scanStrForLeaks(toScan.toString());\n return toScan;\n // scan a ReadableStream by piping it through a scanner\n } else if (toScan instanceof ReadableStream) {\n if (toScan.locked) {\n // console.log('> stream already locked');\n return toScan;\n } else {\n // console.log('> stream will be scanned!');\n }\n const chunkDecoder = new TextDecoder();\n return toScan.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n const chunkStr = chunkDecoder.decode(chunk);\n scanStrForLeaks(chunkStr);\n controller.enqueue(chunk);\n },\n }),\n );\n }\n // other things may be passed in like Buffer... but we'll ignore for now\n return toScan;\n}\n\n// -----------\n\n\n\n\n// --------------\n\nlet initializedEnv = false;\nconst envValues = {} as Record<string, any>;\nexport const varlockSettings = {} as Record<string, any>;\n\nconst processExists = !!globalThis.process;\nconst originalProcessEnv = { ...processExists && process.env };\nlet varlockInjectedProcessEnvKeys: Array<string> | undefined;\n\nexport function initVarlockEnv(opts?: {\n allowFail?: boolean,\n}) {\n debug('⚡️ INIT VARLOCK ENV!', initializedEnv, !!(globalThis as any).__varlockLoadedEnv, !!globalThis.process?.env.__VARLOCK_ENV);\n\n // normally we can just bail if we detect we are in the browser\n // however when front-end related tests, it may appear that we are in the browser but it is not\n // also some frameworks inject a process polyfill, others do not\n if (isBrowser && !globalThis.process?.env.__VARLOCK_ENV) {\n initializedEnv = true;\n return;\n }\n\n\n let serializedEnvData: SerializedEnvGraph;\n // when we inject resolved config at build time, we store it here\n if ((globalThis as any).__varlockLoadedEnv) {\n serializedEnvData = (globalThis as any).__varlockLoadedEnv;\n\n // otherwise if we inject via `varlock run` or have already loaded, it will be in process.env\n } else if (processExists && process.env.__VARLOCK_ENV) {\n serializedEnvData = JSON.parse(process.env.__VARLOCK_ENV);\n } else {\n if (opts?.allowFail) return;\n // eslint-disable-next-line no-console\n console.error([\n '',\n '🚨 initVarlockEnv failed 🚨',\n 'try rerunning your command via `varlock run`',\n '',\n ].join('\\n'));\n throw new Error('initVarlockEnv failed');\n }\n Object.assign(varlockSettings, serializedEnvData.settings);\n resetRedactionMap(serializedEnvData);\n\n const setProcessEnv = processExists;\n\n // if we've already injected process.env vars in the past, we'll reset those now\n if (setProcessEnv) {\n if (varlockInjectedProcessEnvKeys) {\n for (const key of varlockInjectedProcessEnvKeys) delete process.env[key];\n for (const key of Object.keys(originalProcessEnv)) process.env[key] = originalProcessEnv[key];\n }\n varlockInjectedProcessEnvKeys = [];\n }\n\n for (const itemKey in serializedEnvData.config) {\n const itemValue = serializedEnvData.config[itemKey].value;\n envValues[itemKey] = itemValue;\n if (setProcessEnv) {\n varlockInjectedProcessEnvKeys?.push(itemKey);\n // when re-injecting into process.env, we treat undefined as empty string\n // this more closely matches expected behaviour from other .env loaders\n process.env[itemKey] = itemValue === undefined ? '' : String(itemValue);\n }\n }\n initializedEnv = true;\n}\n\n// we will attempt to call initVarlockEnv automatically, but in most cases it should be called explicitly\n// note that if this is being imported in the browser, process.env may not exist, so we do this in a try/catch\ntry {\n if (!initializedEnv) {\n // if we are automatically loading because __VARLOCK_ENV is already set\n // then we assume process.env vars have also already been set (although might not harm anything?)\n initVarlockEnv({ allowFail: true });\n }\n} catch (err) {\n // expected that this will fail when process.env does not exist\n // but we may want to look for specific errors\n}\n\n\n\n// some object keys are checked by various tools when handling arbitrary data, especially in templates\n// because our proxy objects throw errors when unknown keys are accessed, this causes problems\n// for now we can just filter out a these keys and it should be fairly harmless\n// TODO: ideally this could be customized by the user, and not specific to vue\nconst IGNORED_PROXY_KEYS = [\n // vue - see https://github.com/vuejs/core/blob/70773d00985135a50556c61fb9855ed6b930cb82/packages/reactivity/src/ref.ts#L101\n '__v_isRef',\n];\n\n\n// this gets exported and then augmented by our type generation\n// ideally we'd start with a loose type `Record<string,any>` and then override it with the actual schema\n// so that if type generation was disabled, a user could still use `ENV`\n// but TS wont let us, so instead we start with it being empty, which will cause type errors\n// unless type generation is enabled\nexport interface TypedEnvSchema {}\n\nconst EnvProxy = new Proxy<TypedEnvSchema>({}, {\n get(target, prop) {\n // ignore symbols, as it likely an external tool checking something\n if (typeof prop === 'symbol') return;\n // special cases to avoid throwing on invalid keys\n if (IGNORED_PROXY_KEYS.includes(prop)) return;\n\n if (!initializedEnv) {\n throw new Error('varlock ENV not initialized');\n }\n\n if (prop in envValues) return envValues[prop];\n if ((globalThis as any).__varlockThrowOnMissingKeys) {\n // during development, we can feed in extra metadata and show more helpful errors\n if ((globalThis as any).__varlockValidKeys && (globalThis as any).__varlockValidKeys.includes(prop)) {\n throw new Error(`\\`ENV.${prop}\\` exists, but is not available in this environment`);\n } else {\n throw new Error(`\\`ENV.${prop}\\` does not exist`);\n }\n }\n return undefined;\n },\n});\n\nexport const ENV = EnvProxy;\n"]}
1
+ {"version":3,"sources":["../src/lib/detect-runtime.ts","../src/runtime/lib/debug.ts","../src/runtime/env.ts"],"names":[],"mappings":"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","file":"chunk-WAMBVZL2.js","sourcesContent":["declare const Deno: any;\ndeclare const navigator: any;\ndeclare const window: any;\ndeclare const self: any;\n// declare const process: any;\n\n\nexport const isNode: boolean = typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n\nexport const isWebWorker: boolean = typeof self === 'object'\n && self.constructor\n && self.constructor.name === 'DedicatedWorkerGlobalScope';\n\n// https://github.com/jsdom/jsdom/issues/1537#issuecomment-229405327\nexport const isJsDom: boolean = (typeof window !== 'undefined' && window.name === 'nodejs')\n || (typeof navigator !== 'undefined'\n && 'userAgent' in navigator\n && typeof navigator.userAgent === 'string'\n && (navigator.userAgent.includes('Node.js')\n || navigator.userAgent.includes('jsdom')));\n\nexport const isDeno: boolean = typeof Deno !== 'undefined'\n && typeof Deno.version !== 'undefined'\n && typeof Deno.version.deno !== 'undefined';\n\n/** @see {@link https://bun.sh/guides/util/detect-bun} */\nexport const isBun = typeof process !== 'undefined' && process.versions != null && process.versions.bun != null;\n\n\n\nexport const isBrowser = typeof window !== 'undefined'\n && typeof window.document !== 'undefined'\n && typeof window.document.createElement === 'function'\n && typeof navigator !== 'undefined'\n && typeof navigator.userAgent === 'string';\n","/* eslint-disable no-console */\nexport function debug(...args: Array<any>) {\n if (!globalThis.process?.env.DEBUG_VARLOCK) return;\n console.log(...args);\n}\n","import { redactString } from './lib/redaction';\n\nimport type { SerializedEnvGraph } from '../env-graph';\nimport { isBrowser } from '../lib/detect-runtime';\nimport { debug } from './lib/debug';\n\n// TODO: would like to move all of the redaction utils out of this file\n// but its complicated since it is imported by code that may be run in the backend and frontend\n// but the patching code (which only runs in the backend) use these helper functions\n\n// this does not cover all cases, but serves our needs so far for Next.js\nfunction isString(s: any) {\n return Object.prototype.toString.call(s) === '[object String]';\n}\n\nconst UNMASK_STR = '👁';\n\n\n/** key value lookup of sensitive values to their redacted version */\nlet sensitiveSecretsMap: Record<string, { key: string, redacted: string }> = {};\n\ntype ReplaceFn = (match: string, pre: string, val: string, post: string) => string;\nlet redactorFindReplace: undefined | { find: RegExp, replace: ReplaceFn };\n\nexport function resetRedactionMap(graph: SerializedEnvGraph) {\n // reset map of { [sensitive] => redacted }\n sensitiveSecretsMap = {};\n for (const itemKey in graph.config) {\n const item = graph.config[itemKey];\n if (item.isSensitive && item.value && isString(item.value)) {\n // TODO: we want to respect masking settings from the schema (once added)\n const redacted = redactString(item.value);\n if (redacted) sensitiveSecretsMap[item.value] = { key: itemKey, redacted };\n }\n }\n // if no sensitive items exist, we dont need to do any redaction, but the redact fn is checking for undefined\n if (!Object.keys(sensitiveSecretsMap).length) {\n redactorFindReplace = undefined;\n return;\n }\n\n // reset find/replace regex+fn used for redacting secrets in strings\n const findRegex = new RegExp(\n [\n `(${UNMASK_STR} )?`,\n '(',\n Object.keys(sensitiveSecretsMap)\n // Escape special characters\n .map((s) => s.replace(/[()[\\]{}*+?^$|#.,/\\\\\\s-]/g, '\\\\$&'))\n // Sort for maximal munch\n .sort((a, b) => b.length - a.length)\n .join('|'),\n ')',\n `( ${UNMASK_STR})?`,\n ].join(''),\n 'g',\n );\n\n const replaceFn: ReplaceFn = (match, pre, val, post) => {\n // the pre and post matches only will be populated if they were present\n // and they are used to unmask the secret - so we do not want to replace in this case\n if (pre && post) return match;\n return sensitiveSecretsMap[val].redacted;\n };\n redactorFindReplace = { find: findRegex, replace: replaceFn };\n}\n\n\n// While the module itself acts as a singleton to hold the current map of redacted values\n// we expose only the below const to end users\n\n\n/**\n * Redacts senstive config values from any string/array/object/etc\n *\n * NOTE - must be used only after varlock has loaded config\n * */\nexport function redactSensitiveConfig(o: any): any {\n if (!redactorFindReplace) return o;\n if (!o) return o;\n\n // TODO: handle more cases?\n // we can probably redact safely from a few other datatypes - like set,map,etc?\n // objects are a bit tougher\n if (Array.isArray(o)) {\n return o.map(redactSensitiveConfig);\n }\n // try to redact if it's a plain object - not necessarily great for perf...\n if (o && typeof (o) === 'object' && Object.getPrototypeOf(o) === Object.prototype) {\n try {\n return JSON.parse(redactSensitiveConfig(JSON.stringify(o)));\n } catch (err) {\n return o;\n }\n }\n\n const type = typeof o;\n if (type === 'string' || (type === 'object' && Object.prototype.toString.call(o) === '[object String]')) {\n return (o as string).replaceAll(redactorFindReplace.find, redactorFindReplace.replace);\n }\n\n return o;\n}\n\n/**\n * utility to unmask a secret/sensitive value when logging to the console\n * currently this only works on a single secret, not objects or aggregated strings\n * */\nexport function revealSensitiveConfig(secretStr: string) {\n // if redaction not enabled, we just return the secret itself\n if (!(globalThis as any)._varlockOrigWriteToConsoleFn) return secretStr;\n // otherwise we add some wrapper characters which will be removed by the patched console behaviour\n return `${UNMASK_STR} ${secretStr} ${UNMASK_STR}`;\n}\n\n\n\n\n\n// reusable leak scanning helper function, used by various integrations\nexport function scanForLeaks(\n toScan: string | ReadableStream | null,\n // optional additional information about what is being scanned to be used in error messages\n meta?: {\n method?: string,\n file?: string,\n },\n) {\n debug('⚡️ varlock scanning for leaks');\n if (!toScan) return toScan;\n\n function scanStrForLeaks(strToScan: string) {\n // console.log('[varlock leak scanner] ', strToScan.substr(0, 100));\n\n // TODO: probably should use a single regex\n for (const sensitiveValue in sensitiveSecretsMap) {\n if (strToScan.includes(sensitiveValue)) {\n const itemKey = sensitiveSecretsMap[sensitiveValue].key;\n\n // error stack can gets awkwardly buried since we're so deep in the internals\n // so we'll write a nicer error message to help the user debug\n // eslint-disable-next-line no-console\n console.error([\n '',\n `🚨 ${'DETECTED LEAKED SENSITIVE CONFIG'} 🚨`,\n `> Config item key: ${itemKey}`,\n ...meta?.method ? [`> Scan method: ${meta.method}`] : [],\n ...meta?.file ? [`> File: ${meta.file}`] : [],\n '',\n ].join('\\n'));\n\n throw new Error(`🚨 DETECTED LEAKED SENSITIVE CONFIG - ${itemKey}`);\n }\n }\n }\n\n // scan a string\n if (isString(toScan)) {\n scanStrForLeaks(toScan as string);\n return toScan;\n } else if (toScan instanceof Buffer) {\n scanStrForLeaks(toScan.toString());\n return toScan;\n // scan a ReadableStream by piping it through a scanner\n } else if (toScan instanceof ReadableStream) {\n if (toScan.locked) {\n // console.log('> stream already locked');\n return toScan;\n } else {\n // console.log('> stream will be scanned!');\n }\n const chunkDecoder = new TextDecoder();\n return toScan.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n const chunkStr = chunkDecoder.decode(chunk);\n scanStrForLeaks(chunkStr);\n controller.enqueue(chunk);\n },\n }),\n );\n }\n // other things may be passed in like Buffer... but we'll ignore for now\n return toScan;\n}\n\n// -----------\n\n\n\n\n// --------------\n\nlet initializedEnv = false;\nconst envValues = {} as Record<string, any>;\nexport const varlockSettings = {} as Record<string, any>;\n\nconst processExists = !!globalThis.process;\nconst originalProcessEnv = { ...processExists && process.env };\nlet varlockInjectedProcessEnvKeys: Array<string> | undefined;\n\nexport function initVarlockEnv(opts?: {\n allowFail?: boolean,\n}) {\n debug('⚡️ INIT VARLOCK ENV!', initializedEnv, !!(globalThis as any).__varlockLoadedEnv, !!globalThis.process?.env.__VARLOCK_ENV);\n\n // normally we can just bail if we detect we are in the browser\n // however when front-end related tests, it may appear that we are in the browser but it is not\n // also some frameworks inject a process polyfill, others do not\n if (isBrowser && !globalThis.process?.env.__VARLOCK_ENV) {\n initializedEnv = true;\n return;\n }\n\n\n let serializedEnvData: SerializedEnvGraph;\n // when we inject resolved config at build time, we store it here\n if ((globalThis as any).__varlockLoadedEnv) {\n serializedEnvData = (globalThis as any).__varlockLoadedEnv;\n\n // otherwise if we inject via `varlock run` or have already loaded, it will be in process.env\n } else if (processExists && process.env.__VARLOCK_ENV) {\n serializedEnvData = JSON.parse(process.env.__VARLOCK_ENV);\n } else {\n if (opts?.allowFail) return;\n // eslint-disable-next-line no-console\n console.error([\n '',\n '🚨 initVarlockEnv failed 🚨',\n 'try rerunning your command via `varlock run`',\n '',\n ].join('\\n'));\n throw new Error('initVarlockEnv failed');\n }\n Object.assign(varlockSettings, serializedEnvData.settings);\n resetRedactionMap(serializedEnvData);\n\n const setProcessEnv = processExists;\n\n // if we've already injected process.env vars in the past, we'll reset those now\n if (setProcessEnv) {\n if (varlockInjectedProcessEnvKeys) {\n for (const key of varlockInjectedProcessEnvKeys) delete process.env[key];\n for (const key of Object.keys(originalProcessEnv)) process.env[key] = originalProcessEnv[key];\n }\n varlockInjectedProcessEnvKeys = [];\n }\n\n for (const itemKey in serializedEnvData.config) {\n const itemValue = serializedEnvData.config[itemKey].value;\n envValues[itemKey] = itemValue;\n if (setProcessEnv) {\n varlockInjectedProcessEnvKeys?.push(itemKey);\n // when re-injecting into process.env, we treat undefined as empty string\n // this more closely matches expected behaviour from other .env loaders\n process.env[itemKey] = itemValue === undefined ? '' : String(itemValue);\n }\n }\n initializedEnv = true;\n}\n\n// we will attempt to call initVarlockEnv automatically, but in most cases it should be called explicitly\n// note that if this is being imported in the browser, process.env may not exist, so we do this in a try/catch\ntry {\n if (!initializedEnv) {\n // if we are automatically loading because __VARLOCK_ENV is already set\n // then we assume process.env vars have also already been set (although might not harm anything?)\n initVarlockEnv({ allowFail: true });\n }\n} catch (err) {\n // expected that this will fail when process.env does not exist\n // but we may want to look for specific errors\n}\n\n\n\n// some object keys are checked by various tools when handling arbitrary data, especially in templates\n// because our proxy objects throw errors when unknown keys are accessed, this causes problems\n// for now we can just filter out a these keys and it should be fairly harmless\n// TODO: ideally this could be customized by the user, and not specific to vue\nconst IGNORED_PROXY_KEYS = [\n // vue - see https://github.com/vuejs/core/blob/70773d00985135a50556c61fb9855ed6b930cb82/packages/reactivity/src/ref.ts#L101\n '__v_isRef',\n];\n\n\n// this gets exported and then augmented by our type generation\n// ideally we'd start with a loose type `Record<string,any>` and then override it with the actual schema\n// so that if type generation was disabled, a user could still use `ENV`\n// but TS wont let us, so instead we start with it being empty, which will cause type errors\n// unless type generation is enabled\nexport interface TypedEnvSchema {}\n\nconst EnvProxy = new Proxy<TypedEnvSchema>({}, {\n get(target, prop) {\n // ignore symbols, as it likely an external tool checking something\n if (typeof prop === 'symbol') return;\n // special cases to avoid throwing on invalid keys\n if (IGNORED_PROXY_KEYS.includes(prop)) return;\n\n if (!initializedEnv) {\n throw new Error('varlock ENV not initialized');\n }\n\n if (prop in envValues) return envValues[prop];\n if ((globalThis as any).__varlockThrowOnMissingKeys) {\n // during development, we can feed in extra metadata and show more helpful errors\n if ((globalThis as any).__varlockValidKeys && (globalThis as any).__varlockValidKeys.includes(prop)) {\n throw new Error(`\\`ENV.${prop}\\` exists, but is not available in this environment`);\n } else {\n throw new Error(`\\`ENV.${prop}\\` does not exist`);\n }\n }\n return undefined;\n },\n});\n\nexport const ENV = EnvProxy;\n"]}