varlock 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit.command-PXY2ZGU2.js +16 -0
- package/dist/{audit.command-6TUJY57M.js.map → audit.command-PXY2ZGU2.js.map} +1 -1
- package/dist/auto-load.js +5 -5
- package/dist/{chunk-CWC3IAQM.js → chunk-2GZ4APXU.js} +29 -14
- package/dist/chunk-2GZ4APXU.js.map +1 -0
- package/dist/{chunk-2OIOYMYO.js → chunk-66VKZYD7.js} +6 -6
- package/dist/{chunk-2OIOYMYO.js.map → chunk-66VKZYD7.js.map} +1 -1
- package/dist/{chunk-BR3DT5Z5.js → chunk-7VERU3F7.js} +3 -3
- package/dist/{chunk-BR3DT5Z5.js.map → chunk-7VERU3F7.js.map} +1 -1
- package/dist/{chunk-KCUEK4TX.js → chunk-A5L3SRQS.js} +7 -7
- package/dist/{chunk-KCUEK4TX.js.map → chunk-A5L3SRQS.js.map} +1 -1
- package/dist/{chunk-5DUWGI2N.js → chunk-DIPEXEIL.js} +3 -3
- package/dist/{chunk-5DUWGI2N.js.map → chunk-DIPEXEIL.js.map} +1 -1
- package/dist/{chunk-2NQLWXPX.js → chunk-DQTUCLA7.js} +5 -5
- package/dist/{chunk-2NQLWXPX.js.map → chunk-DQTUCLA7.js.map} +1 -1
- package/dist/{chunk-VIUMRSUR.js → chunk-EGFAEO7L.js} +8 -8
- package/dist/{chunk-VIUMRSUR.js.map → chunk-EGFAEO7L.js.map} +1 -1
- package/dist/{chunk-FCSQRLIC.js → chunk-F64DA7XN.js} +6 -6
- package/dist/{chunk-FCSQRLIC.js.map → chunk-F64DA7XN.js.map} +1 -1
- package/dist/{chunk-6CCHLM3U.js → chunk-FA5SNEKN.js} +30 -12
- package/dist/chunk-FA5SNEKN.js.map +1 -0
- package/dist/{chunk-F6RTQ5QX.js → chunk-KFALDUEO.js} +3 -3
- package/dist/{chunk-F6RTQ5QX.js.map → chunk-KFALDUEO.js.map} +1 -1
- package/dist/{chunk-OA6PRICO.js → chunk-M6QE3D2O.js} +6 -6
- package/dist/{chunk-OA6PRICO.js.map → chunk-M6QE3D2O.js.map} +1 -1
- package/dist/{chunk-4A54P4EM.js → chunk-MGUGRIW2.js} +1185 -1152
- package/dist/chunk-MGUGRIW2.js.map +1 -0
- package/dist/{chunk-26E4E2MY.js → chunk-N7FJTNE5.js} +11 -5
- package/dist/chunk-N7FJTNE5.js.map +1 -0
- package/dist/chunk-NHNQJTPB.js +171 -0
- package/dist/chunk-NHNQJTPB.js.map +1 -0
- package/dist/{chunk-6PZXN47A.js → chunk-NZTQKZND.js} +4 -4
- package/dist/{chunk-6PZXN47A.js.map → chunk-NZTQKZND.js.map} +1 -1
- package/dist/{chunk-GURKQO4J.js → chunk-P4HNABAM.js} +103 -20
- package/dist/chunk-P4HNABAM.js.map +1 -0
- package/dist/{chunk-6CRDPEUT.js → chunk-PBWMMYWL.js} +685 -684
- package/dist/chunk-PBWMMYWL.js.map +1 -0
- package/dist/{chunk-H2JVYUHZ.js → chunk-Q4I7MXFB.js} +6 -6
- package/dist/{chunk-H2JVYUHZ.js.map → chunk-Q4I7MXFB.js.map} +1 -1
- package/dist/{chunk-GJ7PTJM4.js → chunk-Q7XUQDLE.js} +3 -3
- package/dist/{chunk-GJ7PTJM4.js.map → chunk-Q7XUQDLE.js.map} +1 -1
- package/dist/{chunk-R73FENLU.js → chunk-QDEAHBCB.js} +3 -3
- package/dist/{chunk-R73FENLU.js.map → chunk-QDEAHBCB.js.map} +1 -1
- package/dist/{chunk-2PBFWISH.js → chunk-ROZITJAP.js} +8 -8
- package/dist/chunk-ROZITJAP.js.map +1 -0
- package/dist/{chunk-35LTPRXV.js → chunk-RTKFINP6.js} +6 -6
- package/dist/{chunk-35LTPRXV.js.map → chunk-RTKFINP6.js.map} +1 -1
- package/dist/{chunk-QSYH5IDD.js → chunk-RWXFFQWH.js} +4 -4
- package/dist/{chunk-QSYH5IDD.js.map → chunk-RWXFFQWH.js.map} +1 -1
- package/dist/{chunk-LGEHJHB2.js → chunk-SX2NUZCL.js} +6 -5
- package/dist/{chunk-LGEHJHB2.js.map → chunk-SX2NUZCL.js.map} +1 -1
- package/dist/{chunk-A2JUQ2GK.js → chunk-T3NMDBCU.js} +6 -6
- package/dist/{chunk-A2JUQ2GK.js.map → chunk-T3NMDBCU.js.map} +1 -1
- package/dist/{chunk-MGWUDHT5.js → chunk-UUJK65RS.js} +11 -3
- package/dist/chunk-UUJK65RS.js.map +1 -0
- package/dist/{chunk-YHN6GZHR.js → chunk-YZCCCHDD.js} +6 -6
- package/dist/{chunk-YHN6GZHR.js.map → chunk-YZCCCHDD.js.map} +1 -1
- package/dist/{chunk-EE4UNY25.js → chunk-ZCYV47TZ.js} +8 -8
- package/dist/{chunk-EE4UNY25.js.map → chunk-ZCYV47TZ.js.map} +1 -1
- package/dist/cli/cli-executable.js +1547 -40
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-HMRJLPJY.js +7 -0
- package/dist/{config-item-7X6PUXJF.js.map → config-item-HMRJLPJY.js.map} +1 -1
- package/dist/dotenv-compat.js +5 -5
- package/dist/encrypt.command-7M34IUJY.js +14 -0
- package/dist/{encrypt.command-4E5SM5M6.js.map → encrypt.command-7M34IUJY.js.map} +1 -1
- package/dist/{env-graph-iNQyTcya.d.ts → env-graph-DImkUkjl.d.ts} +30 -19
- package/dist/explain.command-LZJOP4TM.js +15 -0
- package/dist/{explain.command-7FRFYSJJ.js.map → explain.command-LZJOP4TM.js.map} +1 -1
- package/dist/help.command-VIBYZWCF.js +5 -0
- package/dist/{help.command-7E52XAOO.js.map → help.command-VIBYZWCF.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +13 -14
- package/dist/index.js.map +1 -1
- package/dist/init.command-FFORG2JL.js +14 -0
- package/dist/{init.command-EMPZK5D3.js.map → init.command-FFORG2JL.js.map} +1 -1
- package/dist/install-plugin.command-SFNHDKVE.js +13 -0
- package/dist/{install-plugin.command-SYQAPBII.js.map → install-plugin.command-SFNHDKVE.js.map} +1 -1
- package/dist/load.command-V3C5H6CZ.js +15 -0
- package/dist/{load.command-R7UTXX2X.js.map → load.command-V3C5H6CZ.js.map} +1 -1
- package/dist/lock.command-QQV2S6NY.js +7 -0
- package/dist/{lock.command-4LTGMJA3.js.map → lock.command-QQV2S6NY.js.map} +1 -1
- package/dist/plugin-lib.d.ts +2 -2
- package/dist/plugin-lib.js +2 -2
- package/dist/printenv.command-2BIP7FCF.js +15 -0
- package/dist/{printenv.command-EVYMVYEZ.js.map → printenv.command-2BIP7FCF.js.map} +1 -1
- package/dist/reveal.command-7LHNCYS4.js +15 -0
- package/dist/{reveal.command-6IH7XDVT.js.map → reveal.command-7LHNCYS4.js.map} +1 -1
- package/dist/run.command-TRSRYDOM.js +16 -0
- package/dist/{run.command-WW2YKPUP.js.map → run.command-TRSRYDOM.js.map} +1 -1
- package/dist/runtime/env.d.ts +1 -1
- package/dist/runtime/env.js +1 -1
- package/dist/runtime/init-edge.cjs +9 -1
- package/dist/runtime/init-server.cjs +9 -1
- package/dist/runtime/patch-console.js +2 -2
- package/dist/runtime/patch-response.js +2 -2
- package/dist/runtime/patch-server-response.js +2 -2
- package/dist/scan.command-NMBEPFUC.js +16 -0
- package/dist/{scan.command-6PSWFMI5.js.map → scan.command-NMBEPFUC.js.map} +1 -1
- package/dist/telemetry.command-SMIT5ZZB.js +13 -0
- package/dist/{telemetry.command-ZD6XCRBZ.js.map → telemetry.command-SMIT5ZZB.js.map} +1 -1
- package/dist/typegen.command-C5KWLYPL.js +14 -0
- package/dist/{typegen.command-IKXM7OSU.js.map → typegen.command-C5KWLYPL.js.map} +1 -1
- package/native-bins/darwin/VarlockEnclave.app/Contents/CodeResources +0 -0
- package/native-bins/darwin/VarlockEnclave.app/Contents/MacOS/varlock-local-encrypt +0 -0
- package/native-bins/linux-arm64/varlock-local-encrypt +0 -0
- package/native-bins/linux-x64/varlock-local-encrypt +0 -0
- package/native-bins/win32-x64/varlock-local-encrypt.exe +0 -0
- package/package.json +4 -3
- package/dist/audit.command-6TUJY57M.js +0 -16
- package/dist/chunk-26E4E2MY.js.map +0 -1
- package/dist/chunk-2PBFWISH.js.map +0 -1
- package/dist/chunk-45N5EFNL.js +0 -136
- package/dist/chunk-45N5EFNL.js.map +0 -1
- package/dist/chunk-4A54P4EM.js.map +0 -1
- package/dist/chunk-6CCHLM3U.js.map +0 -1
- package/dist/chunk-6CRDPEUT.js.map +0 -1
- package/dist/chunk-CWC3IAQM.js.map +0 -1
- package/dist/chunk-GURKQO4J.js.map +0 -1
- package/dist/chunk-MGWUDHT5.js.map +0 -1
- package/dist/config-item-7X6PUXJF.js +0 -7
- package/dist/encrypt.command-4E5SM5M6.js +0 -14
- package/dist/explain.command-7FRFYSJJ.js +0 -15
- package/dist/help.command-7E52XAOO.js +0 -5
- package/dist/init.command-EMPZK5D3.js +0 -14
- package/dist/install-plugin.command-SYQAPBII.js +0 -13
- package/dist/load.command-R7UTXX2X.js +0 -15
- package/dist/lock.command-4LTGMJA3.js +0 -7
- package/dist/printenv.command-EVYMVYEZ.js +0 -15
- package/dist/reveal.command-6IH7XDVT.js +0 -15
- package/dist/run.command-WW2YKPUP.js +0 -16
- package/dist/scan.command-6PSWFMI5.js +0 -16
- package/dist/telemetry.command-ZD6XCRBZ.js +0 -13
- package/dist/typegen.command-IKXM7OSU.js +0 -15
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/utils-DNS9AIR_.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/constants-WviiKqbt.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/context-CHDIbgwd.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/definition.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-C9P_Gd_f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/core-eN5xmB3s.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/src-CfO5ab2f.js","../../../node_modules/.bun/gunshi@0.28.2/node_modules/gunshi/lib/cli-l4AYjN-O.js"],"names":["cmd","extension","arg","renderer","decorator","plugin","dependencies","pluginId"],"mappings":"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","file":"chunk-4A54P4EM.js","sourcesContent":["//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/utils-CxvkckUD.js\n/**\n* Entry point of utils.\n*\n* Note that this entry point is used by gunshi to import utility functions.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Convert a string to kebab-case.\n*\n* @param str - A string to convert\n* @returns Converted string into kebab-case.\n*/\nfunction kebabnize(str) {\n\treturn str.replace(/[A-Z]/g, (match, offset) => (offset > 0 ? \"-\" : \"\") + match.toLowerCase());\n}\n\n//#endregion\n//#region src/utils.ts\n/**\n* Check if the given command is a {@link LazyCommand}.\n*\n* @param cmd - A command to check\n* @returns `true` if the command is a {@link LazyCommand}, otherwise `false\n*/\nfunction isLazyCommand(cmd) {\n\treturn typeof cmd === \"function\" && \"commandName\" in cmd && !!cmd.commandName;\n}\n/**\n* Resolve a lazy command to a {@link Command}.\n*\n* @param cmd - A {@link Commandable} or {@link LazyCommand} to resolve\n* @param name - Optional name of the command, if not provided, it will use the name from the command itself.\n* @param needRunResolving - Whether to run the resolving function of the lazy command.\n* @returns A resolved {@link Command}\n*/\nasync function resolveLazyCommand(cmd, name, needRunResolving = false) {\n\tlet command;\n\tif (isLazyCommand(cmd)) {\n\t\tconst baseCommand = {\n\t\t\tname: cmd.commandName,\n\t\t\tdescription: cmd.description,\n\t\t\targs: cmd.args,\n\t\t\texamples: cmd.examples,\n\t\t\tinternal: cmd.internal,\n\t\t\tentry: cmd.entry,\n\t\t\tsubCommands: cmd.subCommands\n\t\t};\n\t\tif (\"resource\" in cmd && cmd.resource) baseCommand.resource = cmd.resource;\n\t\tcommand = Object.assign(create(), baseCommand);\n\t\tif (needRunResolving) {\n\t\t\tconst loaded = await cmd();\n\t\t\tif (typeof loaded === \"function\") command.run = loaded;\n\t\t\telse if (typeof loaded === \"object\") {\n\t\t\t\tif (loaded.run == null) throw new TypeError(`'run' is required in command: ${cmd.name || name}`);\n\t\t\t\tcommand.run = loaded.run;\n\t\t\t\tcommand.name = loaded.name;\n\t\t\t\tcommand.description = loaded.description;\n\t\t\t\tcommand.args = loaded.args;\n\t\t\t\tcommand.examples = loaded.examples;\n\t\t\t\tcommand.internal = loaded.internal;\n\t\t\t\tcommand.entry = loaded.entry;\n\t\t\t\tcommand.subCommands = loaded.subCommands || cmd.subCommands;\n\t\t\t\tif (\"resource\" in loaded && loaded.resource) command.resource = loaded.resource;\n\t\t\t} else throw new TypeError(`Cannot resolve command: ${cmd.name || name}`);\n\t\t}\n\t} else command = Object.assign(create(), cmd);\n\tif (command.name == null && name) command.name = name;\n\treturn deepFreeze(command);\n}\n/**\n* Create an object with the specified prototype. A shorthand for `Object.create`.\n*\n* @param obj - An object to use as the prototype for the new object. If `null`, it will create an object with no prototype.\n* @returns A new object with the specified prototype\n*/\nfunction create(obj = null) {\n\treturn Object.create(obj);\n}\n/**\n* Log a message to the console.\n*\n* @param args - Arguments to log\n*/\nfunction log(...args) {\n\tconsole.log(...args);\n}\n/**\n* Get the sub-commands of a command as a normalized Map.\n*\n* @param cmd - A command or lazy command\n* @returns A Map of sub-commands, or undefined if the command has no sub-commands.\n*/\nfunction getCommandSubCommands(cmd) {\n\tconst subCommands = isLazyCommand(cmd) ? cmd.subCommands : typeof cmd === \"object\" ? cmd.subCommands : void 0;\n\tif (!subCommands) return;\n\tif (subCommands instanceof Map) return subCommands.size > 0 ? subCommands : void 0;\n\tif (typeof subCommands === \"object\") {\n\t\tconst entries = Object.entries(subCommands);\n\t\tif (entries.length === 0) return;\n\t\tconst map = /* @__PURE__ */ new Map();\n\t\tfor (const [name, cmd] of entries) map.set(name, cmd);\n\t\treturn map;\n\t}\n}\n/**\n* Deep freeze an object, making it immutable.\n*\n* @param obj - The object to freeze\n* @param ignores - Properties to ignore during freezing\n* @returns A frozen object\n*/\nfunction deepFreeze(obj, ignores = []) {\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tfor (const key of Object.keys(obj)) {\n\t\tconst value = obj[key];\n\t\tif (ignores.includes(key)) continue;\n\t\tif (typeof value === \"object\" && value !== null) deepFreeze(value, ignores);\n\t}\n\treturn Object.freeze(obj);\n}\n\n//#endregion\nexport { log as a, isLazyCommand as i, deepFreeze as n, resolveLazyCommand as o, getCommandSubCommands as r, kebabnize as s, create as t };","//#region src/constants.ts\nconst ANONYMOUS_COMMAND_NAME = \"(anonymous)\";\n/**\n* A no-operation function.\n*/\nconst NOOP = () => {};\nconst CLI_OPTIONS_DEFAULT = {\n\tname: void 0,\n\tdescription: void 0,\n\tversion: void 0,\n\tcwd: void 0,\n\tusageSilent: false,\n\tsubCommands: void 0,\n\tleftMargin: 2,\n\tmiddleMargin: 10,\n\tusageOptionType: false,\n\tusageOptionValue: true,\n\trenderHeader: void 0,\n\trenderUsage: void 0,\n\trenderValidationErrors: void 0,\n\tplugins: void 0,\n\tfallbackToEntry: false\n};\n\n//#endregion\nexport { CLI_OPTIONS_DEFAULT as n, NOOP as r, ANONYMOUS_COMMAND_NAME as t };","import { a as log, i as isLazyCommand, n as deepFreeze, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\n\n//#region src/context.ts\n/**\n* The entry for gunshi context.\n* This module is exported for the purpose of testing the command.\n*\n* @example\n* ```js\n* import { createCommandContext } from 'gunshi/context'\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a command context.\n*\n* @param param - A {@link CommandContextParams | parameters} to create a command context.\n* @returns A {@link CommandContext | command context}, which is readonly.\n*/\nasync function createCommandContext({ args = {}, explicit = {}, values = {}, positionals = [], rest = [], argv = [], tokens = [], command = {}, extensions = {}, cliOptions = {}, callMode = \"entry\", commandPath = [], omitted = false, validationError = void 0 }) {\n\t/**\n\t* normailize the options schema and values, to avoid prototype pollution\n\t*/\n\tconst _args = Object.entries(args).reduce((acc, [key, value]) => {\n\t\tacc[key] = Object.assign(create(), value);\n\t\treturn acc;\n\t}, create());\n\t/**\n\t* setup the environment\n\t*/\n\tconst env = Object.assign(create(), CLI_OPTIONS_DEFAULT, cliOptions);\n\t/**\n\t* apply Command definition's rendering option with highest priority\n\t*/\n\tif (command.rendering) {\n\t\tconst { header, usage, validationErrors } = command.rendering;\n\t\tif (header !== void 0) env.renderHeader = header;\n\t\tif (usage !== void 0) env.renderUsage = usage;\n\t\tif (validationErrors !== void 0) env.renderValidationErrors = validationErrors;\n\t}\n\t/**\n\t* create the command context\n\t*/\n\tconst core = Object.assign(create(), {\n\t\tname: getCommandName(command),\n\t\tdescription: command.description,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tenv,\n\t\targs: _args,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\t_: argv,\n\t\ttokens,\n\t\ttoKebab: command.toKebab,\n\t\tlog: cliOptions.usageSilent ? NOOP : log,\n\t\tvalidationError\n\t});\n\t/**\n\t* extend the command context with extensions\n\t*/\n\tif (Object.keys(extensions).length > 0) {\n\t\tconst ext = create(null);\n\t\tObject.defineProperty(core, \"extensions\", {\n\t\t\tvalue: ext,\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\tfor (const [key, extension] of Object.entries(extensions)) {\n\t\t\text[key] = await extension.factory(core, command);\n\t\t\tif (extension.onFactory) await extension.onFactory(core, command);\n\t\t}\n\t}\n\treturn deepFreeze(core, [\"extensions\"]);\n}\nfunction getCommandName(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.commandName || cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse if (typeof cmd === \"object\") return cmd.name || ANONYMOUS_COMMAND_NAME;\n\telse return ANONYMOUS_COMMAND_NAME;\n}\n\n//#endregion\nexport { createCommandContext as t };","import { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region src/definition.ts\n/**\n* Define a {@link Command | command}.\n*\n* @typeParam G - A {@link GunshiParamsConstraint} type\n*\n* @param definition - A {@link Command | command} definition\n* @returns A defined {@link Command | command}\n*/\nfunction define(definition) {\n\treturn definition;\n}\n/**\n* Define a {@link Command | command} with types\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* // Define a command with specific extensions type\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = defineWithTypes<{ extensions: MyExtensions }>()({\n* name: 'greet',\n* args: {\n* name: { type: 'string' }\n* },\n* run: ctx => {\n* // ctx.values is inferred as { name?: string }\n* // ctx.extensions is MyExtensions\n* }\n* })\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a command definition via {@link define}\n*\n* @since v0.27.0\n*/\nfunction defineWithTypes() {\n\treturn (definition) => {\n\t\treturn define(definition);\n\t};\n}\n/**\n* Define a {@link LazyCommand | lazy command} with or without definition.\n*\n* @param loader - A {@link CommandLoader | command loader} function that returns a command definition\n* @param definition - An optional {@link Command | command} definition\n* @returns A {@link LazyCommand | lazy command} that can be executed later\n*/\nfunction lazy(loader, definition) {\n\tconst lazyCommand = loader;\n\tif (definition != null) {\n\t\tlazyCommand.commandName = definition.name;\n\t\tlazyCommand.description = definition.description;\n\t\tlazyCommand.args = definition.args;\n\t\tlazyCommand.examples = definition.examples;\n\t\tlazyCommand.internal = definition.internal;\n\t\tlazyCommand.entry = definition.entry;\n\t\tlazyCommand.toKebab = definition.toKebab;\n\t\tif (definition.subCommands) lazyCommand.subCommands = definition.subCommands;\n\t\tif (\"resource\" in definition) lazyCommand.resource = definition.resource;\n\t}\n\treturn lazyCommand;\n}\n/**\n* Define a {@link LazyCommand | lazy command} with specific type parameters.\n*\n* This helper function allows specifying the type parameter of {@link GunshiParams}\n* while inferring the {@link Args} type, {@link ExtendContext} type from the definition.\n*\n* @example\n* ```ts\n* type MyExtensions = { logger: { log: (message: string) => void } }\n*\n* const command = lazyWithTypes<{ extensions: MyExtensions }>()(\n* () => {\n* return ctx => {\n* // Command runner implementation\n* ctx.extensions.logger?.log('Command executed')\n* },\n* {\n* name: 'lazy-command',\n* args: {\n* opt: {\n* type: 'string',\n* description: 'An optional string argument',\n* required: false,\n* },\n* },\n* )\n* ```\n*\n* @typeParam G - A {@link GunshiParams} type\n*\n* @returns A function that takes a lazy command definition via {@link lazy}\n*\n* @since v0.27.0\n*/\nfunction lazyWithTypes() {\n\treturn (loader, definition) => {\n\t\treturn lazy(loader, definition);\n\t};\n}\n\n//#endregion\nexport { createCommandContext, define, defineWithTypes, lazy, lazyWithTypes };","import { i as isLazyCommand, o as resolveLazyCommand, r as getCommandSubCommands, s as kebabnize, t as create } from \"./utils-DNS9AIR_.js\";\nimport { n as CLI_OPTIONS_DEFAULT, r as NOOP, t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as createCommandContext } from \"./context-CHDIbgwd.js\";\n\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/parser.js\nconst HYPHEN_CHAR = \"-\";\nconst HYPHEN_CODE = HYPHEN_CHAR.codePointAt(0);\nconst EQUAL_CHAR = \"=\";\nconst EQUAL_CODE = EQUAL_CHAR.codePointAt(0);\nconst TERMINATOR = \"--\";\nconst SHORT_OPTION_PREFIX = HYPHEN_CHAR;\nconst LONG_OPTION_PREFIX = \"--\";\n/**\n* Parse command line arguments.\n*\n* @param args - command line arguments\n* @param options - parse options, about details see {@link ParserOptions}\n* @returns Argument tokens.\n*\n* @example\n* ```js\n* import { parseArgs } from 'args-tokens' // for Node.js and Bun\n* // import { parseArgs } from 'jsr:@kazupon/args-tokens' // for Deno\n*\n* const tokens = parseArgs(['--foo', 'bar', '-x', '--bar=baz'])\n* // do something with using tokens\n* // ...\n* console.log('tokens:', tokens)\n* ```\n*/\nfunction parseArgs(args, options = {}) {\n\tconst { allowCompatible = false } = options;\n\tconst tokens = [];\n\tconst remainings = [...args];\n\tlet index = -1;\n\tlet groupCount = 0;\n\tlet hasShortValueSeparator = false;\n\twhile (remainings.length > 0) {\n\t\tconst arg = remainings.shift();\n\t\tif (arg == void 0) break;\n\t\tconst nextArg = remainings[0];\n\t\tif (groupCount > 0) groupCount--;\n\t\telse index++;\n\t\tif (arg === TERMINATOR) {\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option-terminator\",\n\t\t\t\tindex\n\t\t\t});\n\t\t\tconst mapped = remainings.map((arg) => {\n\t\t\t\treturn {\n\t\t\t\t\tkind: \"positional\",\n\t\t\t\t\tindex: ++index,\n\t\t\t\t\tvalue: arg\n\t\t\t\t};\n\t\t\t});\n\t\t\ttokens.push(...mapped);\n\t\t\tbreak;\n\t\t}\n\t\tif (isShortOption(arg)) {\n\t\t\tconst shortOption = arg.charAt(1);\n\t\t\tlet value;\n\t\t\tlet inlineValue;\n\t\t\tif (groupCount) {\n\t\t\t\ttokens.push({\n\t\t\t\t\tkind: \"option\",\n\t\t\t\t\tname: shortOption,\n\t\t\t\t\trawName: arg,\n\t\t\t\t\tindex,\n\t\t\t\t\tvalue,\n\t\t\t\t\tinlineValue\n\t\t\t\t});\n\t\t\t\tif (groupCount === 1 && hasOptionValue(nextArg)) {\n\t\t\t\t\tvalue = remainings.shift();\n\t\t\t\t\tif (hasShortValueSeparator) {\n\t\t\t\t\t\tinlineValue = true;\n\t\t\t\t\t\thasShortValueSeparator = false;\n\t\t\t\t\t}\n\t\t\t\t\ttokens.push({\n\t\t\t\t\t\tkind: \"option\",\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tinlineValue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else tokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: shortOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue\n\t\t\t});\n\t\t\tif (value != null) ++index;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isShortOptionGroup(arg)) {\n\t\t\tconst expanded = [];\n\t\t\tlet shortValue = \"\";\n\t\t\tfor (let i = 1; i < arg.length; i++) {\n\t\t\t\tconst shortableOption = arg.charAt(i);\n\t\t\t\tif (hasShortValueSeparator) shortValue += shortableOption;\n\t\t\t\telse if (!allowCompatible && shortableOption.codePointAt(0) === EQUAL_CODE) hasShortValueSeparator = true;\n\t\t\t\telse expanded.push(`${SHORT_OPTION_PREFIX}${shortableOption}`);\n\t\t\t}\n\t\t\tif (shortValue) expanded.push(shortValue);\n\t\t\tremainings.unshift(...expanded);\n\t\t\tgroupCount = expanded.length;\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOption(arg)) {\n\t\t\tconst longOption = arg.slice(2);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: arg,\n\t\t\t\tindex,\n\t\t\t\tvalue: void 0,\n\t\t\t\tinlineValue: void 0\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLongOptionAndValue(arg)) {\n\t\t\tconst equalIndex = arg.indexOf(EQUAL_CHAR);\n\t\t\tconst longOption = arg.slice(2, equalIndex);\n\t\t\tconst value = arg.slice(equalIndex + 1);\n\t\t\ttokens.push({\n\t\t\t\tkind: \"option\",\n\t\t\t\tname: longOption,\n\t\t\t\trawName: `${LONG_OPTION_PREFIX}${longOption}`,\n\t\t\t\tindex,\n\t\t\t\tvalue,\n\t\t\t\tinlineValue: true\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\ttokens.push({\n\t\t\tkind: \"positional\",\n\t\t\tindex,\n\t\t\tvalue: arg\n\t\t});\n\t}\n\treturn tokens;\n}\n/**\n* Check if `arg` is a short option (e.g. `-f`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option.\n*/\nfunction isShortOption(arg) {\n\treturn arg.length === 2 && arg.codePointAt(0) === HYPHEN_CODE && arg.codePointAt(1) !== HYPHEN_CODE;\n}\n/**\n* Check if `arg` is a short option group (e.g. `-abc`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a short option group.\n*/\nfunction isShortOptionGroup(arg) {\n\tif (arg.length <= 2) return false;\n\tif (arg.codePointAt(0) !== HYPHEN_CODE) return false;\n\tif (arg.codePointAt(1) === HYPHEN_CODE) return false;\n\treturn true;\n}\n/**\n* Check if `arg` is a long option (e.g. `--foo`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOption(arg) {\n\treturn hasLongOptionPrefix(arg) && !arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option with value (e.g. `--foo=bar`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option.\n*/\nfunction isLongOptionAndValue(arg) {\n\treturn hasLongOptionPrefix(arg) && arg.includes(EQUAL_CHAR, 3);\n}\n/**\n* Check if `arg` is a long option prefix (e.g. `--`).\n*\n* @param arg - An argument to check\n* @returns Whether `arg` is a long option prefix.\n*/\nfunction hasLongOptionPrefix(arg) {\n\treturn arg.length > 2 && ~arg.indexOf(LONG_OPTION_PREFIX);\n}\n/**\n* Check if a `value` is an option value.\n*\n* @param value - A value to check\n* @returns Whether a `value` is an option value.\n*/\nfunction hasOptionValue(value) {\n\treturn !(value == null) && value.codePointAt(0) !== HYPHEN_CODE;\n}\n\n//#endregion\n//#region ../../node_modules/.pnpm/args-tokens@0.23.1/node_modules/args-tokens/lib/resolver.js\n/**\n* Entry point of argument options resolver.\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst SKIP_POSITIONAL_DEFAULT = -1;\n/**\n* Resolve command line arguments.\n*\n* @typeParam A - {@link Args | Arguments}, which is an object that defines the command line arguments.\n*\n* @param args - An arguments that contains {@link ArgSchema | arguments schema}.\n* @param tokens - An array of {@link ArgToken | tokens}.\n* @param resolveArgs - An arguments that contains {@link ResolveArgs | resolve arguments}.\n* @returns An object that contains the values of the arguments, positional arguments, rest arguments, {@link AggregateError | validation errors}, and explicit provision status.\n*\n* @example\n* ```typescript\n* // passed tokens: --port 3000\n*\n* const { values, explicit } = resolveArgs({\n* port: {\n* type: 'number',\n* default: 8080\n* },\n* host: {\n* type: 'string',\n* default: 'localhost'\n* }\n* }, parsedTokens)\n*\n* values.port // 3000\n* values.host // 'localhost'\n*\n* explicit.port // true (explicitly provided)\n* explicit.host // false (not provided, fallback to default)\n* ```\n*/\nfunction resolveArgs(args, tokens, { shortGrouping = false, skipPositional = SKIP_POSITIONAL_DEFAULT, toKebab = false } = {}) {\n\tconst skipPositionalIndex = typeof skipPositional === \"number\" ? Math.max(skipPositional, SKIP_POSITIONAL_DEFAULT) : SKIP_POSITIONAL_DEFAULT;\n\tconst rest = [];\n\tconst optionTokens = [];\n\tconst positionalTokens = [];\n\tlet currentLongOption;\n\tlet currentShortOption;\n\tconst expandableShortOptions = [];\n\tfunction toShortValue() {\n\t\tif (expandableShortOptions.length === 0) return;\n\t\telse {\n\t\t\tconst value = expandableShortOptions.map((token) => token.name).join(\"\");\n\t\t\texpandableShortOptions.length = 0;\n\t\t\treturn value;\n\t\t}\n\t}\n\tfunction applyLongOptionValue(value = void 0) {\n\t\tif (currentLongOption) {\n\t\t\tcurrentLongOption.value = value;\n\t\t\toptionTokens.push({ ...currentLongOption });\n\t\t\tcurrentLongOption = void 0;\n\t\t}\n\t}\n\tfunction applyShortOptionValue(value = void 0) {\n\t\tif (currentShortOption) {\n\t\t\tcurrentShortOption.value = value || toShortValue();\n\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\tcurrentShortOption = void 0;\n\t\t}\n\t}\n\t/**\n\t* analyze phase to resolve value\n\t* separate tokens into positionals, long and short options, after that resolve values\n\t*/\n\tconst schemas = Object.values(args);\n\tlet terminated = false;\n\tfor (let i = 0; i < tokens.length; i++) {\n\t\tconst token = tokens[i];\n\t\tif (token.kind === \"positional\") {\n\t\t\tif (terminated && token.value) {\n\t\t\t\trest.push(token.value);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (currentShortOption) {\n\t\t\t\tif (schemas.find((schema) => schema.short === currentShortOption.name && schema.type === \"boolean\")) positionalTokens.push({ ...token });\n\t\t\t} else if (currentLongOption) {\n\t\t\t\tif (args[currentLongOption.name]?.type === \"boolean\") positionalTokens.push({ ...token });\n\t\t\t} else positionalTokens.push({ ...token });\n\t\t\tapplyLongOptionValue(token.value);\n\t\t\tapplyShortOptionValue(token.value);\n\t\t} else if (token.kind === \"option\") if (token.rawName) {\n\t\t\tif (hasLongOptionPrefix(token.rawName)) {\n\t\t\t\tapplyLongOptionValue();\n\t\t\t\tif (token.inlineValue) optionTokens.push({ ...token });\n\t\t\t\telse currentLongOption = { ...token };\n\t\t\t\tapplyShortOptionValue();\n\t\t\t} else if (isShortOption(token.rawName)) if (currentShortOption) {\n\t\t\t\tif (currentShortOption.index === token.index) if (shortGrouping) {\n\t\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t} else expandableShortOptions.push({ ...token });\n\t\t\t\telse {\n\t\t\t\t\tcurrentShortOption.value = toShortValue();\n\t\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\t}\n\t\t\t\tapplyLongOptionValue();\n\t\t\t} else {\n\t\t\t\tcurrentShortOption = { ...token };\n\t\t\t\tapplyLongOptionValue();\n\t\t\t}\n\t\t} else {\n\t\t\tif (currentShortOption && currentShortOption.index == token.index && token.inlineValue) {\n\t\t\t\tcurrentShortOption.value = token.value;\n\t\t\t\toptionTokens.push({ ...currentShortOption });\n\t\t\t\tcurrentShortOption = void 0;\n\t\t\t}\n\t\t\tapplyLongOptionValue();\n\t\t}\n\t\telse {\n\t\t\tif (token.kind === \"option-terminator\") terminated = true;\n\t\t\tapplyLongOptionValue();\n\t\t\tapplyShortOptionValue();\n\t\t}\n\t}\n\t/**\n\t* check if the last long or short option is not resolved\n\t*/\n\tapplyLongOptionValue();\n\tapplyShortOptionValue();\n\t/**\n\t* resolve values\n\t*/\n\tconst values = Object.create(null);\n\tconst errors = [];\n\tconst explicit = Object.create(null);\n\tconst actualInputNames = /* @__PURE__ */ new Map();\n\tfunction checkTokenName(option, schema, token) {\n\t\treturn token.name === (schema.type === \"boolean\" ? schema.negatable && token.name?.startsWith(\"no-\") ? `no-${option}` : option : option);\n\t}\n\tconst positionalItemCount = tokens.filter((token) => token.kind === \"positional\").length;\n\tfunction getPositionalSkipIndex() {\n\t\treturn Math.min(skipPositionalIndex, positionalItemCount);\n\t}\n\tlet positionalsCount = 0;\n\tfor (const [rawArg, schema] of Object.entries(args)) {\n\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\texplicit[rawArg] = false;\n\t\tif (schema.type === \"positional\") {\n\t\t\tif (skipPositionalIndex > SKIP_POSITIONAL_DEFAULT) while (positionalsCount <= getPositionalSkipIndex()) positionalsCount++;\n\t\t\tif (schema.multiple) {\n\t\t\t\tconst remainingPositionals = positionalTokens.slice(positionalsCount);\n\t\t\t\tif (remainingPositionals.length > 0) {\n\t\t\t\t\tvalues[rawArg] = remainingPositionals.map((p) => p.value);\n\t\t\t\t\tpositionalsCount += remainingPositionals.length;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else if (schema.required) errors.push(createRequireError(arg, schema));\n\t\t\t} else {\n\t\t\t\tconst positional = positionalTokens[positionalsCount];\n\t\t\t\tif (positional != null) {\n\t\t\t\t\tvalues[rawArg] = positional.value;\n\t\t\t\t\texplicit[rawArg] = true;\n\t\t\t\t} else errors.push(createRequireError(arg, schema));\n\t\t\t\tpositionalsCount++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (schema.required) {\n\t\t\tif (!optionTokens.find((token) => {\n\t\t\t\treturn schema.short && token.name === schema.short || token.rawName && hasLongOptionPrefix(token.rawName) && token.name === arg;\n\t\t\t})) {\n\t\t\t\terrors.push(createRequireError(arg, schema));\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < optionTokens.length; i++) {\n\t\t\tconst token = optionTokens[i];\n\t\t\tif (checkTokenName(arg, schema, token) && token.rawName != void 0 && hasLongOptionPrefix(token.rawName) || schema.short === token.name && token.rawName != void 0 && isShortOption(token.rawName)) {\n\t\t\t\tconst invalid = validateRequire(token, arg, schema);\n\t\t\t\tif (invalid) {\n\t\t\t\t\terrors.push(invalid);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\texplicit[rawArg] = true;\n\t\t\t\tconst actualInputName = isShortOption(token.rawName) ? `-${token.name}` : `--${arg}`;\n\t\t\t\tactualInputNames.set(rawArg, actualInputName);\n\t\t\t\tif (schema.type === \"boolean\") token.value = void 0;\n\t\t\t\tconst [parsedValue, error] = parse(token, arg, schema);\n\t\t\t\tif (error) errors.push(error);\n\t\t\t\telse if (schema.multiple) {\n\t\t\t\t\tvalues[rawArg] ||= [];\n\t\t\t\t\tvalues[rawArg].push(parsedValue);\n\t\t\t\t} else values[rawArg] = parsedValue;\n\t\t\t}\n\t\t}\n\t\tif (values[rawArg] == null && schema.default != null) values[rawArg] = schema.default;\n\t}\n\tconst conflictErrors = checkConflicts(args, explicit, toKebab, actualInputNames);\n\terrors.push(...conflictErrors);\n\treturn {\n\t\tvalues,\n\t\tpositionals: positionalTokens.map((token) => token.value),\n\t\trest,\n\t\terror: errors.length > 0 ? new AggregateError(errors) : void 0,\n\t\texplicit\n\t};\n}\nfunction parse(token, option, schema) {\n\tswitch (schema.type) {\n\t\tcase \"string\": return typeof token.value === \"string\" ? [token.value || schema.default, void 0] : [void 0, createTypeError(option, schema)];\n\t\tcase \"boolean\": return token.value ? [token.value || schema.default, void 0] : [!(schema.negatable && token.name.startsWith(\"no-\")), void 0];\n\t\tcase \"number\":\n\t\t\tif (!isNumeric(token.value)) return [void 0, createTypeError(option, schema)];\n\t\t\treturn token.value ? [+token.value, void 0] : [+(schema.default || \"\"), void 0];\n\t\tcase \"enum\":\n\t\t\tif (schema.choices && !schema.choices.includes(token.value)) return [void 0, new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be chosen from '${schema.type}' [${schema.choices.map((c) => JSON.stringify(c)).join(\", \")}] values`, option, \"type\", schema)];\n\t\t\treturn [token.value || schema.default, void 0];\n\t\tcase \"custom\":\n\t\t\tif (typeof schema.parse !== \"function\") throw new TypeError(`argument '${option}' should have a 'parse' function`);\n\t\t\ttry {\n\t\t\t\treturn [schema.parse(token.value || String(schema.default || \"\")), void 0];\n\t\t\t} catch (error) {\n\t\t\t\treturn [void 0, error];\n\t\t\t}\n\t\tdefault: throw new Error(`Unsupported argument type '${schema.type}' for option '${option}'`);\n\t}\n}\nfunction createRequireError(option, schema) {\n\treturn new ArgResolveError(schema.type === \"positional\" ? `Positional argument '${option}' is required` : `Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}is required`, option, \"required\", schema);\n}\n/**\n* An error that occurs when resolving arguments.\n* This error is thrown when the argument is not valid.\n*/\nvar ArgResolveError = class extends Error {\n\tname;\n\tschema;\n\ttype;\n\t/**\n\t* Create an `ArgResolveError` instance.\n\t*\n\t* @param message - the error message\n\t* @param name - the name of the argument\n\t* @param type - the type of the error, either 'type' or 'required'\n\t* @param schema - the argument schema that caused the error\n\t*/\n\tconstructor(message, name, type, schema) {\n\t\tsuper(message);\n\t\tthis.name = name;\n\t\tthis.type = type;\n\t\tthis.schema = schema;\n\t}\n};\nfunction validateRequire(token, option, schema) {\n\tif (schema.required && schema.type !== \"boolean\" && !token.value) return createRequireError(option, schema);\n}\nfunction isNumeric(str) {\n\treturn str.trim() !== \"\" && !isNaN(str);\n}\nfunction createTypeError(option, schema) {\n\treturn new ArgResolveError(`Optional argument '--${option}' ${schema.short ? `or '-${schema.short}' ` : \"\"}should be '${schema.type}'`, option, \"type\", schema);\n}\nfunction checkConflicts(args, explicit, toKebab, actualInputNames) {\n\tfor (const rawArg in args) {\n\t\tconst schema = args[rawArg];\n\t\tif (!explicit[rawArg]) continue;\n\t\tif (!schema.conflicts) continue;\n\t\tconst conflicts = Array.isArray(schema.conflicts) ? schema.conflicts : [schema.conflicts];\n\t\tfor (let i = 0; i < conflicts.length; i++) {\n\t\t\tconst conflictingArg = conflicts[i];\n\t\t\tif (!explicit[conflictingArg]) continue;\n\t\t\tconst arg = toKebab || schema.toKebab ? kebabnize(rawArg) : rawArg;\n\t\t\tconst conflictingArgKebab = toKebab || args[conflictingArg]?.toKebab ? kebabnize(conflictingArg) : conflictingArg;\n\t\t\treturn [new ArgResolveError(`Optional argument '${actualInputNames.get(rawArg) || `--${arg}`}' conflicts with '${actualInputNames.get(conflictingArg) || `--${conflictingArgKebab}`}'`, rawArg, \"conflict\", schema)];\n\t\t}\n\t}\n\treturn [];\n}\n\n//#endregion\n//#region src/decorators.ts\nconst EMPTY_RENDERER = () => Promise.resolve(\"\");\n/**\n* Factory function for creating a decorators manager.\n*\n* @returns A new decorators manager instance\n*/\nfunction createDecorators() {\n\t/**\n\t* private states\n\t*/\n\tconst headerDecorators = [];\n\tconst usageDecorators = [];\n\tconst validationDecorators = [];\n\tconst commandDecorators = [];\n\t/**\n\t* helper function for building renderers\n\t*/\n\tfunction buildRenderer(decorators, defaultRenderer) {\n\t\tif (decorators.length === 0) return defaultRenderer;\n\t\tlet renderer = defaultRenderer;\n\t\tfor (const decorator of decorators) {\n\t\t\tconst previousRenderer = renderer;\n\t\t\trenderer = (ctx) => decorator(previousRenderer, ctx);\n\t\t}\n\t\treturn renderer;\n\t}\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\taddHeaderDecorator(decorator) {\n\t\t\theaderDecorators.push(decorator);\n\t\t},\n\t\taddUsageDecorator(decorator) {\n\t\t\tusageDecorators.push(decorator);\n\t\t},\n\t\taddValidationErrorsDecorator(decorator) {\n\t\t\tvalidationDecorators.push(decorator);\n\t\t},\n\t\taddCommandDecorator(decorator) {\n\t\t\tcommandDecorators.push(decorator);\n\t\t},\n\t\tget commandDecorators() {\n\t\t\treturn [...commandDecorators];\n\t\t},\n\t\tgetHeaderRenderer() {\n\t\t\treturn buildRenderer(headerDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetUsageRenderer() {\n\t\t\treturn buildRenderer(usageDecorators, EMPTY_RENDERER);\n\t\t},\n\t\tgetValidationErrorsRenderer() {\n\t\t\tif (validationDecorators.length === 0) return EMPTY_RENDERER;\n\t\t\tlet renderer = EMPTY_RENDERER;\n\t\t\tfor (const decorator of validationDecorators) {\n\t\t\t\tconst previousRenderer = renderer;\n\t\t\t\trenderer = (ctx, error) => decorator(previousRenderer, ctx, error);\n\t\t\t}\n\t\t\treturn renderer;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/context.ts\n/**\n* Factory function for creating a plugin context.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command parameters.\n*\n* @param decorators - A {@linkcode Decorators} instance.\n* @param initialSubCommands - Initial sub commands map.\n* @returns A new {@linkcode PluginContext} instance.\n*/\nfunction createPluginContext(decorators, initialSubCommands) {\n\t/**\n\t* private states\n\t*/\n\tconst globalOptions = /* @__PURE__ */ new Map();\n\tconst subCommands = new Map(initialSubCommands || []);\n\t/**\n\t* public interfaces\n\t*/\n\treturn Object.freeze({\n\t\tget globalOptions() {\n\t\t\treturn new Map(globalOptions);\n\t\t},\n\t\taddGlobalOption(name, schema) {\n\t\t\tif (!name) throw new Error(\"Option name must be a non-empty string\");\n\t\t\tif (globalOptions.has(name)) throw new Error(`Global option '${name}' is already registered`);\n\t\t\tglobalOptions.set(name, schema);\n\t\t},\n\t\tget subCommands() {\n\t\t\treturn new Map(subCommands);\n\t\t},\n\t\taddCommand(name, command) {\n\t\t\tif (!name) throw new Error(\"Command name must be a non-empty string\");\n\t\t\tif (subCommands.has(name)) throw new Error(`Command '${name}' is already registered`);\n\t\t\tsubCommands.set(name, command);\n\t\t},\n\t\thasCommand(name) {\n\t\t\treturn subCommands.has(name);\n\t\t},\n\t\tdecorateHeaderRenderer(decorator) {\n\t\t\tdecorators.addHeaderDecorator(decorator);\n\t\t},\n\t\tdecorateUsageRenderer(decorator) {\n\t\t\tdecorators.addUsageDecorator(decorator);\n\t\t},\n\t\tdecorateValidationErrorsRenderer(decorator) {\n\t\t\tdecorators.addValidationErrorsDecorator(decorator);\n\t\t},\n\t\tdecorateCommand(decorator) {\n\t\t\tdecorators.addCommandDecorator(decorator);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/plugin/dependency.ts\n/**\n* Resolve plugin dependencies using topological sort\n*\n* @param plugins - Array of plugins to resolve\n* @returns Array of plugins sorted by dependencies\n*/\nfunction resolveDependencies(plugins) {\n\tconst sorted = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst visiting = /* @__PURE__ */ new Set();\n\tconst pluginMap = /* @__PURE__ */ new Map();\n\tfor (const plugin of plugins) if (plugin.id) {\n\t\tif (pluginMap.has(plugin.id)) console.warn(`Duplicate plugin id detected: \\`${plugin.id}\\``);\n\t\tpluginMap.set(plugin.id, plugin);\n\t}\n\tfunction visit(plugin) {\n\t\tif (!plugin.id) return;\n\t\tif (visited.has(plugin.id)) return;\n\t\tif (visiting.has(plugin.id)) throw new Error(`Circular dependency detected: \\`${[...visiting].join(` -> `) + \" -> \" + plugin.id}\\``);\n\t\tvisiting.add(plugin.id);\n\t\tconst deps = plugin.dependencies || [];\n\t\tfor (const dep of deps) {\n\t\t\tconst depId = typeof dep === \"string\" ? dep : dep.id;\n\t\t\tconst isOptional = typeof dep === \"string\" ? false : dep.optional || false;\n\t\t\tconst depPlugin = pluginMap.get(depId);\n\t\t\tif (!depPlugin && !isOptional) throw new Error(`Missing required dependency: \\`${depId}\\` on \\`${plugin.id}\\``);\n\t\t\tif (depPlugin) visit(depPlugin);\n\t\t}\n\t\tvisiting.delete(plugin.id);\n\t\tvisited.add(plugin.id);\n\t\tsorted.push(plugin);\n\t}\n\tfor (const plugin of plugins) visit(plugin);\n\treturn sorted;\n}\n\n//#endregion\n//#region src/cli/core.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param argv - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @param plugins - An array of {@link Plugin | plugins} to be applied\n* @returns A rendered usage or undefined. if you will use {@link CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cliCore(argv, entry, options, plugins) {\n\tconst decorators = createDecorators();\n\tconst pluginContext = createPluginContext(decorators, createInitialSubCommands(options, entry));\n\tconst resolvedPlugins = await applyPlugins(pluginContext, [...plugins, ...options.plugins || []]);\n\tconst cliOptions = normalizeCliOptions(options, decorators, pluginContext);\n\tconst tokens = parseArgs(argv);\n\tconst resolved = resolveCommandTree(tokens, entry, cliOptions);\n\tconst { commandName: name, command, callMode, commandPath, depth, levelSubCommands } = resolved;\n\tif (!command) throw new Error(`Command not found: ${name || \"\"}`);\n\tconst args = resolveArguments(pluginContext, getCommandArgs(command));\n\tconst skipPositional = depth > 0 ? depth - 1 : -1;\n\tconst { explicit, values, positionals, rest, error } = resolveArgs(args, tokens, {\n\t\tshortGrouping: true,\n\t\ttoKebab: command.toKebab,\n\t\tskipPositional\n\t});\n\tconst omitted = resolved.omitted;\n\tif (levelSubCommands) cliOptions.subCommands = levelSubCommands;\n\tconst resolvedCommand = isLazyCommand(command) ? await resolveLazyCommand(command, name, true) : command;\n\treturn await executeCommand(resolvedCommand, await createCommandContext({\n\t\targs,\n\t\texplicit,\n\t\tvalues,\n\t\tpositionals,\n\t\trest,\n\t\targv,\n\t\ttokens,\n\t\tomitted,\n\t\tcallMode,\n\t\tcommandPath,\n\t\tcommand: resolvedCommand,\n\t\textensions: getPluginExtensions(resolvedPlugins),\n\t\tvalidationError: error,\n\t\tcliOptions\n\t}), decorators.commandDecorators);\n}\nasync function applyPlugins(pluginContext, plugins) {\n\tconst sortedPlugins = resolveDependencies(plugins);\n\ttry {\n\t\tfor (const plugin of sortedPlugins)\n /**\n\t\t* NOTE(kazupon):\n\t\t* strictly `Args` are not required for plugin installation.\n\t\t* because the strictly `Args` required by each plugin are unknown,\n\t\t* and the plugin side can not know what the user will specify.\n\t\t*/\n\t\tawait plugin(pluginContext);\n\t} catch (error) {\n\t\tconsole.error(\"Error loading plugin:\", error.message);\n\t}\n\treturn sortedPlugins;\n}\nfunction getCommandArgs(cmd) {\n\tif (isLazyCommand(cmd)) return cmd.args || create();\n\telse if (typeof cmd === \"object\") return cmd.args || create();\n\telse return create();\n}\nfunction resolveArguments(pluginContext, args) {\n\treturn Object.assign(create(), Object.fromEntries(pluginContext.globalOptions), args);\n}\nconst isObject = (val) => val !== null && typeof val === \"object\";\nfunction createInitialSubCommands(options, entryCmd) {\n\tconst hasSubCommands = options.subCommands ? options.subCommands instanceof Map ? options.subCommands.size > 0 : isObject(options.subCommands) && Object.keys(options.subCommands).length > 0 : false;\n\tconst subCommands = new Map(options.subCommands instanceof Map ? options.subCommands : []);\n\tif (!(options.subCommands instanceof Map) && isObject(options.subCommands)) for (const [name, cmd] of Object.entries(options.subCommands)) subCommands.set(name, cmd);\n\tif (hasSubCommands) {\n\t\tif (isLazyCommand(entryCmd)) {\n\t\t\tconst entryCopy = Object.assign((...args) => entryCmd(...args), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"object\") {\n\t\t\tconst entryCopy = Object.assign(create(), entryCmd, { entry: true });\n\t\t\tsubCommands.set(resolveEntryName(entryCopy), entryCopy);\n\t\t} else if (typeof entryCmd === \"function\") {\n\t\t\tconst name = entryCmd.name || ANONYMOUS_COMMAND_NAME;\n\t\t\tsubCommands.set(name, {\n\t\t\t\trun: entryCmd,\n\t\t\t\tname,\n\t\t\t\tentry: true\n\t\t\t});\n\t\t}\n\t}\n\treturn subCommands;\n}\nfunction normalizeCliOptions(options, decorators, pluginContext) {\n\tconst subCommands = new Map(pluginContext.subCommands);\n\tconst resolvedOptions = Object.assign(create(), CLI_OPTIONS_DEFAULT, options, { subCommands });\n\tif (resolvedOptions.renderHeader === void 0) resolvedOptions.renderHeader = decorators.getHeaderRenderer();\n\tif (resolvedOptions.renderUsage === void 0) resolvedOptions.renderUsage = decorators.getUsageRenderer();\n\tif (resolvedOptions.renderValidationErrors === void 0) resolvedOptions.renderValidationErrors = decorators.getValidationErrorsRenderer();\n\treturn resolvedOptions;\n}\nfunction getPositionalTokens(tokens) {\n\treturn tokens.filter((t) => t.kind === \"positional\").map((t) => t.value).filter((v) => !!v);\n}\nfunction resolveCommandTree(tokens, entry, options) {\n\tconst positionals = getPositionalTokens(tokens);\n\tfunction resolveAsEntry() {\n\t\tif (typeof entry === \"function\") if (\"commandName\" in entry && entry.commandName) return {\n\t\t\tcommandName: entry.commandName,\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcommand: {\n\t\t\t\trun: entry,\n\t\t\t\tentry: true\n\t\t\t},\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse if (typeof entry === \"object\") return {\n\t\t\tcommandName: resolveEntryName(entry),\n\t\t\tcommand: entry,\n\t\t\tcallMode: \"entry\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: options.subCommands.size > 0 && !positionals[0],\n\t\t\tlevelSubCommands: options.subCommands.size > 0 ? options.subCommands : void 0\n\t\t};\n\t\telse return {\n\t\t\tcallMode: \"unexpected\",\n\t\t\tcommandPath: [],\n\t\t\tdepth: 0,\n\t\t\tomitted: false,\n\t\t\tlevelSubCommands: void 0\n\t\t};\n\t}\n\tif (positionals.length === 0 || options.subCommands.size === 0) return resolveAsEntry();\n\tlet currentSubCommands = options.subCommands;\n\tlet resolvedCommand;\n\tlet resolvedName;\n\tconst commandPath = [];\n\tlet depth = 0;\n\tfor (let i = 0; i < positionals.length; i++) {\n\t\tconst token = positionals[i];\n\t\tconst cmd = currentSubCommands.get(token);\n\t\tif (cmd == null) {\n\t\t\tif (depth === 0) {\n\t\t\t\tif (options.fallbackToEntry) return resolveAsEntry();\n\t\t\t\treturn {\n\t\t\t\t\tcommandName: token,\n\t\t\t\t\tcallMode: \"unexpected\",\n\t\t\t\t\tcommandPath: [],\n\t\t\t\t\tdepth: 0,\n\t\t\t\t\tomitted: false,\n\t\t\t\t\tlevelSubCommands: void 0\n\t\t\t\t};\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tlet resolved = cmd;\n\t\tif (typeof cmd === \"function\" && cmd.commandName == null) resolved = Object.assign((...args) => cmd(...args), cmd, { commandName: token });\n\t\telse if (typeof cmd === \"object\" && cmd.name == null) resolved = Object.assign(create(), cmd, { name: token });\n\t\tresolvedCommand = resolved;\n\t\tresolvedName = token;\n\t\tcommandPath.push(token);\n\t\tdepth++;\n\t\tconst nestedSubCommands = getCommandSubCommands(cmd);\n\t\tif (nestedSubCommands && nestedSubCommands.size > 0) currentSubCommands = nestedSubCommands;\n\t\telse break;\n\t}\n\tif (!resolvedCommand) return resolveAsEntry();\n\tconst resolvedSubCommands = getCommandSubCommands(resolvedCommand);\n\tconst omitted = resolvedSubCommands != null && resolvedSubCommands.size > 0;\n\tlet levelSubCommands;\n\tif (omitted && resolvedSubCommands) {\n\t\tlevelSubCommands = new Map(resolvedSubCommands);\n\t\tlet entryCopy;\n\t\tif (typeof resolvedCommand === \"function\") entryCopy = Object.assign((...args) => resolvedCommand(...args), resolvedCommand, { entry: true });\n\t\telse entryCopy = Object.assign(create(), resolvedCommand, { entry: true });\n\t\tlevelSubCommands.set(resolvedName || resolveEntryName(entryCopy), entryCopy);\n\t}\n\treturn {\n\t\tcommandName: resolvedName,\n\t\tcommand: resolvedCommand,\n\t\tcallMode: depth > 0 ? \"subCommand\" : \"entry\",\n\t\tcommandPath,\n\t\tdepth,\n\t\tomitted,\n\t\tlevelSubCommands\n\t};\n}\nfunction resolveEntryName(entry) {\n\treturn isLazyCommand(entry) ? entry.commandName || ANONYMOUS_COMMAND_NAME : entry.name || ANONYMOUS_COMMAND_NAME;\n}\nfunction getPluginExtensions(plugins) {\n\tconst extensions = create();\n\tfor (const plugin of plugins) if (plugin.extension) {\n\t\tconst key = plugin.id;\n\t\tif (extensions[key]) console.warn(`Plugin \"${key}\" is already installed. Ignore it for command context extending.`);\n\t\telse extensions[key] = plugin.extension;\n\t}\n\treturn extensions;\n}\nasync function executeCommand(cmd, ctx, decorators) {\n\tconst baseRunner = cmd.run || NOOP;\n\tconst decoratedRunner = decorators.reduceRight((runner, decorator) => decorator(runner), baseRunner);\n\ttry {\n\t\tif (ctx.env.onBeforeCommand) await ctx.env.onBeforeCommand(ctx);\n\t\tconst result = await decoratedRunner(ctx);\n\t\tif (ctx.env.onAfterCommand) await ctx.env.onAfterCommand(ctx, result);\n\t\treturn typeof result === \"string\" ? result : void 0;\n\t} catch (error) {\n\t\tif (ctx.env.onErrorCommand) try {\n\t\t\tawait ctx.env.onErrorCommand(ctx, error);\n\t\t} catch (hookError) {\n\t\t\tconsole.error(\"Error in onErrorCommand hook:\", hookError);\n\t\t}\n\t\tthrow error;\n\t}\n}\n\n//#endregion\nexport { resolveArgs as n, parseArgs as r, cliCore as t };","//#region src/plugin/core.ts\nconst NOOP_EXTENSION = () => {\n\treturn Object.create(null);\n};\n/**\n* Define a plugin\n*\n* @param options - {@linkcode PluginOptions | plugin options}\n* @returns A defined plugin\n*\n* @since v0.27.0\n*/\nfunction plugin(options = {}) {\n\tconst { id, name, setup, onExtension, dependencies } = options;\n\tconst extension = options.extension || NOOP_EXTENSION;\n\tconst pluginFn = async (ctx) => {\n\t\tif (setup) await setup(ctx);\n\t};\n\tconst props = {\n\t\twritable: false,\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t};\n\treturn Object.defineProperties(pluginFn, {\n\t\tid: {\n\t\t\tvalue: id,\n\t\t\t...props\n\t\t},\n\t\t...name && { name: {\n\t\t\tvalue: name,\n\t\t\t...props\n\t\t} },\n\t\t...dependencies && { dependencies: {\n\t\t\tvalue: dependencies,\n\t\t\t...props\n\t\t} },\n\t\t...extension && { extension: {\n\t\t\tvalue: {\n\t\t\t\tkey: Symbol(id),\n\t\t\t\tfactory: extension,\n\t\t\t\tonFactory: onExtension\n\t\t\t},\n\t\t\t...props\n\t\t} }\n\t});\n}\n\n//#endregion\nexport { plugin as t };","import { o as resolveLazyCommand, s as kebabnize } from \"./utils-DNS9AIR_.js\";\nimport { t as ANONYMOUS_COMMAND_NAME } from \"./constants-WviiKqbt.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\n\n//#region ../shared/src/constants.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst BUILT_IN_PREFIX = \"_\";\nconst PLUGIN_PREFIX = \"g\";\nconst ARG_PREFIX = \"arg\";\nconst BUILT_IN_KEY_SEPARATOR = \":\";\nconst BUILD_IN_PREFIX_AND_KEY_SEPARATOR = `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_PREFIX_AND_KEY_SEPARATOR = `${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}`;\nconst ARG_NEGATABLE_PREFIX = \"no-\";\nconst COMMON_ARGS = {\n\thelp: {\n\t\ttype: \"boolean\",\n\t\tshort: \"h\",\n\t\tdescription: \"Display this help message\"\n\t},\n\tversion: {\n\t\ttype: \"boolean\",\n\t\tshort: \"v\",\n\t\tdescription: \"Display this version\"\n\t}\n};\n\n//#endregion\n//#region ../resources/locales/en-US.json\nvar NEGATABLE = \"Negatable of\";\nvar en_US_default = {\n\tCOMMAND: \"COMMAND\",\n\tCOMMANDS: \"COMMANDS\",\n\tSUBCOMMAND: \"SUBCOMMAND\",\n\tUSAGE: \"USAGE\",\n\tARGUMENTS: \"ARGUMENTS\",\n\tOPTIONS: \"OPTIONS\",\n\tEXAMPLES: \"EXAMPLES\",\n\tFORMORE: \"For more info, run any command with the `--help` flag\",\n\tNEGATABLE,\n\tDEFAULT: \"default\",\n\tCHOICES: \"choices\",\n\thelp: \"Display this help message\",\n\tversion: \"Display this version\"\n};\n\n//#endregion\n//#region ../shared/src/utils.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Resolve a namespaced key for built-in resources.\n*\n* Built-in keys are prefixed with \"_:\".\n*\n* @typeParam K - The type of the built-in key to resolve. Defaults to command built-in argument and resource keys.\n*\n* @param key - The built-in key to resolve.\n* @returns Prefixed built-in key.\n*/\nfunction resolveBuiltInKey(key) {\n\treturn `${BUILT_IN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for argument resources.\n*\n* Argument keys are prefixed with \"arg:\".\n* If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:arg:foo\").\n*\n* @typeParam A - The {@linkcode Args} type extracted from G\n*\n* @param key - The argument key to resolve.\n* @param name - The command name.\n* @returns Prefixed argument key.\n*/\nfunction resolveArgKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${ARG_PREFIX}${BUILT_IN_KEY_SEPARATOR}${key}`;\n}\n/**\n* Resolve a namespaced key for non-built-in resources.\n*\n* Non-built-in keys are not prefixed with any special characters. If the command name is provided, it will be prefixed with the command name (e.g. \"cmd1:foo\").\n*\n* @typeParam T - The type of the non-built-in key to resolve. Defaults to string.\n*\n* @param key - The non-built-in key to resolve.\n* @param name - The command name.\n* @returns Prefixed non-built-in key.\n*/\nfunction resolveKey(key, name) {\n\treturn `${name ? `${name}${BUILT_IN_KEY_SEPARATOR}` : \"\"}${key}`;\n}\n/**\n* Resolve command examples.\n*\n* @typeParam G - Type parameter extending {@linkcode GunshiParams}\n*\n* @param ctx - A {@linkcode CommandContext | command context}.\n* @param examples - The examples to resolve, which can be a string or a {@linkcode CommandExamplesFetcher | function} that returns a string.\n* @returns A resolved string of examples.\n*/\nasync function resolveExamples$1(ctx, examples) {\n\treturn typeof examples === \"string\" ? examples : typeof examples === \"function\" ? await examples(ctx) : \"\";\n}\n/**\n* Generate a namespaced key for a plugin.\n*\n* @typeParam K - The type of the plugin id to generate a namespaced key for.\n*\n* @param id - A plugin id to generate a namespaced key.\n* @returns A namespaced key for the plugin.\n*/\nfunction namespacedId(id) {\n\treturn `${PLUGIN_PREFIX}${BUILT_IN_KEY_SEPARATOR}${id}`;\n}\n/**\n* Generate a short and long option pair for command arguments.\n*\n* @param schema - The {@linkcode ArgSchema | argument schema} to generate the option pair.\n* @param name - The name of the argument.\n* @param toKebab - Whether to convert the name to kebab-case for display in help text.\n* @returns A string representing the short and long option pair.\n*/\nfunction makeShortLongOptionPair(schema, name, toKebab) {\n\tlet key = `--${toKebab || schema.toKebab ? kebabnize(name) : name}`;\n\tif (schema.short) key = `-${schema.short}, ${key}`;\n\treturn key;\n}\n\n//#endregion\n//#region ../shared/src/localization.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Create a localizable function for a command.\n*\n* This function will resolve the translation key based on the command context and the provided translation function.\n*\n* @typeParam A - The {@linkcode Args} type extracted from Gunshi command.\n* @typeParam C - Additional context type for command localization.\n* @typeParam E - Extended resource keys type.\n*\n* @param ctx - Command context\n* @param cmd - Command\n* @param translate - Translation function\n* @returns Localizable function\n*/\nfunction localizable(ctx, cmd, translate) {\n\tasync function localize(key, values) {\n\t\tif (translate) return translate(key, values);\n\t\tif (key.startsWith(BUILD_IN_PREFIX_AND_KEY_SEPARATOR)) return en_US_default[key.slice(BUILD_IN_PREFIX_AND_KEY_SEPARATOR.length)] || key;\n\t\tconst namaspacedArgKey = resolveKey(ARG_PREFIX_AND_KEY_SEPARATOR, ctx.name);\n\t\tif (key.startsWith(namaspacedArgKey)) {\n\t\t\tlet argKey = key.slice(namaspacedArgKey.length);\n\t\t\tlet negatable = false;\n\t\t\tif (argKey.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\t\targKey = argKey.slice(ARG_NEGATABLE_PREFIX.length);\n\t\t\t\tnegatable = true;\n\t\t\t}\n\t\t\tconst schema = ctx.args[argKey];\n\t\t\tif (!schema) return argKey;\n\t\t\treturn negatable && schema.type === \"boolean\" && schema.negatable ? `${NEGATABLE} ${makeShortLongOptionPair(schema, argKey, ctx.toKebab)}` : schema.description || \"\";\n\t\t}\n\t\tif (key === resolveKey(\"description\", ctx.name)) return \"\";\n\t\telse if (key === resolveKey(\"examples\", ctx.name)) return await resolveExamples$1(ctx, cmd.examples);\n\t\telse return key;\n\t}\n\treturn localize;\n}\n\n//#endregion\n//#region ../plugin-renderer/src/header.ts\n/**\n* Render the header.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered header.\n*/\nfunction renderHeader(ctx) {\n\tconst title = ctx.env.description || ctx.env.name || \"\";\n\treturn Promise.resolve(title ? `${title} (${ctx.env.name || \"\"}${ctx.env.version ? ` v${ctx.env.version}` : \"\"})` : title);\n}\n\n//#endregion\n//#region ../plugin-renderer/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for usage renderer plugin.\n*/\nconst pluginId = namespacedId(\"renderer\");\n\n//#endregion\n//#region ../plugin-renderer/src/usage.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst COMMON_ARGS_KEYS = Object.keys(COMMON_ARGS);\n/**\n* Render the usage.\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage.\n*/\nasync function renderUsage(ctx) {\n\tconst messages = [];\n\tif (ctx.callMode === \"subCommand\") {\n\t\tconst description = await resolveDescription(ctx);\n\t\tif (description) messages.push(description, \"\");\n\t}\n\tmessages.push(...await renderUsageSection(ctx), \"\");\n\tif (ctx.omitted && await hasCommands(ctx)) messages.push(...await renderCommandsSection(ctx), \"\");\n\tif (hasPositionalArgs(ctx.args)) messages.push(...await renderPositionalArgsSection(ctx), \"\");\n\tif (hasOptionalArgs(ctx.args)) messages.push(...await renderOptionalArgsSection(ctx), \"\");\n\tconst examples = await renderExamplesSection(ctx);\n\tif (examples.length > 0) messages.push(...examples, \"\");\n\treturn messages.join(\"\\n\");\n}\n/**\n* Render the positional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered arguments section\n*/\nasync function renderPositionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"ARGUMENTS\"))}:`);\n\tmessages.push(await generatePositionalArgsUsage(ctx));\n\treturn messages;\n}\n/**\n* Render the optional arguments section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered options section\n*/\nasync function renderOptionalArgsSection(ctx) {\n\tconst messages = [];\n\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}:`);\n\tmessages.push(await generateOptionalArgsUsage(ctx, getOptionalArgsPairs(ctx)));\n\treturn messages;\n}\n/**\n* Render the examples section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered examples section\n*/\nasync function renderExamplesSection(ctx) {\n\tconst messages = [];\n\tconst resolvedExamples = await resolveExamples(ctx);\n\tif (resolvedExamples) {\n\t\tconst examples = resolvedExamples.split(\"\\n\").map((example) => example.padStart(ctx.env.leftMargin + example.length));\n\t\tmessages.push(`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"EXAMPLES\"))}:`, ...examples);\n\t}\n\treturn messages;\n}\n/**\n* Render the usage section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered usage section\n*/\nasync function renderUsageSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"USAGE\"))}:`];\n\tconst usageStr = await makeUsageSymbols(ctx);\n\tmessages.push(usageStr.padStart(ctx.env.leftMargin + usageStr.length));\n\treturn messages;\n}\nasync function makeUsageSymbols(ctx) {\n\tconst messages = [await resolveEntry(ctx)];\n\tif (ctx.omitted) if (await hasCommands(ctx)) messages.push(` [${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}]`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\telse messages.push(`${ctx.callMode === \"subCommand\" ? ` ${await resolveSubCommand(ctx)}` : \"\"}`);\n\tconst optionsSymbols = await generateOptionsSymbols(ctx, ctx.args);\n\tif (optionsSymbols) messages.push(\" \", optionsSymbols);\n\tconst positionalSymbols = generatePositionalSymbols(ctx.args);\n\tif (positionalSymbols) messages.push(\" \", positionalSymbols);\n\treturn messages.join(\"\");\n}\n/**\n* Render the commands section\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns A rendered commands section\n*/\nasync function renderCommandsSection(ctx) {\n\tconst messages = [`${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMANDS\"))}:`];\n\tconst loadedCommands = await ctx.extensions?.[pluginId].loadCommands() || [];\n\tconst commandMaxLength = Math.max(...loadedCommands.map((cmd) => (cmd.name || \"\").length));\n\tconst commandsStr = await Promise.all(loadedCommands.map(async (cmd) => {\n\t\tconst desc = cmd.description || \"\";\n\t\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\t\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\t\tconst commandStr = await makeCommandSymbol(ctx, cmd);\n\t\tconst symbolLength = desc.length > 0 ? commandMaxLength + optionSymbol.length + positionalSymbol.length : 0;\n\t\tconst command = `${commandStr.padEnd(symbolLength + ctx.env.middleMargin)}${desc}`;\n\t\treturn `${command.padStart(ctx.env.leftMargin + command.length)}`;\n\t}));\n\tmessages.push(...commandsStr, \"\", `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"FORMORE\"))}:`);\n\tconst basePath = ctx.commandPath && ctx.commandPath.length > 0 ? `${ctx.env.name} ${ctx.commandPath.join(\" \")}` : ctx.env.name;\n\tmessages.push(...loadedCommands.map((cmd) => {\n\t\tlet commandStr = cmd.entry ? \"\" : cmd.name || \"\";\n\t\tif (commandStr) commandStr += \" \";\n\t\tconst commandHelp = `${basePath} ${commandStr}--help`;\n\t\treturn `${commandHelp.padStart(ctx.env.leftMargin + commandHelp.length)}`;\n\t}));\n\treturn messages;\n}\nasync function makeCommandSymbol(ctx, cmd) {\n\tconst optionSymbol = await generateOptionsSymbols(ctx, ctx.args);\n\tconst positionalSymbol = generatePositionalSymbols(ctx.args);\n\tlet commandStr = cmd.entry ? cmd.name === void 0 || cmd.name === ANONYMOUS_COMMAND_NAME ? \"\" : `[${cmd.name}]` : cmd.name || \"\";\n\tif (optionSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${optionSymbol}`;\n\t}\n\tif (positionalSymbol) {\n\t\tif (commandStr) commandStr += \" \";\n\t\tcommandStr += `${positionalSymbol}`;\n\t}\n\treturn commandStr;\n}\n/**\n* Resolve the entry command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The entry command name\n*/\nasync function resolveEntry(ctx) {\n\treturn ctx.env.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"COMMAND\"));\n}\n/**\n* Resolve the sub command name\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns The sub command name\n*/\nasync function resolveSubCommand(ctx) {\n\tif (ctx.commandPath && ctx.commandPath.length > 0) return ctx.commandPath.join(\" \");\n\treturn ctx.name || await ctx.extensions[pluginId].text(resolveBuiltInKey(\"SUBCOMMAND\"));\n}\n/**\n* Resolve the command description\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command description\n*/\nasync function resolveDescription(ctx) {\n\treturn await ctx.extensions[pluginId].text(resolveKey(\"description\", ctx.name)) || ctx.description || \"\";\n}\n/**\n* Resolve the command examples\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns resolved command examples, if not resolved, return empty string\n*/\nasync function resolveExamples(ctx) {\n\tconst ret = await ctx.extensions[pluginId].text(resolveKey(\"examples\", ctx.name));\n\tif (ret) return ret;\n\tconst command = ctx.env.subCommands?.get(ctx.name || \"\");\n\treturn await resolveExamples$1(ctx, command?.examples);\n}\n/**\n* Check if the command has sub commands\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns True if the command has sub commands\n*/\nasync function hasCommands(ctx) {\n\treturn (await ctx.extensions?.[pluginId].loadCommands() || []).length > 1;\n}\n/**\n* Check if the command has optional arguments\n*\n* @param args - A {@link Args | command optional arguments}\n* @returns True if the command has options\n*/\nfunction hasOptionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type !== \"positional\");\n}\n/**\n* Check if the command has positional arguments\n*\n* @param args - A {@link Args | command positional arguments}\n* @returns True if the command has options\n*/\nfunction hasPositionalArgs(args) {\n\treturn Object.values(args).some((arg) => arg.type === \"positional\");\n}\n/**\n* Check if all options have default values\n*\n* @param args - An {@link Args | command argument}\n* @returns True if all options have default values\n*/\nfunction hasAllDefaultOptions(args) {\n\treturn !!(args && Object.values(args).every((arg) => arg.default));\n}\n/**\n* Generate options symbols for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param args - {@link Args | command arguments}\n* @returns Options symbols for usage\n*/\nasync function generateOptionsSymbols(ctx, args) {\n\treturn hasOptionalArgs(args) ? hasAllDefaultOptions(args) ? `[${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}]` : `<${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"OPTIONS\"))}>` : \"\";\n}\n/**\n* Get optional arguments pairs for usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @returns Options pairs for usage\n*/\nfunction getOptionalArgsPairs(ctx) {\n\treturn Object.entries(ctx.args).reduce((acc, [name, schema]) => {\n\t\tif (schema.type === \"positional\") return acc;\n\t\tlet key = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\tif (schema.type !== \"boolean\") {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tkey = schema.default ? `${key} [${displayName}]` : `${key} <${displayName}>`;\n\t\t}\n\t\tacc[name] = key;\n\t\tif (schema.type === \"boolean\" && schema.negatable && !COMMON_ARGS_KEYS.includes(name)) {\n\t\t\tconst displayName = ctx.toKebab || schema.toKebab ? kebabnize(name) : name;\n\t\t\tacc[`${ARG_NEGATABLE_PREFIX}${name}`] = `--${ARG_NEGATABLE_PREFIX}${displayName}`;\n\t\t}\n\t\treturn acc;\n\t}, Object.create(null));\n}\nconst resolveNegatableKey = (key) => key.split(ARG_NEGATABLE_PREFIX)[1];\nfunction resolveNegatableType(key, ctx) {\n\treturn ctx.args[key.startsWith(ARG_NEGATABLE_PREFIX) ? resolveNegatableKey(key) : key].type;\n}\nasync function generateDefaultDisplayValue(ctx, schema) {\n\treturn `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"DEFAULT\"))}: ${schema.default}`;\n}\nasync function resolveDisplayValue(ctx, key) {\n\tif (COMMON_ARGS_KEYS.includes(key)) return \"\";\n\tconst schema = ctx.args[key];\n\tif ((schema.type === \"boolean\" || schema.type === \"number\" || schema.type === \"string\" || schema.type === \"custom\") && schema.default !== void 0) return `(${await generateDefaultDisplayValue(ctx, schema)})`;\n\tif (schema.type === \"enum\") {\n\t\tconst _default = schema.default === void 0 ? \"\" : await generateDefaultDisplayValue(ctx, schema);\n\t\tconst choices = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"CHOICES\"))}: ${schema.choices.join(\" | \")}`;\n\t\treturn `(${_default ? `${_default}, ${choices}` : choices})`;\n\t}\n\treturn \"\";\n}\n/**\n* Generate optional arguments usage\n*\n* @param ctx - A {@link CommandContext | command context}\n* @param optionsPairs - Options pairs for usage\n* @returns Generated options usage\n*/\nasync function generateOptionalArgsUsage(ctx, optionsPairs) {\n\tconst optionsMaxLength = Math.max(...Object.entries(optionsPairs).map(([_, value]) => value.length));\n\tconst optionSchemaMaxLength = ctx.env.usageOptionType ? Math.max(...Object.entries(optionsPairs).map(([key]) => resolveNegatableType(key, ctx).length)) : 0;\n\treturn (await Promise.all(Object.entries(optionsPairs).map(async ([key, value]) => {\n\t\tlet rawDesc = await ctx.extensions[pluginId].text(resolveArgKey(key, ctx.name));\n\t\tif (!rawDesc && key.startsWith(ARG_NEGATABLE_PREFIX)) {\n\t\t\tconst name = resolveNegatableKey(key);\n\t\t\tconst schema = ctx.args[name];\n\t\t\tconst optionKey = makeShortLongOptionPair(schema, name, ctx.toKebab);\n\t\t\trawDesc = `${await ctx.extensions[pluginId].text(resolveBuiltInKey(\"NEGATABLE\"))} ${optionKey}`;\n\t\t}\n\t\tconst optionsSchema = ctx.env.usageOptionType ? `[${resolveNegatableType(key, ctx)}] ` : \"\";\n\t\tconst valueDesc = key.startsWith(ARG_NEGATABLE_PREFIX) ? \"\" : await resolveDisplayValue(ctx, key);\n\t\tconst desc = `${optionsSchema ? optionsSchema.padEnd(optionSchemaMaxLength + 3) : \"\"}${rawDesc}`;\n\t\tconst descLength = desc.length + valueDesc.length;\n\t\tconst option = `${value.padEnd((descLength > 0 ? optionsMaxLength : 0) + ctx.env.middleMargin)}${desc}${valueDesc ? ` ${valueDesc}` : \"\"}`;\n\t\treturn `${option.padStart(ctx.env.leftMargin + option.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction getPositionalArgs(args) {\n\treturn Object.entries(args).filter(([_, schema]) => schema.type === \"positional\");\n}\nasync function generatePositionalArgsUsage(ctx) {\n\tconst positionals = getPositionalArgs(ctx.args);\n\tconst argsMaxLength = Math.max(...positionals.map(([name]) => name.length));\n\treturn (await Promise.all(positionals.map(async ([name]) => {\n\t\tconst desc = await ctx.extensions[pluginId].text(resolveArgKey(name, ctx.name)) || ctx.args[name].description || \"\";\n\t\tconst arg = `${name.padEnd(argsMaxLength + ctx.env.middleMargin)} ${desc}`;\n\t\treturn `${arg.padStart(ctx.env.leftMargin + arg.length)}`;\n\t}))).join(\"\\n\");\n}\nfunction generatePositionalSymbols(args) {\n\treturn hasPositionalArgs(args) ? getPositionalArgs(args).map(([name, arg]) => {\n\t\tconst elements = [];\n\t\tif (!arg.multiple || arg.required) elements.push(`<${name}>`);\n\t\tif (arg.multiple) elements.push(`[<${name}> ...]`);\n\t\treturn elements.join(\" \");\n\t}).join(\" \") : \"\";\n}\n\n//#endregion\n//#region ../plugin-renderer/src/validation.ts\n/**\n* Render the validation errors.\n*\n* @param _ctx - A {@link CommandContext | command context}\n* @param error - An {@link AggregateError} of option in `args-token` validation\n* @returns A rendered validation error.\n*/\nfunction renderValidationErrors(_ctx, error) {\n\tconst messages = [];\n\tfor (const err of error.errors) messages.push(err.message);\n\treturn Promise.resolve(messages.join(\"\\n\"));\n}\n\n//#endregion\n//#region ../plugin-renderer/src/index.ts\n/**\n* The entry point of usage renderer plugin\n*\n* @example\n* ```js\n* import renderer from '@gunshi/plugin-renderer'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* renderer()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\nconst i18nPluginId = namespacedId(\"i18n\");\nconst dependencies = [{\n\tid: i18nPluginId,\n\toptional: true\n}];\n/**\n* usage renderer plugin\n*\n* @returns A defined plugin as usage renderer\n*/\nfunction renderer() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"usage renderer\",\n\t\tdependencies,\n\t\textension: (ctx, cmd) => {\n\t\t\tconst i18n = ctx.extensions[i18nPluginId];\n\t\t\tlet cachedCommands;\n\t\t\tasync function loadCommands() {\n\t\t\t\tif (cachedCommands) return cachedCommands;\n\t\t\t\tconst subCommands = [...ctx.env.subCommands || []];\n\t\t\t\tcachedCommands = (await Promise.all(subCommands.map(async ([name, cmd]) => await resolveLazyCommand(cmd, name)))).filter((cmd) => !cmd.internal).filter(Boolean);\n\t\t\t\tcachedCommands.sort((a, b) => {\n\t\t\t\t\tif (a.entry && !b.entry) return -1;\n\t\t\t\t\tif (!a.entry && b.entry) return 1;\n\t\t\t\t\tif (a.name && b.name) return a.name.localeCompare(b.name);\n\t\t\t\t\tif (a.name && !b.name) return -1;\n\t\t\t\t\tif (!a.name && b.name) return 1;\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\t\t\t\treturn cachedCommands;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttext: localizable(ctx, cmd, i18n?.translate),\n\t\t\t\tloadCommands\n\t\t\t};\n\t\t},\n\t\tsetup: (ctx) => {\n\t\t\tctx.decorateHeaderRenderer(async (_baseRenderer, cmdCtx) => await renderHeader(cmdCtx));\n\t\t\tctx.decorateUsageRenderer(async (_baseRenderer, cmdCtx) => await renderUsage(cmdCtx));\n\t\t\tctx.decorateValidationErrorsRenderer(async (_baseRenderer, cmdCtx, error) => await renderValidationErrors(cmdCtx, error));\n\t\t}\n\t});\n}\n\n//#endregion\nexport { namespacedId as a, renderHeader as i, renderValidationErrors as n, BUILT_IN_PREFIX as o, renderUsage as r, COMMON_ARGS as s, renderer as t };","import { t as cliCore } from \"./core-C9P_Gd_f.js\";\nimport { t as plugin } from \"./core-eN5xmB3s.js\";\nimport { a as namespacedId, s as COMMON_ARGS, t as renderer } from \"./src-CfO5ab2f.js\";\n\n//#region ../plugin-global/src/types.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* The unique identifier for the global options plugin.\n*/\nconst pluginId = namespacedId(\"global\");\n\n//#endregion\n//#region ../plugin-global/src/decorator.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Decorator function to extend the command with global options.\n*\n* @param baseRunner - The base command runner\n* @returns A command decorator that adds global options handling\n*/\nconst decorator = (baseRunner) => async (ctx) => {\n\tconst { values, validationError, extensions: { [pluginId]: { showVersion, showHeader, showUsage, showValidationErrors } } } = ctx;\n\tif (values.version) return showVersion();\n\tconst buf = [];\n\tconst header = await showHeader();\n\tif (header) buf.push(header);\n\tif (values.help) {\n\t\tconst usage = await showUsage();\n\t\tif (usage) {\n\t\t\tbuf.push(usage);\n\t\t\treturn buf.join(\"\\n\");\n\t\t}\n\t\treturn;\n\t}\n\tif (validationError) return await showValidationErrors(validationError);\n\treturn baseRunner(ctx);\n};\nvar decorator_default = decorator;\n\n//#endregion\n//#region ../plugin-global/src/extension.ts\n/**\n* Extends the command context for global options plugin.\n*\n* @param ctx - The {@linkcode CommandContextCore | command context} core\n* @returns An {@linkcode GlobalExtension} of global options plugin\n*/\nfunction extension(ctx) {\n\treturn {\n\t\tshowVersion: () => {\n\t\t\tconst version = ctx.env.version || \"unknown\";\n\t\t\tif (!ctx.env.usageSilent) ctx.log(version);\n\t\t\treturn version;\n\t\t},\n\t\tshowHeader: async () => {\n\t\t\tlet header;\n\t\t\tif (ctx.env.renderHeader != null) {\n\t\t\t\theader = await ctx.env.renderHeader(ctx);\n\t\t\t\tif (header) {\n\t\t\t\t\tctx.log(header);\n\t\t\t\t\tctx.log();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn header;\n\t\t},\n\t\tshowUsage: async () => {\n\t\t\tif (ctx.env.renderUsage != null) {\n\t\t\t\tconst usage = await ctx.env.renderUsage(ctx);\n\t\t\t\tif (usage) {\n\t\t\t\t\tctx.log(usage);\n\t\t\t\t\treturn usage;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tshowValidationErrors: async (error) => {\n\t\t\tif (ctx.env.renderValidationErrors === null) return;\n\t\t\tif (ctx.env.renderValidationErrors !== void 0) {\n\t\t\t\tconst message = await ctx.env.renderValidationErrors(ctx, error);\n\t\t\t\tctx.log(message);\n\t\t\t\treturn message;\n\t\t\t}\n\t\t}\n\t};\n}\n\n//#endregion\n//#region ../plugin-global/src/index.ts\n/**\n* The entry point of global options plugin\n*\n* @example\n* ```js\n* import global from '@gunshi/plugin-global'\n* import { cli } from 'gunshi'\n*\n* const entry = (ctx) => {\n* // ...\n* }\n*\n* await cli(process.argv.slice(2), entry, {\n* // ...\n*\n* plugins: [\n* global()\n* ],\n*\n* // ...\n* })\n* ```\n*\n* @module\n*/\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* global options plugin\n*\n* @returns A defined plugin as global options\n*/\nfunction global() {\n\treturn plugin({\n\t\tid: pluginId,\n\t\tname: \"global options\",\n\t\textension,\n\t\tsetup(ctx) {\n\t\t\tfor (const [name, schema] of Object.entries(COMMON_ARGS)) ctx.addGlobalOption(name, schema);\n\t\t\tctx.decorateCommand(decorator_default);\n\t\t}\n\t});\n}\n\n//#endregion\n//#region src/cli/builtin.ts\n/**\n* @author kazuya kawaguchi (a.k.a. kazupon)\n* @license MIT\n*/\n/**\n* Run the command.\n*\n* @typeParam G - A type extending {@linkcode GunshiParams} to specify the shape of command and cli options.\n*\n* @param args - Command line arguments\n* @param entry - A {@link Command | entry command}, an {@link CommandRunner | inline command runner}, or a {@link LazyCommand | lazily-loaded command}\n* @param options - A {@link CliOptions | CLI options}\n* @returns A rendered usage or undefined. if you will use {@linkcode CliOptions.usageSilent} option, it will return rendered usage string.\n*/\nasync function cli(args, entry, options = {}) {\n\treturn cliCore(args, entry, options, [global(), renderer()]);\n}\n\n//#endregion\nexport { cli as t };"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.bun/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/utilities.js","../../../node_modules/.bun/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/index.js","../../utils/src/my-dash.ts","../src/env-graph/lib/errors.ts","../src/lib/debug.ts","../src/plugin-context.ts"],"names":["_"],"mappings":"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","file":"chunk-6CCHLM3U.js","sourcesContent":["export function keysOf(value) {\n return Object.keys(value);\n}\n","import { keysOf } from './utilities.js';\nconst typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array',\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Blob',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'WeakRef',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n 'NaN',\n ...typedArrayTypeNames,\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol',\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\nconst assertionTypeDescriptions = [\n 'positive number',\n 'negative number',\n 'Class',\n 'string with a number',\n 'null or undefined',\n 'Iterable',\n 'AsyncIterable',\n 'native Promise',\n 'EnumCase',\n 'string with a URL',\n 'truthy',\n 'falsy',\n 'primitive',\n 'integer',\n 'plain object',\n 'TypedArray',\n 'array-like',\n 'tuple-like',\n 'Node.js Stream',\n 'infinite number',\n 'empty array',\n 'non-empty array',\n 'empty string',\n 'empty string or whitespace',\n 'non-empty string',\n 'non-empty string and not whitespace',\n 'empty object',\n 'non-empty object',\n 'empty set',\n 'non-empty set',\n 'empty map',\n 'non-empty map',\n 'PropertyKey',\n 'even integer',\n 'odd integer',\n 'T',\n 'in range',\n 'predicate returns truthy for any value',\n 'predicate returns truthy for all values',\n 'valid Date',\n 'valid length',\n 'whitespace string',\n ...objectTypeNames,\n ...primitiveTypeNames,\n];\nconst getObjectType = (value) => {\n const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && isHtmlElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nfunction detect(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined': {\n return 'undefined';\n }\n case 'string': {\n return 'string';\n }\n case 'number': {\n return Number.isNaN(value) ? 'NaN' : 'number';\n }\n case 'boolean': {\n return 'boolean';\n }\n case 'function': {\n return 'Function';\n }\n case 'bigint': {\n return 'bigint';\n }\n case 'symbol': {\n return 'symbol';\n }\n default:\n }\n if (isObservable(value)) {\n return 'Observable';\n }\n if (isArray(value)) {\n return 'Array';\n }\n if (isBuffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType && tagType !== 'Object') {\n return tagType;\n }\n if (hasPromiseApi(value)) {\n return 'Promise';\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nfunction hasPromiseApi(value) {\n return isFunction(value?.then) && isFunction(value?.catch);\n}\nconst is = Object.assign(detect, {\n all: isAll,\n any: isAny,\n array: isArray,\n arrayBuffer: isArrayBuffer,\n arrayLike: isArrayLike,\n asyncFunction: isAsyncFunction,\n asyncGenerator: isAsyncGenerator,\n asyncGeneratorFunction: isAsyncGeneratorFunction,\n asyncIterable: isAsyncIterable,\n bigint: isBigint,\n bigInt64Array: isBigInt64Array,\n bigUint64Array: isBigUint64Array,\n blob: isBlob,\n boolean: isBoolean,\n boundFunction: isBoundFunction,\n buffer: isBuffer,\n class: isClass,\n dataView: isDataView,\n date: isDate,\n detect,\n directInstanceOf: isDirectInstanceOf,\n emptyArray: isEmptyArray,\n emptyMap: isEmptyMap,\n emptyObject: isEmptyObject,\n emptySet: isEmptySet,\n emptyString: isEmptyString,\n emptyStringOrWhitespace: isEmptyStringOrWhitespace,\n enumCase: isEnumCase,\n error: isError,\n evenInteger: isEvenInteger,\n falsy: isFalsy,\n float32Array: isFloat32Array,\n float64Array: isFloat64Array,\n formData: isFormData,\n function: isFunction,\n generator: isGenerator,\n generatorFunction: isGeneratorFunction,\n htmlElement: isHtmlElement,\n infinite: isInfinite,\n inRange: isInRange,\n int16Array: isInt16Array,\n int32Array: isInt32Array,\n int8Array: isInt8Array,\n integer: isInteger,\n iterable: isIterable,\n map: isMap,\n nan: isNan,\n nativePromise: isNativePromise,\n negativeNumber: isNegativeNumber,\n nodeStream: isNodeStream,\n nonEmptyArray: isNonEmptyArray,\n nonEmptyMap: isNonEmptyMap,\n nonEmptyObject: isNonEmptyObject,\n nonEmptySet: isNonEmptySet,\n nonEmptyString: isNonEmptyString,\n nonEmptyStringAndNotWhitespace: isNonEmptyStringAndNotWhitespace,\n null: isNull,\n nullOrUndefined: isNullOrUndefined,\n number: isNumber,\n numericString: isNumericString,\n object: isObject,\n observable: isObservable,\n oddInteger: isOddInteger,\n plainObject: isPlainObject,\n positiveNumber: isPositiveNumber,\n primitive: isPrimitive,\n promise: isPromise,\n propertyKey: isPropertyKey,\n regExp: isRegExp,\n safeInteger: isSafeInteger,\n set: isSet,\n sharedArrayBuffer: isSharedArrayBuffer,\n string: isString,\n symbol: isSymbol,\n truthy: isTruthy,\n tupleLike: isTupleLike,\n typedArray: isTypedArray,\n uint16Array: isUint16Array,\n uint32Array: isUint32Array,\n uint8Array: isUint8Array,\n uint8ClampedArray: isUint8ClampedArray,\n undefined: isUndefined,\n urlInstance: isUrlInstance,\n urlSearchParams: isUrlSearchParams,\n urlString: isUrlString,\n optional: isOptional,\n validDate: isValidDate,\n validLength: isValidLength,\n weakMap: isWeakMap,\n weakRef: isWeakRef,\n weakSet: isWeakSet,\n whitespaceString: isWhitespaceString,\n});\nfunction isAbsoluteModule2(remainder) {\n return (value) => isInteger(value) && Math.abs(value % 2) === remainder;\n}\nfunction validatePredicateArray(predicateArray, allowEmpty) {\n if (predicateArray.length === 0) {\n if (allowEmpty) {\n // Next major release: throw for empty predicate arrays to avoid vacuous results.\n // throw new TypeError('Invalid predicate array');\n }\n else {\n throw new TypeError('Invalid predicate array');\n }\n return;\n }\n for (const predicate of predicateArray) {\n if (!isFunction(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n }\n}\nexport function isAll(predicate, ...values) {\n if (Array.isArray(predicate)) {\n const predicateArray = predicate;\n validatePredicateArray(predicateArray, values.length === 0);\n const combinedPredicate = (value) => predicateArray.every(singlePredicate => singlePredicate(value));\n if (values.length === 0) {\n return combinedPredicate;\n }\n return predicateOnArray(Array.prototype.every, combinedPredicate, values);\n }\n return predicateOnArray(Array.prototype.every, predicate, values);\n}\nexport function isAny(predicate, ...values) {\n if (Array.isArray(predicate)) {\n const predicateArray = predicate;\n validatePredicateArray(predicateArray, values.length === 0);\n const combinedPredicate = (value) => predicateArray.some(singlePredicate => singlePredicate(value));\n if (values.length === 0) {\n return combinedPredicate;\n }\n return predicateOnArray(Array.prototype.some, combinedPredicate, values);\n }\n return predicateOnArray(Array.prototype.some, predicate, values);\n}\nexport function isOptional(value, predicate) {\n return isUndefined(value) || predicate(value);\n}\nexport function isArray(value, assertion) {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!isFunction(assertion)) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return value.every(element => assertion(element));\n}\nexport function isArrayBuffer(value) {\n return getObjectType(value) === 'ArrayBuffer';\n}\nexport function isArrayLike(value) {\n return !isNullOrUndefined(value) && !isFunction(value) && isValidLength(value.length);\n}\nexport function isAsyncFunction(value) {\n return getObjectType(value) === 'AsyncFunction';\n}\nexport function isAsyncGenerator(value) {\n return isAsyncIterable(value) && isFunction(value.next) && isFunction(value.throw);\n}\nexport function isAsyncGeneratorFunction(value) {\n return getObjectType(value) === 'AsyncGeneratorFunction';\n}\nexport function isAsyncIterable(value) {\n return isFunction(value?.[Symbol.asyncIterator]);\n}\nexport function isBigint(value) {\n return typeof value === 'bigint';\n}\nexport function isBigInt64Array(value) {\n return getObjectType(value) === 'BigInt64Array';\n}\nexport function isBigUint64Array(value) {\n return getObjectType(value) === 'BigUint64Array';\n}\nexport function isBlob(value) {\n return getObjectType(value) === 'Blob';\n}\nexport function isBoolean(value) {\n return value === true || value === false;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isBoundFunction(value) {\n return isFunction(value) && !Object.hasOwn(value, 'prototype');\n}\n/**\nNote: [Prefer using `Uint8Array` instead of `Buffer`.](https://sindresorhus.com/blog/goodbye-nodejs-buffer)\n*/\nexport function isBuffer(value) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return value?.constructor?.isBuffer?.(value) ?? false;\n}\nexport function isClass(value) {\n return isFunction(value) && /^class(\\s+|{)/.test(value.toString());\n}\nexport function isDataView(value) {\n return getObjectType(value) === 'DataView';\n}\nexport function isDate(value) {\n return getObjectType(value) === 'Date';\n}\nexport function isDirectInstanceOf(instance, class_) {\n if (instance === undefined || instance === null) {\n return false;\n }\n return Object.getPrototypeOf(instance) === class_.prototype;\n}\nexport function isEmptyArray(value) {\n return isArray(value) && value.length === 0;\n}\nexport function isEmptyMap(value) {\n return isMap(value) && value.size === 0;\n}\nexport function isEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0;\n}\nexport function isEmptySet(value) {\n return isSet(value) && value.size === 0;\n}\nexport function isEmptyString(value) {\n return isString(value) && value.length === 0;\n}\nexport function isEmptyStringOrWhitespace(value) {\n return isEmptyString(value) || isWhitespaceString(value);\n}\nexport function isEnumCase(value, targetEnum) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return Object.values(targetEnum).includes(value);\n}\nexport function isError(value) {\n // TODO: Use `Error.isError` when targeting Node.js 24.`\n return getObjectType(value) === 'Error';\n}\nexport function isEvenInteger(value) {\n return isAbsoluteModule2(0)(value);\n}\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nexport function isFalsy(value) {\n return !value;\n}\n// TODO: Support detecting Float16Array when targeting Node.js 24.\nexport function isFloat32Array(value) {\n return getObjectType(value) === 'Float32Array';\n}\nexport function isFloat64Array(value) {\n return getObjectType(value) === 'Float64Array';\n}\nexport function isFormData(value) {\n return getObjectType(value) === 'FormData';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isGenerator(value) {\n return isIterable(value) && isFunction(value?.next) && isFunction(value?.throw);\n}\nexport function isGeneratorFunction(value) {\n return getObjectType(value) === 'GeneratorFunction';\n}\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst NODE_TYPE_ELEMENT = 1;\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue',\n];\nexport function isHtmlElement(value) {\n return isObject(value)\n && value.nodeType === NODE_TYPE_ELEMENT\n && isString(value.nodeName)\n && !isPlainObject(value)\n && DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n}\nexport function isInfinite(value) {\n return value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY;\n}\nexport function isInRange(value, range) {\n if (isNumber(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (isArray(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n}\nexport function isInt16Array(value) {\n return getObjectType(value) === 'Int16Array';\n}\nexport function isInt32Array(value) {\n return getObjectType(value) === 'Int32Array';\n}\nexport function isInt8Array(value) {\n return getObjectType(value) === 'Int8Array';\n}\nexport function isInteger(value) {\n return Number.isInteger(value);\n}\nexport function isIterable(value) {\n return isFunction(value?.[Symbol.iterator]);\n}\nexport function isMap(value) {\n return getObjectType(value) === 'Map';\n}\nexport function isNan(value) {\n return Number.isNaN(value);\n}\nexport function isNativePromise(value) {\n return getObjectType(value) === 'Promise';\n}\nexport function isNegativeNumber(value) {\n return isNumber(value) && value < 0;\n}\nexport function isNodeStream(value) {\n return isObject(value) && isFunction(value.pipe) && !isObservable(value);\n}\nexport function isNonEmptyArray(value) {\n return isArray(value) && value.length > 0;\n}\nexport function isNonEmptyMap(value) {\n return isMap(value) && value.size > 0;\n}\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nexport function isNonEmptyObject(value) {\n return isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length > 0;\n}\nexport function isNonEmptySet(value) {\n return isSet(value) && value.size > 0;\n}\n// TODO: Use `not ''` when the `not` operator is available.\nexport function isNonEmptyString(value) {\n return isString(value) && value.length > 0;\n}\n// TODO: Use `not ''` when the `not` operator is available.\nexport function isNonEmptyStringAndNotWhitespace(value) {\n return isString(value) && !isEmptyStringOrWhitespace(value);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNull(value) {\n return value === null;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNullOrUndefined(value) {\n return isNull(value) || isUndefined(value);\n}\nexport function isNumber(value) {\n return typeof value === 'number' && !Number.isNaN(value);\n}\nexport function isNumericString(value) {\n return isString(value) && !isEmptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isObject(value) {\n return !isNull(value) && (typeof value === 'object' || isFunction(value));\n}\nexport function isObservable(value) {\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native, @typescript-eslint/no-unsafe-call\n if (Symbol.observable !== undefined && value === value[Symbol.observable]?.()) {\n return true;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n if (value === value['@@observable']?.()) {\n return true;\n }\n return false;\n}\nexport function isOddInteger(value) {\n return isAbsoluteModule2(1)(value);\n}\nexport function isPlainObject(value) {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\nexport function isPositiveNumber(value) {\n return isNumber(value) && value > 0;\n}\nexport function isPrimitive(value) {\n return isNull(value) || isPrimitiveTypeName(typeof value);\n}\nexport function isPromise(value) {\n return isNativePromise(value) || hasPromiseApi(value);\n}\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nexport function isPropertyKey(value) {\n return isAny([isString, isNumber, isSymbol], value);\n}\nexport function isRegExp(value) {\n return getObjectType(value) === 'RegExp';\n}\nexport function isSafeInteger(value) {\n return Number.isSafeInteger(value);\n}\nexport function isSet(value) {\n return getObjectType(value) === 'Set';\n}\nexport function isSharedArrayBuffer(value) {\n return getObjectType(value) === 'SharedArrayBuffer';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isSymbol(value) {\n return typeof value === 'symbol';\n}\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\n// eslint-disable-next-line unicorn/prefer-native-coercion-functions\nexport function isTruthy(value) {\n return Boolean(value);\n}\nexport function isTupleLike(value, guards) {\n if (isArray(guards) && isArray(value) && guards.length === value.length) {\n return guards.every((guard, index) => guard(value[index]));\n }\n return false;\n}\nexport function isTypedArray(value) {\n return isTypedArrayName(getObjectType(value));\n}\nexport function isUint16Array(value) {\n return getObjectType(value) === 'Uint16Array';\n}\nexport function isUint32Array(value) {\n return getObjectType(value) === 'Uint32Array';\n}\nexport function isUint8Array(value) {\n return getObjectType(value) === 'Uint8Array';\n}\nexport function isUint8ClampedArray(value) {\n return getObjectType(value) === 'Uint8ClampedArray';\n}\nexport function isUndefined(value) {\n return value === undefined;\n}\nexport function isUrlInstance(value) {\n return getObjectType(value) === 'URL';\n}\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport function isUrlSearchParams(value) {\n return getObjectType(value) === 'URLSearchParams';\n}\nexport function isUrlString(value) {\n if (!isString(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch {\n return false;\n }\n}\nexport function isValidDate(value) {\n return isDate(value) && !isNan(Number(value));\n}\nexport function isValidLength(value) {\n return isSafeInteger(value) && value >= 0;\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isWeakMap(value) {\n return getObjectType(value) === 'WeakMap';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types, unicorn/prevent-abbreviations\nexport function isWeakRef(value) {\n return getObjectType(value) === 'WeakRef';\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isWeakSet(value) {\n return getObjectType(value) === 'WeakSet';\n}\nexport function isWhitespaceString(value) {\n return isString(value) && /^\\s+$/.test(value);\n}\nfunction predicateOnArray(method, predicate, values) {\n if (!isFunction(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n}\nfunction typeErrorMessage(description, value) {\n return `Expected value which is \\`${description}\\`, received value of type \\`${is(value)}\\`.`;\n}\nfunction unique(values) {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(new Set(values));\n}\nconst andFormatter = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' });\nconst orFormatter = new Intl.ListFormat('en', { style: 'long', type: 'disjunction' });\nfunction typeErrorMessageMultipleValues(expectedType, values) {\n const uniqueExpectedTypes = unique((isArray(expectedType) ? expectedType : [expectedType]).map(value => `\\`${value}\\``));\n const uniqueValueTypes = unique(values.map(value => `\\`${is(value)}\\``));\n return `Expected values which are ${orFormatter.format(uniqueExpectedTypes)}. Received values of type${uniqueValueTypes.length > 1 ? 's' : ''} ${andFormatter.format(uniqueValueTypes)}.`;\n}\nexport const assert = {\n all: assertAll,\n any: assertAny,\n optional: assertOptional,\n array: assertArray,\n arrayBuffer: assertArrayBuffer,\n arrayLike: assertArrayLike,\n asyncFunction: assertAsyncFunction,\n asyncGenerator: assertAsyncGenerator,\n asyncGeneratorFunction: assertAsyncGeneratorFunction,\n asyncIterable: assertAsyncIterable,\n bigint: assertBigint,\n bigInt64Array: assertBigInt64Array,\n bigUint64Array: assertBigUint64Array,\n blob: assertBlob,\n boolean: assertBoolean,\n boundFunction: assertBoundFunction,\n buffer: assertBuffer,\n class: assertClass,\n dataView: assertDataView,\n date: assertDate,\n directInstanceOf: assertDirectInstanceOf,\n emptyArray: assertEmptyArray,\n emptyMap: assertEmptyMap,\n emptyObject: assertEmptyObject,\n emptySet: assertEmptySet,\n emptyString: assertEmptyString,\n emptyStringOrWhitespace: assertEmptyStringOrWhitespace,\n enumCase: assertEnumCase,\n error: assertError,\n evenInteger: assertEvenInteger,\n falsy: assertFalsy,\n float32Array: assertFloat32Array,\n float64Array: assertFloat64Array,\n formData: assertFormData,\n function: assertFunction,\n generator: assertGenerator,\n generatorFunction: assertGeneratorFunction,\n htmlElement: assertHtmlElement,\n infinite: assertInfinite,\n inRange: assertInRange,\n int16Array: assertInt16Array,\n int32Array: assertInt32Array,\n int8Array: assertInt8Array,\n integer: assertInteger,\n iterable: assertIterable,\n map: assertMap,\n nan: assertNan,\n nativePromise: assertNativePromise,\n negativeNumber: assertNegativeNumber,\n nodeStream: assertNodeStream,\n nonEmptyArray: assertNonEmptyArray,\n nonEmptyMap: assertNonEmptyMap,\n nonEmptyObject: assertNonEmptyObject,\n nonEmptySet: assertNonEmptySet,\n nonEmptyString: assertNonEmptyString,\n nonEmptyStringAndNotWhitespace: assertNonEmptyStringAndNotWhitespace,\n null: assertNull,\n nullOrUndefined: assertNullOrUndefined,\n number: assertNumber,\n numericString: assertNumericString,\n object: assertObject,\n observable: assertObservable,\n oddInteger: assertOddInteger,\n plainObject: assertPlainObject,\n positiveNumber: assertPositiveNumber,\n primitive: assertPrimitive,\n promise: assertPromise,\n propertyKey: assertPropertyKey,\n regExp: assertRegExp,\n safeInteger: assertSafeInteger,\n set: assertSet,\n sharedArrayBuffer: assertSharedArrayBuffer,\n string: assertString,\n symbol: assertSymbol,\n truthy: assertTruthy,\n tupleLike: assertTupleLike,\n typedArray: assertTypedArray,\n uint16Array: assertUint16Array,\n uint32Array: assertUint32Array,\n uint8Array: assertUint8Array,\n uint8ClampedArray: assertUint8ClampedArray,\n undefined: assertUndefined,\n urlInstance: assertUrlInstance,\n urlSearchParams: assertUrlSearchParams,\n urlString: assertUrlString,\n validDate: assertValidDate,\n validLength: assertValidLength,\n weakMap: assertWeakMap,\n weakRef: assertWeakRef,\n weakSet: assertWeakSet,\n whitespaceString: assertWhitespaceString,\n};\nconst methodTypeMap = {\n isArray: 'Array',\n isArrayBuffer: 'ArrayBuffer',\n isArrayLike: 'array-like',\n isAsyncFunction: 'AsyncFunction',\n isAsyncGenerator: 'AsyncGenerator',\n isAsyncGeneratorFunction: 'AsyncGeneratorFunction',\n isAsyncIterable: 'AsyncIterable',\n isBigint: 'bigint',\n isBigInt64Array: 'BigInt64Array',\n isBigUint64Array: 'BigUint64Array',\n isBlob: 'Blob',\n isBoolean: 'boolean',\n isBoundFunction: 'Function',\n isBuffer: 'Buffer',\n isClass: 'Class',\n isDataView: 'DataView',\n isDate: 'Date',\n isDirectInstanceOf: 'T',\n isEmptyArray: 'empty array',\n isEmptyMap: 'empty map',\n isEmptyObject: 'empty object',\n isEmptySet: 'empty set',\n isEmptyString: 'empty string',\n isEmptyStringOrWhitespace: 'empty string or whitespace',\n isEnumCase: 'EnumCase',\n isError: 'Error',\n isEvenInteger: 'even integer',\n isFalsy: 'falsy',\n isFloat32Array: 'Float32Array',\n isFloat64Array: 'Float64Array',\n isFormData: 'FormData',\n isFunction: 'Function',\n isGenerator: 'Generator',\n isGeneratorFunction: 'GeneratorFunction',\n isHtmlElement: 'HTMLElement',\n isInfinite: 'infinite number',\n isInRange: 'in range',\n isInt16Array: 'Int16Array',\n isInt32Array: 'Int32Array',\n isInt8Array: 'Int8Array',\n isInteger: 'integer',\n isIterable: 'Iterable',\n isMap: 'Map',\n isNan: 'NaN',\n isNativePromise: 'native Promise',\n isNegativeNumber: 'negative number',\n isNodeStream: 'Node.js Stream',\n isNonEmptyArray: 'non-empty array',\n isNonEmptyMap: 'non-empty map',\n isNonEmptyObject: 'non-empty object',\n isNonEmptySet: 'non-empty set',\n isNonEmptyString: 'non-empty string',\n isNonEmptyStringAndNotWhitespace: 'non-empty string and not whitespace',\n isNull: 'null',\n isNullOrUndefined: 'null or undefined',\n isNumber: 'number',\n isNumericString: 'string with a number',\n isObject: 'Object',\n isObservable: 'Observable',\n isOddInteger: 'odd integer',\n isPlainObject: 'plain object',\n isPositiveNumber: 'positive number',\n isPrimitive: 'primitive',\n isPromise: 'Promise',\n isPropertyKey: 'PropertyKey',\n isRegExp: 'RegExp',\n isSafeInteger: 'integer',\n isSet: 'Set',\n isSharedArrayBuffer: 'SharedArrayBuffer',\n isString: 'string',\n isSymbol: 'symbol',\n isTruthy: 'truthy',\n isTupleLike: 'tuple-like',\n isTypedArray: 'TypedArray',\n isUint16Array: 'Uint16Array',\n isUint32Array: 'Uint32Array',\n isUint8Array: 'Uint8Array',\n isUint8ClampedArray: 'Uint8ClampedArray',\n isUndefined: 'undefined',\n isUrlInstance: 'URL',\n isUrlSearchParams: 'URLSearchParams',\n isUrlString: 'string with a URL',\n isValidDate: 'valid Date',\n isValidLength: 'valid length',\n isWeakMap: 'WeakMap',\n isWeakRef: 'WeakRef',\n isWeakSet: 'WeakSet',\n isWhitespaceString: 'whitespace string',\n};\nconst isMethodNames = keysOf(methodTypeMap);\nfunction isIsMethodName(value) {\n return isMethodNames.includes(value);\n}\nexport function assertAll(predicate, ...values) {\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n if (!isAll(predicate, ...values)) {\n const predicateFunction = predicate;\n const expectedType = !Array.isArray(predicate) && isIsMethodName(predicateFunction.name) ? methodTypeMap[predicateFunction.name] : 'predicate returns truthy for all values';\n throw new TypeError(typeErrorMessageMultipleValues(expectedType, values));\n }\n}\nexport function assertAny(predicate, ...values) {\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n if (!isAny(predicate, ...values)) {\n const predicates = Array.isArray(predicate) ? predicate : [predicate];\n const expectedTypes = predicates.map(singlePredicate => isIsMethodName(singlePredicate.name) ? methodTypeMap[singlePredicate.name] : 'predicate returns truthy for any value');\n throw new TypeError(typeErrorMessageMultipleValues(expectedTypes, values));\n }\n}\nexport function assertOptional(value, assertion, message) {\n if (!isUndefined(value)) {\n assertion(value, message);\n }\n}\nexport function assertArray(value, assertion, message) {\n if (!isArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('Array', value));\n }\n if (assertion) {\n for (const element of value) {\n // @ts-expect-error: \"Assertions require every name in the call target to be declared with an explicit type annotation.\"\n assertion(element, message);\n }\n }\n}\nexport function assertArrayBuffer(value, message) {\n if (!isArrayBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('ArrayBuffer', value));\n }\n}\nexport function assertArrayLike(value, message) {\n if (!isArrayLike(value)) {\n throw new TypeError(message ?? typeErrorMessage('array-like', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertAsyncFunction(value, message) {\n if (!isAsyncFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncFunction', value));\n }\n}\nexport function assertAsyncGenerator(value, message) {\n if (!isAsyncGenerator(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncGenerator', value));\n }\n}\nexport function assertAsyncGeneratorFunction(value, message) {\n if (!isAsyncGeneratorFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncGeneratorFunction', value));\n }\n}\nexport function assertAsyncIterable(value, message) {\n if (!isAsyncIterable(value)) {\n throw new TypeError(message ?? typeErrorMessage('AsyncIterable', value));\n }\n}\nexport function assertBigint(value, message) {\n if (!isBigint(value)) {\n throw new TypeError(message ?? typeErrorMessage('bigint', value));\n }\n}\nexport function assertBigInt64Array(value, message) {\n if (!isBigInt64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('BigInt64Array', value));\n }\n}\nexport function assertBigUint64Array(value, message) {\n if (!isBigUint64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('BigUint64Array', value));\n }\n}\nexport function assertBlob(value, message) {\n if (!isBlob(value)) {\n throw new TypeError(message ?? typeErrorMessage('Blob', value));\n }\n}\nexport function assertBoolean(value, message) {\n if (!isBoolean(value)) {\n throw new TypeError(message ?? typeErrorMessage('boolean', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertBoundFunction(value, message) {\n if (!isBoundFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('Function', value));\n }\n}\n/**\nNote: [Prefer using `Uint8Array` instead of `Buffer`.](https://sindresorhus.com/blog/goodbye-nodejs-buffer)\n*/\nexport function assertBuffer(value, message) {\n if (!isBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('Buffer', value));\n }\n}\nexport function assertClass(value, message) {\n if (!isClass(value)) {\n throw new TypeError(message ?? typeErrorMessage('Class', value));\n }\n}\nexport function assertDataView(value, message) {\n if (!isDataView(value)) {\n throw new TypeError(message ?? typeErrorMessage('DataView', value));\n }\n}\nexport function assertDate(value, message) {\n if (!isDate(value)) {\n throw new TypeError(message ?? typeErrorMessage('Date', value));\n }\n}\nexport function assertDirectInstanceOf(instance, class_, message) {\n if (!isDirectInstanceOf(instance, class_)) {\n throw new TypeError(message ?? typeErrorMessage('T', instance));\n }\n}\nexport function assertEmptyArray(value, message) {\n if (!isEmptyArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty array', value));\n }\n}\nexport function assertEmptyMap(value, message) {\n if (!isEmptyMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty map', value));\n }\n}\nexport function assertEmptyObject(value, message) {\n if (!isEmptyObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty object', value));\n }\n}\nexport function assertEmptySet(value, message) {\n if (!isEmptySet(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty set', value));\n }\n}\nexport function assertEmptyString(value, message) {\n if (!isEmptyString(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty string', value));\n }\n}\nexport function assertEmptyStringOrWhitespace(value, message) {\n if (!isEmptyStringOrWhitespace(value)) {\n throw new TypeError(message ?? typeErrorMessage('empty string or whitespace', value));\n }\n}\nexport function assertEnumCase(value, targetEnum, message) {\n if (!isEnumCase(value, targetEnum)) {\n throw new TypeError(message ?? typeErrorMessage('EnumCase', value));\n }\n}\nexport function assertError(value, message) {\n if (!isError(value)) {\n throw new TypeError(message ?? typeErrorMessage('Error', value));\n }\n}\nexport function assertEvenInteger(value, message) {\n if (!isEvenInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('even integer', value));\n }\n}\nexport function assertFalsy(value, message) {\n if (!isFalsy(value)) {\n throw new TypeError(message ?? typeErrorMessage('falsy', value));\n }\n}\nexport function assertFloat32Array(value, message) {\n if (!isFloat32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Float32Array', value));\n }\n}\nexport function assertFloat64Array(value, message) {\n if (!isFloat64Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Float64Array', value));\n }\n}\nexport function assertFormData(value, message) {\n if (!isFormData(value)) {\n throw new TypeError(message ?? typeErrorMessage('FormData', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertFunction(value, message) {\n if (!isFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('Function', value));\n }\n}\nexport function assertGenerator(value, message) {\n if (!isGenerator(value)) {\n throw new TypeError(message ?? typeErrorMessage('Generator', value));\n }\n}\nexport function assertGeneratorFunction(value, message) {\n if (!isGeneratorFunction(value)) {\n throw new TypeError(message ?? typeErrorMessage('GeneratorFunction', value));\n }\n}\nexport function assertHtmlElement(value, message) {\n if (!isHtmlElement(value)) {\n throw new TypeError(message ?? typeErrorMessage('HTMLElement', value));\n }\n}\nexport function assertInfinite(value, message) {\n if (!isInfinite(value)) {\n throw new TypeError(message ?? typeErrorMessage('infinite number', value));\n }\n}\nexport function assertInRange(value, range, message) {\n if (!isInRange(value, range)) {\n throw new TypeError(message ?? typeErrorMessage('in range', value));\n }\n}\nexport function assertInt16Array(value, message) {\n if (!isInt16Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int16Array', value));\n }\n}\nexport function assertInt32Array(value, message) {\n if (!isInt32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int32Array', value));\n }\n}\nexport function assertInt8Array(value, message) {\n if (!isInt8Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Int8Array', value));\n }\n}\nexport function assertInteger(value, message) {\n if (!isInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('integer', value));\n }\n}\nexport function assertIterable(value, message) {\n if (!isIterable(value)) {\n throw new TypeError(message ?? typeErrorMessage('Iterable', value));\n }\n}\nexport function assertMap(value, message) {\n if (!isMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('Map', value));\n }\n}\nexport function assertNan(value, message) {\n if (!isNan(value)) {\n throw new TypeError(message ?? typeErrorMessage('NaN', value));\n }\n}\nexport function assertNativePromise(value, message) {\n if (!isNativePromise(value)) {\n throw new TypeError(message ?? typeErrorMessage('native Promise', value));\n }\n}\nexport function assertNegativeNumber(value, message) {\n if (!isNegativeNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('negative number', value));\n }\n}\nexport function assertNodeStream(value, message) {\n if (!isNodeStream(value)) {\n throw new TypeError(message ?? typeErrorMessage('Node.js Stream', value));\n }\n}\nexport function assertNonEmptyArray(value, message) {\n if (!isNonEmptyArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty array', value));\n }\n}\nexport function assertNonEmptyMap(value, message) {\n if (!isNonEmptyMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty map', value));\n }\n}\nexport function assertNonEmptyObject(value, message) {\n if (!isNonEmptyObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty object', value));\n }\n}\nexport function assertNonEmptySet(value, message) {\n if (!isNonEmptySet(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty set', value));\n }\n}\nexport function assertNonEmptyString(value, message) {\n if (!isNonEmptyString(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty string', value));\n }\n}\nexport function assertNonEmptyStringAndNotWhitespace(value, message) {\n if (!isNonEmptyStringAndNotWhitespace(value)) {\n throw new TypeError(message ?? typeErrorMessage('non-empty string and not whitespace', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertNull(value, message) {\n if (!isNull(value)) {\n throw new TypeError(message ?? typeErrorMessage('null', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertNullOrUndefined(value, message) {\n if (!isNullOrUndefined(value)) {\n throw new TypeError(message ?? typeErrorMessage('null or undefined', value));\n }\n}\nexport function assertNumber(value, message) {\n if (!isNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('number', value));\n }\n}\nexport function assertNumericString(value, message) {\n if (!isNumericString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string with a number', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertObject(value, message) {\n if (!isObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('Object', value));\n }\n}\nexport function assertObservable(value, message) {\n if (!isObservable(value)) {\n throw new TypeError(message ?? typeErrorMessage('Observable', value));\n }\n}\nexport function assertOddInteger(value, message) {\n if (!isOddInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('odd integer', value));\n }\n}\nexport function assertPlainObject(value, message) {\n if (!isPlainObject(value)) {\n throw new TypeError(message ?? typeErrorMessage('plain object', value));\n }\n}\nexport function assertPositiveNumber(value, message) {\n if (!isPositiveNumber(value)) {\n throw new TypeError(message ?? typeErrorMessage('positive number', value));\n }\n}\nexport function assertPrimitive(value, message) {\n if (!isPrimitive(value)) {\n throw new TypeError(message ?? typeErrorMessage('primitive', value));\n }\n}\nexport function assertPromise(value, message) {\n if (!isPromise(value)) {\n throw new TypeError(message ?? typeErrorMessage('Promise', value));\n }\n}\nexport function assertPropertyKey(value, message) {\n if (!isPropertyKey(value)) {\n throw new TypeError(message ?? typeErrorMessage('PropertyKey', value));\n }\n}\nexport function assertRegExp(value, message) {\n if (!isRegExp(value)) {\n throw new TypeError(message ?? typeErrorMessage('RegExp', value));\n }\n}\nexport function assertSafeInteger(value, message) {\n if (!isSafeInteger(value)) {\n throw new TypeError(message ?? typeErrorMessage('integer', value));\n }\n}\nexport function assertSet(value, message) {\n if (!isSet(value)) {\n throw new TypeError(message ?? typeErrorMessage('Set', value));\n }\n}\nexport function assertSharedArrayBuffer(value, message) {\n if (!isSharedArrayBuffer(value)) {\n throw new TypeError(message ?? typeErrorMessage('SharedArrayBuffer', value));\n }\n}\nexport function assertString(value, message) {\n if (!isString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string', value));\n }\n}\nexport function assertSymbol(value, message) {\n if (!isSymbol(value)) {\n throw new TypeError(message ?? typeErrorMessage('symbol', value));\n }\n}\nexport function assertTruthy(value, message) {\n if (!isTruthy(value)) {\n throw new TypeError(message ?? typeErrorMessage('truthy', value));\n }\n}\nexport function assertTupleLike(value, guards, message) {\n if (!isTupleLike(value, guards)) {\n throw new TypeError(message ?? typeErrorMessage('tuple-like', value));\n }\n}\nexport function assertTypedArray(value, message) {\n if (!isTypedArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('TypedArray', value));\n }\n}\nexport function assertUint16Array(value, message) {\n if (!isUint16Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint16Array', value));\n }\n}\nexport function assertUint32Array(value, message) {\n if (!isUint32Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint32Array', value));\n }\n}\nexport function assertUint8Array(value, message) {\n if (!isUint8Array(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint8Array', value));\n }\n}\nexport function assertUint8ClampedArray(value, message) {\n if (!isUint8ClampedArray(value)) {\n throw new TypeError(message ?? typeErrorMessage('Uint8ClampedArray', value));\n }\n}\nexport function assertUndefined(value, message) {\n if (!isUndefined(value)) {\n throw new TypeError(message ?? typeErrorMessage('undefined', value));\n }\n}\nexport function assertUrlInstance(value, message) {\n if (!isUrlInstance(value)) {\n throw new TypeError(message ?? typeErrorMessage('URL', value));\n }\n}\n// eslint-disable-next-line unicorn/prevent-abbreviations\nexport function assertUrlSearchParams(value, message) {\n if (!isUrlSearchParams(value)) {\n throw new TypeError(message ?? typeErrorMessage('URLSearchParams', value));\n }\n}\nexport function assertUrlString(value, message) {\n if (!isUrlString(value)) {\n throw new TypeError(message ?? typeErrorMessage('string with a URL', value));\n }\n}\nexport function assertValidDate(value, message) {\n if (!isValidDate(value)) {\n throw new TypeError(message ?? typeErrorMessage('valid Date', value));\n }\n}\nexport function assertValidLength(value, message) {\n if (!isValidLength(value)) {\n throw new TypeError(message ?? typeErrorMessage('valid length', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertWeakMap(value, message) {\n if (!isWeakMap(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakMap', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types, unicorn/prevent-abbreviations\nexport function assertWeakRef(value, message) {\n if (!isWeakRef(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakRef', value));\n }\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function assertWeakSet(value, message) {\n if (!isWeakSet(value)) {\n throw new TypeError(message ?? typeErrorMessage('WeakSet', value));\n }\n}\nexport function assertWhitespaceString(value, message) {\n if (!isWhitespaceString(value)) {\n throw new TypeError(message ?? typeErrorMessage('whitespace string', value));\n }\n}\nexport default is;\n","/**\n * Small utility library instead of using lodash\n * but still providing the convenience of a single `_.XXX` style import\n */\n\n\n// we'll rely on sindresorhus/is for type checking, but we'll build it into the final bundle\nimport {\n isBoolean, isError, isString, isPromise, isFunction,\n isNumber, isPlainObject, isArray, isInteger, isNan,\n} from '@sindresorhus/is';\n\nfunction keyBy<T>(array: Array<T>, key: keyof T) {\n return (array || []).reduce((r, x) => ({ ...r, [String(x[key])]: x }), {});\n}\n\n/**\n * Simple sortBy utility\n * Returns a new array sorted by the given key or function\n */\nfunction sortBy<T>(\n array: Array<T>,\n compareBy: keyof T | ((item: T) => number),\n) {\n // handle comparison using function that returns a number\n if (typeof compareBy === 'function') {\n const compareMap = new Map();\n array.forEach((item) => {\n compareMap.set(item, compareBy(item));\n });\n return array.concat().sort(\n (a, b) => compareMap.get(a)! - compareMap.get(b)!,\n );\n // handle comparison by key\n } else {\n return array.concat().sort(\n (a, b) => {\n if (a[compareBy] > b[compareBy]) return 1;\n return (b[compareBy] > a[compareBy]) ? -1 : 0;\n },\n );\n }\n}\n\nfunction compact<T>(array: Array<T | undefined | false | null>) {\n return array.filter((item) => item !== undefined && item !== false && item !== null) as Array<T>;\n}\n\nfunction filter<T>(array: Array<T>, fn: (item: T) => boolean) {\n return array.filter(fn);\n}\n\nfunction each<T>(\n array: Array<T> | Record<string, T>,\n fn: (\n ((item: T, key: string) => void)\n | ((item: T) => void)\n ),\n) {\n if (Array.isArray(array)) {\n array.forEach((item, index) => fn(item, String(index)));\n } else {\n Object.entries(array).forEach(([key, value]) => fn(value, key));\n }\n}\n\nfunction castArray<T>(value: T | Array<T>) {\n return Array.isArray(value) ? value : [value];\n}\n\nfunction mapValues<T, U>(obj: Record<string, T>, fn: (value: T) => U) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, fn(value)]));\n}\n\nfunction times<T>(count: number, fn: (index: number) => T): Array<T> {\n return Array.from({ length: count }, (_, i) => fn(i));\n}\n\nfunction map<T, U>(array: Array<T>, fn: (item: T) => U): Array<U> {\n return array.map(fn);\n}\nfunction flatMap<T, U>(array: Array<T>, fn: (item: T) => Array<U>): Array<U> {\n return array.flatMap(fn);\n}\nfunction intersection<T>(...arrays: Array<Array<T>>): Array<T> {\n return arrays.reduce((a, b) => a.filter((value) => b.includes(value)));\n}\nfunction pick<T>(obj: Record<string, T>, keys: Array<string>) {\n return Object.fromEntries(Object.entries(obj).filter(([key]) => keys.includes(key)));\n}\nfunction uniq<T>(array: Array<T>): Array<T> {\n return Array.from(new Set(array));\n}\nfunction fromPairs<T>(pairs: Array<[string, T]>): Record<string, T> {\n return Object.fromEntries(pairs);\n}\n\n\nconst _ = {\n keyBy,\n sortBy,\n compact,\n keys: Object.keys,\n values: Object.values,\n some: (a: Array<any>, fn: (item: any) => boolean) => a.some(fn),\n filter,\n each,\n castArray,\n mapValues,\n times,\n map,\n flatMap,\n intersection,\n pick,\n uniq,\n fromPairs,\n // type checks\n isString,\n isBoolean,\n isError,\n isPromise,\n isFunction,\n isNan,\n isNumber,\n isPlainObject,\n isArray,\n isInteger,\n};\n\nexport default _;\n","import _ from '@env-spec/utils/my-dash';\n// copied these error types from Astro\n// and we will try to keep it compatible so we can interact with their error overlay\n\nexport type ErrorLocation = {\n file?: string;\n line?: number;\n column?: number;\n};\n\n/**\n * Generic object representing an error with all possible data\n * Compatible with both Astro's and Vite's errors\n */\nexport type ErrorWithMetadata = {\n [name: string]: any;\n name: string;\n title?: string;\n // type?: ErrorTypes; // these are astro's error types\n message: string;\n stack: string;\n hint?: string;\n id?: string;\n frame?: string;\n plugin?: string;\n pluginCode?: string;\n fullCode?: string;\n loc?: ErrorLocation;\n cause?: any;\n};\n\n\nexport type VarlockErrorLocationDetails = {\n /** file path or url */\n id: string;\n /** 1-based line number */\n lineNumber: number;\n /** 1-based column number */\n colNumber: number;\n /** full line string */\n lineStr: string;\n};\n\n\nexport class VarlockError extends Error {\n originalError?: Error;\n get isUnexpected() { return !!this.originalError; }\n\n get type() { return this.name; }\n\n\n static defaultIcon = '❌';\n icon: string;\n\n _isWarning = false;\n\n constructor(errOrMessage: string | Error, readonly more?: {\n tip?: string | Array<string>,\n err?: Error,\n isWarning?: boolean,\n /** machine-friendly error code if needed for anything else */\n code?: string,\n location?: VarlockErrorLocationDetails,\n /** free-form additional metadata */\n extraMetadata?: Record<string, any>,\n }) {\n // super must be root level statement\n super(_.isError(errOrMessage) ? errOrMessage.message : errOrMessage);\n if (_.isError(errOrMessage)) {\n this.originalError = errOrMessage;\n this.icon = '💥';\n } else { // string\n this.originalError = more?.err;\n }\n if (_.isArray(more?.tip)) more.tip = more.tip.join('\\n');\n this.name = this.constructor.name;\n if (more?.isWarning) this.isWarning = true;\n\n this.icon ||= (this.constructor as any).defaultIcon;\n }\n\n get tip() {\n if (!this.more?.tip) return undefined;\n if (_.isArray(this.more.tip)) return this.more.tip.join('\\n');\n return this.more.tip;\n }\n\n get location() {\n return this.more?.location;\n }\n\n get code() {\n return this.more?.code;\n }\n get extraMetadata() {\n return this.more?.extraMetadata;\n }\n\n set isWarning(w: boolean) {\n this._isWarning = w;\n if (this._isWarning) {\n this.icon = '🧐';\n }\n }\n get isWarning() { return this._isWarning; }\n\n toJSON() {\n return {\n icon: this.icon,\n type: this.type,\n name: this.name,\n message: this.message,\n isUnexpected: this.isUnexpected,\n ...this.tip && { tip: this.tip },\n ...this.isWarning && { isWarning: this.isWarning },\n };\n }\n}\n\nexport class ConfigLoadError extends VarlockError {\n readonly cleanedStack: Array<string>;\n constructor(err: Error) {\n super(err);\n\n // remove first line since its the error message\n let stackLines = (err.stack?.split('\\n') || []).slice(1);\n stackLines = stackLines.filter((l) => {\n // filter out unimportant lines related to just running/loading\n // we could filter out more of dmno/core code once things stabilize\n //! these are probably not relevant anymore, or needs to move to a plugin layer?\n if (l.includes(' at ViteNodeRunner.')) return false;\n if (l.includes('core/src/config-loader/config-loader.ts')) return false;\n return true;\n });\n\n\n this.message = `${err.name}: ${err.message}`;\n\n\n\n this.cleanedStack = stackLines || [];\n }\n toJSON() {\n return {\n ...super.toJSON(),\n cleanedStack: this.cleanedStack,\n };\n }\n}\n\nexport class ParseError extends VarlockError {\n static defaultIcon = '😵💫';\n}\nexport class SchemaError extends VarlockError {\n static defaultIcon = '🧰';\n}\nexport class ValidationError extends VarlockError {\n static defaultIcon = '❌';\n}\nexport class CoercionError extends VarlockError {\n static defaultIcon = '🛑';\n}\nexport class ResolutionError extends VarlockError {\n static defaultIcon = '⛔';\n protected _retryable?: boolean = false;\n set retryable(val: boolean) { this._retryable = val; }\n get retryable() {\n if (this._retryable) return true;\n if (this.originalError instanceof ResolutionError) return this.originalError.retryable;\n return false;\n }\n}\n\nexport class EmptyRequiredValueError extends ValidationError {\n icon = '❓';\n constructor(_val: undefined | null | '') {\n super('Value is required but is currently empty');\n }\n}\n","/* eslint-disable no-console */\n\nimport { format } from 'node:util';\n\n/**\n * Debug logger with colors, timing, and format string support\n * Enable by setting DEBUG env var with namespaces (e.g., DEBUG=varlock:*)\n */\n\ntype DebugFn = (...args: Array<any>) => void;\n\n// Track last call time per namespace for diff timing\nconst prevTime = new Map<string, number>();\n\n// ANSI color codes\nconst colors = [\n '\\x1b[36m', // cyan\n '\\x1b[35m', // magenta\n '\\x1b[34m', // blue\n '\\x1b[33m', // yellow\n '\\x1b[32m', // green\n '\\x1b[31m', // red\n '\\x1b[96m', // bright cyan\n '\\x1b[95m', // bright magenta\n '\\x1b[94m', // bright blue\n '\\x1b[93m', // bright yellow\n '\\x1b[92m', // bright green\n '\\x1b[91m', // bright red\n];\nconst resetCode = '\\x1b[0m';\nconst grayCode = '\\x1b[90m';\n\n// Simple hash function to deterministically assign colors\nconst selectColor = (namespace: string): string => {\n let hash = 0;\n for (let i = 0; i < namespace.length; i++) {\n // eslint-disable-next-line no-bitwise\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n // eslint-disable-next-line no-bitwise\n hash |= 0; // Convert to 32bit integer\n }\n return colors[Math.abs(hash) % colors.length];\n};\n\n// Format milliseconds in human-readable form\nconst humanizeMs = (ms: number): string => {\n if (ms >= 1000) {\n return `${(ms / 1000).toFixed(1)}s`;\n }\n return `${Math.round(ms)}ms`;\n};\n\nconst isEnabled = (namespace: string): boolean => {\n const debugEnv = process.env.DEBUG || '';\n if (!debugEnv) return false;\n\n const patterns = debugEnv.split(',').map((p) => p.trim());\n let enabled = false;\n\n for (const pattern of patterns) {\n // Negative pattern (exclude)\n if (pattern.startsWith('-')) {\n const excludePattern = pattern.slice(1);\n if (excludePattern === namespace) return false;\n if (excludePattern.endsWith('*')) {\n const prefix = excludePattern.slice(0, -1);\n if (namespace.startsWith(prefix)) return false;\n }\n continue;\n }\n\n // Positive pattern (include)\n if (pattern === '*') {\n enabled = true;\n } else if (pattern === namespace) {\n enabled = true;\n } else if (pattern.endsWith('*')) {\n const prefix = pattern.slice(0, -1);\n if (namespace.startsWith(prefix)) {\n enabled = true;\n }\n }\n }\n\n return enabled;\n};\n\nexport function createDebug(namespace: string): DebugFn {\n const enabled = isEnabled(namespace);\n\n if (!enabled) {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return () => {};\n }\n\n const colorCode = selectColor(namespace);\n\n return (...args: Array<any>) => {\n const now = Date.now();\n const prev = prevTime.get(namespace);\n const diff = prev ? now - prev : 0;\n prevTime.set(namespace, now);\n\n // Format the message with util.format for printf-style formatting\n const msg = format(...args);\n\n // Build the output with colored namespace and diff timing\n const diffStr = diff > 0 ? `${grayCode} +${humanizeMs(diff)}${resetCode}` : '';\n const output = `${colorCode}${namespace}${resetCode} ${msg}${diffStr}`;\n\n console.error(output);\n };\n}\n\nexport type Debugger = ReturnType<typeof createDebug>;\n","/**\n * Shared mutable plugin context used during plugin module execution.\n *\n * Kept in its own file to avoid a circular dependency between plugins.ts\n * (which sets the active plugin) and plugin-lib.ts (which exposes it to\n * plugin authors) — both of which would otherwise need to import each other.\n *\n * plugins.ts calls activatePlugin / deactivatePlugin around each load.\n * plugin-lib.ts re-exports `plugin` as a Proxy that delegates to whatever\n * is currently active.\n */\n\n\nconst ctx: { active: any } = { active: undefined };\n\nexport function activatePlugin(p: unknown): void {\n ctx.active = p;\n}\n\nexport function deactivatePlugin(): void {\n ctx.active = undefined;\n}\n\n/**\n * A proxy that always delegates to the currently-loading plugin instance.\n * Plugin code can import this and use it as if it were the plugin directly.\n *\n * Valid only between activatePlugin() and deactivatePlugin() calls.\n */\n\nexport const pluginProxy: any = new Proxy({} as any, {\n get(_, key) {\n if (!ctx.active) throw new Error('[varlock] No active plugin context — are you importing plugin-lib outside of a plugin module?');\n const val = ctx.active[key];\n return typeof val === 'function' ? val.bind(ctx.active) : val;\n },\n set(_, key, value) {\n if (!ctx.active) throw new Error('[varlock] No active plugin context');\n ctx.active[key] = value;\n return true;\n },\n});\n"]}
|