@jakubmazanec/args 2.0.0-unstable.e1ae458 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/build/Arguments.js +2 -0
  2. package/build/Arguments.js.map +7 -0
  3. package/build/ArgumentsCommand.js +2 -0
  4. package/build/ArgumentsCommand.js.map +7 -0
  5. package/{dist → build}/ArgumentsOptions.d.ts +1 -1
  6. package/build/ArgumentsOptions.js +2 -0
  7. package/build/ArgumentsOptions.js.map +7 -0
  8. package/{dist → build}/ArgumentsParameters.d.ts +10 -20
  9. package/build/ArgumentsParameters.js +2 -0
  10. package/build/ArgumentsParameters.js.map +7 -0
  11. package/build/ArgumentsUnknownOptions.js +2 -0
  12. package/build/ArgumentsUnknownOptions.js.map +7 -0
  13. package/build/Argv.js +2 -0
  14. package/build/Argv.js.map +7 -0
  15. package/build/CommandConfig.js +2 -0
  16. package/build/CommandConfig.js.map +7 -0
  17. package/build/CommandsConfig.js +2 -0
  18. package/build/CommandsConfig.js.map +7 -0
  19. package/build/LongOptionName.js +2 -0
  20. package/build/LongOptionName.js.map +7 -0
  21. package/build/OptionConfig.js +2 -0
  22. package/build/OptionConfig.js.map +7 -0
  23. package/build/OptionsConfig.js +2 -0
  24. package/build/OptionsConfig.js.map +7 -0
  25. package/build/ParameterConfig.js +2 -0
  26. package/build/ParameterConfig.js.map +7 -0
  27. package/build/ParametersConfig.js +2 -0
  28. package/build/ParametersConfig.js.map +7 -0
  29. package/build/ParserConfig.js +2 -0
  30. package/build/ParserConfig.js.map +7 -0
  31. package/build/ParsingError.js +9 -0
  32. package/build/ParsingError.js.map +7 -0
  33. package/build/ShortOptionName.js +2 -0
  34. package/build/ShortOptionName.js.map +7 -0
  35. package/build/ValidationError.js +14 -0
  36. package/build/ValidationError.js.map +7 -0
  37. package/build/internals/Checker.js +98 -0
  38. package/build/internals/Checker.js.map +7 -0
  39. package/build/internals/CommandScope.js +44 -0
  40. package/build/internals/CommandScope.js.map +7 -0
  41. package/build/internals/NormalizedCommandConfig.js +2 -0
  42. package/build/internals/NormalizedCommandConfig.js.map +7 -0
  43. package/build/internals/NormalizedCommandsConfig.js +2 -0
  44. package/build/internals/NormalizedCommandsConfig.js.map +7 -0
  45. package/build/internals/OptionScope.js +69 -0
  46. package/build/internals/OptionScope.js.map +7 -0
  47. package/build/internals/castValue.js +17 -0
  48. package/build/internals/castValue.js.map +7 -0
  49. package/build/internals/commandToArguments.js +14 -0
  50. package/build/internals/commandToArguments.js.map +7 -0
  51. package/build/internals/createOptionShortNameMap.js +11 -0
  52. package/build/internals/createOptionShortNameMap.js.map +7 -0
  53. package/build/internals/expandArguments.js +14 -0
  54. package/build/internals/expandArguments.js.map +7 -0
  55. package/build/internals/isCommand.js +6 -0
  56. package/build/internals/isCommand.js.map +7 -0
  57. package/build/internals/isFalseString.js +6 -0
  58. package/build/internals/isFalseString.js.map +7 -0
  59. package/build/internals/isLongOption.js +6 -0
  60. package/build/internals/isLongOption.js.map +7 -0
  61. package/build/internals/isOptionLike.js +6 -0
  62. package/build/internals/isOptionLike.js.map +7 -0
  63. package/build/internals/isShortOption.js +6 -0
  64. package/build/internals/isShortOption.js.map +7 -0
  65. package/build/internals/isShortOptionsGroup.js +6 -0
  66. package/build/internals/isShortOptionsGroup.js.map +7 -0
  67. package/build/internals/isTrueString.js +6 -0
  68. package/build/internals/isTrueString.js.map +7 -0
  69. package/build/internals.js +18 -0
  70. package/build/internals.js.map +7 -0
  71. package/build/main.js +20 -0
  72. package/build/main.js.map +7 -0
  73. package/build/parseArguments.js +236 -0
  74. package/build/parseArguments.js.map +7 -0
  75. package/package.json +25 -14
  76. package/{src → source}/ArgumentsCommand.ts +3 -4
  77. package/source/ArgumentsOptions.ts +82 -0
  78. package/source/ArgumentsParameters.ts +149 -0
  79. package/source/ArgumentsUnknownOptions.ts +5 -0
  80. package/{src → source}/internals/Checker.ts +6 -6
  81. package/{src → source}/internals/OptionScope.ts +1 -1
  82. package/{src → source}/internals/castValue.ts +13 -12
  83. package/{src → source}/internals/commandToArguments.ts +4 -6
  84. package/{src → source}/parseArguments.ts +18 -28
  85. package/dist/Arguments.js +0 -5
  86. package/dist/Arguments.js.map +0 -1
  87. package/dist/ArgumentsCommand.js +0 -3
  88. package/dist/ArgumentsCommand.js.map +0 -1
  89. package/dist/ArgumentsOptions.js +0 -3
  90. package/dist/ArgumentsOptions.js.map +0 -1
  91. package/dist/ArgumentsParameters.js +0 -3
  92. package/dist/ArgumentsParameters.js.map +0 -1
  93. package/dist/ArgumentsUnknownOptions.js +0 -3
  94. package/dist/ArgumentsUnknownOptions.js.map +0 -1
  95. package/dist/Argv.js +0 -3
  96. package/dist/Argv.js.map +0 -1
  97. package/dist/CommandConfig.js +0 -3
  98. package/dist/CommandConfig.js.map +0 -1
  99. package/dist/CommandsConfig.js +0 -3
  100. package/dist/CommandsConfig.js.map +0 -1
  101. package/dist/LongOptionName.js +0 -3
  102. package/dist/LongOptionName.js.map +0 -1
  103. package/dist/OptionConfig.js +0 -3
  104. package/dist/OptionConfig.js.map +0 -1
  105. package/dist/OptionsConfig.js +0 -3
  106. package/dist/OptionsConfig.js.map +0 -1
  107. package/dist/ParameterConfig.js +0 -3
  108. package/dist/ParameterConfig.js.map +0 -1
  109. package/dist/ParametersConfig.js +0 -3
  110. package/dist/ParametersConfig.js.map +0 -1
  111. package/dist/ParserConfig.js +0 -3
  112. package/dist/ParserConfig.js.map +0 -1
  113. package/dist/ParsingError.js +0 -11
  114. package/dist/ParsingError.js.map +0 -1
  115. package/dist/ShortOptionName.js +0 -3
  116. package/dist/ShortOptionName.js.map +0 -1
  117. package/dist/ValidationError.js +0 -16
  118. package/dist/ValidationError.js.map +0 -1
  119. package/dist/internals/Checker.js +0 -115
  120. package/dist/internals/Checker.js.map +0 -1
  121. package/dist/internals/CommandScope.js +0 -48
  122. package/dist/internals/CommandScope.js.map +0 -1
  123. package/dist/internals/NormalizedCommandConfig.js +0 -3
  124. package/dist/internals/NormalizedCommandConfig.js.map +0 -1
  125. package/dist/internals/NormalizedCommandsConfig.js +0 -3
  126. package/dist/internals/NormalizedCommandsConfig.js.map +0 -1
  127. package/dist/internals/OptionScope.js +0 -87
  128. package/dist/internals/OptionScope.js.map +0 -1
  129. package/dist/internals/castValue.js +0 -25
  130. package/dist/internals/castValue.js.map +0 -1
  131. package/dist/internals/commandToArguments.js +0 -21
  132. package/dist/internals/commandToArguments.js.map +0 -1
  133. package/dist/internals/createOptionShortNameMap.js +0 -16
  134. package/dist/internals/createOptionShortNameMap.js.map +0 -1
  135. package/dist/internals/expandArguments.js +0 -21
  136. package/dist/internals/expandArguments.js.map +0 -1
  137. package/dist/internals/isCommand.js +0 -11
  138. package/dist/internals/isCommand.js.map +0 -1
  139. package/dist/internals/isFalseString.js +0 -10
  140. package/dist/internals/isFalseString.js.map +0 -1
  141. package/dist/internals/isLongOption.js +0 -11
  142. package/dist/internals/isLongOption.js.map +0 -1
  143. package/dist/internals/isOptionLike.js +0 -11
  144. package/dist/internals/isOptionLike.js.map +0 -1
  145. package/dist/internals/isShortOption.js +0 -11
  146. package/dist/internals/isShortOption.js.map +0 -1
  147. package/dist/internals/isShortOptionsGroup.js +0 -11
  148. package/dist/internals/isShortOptionsGroup.js.map +0 -1
  149. package/dist/internals/isTrueString.js +0 -10
  150. package/dist/internals/isTrueString.js.map +0 -1
  151. package/dist/internals.js +0 -18
  152. package/dist/internals.js.map +0 -1
  153. package/dist/main.js +0 -20
  154. package/dist/main.js.map +0 -1
  155. package/dist/parseArguments.js +0 -244
  156. package/dist/parseArguments.js.map +0 -1
  157. package/src/ArgumentsOptions.ts +0 -89
  158. package/src/ArgumentsParameters.ts +0 -158
  159. package/src/ArgumentsUnknownOptions.ts +0 -6
  160. /package/{dist → build}/Arguments.d.ts +0 -0
  161. /package/{dist → build}/ArgumentsCommand.d.ts +0 -0
  162. /package/{dist → build}/ArgumentsUnknownOptions.d.ts +0 -0
  163. /package/{dist → build}/Argv.d.ts +0 -0
  164. /package/{dist → build}/CommandConfig.d.ts +0 -0
  165. /package/{dist → build}/CommandsConfig.d.ts +0 -0
  166. /package/{dist → build}/LongOptionName.d.ts +0 -0
  167. /package/{dist → build}/OptionConfig.d.ts +0 -0
  168. /package/{dist → build}/OptionsConfig.d.ts +0 -0
  169. /package/{dist → build}/ParameterConfig.d.ts +0 -0
  170. /package/{dist → build}/ParametersConfig.d.ts +0 -0
  171. /package/{dist → build}/ParserConfig.d.ts +0 -0
  172. /package/{dist → build}/ParsingError.d.ts +0 -0
  173. /package/{dist → build}/ShortOptionName.d.ts +0 -0
  174. /package/{dist → build}/ValidationError.d.ts +0 -0
  175. /package/{dist → build}/internals/Checker.d.ts +0 -0
  176. /package/{dist → build}/internals/CommandScope.d.ts +0 -0
  177. /package/{dist → build}/internals/NormalizedCommandConfig.d.ts +0 -0
  178. /package/{dist → build}/internals/NormalizedCommandsConfig.d.ts +0 -0
  179. /package/{dist → build}/internals/OptionScope.d.ts +0 -0
  180. /package/{dist → build}/internals/castValue.d.ts +0 -0
  181. /package/{dist → build}/internals/commandToArguments.d.ts +0 -0
  182. /package/{dist → build}/internals/createOptionShortNameMap.d.ts +0 -0
  183. /package/{dist → build}/internals/expandArguments.d.ts +0 -0
  184. /package/{dist → build}/internals/isCommand.d.ts +0 -0
  185. /package/{dist → build}/internals/isFalseString.d.ts +0 -0
  186. /package/{dist → build}/internals/isLongOption.d.ts +0 -0
  187. /package/{dist → build}/internals/isOptionLike.d.ts +0 -0
  188. /package/{dist → build}/internals/isShortOption.d.ts +0 -0
  189. /package/{dist → build}/internals/isShortOptionsGroup.d.ts +0 -0
  190. /package/{dist → build}/internals/isTrueString.d.ts +0 -0
  191. /package/{dist → build}/internals.d.ts +0 -0
  192. /package/{dist → build}/main.d.ts +0 -0
  193. /package/{dist → build}/parseArguments.d.ts +0 -0
  194. /package/{src → source}/Arguments.ts +0 -0
  195. /package/{src → source}/Argv.ts +0 -0
  196. /package/{src → source}/CommandConfig.ts +0 -0
  197. /package/{src → source}/CommandsConfig.ts +0 -0
  198. /package/{src → source}/LongOptionName.ts +0 -0
  199. /package/{src → source}/OptionConfig.ts +0 -0
  200. /package/{src → source}/OptionsConfig.ts +0 -0
  201. /package/{src → source}/ParameterConfig.ts +0 -0
  202. /package/{src → source}/ParametersConfig.ts +0 -0
  203. /package/{src → source}/ParserConfig.ts +0 -0
  204. /package/{src → source}/ParsingError.ts +0 -0
  205. /package/{src → source}/ShortOptionName.ts +0 -0
  206. /package/{src → source}/ValidationError.ts +0 -0
  207. /package/{src → source}/internals/CommandScope.ts +0 -0
  208. /package/{src → source}/internals/NormalizedCommandConfig.ts +0 -0
  209. /package/{src → source}/internals/NormalizedCommandsConfig.ts +0 -0
  210. /package/{src → source}/internals/createOptionShortNameMap.ts +0 -0
  211. /package/{src → source}/internals/expandArguments.ts +0 -0
  212. /package/{src → source}/internals/isCommand.ts +0 -0
  213. /package/{src → source}/internals/isFalseString.ts +0 -0
  214. /package/{src → source}/internals/isLongOption.ts +0 -0
  215. /package/{src → source}/internals/isOptionLike.ts +0 -0
  216. /package/{src → source}/internals/isShortOption.ts +0 -0
  217. /package/{src → source}/internals/isShortOptionsGroup.ts +0 -0
  218. /package/{src → source}/internals/isTrueString.ts +0 -0
  219. /package/{src → source}/internals.ts +0 -0
  220. /package/{src → source}/main.ts +0 -0
