@jakubmazanec/args 2.0.18-unstable.f50b9d9c → 2.0.19-next.4df71cb5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +1 -1
  2. package/build/Arguments.js +0 -1
  3. package/build/ArgumentsCommand.js +0 -1
  4. package/build/ArgumentsOptions.js +0 -1
  5. package/build/ArgumentsParameters.js +0 -1
  6. package/build/ArgumentsUnknownOptions.js +0 -1
  7. package/build/Argv.js +0 -1
  8. package/build/CommandConfig.js +0 -1
  9. package/build/CommandsConfig.js +0 -1
  10. package/build/LongOptionName.js +0 -1
  11. package/build/OptionConfig.js +0 -1
  12. package/build/OptionsConfig.js +0 -1
  13. package/build/ParameterConfig.js +0 -1
  14. package/build/ParametersConfig.js +0 -1
  15. package/build/ParserConfig.js +0 -1
  16. package/build/ParsingError.js +0 -1
  17. package/build/ParsingError.js.map +1 -1
  18. package/build/ShortOptionName.js +0 -1
  19. package/build/ValidationError.js +0 -1
  20. package/build/ValidationError.js.map +1 -1
  21. package/build/internals/Checker.js +0 -1
  22. package/build/internals/Checker.js.map +1 -1
  23. package/build/internals/CommandScope.js +0 -1
  24. package/build/internals/CommandScope.js.map +1 -1
  25. package/build/internals/NormalizedCommandConfig.js +0 -1
  26. package/build/internals/NormalizedCommandsConfig.js +0 -1
  27. package/build/internals/OptionScope.js +0 -1
  28. package/build/internals/OptionScope.js.map +1 -1
  29. package/build/internals/castValue.js +0 -1
  30. package/build/internals/castValue.js.map +1 -1
  31. package/build/internals/commandToArguments.js +0 -1
  32. package/build/internals/commandToArguments.js.map +1 -1
  33. package/build/internals/createOptionShortNameMap.js +0 -1
  34. package/build/internals/createOptionShortNameMap.js.map +1 -1
  35. package/build/internals/expandArguments.js +0 -1
  36. package/build/internals/expandArguments.js.map +1 -1
  37. package/build/internals/isCommand.js +0 -1
  38. package/build/internals/isCommand.js.map +1 -1
  39. package/build/internals/isFalseString.js +0 -1
  40. package/build/internals/isFalseString.js.map +1 -1
  41. package/build/internals/isLongOption.js +0 -1
  42. package/build/internals/isLongOption.js.map +1 -1
  43. package/build/internals/isOptionLike.js +0 -1
  44. package/build/internals/isOptionLike.js.map +1 -1
  45. package/build/internals/isShortOption.js +0 -1
  46. package/build/internals/isShortOption.js.map +1 -1
  47. package/build/internals/isShortOptionsGroup.js +0 -1
  48. package/build/internals/isShortOptionsGroup.js.map +1 -1
  49. package/build/internals/isTrueString.js +0 -1
  50. package/build/internals/isTrueString.js.map +1 -1
  51. package/build/internals.js +0 -1
  52. package/build/internals.js.map +1 -1
  53. package/build/main.js +0 -1
  54. package/build/main.js.map +1 -1
  55. package/build/parseArguments.js +0 -1
  56. package/build/parseArguments.js.map +1 -1
  57. package/package.json +19 -19
package/README.md CHANGED
@@ -21,7 +21,7 @@ It cannot be required from a CommonJS module.
21
21
  #### Prerequisites
22
22
 
23
23
  - Node.js 24 or later
24
- - TypeScript 5 or later
24
+ - TypeScript 6 or later
25
25
 
26
26
  <!-- prerequisites -->
