varlock 0.2.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +23 -10
  2. package/dist/chunk-36LTSUR6.js +48 -0
  3. package/dist/chunk-36LTSUR6.js.map +1 -0
  4. package/dist/{chunk-UDXNNRWI.js → chunk-4A54P4EM.js} +10 -10
  5. package/dist/chunk-4A54P4EM.js.map +1 -0
  6. package/dist/chunk-4DZ3IHF6.js +34 -0
  7. package/dist/chunk-4DZ3IHF6.js.map +1 -0
  8. package/dist/{chunk-Q3C4VKFT.js → chunk-5HF5TS2C.js} +17 -41
  9. package/dist/chunk-5HF5TS2C.js.map +1 -0
  10. package/dist/chunk-ALNELNTO.js +68 -0
  11. package/dist/chunk-ALNELNTO.js.map +1 -0
  12. package/dist/{chunk-YIXN7TC7.js → chunk-BS7P3FRR.js} +40 -64
  13. package/dist/chunk-BS7P3FRR.js.map +1 -0
  14. package/dist/{chunk-OY5U5WTF.js → chunk-CBP4M7BN.js} +2969 -2140
  15. package/dist/chunk-CBP4M7BN.js.map +1 -0
  16. package/dist/{chunk-HTF7NU5C.js → chunk-EDSWMPIV.js} +11 -19
  17. package/dist/chunk-EDSWMPIV.js.map +1 -0
  18. package/dist/{chunk-BXR2RIO6.js → chunk-F5WNDO7I.js} +6 -5
  19. package/dist/chunk-F5WNDO7I.js.map +1 -0
  20. package/dist/{chunk-35SAMS66.js → chunk-GJ7PTJM4.js} +3 -3
  21. package/dist/{chunk-35SAMS66.js.map → chunk-GJ7PTJM4.js.map} +1 -1
  22. package/dist/chunk-HRNVJUR5.js +17 -0
  23. package/dist/chunk-HRNVJUR5.js.map +1 -0
  24. package/dist/{chunk-PESTWPBG.js → chunk-QNKJGOQ6.js} +8 -6
  25. package/dist/chunk-QNKJGOQ6.js.map +1 -0
  26. package/dist/chunk-VKRGHRPK.js +331 -0
  27. package/dist/chunk-VKRGHRPK.js.map +1 -0
  28. package/dist/chunk-WIIXKZ3N.js +405 -0
  29. package/dist/chunk-WIIXKZ3N.js.map +1 -0
  30. package/dist/chunk-Y3ITSQA4.js +58 -0
  31. package/dist/chunk-Y3ITSQA4.js.map +1 -0
  32. package/dist/{chunk-ISSW6NKZ.js → chunk-YFP6VA2U.js} +20 -17
  33. package/dist/chunk-YFP6VA2U.js.map +1 -0
  34. package/dist/cli/cli-executable.js +56 -38
  35. package/dist/cli/cli-executable.js.map +1 -1
  36. package/dist/config-item-GN5AUR45.js +5 -0
  37. package/dist/config-item-GN5AUR45.js.map +1 -0
  38. package/dist/{env-graph-DIcuAiYh.d.ts → env-graph-COORmJlH.d.ts} +121 -2
  39. package/dist/help.command-7E52XAOO.js +5 -0
  40. package/dist/{help.command-MLH2WA5Y.js.map → help.command-7E52XAOO.js.map} +1 -1
  41. package/dist/index.d.ts +2 -2
  42. package/dist/index.js +4 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/init.command-FMHXUGDI.js +12 -0
  45. package/dist/{init.command-RAYBZ66R.js.map → init.command-FMHXUGDI.js.map} +1 -1
  46. package/dist/load.command-6I2D5BPL.js +11 -0
  47. package/dist/{load.command-KOSPGLV6.js.map → load.command-6I2D5BPL.js.map} +1 -1
  48. package/dist/plugin-lib.d.ts +2 -2
  49. package/dist/printenv.command-TROZTZ26.js +12 -0
  50. package/dist/printenv.command-TROZTZ26.js.map +1 -0
  51. package/dist/run.command-4OJ6MBP6.js +12 -0
  52. package/dist/{run.command-BOBQIELJ.js.map → run.command-4OJ6MBP6.js.map} +1 -1
  53. package/dist/runtime/env.d.ts +1 -1
  54. package/dist/scan.command-YRNAKUZT.js +13 -0
  55. package/dist/scan.command-YRNAKUZT.js.map +1 -0
  56. package/dist/telemetry.command-UZQSUYAY.js +11 -0
  57. package/dist/{telemetry.command-SFEMMU3U.js.map → telemetry.command-UZQSUYAY.js.map} +1 -1
  58. package/dist/typegen.command-V4MATON4.js +12 -0
  59. package/dist/typegen.command-V4MATON4.js.map +1 -0
  60. package/package.json +18 -17
  61. package/LICENSE +0 -21
  62. package/dist/chunk-BXR2RIO6.js.map +0 -1
  63. package/dist/chunk-HTF7NU5C.js.map +0 -1
  64. package/dist/chunk-ISSW6NKZ.js.map +0 -1
  65. package/dist/chunk-OY5U5WTF.js.map +0 -1
  66. package/dist/chunk-PESTWPBG.js.map +0 -1
  67. package/dist/chunk-Q3C4VKFT.js.map +0 -1
  68. package/dist/chunk-UDXNNRWI.js.map +0 -1
  69. package/dist/chunk-YIXN7TC7.js.map +0 -1
  70. package/dist/help.command-MLH2WA5Y.js +0 -5
  71. package/dist/init.command-RAYBZ66R.js +0 -9
  72. package/dist/load.command-KOSPGLV6.js +0 -9
  73. package/dist/run.command-BOBQIELJ.js +0 -10
  74. package/dist/telemetry.command-SFEMMU3U.js +0 -9
package/README.md CHANGED
@@ -2,9 +2,18 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/varlock.svg)](https://www.npmjs.com/package/varlock) [![npm downloads](https://img.shields.io/npm/dm/varlock.svg)](https://www.npmjs.com/package/varlock) [![GitHub stars](https://img.shields.io/github/stars/dmno-dev/varlock.svg?style=social&label=Star)](https://github.com/dmno-dev/varlock) [![license](https://img.shields.io/npm/l/varlock.svg)](https://github.com/dmno-dev/varlock/blob/main/LICENSE)
4
4
 
5
- > See https://varlock.dev for docs and examples.
5
+ > AI-safe .env files: Schemas for agents, Secrets for humans.
6
6
 
7
- _A sample `.env.schema`_:
7
+ - 🤖 AI-safe config — agents read your schema, never your secrets
8
+ - 🔍 proactive leak scanning via `varlock scan` + git hooks
9
+ - 🔏 runtime protection — log redaction and leak prevention
10
+ - 🛡️ validation, coercion, type safety w/ IntelliSense
11
+ - 🌐 flexible multi-environment management — auto .env.* loading and explicit import
12
+ - 🔌 6 secret manager plugins (1Password, Infisical, AWS, Azure, GCP, Bitwarden)
13
+
14
+ See https://varlock.dev for full docs and examples.
15
+
16
+ _A sample `.env.schema`_:
8
17
  ```bash
9
18
  # @currentEnv=$APP_ENV
10
19
  # ---
@@ -14,11 +23,11 @@ APP_ENV=development #sets default value
14
23
 
15
24
  # API port
16
25
  # @type=port @example=3000
17
- API_PORT=
26
+ API_PORT=
18
27
 
19
28
  # API url including expansion of another env var
20
29
  # @required @type=url
21
- API_URL=localhost:${API_PORT}
30
+ API_URL=localhost:${API_PORT}
22
31
 
23
32
  # API key with validation, securely fetched from 1Password
24
33
  # @required @sensitive @type=string(startsWith=sk-)
@@ -31,7 +40,7 @@ SOME_SERVICE_API_URL=https://api.someservice.com
31
40
 
32
41
  ## Installation
33
42
 
34
- You can get started with varlock by installing the CLI:
43
+ You can get started with varlock by installing the CLI:
35
44
 
36
45
  ```bash
37
46
  # Install as a dependency in a js project
@@ -44,28 +53,32 @@ brew install dmno-dev/tap/varlock
44
53
  curl -sSfL https://varlock.dev/install.sh | sh -s
45
54
  ```
46
55
 
47
- See the full installation [docs](https://varlock.dev/getting-started/installation/).
56
+ See the full installation [docs](https://varlock.dev/getting-started/installation/).
48
57
 
49
58
  ## Workflow
50
59
 
51
- Validate your `.env.schema` with:
60
+ Validate your `.env.schema` with:
52
61
 
53
62
  ```bash
54
63
  varlock load
55
64
  ```
56
65
 
57
- If you need to pass resolved env vars into another process, you can run:
66
+ If you need to pass resolved env vars into another process, you can run:
58
67
 
59
68
  ```bash
60
69
  varlock run -- node script.js
61
70
  ```
62
71
 
63
- Or you can integrate more deeply with one of our [integrations](https://varlock.dev/integrations/javascript/) to get log redaction and leak prevention.
72
+ Or you can integrate more deeply with one of our [integrations](https://varlock.dev/integrations/javascript/) to get log redaction and leak prevention.
73
+
74
+ ## AI-Safe Config
75
+
76
+ Your `.env.schema` gives AI agents full context on your config — variable names, types, validation rules, descriptions — without ever exposing secret values. Combined with `varlock scan` to catch leaked secrets in AI-generated code, varlock is purpose-built for the AI era. Learn more in the [AI-safe config guide](https://varlock.dev/guides/ai-tools/).
64
77
 
65
78
  ## @env-spec
66
79
 
67
80
  Varlock is built on top of @env-spec, a new DSL for attaching a schema and additional functionality to .env files using JSDoc style comments. The @env-spec package contains a parser and info about the spec itself.
68
81
 
69
- - @env-spec [docs](https://varlock.dev/env-spec/overview/)
82
+ - @env-spec [docs](https://varlock.dev/env-spec/overview/)
70
83
  - @env-spec [RFC](https://github.com/dmno-dev/varlock/discussions/17)
71
84
 
@@ -0,0 +1,48 @@
1
+ import { CliExitError } from './chunk-4DZ3IHF6.js';
2
+ import { define } from './chunk-4A54P4EM.js';
3
+ import { checkForSchemaErrors, checkForNoEnvFiles } from './chunk-YFP6VA2U.js';
4
+ import { loadVarlockEnvGraph } from './chunk-HRNVJUR5.js';
5
+ import { __name } from './chunk-6PEHRAEP.js';
6
+
7
+ // src/cli/commands/typegen.command.ts
8
+ var commandSpec = define({
9
+ name: "typegen",
10
+ description: "Generate TypeScript types from your env schema",
11
+ args: {
12
+ path: {
13
+ type: "string",
14
+ short: "p",
15
+ description: "Path to a specific .env file or directory to use as the entry point"
16
+ }
17
+ },
18
+ examples: `
19
+ Generates TypeScript type definitions from your .env schema files.
20
+ Uses only non-environment-specific schema info, so output is deterministic
21
+ regardless of which environment is active.
22
+
23
+ This is useful when you have \`@generateTypes(lang=ts, path=env.d.ts, auto=false)\`
24
+ in your schema to disable automatic type generation during \`varlock load\` or \`varlock run\`.
25
+
26
+ Examples:
27
+ varlock typegen # Generate types using default schema
28
+ varlock typegen --path .env.prod # Generate types from a specific .env file
29
+ `.trim()
30
+ });
31
+ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
32
+ const envGraph = await loadVarlockEnvGraph({
33
+ entryFilePath: ctx.values.path
34
+ });
35
+ checkForSchemaErrors(envGraph);
36
+ checkForNoEnvFiles(envGraph);
37
+ const generatedCount = await envGraph.generateTypesIfNeeded({ ignoreAutoFalse: true });
38
+ if (generatedCount === 0) {
39
+ throw new CliExitError("No @generateTypes decorator found in your schema", {
40
+ suggestion: "Add `@generateTypes(lang=ts, path=env.d.ts)` to your .env.schema file."
41
+ });
42
+ }
43
+ console.log("\u2705 Types generated successfully");
44
+ }, "commandFn");
45
+
46
+ export { commandFn, commandSpec };
47
+ //# sourceMappingURL=chunk-36LTSUR6.js.map
48
+ //# sourceMappingURL=chunk-36LTSUR6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/commands/typegen.command.ts"],"names":[],"mappings":";;;;;;;AAOO,IAAM,cAAc,MAAA,CAAO;AAAA,EAChC,IAAA,EAAM,SAAA;AAAA,EACN,WAAA,EAAa,gDAAA;AAAA,EACb,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,IAAA,EAAM,QAAA;AAAA,MACN,KAAA,EAAO,GAAA;AAAA,MACP,WAAA,EAAa;AAAA;AACf,GACF;AAAA,EACA,QAAA,EAAU;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,CAAA,CAWV,IAAA;AACF,CAAC;AAGM,IAAM,SAAA,iCAA6D,GAAA,KAAQ;AAChF,EAAA,MAAM,QAAA,GAAW,MAAM,mBAAA,CAAoB;AAAA,IACzC,aAAA,EAAe,IAAI,MAAA,CAAO;AAAA,GAC3B,CAAA;AACD,EAAA,oBAAA,CAAqB,QAAQ,CAAA;AAC7B,EAAA,kBAAA,CAAmB,QAAQ,CAAA;AAG3B,EAAA,MAAM,iBAAiB,MAAM,QAAA,CAAS,sBAAsB,EAAE,eAAA,EAAiB,MAAM,CAAA;AAErF,EAAA,IAAI,mBAAmB,CAAA,EAAG;AACxB,IAAA,MAAM,IAAI,aAAa,kDAAA,EAAoD;AAAA,MACzE,UAAA,EAAY;AAAA,KACb,CAAA;AAAA,EACH;AAEA,EAAA,OAAA,CAAQ,IAAI,qCAAgC,CAAA;AAC9C,CAAA,EAjBmE,WAAA","file":"chunk-36LTSUR6.js","sourcesContent":["import { define } from 'gunshi';\n\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { checkForNoEnvFiles, checkForSchemaErrors } from '../helpers/error-checks';\nimport { CliExitError } from '../helpers/exit-error';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\n\nexport const commandSpec = define({\n name: 'typegen',\n description: 'Generate TypeScript types from your env schema',\n args: {\n path: {\n type: 'string',\n short: 'p',\n description: 'Path to a specific .env file or directory to use as the entry point',\n },\n },\n examples: `\nGenerates TypeScript type definitions from your .env schema files.\nUses only non-environment-specific schema info, so output is deterministic\nregardless of which environment is active.\n\nThis is useful when you have \\`@generateTypes(lang=ts, path=env.d.ts, auto=false)\\`\nin your schema to disable automatic type generation during \\`varlock load\\` or \\`varlock run\\`.\n\nExamples:\n varlock typegen # Generate types using default schema\n varlock typegen --path .env.prod # Generate types from a specific .env file\n`.trim(),\n});\n\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const envGraph = await loadVarlockEnvGraph({\n entryFilePath: ctx.values.path as string | undefined,\n });\n checkForSchemaErrors(envGraph);\n checkForNoEnvFiles(envGraph);\n\n // Force type generation even if auto=false is set\n const generatedCount = await envGraph.generateTypesIfNeeded({ ignoreAutoFalse: true });\n\n if (generatedCount === 0) {\n throw new CliExitError('No @generateTypes decorator found in your schema', {\n suggestion: 'Add `@generateTypes(lang=ts, path=env.d.ts)` to your .env.schema file.',\n });\n }\n\n console.log('✅ Types generated successfully');\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { __name } from './chunk-6PEHRAEP.js';
2
2
 