@@ -1,8 +1,7 @@
1
1
  import {type ParserConfig} from './ParserConfig.js';
2
2
 
3
3
  /** Parsed command. */
4
- export type ArgumentsCommand<O extends ParserConfig> = Omit<O, 'commands'> extends O
5
- ? null
6
- : O['commands'] extends undefined
7
- ? null
4
+ export type ArgumentsCommand<O extends ParserConfig> =
5
+ Omit<O, 'commands'> extends O ? null
6
+ : O['commands'] extends undefined ? null
8
7
  : Lowercase<NonNullable<O['commands']>[number]> | undefined;
@@ -0,0 +1,82 @@
1
+ import {type TupleToUnion} from '@jakubmazanec/ts-utils';
2
+
3
+ import {
4
+ type BooleanOptionConfig,
5
+ type BooleansOptionConfig,
6
+ type CountOptionConfig,
7
+ type NumberOptionConfig,
8
+ type NumbersOptionConfig,
9
+ type OptionConfig,
10
+ type StringOptionConfig,
11
+ type StringsOptionConfig,
12
+ } from './OptionConfig.js';
13
+ import {type OptionsConfig} from './OptionsConfig.js';
14
+ import {type ParserConfig} from './ParserConfig.js';
15
+
16
+ type BooleanOptionConfigToArgumentsOption<O extends BooleanOptionConfig | BooleansOptionConfig> =
17
+ O extends BooleanOptionConfig ?
18
+ O['defaultValue'] extends boolean ?
19
+ boolean
20
+ : boolean | undefined
21
+ : O extends BooleansOptionConfig ?
22
+ O['defaultValue'] extends readonly boolean[] ?
23
+ boolean[]
24
+ : boolean[] | undefined
25
+ : never;
26
+
27
+ type NumberOptionConfigToArgumentsOption<
28
+ O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig,
29
+ > =
30
+ O extends NumbersOptionConfig ?
31
+ O['choices'] extends readonly number[] ?
32
+ O['defaultValue'] extends readonly number[] ?
33
+ Array<TupleToUnion<O['choices']>>
34
+ : Array<TupleToUnion<O['choices']>> | undefined
35
+ : O['defaultValue'] extends readonly number[] ? number[]
36
+ : number[] | undefined
37
+ : O extends NumberOptionConfig ?
38
+ O['choices'] extends readonly number[] ?
39
+ O['defaultValue'] extends number ?
40
+ TupleToUnion<O['choices']>
41
+ : TupleToUnion<O['choices']> | undefined
42
+ : O['defaultValue'] extends number ? number
43
+ : number | undefined
44
+ : O extends CountOptionConfig ?
45
+ O['defaultValue'] extends number ?
46
+ number
47
+ : number | undefined
48
+ : never;
49
+
50
+ type StringOptionConfigToArgumentsOption<O extends StringOptionConfig | StringsOptionConfig> =
51
+ O extends StringsOptionConfig ?
52
+ O['choices'] extends readonly string[] ?
53
+ O['defaultValue'] extends readonly string[] ?
54
+ Array<TupleToUnion<O['choices']>>
55
+ : Array<TupleToUnion<O['choices']>> | undefined
56
+ : O['defaultValue'] extends readonly string[] ? string[]
57
+ : string[] | undefined
58
+ : O extends StringOptionConfig ?
59
+ O['choices'] extends readonly string[] ?
60
+ O['defaultValue'] extends string ?
61
+ TupleToUnion<O['choices']>
62
+ : TupleToUnion<O['choices']> | undefined
63
+ : O['defaultValue'] extends string ? string
64
+ : string | undefined
65
+ : never;
66
+
67
+ type OptionConfigToArgumentOption<O extends OptionConfig> =
68
+ O extends BooleanOptionConfig | BooleansOptionConfig ? BooleanOptionConfigToArgumentsOption<O>
69
+ : O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig ?
70
+ NumberOptionConfigToArgumentsOption<O>
71
+ : O extends StringOptionConfig | StringsOptionConfig ? StringOptionConfigToArgumentsOption<O>
72
+ : never;
73
+
74
+ type OptionsConfigToArgumentsOptions<O extends OptionsConfig> = {
75
+ [K in keyof O]: OptionConfigToArgumentOption<O[K]>;
76
+ };
77
+
78
+ /** Parsed options. */
79
+ export type ArgumentsOptions<O extends ParserConfig> =
80
+ Omit<O, 'options'> extends O ? null
81
+ : O['options'] extends undefined ? null
82
+ : OptionsConfigToArgumentsOptions<NonNullable<O['options']>>;
@@ -0,0 +1,149 @@
1
+ import {type TupleToUnion} from '@jakubmazanec/ts-utils';
2
+
3
+ import {
4
+ type BooleanParameterConfig,
5
+ type NumberParameterConfig,
6
+ type ParameterConfig,
7
+ type StringParameterConfig,
8
+ } from './ParameterConfig.js';
9
+ import {type ParametersConfig} from './ParametersConfig.js';
10
+ import {type ParserConfig} from './ParserConfig.js';
11
+
12
+ type NumberParameterConfigToArgumentsParameter<O extends NumberParameterConfig> =
13
+ O['choices'] extends readonly number[] ?
14
+ O['defaultValue'] extends number ?
15
+ TupleToUnion<O['choices']>
16
+ : TupleToUnion<O['choices']> | undefined
17
+ : O['defaultValue'] extends number ? number
18
+ : number | undefined;
19
+
20
+ type StringParameterConfigToArgumentsParameter<O extends StringParameterConfig> =
21
+ O['choices'] extends readonly string[] ?
22
+ O['defaultValue'] extends string ?
23
+ TupleToUnion<O['choices']>
24
+ : TupleToUnion<O['choices']> | undefined
25
+ : O['defaultValue'] extends string ? string
26
+ : string | undefined;
27
+
28
+ type BooleanParameterConfigToArgumentsParameter<O extends BooleanParameterConfig> =
29
+ O['defaultValue'] extends boolean ? boolean : boolean | undefined;
30
+
31
+ type ParameterConfigToArgumentsParameter<O extends ParameterConfig> =
32
+ O extends NumberParameterConfig ? NumberParameterConfigToArgumentsParameter<O>
33
+ : O extends StringParameterConfig ? StringParameterConfigToArgumentsParameter<O>
34
+ : O extends BooleanParameterConfig ? BooleanParameterConfigToArgumentsParameter<O>
35
+ : never;
36
+
37
+ type ParametersConfigToArgumentsParameters<O extends ParametersConfig> =
38
+ O extends (
39
+ readonly [
40
+ ParameterConfig,
41
+ ParameterConfig,
42
+ ParameterConfig,
43
+ ParameterConfig,
44
+ ParameterConfig,
45
+ ParameterConfig,
46
+ ]
47
+ ) ?
48
+ readonly [
49
+ ParameterConfigToArgumentsParameter<O[0]>,
50
+ ParameterConfigToArgumentsParameter<O[1]>,
51
+ ParameterConfigToArgumentsParameter<O[2]>,
52
+ ParameterConfigToArgumentsParameter<O[3]>,
53
+ ParameterConfigToArgumentsParameter<O[4]>,
54
+ ParameterConfigToArgumentsParameter<O[5]>,
55
+ ]
56
+ : O extends (
57
+ readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]
58
+ ) ?
59
+ readonly [
60
+ ParameterConfigToArgumentsParameter<O[0]>,
61
+ ParameterConfigToArgumentsParameter<O[1]>,
62
+ ParameterConfigToArgumentsParameter<O[2]>,
63
+ ParameterConfigToArgumentsParameter<O[3]>,
64
+ ParameterConfigToArgumentsParameter<O[4]>,
65
+ ]
66
+ : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] ?
67
+ readonly [
68
+ ParameterConfigToArgumentsParameter<O[0]>,
69
+ ParameterConfigToArgumentsParameter<O[1]>,
70
+ ParameterConfigToArgumentsParameter<O[2]>,
71
+ ParameterConfigToArgumentsParameter<O[3]>,
72
+ ]
73
+ : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig] ?
74
+ readonly [
75
+ ParameterConfigToArgumentsParameter<O[0]>,
76
+ ParameterConfigToArgumentsParameter<O[1]>,
77
+ ParameterConfigToArgumentsParameter<O[2]>,
78
+ ]
79
+ : O extends readonly [ParameterConfig, ParameterConfig] ?
80
+ readonly [ParameterConfigToArgumentsParameter<O[0]>, ParameterConfigToArgumentsParameter<O[1]>]
81
+ : O extends readonly [ParameterConfig] ? readonly [ParameterConfigToArgumentsParameter<O[0]>]
82
+ : never;
83
+
84
+ type ParametersConfigToVariadicArgumentsParameters<O extends ParametersConfig> =
85
+ O extends (
86
+ readonly [
87
+ ParameterConfig,
88
+ ParameterConfig,
89
+ ParameterConfig,
90
+ ParameterConfig,
91
+ ParameterConfig,
92
+ ParameterConfig,
93
+ ]
94
+ ) ?
95
+ readonly [
96
+ ParameterConfigToArgumentsParameter<O[0]>,
97
+ ParameterConfigToArgumentsParameter<O[1]>,
98
+ ParameterConfigToArgumentsParameter<O[2]>,
99
+ ParameterConfigToArgumentsParameter<O[3]>,
100
+ ParameterConfigToArgumentsParameter<O[4]>,
101
+ ParameterConfigToArgumentsParameter<O[5]>,
102
+ ...(readonly string[]),
103
+ ]
104
+ : O extends (
105
+ readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]
106
+ ) ?
107
+ readonly [
108
+ ParameterConfigToArgumentsParameter<O[0]>,
109
+ ParameterConfigToArgumentsParameter<O[1]>,
110
+ ParameterConfigToArgumentsParameter<O[2]>,
111
+ ParameterConfigToArgumentsParameter<O[3]>,
112
+ ParameterConfigToArgumentsParameter<O[4]>,
113
+ ...(readonly string[]),
114
+ ]
115
+ : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] ?
116
+ readonly [
117
+ ParameterConfigToArgumentsParameter<O[0]>,
118
+ ParameterConfigToArgumentsParameter<O[1]>,
119
+ ParameterConfigToArgumentsParameter<O[2]>,
120
+ ParameterConfigToArgumentsParameter<O[3]>,
121
+ ...(readonly string[]),
122
+ ]
123
+ : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig] ?
124
+ readonly [
125
+ ParameterConfigToArgumentsParameter<O[0]>,
126
+ ParameterConfigToArgumentsParameter<O[1]>,
127
+ ParameterConfigToArgumentsParameter<O[2]>,
128
+ ...(readonly string[]),
129
+ ]
130
+ : O extends readonly [ParameterConfig, ParameterConfig] ?
131
+ readonly [
132
+ ParameterConfigToArgumentsParameter<O[0]>,
133
+ ParameterConfigToArgumentsParameter<O[1]>,
134
+ ...(readonly string[]),
135
+ ]
136
+ : O extends readonly [ParameterConfig] ?
137
+ readonly [ParameterConfigToArgumentsParameter<O[0]>, ...(readonly string[])]
138
+ : readonly [...(readonly string[])];
139
+
140
+ /** Parsed parameters. */
141
+ export type ArgumentsParameters<O extends ParserConfig> =
142
+ Omit<O, 'parameters'> extends O ?
143
+ O['allowUnknownParameters'] extends true ?
144
+ [...string[]]
145
+ : null
146
+ : O['parameters'] extends undefined ? null
147
+ : O['allowUnknownParameters'] extends true ?
148
+ ParametersConfigToVariadicArgumentsParameters<NonNullable<O['parameters']>>
149
+ : ParametersConfigToArgumentsParameters<NonNullable<O['parameters']>>;
@@ -0,0 +1,5 @@
1
+ import {type ParserConfig} from './ParserConfig.js';
2
+
3
+ /** Unknown options. Unknown options are always parsed as strings. */
4
+ export type ArgumentsUnknownOptions<O extends ParserConfig> =
5
+ O['allowUnknownOptions'] extends true ? Record<string, unknown> : null;
@@ -25,7 +25,7 @@ export class Checker {
25
25
  if (
26
26
  parameterConfig.type !== 'boolean' &&
27
27
  parameterConfig.choices && // default values and chocies do not contradict each other
28
- typeof parameterConfig.defaultValue !== 'undefined' &&
28
+ parameterConfig.defaultValue !== undefined &&
29
29
  !parameterConfig.choices.includes(parameterConfig.defaultValue as never)
30
30
  ) {
31
31
  this.addError(
@@ -44,7 +44,7 @@ export class Checker {
44
44
  .every(
45
45
  (previousParameterConfig) =>
46
46
  previousParameterConfig.required === true ||
47
- typeof previousParameterConfig.defaultValue !== 'undefined',
47
+ previousParameterConfig.defaultValue !== undefined,
48
48
  )
49
49
  ) {
50
50
  this.addError(
@@ -85,7 +85,7 @@ export class Checker {
85
85
  (optionConfig.type === 'string' ||
86
86
  (optionConfig.type === 'number' && !optionConfig.count)) &&
87
87
  optionConfig.choices &&
88
- typeof optionConfig.defaultValue !== 'undefined' &&
88
+ optionConfig.defaultValue !== undefined &&
89
89
  !optionConfig.choices.includes(optionConfig.defaultValue as never)
90
90
  ) {
91
91
  this.addError(
@@ -102,7 +102,7 @@ export class Checker {
102
102
  let parsedParameter = parsedParameters[i];
103
103
 
104
104
  // required parameters must have value
105
- if (parameterConfig.required === true && typeof parsedParameter === 'undefined') {
105
+ if (parameterConfig.required === true && parsedParameter === undefined) {
106
106
  this.addError(
107
107
  new ValidationError('MISSING_PARAMETER', {
108
108
  messageParameters: [parameterConfig.label ?? i],
@@ -117,7 +117,7 @@ export class Checker {
117
117
  let parsedOption = parsedOptions[optionName];
118
118
 
119
119
  // check required
120
- if (optionConfig.required && typeof parsedOption === 'undefined') {
120
+ if (optionConfig.required && parsedOption === undefined) {
121
121
  this.addError(
122
122
  new ValidationError('MISSING_OPTION', {
123
123
  messageParameters: [optionName],
@@ -127,7 +127,7 @@ export class Checker {
127
127
 
128
128
  // check arity
129
129
  if (
130
- typeof parsedOption !== 'undefined' &&
130
+ parsedOption !== undefined &&
131
131
  ((optionConfig.type === 'string' && optionConfig.multiple) ||
132
132
  (optionConfig.type === 'number' && optionConfig.multiple)) &&
133
133
  typeof optionConfig.arity === 'number' &&
@@ -43,7 +43,7 @@ export class OptionScope {
43
43
 
44
44
  if (
45
45
  ((this.config.type === 'number' && !this.config.count) || this.config.type === 'string') &&
46
- typeof this.config.choices !== 'undefined' &&
46
+ this.config.choices !== undefined &&
47
47
  !this.config.choices.includes(value as never)
48
48
  ) {
49
49
  throw new ParsingError('INVALID_OPTION', {
@@ -9,28 +9,29 @@ import {isFalseString} from './isFalseString.js';
9
9
  export function castValue<T extends 'boolean' | 'number' | 'string'>(
10
10
  value: string,
11
11
  type?: T,
12
- ): T extends 'boolean' ? boolean : T extends 'number' ? number : string {
12
+ ): T extends 'boolean' ? boolean
13
+ : T extends 'number' ? number
14
+ : string {
13
15
  switch (type) {
14
16
  case 'boolean': {
15
17
  let booleanString = String(value).toLowerCase();
16
18
 
17
- return !(isFalseString(booleanString) || booleanString === '') as T extends 'boolean'
18
- ? boolean
19
- : T extends 'number'
20
- ? number
21
- : string;
19
+ return !(isFalseString(booleanString) || booleanString === '') as T extends 'boolean' ?
20
+ boolean
21
+ : T extends 'number' ? number
22
+ : string;
22
23
  }
23
24
 
24
25
  case 'number': {
25
- return Number.parseFloat(value) as T extends 'boolean'
26
- ? boolean
27
- : T extends 'number'
28
- ? number
29
- : string;
26
+ return Number.parseFloat(value) as T extends 'boolean' ? boolean
27
+ : T extends 'number' ? number
28
+ : string;
30
29
  }
31
30
 
32
31
  default: {
33
- return String(value) as T extends 'boolean' ? boolean : T extends 'number' ? number : string;
32
+ return String(value) as T extends 'boolean' ? boolean
33
+ : T extends 'number' ? number
34
+ : string;
34
35
  }
35
36
  }
36
37
  }
@@ -9,12 +9,10 @@ export function commandToArguments(value: string): string[] {
9
9
  let args: string[] = [];
10
10
 
11
11
  for (let [, rawValue] of rawArgs.entries()) {
12
- if (typeof rawValue !== 'undefined') {
13
- if (rawValue === '' && args.at(-1)) {
14
- args[args.length - 1] += ' ';
15
- } else {
16
- args.push(rawValue);
17
- }
12
+ if (rawValue === '' && args.at(-1)) {
13
+ args[args.length - 1] += ' ';
14
+ } else {
15
+ args.push(rawValue);
18
16
  }
19
17
  }
20
18
 
@@ -66,12 +66,11 @@ export function parseArguments<const O extends ParserConfig>(
66
66
  command: command.toLowerCase(),
67
67
  args: commandToArguments(command.toLowerCase()),
68
68
  }));
69
- let commandFirstArguments = normalizedCommandsConfig.map(
70
- (commandConfig) => commandConfig.args[0],
69
+ let commandFirstArguments = new Set(
70
+ normalizedCommandsConfig.map((commandConfig) => commandConfig.args[0]),
71
71
  );
72
- let optionShortNameMap = parserConfig.options
73
- ? createOptionShortNameMap(parserConfig.options)
74
- : {};
72
+ let optionShortNameMap =
73
+ parserConfig.options ? createOptionShortNameMap(parserConfig.options) : {};
75
74
 
76
75
  // variables for keeping track of the parsing
77
76
  let parsedCommand: string | undefined;
@@ -151,7 +150,7 @@ export function parseArguments<const O extends ParserConfig>(
151
150
  parserConfig.allowUnknownOptions,
152
151
  );
153
152
 
154
- if (typeof parsedOptions[newOptionScope.name] !== 'undefined') {
153
+ if (parsedOptions[newOptionScope.name] !== undefined) {
155
154
  if (newOptionScope.config.multiple) {
156
155
  newOptionScope.previousParsedValue = parsedOptions[newOptionScope.name];
157
156
  } else if (newOptionScope.config.type === 'number' && newOptionScope.config.count) {
@@ -159,7 +158,7 @@ export function parseArguments<const O extends ParserConfig>(
159
158
  }
160
159
  }
161
160
 
162
- if (typeof optionValue !== 'undefined') {
161
+ if (optionValue !== undefined) {
163
162
  newOptionScope.captureArg(optionValue);
164
163
  }
165
164
 
@@ -230,10 +229,7 @@ export function parseArguments<const O extends ParserConfig>(
230
229
 
231
230
  commandScope = null;
232
231
  }
233
- } else if (
234
- typeof parsedCommand === 'undefined' &&
235
- commandFirstArguments.includes(arg.toLowerCase())
236
- ) {
232
+ } else if (parsedCommand === undefined && commandFirstArguments.has(arg.toLowerCase())) {
237
233
  // let's handle command
238
234
 
239
235
  let newCommandScope = new CommandScope(arg, normalizedCommandsConfig);
@@ -251,7 +247,7 @@ export function parseArguments<const O extends ParserConfig>(
251
247
 
252
248
  if (
253
249
  parameterConfig.type !== 'boolean' &&
254
- typeof parameterConfig.choices !== 'undefined' &&
250
+ parameterConfig.choices !== undefined &&
255
251
  !parameterConfig.choices.includes(parameterValue as never) // during runtime `parameterValue` has correct type
256
252
  ) {
257
253
  throw new ParsingError('INVALID_PARAMETER', {
@@ -308,29 +304,23 @@ export function parseArguments<const O extends ParserConfig>(
308
304
 
309
305
  // if there are missing parsed parameters, add undefined
310
306
  for (let [i] of parametersConfig.entries()) {
311
- if (typeof parsedParameters[i] === 'undefined') {
307
+ if (parsedParameters[i] === undefined) {
312
308
  parsedParameters[i] = undefined;
313
309
  }
314
310
  }
315
311
 
316
312
  // handle default option values...
317
313
  for (let [optionName, optionConfig] of Object.entries(optionsConfig)) {
318
- if (
319
- typeof parsedOptions[optionName] === 'undefined' &&
320
- typeof optionConfig.defaultValue !== 'undefined'
321
- ) {
314
+ if (parsedOptions[optionName] === undefined && optionConfig.defaultValue !== undefined) {
322
315
  parsedOptions[optionName] = optionConfig.defaultValue;
323
- } else if (typeof parsedOptions[optionName] === 'undefined') {
316
+ } else if (parsedOptions[optionName] === undefined) {
324
317
  parsedOptions[optionName] = undefined;
325
318
  }
326
319
  }
327
320
 
328
321
  // handle default parameters values...
329
322
  for (let [i, parameterConfig] of parametersConfig.entries()) {
330
- if (
331
- typeof parsedParameters[i] === 'undefined' &&
332
- typeof parameterConfig.defaultValue !== 'undefined'
333
- ) {
323
+ if (parsedParameters[i] === undefined && parameterConfig.defaultValue !== undefined) {
334
324
  parsedParameters[i] = parameterConfig.defaultValue;
335
325
  }
336
326
  }
@@ -343,13 +333,13 @@ export function parseArguments<const O extends ParserConfig>(
343
333
 
344
334
  return {
345
335
  command: (normalizedCommandsConfig.length ? parsedCommand : null) as ArgumentsCommand<O>,
346
- parameters: (parametersConfig.length || parserConfig.allowUnknownParameters
347
- ? parsedParameters
348
- : null) as ArgumentsParameters<O>,
336
+ parameters: (parametersConfig.length || parserConfig.allowUnknownParameters ?
337
+ parsedParameters
338
+ : null) as ArgumentsParameters<O>,
349
339
  options: (Object.keys(optionsConfig).length ? parsedOptions : null) as ArgumentsOptions<O>,
350
- unknownOptions: (parserConfig.allowUnknownOptions
351
- ? parsedUnknownOptions
352
- : null) as ArgumentsUnknownOptions<O>,
340
+ unknownOptions: (parserConfig.allowUnknownOptions ? parsedUnknownOptions : (
341
+ null
342
+ )) as ArgumentsUnknownOptions<O>,
353
343
  rest: restArgs,
354
344
  errors: checker.errors,
355
345
  };
package/dist/Arguments.js DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Parsed arguments.
3
- */ export { };
4
-
5
- //# sourceMappingURL=Arguments.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Arguments.ts"],"sourcesContent":["import {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 ParserConfig} from './ParserConfig.js';\n\n/**\n * Parsed arguments.\n */\nexport type Arguments<T extends ParserConfig> = {\n /** Parsed command. */\n readonly command: ArgumentsCommand<T>;\n\n /** Parsed parameters. */\n readonly parameters: ArgumentsParameters<T>;\n\n /** Parsed options. */\n readonly options: ArgumentsOptions<T>;\n\n /** Unconfigured options. */\n readonly unknownOptions: ArgumentsUnknownOptions<T>;\n\n /** Arguments that appear after \"--\". */\n readonly rest: string[];\n\n /** Parsing and validation rrors */\n readonly errors: Error[];\n};\n"],"names":[],"mappings":"AAMA;;CAEC,GACD,WAkBE"}
@@ -1,3 +0,0 @@
1
- /** Parsed command. */ export { };
2
-
3
- //# sourceMappingURL=ArgumentsCommand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ArgumentsCommand.ts"],"sourcesContent":["import {type ParserConfig} from './ParserConfig.js';\n\n/** Parsed command. */\nexport type ArgumentsCommand<O extends ParserConfig> = Omit<O, 'commands'> extends O\n ? null\n : O['commands'] extends undefined\n ? null\n : Lowercase<NonNullable<O['commands']>[number]> | undefined;\n"],"names":[],"mappings":"AAEA,oBAAoB,GACpB,WAI8D"}
@@ -1,3 +0,0 @@
1
- /** Parsed options. */ export { };
2
-
3
- //# sourceMappingURL=ArgumentsOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ArgumentsOptions.ts"],"sourcesContent":["import {type TupleToUnion} from '@jakubmazanec/ts-utils';\n\nimport {\n type CountOptionConfig,\n type BooleansOptionConfig,\n type NumbersOptionConfig,\n type StringsOptionConfig,\n type OptionConfig,\n type BooleanOptionConfig,\n type NumberOptionConfig,\n type StringOptionConfig,\n} from './OptionConfig.js';\nimport {type OptionsConfig} from './OptionsConfig.js';\nimport {type ParserConfig} from './ParserConfig.js';\n\ntype BooleanOptionConfigToArgumentsOption<O extends BooleanOptionConfig | BooleansOptionConfig> =\n O extends BooleanOptionConfig\n ? O['defaultValue'] extends boolean\n ? boolean\n : boolean | undefined\n : O extends BooleansOptionConfig\n ? O['defaultValue'] extends readonly boolean[]\n ? boolean[]\n : boolean[] | undefined\n : never;\n\ntype NumberOptionConfigToArgumentsOption<\n O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig,\n> = O extends NumbersOptionConfig\n ? O['choices'] extends readonly number[]\n ? O['defaultValue'] extends readonly number[]\n ? Array<TupleToUnion<O['choices']>>\n : Array<TupleToUnion<O['choices']>> | undefined\n : O['defaultValue'] extends readonly number[]\n ? number[]\n : number[] | undefined\n : O extends NumberOptionConfig\n ? O['choices'] extends readonly number[]\n ? O['defaultValue'] extends number\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends number\n ? number\n : number | undefined\n : O extends CountOptionConfig\n ? O['defaultValue'] extends number\n ? number\n : number | undefined\n : never;\n\ntype StringOptionConfigToArgumentsOption<O extends StringOptionConfig | StringsOptionConfig> =\n O extends StringsOptionConfig\n ? O['choices'] extends readonly string[]\n ? O['defaultValue'] extends readonly string[]\n ? Array<TupleToUnion<O['choices']>>\n : Array<TupleToUnion<O['choices']>> | undefined\n : O['defaultValue'] extends readonly string[]\n ? string[]\n : string[] | undefined\n : O extends StringOptionConfig\n ? O['choices'] extends readonly string[]\n ? O['defaultValue'] extends string\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends string\n ? string\n : string | undefined\n : never;\n\ntype OptionConfigToArgumentOption<O extends OptionConfig> = O extends\n | BooleanOptionConfig\n | BooleansOptionConfig\n ? BooleanOptionConfigToArgumentsOption<O>\n : O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig\n ? NumberOptionConfigToArgumentsOption<O>\n : O extends StringOptionConfig | StringsOptionConfig\n ? StringOptionConfigToArgumentsOption<O>\n : never;\n\ntype OptionsConfigToArgumentsOptions<O extends OptionsConfig> = {\n [K in keyof O]: OptionConfigToArgumentOption<O[K]>;\n};\n\n/** Parsed options. */\nexport type ArgumentsOptions<O extends ParserConfig> = Omit<O, 'options'> extends O\n ? null\n : O['options'] extends undefined\n ? null\n : OptionsConfigToArgumentsOptions<NonNullable<O['options']>>;\n"],"names":[],"mappings":"AAmFA,oBAAoB,GACpB,WAI+D"}
@@ -1,3 +0,0 @@
1
- /** Parsed parameters. */ export { };
2
-
3
- //# sourceMappingURL=ArgumentsParameters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ArgumentsParameters.ts"],"sourcesContent":["import {type TupleToUnion} from '@jakubmazanec/ts-utils';\n\nimport {\n type ParameterConfig,\n type BooleanParameterConfig,\n type NumberParameterConfig,\n type StringParameterConfig,\n} from './ParameterConfig.js';\nimport {type ParametersConfig} from './ParametersConfig.js';\nimport {type ParserConfig} from './ParserConfig.js';\n\ntype NumberParameterConfigToArgumentsParameter<O extends NumberParameterConfig> =\n O['choices'] extends readonly number[]\n ? O['defaultValue'] extends number\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends number\n ? number\n : number | undefined;\n\ntype StringParameterConfigToArgumentsParameter<O extends StringParameterConfig> =\n O['choices'] extends readonly string[]\n ? O['defaultValue'] extends string\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends string\n ? string\n : string | undefined;\n\ntype BooleanParameterConfigToArgumentsParameter<O extends BooleanParameterConfig> =\n O['defaultValue'] extends boolean ? boolean : boolean | undefined;\n\ntype ParameterConfigToArgumentsParameter<O extends ParameterConfig> =\n O extends NumberParameterConfig\n ? NumberParameterConfigToArgumentsParameter<O>\n : O extends StringParameterConfig\n ? StringParameterConfigToArgumentsParameter<O>\n : O extends BooleanParameterConfig\n ? BooleanParameterConfigToArgumentsParameter<O>\n : never;\n\ntype ParametersConfigToArgumentsParameters<O extends ParametersConfig> = O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ParameterConfigToArgumentsParameter<O[5]>,\n ]\n : O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ParameterConfigToArgumentsParameter<O[1]>]\n : O extends readonly [ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>]\n : never;\n\ntype ParametersConfigToVariadicArgumentsParameters<O extends ParametersConfig> =\n O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ParameterConfigToArgumentsParameter<O[5]>,\n ...(readonly string[]),\n ]\n : O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ...(readonly string[])]\n : readonly [...(readonly string[])];\n\n/** Parsed parameters. */\nexport type ArgumentsParameters<O extends ParserConfig> = Omit<O, 'parameters'> extends O\n ? O['allowUnknownParameters'] extends true\n ? [...string[]]\n : null\n : O['parameters'] extends undefined\n ? null\n : O['allowUnknownParameters'] extends true\n ? ParametersConfigToVariadicArgumentsParameters<NonNullable<O['parameters']>>\n : ParametersConfigToArgumentsParameters<NonNullable<O['parameters']>>;\n"],"names":[],"mappings":"AAoJA,uBAAuB,GACvB,WAQwE"}
@@ -1,3 +0,0 @@
1
- /** Unknown options. Unknown options are always parsed as strings. */ export { };
2
-
3
- //# sourceMappingURL=ArgumentsUnknownOptions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ArgumentsUnknownOptions.ts"],"sourcesContent":["import {type ParserConfig} from './ParserConfig.js';\n\n/** Unknown options. Unknown options are always parsed as strings. */\nexport type ArgumentsUnknownOptions<O extends ParserConfig> = O['allowUnknownOptions'] extends true\n ? Record<string, unknown>\n : null;\n"],"names":[],"mappings":"AAEA,mEAAmE,GACnE,WAES"}
package/dist/Argv.js DELETED
@@ -1,3 +0,0 @@
1
- /** Unparsed arguments. */ export { };
2
-
3
- //# sourceMappingURL=Argv.js.map
package/dist/Argv.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Argv.ts"],"sourcesContent":["/** Unparsed arguments. */\nexport type Argv = string[];\n"],"names":[],"mappings":"AAAA,wBAAwB,GACxB,WAA4B"}
@@ -1,3 +0,0 @@
1
- /** Parser's command configuration. */ export { };
2
-
3
- //# sourceMappingURL=CommandConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/CommandConfig.ts"],"sourcesContent":["/** Parser's command configuration. */\nexport type CommandConfig = string;\n"],"names":[],"mappings":"AAAA,oCAAoC,GACpC,WAAmC"}
@@ -1,3 +0,0 @@
1
- /** Parser's commands configuration. */ export { };
2
-
3
- //# sourceMappingURL=CommandsConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/CommandsConfig.ts"],"sourcesContent":["import {type CommandConfig} from './CommandConfig.js';\n\n/** Parser's commands configuration. */\nexport type CommandsConfig = readonly [CommandConfig, ...CommandConfig[]];\n"],"names":[],"mappings":"AAEA,qCAAqC,GACrC,WAA0E"}
@@ -1,3 +0,0 @@
1
- /** Long option name. */ export { };
2
-
3
- //# sourceMappingURL=LongOptionName.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/LongOptionName.ts"],"sourcesContent":["/** Long option name. */\nexport type LongOptionName = string;\n"],"names":[],"mappings":"AAAA,sBAAsB,GACtB,WAAoC"}
@@ -1,3 +0,0 @@
1
- /* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */ /** Parser's option configuration. */ export { };
2
-
3
- //# sourceMappingURL=OptionConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/OptionConfig.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */\n\nimport {type ShortOptionName} from './ShortOptionName.js';\n\nexport type BooleanOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue: boolean;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: boolean) => void) | undefined;\n };\n\nexport type BooleansOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue: readonly boolean[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n };\n\nexport type NumberOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue: number;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type NumbersOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue: readonly number[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n };\n\nexport type CountOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue: number;\n required?: false | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type StringOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue: string;\n required?: false | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: string) => void) | undefined;\n };\n\nexport type StringsOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue: readonly string[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n };\n\n/** Parser's option configuration. */\nexport type OptionConfig =\n | BooleanOptionConfig\n | BooleansOptionConfig\n | CountOptionConfig\n | NumberOptionConfig\n | NumbersOptionConfig\n | StringOptionConfig\n | StringsOptionConfig;\n"],"names":[],"mappings":"AAAA,sGAAsG,GA8QtG,mCAAmC,GACnC,WAOwB"}
@@ -1,3 +0,0 @@
1
- /** Parser's options configuration. */ export { };
2
-
3
- //# sourceMappingURL=OptionsConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/OptionsConfig.ts"],"sourcesContent":["import {type OptionConfig} from './OptionConfig.js';\n\n/** Parser's options configuration. */\nexport type OptionsConfig = Record<string, OptionConfig>;\n"],"names":[],"mappings":"AAEA,oCAAoC,GACpC,WAAyD"}
@@ -1,3 +0,0 @@
1
- /* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */ /** Parser's parameter configuration. */ export { };
2
-
3
- //# sourceMappingURL=ParameterConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ParameterConfig.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */\n\nexport type BooleanParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue: boolean;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue?: undefined;\n required: true;\n validate?: ((value: boolean) => void) | undefined;\n };\n\nexport type NumberParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue: number;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue?: undefined;\n required: true;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type StringParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue: string;\n required?: false | undefined;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue?: undefined;\n required: true;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n };\n\n/** Parser's parameter configuration. */\nexport type ParameterConfig =\n | BooleanParameterConfig\n | NumberParameterConfig\n | StringParameterConfig;\n"],"names":[],"mappings":"AAAA,sGAAsG,GA+FtG,sCAAsC,GACtC,WAG0B"}