27
27
 
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=Arguments.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ArgumentsCommand.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ArgumentsOptions.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ArgumentsParameters.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ArgumentsUnknownOptions.js.map
package/build/Argv.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=Argv.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=CommandConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=CommandsConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=LongOptionName.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=OptionConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=OptionsConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ParameterConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ParametersConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ParserConfig.js.map
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { createCustomError } from "@jakubmazanec/error";
3
2
  export const ParsingError = createCustomError("ParsingError", {
4
3
  INVALID_PARAMETER: 'Invalid parameter value "{0}" found. Allowed values for parameter "{1}" are: {2}.',
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../source/ParsingError.ts"],
4
4
  "sourcesContent": ["import {createCustomError} from '@jakubmazanec/error';\n\n/**\n * A subclass of `Error` that indicates a parsing failure.\n */\nexport const ParsingError = createCustomError('ParsingError', {\n INVALID_PARAMETER:\n 'Invalid parameter value \"{0}\" found. Allowed values for parameter \"{1}\" are: {2}.',\n UNKNOWN_PARAMETER: 'Unknown parameter \"{0}\" found. Unknown parameters are not allowed.',\n INVALID_OPTION: 'Invalid option value \"{0}\" found. Allowed values for option \"{1}\" are: {2}.',\n UNKNOWN_OPTION: 'Unknown option \"{0}\" found. Unknown options are not allowed.',\n});\n"],
5
- "mappings": ";AAAA,SAAQ,yBAAwB;AAKzB,aAAM,eAAe,kBAAkB,gBAAgB;AAAA,EAC5D,mBACE;AAAA,EACF,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB,CAAC;",
5
+ "mappings": "AAAA,SAAQ,yBAAwB;AAKzB,aAAM,eAAe,kBAAkB,gBAAgB;AAAA,EAC5D,mBACE;AAAA,EACF,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAClB,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=ShortOptionName.js.map
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { createCustomError } from "@jakubmazanec/error";
3
2
  export const ValidationError = createCustomError("ValidationError", {
4
3
  INVALID_COMMAND: 'Command "{0}" has invalid format. Only words consisting of letters, numbers or dashes separated by single space are allowed.',
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../source/ValidationError.ts"],
4
4
  "sourcesContent": ["import {createCustomError} from '@jakubmazanec/error';\n\n/**\n * A subclass of `Error` that indicates a validation issue.\n */\nexport const ValidationError = createCustomError('ValidationError', {\n INVALID_COMMAND:\n 'Command \"{0}\" has invalid format. Only words consisting of letters, numbers or dashes separated by single space are allowed.',\n MISSING_PARAMETER: 'Parameter \"{0}\" is required but its value is undefined.',\n INVALID_PARAMETER_DEFAULT_AND_CHOICES:\n 'Parameter \"{0}\" has invalid default value \"{1}\". Default value must be one of the `choices` elements.',\n INVALID_PARAMETER_ORDER:\n 'Parameter \"{0}\" has invalid order. All parameters before must have a default value or be required too',\n MISSING_OPTION: 'Option \"{0}\" is required but its value is undefined.',\n INVALID_OPTION_DEFAULT_AND_CHOICES:\n 'Option \"{0}\" has invalid default value \"{1}\". Default value must be one of the `choices` elements.',\n INVALID_OPTION_NAME:\n 'Option \"{0}\" has invalid name. Only names consisting of letters, numbers or dashes are allowed.',\n REPEATED_OPTION_NAME:\n 'Option \"{0}\" has invalid short name \"{1}\". Short option names must be unique.',\n INVALID_OPTION_ARITY: 'Option \"{0}\" has invalid number of values. Found \"{1}\", require \"{2}\".',\n});\n"],
5
- "mappings": ";AAAA,SAAQ,yBAAwB;AAKzB,aAAM,kBAAkB,kBAAkB,mBAAmB;AAAA,EAClE,iBACE;AAAA,EACF,mBAAmB;AAAA,EACnB,uCACE;AAAA,EACF,yBACE;AAAA,EACF,gBAAgB;AAAA,EAChB,oCACE;AAAA,EACF,qBACE;AAAA,EACF,sBACE;AAAA,EACF,sBAAsB;AACxB,CAAC;",
5
+ "mappings": "AAAA,SAAQ,yBAAwB;AAKzB,aAAM,kBAAkB,kBAAkB,mBAAmB;AAAA,EAClE,iBACE;AAAA,EACF,mBAAmB;AAAA,EACnB,uCACE;AAAA,EACF,yBACE;AAAA,EACF,gBAAgB;AAAA,EAChB,oCACE;AAAA,EACF,qBACE;AAAA,EACF,sBACE;AAAA,EACF,sBAAsB;AACxB,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { ValidationError } from "../ValidationError.js";
3
2
  import { isCommand } from "./isCommand.js";
4
3
  import { isLongOption } from "./isLongOption.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/Checker.ts"],
4
4
  "sourcesContent": ["import {type CommandsConfig} from '../CommandsConfig.js';\nimport {type OptionsConfig} from '../OptionsConfig.js';\nimport {type ParametersConfig} from '../ParametersConfig.js';\nimport {ValidationError} from '../ValidationError.js';\nimport {isCommand} from './isCommand.js';\nimport {isLongOption} from './isLongOption.js';\n\n/**\n * `Checker` is used for handling various checks before, during, and after parsing of the arguments.\n */\nexport class Checker {\n errors: Error[] = [];\n\n checkCommandsConfig(commandsConfig: CommandsConfig | []) {\n for (let commandConfig of commandsConfig) {\n if (!isCommand(commandConfig)) {\n this.addError(new ValidationError('INVALID_COMMAND', {messageParameters: [commandConfig]}));\n }\n }\n }\n\n checkParametersConfig(parametersConfig: ParametersConfig | []) {\n for (let [i, parameterConfig] of parametersConfig.entries()) {\n // types of choices must be correct\n if (\n parameterConfig.type !== 'boolean' &&\n parameterConfig.choices && // default values and chocies do not contradict each other\n parameterConfig.defaultValue !== undefined &&\n !parameterConfig.choices.includes(parameterConfig.defaultValue as never)\n ) {\n this.addError(\n new ValidationError('INVALID_PARAMETER_DEFAULT_AND_CHOICES', {\n messageParameters: [parameterConfig.label ?? i, parameterConfig.defaultValue],\n }),\n );\n }\n\n // if parameter is required, all parameters before must be required too\n if (\n i >= 1 &&\n parameterConfig.required === true &&\n !parametersConfig\n .slice(0, i)\n .every(\n (previousParameterConfig) =>\n previousParameterConfig.required === true ||\n previousParameterConfig.defaultValue !== undefined,\n )\n ) {\n this.addError(\n new ValidationError('INVALID_PARAMETER_ORDER', {\n messageParameters: [parameterConfig.label ?? i],\n }),\n );\n }\n }\n }\n\n checkOptionsConfig(optionsConfig: OptionsConfig) {\n let usedShortOptionNames: Set<string> = new Set([]);\n\n for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {\n // option names must be in correct format\n if (!isLongOption(`--${optionName}`)) {\n this.addError(\n new ValidationError('INVALID_OPTION_NAME', {\n messageParameters: [optionName],\n }),\n );\n }\n\n // option short names must be unique\n if (optionConfig.shortName && usedShortOptionNames.has(optionConfig.shortName)) {\n this.addError(\n new ValidationError('REPEATED_OPTION_NAME', {\n messageParameters: [optionName, optionConfig.shortName],\n }),\n );\n } else if (optionConfig.shortName) {\n usedShortOptionNames.add(optionConfig.shortName);\n }\n\n // default values and chocies do not contradict each other\n if (\n (optionConfig.type === 'string' ||\n (optionConfig.type === 'number' && !optionConfig.count)) &&\n optionConfig.choices &&\n optionConfig.defaultValue !== undefined &&\n !optionConfig.choices.includes(optionConfig.defaultValue as never)\n ) {\n this.addError(\n new ValidationError('INVALID_OPTION_DEFAULT_AND_CHOICES', {\n messageParameters: [optionName, optionConfig.defaultValue],\n }),\n );\n }\n }\n }\n\n checkParsedParameters(parametersConfig: ParametersConfig | [], parsedParameters: unknown[]) {\n for (let [i, parameterConfig] of parametersConfig.entries()) {\n let parsedParameter = parsedParameters[i];\n\n // required parameters must have value\n if (parameterConfig.required === true && parsedParameter === undefined) {\n this.addError(\n new ValidationError('MISSING_PARAMETER', {\n messageParameters: [parameterConfig.label ?? i],\n }),\n );\n }\n }\n }\n\n checkParsedOptions(optionsConfig: OptionsConfig, parsedOptions: Record<string, unknown>) {\n for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {\n let parsedOption = parsedOptions[optionName];\n\n // check required\n if (optionConfig.required && parsedOption === undefined) {\n this.addError(\n new ValidationError('MISSING_OPTION', {\n messageParameters: [optionName],\n }),\n );\n }\n\n // check arity\n if (\n parsedOption !== undefined &&\n ((optionConfig.type === 'string' && optionConfig.multiple) ||\n (optionConfig.type === 'number' && optionConfig.multiple)) &&\n typeof optionConfig.arity === 'number' &&\n Array.isArray(parsedOption) &&\n (parsedOption as unknown[]).length > 0 &&\n (parsedOption as unknown[]).length !== optionConfig.arity\n ) {\n this.addError(\n new ValidationError('INVALID_OPTION_ARITY', {\n messageParameters: [optionName, (parsedOption as unknown[]).length, optionConfig.arity],\n }),\n );\n }\n }\n }\n\n addError(error: Error) {\n this.errors.push(error);\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export class CommandScope {
3
2
  args;
4
3
  config;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/CommandScope.ts"],
4
4
  "sourcesContent": ["import {type NormalizedCommandConfig} from './NormalizedCommandConfig.js';\nimport {type NormalizedCommandsConfig} from './NormalizedCommandsConfig.js';\n\n/**\n * `CommandScope` handles storing information about parsing of a command.\n */\nexport class CommandScope {\n private readonly args: string[];\n readonly config: NormalizedCommandConfig;\n\n constructor(arg: string, normalizedCommandsConfig: NormalizedCommandsConfig) {\n let normalizedArgument = arg.toLowerCase();\n let commandConfig = normalizedCommandsConfig.find(\n (commandConfig) => commandConfig.args[0] === normalizedArgument,\n );\n\n this.config = commandConfig ?? ([] as unknown as NormalizedCommandConfig);\n this.args = [normalizedArgument];\n }\n\n captureArg(arg: string) {\n this.args.push(arg.toLowerCase());\n\n return this;\n }\n\n isComplete() {\n let isComplete = true;\n\n for (let [i, arg] of this.config.args.entries()) {\n if (this.args[i] !== arg) {\n isComplete = false;\n\n break;\n }\n }\n\n return isComplete;\n }\n\n isDone() {\n let isDone = false;\n\n for (let [i, arg] of this.config.args.entries()) {\n if (this.args[i] !== arg) {\n isDone = true;\n\n break;\n }\n }\n\n return isDone;\n }\n\n getValue() {\n return this.config.command;\n }\n\n getArgs() {\n return [...this.args];\n }\n}\n"],
5
- "mappings": ";AAMO,aAAM,aAAa;AAAA,EACP;AAAA,EACR;AAAA,EAET,YAAY,KAAa,0BAAoD;AAC3E,QAAI,qBAAqB,IAAI,YAAY;AACzC,QAAI,gBAAgB,yBAAyB;AAAA,MAC3C,CAACA,mBAAkBA,eAAc,KAAK,CAAC,MAAM;AAAA,IAC/C;AAEA,SAAK,SAAS,iBAAkB,CAAC;AACjC,SAAK,OAAO,CAAC,kBAAkB;AAAA,EACjC;AAAA,EAEA,WAAW,KAAa;AACtB,SAAK,KAAK,KAAK,IAAI,YAAY,CAAC;AAEhC,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,QAAI,aAAa;AAEjB,aAAS,CAAC,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,QAAQ,GAAG;AAC/C,UAAI,KAAK,KAAK,CAAC,MAAM,KAAK;AACxB,qBAAa;AAEb;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS;AACP,QAAI,SAAS;AAEb,aAAS,CAAC,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,QAAQ,GAAG;AAC/C,UAAI,KAAK,KAAK,CAAC,MAAM,KAAK;AACxB,iBAAS;AAET;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,UAAU;AACR,WAAO,CAAC,GAAG,KAAK,IAAI;AAAA,EACtB;AACF;",
5
+ "mappings": "AAMO,aAAM,aAAa;AAAA,EACP;AAAA,EACR;AAAA,EAET,YAAY,KAAa,0BAAoD;AAC3E,QAAI,qBAAqB,IAAI,YAAY;AACzC,QAAI,gBAAgB,yBAAyB;AAAA,MAC3C,CAACA,mBAAkBA,eAAc,KAAK,CAAC,MAAM;AAAA,IAC/C;AAEA,SAAK,SAAS,iBAAkB,CAAC;AACjC,SAAK,OAAO,CAAC,kBAAkB;AAAA,EACjC;AAAA,EAEA,WAAW,KAAa;AACtB,SAAK,KAAK,KAAK,IAAI,YAAY,CAAC;AAEhC,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,QAAI,aAAa;AAEjB,aAAS,CAAC,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,QAAQ,GAAG;AAC/C,UAAI,KAAK,KAAK,CAAC,MAAM,KAAK;AACxB,qBAAa;AAEb;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,SAAS;AACP,QAAI,SAAS;AAEb,aAAS,CAAC,GAAG,GAAG,KAAK,KAAK,OAAO,KAAK,QAAQ,GAAG;AAC/C,UAAI,KAAK,KAAK,CAAC,MAAM,KAAK;AACxB,iBAAS;AAET;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,UAAU;AACR,WAAO,CAAC,GAAG,KAAK,IAAI;AAAA,EACtB;AACF;",
6
6
  "names": ["commandConfig"]
7
7
  }
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=NormalizedCommandConfig.js.map
@@ -1,2 +1 @@
1
- "use strict";
2
1
  //# sourceMappingURL=NormalizedCommandsConfig.js.map
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import _ from "lodash";
3
2
  import { ParsingError } from "../ParsingError.js";
4
3
  import { castValue } from "./castValue.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/OptionScope.ts"],
4
4
  "sourcesContent": ["import _ from 'lodash';\n\nimport {type OptionConfig} from '../OptionConfig.js';\nimport {type OptionsConfig} from '../OptionsConfig.js';\nimport {ParsingError} from '../ParsingError.js';\nimport {castValue} from './castValue.js';\n\n/**\n * `CommandScope` handles storing information about parsing of an option..\n */\nexport class OptionScope {\n name: string;\n\n values: unknown[] = [];\n previousParsedValue?: unknown[] | unknown;\n readonly config: OptionConfig;\n\n constructor(optionName: string, optionsConfig: OptionsConfig, allowUnknownOptions = false) {\n this.name = optionName;\n\n // Convert option to camel case\n if (this.name.includes('-')) {\n this.name = _.camelCase(this.name);\n }\n\n let optionConfig = optionsConfig[this.name];\n\n if (!optionConfig) {\n if (!allowUnknownOptions) {\n throw new ParsingError('UNKNOWN_OPTION', {messageParameters: [this.name]});\n }\n\n optionConfig = {\n type: 'string',\n };\n }\n\n this.config = optionConfig;\n }\n\n captureArg(arg: string) {\n let value = castValue(arg, this.config.type);\n\n if (\n ((this.config.type === 'number' && !this.config.count) || this.config.type === 'string') &&\n this.config.choices !== undefined &&\n !this.config.choices.includes(value as never)\n ) {\n throw new ParsingError('INVALID_OPTION', {\n messageParameters: [\n value,\n this.name,\n this.config.choices.map((choice) => `\"${choice}\"`).join(', '),\n ],\n });\n }\n\n if (this.config.multiple) {\n this.values.push(value);\n } else {\n this.values = [value];\n }\n }\n\n isComplete() {\n if (!this.config.multiple && this.values.length === 1) {\n return true;\n }\n\n if (\n this.config.multiple &&\n typeof this.config.arity === 'number' &&\n this.values.length + ((this.previousParsedValue as unknown[] | undefined) ?? []).length ===\n this.config.arity\n ) {\n return true;\n }\n\n return false;\n }\n\n getValue() {\n let {config, previousParsedValue} = this;\n let {values} = this;\n\n if (config.type === 'boolean' && !config.multiple && !values.length) {\n values = [true];\n } else if (config.type === 'number' && config.count && !values.length) {\n values = [1];\n }\n\n if (config.multiple && previousParsedValue) {\n values = [...(previousParsedValue as unknown[]), ...values];\n }\n\n if (config.type === 'number' && config.count && previousParsedValue) {\n values = [(values[0] as number) + (previousParsedValue as number)];\n }\n\n return config.multiple ? values : values[0];\n }\n}\n"],
5
- "mappings": ";AAAA,OAAO,OAAO;AAId,SAAQ,oBAAmB;AAC3B,SAAQ,iBAAgB;AAKjB,aAAM,YAAY;AAAA,EACvB;AAAA,EAEA,SAAoB,CAAC;AAAA,EACrB;AAAA,EACS;AAAA,EAET,YAAY,YAAoB,eAA8B,sBAAsB,OAAO;AACzF,SAAK,OAAO;AAGZ,QAAI,KAAK,KAAK,SAAS,GAAG,GAAG;AAC3B,WAAK,OAAO,EAAE,UAAU,KAAK,IAAI;AAAA,IACnC;AAEA,QAAI,eAAe,cAAc,KAAK,IAAI;AAE1C,QAAI,CAAC,cAAc;AACjB,UAAI,CAAC,qBAAqB;AACxB,cAAM,IAAI,aAAa,kBAAkB,EAAC,mBAAmB,CAAC,KAAK,IAAI,EAAC,CAAC;AAAA,MAC3E;AAEA,qBAAe;AAAA,QACb,MAAM;AAAA,MACR;AAAA,IACF;AAEA,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,WAAW,KAAa;AACtB,QAAI,QAAQ,UAAU,KAAK,KAAK,OAAO,IAAI;AAE3C,SACI,KAAK,OAAO,SAAS,YAAY,CAAC,KAAK,OAAO,SAAU,KAAK,OAAO,SAAS,aAC/E,KAAK,OAAO,YAAY,UACxB,CAAC,KAAK,OAAO,QAAQ,SAAS,KAAc,GAC5C;AACA,YAAM,IAAI,aAAa,kBAAkB;AAAA,QACvC,mBAAmB;AAAA,UACjB;AAAA,UACA,KAAK;AAAA,UACL,KAAK,OAAO,QAAQ,IAAI,CAAC,WAAW,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI;AAAA,QAC9D;AAAA,MACF,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,OAAO,UAAU;AACxB,WAAK,OAAO,KAAK,KAAK;AAAA,IACxB,OAAO;AACL,WAAK,SAAS,CAAC,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,aAAa;AACX,QAAI,CAAC,KAAK,OAAO,YAAY,KAAK,OAAO,WAAW,GAAG;AACrD,aAAO;AAAA,IACT;AAEA,QACE,KAAK,OAAO,YACZ,OAAO,KAAK,OAAO,UAAU,YAC7B,KAAK,OAAO,UAAW,KAAK,uBAAiD,CAAC,GAAG,WAC/E,KAAK,OAAO,OACd;AACA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,QAAI,EAAC,QAAQ,oBAAmB,IAAI;AACpC,QAAI,EAAC,OAAM,IAAI;AAEf,QAAI,OAAO,SAAS,aAAa,CAAC,OAAO,YAAY,CAAC,OAAO,QAAQ;AACnE,eAAS,CAAC,IAAI;AAAA,IAChB,WAAW,OAAO,SAAS,YAAY,OAAO,SAAS,CAAC,OAAO,QAAQ;AACrE,eAAS,CAAC,CAAC;AAAA,IACb;AAEA,QAAI,OAAO,YAAY,qBAAqB;AAC1C,eAAS,CAAC,GAAI,qBAAmC,GAAG,MAAM;AAAA,IAC5D;AAEA,QAAI,OAAO,SAAS,YAAY,OAAO,SAAS,qBAAqB;AACnE,eAAS,CAAE,OAAO,CAAC,IAAgB,mBAA8B;AAAA,IACnE;AAEA,WAAO,OAAO,WAAW,SAAS,OAAO,CAAC;AAAA,EAC5C;AACF;",
5
+ "mappings": "AAAA,OAAO,OAAO;AAId,SAAQ,oBAAmB;AAC3B,SAAQ,iBAAgB;AAKjB,aAAM,YAAY;AAAA,EACvB;AAAA,EAEA,SAAoB,CAAC;AAAA,EACrB;AAAA,EACS;AAAA,EAET,YAAY,YAAoB,eAA8B,sBAAsB,OAAO;AACzF,SAAK,OAAO;AAGZ,QAAI,KAAK,KAAK,SAAS,GAAG,GAAG;AAC3B,WAAK,OAAO,EAAE,UAAU,KAAK,IAAI;AAAA,IACnC;AAEA,QAAI,eAAe,cAAc,KAAK,IAAI;AAE1C,QAAI,CAAC,cAAc;AACjB,UAAI,CAAC,qBAAqB;AACxB,cAAM,IAAI,aAAa,kBAAkB,EAAC,mBAAmB,CAAC,KAAK,IAAI,EAAC,CAAC;AAAA,MAC3E;AAEA,qBAAe;AAAA,QACb,MAAM;AAAA,MACR;AAAA,IACF;AAEA,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,WAAW,KAAa;AACtB,QAAI,QAAQ,UAAU,KAAK,KAAK,OAAO,IAAI;AAE3C,SACI,KAAK,OAAO,SAAS,YAAY,CAAC,KAAK,OAAO,SAAU,KAAK,OAAO,SAAS,aAC/E,KAAK,OAAO,YAAY,UACxB,CAAC,KAAK,OAAO,QAAQ,SAAS,KAAc,GAC5C;AACA,YAAM,IAAI,aAAa,kBAAkB;AAAA,QACvC,mBAAmB;AAAA,UACjB;AAAA,UACA,KAAK;AAAA,UACL,KAAK,OAAO,QAAQ,IAAI,CAAC,WAAW,IAAI,MAAM,GAAG,EAAE,KAAK,IAAI;AAAA,QAC9D;AAAA,MACF,CAAC;AAAA,IACH;AAEA,QAAI,KAAK,OAAO,UAAU;AACxB,WAAK,OAAO,KAAK,KAAK;AAAA,IACxB,OAAO;AACL,WAAK,SAAS,CAAC,KAAK;AAAA,IACtB;AAAA,EACF;AAAA,EAEA,aAAa;AACX,QAAI,CAAC,KAAK,OAAO,YAAY,KAAK,OAAO,WAAW,GAAG;AACrD,aAAO;AAAA,IACT;AAEA,QACE,KAAK,OAAO,YACZ,OAAO,KAAK,OAAO,UAAU,YAC7B,KAAK,OAAO,UAAW,KAAK,uBAAiD,CAAC,GAAG,WAC/E,KAAK,OAAO,OACd;AACA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,QAAI,EAAC,QAAQ,oBAAmB,IAAI;AACpC,QAAI,EAAC,OAAM,IAAI;AAEf,QAAI,OAAO,SAAS,aAAa,CAAC,OAAO,YAAY,CAAC,OAAO,QAAQ;AACnE,eAAS,CAAC,IAAI;AAAA,IAChB,WAAW,OAAO,SAAS,YAAY,OAAO,SAAS,CAAC,OAAO,QAAQ;AACrE,eAAS,CAAC,CAAC;AAAA,IACb;AAEA,QAAI,OAAO,YAAY,qBAAqB;AAC1C,eAAS,CAAC,GAAI,qBAAmC,GAAG,MAAM;AAAA,IAC5D;AAEA,QAAI,OAAO,SAAS,YAAY,OAAO,SAAS,qBAAqB;AACnE,eAAS,CAAE,OAAO,CAAC,IAAgB,mBAA8B;AAAA,IACnE;AAEA,WAAO,OAAO,WAAW,SAAS,OAAO,CAAC;AAAA,EAC5C;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { isFalseString } from "./isFalseString.js";
3
2
  export function castValue(value, targetType) {
4
3
  switch (targetType) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/castValue.ts"],
4
4
  "sourcesContent": ["import {isFalseString} from './isFalseString.js';\n\n/**\n * A function that casts string value to a specified type.\n *\n * @param value The value to be converted.\n * @param type The type to convert the value into.\n * */\nexport function castValue<T extends 'boolean' | 'number' | 'string'>(\n value: string,\n targetType?: T,\n): T extends 'boolean' ? boolean\n: T extends 'number' ? number\n: string {\n switch (targetType) {\n case 'boolean': {\n let booleanString = String(value).toLowerCase();\n\n return !(isFalseString(booleanString) || booleanString === '') as T extends 'boolean' ?\n boolean\n : T extends 'number' ? number\n : string;\n }\n\n case 'number': {\n return Number.parseFloat(value) as T extends 'boolean' ? boolean\n : T extends 'number' ? number\n : string;\n }\n\n case 'string': {\n return String(value) as T extends 'boolean' ? boolean\n : T extends 'number' ? number\n : string;\n }\n\n case undefined: {\n return String(value) as T extends 'boolean' ? boolean\n : T extends 'number' ? number\n : string;\n }\n\n default: {\n targetType satisfies never;\n\n return String(value) as T extends 'boolean' ? boolean\n : T extends 'number' ? number\n : string;\n }\n }\n}\n"],
5
- "mappings": ";AAAA,SAAQ,qBAAoB;AAQrB,gBAAS,UACd,OACA,YAGO;AACP,UAAQ,YAAY;AAAA,IAClB,KAAK,WAAW;AACd,UAAI,gBAAgB,OAAO,KAAK,EAAE,YAAY;AAE9C,aAAO,EAAE,cAAc,aAAa,KAAK,kBAAkB;AAAA,IAI7D;AAAA,IAEA,KAAK,UAAU;AACb,aAAO,OAAO,WAAW,KAAK;AAAA,IAGhC;AAAA,IAEA,KAAK,UAAU;AACb,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,IAEA,KAAK,QAAW;AACd,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,IAEA,SAAS;AACP;AAEA,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,EACF;AACF;",
5
+ "mappings": "AAAA,SAAQ,qBAAoB;AAQrB,gBAAS,UACd,OACA,YAGO;AACP,UAAQ,YAAY;AAAA,IAClB,KAAK,WAAW;AACd,UAAI,gBAAgB,OAAO,KAAK,EAAE,YAAY;AAE9C,aAAO,EAAE,cAAc,aAAa,KAAK,kBAAkB;AAAA,IAI7D;AAAA,IAEA,KAAK,UAAU;AACb,aAAO,OAAO,WAAW,KAAK;AAAA,IAGhC;AAAA,IAEA,KAAK,UAAU;AACb,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,IAEA,KAAK,QAAW;AACd,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,IAEA,SAAS;AACP;AAEA,aAAO,OAAO,KAAK;AAAA,IAGrB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export function commandToArguments(value) {
3
2
  let rawArgs = value.split(" ");
4
3
  let args = [];
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/commandToArguments.ts"],
4
4
  "sourcesContent": ["/**\n * Converts a string representing a command into the arguments, i.e. array of strings.\n *\n * @param value The value to convert.\n * @return Arguments.\n */\nexport function commandToArguments(value: string): string[] {\n let rawArgs = value.split(' ');\n let args: string[] = [];\n\n for (let [, rawValue] of rawArgs.entries()) {\n if (rawValue === '' && args.at(-1)) {\n args[args.length - 1] += ' ';\n } else {\n args.push(rawValue);\n }\n }\n\n return args;\n}\n"],
5
- "mappings": ";AAMO,gBAAS,mBAAmB,OAAyB;AAC1D,MAAI,UAAU,MAAM,MAAM,GAAG;AAC7B,MAAI,OAAiB,CAAC;AAEtB,WAAS,CAAC,EAAE,QAAQ,KAAK,QAAQ,QAAQ,GAAG;AAC1C,QAAI,aAAa,MAAM,KAAK,GAAG,EAAE,GAAG;AAClC,WAAK,KAAK,SAAS,CAAC,KAAK;AAAA,IAC3B,OAAO;AACL,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAEA,SAAO;AACT;",
5
+ "mappings": "AAMO,gBAAS,mBAAmB,OAAyB;AAC1D,MAAI,UAAU,MAAM,MAAM,GAAG;AAC7B,MAAI,OAAiB,CAAC;AAEtB,WAAS,CAAC,EAAE,QAAQ,KAAK,QAAQ,QAAQ,GAAG;AAC1C,QAAI,aAAa,MAAM,KAAK,GAAG,EAAE,GAAG;AAClC,WAAK,KAAK,SAAS,CAAC,KAAK;AAAA,IAC3B,OAAO;AACL,WAAK,KAAK,QAAQ;AAAA,IACpB;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export function createOptionShortNameMap(optionsConfig) {
3
2
  let map = {};
4
3
  for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/createOptionShortNameMap.ts"],
4
4
  "sourcesContent": ["import {type OptionsConfig} from '../OptionsConfig.js';\n\n/**\n * Converts options config to a map (i.e. an object) of short option names (object keys) to long option names (values).\n *\n * @optionsConfig Options config to create the map from.\n * @return Resulting map.\n */\nexport function createOptionShortNameMap(optionsConfig: OptionsConfig) {\n let map: Record<string, string> = {};\n\n for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {\n if (typeof optionConfig.shortName === 'string') {\n map[optionConfig.shortName] = optionName;\n }\n }\n\n return map;\n}\n"],
5
- "mappings": ";AAQO,gBAAS,yBAAyB,eAA8B;AACrE,MAAI,MAA8B,CAAC;AAEnC,WAAS,CAAC,YAAY,YAAY,KAAK,OAAO,QAAQ,aAAa,GAAG;AACpE,QAAI,OAAO,aAAa,cAAc,UAAU;AAC9C,UAAI,aAAa,SAAS,IAAI;AAAA,IAChC;AAAA,EACF;AAEA,SAAO;AACT;",
5
+ "mappings": "AAQO,gBAAS,yBAAyB,eAA8B;AACrE,MAAI,MAA8B,CAAC;AAEnC,WAAS,CAAC,YAAY,YAAY,KAAK,OAAO,QAAQ,aAAa,GAAG;AACpE,QAAI,OAAO,aAAa,cAAc,UAAU;AAC9C,UAAI,aAAa,SAAS,IAAI;AAAA,IAChC;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import { isShortOptionsGroup } from "./isShortOptionsGroup.js";
3
2
  export function expandArguments(argv) {
4
3
  let expandedArguments = [];
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/expandArguments.ts"],
4
4
  "sourcesContent": ["import {type Argv} from '../Argv.js';\nimport {isShortOptionsGroup} from './isShortOptionsGroup.js';\n\n/**\n * Converts short options group in a provided list of arguments into separate short options.\n *\n * @param argv Arguments.\n * @return Arguments that contain no short options group\n */\nexport function expandArguments(argv: Argv): Argv {\n let expandedArguments = [];\n\n for (let arg of argv) {\n if (isShortOptionsGroup(arg)) {\n // eslint-disable-next-line @typescript-eslint/no-misused-spread -- ok in the context of strings that are arguments\n expandedArguments.push(...[...arg].slice(1).map((value) => `-${value}`));\n } else {\n expandedArguments.push(arg);\n }\n }\n\n return expandedArguments;\n}\n"],
5
- "mappings": ";AACA,SAAQ,2BAA0B;AAQ3B,gBAAS,gBAAgB,MAAkB;AAChD,MAAI,oBAAoB,CAAC;AAEzB,WAAS,OAAO,MAAM;AACpB,QAAI,oBAAoB,GAAG,GAAG;AAE5B,wBAAkB,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;AAAA,IACzE,OAAO;AACL,wBAAkB,KAAK,GAAG;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AACT;",
5
+ "mappings": "AACA,SAAQ,2BAA0B;AAQ3B,gBAAS,gBAAgB,MAAkB;AAChD,MAAI,oBAAoB,CAAC;AAEzB,WAAS,OAAO,MAAM;AACpB,QAAI,oBAAoB,GAAG,GAAG;AAE5B,wBAAkB,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;AAAA,IACzE,OAAO;AACL,wBAAkB,KAAK,GAAG;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export const COMMAND_REGEXP = /^(?:[a-z][-a-z0-9]*[a-z])+(?:\s(?:[a-z][-a-z0-9]*[a-z])+)*$/iu;
3
2
  export function isCommand(value) {
4
3
  return COMMAND_REGEXP.test(value);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isCommand.ts"],
4
4
  "sourcesContent": ["export const COMMAND_REGEXP = /^(?:[a-z][-a-z0-9]*[a-z])+(?:\\s(?:[a-z][-a-z0-9]*[a-z])+)*$/iu;\n\n/**\n * A function that checks if a value is an argument that looks like command, i.e. space-separated words consisting only of letters, numbers (but not at the start of the word) or dashes.\n *\n * @param value The value to check.\n * @return `true` if `value` is a command.\n */\nexport function isCommand(value: string): boolean {\n return COMMAND_REGEXP.test(value);\n}\n"],
5
- "mappings": ";AAAO,aAAM,iBAAiB;AAQvB,gBAAS,UAAU,OAAwB;AAChD,SAAO,eAAe,KAAK,KAAK;AAClC;",
5
+ "mappings": "AAAO,aAAM,iBAAiB;AAQvB,gBAAS,UAAU,OAAwB;AAChD,SAAO,eAAe,KAAK,KAAK;AAClC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  const FALSE_STRING_REGEXP = /^\s*(?:false|0|no|off)\s*$/iu;
3
2
  export function isFalseString(value) {
4
3
  return FALSE_STRING_REGEXP.test(value);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isFalseString.ts"],
4
4
  "sourcesContent": ["const FALSE_STRING_REGEXP = /^\\s*(?:false|0|no|off)\\s*$/iu;\n\n/**\n * A function that checks if a string value is a false string. A false string is `'false'`, `'0'`, `'no'`, or `'off'` (case insensitive).\n *\n * @param value The value to be tested.\n * @return `true` if string is a false string. */\nexport function isFalseString(value: string) {\n return FALSE_STRING_REGEXP.test(value);\n}\n"],
5
- "mappings": ";AAAA,MAAM,sBAAsB;AAOrB,gBAAS,cAAc,OAAe;AAC3C,SAAO,oBAAoB,KAAK,KAAK;AACvC;",
5
+ "mappings": "AAAA,MAAM,sBAAsB;AAOrB,gBAAS,cAAc,OAAe;AAC3C,SAAO,oBAAoB,KAAK,KAAK;AACvC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  const LONG_OPTION_REGEXP = /^--[a-z][-a-z0-9]+$/iu;
3
2
  export function isLongOption(arg) {
4
3
  return LONG_OPTION_REGEXP.test(arg);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isLongOption.ts"],
4
4
  "sourcesContent": ["const LONG_OPTION_REGEXP = /^--[a-z][-a-z0-9]+$/iu;\n\n/**\n * A function that checks if a value is an argument that looks like a long option, i.e. two dashes and a single word consisting only of letters, numbers (but not at the start of the word) or dashes; e.g. `'--some-option'`.\n *\n * @param value The value to check.\n * @return `true` if `value` is a long option.\n */\nexport function isLongOption(arg: string): boolean {\n return LONG_OPTION_REGEXP.test(arg);\n}\n"],
5
- "mappings": ";AAAA,MAAM,qBAAqB;AAQpB,gBAAS,aAAa,KAAsB;AACjD,SAAO,mBAAmB,KAAK,GAAG;AACpC;",
5
+ "mappings": "AAAA,MAAM,qBAAqB;AAQpB,gBAAS,aAAa,KAAsB;AACjD,SAAO,mBAAmB,KAAK,GAAG;AACpC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  const OPTION_LIKE = /^-{1,2}[a-z][-a-z0-9]*=?/iu;
3
2
  export function isOptionLike(value) {
4
3
  return OPTION_LIKE.test(value);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isOptionLike.ts"],
4
4
  "sourcesContent": ["const OPTION_LIKE = /^-{1,2}[a-z][-a-z0-9]*=?/iu;\n\n/**\n * A function that checks if a value is an argument that looks like a long option, short option, or a short options group i.e. one or two dashes and a single word consisting only of letters, numbers (but not at the start of the word) or dashes, optionally followed by `=`.\n *\n * @param value The value to check.\n * @return `true` if `value` is an option.\n */\nexport function isOptionLike(value: string): boolean {\n return OPTION_LIKE.test(value);\n}\n"],
5
- "mappings": ";AAAA,MAAM,cAAc;AAQb,gBAAS,aAAa,OAAwB;AACnD,SAAO,YAAY,KAAK,KAAK;AAC/B;",
5
+ "mappings": "AAAA,MAAM,cAAc;AAQb,gBAAS,aAAa,OAAwB;AACnD,SAAO,YAAY,KAAK,KAAK;AAC/B;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  const SHORT_OPTION_REGEXP = /^-[a-z]{1}$/iu;
3
2
  export function isShortOption(arg) {
4
3
  return SHORT_OPTION_REGEXP.test(arg);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isShortOption.ts"],
4
4
  "sourcesContent": ["const SHORT_OPTION_REGEXP = /^-[a-z]{1}$/iu;\n\n/**\n * A function that checks if a value is an argument that looks like a short option, i.e. a dash and a single letter; e.g. `'-x'`.\n *\n * @param value The value to check.\n * @return `true` if `value` is a short option.\n */\nexport function isShortOption(arg: string): boolean {\n return SHORT_OPTION_REGEXP.test(arg);\n}\n"],
5
- "mappings": ";AAAA,MAAM,sBAAsB;AAQrB,gBAAS,cAAc,KAAsB;AAClD,SAAO,oBAAoB,KAAK,GAAG;AACrC;",
5
+ "mappings": "AAAA,MAAM,sBAAsB;AAQrB,gBAAS,cAAc,KAAsB;AAClD,SAAO,oBAAoB,KAAK,GAAG;AACrC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export const SHORT_OPTIONS_GROUP_REGEXP = /^-[a-z]{2,}$/iu;
3
2
  export function isShortOptionsGroup(arg) {
4
3
  return SHORT_OPTIONS_GROUP_REGEXP.test(arg);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isShortOptionsGroup.ts"],
4
4
  "sourcesContent": ["export const SHORT_OPTIONS_GROUP_REGEXP = /^-[a-z]{2,}$/iu;\n\n/**\n * A function that checks if a value is an argument that looks like a short options group, i.e. a dash and a single letter; e.g. `'-x'`.\n *\n * @param value The value to check.\n * @return `true` if `value` is a short option.\n */\nexport function isShortOptionsGroup(arg: string): boolean {\n return SHORT_OPTIONS_GROUP_REGEXP.test(arg);\n}\n"],
5
- "mappings": ";AAAO,aAAM,6BAA6B;AAQnC,gBAAS,oBAAoB,KAAsB;AACxD,SAAO,2BAA2B,KAAK,GAAG;AAC5C;",
5
+ "mappings": "AAAO,aAAM,6BAA6B;AAQnC,gBAAS,oBAAoB,KAAsB;AACxD,SAAO,2BAA2B,KAAK,GAAG;AAC5C;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  const TRUE_STRING_REGEXP = /^\s*(?:true|1|yes|on)\s*$/iu;
3
2
  export function isTrueString(value) {
4
3
  return TRUE_STRING_REGEXP.test(value);
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../source/internals/isTrueString.ts"],
4
4
  "sourcesContent": ["const TRUE_STRING_REGEXP = /^\\s*(?:true|1|yes|on)\\s*$/iu;\n\n/**\n * A function that checks if a string value is a true string. A true string is `'true'`, `'1'`, `'yes'`, or `'on'` (case insensitive).\n *\n * @param value The value to be tested.\n * @return `true` if string is a true string. */\nexport function isTrueString(value: string) {\n return TRUE_STRING_REGEXP.test(value);\n}\n"],
5
- "mappings": ";AAAA,MAAM,qBAAqB;AAOpB,gBAAS,aAAa,OAAe;AAC1C,SAAO,mBAAmB,KAAK,KAAK;AACtC;",
5
+ "mappings": "AAAA,MAAM,qBAAqB;AAOpB,gBAAS,aAAa,OAAe;AAC1C,SAAO,mBAAmB,KAAK,KAAK;AACtC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export * from "./internals/castValue.js";
3
2
  export * from "./internals/Checker.js";
4
3
  export * from "./internals/CommandScope.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../source/internals.ts"],
4
4
  "sourcesContent": ["export * from './internals/castValue.js';\nexport * from './internals/Checker.js';\nexport * from './internals/CommandScope.js';\nexport * from './internals/commandToArguments.js';\nexport * from './internals/createOptionShortNameMap.js';\nexport * from './internals/expandArguments.js';\nexport * from './internals/isCommand.js';\nexport * from './internals/isFalseString.js';\nexport * from './internals/isLongOption.js';\nexport * from './internals/isOptionLike.js';\nexport * from './internals/isShortOption.js';\nexport * from './internals/isShortOptionsGroup.js';\nexport * from './internals/isTrueString.js';\nexport type * from './internals/NormalizedCommandConfig.js';\nexport type * from './internals/NormalizedCommandsConfig.js';\nexport * from './internals/OptionScope.js';\n"],
5
- "mappings": ";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;",
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;",
6
6
  "names": []
7
7
  }
package/build/main.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  export * from "./parseArguments.js";
3
2
  export * from "./ParsingError.js";
4
3
  export * from "./ValidationError.js";
package/build/main.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../source/main.ts"],
4
4
  "sourcesContent": ["export type * from './Arguments.js';\nexport type * from './ArgumentsCommand.js';\nexport type * from './ArgumentsOptions.js';\nexport type * from './ArgumentsParameters.js';\nexport type * from './ArgumentsUnknownOptions.js';\nexport type * from './Argv.js';\nexport type * from './CommandConfig.js';\nexport type * from './CommandsConfig.js';\nexport type * from './LongOptionName.js';\nexport type * from './OptionConfig.js';\nexport type * from './OptionsConfig.js';\nexport type * from './ParameterConfig.js';\nexport type * from './ParametersConfig.js';\nexport * from './parseArguments.js';\nexport type * from './ParserConfig.js';\nexport * from './ParsingError.js';\nexport type * from './ShortOptionName.js';\nexport * from './ValidationError.js';\n"],
5
- "mappings": ";AAaA,cAAc;AAEd,cAAc;AAEd,cAAc;",
5
+ "mappings": "AAaA,cAAc;AAEd,cAAc;AAEd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import {
3
2
  castValue,
4
3
  Checker,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../source/parseArguments.ts"],
4
4
  "sourcesContent": ["import {type Arguments} from './Arguments.js';\nimport {type ArgumentsCommand} from './ArgumentsCommand.js';\nimport {type ArgumentsOptions} from './ArgumentsOptions.js';\nimport {type ArgumentsParameters} from './ArgumentsParameters.js';\nimport {type ArgumentsUnknownOptions} from './ArgumentsUnknownOptions.js';\nimport {type Argv} from './Argv.js';\nimport {\n castValue,\n Checker,\n CommandScope,\n commandToArguments,\n createOptionShortNameMap,\n expandArguments,\n isFalseString,\n isLongOption,\n isOptionLike,\n isShortOption,\n isTrueString,\n type NormalizedCommandsConfig,\n OptionScope,\n} from './internals.js';\nimport {type ParameterConfig} from './ParameterConfig.js';\nimport {type ParserConfig} from './ParserConfig.js';\nimport {ParsingError} from './ParsingError.js';\n\nfunction commitOptionScope(optionScope: OptionScope, parsedOptions: Record<string, unknown>) {\n let optionValue = optionScope.getValue();\n\n parsedOptions[optionScope.name] = optionValue;\n\n if (optionScope.config.validate) {\n optionScope.config.validate(parsedOptions[optionScope.name] as never); // type assertion needed to make TypeScript happy\n }\n}\n\n/**\n * Parses a list of command line arguments into an arguments object. Based on provided parser config, raw arguments can be parsed as commands, options and parameters.\n *\n * @param argv Raw arguments to be parsed.\n * @param parserConfig Parser configuration.\n * @return Parsed arguments.\n *\n */\nexport function parseArguments<const O extends ParserConfig>(\n argv: Argv,\n parserConfig: O,\n): Arguments<O> {\n // create separate configs for commands, parameters and options\n let commandsConfig = parserConfig.commands ?? [];\n let parametersConfig = parserConfig.parameters ?? [];\n let optionsConfig = parserConfig.options ?? {};\n\n // check if parser config is valid\n let checker = new Checker();\n\n checker.checkCommandsConfig(commandsConfig);\n checker.checkParametersConfig(parametersConfig);\n checker.checkOptionsConfig(optionsConfig);\n\n // normalize some configs\n let normalizedCommandsConfig: NormalizedCommandsConfig = commandsConfig.map((command) => ({\n command: command.toLowerCase(),\n args: commandToArguments(command.toLowerCase()),\n }));\n let commandFirstArguments = new Set(\n normalizedCommandsConfig.map((commandConfig) => commandConfig.args[0]),\n );\n let optionShortNameMap =\n parserConfig.options ? createOptionShortNameMap(parserConfig.options) : {};\n\n // variables for keeping track of the parsing\n let parsedCommand: string | undefined;\n let parsedParameters: unknown[] = [];\n let parsedOptions: Record<string, unknown> = {};\n let parsedUnknownOptions: Record<string, unknown> = {};\n let restArgs: string[] = [];\n let optionScope: OptionScope | null = null;\n let commandScope: CommandScope | null = null;\n\n //\n let args = expandArguments(argv);\n\n for (let [i, arg] of args.entries()) {\n // extract rest arguments\n if (arg === '--') {\n restArgs.push(...args.slice(i + 1));\n\n break;\n }\n\n try {\n if (isOptionLike(arg)) {\n // first let's handle options\n\n if (optionScope) {\n commitOptionScope(\n optionScope,\n optionsConfig[optionScope.name] ? parsedOptions : parsedUnknownOptions,\n );\n }\n\n // if there is still unhandled `commandScope`, let's handle its args as parameters...\n if (commandScope) {\n let unhandledArgs = commandScope.getArgs();\n\n for (let unhandledArg of unhandledArgs) {\n if (parserConfig.allowUnknownParameters) {\n // let's handle other parameter\n parsedParameters.push(unhandledArg);\n } else {\n checker.addError(\n new ParsingError('UNKNOWN_PARAMETER', {messageParameters: [unhandledArg]}),\n );\n }\n }\n\n commandScope = null;\n }\n\n let optionName = arg;\n let optionValue;\n\n // Extract option name and value\n if (optionName.includes('=')) {\n let result = optionName.split('=', 2);\n\n if (result[0] && result[1]) {\n [optionName, optionValue] = result;\n }\n }\n\n if (isShortOption(optionName)) {\n let fullOptionName = optionShortNameMap[optionName.slice(1)];\n\n if (typeof fullOptionName === 'string') {\n optionName = fullOptionName;\n }\n } else if (isLongOption(optionName)) {\n optionName = optionName.slice(2);\n }\n\n let newOptionScope = new OptionScope(\n optionName,\n optionsConfig,\n parserConfig.allowUnknownOptions,\n );\n\n if (parsedOptions[newOptionScope.name] !== undefined) {\n if (newOptionScope.config.multiple) {\n newOptionScope.previousParsedValue = parsedOptions[newOptionScope.name];\n } else if (newOptionScope.config.type === 'number' && newOptionScope.config.count) {\n newOptionScope.previousParsedValue = parsedOptions[newOptionScope.name];\n }\n }\n\n if (optionValue !== undefined) {\n newOptionScope.captureArg(optionValue);\n }\n\n if (newOptionScope.isComplete()) {\n commitOptionScope(\n newOptionScope,\n optionsConfig[newOptionScope.name] ? parsedOptions : parsedUnknownOptions,\n );\n\n optionScope = null;\n } else {\n optionScope = newOptionScope;\n }\n } else if (\n optionScope &&\n !(optionScope.config.type === 'boolean' && !optionScope.config.multiple)\n ) {\n // let's handle adding more values to previous option, but not if it's signle boolean option\n\n optionScope.captureArg(arg);\n\n if (optionScope.isComplete()) {\n commitOptionScope(\n optionScope,\n optionsConfig[optionScope.name] ? parsedOptions : parsedUnknownOptions,\n );\n\n optionScope = null;\n }\n } else if (\n optionScope?.config.type === 'boolean' &&\n !optionScope.config.multiple &&\n (isFalseString(arg) || isTrueString(arg))\n ) {\n // we're adding value to a single boolean option only if the value is \"false\" or \"true\" string\n optionScope.captureArg(arg);\n\n if (optionScope.isComplete()) {\n commitOptionScope(\n optionScope,\n optionsConfig[optionScope.name] ? parsedOptions : parsedUnknownOptions,\n );\n\n optionScope = null;\n }\n } else if (commandScope) {\n // let's handle rest of the command\n\n commandScope.captureArg(arg);\n\n if (commandScope.isComplete()) {\n parsedCommand = commandScope.getValue();\n commandScope = null;\n } else if (commandScope.isDone()) {\n let unhandledArgs = commandScope.getArgs();\n\n for (let unhandledArg of unhandledArgs) {\n if (parserConfig.allowUnknownParameters) {\n // let's handle other parameter\n parsedParameters.push(unhandledArg);\n } else {\n checker.addError(\n new ParsingError('UNKNOWN_PARAMETER', {messageParameters: [unhandledArg]}),\n );\n }\n }\n\n commandScope = null;\n }\n } else if (parsedCommand === undefined && commandFirstArguments.has(arg.toLowerCase())) {\n // let's handle command\n\n let newCommandScope = new CommandScope(arg, normalizedCommandsConfig);\n\n if (newCommandScope.isComplete()) {\n parsedCommand = newCommandScope.getValue();\n commandScope = null;\n } else {\n commandScope = newCommandScope;\n }\n } else if (parametersConfig[parsedParameters.length]) {\n // let's handle configured parameter\n let parameterConfig = parametersConfig[parsedParameters.length] as ParameterConfig;\n let parameterValue = castValue(arg, parameterConfig.type);\n\n if (\n parameterConfig.type !== 'boolean' &&\n parameterConfig.choices !== undefined &&\n !parameterConfig.choices.includes(parameterValue as never) // during runtime `parameterValue` has correct type\n ) {\n throw new ParsingError('INVALID_PARAMETER', {\n messageParameters: [\n parameterValue,\n parameterConfig.label ?? parsedParameters.length,\n parameterConfig.choices.map((choice) => `\"${choice}\"`).join(', '),\n ],\n });\n }\n\n parsedParameters.push(parameterValue);\n\n if (parameterConfig.validate) {\n parameterConfig.validate(parameterValue as never); // during runtime `parameterValue` has correct type\n }\n } else if (parserConfig.allowUnknownParameters) {\n // let's handle other parameter\n parsedParameters.push(arg);\n } else {\n throw new ParsingError('UNKNOWN_PARAMETER', {messageParameters: [arg]});\n }\n } catch (error: unknown) {\n optionScope = null;\n commandScope = null;\n\n checker.addError(error as Error);\n }\n }\n\n try {\n if (optionScope) {\n commitOptionScope(\n optionScope,\n optionsConfig[optionScope.name] ? parsedOptions : parsedUnknownOptions,\n );\n }\n\n // if there is still unhandled `commandScope`, let's handle its args as parameters...\n if (commandScope) {\n let unhandledArgs = commandScope.getArgs();\n\n for (let unhandledArg of unhandledArgs) {\n if (parserConfig.allowUnknownParameters) {\n // let's handle other parameter\n parsedParameters.push(unhandledArg);\n } else {\n checker.addError(\n new ParsingError('UNKNOWN_PARAMETER', {messageParameters: [unhandledArg]}),\n );\n }\n }\n }\n\n // if there are missing parsed parameters, add undefined\n for (let [i] of parametersConfig.entries()) {\n if (parsedParameters[i] === undefined) {\n parsedParameters[i] = undefined;\n }\n }\n\n // handle default option values...\n for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {\n if (parsedOptions[optionName] === undefined && optionConfig.defaultValue !== undefined) {\n parsedOptions[optionName] = optionConfig.defaultValue;\n } else if (parsedOptions[optionName] === undefined) {\n parsedOptions[optionName] = undefined;\n }\n }\n\n // handle default parameters values...\n for (let [i, parameterConfig] of parametersConfig.entries()) {\n if (parsedParameters[i] === undefined && parameterConfig.defaultValue !== undefined) {\n parsedParameters[i] = parameterConfig.defaultValue;\n }\n }\n } catch (error: unknown) {\n checker.addError(error as Error);\n }\n\n checker.checkParsedParameters(parametersConfig, parsedParameters);\n checker.checkParsedOptions(optionsConfig, parsedOptions);\n\n return {\n command: (normalizedCommandsConfig.length ? parsedCommand : null) as ArgumentsCommand<O>,\n parameters: (parametersConfig.length || parserConfig.allowUnknownParameters ?\n parsedParameters\n : null) as ArgumentsParameters<O>,\n options: (Object.keys(optionsConfig).length ? parsedOptions : null) as ArgumentsOptions<O>,\n unknownOptions: (parserConfig.allowUnknownOptions ? parsedUnknownOptions : (\n null\n )) as ArgumentsUnknownOptions<O>,\n rest: restArgs,\n errors: checker.errors,\n };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/args",
3
- "version": "2.0.18-unstable.f50b9d9c",
3
+ "version": "2.0.19-next.4df71cb5",
4
4
  "description": "TypeScript-first library for parsing command line arguments.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,9 +17,9 @@
17
17
  "source"
18
18
  ],
19
19
  "scripts": {
20
- "build": "del-cli build tsconfig.tsbuildinfo && esbuild \"source/**/*\" --platform=node --target=node24.3 --outdir=build --sourcemap && tsc",
20
+ "build": "del-cli build tsconfig.tsbuildinfo && esbuild \"source/**/*\" --platform=node --target=node24.21 --outdir=build --sourcemap && tsc",
21
21
  "clean": "del-cli coverage build *.tsbuildinfo",
22
- "develop": "concurrently \"esbuild \"source/**/*\" --platform=node --target=node24.3 --outdir=build --sourcemap --watch\" \"tsc --watch\"",
22
+ "develop": "concurrently \"esbuild \"source/**/*\" --platform=node --target=node24.21 --outdir=build --sourcemap --watch\" \"tsc --watch\"",
23
23
  "document": "del-cli docs && typedoc --options typedoc.config.cjs",
24
24
  "format": "prettier . --write --ignore-unknown",
25
25
  "lint": "eslint .",
@@ -27,29 +27,29 @@
27
27
  "typecheck": "tsc --project tsconfig.typecheck.json"
28
28
  },
29
29
  "dependencies": {
30
- "@jakubmazanec/error": "3.0.18-unstable.f50b9d9c",
31
- "@jakubmazanec/ts-utils": "3.0.19-unstable.f50b9d9c",
30
+ "@jakubmazanec/error": "3.0.19-next.4df71cb5",
31
+ "@jakubmazanec/ts-utils": "3.0.20-next.4df71cb5",
32
32
  "lodash": "^4.18.1"
33
33
  },
34
34
  "devDependencies": {
35
- "@jakubmazanec/eslint-config": "5.0.0-unstable.f50b9d9c",
36
- "@types/lodash": "^4.17.24",
37
- "@types/node": "^24.0.4",
38
- "@vitest/coverage-v8": "^4.1.10",
39
- "concurrently": "^9.2.4",
35
+ "@jakubmazanec/eslint-config": "5.0.1-next.4df71cb5",
36
+ "@types/lodash": "^4.17.25",
37
+ "@types/node": "^24.19.1",
38
+ "@vitest/coverage-v8": "^4.1.11",
39
+ "concurrently": "^10.0.6",
40
40
  "del-cli": "^7.0.0",
41
- "esbuild": "^0.28.1",
42
- "eslint": "^9.39.4",
43
- "prettier": "^3.9.5",
41
+ "esbuild": "^0.28.2",
42
+ "eslint": "^9.39.5",
43
+ "prettier": "^3.9.9",
44
44
  "prettier-plugin-packagejson": "^2.5.22",
45
45
  "typedoc": "^0.28.20",
46
- "typedoc-plugin-markdown": "^4.12.0",
47
- "typescript": "^5.9.3",
48
- "vitest": "^4.1.10"
46
+ "typedoc-plugin-markdown": "^4.13.1",
47
+ "typescript": "^6.0.3",
48
+ "vitest": "^4.1.11"
49
49
  },
50
- "packageManager": "npm@11.3.0",
50
+ "packageManager": "npm@11.21.0",
51
51
  "engines": {
52
- "node": "^24.3.0",
53
- "npm": "^11.3.0"
52
+ "node": "^24.21.0",
53
+ "npm": "^11.21.0"
54
54
  }
55
55
  }