3
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/utils-DNS9AIR_.js
3
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/utils-DNS9AIR_.js
4
4
  function kebabnize(str) {
5
5
  return str.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? "-" : "") + match.toLowerCase());
6
6
  }
@@ -76,7 +76,7 @@ function deepFreeze(obj, ignores = []) {
76
76
  }
77
77
  __name(deepFreeze, "deepFreeze");
78
78
 
79
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/constants-WviiKqbt.js
79
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/constants-WviiKqbt.js
80
80
  var ANONYMOUS_COMMAND_NAME = "(anonymous)";
81
81
  var NOOP = /* @__PURE__ */ __name(() => {
82
82
  }, "NOOP");
@@ -98,7 +98,7 @@ var CLI_OPTIONS_DEFAULT = {
98
98
  fallbackToEntry: false
99
99
  };
100
100
 
101
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/context-CHDIbgwd.js
101
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/context-CHDIbgwd.js
102
102
  async function createCommandContext({ args = {}, explicit = {}, values = {}, positionals = [], rest = [], argv = [], tokens = [], command = {}, extensions = {}, cliOptions = {}, callMode = "entry", commandPath = [], omitted = false, validationError = void 0 }) {
103
103
  const _args = Object.entries(args).reduce((acc, [key, value]) => {
104
104
  acc[key] = Object.assign(create(), value);
@@ -152,13 +152,13 @@ function getCommandName(cmd) {
152
152
  }
153
153
  __name(getCommandName, "getCommandName");
154
154
 
155
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/definition.js
155
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/definition.js
156
156
  function define(definition) {
157
157
  return definition;
158
158
  }
159
159
  __name(define, "define");
160
160
 
161
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/core-C9P_Gd_f.js
161
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-C9P_Gd_f.js
162
162
  var HYPHEN_CHAR = "-";
163
163
  var HYPHEN_CODE = HYPHEN_CHAR.codePointAt(0);
164
164
  var EQUAL_CHAR = "=";
@@ -895,7 +895,7 @@ async function executeCommand(cmd, ctx, decorators) {
895
895
  }
896
896
  __name(executeCommand, "executeCommand");
897
897
 
898
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/core-eN5xmB3s.js
898
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-eN5xmB3s.js
899
899
  var NOOP_EXTENSION = /* @__PURE__ */ __name(() => {
900
900
  return /* @__PURE__ */ Object.create(null);
901
901
  }, "NOOP_EXTENSION");
@@ -935,7 +935,7 @@ function plugin(options = {}) {
935
935
  }
936
936
  __name(plugin, "plugin");
937
937
 
938
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/src-CfO5ab2f.js
938
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/src-CfO5ab2f.js
939
939
  var BUILT_IN_PREFIX = "_";
940
940
  var PLUGIN_PREFIX = "g";
941
941
  var ARG_PREFIX = "arg";
@@ -1294,7 +1294,7 @@ function renderer() {
1294
1294
  }
1295
1295
  __name(renderer, "renderer");
1296
1296
 
1297
- // ../../node_modules/.pnpm/gunshi@0.28.0/node_modules/gunshi/lib/cli-l4AYjN-O.js
1297
+ // ../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/cli-l4AYjN-O.js
1298
1298
  var pluginId2 = namespacedId("global");
1299
1299
  var decorator = /* @__PURE__ */ __name((baseRunner) => async (ctx) => {
1300
1300
  const { values, validationError, extensions: { [pluginId2]: { showVersion, showHeader, showUsage, showValidationErrors } } } = ctx;
@@ -1382,5 +1382,5 @@ gunshi/lib/cli-l4AYjN-O.js:
1382
1382
  */
1383
1383
 
1384
1384
  export { cli, define };
1385
- //# sourceMappingURL=chunk-UDXNNRWI.js.map
1386
- //# sourceMappingURL=chunk-UDXNNRWI.js.map
1385
+ //# sourceMappingURL=chunk-4A54P4EM.js.map
1386
+ //# sourceMappingURL=chunk-4A54P4EM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/utils-DNS9AIR_.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/constants-WviiKqbt.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/context-CHDIbgwd.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/definition.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-C9P_Gd_f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-eN5xmB3s.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/src-CfO5ab2f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/cli-l4AYjN-O.js"],"names":["cmd","extension","arg","renderer","decorator","plugin","dependencies","pluginId"],"mappings":"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","file":"chunk-4A54P4EM.js","sourcesContent":["//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/utils-CxvkckUD.js\n/**\n* Entry point of utils.\n*\n* Note that this entry point is used by gunshi to import utility functions.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Convert a string to kebab-case.\n*\n* @param str - A string to convert\n* @returns Converted string into kebab-case.\n*/\nfunction kebabnize(str) {\n\treturn str.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase());\n}\n\n//#endregion\n//#region src/utils.ts\n/**\n* Check if the given command is a {@link LazyCommand}.\n*\n* @param cmd - A command to check\n* @returns `true` if the command is a {@link LazyCommand}, otherwise `false\n*/\nfunction isLazyCommand(cmd) {\n\treturn typeof cmd === \"function\" && \"commandName\" in cmd && !!cmd.commandName;\n}\n/**\n* Resolve a lazy command to a {@link Command}.\n*\n* @param cmd - A {@link Commandable} or {@link LazyCommand} to resolve\n* @param name - Optional name of the command, if not provided, it will use the name from the command itself.\n* @param needRunResolving - Whether to run the resolving function of the lazy command.\n* @returns A resolved {@link Command}\n*/\nasync function resolveLazyCommand(cmd, name, needRunResolving = false) {\n\tlet command;\n\tif (isLazyCommand(cmd)) {\n\t\tconst baseCommand = {\n\t\t\tname: cmd.commandName,\n\t\t\tdescription: cmd.description,\n\t\t\targs: cmd.args,\n\t\t\texamples: cmd.examples,\n\t\t\tinternal: cmd.internal,\n\t\t\tentry: cmd.entry,\n\t\t\tsubCommands: cmd.subCommands\n\t\t};\n\t\tif (\"resource\" in cmd && cmd.resource) baseCommand.resource = cmd.resource;\n\t\tcommand = Object.assign(create(), baseCommand);\n\t\tif (needRunResolving) {\n\t\t\tconst loaded = await cmd();\n\t\t\tif (typeof loaded === \"function\") command.run = loaded;\n\t\t\telse if (typeof loaded === \"object\") {\n\t\t\t\tif (loaded.run == null) throw new TypeError(`'run' is required in command: ${cmd.name || name}`);\n\t\t\t\tcommand.run = loaded.run;\n\t\t\t\tcommand.name = loaded.name;\n\t\t\t\tcommand.description = loaded.description;\n\t\t\t\tcommand.args = loaded.args;\n\t\t\t\tcommand.examples = loaded.examples;\n\t\t\t\tcommand.internal = loaded.internal;\n\t\t\t\tcommand.entry = loaded.entry;\n\t\t\t\tcommand.subCommands = loaded.subCommands || cmd.subCommands;\n\t\t\t\tif (\"resource\" in loaded && loaded.resource) command.resource = loaded.resource;\n\t\t\t} else throw new TypeError(`Cannot resolve command: ${cmd.name || name}`);\n\t\t}\n\t} else command = Object.assign(create(), cmd);\n\tif (command.name == null && name) command.name = name;\n\treturn deepFreeze(command);\n}\n/**\n* Create an object with the specified prototype. A shorthand for `Object.create`.\n*\n* @param obj - An object to use as the prototype for the new object. If `null`, it will create an object with no prototype.\n* @returns A new object with the specified prototype\n*/\nfunction create(obj = null) {\n\treturn Object.create(obj);\n}\n/**\n* Log a message to the console.\n*\n* @param args - Arguments to log\n*/\nfunction log(...args) {\n\tconsole.log(...args);\n}\n/**\n* Get the sub-commands of a command as a normalized Map.\n*\n* @param cmd - A command or lazy command\n* @returns A Map of sub-commands, or undefined if the command has no sub-commands.\n*/\nfunction getCommandSubCommands(cmd) {\n\tconst subCommands = isLazyCommand(cmd) ? cmd.subCommands : typeof cmd === \"object\" ? cmd.subCommands : void 0;\n\tif (!subCommands) return;\n\tif (subCommands instanceof Map) return subCommands.size > 0 ? subCommands : void 0;\n\tif (typeof subCommands === \"object\") {\n\t\tconst entries = Object.entries(subCommands);\n\t\tif (entries.length === 0) return;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const [name, cmd] of entries) map.set(name, cmd);\n\t\treturn map;\n\t}\n}\n/**\n* Deep freeze an object, making it immutable.\n*\n* @param obj - The object to freeze\n* @param ignores - Properties to ignore during freezing\n* @returns A frozen object\n*/\nfunction deepFreeze(obj, ignores = []) {\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tfor (const key of Object.keys(obj)) {\n\t\tconst value = obj[key];\n\t\tif (ignores.includes(key)) continue;\n\t\tif (typeof value === \"object\" && value !== null) deepFreeze(value, ignores);\n\t}\n\treturn Object.freeze(obj);\n}\n\n//#endregion\nexport { log as a, isLazyCommand as i, deepFreeze as n, resolveLazyCommand as o, getCommandSubCommands as r, kebabnize as s, create as t };","//#region src/constants.ts\nconst ANONYMOUS_COMMAND_NAME = \"(anonymous)\";\n/**\n* A no-operation function.\n*/\nconst NOOP = () => {};\nconst CLI_OPTIONS_DEFAULT = {\n\tname: void 0,\n\tdescription: void 0,\n\tversion: void 0,\n\tcwd: void 0,\n\tusageSilent: false,\n\tsubCommands: void 0,\n\tleftMargin: 2,\n\tmiddleMargin: 10,\n\tusageOptionType: false,\n\tusageOptionValue: true,\n\trenderHeader: void 0,\n\trenderUsage: void 0,\n\trenderValidationErrors: void 0,\n\tplugins: void 0,\n\tfallbackToEntry: false\n};\n\n//#endregion\nexport { CLI_OPTIONS_DEFAULT as n, NOOP as r, ANONYMOUS_COMMAND_NAME as t };","import { a as log, i as isLazyCommand, n as deepFreeze, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\n\n//#region src/context.ts\n/**\n* The entry for gunshi context.\n* This module is exported for the purpose of testing the command.\n*\n* @example\n* ```js\n* import { createCommandContext } from 'gunshi/context'\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a command context.\n*\n* @param param - A {@link CommandContextParams | parameters} to create a command context.\n* @returns A {@link CommandContext | command context}, which is readonly.\n*/\nasync function createCommandContext({ args = {}, explicit = {}, values = {}, positionals = [], rest = [], argv = [], tokens = [], command = {}, extensions = {}, cliOptions = {}, callMode = \"entry\", commandPath = [], omitted = false, validationError = void 0 }) {\n\t/**\n\t* normailize the options schema and values, to avoid prototype pollution\n\t*/\n\tconst _args = Object.entries(args).reduce((acc, [key, value]) => {\n\t\tacc[key] = Object.assign(create(), value);\n\t\treturn acc;\n\t}, create());\n\t/**\n\t* setup the environment\n\t*/\n\tconst env = Object.assign(create(), CLI_OPTIONS_DEFAULT, cliOptions);\n\t/**\n\t* apply Command definition's rendering option with highest priority\n\t*/\n\tif (command.rendering) {\n\t\tconst { header, usage, validationErrors } = command.rendering;\n\t\tif (header !== void 0) env.renderHeader = header;\n\t\tif (usage !== void 0) env.renderUsage = usage;\n\t\tif (validationErrors !== void 0) env.renderValidationErrors = validationErrors;\n\t}\n\t/**\n\t* create the command context\n\t*/\n\tconst core = Object.assign(create(), {\n\t\tname: getCommandName(command),\n\t\tdescription: command.description,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tenv,\n\t\targs: _args,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\t_: argv,\n\t\ttokens,\n\t\ttoKebab: command.toKebab,\n\t\tlog: cliOptions.usageSilent ? NOOP : log,\n\t\tvalidationError\n\t});\n\t/**\n\t* extend the command context with extensions\n\t*/\n\tif (Object.keys(extensions).length > 0) {\n\t\tconst ext = create(null);\n\t\tObject.defineProperty(core, \"extensions\", {\n\t\t\tvalue: ext,\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\tfor (const [key, extension] of Object.entries(extensions)) {\n\t\t\text[key] = await extension.factory(core, command);\n\t\t\tif (extension.onFactory) await extension.onFactory(core, command);\n\t\t}\n\t}\n\treturn deepFreeze(core, [\"extensions\"]);\n}\nfunction getCommandName(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.commandName || cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse if (typeof cmd === \"object\") return cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse return ANONYMOUS_COMMAND_NAME;\n}\n\n//#endregion\nexport { createCommandContext as t };","import { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region src/definition.ts\n/**\n* Define a {@link Command | command}.\n*\n* @typeParam G - A {@link GunshiParamsConstraint} type\n*\n* @param definition - A {@link Command | command} definition\n* @returns A defined {@link Command | command}\n*/\nfunction define(definition) {\n\treturn definition;\n}\n/**\n* Define a {@link Command | command} with types\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* // Define a command with specific extensions type\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = defineWithTypes<{ extensions: MyExtensions }>()({\n* name: 'greet',\n* args: {\n* name: { type: 'string' }\n* },\n* run: ctx => {\n* // ctx.values is inferred as { name?: string }\n* // ctx.extensions is MyExtensions\n* }\n* })\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a command definition via {@link define}\n*\n* @since v0.27.0\n*/\nfunction defineWithTypes() {\n\treturn (definition) => {\n\t\treturn define(definition);\n\t};\n}\n/**\n* Define a {@link LazyCommand | lazy command} with or without definition.\n*\n* @param loader - A {@link CommandLoader | command loader} function that returns a command definition\n* @param definition - An optional {@link Command | command} definition\n* @returns A {@link LazyCommand | lazy command} that can be executed later\n*/\nfunction lazy(loader, definition) {\n\tconst lazyCommand = loader;\n\tif (definition != null) {\n\t\tlazyCommand.commandName = definition.name;\n\t\tlazyCommand.description = definition.description;\n\t\tlazyCommand.args = definition.args;\n\t\tlazyCommand.examples = definition.examples;\n\t\tlazyCommand.internal = definition.internal;\n\t\tlazyCommand.entry = definition.entry;\n\t\tlazyCommand.toKebab = definition.toKebab;\n\t\tif (definition.subCommands) lazyCommand.subCommands = definition.subCommands;\n\t\tif (\"resource\" in definition) lazyCommand.resource = definition.resource;\n\t}\n\treturn lazyCommand;\n}\n/**\n* Define a {@link LazyCommand | lazy command} with specific type parameters.\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = lazyWithTypes<{ extensions: MyExtensions }>()(\n* () => {\n* return ctx => {\n* // Command runner implementation\n* ctx.extensions.logger?.log('Command executed')\n* },\n* {\n* name: 'lazy-command',\n* args: {\n* opt: {\n* type: 'string',\n* description: 'An optional string argument',\n* required: false,\n* },\n* },\n* )\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a lazy command definition via {@link lazy}\n*\n* @since v0.27.0\n*/\nfunction lazyWithTypes() {\n\treturn (loader, definition) => {\n\t\treturn lazy(loader, definition);\n\t};\n}\n\n//#endregion\nexport { createCommandContext, define, defineWithTypes, lazy, lazyWithTypes };","import { i as isLazyCommand, o as resolveLazyCommand, r as getCommandSubCommands, s as kebabnize, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/parser.js\nconst HYPHEN_CHAR = \"-\";\nconst HYPHEN_CODE = HYPHEN_CHAR.codePointAt(0);\nconst EQUAL_CHAR = \"=\";\nconst EQUAL_CODE = EQUAL_CHAR.codePointAt(0);\nconst TERMINATOR = \"--\";\nconst SHORT_OPTION_PREFIX = HYPHEN_CHAR;\nconst LONG_OPTION_PREFIX = \"--\";\n/**\n* Parse command line arguments.\n*\n* @param args - command line arguments\n* @param options - parse options, about details see {@link ParserOptions}\n* @returns Argument tokens.\n*\n* @example\n* ```js\n* import { parseArgs } from 'args-tokens' // for Node.js and Bun\n* // import { parseArgs } from 'jsr:@kazupon/args-tokens' // for Deno\n*\n* const tokens = parseArgs(['--foo', 'bar', '-x', '--bar=baz'])\n* // do something with using tokens\n* // ...\n* console.log('tokens:', tokens)\n* ```\n*/\nfunction parseArgs(args, options = {}) {\n\tconst { allowCompatible = false } = options;\n\tconst tokens = [];\n\tconst remainings = [...args];\n\tlet index = -1;\n\tlet groupCount = 0;\n\tlet hasShortValueSeparator = false;\n\twhile (remainings.length > 0) {\n\t\tconst arg = remainings.shift();\n\t\tif (arg == void 0) break;\n\t\tconst nextArg = remainings[0];\n\t\tif (groupCount > 0) groupCount--;\n\t\telse index++;\n\t\tif (arg === TERMINATOR) {\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option-terminator\",\n\t\t\t\tindex\n\t\t\t});\n\t\t\tconst mapped = remainings.map((arg) => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"positional\",\n\t\t\t\t\tindex: ++index,\n\t\t\t\t\tvalue: arg\n\t\t\t\t};\n\t\t\t});\n\t\t\ttokens.push(...mapped);\n\t\t\tbreak;\n\t\t}\n\t\tif (isShortOption(arg)) {\n\t\t\tconst shortOption = arg.charAt(1);\n\t\t\tlet value;\n\t\t\tlet inlineValue;\n\t\t\tif (groupCount) {\n\t\t\t\ttokens.push({\n\t\t\t\t\tkind: \"option\",\n\t\t\t\t\tname: shortOption,\n\t\t\t\t\trawName: arg,\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue,\n\t\t\t\t\tinlineValue\n\t\t\t\t});\n\t\t\t\tif (groupCount === 1 && hasOptionValue(nextArg)) {\n\t\t\t\t\tvalue = remainings.shift();\n\t\t\t\t\tif (hasShortValueSeparator) {\n\t\t\t\t\t\tinlineValue = true;\n\t\t\t\t\t\thasShortValueSeparator = false;\n\t\t\t\t\t}\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\tkind: \"option\",\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tinlineValue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else tokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: shortOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue\n\t\t\t});\n\t\t\tif (value != null) ++index;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isShortOptionGroup(arg)) {\n\t\t\tconst expanded = [];\n\t\t\tlet shortValue = \"\";\n\t\t\tfor (let i = 1; i < arg.length; i++) {\n\t\t\t\tconst shortableOption = arg.charAt(i);\n\t\t\t\tif (hasShortValueSeparator) shortValue += shortableOption;\n\t\t\t\telse if (!allowCompatible && shortableOption.codePointAt(0) === EQUAL_CODE) hasShortValueSeparator = true;\n\t\t\t\telse expanded.push(`${SHORT_OPTION_PREFIX}${shortableOption}`);\n\t\t\t}\n\t\t\tif (shortValue) expanded.push(shortValue);\n\t\t\tremainings.unshift(...expanded);\n\t\t\tgroupCount = expanded.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOption(arg)) {\n\t\t\tconst longOption = arg.slice(2);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue: void 0,\n\t\t\t\tinlineValue: void 0\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOptionAndValue(arg)) {\n\t\t\tconst equalIndex = arg.indexOf(EQUAL_CHAR);\n\t\t\tconst longOption = arg.slice(2, equalIndex);\n\t\t\tconst value = arg.slice(equalIndex + 1);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: `${LONG_OPTION_PREFIX}${longOption}`,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue: true\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\ttokens.push({\n\t\t\tkind: \"positional\",\n\t\t\tindex,\n\t\t\tvalue: arg\n\t\t});\n\t}\n\treturn tokens;\n}\n/**\n* Check if `arg` is a short option (e.g. `-f`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option.\n*/\nfunction isShortOption(arg) {\n\treturn arg.length === 2 && arg.codePointAt(0) === HYPHEN_CODE && arg.codePointAt(1) !== HYPHEN_CODE;\n}\n/**\n* Check if `arg` is a short option group (e.g. `-abc`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option group.\n*/\nfunction isShortOptionGroup(arg) {\n\tif (arg.length <= 2) return false;\n\tif (arg.codePointAt(0) !== HYPHEN_CODE) return false;\n\tif (arg.codePointAt(1) === HYPHEN_CODE) return false;\n\treturn true;\n}\n/**\n* Check if `arg` is a long option (e.g. `--foo`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOption(arg) {\n\treturn hasLongOptionPrefix(arg) && !arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option with value (e.g. `--foo=bar`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOptionAndValue(arg) {\n\treturn hasLongOptionPrefix(arg) && arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option prefix (e.g. `--`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option prefix.\n*/\nfunction hasLongOptionPrefix(arg) {\n\treturn arg.length > 2 && ~arg.indexOf(LONG_OPTION_PREFIX);\n}\n/**\n* Check if a `value` is an option value.\n*\n* @param value - A value to check\n* @returns Whether a `value` is an option value.\n*/\nfunction hasOptionValue(value) {\n\treturn !(value == null) && value.codePointAt(0) !== HYPHEN_CODE;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/resolver.js\n/**\n* Entry point of argument options resolver.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst SKIP_POSITIONAL_DEFAULT = -1;\n/**\n* Resolve command line arguments.\n*\n* @typeParam A - {@link Args | Arguments}, which is an object that defines the command line arguments.\n*\n* @param args - An arguments that contains {@link ArgSchema | arguments schema}.\n* @param tokens - An array of {@link ArgToken | tokens}.\n* @param resolveArgs - An arguments that contains {@link ResolveArgs | resolve arguments}.\n* @returns An object that contains the values of the arguments, positional arguments, rest arguments, {@link AggregateError | validation errors}, and explicit provision status.\n*\n* @example\n* ```typescript\n* // passed tokens: --port 3000\n*\n* const { values, explicit } = resolveArgs({\n* port: {\n* type: 'number',\n* default: 8080\n* },\n* host: {\n* type: 'string',\n* default: 'localhost'\n* }\n* }, parsedTokens)\n*\n* values.port // 3000\n* values.host // 'localhost'\n*\n* explicit.port // true (explicitly provided)\n* explicit.host // false (not provided, fallback to default)\n* ```\n*/\nfunction resolveArgs(args, tokens, { shortGrouping = false, skipPositional = SKIP_POSITIONAL_DEFAULT, toKebab = false } = {}) {\n\tconst skipPositionalIndex = typeof skipPositional === \"number\" ? Math.max(skipPositional, SKIP_POSITIONAL_DEFAULT) : SKIP_POSITIONAL_DEFAULT;\n\tconst rest = [];\n\tconst optionTokens = [];\n\tconst positionalTokens = [];\n\tlet currentLongOption;\n\tlet currentShortOption;\n\tconst expandableShortOptions = [];\n\tfunction toShortValue() {\n\t\tif (expandableShortOptions.length === 0) return;\n\t\telse {\n\t\t\tconst value = expandableShortOptions.map((token) => token.name).join(\"\");\n\t\t\texpandableShortOptions.length = 0;\n\t\t\treturn value;\n\t\t}\n\t}\n\tfunction applyLongOptionValue(value = void 0) {\n\t\tif (currentLongOption) {\n\t\t\tcurrentLongOption.value = value;\n\t\t\toptionTokens.push({ ...currentLongOption });\n\t\t\tcurrentLongOption = void 0;\n\t\t}\n\t}\n\tfunction applyShortOptionValue(value = void 0) {\n\t\tif (currentShortOption) {\n\t\t\tcurrentShortOption.value = value || toShortValue();\n\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\tcurrentShortOption = void 0;\n\t\t}\n\t}\n\t/**\n\t* analyze phase to resolve value\n\t* separate tokens into positionals, long and short options, after that resolve values\n\t*/\n\tconst schemas = Object.values(args);\n\tlet terminated = false;\n\tfor (let i = 0; i < tokens.length; i++) {\n\t\tconst token = tokens[i];\n\t\tif (token.kind === \"positional\") {\n\t\t\tif (terminated && token.value) {\n\t\t\t\trest.push(token.value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (currentShortOption) {\n\t\t\t\tif (schemas.find((schema) => schema.short === currentShortOption.name && schema.type === \"boolean\")) positionalTokens.push({ ...token });\n\t\t\t} else if (currentLongOption) {\n\t\t\t\tif (args[currentLongOption.name]?.type === \"boolean\") positionalTokens.push({ ...token });\n\t\t\t} else positionalTokens.push({ ...token });\n\t\t\tapplyLongOptionValue(token.value);\n\t\t\tapplyShortOptionValue(token.value);\n\t\t} else if (token.kind === \"option\") if (token.rawName) {\n\t\t\tif (hasLongOptionPrefix(token.rawName)) {\n\t\t\t\tapplyLongOptionValue();\n\t\t\t\tif (token.inlineValue) optionTokens.push({ ...token });\n\t\t\t\telse currentLongOption = { ...token };\n\t\t\t\tapplyShortOptionValue();\n\t\t\t} else if (isShortOption(token.rawName)) if (currentShortOption) {\n\t\t\t\tif (currentShortOption.index === token.index) if (shortGrouping) {\n\t\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t} else expandableShortOptions.push({ ...token });\n\t\t\t\telse {\n\t\t\t\t\tcurrentShortOption.value = toShortValue();\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t}\n\t\t\t\tapplyLongOptionValue();\n\t\t\t} else {\n\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\tapplyLongOptionValue();\n\t\t\t}\n\t\t} else {\n\t\t\tif (currentShortOption && currentShortOption.index == token.index && token.inlineValue) {\n\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\tcurrentShortOption = void 0;\n\t\t\t}\n\t\t\tapplyLongOptionValue();\n\t\t}\n\t\telse {\n\t\t\tif (token.kind === \"option-terminator\") terminated = true;\n\t\t\tapplyLongOptionValue();\n\t\t\tapplyShortOptionValue();\n\t\t}\n\t}\n\t/**\n\t* check if the last long or short option is not resolved\n\t*/\n\tapplyLongOptionValue();\n\tapplyShortOptionValue();\n\t/**\n\t* resolve values\n\t*/\n\tconst values = Object.create(null);\n\tconst errors = [];\n\tconst explicit = Object.create(null);\n\tconst actualInputNames = /* @__PURE__ */ new Map();\n\tfunction checkTokenName(option, schema, token) {\n\t\treturn token.name === (schema.type === \"boolean\" ? schema.negatable && token.name?.startsWith(\"no-\") ? `no-${option}` : option : option);\n\t}\n\tconst positionalItemCount = tokens.filter((token) => token.kind === \"positional\").length;\n\tfunction getPositionalSkipIndex() {\n\t\treturn Math.min(skipPositionalIndex, positionalItemCount);\n\t}\n\tlet positionalsCount = 0;\n\tfor (const [rawArg, schema] of Object.entries(args)) {\n\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\texplicit[rawArg] = false;\n\t\tif (schema.type === \"positional\") {\n\t\t\tif (skipPositionalIndex > SKIP_POSITIONAL_DEFAULT) while (positionalsCount <= getPositionalSkipIndex()) positionalsCount++;\n\t\t\tif (schema.multiple) {\n\t\t\t\tconst remainingPositionals = positionalTokens.slice(positionalsCount);\n\t\t\t\tif (remainingPositionals.length > 0) {\n\t\t\t\t\tvalues[rawArg] = remainingPositionals.map((p) => p.value);\n\t\t\t\t\tpositionalsCount += remainingPositionals.length;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else if (schema.required) errors.push(createRequireError(arg, schema));\n\t\t\t} else {\n\t\t\t\tconst positional = positionalTokens[positionalsCount];\n\t\t\t\tif (positional != null) {\n\t\t\t\t\tvalues[rawArg] = positional.value;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else errors.push(createRequireError(arg, schema));\n\t\t\t\tpositionalsCount++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (schema.required) {\n\t\t\tif (!optionTokens.find((token) => {\n\t\t\t\treturn schema.short && token.name === schema.short || token.rawName && hasLongOptionPrefix(token.rawName) && token.name === arg;\n\t\t\t})) {\n\t\t\t\terrors.push(createRequireError(arg, schema));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < optionTokens.length; i++) {\n\t\t\tconst token = optionTokens[i];\n\t\t\tif (checkTokenName(arg, schema, token) && token.rawName != void 0 && hasLongOptionPrefix(token.rawName) || schema.short === token.name && token.rawName != void 0 && isShortOption(token.rawName)) {\n\t\t\t\tconst invalid = validateRequire(token, arg, schema);\n\t\t\t\tif (invalid) {\n\t\t\t\t\terrors.push(invalid);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\texplicit[rawArg] = true;\n\t\t\t\tconst actualInputName = isShortOption(token.rawName) ? `-${token.name}` : `--${arg}`;\n\t\t\t\tactualInputNames.set(rawArg, actualInputName);\n\t\t\t\tif (schema.type === \"boolean\") token.value = void 0;\n\t\t\t\tconst [parsedValue, error] = parse(token, arg, schema);\n\t\t\t\tif (error) errors.push(error);\n\t\t\t\telse if (schema.multiple) {\n\t\t\t\t\tvalues[rawArg] ||= [];\n\t\t\t\t\tvalues[rawArg].push(parsedValue);\n\t\t\t\t} else values[rawArg] = parsedValue;\n\t\t\t}\n\t\t}\n\t\tif (values[rawArg] == null && schema.default != null) values[rawArg] = schema.default;\n\t}\n\tconst conflictErrors = checkConflicts(args, explicit, toKebab, actualInputNames);\n\terrors.push(...conflictErrors);\n\treturn {\n\t\tvalues,\n\t\tpositionals: positionalTokens.map((token) => token.value),\n\t\trest,\n\t\terror: errors.length > 0 ? new AggregateError(errors) : void 0,\n\t\texplicit\n\t};\n}\nfunction parse(token, option, schema) {\n\tswitch (schema.type) {\n\t\tcase \"string\": return typeof token.value === \"string\" ? [token.value || schema.default, void 0] : [void 0, createTypeError(option, schema)];\n\t\tcase \"boolean\": return token.value ? [token.value || schema.default, void 0] : [!(schema.negatable && token.name.startsWith(\"no-\")), void 0];\n\t\tcase \"number\":\n\t\t\tif (!isNumeric(token.value)) return [void 0, createTypeError(option, schema)];\n\t\t\treturn token.value ? [+token.value, void 0] : [+(schema.default || \"\"), void 0];\n\t\tcase \"enum\":\n\t\t\tif (schema.choices && !schema.choices.includes(token.value)) return [void 0, new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be chosen from '${schema.type}' [${schema.choices.map((c) => JSON.stringify(c)).join(\", \")}] values`, option, \"type\", schema)];\n\t\t\treturn [token.value || schema.default, void 0];\n\t\tcase \"custom\":\n\t\t\tif (typeof schema.parse !== \"function\") throw new TypeError(`argument '${option}' should have a 'parse' function`);\n\t\t\ttry {\n\t\t\t\treturn [schema.parse(token.value || String(schema.default || \"\")), void 0];\n\t\t\t} catch (error) {\n\t\t\t\treturn [void 0, error];\n\t\t\t}\n\t\tdefault: throw new Error(`Unsupported argument type '${schema.type}' for option '${option}'`);\n\t}\n}\nfunction createRequireError(option, schema) {\n\treturn new ArgResolveError(schema.type === \"positional\" ? `Positional argument '${option}' is required` : `Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}is required`, option, \"required\", schema);\n}\n/**\n* An error that occurs when resolving arguments.\n* This error is thrown when the argument is not valid.\n*/\nvar ArgResolveError = class extends Error {\n\tname;\n\tschema;\n\ttype;\n\t/**\n\t* Create an `ArgResolveError` instance.\n\t*\n\t* @param message - the error message\n\t* @param name - the name of the argument\n\t* @param type - the type of the error, either 'type' or 'required'\n\t* @param schema - the argument schema that caused the error\n\t*/\n\tconstructor(message, name, type, schema) {\n\t\tsuper(message);\n\t\tthis.name = name;\n\t\tthis.type = type;\n\t\tthis.schema = schema;\n\t}\n};\nfunction validateRequire(token, option, schema) {\n\tif (schema.required && schema.type !== \"boolean\" && !token.value) return createRequireError(option, schema);\n}\nfunction isNumeric(str) {\n\treturn str.trim() !== \"\" && !isNaN(str);\n}\nfunction createTypeError(option, schema) {\n\treturn new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be '${schema.type}'`, option, \"type\", schema);\n}\nfunction checkConflicts(args, explicit, toKebab, actualInputNames) {\n\tfor (const rawArg in args) {\n\t\tconst schema = args[rawArg];\n\t\tif (!explicit[rawArg]) continue;\n\t\tif (!schema.conflicts) continue;\n\t\tconst conflicts = Array.isArray(schema.conflicts) ? schema.conflicts : [schema.conflicts];\n\t\tfor (let i = 0; i < conflicts.length; i++) {\n\t\t\tconst conflictingArg = conflicts[i];\n\t\t\tif (!explicit[conflictingArg]) continue;\n\t\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\t\tconst conflictingArgKebab = toKebab || args[conflictingArg]?.toKebab ? kebabnize(conflictingArg) : conflictingArg;\n\t\t\treturn [new ArgResolveError(`Optional argument '${actualInputNames.get(rawArg) || `--${arg}`}' conflicts with '${actualInputNames.get(conflictingArg) || `--${conflictingArgKebab}`}'`, rawArg, \"conflict\", schema)];\n\t\t}\n\t}\n\treturn [];\n}\n\n//#endregion\n//#region src/decorators.ts\nconst EMPTY_RENDERER = () => Promise.resolve(\"\");\n/**\n* Factory function for creating a decorators manager.\n*\n* @returns A new decorators manager instance\n*/\nfunction createDecorators() {\n\t/**\n\t* private states\n\t*/\n\tconst headerDecorators = [];\n\tconst usageDecorators = [];\n\tconst validationDecorators = [];\n\tconst commandDecorators = [];\n\t/**\n\t* helper function for building renderers\n\t*/\n\tfunction buildRenderer(decorators, defaultRenderer) {\n\t\tif (decorators.length === 0) return defaultRenderer;\n\t\tlet renderer = defaultRenderer;\n\t\tfor (const decorator of decorators) {\n\t\t\tconst previousRenderer = renderer;\n\t\t\trenderer = (ctx) => decorator(previousRenderer, ctx);\n\t\t}\n\t\treturn renderer;\n\t}\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\taddHeaderDecorator(decorator) {\n\t\t\theaderDecorators.push(decorator);\n\t\t},\n\t\taddUsageDecorator(decorator) {\n\t\t\tusageDecorators.push(decorator);\n\t\t},\n\t\taddValidationErrorsDecorator(decorator) {\n\t\t\tvalidationDecorators.push(decorator);\n\t\t},\n\t\taddCommandDecorator(decorator) {\n\t\t\tcommandDecorators.push(decorator);\n\t\t},\n\t\tget commandDecorators() {\n\t\t\treturn [...commandDecorators];\n\t\t},\n\t\tgetHeaderRenderer() {\n\t\t\treturn buildRenderer(headerDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetUsageRenderer() {\n\t\t\treturn buildRenderer(usageDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetValidationErrorsRenderer() {\n\t\t\tif (validationDecorators.length === 0) return EMPTY_RENDERER;\n\t\t\tlet renderer = EMPTY_RENDERER;\n\t\t\tfor (const decorator of validationDecorators) {\n\t\t\t\tconst previousRenderer = renderer;\n\t\t\t\trenderer = (ctx, error) => decorator(previousRenderer, ctx, error);\n\t\t\t}\n\t\t\treturn renderer;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/context.ts\n/**\n* Factory function for creating a plugin context.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command parameters.\n*\n* @param decorators - A {@linkcode Decorators} instance.\n* @param initialSubCommands - Initial sub commands map.\n* @returns A new {@linkcode PluginContext} instance.\n*/\nfunction createPluginContext(decorators, initialSubCommands) {\n\t/**\n\t* private states\n\t*/\n\tconst globalOptions = /* @__PURE__ */ new Map();\n\tconst subCommands = new Map(initialSubCommands || []);\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\tget globalOptions() {\n\t\t\treturn new Map(globalOptions);\n\t\t},\n\t\taddGlobalOption(name, schema) {\n\t\t\tif (!name) throw new Error(\"Option name must be a non-empty string\");\n\t\t\tif (globalOptions.has(name)) throw new Error(`Global option '${name}' is already registered`);\n\t\t\tglobalOptions.set(name, schema);\n\t\t},\n\t\tget subCommands() {\n\t\t\treturn new Map(subCommands);\n\t\t},\n\t\taddCommand(name, command) {\n\t\t\tif (!name) throw new Error(\"Command name must be a non-empty string\");\n\t\t\tif (subCommands.has(name)) throw new Error(`Command '${name}' is already registered`);\n\t\t\tsubCommands.set(name, command);\n\t\t},\n\t\thasCommand(name) {\n\t\t\treturn subCommands.has(name);\n\t\t},\n\t\tdecorateHeaderRenderer(decorator) {\n\t\t\tdecorators.addHeaderDecorator(decorator);\n\t\t},\n\t\tdecorateUsageRenderer(decorator) {\n\t\t\tdecorators.addUsageDecorator(decorator);\n\t\t},\n\t\tdecorateValidationErrorsRenderer(decorator) {\n\t\t\tdecorators.addValidationErrorsDecorator(decorator);\n\t\t},\n\t\tdecorateCommand(decorator) {\n\t\t\tdecorators.addCommandDecorator(decorator);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/dependency.ts\n/**\n* Resolve plugin dependencies using topological sort\n*\n* @param plugins - Array of plugins to resolve\n* @returns Array of plugins sorted by dependencies\n*/\nfunction resolveDependencies(plugins) {\n\tconst sorted = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst visiting = /* @__PURE__ */ new Set();\n\tconst pluginMap = /* @__PURE__ */ new Map();\n\tfor (const plugin of plugins) if (plugin.id) {\n\t\tif (pluginMap.has(plugin.id)) console.warn(`Duplicate plugin id detected: \\`${plugin.id}\\``);\n\t\tpluginMap.set(plugin.id, plugin);\n\t}\n\tfunction visit(plugin) {\n\t\tif (!plugin.id) return;\n\t\tif (visited.has(plugin.id)) return;\n\t\tif (visiting.has(plugin.id)) throw new Error(`Circular dependency detected: \\`${[...visiting].join(` -> `) + \" -> \" + plugin.id}\\``);\n\t\tvisiting.add(plugin.id);\n\t\tconst deps = plugin.dependencies || [];\n\t\tfor (const dep of deps) {\n\t\t\tconst depId = typeof dep === \"string\" ? dep : dep.id;\n\t\t\tconst isOptional = typeof dep === \"string\" ? false : dep.optional || false;\n\t\t\tconst depPlugin = pluginMap.get(depId);\n\t\t\tif (!depPlugin && !isOptional) throw new Error(`Missing required dependency: \\`${depId}\\` on \\`${plugin.id}\\``);\n\t\t\tif (depPlugin) visit(depPlugin);\n\t\t}\n\t\tvisiting.delete(plugin.id);\n\t\tvisited.add(plugin.id);\n\t\tsorted.push(plugin);\n\t}\n\tfor (const plugin of plugins) visit(plugin);\n\treturn sorted;\n}\n\n//#endregion\n//#region src/cli/core.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param argv - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @param plugins - An array of {@link Plugin | plugins} to be applied\n* @returns A rendered usage or undefined. if you will use {@link CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cliCore(argv, entry, options, plugins) {\n\tconst decorators = createDecorators();\n\tconst pluginContext = createPluginContext(decorators, createInitialSubCommands(options, entry));\n\tconst resolvedPlugins = await applyPlugins(pluginContext, [...plugins, ...options.plugins || []]);\n\tconst cliOptions = normalizeCliOptions(options, decorators, pluginContext);\n\tconst tokens = parseArgs(argv);\n\tconst resolved = resolveCommandTree(tokens, entry, cliOptions);\n\tconst { commandName: name, command, callMode, commandPath, depth, levelSubCommands } = resolved;\n\tif (!command) throw new Error(`Command not found: ${name || \"\"}`);\n\tconst args = resolveArguments(pluginContext, getCommandArgs(command));\n\tconst skipPositional = depth > 0 ? depth - 1 : -1;\n\tconst { explicit, values, positionals, rest, error } = resolveArgs(args, tokens, {\n\t\tshortGrouping: true,\n\t\ttoKebab: command.toKebab,\n\t\tskipPositional\n\t});\n\tconst omitted = resolved.omitted;\n\tif (levelSubCommands) cliOptions.subCommands = levelSubCommands;\n\tconst resolvedCommand = isLazyCommand(command) ? await resolveLazyCommand(command, name, true) : command;\n\treturn await executeCommand(resolvedCommand, await createCommandContext({\n\t\targs,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\targv,\n\t\ttokens,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tcommand: resolvedCommand,\n\t\textensions: getPluginExtensions(resolvedPlugins),\n\t\tvalidationError: error,\n\t\tcliOptions\n\t}), decorators.commandDecorators);\n}\nasync function applyPlugins(pluginContext, plugins) {\n\tconst sortedPlugins = resolveDependencies(plugins);\n\ttry {\n\t\tfor (const plugin of sortedPlugins)\n /**\n\t\t* NOTE(kazupon):\n\t\t* strictly `Args` are not required for plugin installation.\n\t\t* because the strictly `Args` required by each plugin are unknown,\n\t\t* and the plugin side can not know what the user will specify.\n\t\t*/\n\t\tawait plugin(pluginContext);\n\t} catch (error) {\n\t\tconsole.error(\"Error loading plugin:\", error.message);\n\t}\n\treturn sortedPlugins;\n}\nfunction getCommandArgs(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.args || create();\n\telse if (typeof cmd === \"object\") return cmd.args || create();\n\telse return create();\n}\nfunction resolveArguments(pluginContext, args) {\n\treturn Object.assign(create(), Object.fromEntries(pluginContext.globalOptions), args);\n}\nconst isObject = (val) => val !== null && typeof val === \"object\";\nfunction createInitialSubCommands(options, entryCmd) {\n\tconst hasSubCommands = options.subCommands ? options.subCommands instanceof Map ? options.subCommands.size > 0 : isObject(options.subCommands) && Object.keys(options.subCommands).length > 0 : false;\n\tconst subCommands = new Map(options.subCommands instanceof Map ? options.subCommands : []);\n\tif (!(options.subCommands instanceof Map) && isObject(options.subCommands)) for (const [name, cmd] of Object.entries(options.subCommands)) subCommands.set(name, cmd);\n\tif (hasSubCommands) {\n\t\tif (isLazyCommand(entryCmd)) {\n\t\t\tconst entryCopy = Object.assign((...args) => entryCmd(...args), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"object\") {\n\t\t\tconst entryCopy = Object.assign(create(), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"function\") {\n\t\t\tconst name = entryCmd.name || ANONYMOUS_COMMAND_NAME;\n\t\t\tsubCommands.set(name, {\n\t\t\t\trun: entryCmd,\n\t\t\t\tname,\n\t\t\t\tentry: true\n\t\t\t});\n\t\t}\n\t}\n\treturn subCommands;\n}\nfunction normalizeCliOptions(options, decorators, pluginContext) {\n\tconst subCommands = new Map(pluginContext.subCommands);\n\tconst resolvedOptions = Object.assign(create(), CLI_OPTIONS_DEFAULT, options, { subCommands });\n\tif (resolvedOptions.renderHeader === void 0) resolvedOptions.renderHeader = decorators.getHeaderRenderer();\n\tif (resolvedOptions.renderUsage === void 0) resolvedOptions.renderUsage = decorators.getUsageRenderer();\n\tif (resolvedOptions.renderValidationErrors === void 0) resolvedOptions.renderValidationErrors = decorators.getValidationErrorsRenderer();\n\treturn resolvedOptions;\n}\nfunction getPositionalTokens(tokens) {\n\treturn tokens.filter((t) => t.kind === \"positional\").map((t) => t.value).filter((v) => !!v);\n}\nfunction resolveCommandTree(tokens, entry, options) {\n\tconst positionals = getPositionalTokens(tokens);\n\tfunction resolveAsEntry() {\n\t\tif (typeof entry === \"function\") if (\"commandName\" in entry && entry.commandName) return {\n\t\t\tcommandName: entry.commandName,\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcommand: {\n\t\t\t\trun: entry,\n\t\t\t\tentry: true\n\t\t\t},\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse if (typeof entry === \"object\") return {\n\t\t\tcommandName: resolveEntryName(entry),\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcallMode: \"unexpected\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: false,\n\t\t\tlevelSubCommands: void 0\n\t\t};\n\t}\n\tif (positionals.length === 0 || options.subCommands.size === 0) return resolveAsEntry();\n\tlet currentSubCommands = options.subCommands;\n\tlet resolvedCommand;\n\tlet resolvedName;\n\tconst commandPath = [];\n\tlet depth = 0;\n\tfor (let i = 0; i < positionals.length; i++) {\n\t\tconst token = positionals[i];\n\t\tconst cmd = currentSubCommands.get(token);\n\t\tif (cmd == null) {\n\t\t\tif (depth === 0) {\n\t\t\t\tif (options.fallbackToEntry) return resolveAsEntry();\n\t\t\t\treturn {\n\t\t\t\t\tcommandName: token,\n\t\t\t\t\tcallMode: \"unexpected\",\n\t\t\t\t\tcommandPath: [],\n\t\t\t\t\tdepth: 0,\n\t\t\t\t\tomitted: false,\n\t\t\t\t\tlevelSubCommands: void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tlet resolved = cmd;\n\t\tif (typeof cmd === \"function\" && cmd.commandName == null) resolved = Object.assign((...args) => cmd(...args), cmd, { commandName: token });\n\t\telse if (typeof cmd === \"object\" && cmd.name == null) resolved = Object.assign(create(), cmd, { name: token });\n\t\tresolvedCommand = resolved;\n\t\tresolvedName = token;\n\t\tcommandPath.push(token);\n\t\tdepth++;\n\t\tconst nestedSubCommands = getCommandSubCommands(cmd);\n\t\tif (nestedSubCommands && nestedSubCommands.size > 0) currentSubCommands = nestedSubCommands;\n\t\telse break;\n\t}\n\tif (!resolvedCommand) return resolveAsEntry();\n\tconst resolvedSubCommands = getCommandSubCommands(resolvedCommand);\n\tconst omitted = resolvedSubCommands != null && resolvedSubCommands.size > 0;\n\tlet levelSubCommands;\n\tif (omitted && resolvedSubCommands) {\n\t\tlevelSubCommands = new Map(resolvedSubCommands);\n\t\tlet entryCopy;\n\t\tif (typeof resolvedCommand === \"function\") entryCopy = Object.assign((...args) => resolvedCommand(...args), resolvedCommand, { entry: true });\n\t\telse entryCopy = Object.assign(create(), resolvedCommand, { entry: true });\n\t\tlevelSubCommands.set(resolvedName || resolveEntryName(entryCopy), entryCopy);\n\t}\n\treturn {\n\t\tcommandName: resolvedName,\n\t\tcommand: resolvedCommand,\n\t\tcallMode: depth > 0 ? \"subCommand\" : \"entry\",\n\t\tcommandPath,\n\t\tdepth,\n\t\tomitted,\n\t\tlevelSubCommands\n\t};\n}\nfunction resolveEntryName(entry) {\n\treturn isLazyCommand(entry) ? entry.commandName || ANONYMOUS_COMMAND_NAME : entry.name || ANONYMOUS_COMMAND_NAME;\n}\nfunction getPluginExtensions(plugins) {\n\tconst extensions = create();\n\tfor (const plugin of plugins) if (plugin.extension) {\n\t\tconst key = plugin.id;\n\t\tif (extensions[key]) console.warn(`Plugin \"${key}\" is already installed. Ignore it for command context extending.`);\n\t\telse extensions[key] = plugin.extension;\n\t}\n\treturn extensions;\n}\nasync function executeCommand(cmd, ctx, decorators) {\n\tconst baseRunner = cmd.run || NOOP;\n\tconst decoratedRunner = decorators.reduceRight((runner, decorator) => decorator(runner), baseRunner);\n\ttry {\n\t\tif (ctx.env.onBeforeCommand) await ctx.env.onBeforeCommand(ctx);\n\t\tconst result = await decoratedRunner(ctx);\n\t\tif (ctx.env.onAfterCommand) await ctx.env.onAfterCommand(ctx, result);\n\t\treturn typeof result === \"string\" ? result : void 0;\n\t} catch (error) {\n\t\tif (ctx.env.onErrorCommand) try {\n\t\t\tawait ctx.env.onErrorCommand(ctx, error);\n\t\t} catch (hookError) {\n\t\t\tconsole.error(\"Error in onErrorCommand hook:\", hookError);\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n//#endregion\nexport { resolveArgs as n, parseArgs as r, cliCore as t };","//#region src/plugin/core.ts\nconst NOOP_EXTENSION = () => {\n\treturn Object.create(null);\n};\n/**\n* Define a plugin\n*\n* @param options - {@linkcode PluginOptions | plugin options}\n* @returns A defined plugin\n*\n* @since v0.27.0\n*/\nfunction plugin(options = {}) {\n\tconst { id, name, setup, onExtension, dependencies } = options;\n\tconst extension = options.extension || NOOP_EXTENSION;\n\tconst pluginFn = async (ctx) => {\n\t\tif (setup) await setup(ctx);\n\t};\n\tconst props = {\n\t\twritable: false,\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t};\n\treturn Object.defineProperties(pluginFn, {\n\t\tid: {\n\t\t\tvalue: id,\n\t\t\t...props\n\t\t},\n\t\t...name && { name: {\n\t\t\tvalue: name,\n\t\t\t...props\n\t\t} },\n\t\t...dependencies && { dependencies: {\n\t\t\tvalue: dependencies,\n\t\t\t...props\n\t\t} },\n\t\t...extension && { extension: {\n\t\t\tvalue: {\n\t\t\t\tkey: Symbol(id),\n\t\t\t\tfactory: extension,\n\t\t\t\tonFactory: onExtension\n\t\t\t},\n\t\t\t...props\n\t\t} }\n\t});\n}\n\n//#endregion\nexport { plugin as t };","import { o as resolveLazyCommand, s as kebabnize } from \"./utils-DNS9AIR_.js\";\nimport { t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\n\n//#region ../shared/src/constants.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst BUILT_IN_PREFIX = \"_\";\nconst PLUGIN_PREFIX = \"g\";\nconst ARG_PREFIX = \"arg\";\nconst BUILT_IN_KEY_SEPARATOR = \":\";\nconst BUILD_IN_PREFIX_AND_KEY_SEPARATOR = `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_PREFIX_AND_KEY_SEPARATOR = `${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_NEGATABLE_PREFIX = \"no-\";\nconst COMMON_ARGS = {\n\thelp: {\n\t\ttype: \"boolean\",\n\t\tshort: \"h\",\n\t\tdescription: \"Display this help message\"\n\t},\n\tversion: {\n\t\ttype: \"boolean\",\n\t\tshort: \"v\",\n\t\tdescription: \"Display this version\"\n\t}\n};\n\n//#endregion\n//#region ../resources/locales/en-US.json\nvar NEGATABLE = \"Negatable of\";\nvar en_US_default = {\n\tCOMMAND: \"COMMAND\",\n\tCOMMANDS: \"COMMANDS\",\n\tSUBCOMMAND: \"SUBCOMMAND\",\n\tUSAGE: \"USAGE\",\n\tARGUMENTS: \"ARGUMENTS\",\n\tOPTIONS: \"OPTIONS\",\n\tEXAMPLES: \"EXAMPLES\",\n\tFORMORE: \"For more info, run any command with the `--help` flag\",\n\tNEGATABLE,\n\tDEFAULT: \"default\",\n\tCHOICES: \"choices\",\n\thelp: \"Display this help message\",\n\tversion: \"Display this version\"\n};\n\n//#endregion\n//#region ../shared/src/utils.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Resolve a namespaced key for built-in resources.\n*\n* Built-in keys are prefixed with \"_:\".\n*\n* @typeParam K - The type of the built-in key to resolve. Defaults to command built-in argument and resource keys.\n*\n* @param key - The built-in key to resolve.\n* @returns Prefixed built-in key.\n*/\nfunction resolveBuiltInKey(key) {\n\treturn `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for argument resources.\n*\n* Argument keys are prefixed with \"arg:\".\n* If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:arg:foo\").\n*\n* @typeParam A - The {@linkcode Args} type extracted from G\n*\n* @param key - The argument key to resolve.\n* @param name - The command name.\n* @returns Prefixed argument key.\n*/\nfunction resolveArgKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for non-built-in resources.\n*\n* Non-built-in keys are not prefixed with any special characters. If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:foo\").\n*\n* @typeParam T - The type of the non-built-in key to resolve. Defaults to string.\n*\n* @param key - The non-built-in key to resolve.\n* @param name - The command name.\n* @returns Prefixed non-built-in key.\n*/\nfunction resolveKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${key}`;\n}\n/**\n* Resolve command examples.\n*\n* @typeParam G - Type parameter extending {@linkcode GunshiParams}\n*\n* @param ctx - A {@linkcode CommandContext | command context}.\n* @param examples - The examples to resolve, which can be a string or a {@linkcode CommandExamplesFetcher | function} that returns a string.\n* @returns A resolved string of examples.\n*/\nasync function resolveExamples$1(ctx, examples) {\n\treturn typeof examples === \"string\" ? examples : typeof examples === \"function\" ? await examples(ctx) : \"\";\n}\n/**\n* Generate a namespaced key for a plugin.\n*\n* @typeParam K - The type of the plugin id to generate a namespaced key for.\n*\n* @param id - A plugin id to generate a namespaced key.\n* @returns A namespaced key for the plugin.\n*/\nfunction namespacedId(id) {\n\treturn `${PLUGIN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${id}`;\n}\n/**\n* Generate a short and long option pair for command arguments.\n*\n* @param schema - The {@linkcode ArgSchema | argument schema} to generate the option pair.\n* @param name - The name of the argument.\n* @param toKebab - Whether to convert the name to kebab-case for display in help text.\n* @returns A string representing the short and long option pair.\n*/\nfunction makeShortLongOptionPair(schema, name, toKebab) {\n\tlet key = `--${toKebab || schema.toKebab ? kebabnize(name) : name}`;\n\tif (schema.short) key = `-${schema.short}, ${key}`;\n\treturn key;\n}\n\n//#endregion\n//#region ../shared/src/localization.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a localizable function for a command.\n*\n* This function will resolve the translation key based on the command context and the provided translation function.\n*\n* @typeParam A - The {@linkcode Args} type extracted from Gunshi command.\n* @typeParam C - Additional context type for command localization.\n* @typeParam E - Extended resource keys type.\n*\n* @param ctx - Command context\n* @param cmd - Command\n* @param translate - Translation function\n* @returns Localizable function\n*/\nfunction localizable(ctx, cmd, translate) {\n\tasync function localize(key, values) {\n\t\tif (translate) return translate(key, values);\n\t\tif (key.startsWith(BUILD_IN_PREFIX_AND_KEY_SEPARATOR)) return en_US_default[key.slice(BUILD_IN_PREFIX_AND_KEY_SEPARATOR.length)] || key;\n\t\tconst namaspacedArgKey = resolveKey(ARG_PREFIX_AND_KEY_SEPARATOR, ctx.name);\n\t\tif (key.startsWith(namaspacedArgKey)) {\n\t\t\tlet argKey = key.slice(namaspacedArgKey.length);\n\t\t\tlet negatable = false;\n\t\t\tif (argKey.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\t\targKey = argKey.slice(ARG_NEGATABLE_PREFIX.length);\n\t\t\t\tnegatable = true;\n\t\t\t}\n\t\t\tconst schema = ctx.args[argKey];\n\t\t\tif (!schema) return argKey;\n\t\t\treturn negatable && schema.type === \"boolean\" && schema.negatable ? `${NEGATABLE} ${makeShortLongOptionPair(schema, argKey, ctx.toKebab)}` : schema.description || \"\";\n\t\t}\n\t\tif (key === resolveKey(\"description\", ctx.name)) return \"\";\n\t\telse if (key === resolveKey(\"examples\", ctx.name)) return await resolveExamples$1(ctx, cmd.examples);\n\t\telse return key;\n\t}\n\treturn localize;\n}\n\n//#endregion\n//#region ../plugin-renderer/src/header.ts\n/**\n* Render the header.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered header.\n*/\nfunction renderHeader(ctx) {\n\tconst title = ctx.env.description || ctx.env.name || \"\";\n\treturn Promise.resolve(title ? `${title} (${ctx.env.name || \"\"}${ctx.env.version ? ` v${ctx.env.version}` : \"\"})` : title);\n}\n\n//#endregion\n//#region ../plugin-renderer/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for usage renderer plugin.\n*/\nconst pluginId = namespacedId(\"renderer\");\n\n//#endregion\n//#region ../plugin-renderer/src/usage.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst COMMON_ARGS_KEYS = Object.keys(COMMON_ARGS);\n/**\n* Render the usage.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage.\n*/\nasync function renderUsage(ctx) {\n\tconst messages = [];\n\tif (ctx.callMode === \"subCommand\") {\n\t\tconst description = await resolveDescription(ctx);\n\t\tif (description) messages.push(description, \"\");\n\t}\n\tmessages.push(...await renderUsageSection(ctx), \"\");\n\tif (ctx.omitted && await hasCommands(ctx)) messages.push(...await renderCommandsSection(ctx), \"\");\n\tif (hasPositionalArgs(ctx.args)) messages.push(...await renderPositionalArgsSection(ctx), \"\");\n\tif (hasOptionalArgs(ctx.args)) messages.push(...await renderOptionalArgsSection(ctx), \"\");\n\tconst examples = await renderExamplesSection(ctx);\n\tif (examples.length > 0) messages.push(...examples, \"\");\n\treturn messages.join(\"\\n\");\n}\n/**\n* Render the positional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered arguments section\n*/\nasync function renderPositionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"ARGUMENTS\"))}:`);\n\tmessages.push(await generatePositionalArgsUsage(ctx));\n\treturn messages;\n}\n/**\n* Render the optional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered options section\n*/\nasync function renderOptionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}:`);\n\tmessages.push(await generateOptionalArgsUsage(ctx, getOptionalArgsPairs(ctx)));\n\treturn messages;\n}\n/**\n* Render the examples section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered examples section\n*/\nasync function renderExamplesSection(ctx) {\n\tconst messages = [];\n\tconst resolvedExamples = await resolveExamples(ctx);\n\tif (resolvedExamples) {\n\t\tconst examples = resolvedExamples.split(\"\\n\").map((example) => example.padStart(ctx.env.leftMargin + example.length));\n\t\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"EXAMPLES\"))}:`, ...examples);\n\t}\n\treturn messages;\n}\n/**\n* Render the usage section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage section\n*/\nasync function renderUsageSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"USAGE\"))}:`];\n\tconst usageStr = await makeUsageSymbols(ctx);\n\tmessages.push(usageStr.padStart(ctx.env.leftMargin + usageStr.length));\n\treturn messages;\n}\nasync function makeUsageSymbols(ctx) {\n\tconst messages = [await resolveEntry(ctx)];\n\tif (ctx.omitted) if (await hasCommands(ctx)) messages.push(` [${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}]`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\tconst optionsSymbols = await generateOptionsSymbols(ctx, ctx.args);\n\tif (optionsSymbols) messages.push(\" \", optionsSymbols);\n\tconst positionalSymbols = generatePositionalSymbols(ctx.args);\n\tif (positionalSymbols) messages.push(\" \", positionalSymbols);\n\treturn messages.join(\"\");\n}\n/**\n* Render the commands section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered commands section\n*/\nasync function renderCommandsSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}:`];\n\tconst loadedCommands = await ctx.extensions?.[pluginId].loadCommands() || [];\n\tconst commandMaxLength = Math.max(...loadedCommands.map((cmd) => (cmd.name || \"\").length));\n\tconst commandsStr = await Promise.all(loadedCommands.map(async (cmd) => {\n\t\tconst desc = cmd.description || \"\";\n\t\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\t\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\t\tconst commandStr = await makeCommandSymbol(ctx, cmd);\n\t\tconst symbolLength = desc.length > 0 ? commandMaxLength + optionSymbol.length + positionalSymbol.length : 0;\n\t\tconst command = `${commandStr.padEnd(symbolLength + ctx.env.middleMargin)}${desc}`;\n\t\treturn `${command.padStart(ctx.env.leftMargin + command.length)}`;\n\t}));\n\tmessages.push(...commandsStr, \"\", `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"FORMORE\"))}:`);\n\tconst basePath = ctx.commandPath && ctx.commandPath.length > 0 ? `${ctx.env.name} ${ctx.commandPath.join(\" \")}` : ctx.env.name;\n\tmessages.push(...loadedCommands.map((cmd) => {\n\t\tlet commandStr = cmd.entry ? \"\" : cmd.name || \"\";\n\t\tif (commandStr) commandStr += \" \";\n\t\tconst commandHelp = `${basePath} ${commandStr}--help`;\n\t\treturn `${commandHelp.padStart(ctx.env.leftMargin + commandHelp.length)}`;\n\t}));\n\treturn messages;\n}\nasync function makeCommandSymbol(ctx, cmd) {\n\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\tlet commandStr = cmd.entry ? cmd.name === void 0 || cmd.name === ANONYMOUS_COMMAND_NAME ? \"\" : `[${cmd.name}]` : cmd.name || \"\";\n\tif (optionSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${optionSymbol}`;\n\t}\n\tif (positionalSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${positionalSymbol}`;\n\t}\n\treturn commandStr;\n}\n/**\n* Resolve the entry command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The entry command name\n*/\nasync function resolveEntry(ctx) {\n\treturn ctx.env.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMAND\"));\n}\n/**\n* Resolve the sub command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The sub command name\n*/\nasync function resolveSubCommand(ctx) {\n\tif (ctx.commandPath && ctx.commandPath.length > 0) return ctx.commandPath.join(\" \");\n\treturn ctx.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"SUBCOMMAND\"));\n}\n/**\n* Resolve the command description\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command description\n*/\nasync function resolveDescription(ctx) {\n\treturn await ctx.extensions[pluginId].text(resolveKey(\"description\", ctx.name)) || ctx.description || \"\";\n}\n/**\n* Resolve the command examples\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command examples, if not resolved, return empty string\n*/\nasync function resolveExamples(ctx) {\n\tconst ret = await ctx.extensions[pluginId].text(resolveKey(\"examples\", ctx.name));\n\tif (ret) return ret;\n\tconst command = ctx.env.subCommands?.get(ctx.name || \"\");\n\treturn await resolveExamples$1(ctx, command?.examples);\n}\n/**\n* Check if the command has sub commands\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns True if the command has sub commands\n*/\nasync function hasCommands(ctx) {\n\treturn (await ctx.extensions?.[pluginId].loadCommands() || []).length > 1;\n}\n/**\n* Check if the command has optional arguments\n*\n* @param args - A {@link Args | command optional arguments}\n* @returns True if the command has options\n*/\nfunction hasOptionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type !== \"positional\");\n}\n/**\n* Check if the command has positional arguments\n*\n* @param args - A {@link Args | command positional arguments}\n* @returns True if the command has options\n*/\nfunction hasPositionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type === \"positional\");\n}\n/**\n* Check if all options have default values\n*\n* @param args - An {@link Args | command argument}\n* @returns True if all options have default values\n*/\nfunction hasAllDefaultOptions(args) {\n\treturn !!(args && Object.values(args).every((arg) => arg.default));\n}\n/**\n* Generate options symbols for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param args - {@link Args | command arguments}\n* @returns Options symbols for usage\n*/\nasync function generateOptionsSymbols(ctx, args) {\n\treturn hasOptionalArgs(args) ? hasAllDefaultOptions(args) ? `[${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}]` : `<${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}>` : \"\";\n}\n/**\n* Get optional arguments pairs for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns Options pairs for usage\n*/\nfunction getOptionalArgsPairs(ctx) {\n\treturn Object.entries(ctx.args).reduce((acc, [name, schema]) => {\n\t\tif (schema.type === \"positional\") return acc;\n\t\tlet key = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\tif (schema.type !== \"boolean\") {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tkey = schema.default ? `${key} [${displayName}]` : `${key} <${displayName}>`;\n\t\t}\n\t\tacc[name] = key;\n\t\tif (schema.type === \"boolean\" && schema.negatable && !COMMON_ARGS_KEYS.includes(name)) {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tacc[`${ARG_NEGATABLE_PREFIX}${name}`] = `--${ARG_NEGATABLE_PREFIX}${displayName}`;\n\t\t}\n\t\treturn acc;\n\t}, Object.create(null));\n}\nconst resolveNegatableKey = (key) => key.split(ARG_NEGATABLE_PREFIX)[1];\nfunction resolveNegatableType(key, ctx) {\n\treturn ctx.args[key.startsWith(ARG_NEGATABLE_PREFIX) ? resolveNegatableKey(key) : key].type;\n}\nasync function generateDefaultDisplayValue(ctx, schema) {\n\treturn `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"DEFAULT\"))}: ${schema.default}`;\n}\nasync function resolveDisplayValue(ctx, key) {\n\tif (COMMON_ARGS_KEYS.includes(key)) return \"\";\n\tconst schema = ctx.args[key];\n\tif ((schema.type === \"boolean\" || schema.type === \"number\" || schema.type === \"string\" || schema.type === \"custom\") && schema.default !== void 0) return `(${await generateDefaultDisplayValue(ctx, schema)})`;\n\tif (schema.type === \"enum\") {\n\t\tconst _default = schema.default === void 0 ? \"\" : await generateDefaultDisplayValue(ctx, schema);\n\t\tconst choices = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"CHOICES\"))}: ${schema.choices.join(\" | \")}`;\n\t\treturn `(${_default ? `${_default}, ${choices}` : choices})`;\n\t}\n\treturn \"\";\n}\n/**\n* Generate optional arguments usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param optionsPairs - Options pairs for usage\n* @returns Generated options usage\n*/\nasync function generateOptionalArgsUsage(ctx, optionsPairs) {\n\tconst optionsMaxLength = Math.max(...Object.entries(optionsPairs).map(([_, value]) => value.length));\n\tconst optionSchemaMaxLength = ctx.env.usageOptionType ? Math.max(...Object.entries(optionsPairs).map(([key]) => resolveNegatableType(key, ctx).length)) : 0;\n\treturn (await Promise.all(Object.entries(optionsPairs).map(async ([key, value]) => {\n\t\tlet rawDesc = await ctx.extensions[pluginId].text(resolveArgKey(key, ctx.name));\n\t\tif (!rawDesc && key.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\tconst name = resolveNegatableKey(key);\n\t\t\tconst schema = ctx.args[name];\n\t\t\tconst optionKey = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\t\trawDesc = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"NEGATABLE\"))} ${optionKey}`;\n\t\t}\n\t\tconst optionsSchema = ctx.env.usageOptionType ? `[${resolveNegatableType(key, ctx)}] ` : \"\";\n\t\tconst valueDesc = key.startsWith(ARG_NEGATABLE_PREFIX) ? \"\" : await resolveDisplayValue(ctx, key);\n\t\tconst desc = `${optionsSchema ? optionsSchema.padEnd(optionSchemaMaxLength + 3) : \"\"}${rawDesc}`;\n\t\tconst descLength = desc.length + valueDesc.length;\n\t\tconst option = `${value.padEnd((descLength > 0 ? optionsMaxLength : 0) + ctx.env.middleMargin)}${desc}${valueDesc ? ` ${valueDesc}` : \"\"}`;\n\t\treturn `${option.padStart(ctx.env.leftMargin + option.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction getPositionalArgs(args) {\n\treturn Object.entries(args).filter(([_, schema]) => schema.type === \"positional\");\n}\nasync function generatePositionalArgsUsage(ctx) {\n\tconst positionals = getPositionalArgs(ctx.args);\n\tconst argsMaxLength = Math.max(...positionals.map(([name]) => name.length));\n\treturn (await Promise.all(positionals.map(async ([name]) => {\n\t\tconst desc = await ctx.extensions[pluginId].text(resolveArgKey(name, ctx.name)) || ctx.args[name].description || \"\";\n\t\tconst arg = `${name.padEnd(argsMaxLength + ctx.env.middleMargin)} ${desc}`;\n\t\treturn `${arg.padStart(ctx.env.leftMargin + arg.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction generatePositionalSymbols(args) {\n\treturn hasPositionalArgs(args) ? getPositionalArgs(args).map(([name, arg]) => {\n\t\tconst elements = [];\n\t\tif (!arg.multiple || arg.required) elements.push(`<${name}>`);\n\t\tif (arg.multiple) elements.push(`[<${name}> ...]`);\n\t\treturn elements.join(\" \");\n\t}).join(\" \") : \"\";\n}\n\n//#endregion\n//#region ../plugin-renderer/src/validation.ts\n/**\n* Render the validation errors.\n*\n* @param _ctx - A {@link CommandContext | command context}\n* @param error - An {@link AggregateError} of option in `args-token` validation\n* @returns A rendered validation error.\n*/\nfunction renderValidationErrors(_ctx, error) {\n\tconst messages = [];\n\tfor (const err of error.errors) messages.push(err.message);\n\treturn Promise.resolve(messages.join(\"\\n\"));\n}\n\n//#endregion\n//#region ../plugin-renderer/src/index.ts\n/**\n* The entry point of usage renderer plugin\n*\n* @example\n* ```js\n* import renderer from '@gunshi/plugin-renderer'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* renderer()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst i18nPluginId = namespacedId(\"i18n\");\nconst dependencies = [{\n\tid: i18nPluginId,\n\toptional: true\n}];\n/**\n* usage renderer plugin\n*\n* @returns A defined plugin as usage renderer\n*/\nfunction renderer() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"usage renderer\",\n\t\tdependencies,\n\t\textension: (ctx, cmd) => {\n\t\t\tconst i18n = ctx.extensions[i18nPluginId];\n\t\t\tlet cachedCommands;\n\t\t\tasync function loadCommands() {\n\t\t\t\tif (cachedCommands) return cachedCommands;\n\t\t\t\tconst subCommands = [...ctx.env.subCommands || []];\n\t\t\t\tcachedCommands = (await Promise.all(subCommands.map(async ([name, cmd]) => await resolveLazyCommand(cmd, name)))).filter((cmd) => !cmd.internal).filter(Boolean);\n\t\t\t\tcachedCommands.sort((a, b) => {\n\t\t\t\t\tif (a.entry && !b.entry) return -1;\n\t\t\t\t\tif (!a.entry && b.entry) return 1;\n\t\t\t\t\tif (a.name && b.name) return a.name.localeCompare(b.name);\n\t\t\t\t\tif (a.name && !b.name) return -1;\n\t\t\t\t\tif (!a.name && b.name) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\treturn cachedCommands;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttext: localizable(ctx, cmd, i18n?.translate),\n\t\t\t\tloadCommands\n\t\t\t};\n\t\t},\n\t\tsetup: (ctx) => {\n\t\t\tctx.decorateHeaderRenderer(async (_baseRenderer, cmdCtx) => await renderHeader(cmdCtx));\n\t\t\tctx.decorateUsageRenderer(async (_baseRenderer, cmdCtx) => await renderUsage(cmdCtx));\n\t\t\tctx.decorateValidationErrorsRenderer(async (_baseRenderer, cmdCtx, error) => await renderValidationErrors(cmdCtx, error));\n\t\t}\n\t});\n}\n\n//#endregion\nexport { namespacedId as a, renderHeader as i, renderValidationErrors as n, BUILT_IN_PREFIX as o, renderUsage as r, COMMON_ARGS as s, renderer as t };","import { t as cliCore } from \"./core-C9P_Gd_f.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\nimport { a as namespacedId, s as COMMON_ARGS, t as renderer } from \"./src-CfO5ab2f.js\";\n\n//#region ../plugin-global/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for the global options plugin.\n*/\nconst pluginId = namespacedId(\"global\");\n\n//#endregion\n//#region ../plugin-global/src/decorator.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Decorator function to extend the command with global options.\n*\n* @param baseRunner - The base command runner\n* @returns A command decorator that adds global options handling\n*/\nconst decorator = (baseRunner) => async (ctx) => {\n\tconst { values, validationError, extensions: { [pluginId]: { showVersion, showHeader, showUsage, showValidationErrors } } } = ctx;\n\tif (values.version) return showVersion();\n\tconst buf = [];\n\tconst header = await showHeader();\n\tif (header) buf.push(header);\n\tif (values.help) {\n\t\tconst usage = await showUsage();\n\t\tif (usage) {\n\t\t\tbuf.push(usage);\n\t\t\treturn buf.join(\"\\n\");\n\t\t}\n\t\treturn;\n\t}\n\tif (validationError) return await showValidationErrors(validationError);\n\treturn baseRunner(ctx);\n};\nvar decorator_default = decorator;\n\n//#endregion\n//#region ../plugin-global/src/extension.ts\n/**\n* Extends the command context for global options plugin.\n*\n* @param ctx - The {@linkcode CommandContextCore | command context} core\n* @returns An {@linkcode GlobalExtension} of global options plugin\n*/\nfunction extension(ctx) {\n\treturn {\n\t\tshowVersion: () => {\n\t\t\tconst version = ctx.env.version || \"unknown\";\n\t\t\tif (!ctx.env.usageSilent) ctx.log(version);\n\t\t\treturn version;\n\t\t},\n\t\tshowHeader: async () => {\n\t\t\tlet header;\n\t\t\tif (ctx.env.renderHeader != null) {\n\t\t\t\theader = await ctx.env.renderHeader(ctx);\n\t\t\t\tif (header) {\n\t\t\t\t\tctx.log(header);\n\t\t\t\t\tctx.log();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn header;\n\t\t},\n\t\tshowUsage: async () => {\n\t\t\tif (ctx.env.renderUsage != null) {\n\t\t\t\tconst usage = await ctx.env.renderUsage(ctx);\n\t\t\t\tif (usage) {\n\t\t\t\t\tctx.log(usage);\n\t\t\t\t\treturn usage;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tshowValidationErrors: async (error) => {\n\t\t\tif (ctx.env.renderValidationErrors === null) return;\n\t\t\tif (ctx.env.renderValidationErrors !== void 0) {\n\t\t\t\tconst message = await ctx.env.renderValidationErrors(ctx, error);\n\t\t\t\tctx.log(message);\n\t\t\t\treturn message;\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region ../plugin-global/src/index.ts\n/**\n* The entry point of global options plugin\n*\n* @example\n* ```js\n* import global from '@gunshi/plugin-global'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* global()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* global options plugin\n*\n* @returns A defined plugin as global options\n*/\nfunction global() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"global options\",\n\t\textension,\n\t\tsetup(ctx) {\n\t\t\tfor (const [name, schema] of Object.entries(COMMON_ARGS)) ctx.addGlobalOption(name, schema);\n\t\t\tctx.decorateCommand(decorator_default);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/cli/builtin.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param args - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @returns A rendered usage or undefined. if you will use {@linkcode CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cli(args, entry, options = {}) {\n\treturn cliCore(args, entry, options, [global(), renderer()]);\n}\n\n//#endregion\nexport { cli as t };"]}
@@ -0,0 +1,34 @@
1
+ import { ansis_default, joinAndCompact } from './chunk-VKRGHRPK.js';
2
+ import { my_dash_default } from './chunk-CBP4M7BN.js';
3
+ import { __name } from './chunk-6PEHRAEP.js';
4
+
5
+ // src/cli/helpers/exit-error.ts
6
+ var CliExitError = class extends Error {
7
+ constructor(message, more) {
8
+ super(message);
9
+ this.more = more;
10
+ }
11
+ static {
12
+ __name(this, "CliExitError");
13
+ }
14
+ get forceExit() {
15
+ return !!this.more?.forceExit;
16
+ }
17
+ getFormattedOutput() {
18
+ let msg = `
19
+ \u{1F4A5} ${ansis_default.red(this.message)} \u{1F4A5}
20
+ `;
21
+ if (this.more?.details) {
22
+ msg += joinAndCompact(my_dash_default.castArray(this.more?.details), "\n");
23
+ }
24
+ if (this.more?.suggestion) {
25
+ msg += joinAndCompact(my_dash_default.castArray(this.more?.suggestion), "\n");
26
+ }
27
+ msg += "\n";
28
+ return msg;
29
+ }
30
+ };
31
+
32
+ export { CliExitError };
33
+ //# sourceMappingURL=chunk-4DZ3IHF6.js.map
34
+ //# sourceMappingURL=chunk-4DZ3IHF6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/helpers/exit-error.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,YAAA,GAAN,cAA2B,KAAA,CAAM;AAAA,EACtC,WAAA,CACE,SACQ,IAAA,EAMR;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAPL,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AAAA,EAQV;AAAA,EAfF;AAIwC,IAAA,MAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAAA;AAAA,EAatC,IAAI,SAAA,GAAY;AAAE,IAAA,OAAO,CAAC,CAAC,IAAA,CAAK,IAAA,EAAM,SAAA;AAAA,EAAW;AAAA,EAEjD,kBAAA,GAAqB;AACnB,IAAA,IAAI,GAAA,GAAM;AAAA,UAAA,EAAQ,aAAA,CAAM,GAAA,CAAI,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,CAAA;AAEzC,IAAA,IAAI,IAAA,CAAK,MAAM,OAAA,EAAS;AACtB,MAAA,GAAA,IAAO,eAAe,eAAA,CAAE,SAAA,CAAU,KAAK,IAAA,EAAM,OAAO,GAAG,IAAI,CAAA;AAAA,IAC7D;AAEA,IAAA,IAAI,IAAA,CAAK,MAAM,UAAA,EAAY;AACzB,MAAA,GAAA,IAAO,eAAe,eAAA,CAAE,SAAA,CAAU,KAAK,IAAA,EAAM,UAAU,GAAG,IAAI,CAAA;AAAA,IAChE;AAEA,IAAA,GAAA,IAAO,IAAA;AACP,IAAA,OAAO,GAAA;AAAA,EACT;AACF","file":"chunk-4DZ3IHF6.js","sourcesContent":["import ansis from 'ansis';\nimport _ from '@env-spec/utils/my-dash';\nimport { joinAndCompact } from '../../lib/formatting';\n\nexport class CliExitError extends Error {\n constructor(\n message: string,\n private more?: {\n details?: string | Array<string>,\n suggestion?: string | Array<string>,\n /** always triggers a full exit, even in watch mode - useful if problem is irrecoverable */\n forceExit?: boolean,\n },\n ) {\n super(message);\n }\n\n get forceExit() { return !!this.more?.forceExit; }\n\n getFormattedOutput() {\n let msg = `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n\n if (this.more?.details) {\n msg += joinAndCompact(_.castArray(this.more?.details), '\\n');\n }\n\n if (this.more?.suggestion) {\n msg += joinAndCompact(_.castArray(this.more?.suggestion), '\\n');\n }\n\n msg += '\\n';\n return msg;\n }\n}\n"]}