@boneskull/bargs 2.0.0 → 3.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 (58) hide show
  1. package/README.md +305 -299
  2. package/dist/bargs.cjs +465 -135
  3. package/dist/bargs.cjs.map +1 -1
  4. package/dist/bargs.d.cts +35 -17
  5. package/dist/bargs.d.cts.map +1 -1
  6. package/dist/bargs.d.ts +35 -17
  7. package/dist/bargs.d.ts.map +1 -1
  8. package/dist/bargs.js +463 -135
  9. package/dist/bargs.js.map +1 -1
  10. package/dist/help.cjs +1 -2
  11. package/dist/help.cjs.map +1 -1
  12. package/dist/help.d.cts +20 -3
  13. package/dist/help.d.cts.map +1 -1
  14. package/dist/help.d.ts +20 -3
  15. package/dist/help.d.ts.map +1 -1
  16. package/dist/help.js +1 -2
  17. package/dist/help.js.map +1 -1
  18. package/dist/index.cjs +27 -31
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +15 -79
  21. package/dist/index.d.cts.map +1 -1
  22. package/dist/index.d.ts +15 -79
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +20 -30
  25. package/dist/index.js.map +1 -1
  26. package/dist/opt.cjs +148 -122
  27. package/dist/opt.cjs.map +1 -1
  28. package/dist/opt.d.cts +87 -113
  29. package/dist/opt.d.cts.map +1 -1
  30. package/dist/opt.d.ts +87 -113
  31. package/dist/opt.d.ts.map +1 -1
  32. package/dist/opt.js +147 -121
  33. package/dist/opt.js.map +1 -1
  34. package/dist/parser.cjs +3 -230
  35. package/dist/parser.cjs.map +1 -1
  36. package/dist/parser.d.cts +3 -51
  37. package/dist/parser.d.cts.map +1 -1
  38. package/dist/parser.d.ts +3 -51
  39. package/dist/parser.d.ts.map +1 -1
  40. package/dist/parser.js +2 -223
  41. package/dist/parser.js.map +1 -1
  42. package/dist/types.cjs +1 -3
  43. package/dist/types.cjs.map +1 -1
  44. package/dist/types.d.cts +111 -233
  45. package/dist/types.d.cts.map +1 -1
  46. package/dist/types.d.ts +111 -233
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/types.js +1 -3
  49. package/dist/types.js.map +1 -1
  50. package/package.json +2 -2
  51. package/dist/validate.cjs +0 -463
  52. package/dist/validate.cjs.map +0 -1
  53. package/dist/validate.d.cts +0 -28
  54. package/dist/validate.d.cts.map +0 -1
  55. package/dist/validate.d.ts +0 -28
  56. package/dist/validate.d.ts.map +0 -1
  57. package/dist/validate.js +0 -459
  58. package/dist/validate.js.map +0 -1
package/dist/validate.cjs DELETED
@@ -1,463 +0,0 @@
1
- "use strict";
2
- /**
3
- * Configuration validation for bargs.
4
- *
5
- * Validates bargs configuration objects at runtime before parsing, ensuring:
6
- *
7
- * - Required properties are present and correctly typed
8
- * - Option definitions have valid type discriminators and defaults
9
- * - Aliases are single characters with no conflicts
10
- * - Positional schemas have variadic args last and required args before optional
11
- * - Command handlers are properly defined
12
- * - Command-based CLIs don't have top-level positionals or handlers
13
- *
14
- * Throws {@link ValidationError} with detailed path information when invalid.
15
- *
16
- * @packageDocumentation
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.validateConfig = void 0;
20
- const errors_js_1 = require("./errors.cjs");
21
- /** Valid option type discriminators */
22
- const VALID_OPTION_TYPES = [
23
- 'string',
24
- 'boolean',
25
- 'number',
26
- 'enum',
27
- 'array',
28
- 'count',
29
- ];
30
- /** Valid positional type discriminators */
31
- const VALID_POSITIONAL_TYPES = [
32
- 'string',
33
- 'number',
34
- 'enum',
35
- 'variadic',
36
- ];
37
- /** Valid array/variadic item types */
38
- const VALID_ITEM_TYPES = ['string', 'number'];
39
- // ─── Primitive Helpers ──────────────────────────────────────────────────────
40
- const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
41
- const isFunction = (value) => typeof value === 'function';
42
- const isStringArray = (value) => Array.isArray(value) && value.every((v) => typeof v === 'string');
43
- const isNumberArray = (value) => Array.isArray(value) && value.every((v) => typeof v === 'number');
44
- // ─── Option Validation ──────────────────────────────────────────────────────
45
- /**
46
- * Validate a single option definition.
47
- */
48
- const validateOption = (name, opt, path, allAliases) => {
49
- if (!isObject(opt)) {
50
- throw new errors_js_1.ValidationError(path, 'option must be an object');
51
- }
52
- // Validate type discriminator
53
- const type = opt['type'];
54
- if (typeof type !== 'string') {
55
- throw new errors_js_1.ValidationError(`${path}.type`, 'must be a string');
56
- }
57
- if (!VALID_OPTION_TYPES.includes(type)) {
58
- throw new errors_js_1.ValidationError(`${path}.type`, `must be one of: ${VALID_OPTION_TYPES.join(', ')}`);
59
- }
60
- // Validate optional description
61
- if (opt['description'] !== undefined &&
62
- typeof opt['description'] !== 'string') {
63
- throw new errors_js_1.ValidationError(`${path}.description`, 'must be a string');
64
- }
65
- // Validate optional group
66
- if (opt['group'] !== undefined && typeof opt['group'] !== 'string') {
67
- throw new errors_js_1.ValidationError(`${path}.group`, 'must be a string');
68
- }
69
- // Validate optional hidden
70
- if (opt['hidden'] !== undefined && typeof opt['hidden'] !== 'boolean') {
71
- throw new errors_js_1.ValidationError(`${path}.hidden`, 'must be a boolean');
72
- }
73
- // Validate optional required
74
- if (opt['required'] !== undefined && typeof opt['required'] !== 'boolean') {
75
- throw new errors_js_1.ValidationError(`${path}.required`, 'must be a boolean');
76
- }
77
- // Validate aliases
78
- if (opt['aliases'] !== undefined) {
79
- if (!isStringArray(opt['aliases'])) {
80
- throw new errors_js_1.ValidationError(`${path}.aliases`, 'must be an array of strings');
81
- }
82
- for (let i = 0; i < opt['aliases'].length; i++) {
83
- const alias = opt['aliases'][i];
84
- if (alias.length !== 1) {
85
- throw new errors_js_1.ValidationError(`${path}.aliases[${i}]`, `alias must be a single character, got "${alias}"`);
86
- }
87
- // Check for duplicates
88
- const existingOption = allAliases.get(alias);
89
- if (existingOption !== undefined) {
90
- throw new errors_js_1.ValidationError(`${path}.aliases[${i}]`, `alias "${alias}" is already used by option "${existingOption}"`);
91
- }
92
- allAliases.set(alias, name);
93
- }
94
- }
95
- // Type-specific validation
96
- switch (type) {
97
- case 'array': {
98
- const items = opt['items'];
99
- if (typeof items !== 'string') {
100
- throw new errors_js_1.ValidationError(`${path}.items`, 'must be "string" or "number"');
101
- }
102
- if (!VALID_ITEM_TYPES.includes(items)) {
103
- throw new errors_js_1.ValidationError(`${path}.items`, 'must be "string" or "number"');
104
- }
105
- if (opt['default'] !== undefined) {
106
- if (items === 'string') {
107
- if (!isStringArray(opt['default'])) {
108
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be an array of strings');
109
- }
110
- }
111
- else {
112
- if (!isNumberArray(opt['default'])) {
113
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be an array of numbers');
114
- }
115
- }
116
- }
117
- break;
118
- }
119
- case 'boolean':
120
- if (opt['default'] !== undefined && typeof opt['default'] !== 'boolean') {
121
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a boolean');
122
- }
123
- break;
124
- case 'count':
125
- if (opt['default'] !== undefined && typeof opt['default'] !== 'number') {
126
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a number');
127
- }
128
- break;
129
- case 'enum': {
130
- const choices = opt['choices'];
131
- if (!isStringArray(choices)) {
132
- throw new errors_js_1.ValidationError(`${path}.choices`, 'must be a non-empty array of strings');
133
- }
134
- if (choices.length === 0) {
135
- throw new errors_js_1.ValidationError(`${path}.choices`, 'must not be empty');
136
- }
137
- if (opt['default'] !== undefined) {
138
- if (typeof opt['default'] !== 'string') {
139
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a string');
140
- }
141
- if (!choices.includes(opt['default'])) {
142
- throw new errors_js_1.ValidationError(`${path}.default`, `must be one of the choices: ${choices.join(', ')}`);
143
- }
144
- }
145
- break;
146
- }
147
- case 'number':
148
- if (opt['default'] !== undefined && typeof opt['default'] !== 'number') {
149
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a number');
150
- }
151
- break;
152
- case 'string':
153
- if (opt['default'] !== undefined && typeof opt['default'] !== 'string') {
154
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a string');
155
- }
156
- break;
157
- }
158
- };
159
- /**
160
- * Validate an options schema.
161
- */
162
- const validateOptionsSchema = (schema, path, allAliases = new Map()) => {
163
- if (schema === undefined) {
164
- return; // optional
165
- }
166
- if (!isObject(schema)) {
167
- throw new errors_js_1.ValidationError(path, 'must be an object');
168
- }
169
- for (const [name, opt] of Object.entries(schema)) {
170
- validateOption(name, opt, `${path}.${name}`, allAliases);
171
- }
172
- };
173
- // ─── Positional Validation ──────────────────────────────────────────────────
174
- /**
175
- * Validate a single positional definition.
176
- */
177
- const validatePositional = (index, pos, path) => {
178
- if (!isObject(pos)) {
179
- throw new errors_js_1.ValidationError(path, 'positional must be an object');
180
- }
181
- // Validate type discriminator
182
- const type = pos['type'];
183
- if (typeof type !== 'string') {
184
- throw new errors_js_1.ValidationError(`${path}.type`, 'must be a string');
185
- }
186
- if (!VALID_POSITIONAL_TYPES.includes(type)) {
187
- throw new errors_js_1.ValidationError(`${path}.type`, `must be one of: ${VALID_POSITIONAL_TYPES.join(', ')}`);
188
- }
189
- // Validate optional description
190
- if (pos['description'] !== undefined &&
191
- typeof pos['description'] !== 'string') {
192
- throw new errors_js_1.ValidationError(`${path}.description`, 'must be a string');
193
- }
194
- // Validate optional name
195
- if (pos['name'] !== undefined && typeof pos['name'] !== 'string') {
196
- throw new errors_js_1.ValidationError(`${path}.name`, 'must be a string');
197
- }
198
- // Validate optional required
199
- if (pos['required'] !== undefined && typeof pos['required'] !== 'boolean') {
200
- throw new errors_js_1.ValidationError(`${path}.required`, 'must be a boolean');
201
- }
202
- // Type-specific validation
203
- switch (type) {
204
- case 'enum': {
205
- const choices = pos['choices'];
206
- if (!isStringArray(choices)) {
207
- throw new errors_js_1.ValidationError(`${path}.choices`, 'must be a non-empty array of strings');
208
- }
209
- if (choices.length === 0) {
210
- throw new errors_js_1.ValidationError(`${path}.choices`, 'must not be empty');
211
- }
212
- if (pos['default'] !== undefined) {
213
- if (typeof pos['default'] !== 'string') {
214
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a string');
215
- }
216
- if (!choices.includes(pos['default'])) {
217
- throw new errors_js_1.ValidationError(`${path}.default`, `must be one of the choices: ${choices.join(', ')}`);
218
- }
219
- }
220
- break;
221
- }
222
- case 'number':
223
- if (pos['default'] !== undefined && typeof pos['default'] !== 'number') {
224
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a number');
225
- }
226
- break;
227
- case 'string':
228
- if (pos['default'] !== undefined && typeof pos['default'] !== 'string') {
229
- throw new errors_js_1.ValidationError(`${path}.default`, 'must be a string');
230
- }
231
- break;
232
- case 'variadic': {
233
- const items = pos['items'];
234
- if (typeof items !== 'string') {
235
- throw new errors_js_1.ValidationError(`${path}.items`, 'must be "string" or "number"');
236
- }
237
- if (!VALID_ITEM_TYPES.includes(items)) {
238
- throw new errors_js_1.ValidationError(`${path}.items`, 'must be "string" or "number"');
239
- }
240
- break;
241
- }
242
- }
243
- };
244
- /**
245
- * Validate a positionals schema. Checks:
246
- *
247
- * - Each positional has valid structure
248
- * - Variadic positional (if present) is last
249
- * - Required positionals don't follow optional ones
250
- */
251
- const validatePositionalsSchema = (schema, path) => {
252
- if (schema === undefined) {
253
- return; // optional
254
- }
255
- if (!Array.isArray(schema)) {
256
- throw new errors_js_1.ValidationError(path, 'must be an array');
257
- }
258
- // Validate each positional
259
- for (let i = 0; i < schema.length; i++) {
260
- validatePositional(i, schema[i], `${path}[${i}]`);
261
- }
262
- // Check variadic is last
263
- const variadicIndex = schema.findIndex((p) => isObject(p) && p['type'] === 'variadic');
264
- if (variadicIndex !== -1 && variadicIndex !== schema.length - 1) {
265
- throw new errors_js_1.ValidationError(`${path}[${variadicIndex}]`, 'variadic positional must be the last positional argument');
266
- }
267
- // Check required doesn't follow optional
268
- let seenOptional = false;
269
- for (let i = 0; i < schema.length; i++) {
270
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
271
- const pos = schema[i];
272
- if (!isObject(pos)) {
273
- continue;
274
- }
275
- const isOptional = pos['required'] !== true &&
276
- !('default' in pos && pos['default'] !== undefined);
277
- const isVariadic = pos['type'] === 'variadic';
278
- if (isOptional) {
279
- seenOptional = true;
280
- }
281
- else if (seenOptional && !isVariadic) {
282
- throw new errors_js_1.ValidationError(`${path}[${i}]`, 'required positional cannot follow an optional positional');
283
- }
284
- }
285
- };
286
- // ─── Handler Validation ─────────────────────────────────────────────────────
287
- /**
288
- * Validate a handler function.
289
- */
290
- const validateHandler = (handler, path) => {
291
- if (handler === undefined) {
292
- return; // handlers are optional in some contexts
293
- }
294
- if (!isFunction(handler)) {
295
- throw new errors_js_1.ValidationError(path, 'must be a function');
296
- }
297
- };
298
- // ─── Transforms Validation ──────────────────────────────────────────────────
299
- /**
300
- * Validate a transforms configuration object.
301
- */
302
- const validateTransforms = (transforms, path) => {
303
- if (transforms === undefined) {
304
- return; // transforms are optional
305
- }
306
- if (!isObject(transforms)) {
307
- throw new errors_js_1.ValidationError(path, 'must be an object');
308
- }
309
- if (transforms['values'] !== undefined && !isFunction(transforms['values'])) {
310
- throw new errors_js_1.ValidationError(`${path}.values`, 'must be a function');
311
- }
312
- if (transforms['positionals'] !== undefined &&
313
- !isFunction(transforms['positionals'])) {
314
- throw new errors_js_1.ValidationError(`${path}.positionals`, 'must be a function');
315
- }
316
- };
317
- // ─── Command Validation ─────────────────────────────────────────────────────
318
- /**
319
- * Validate a single command configuration.
320
- */
321
- const validateCommand = (name, cmd, path, globalAliases) => {
322
- if (!isObject(cmd)) {
323
- throw new errors_js_1.ValidationError(path, 'command must be an object');
324
- }
325
- // description is required
326
- if (typeof cmd['description'] !== 'string') {
327
- throw new errors_js_1.ValidationError(`${path}.description`, 'must be a string');
328
- }
329
- // handler is required for commands
330
- if (cmd['handler'] === undefined) {
331
- throw new errors_js_1.ValidationError(`${path}.handler`, 'is required');
332
- }
333
- validateHandler(cmd['handler'], `${path}.handler`);
334
- // Validate options (command-local aliases only, no collision with globals)
335
- // Create a new alias map that includes global aliases for collision detection
336
- const commandAliases = new Map(globalAliases);
337
- validateOptionsSchema(cmd['options'], `${path}.options`, commandAliases);
338
- // Validate positionals
339
- validatePositionalsSchema(cmd['positionals'], `${path}.positionals`);
340
- // Validate transforms (optional)
341
- validateTransforms(cmd['transforms'], `${path}.transforms`);
342
- };
343
- /**
344
- * Validate commands record.
345
- */
346
- const validateCommands = (commands, path, globalAliases) => {
347
- if (!isObject(commands)) {
348
- throw new errors_js_1.ValidationError(path, 'must be an object');
349
- }
350
- const commandNames = Object.keys(commands);
351
- if (commandNames.length === 0) {
352
- throw new errors_js_1.ValidationError(path, 'must have at least one command');
353
- }
354
- for (const [name, cmd] of Object.entries(commands)) {
355
- validateCommand(name, cmd, `${path}.${name}`, globalAliases);
356
- }
357
- return new Set(commandNames);
358
- };
359
- // ─── Main Config Validation ─────────────────────────────────────────────────
360
- /**
361
- * Validate base config properties common to both simple and command-based CLIs.
362
- */
363
- const validateBaseConfig = (config, path) => {
364
- if (!isObject(config)) {
365
- throw new errors_js_1.ValidationError(path, 'config must be an object');
366
- }
367
- // name is required
368
- if (typeof config['name'] !== 'string') {
369
- throw new errors_js_1.ValidationError(`${path}.name`, 'must be a string');
370
- }
371
- if (config['name'].length === 0) {
372
- throw new errors_js_1.ValidationError(`${path}.name`, 'must not be empty');
373
- }
374
- // description is optional
375
- if (config['description'] !== undefined &&
376
- typeof config['description'] !== 'string') {
377
- throw new errors_js_1.ValidationError(`${path}.description`, 'must be a string');
378
- }
379
- // version is optional
380
- if (config['version'] !== undefined &&
381
- typeof config['version'] !== 'string') {
382
- throw new errors_js_1.ValidationError(`${path}.version`, 'must be a string');
383
- }
384
- // args is optional
385
- if (config['args'] !== undefined && !isStringArray(config['args'])) {
386
- throw new errors_js_1.ValidationError(`${path}.args`, 'must be an array of strings');
387
- }
388
- // Validate options
389
- const aliases = new Map();
390
- validateOptionsSchema(config['options'], `${path}.options`, aliases);
391
- return { aliases, configObj: config };
392
- };
393
- /**
394
- * Check if config appears to be a command-based CLI. Returns true if commands
395
- * property exists (even if empty - validation will catch that).
396
- */
397
- const isCommandConfig = (config) => {
398
- return config['commands'] !== undefined;
399
- };
400
- /**
401
- * Validate a simple CLI config (no commands).
402
- */
403
- const validateSimpleConfig = (config, path, _aliases) => {
404
- // Validate positionals
405
- validatePositionalsSchema(config['positionals'], `${path}.positionals`);
406
- // Validate handler (optional for simple CLI)
407
- validateHandler(config['handler'], `${path}.handler`);
408
- // Validate transforms (optional)
409
- validateTransforms(config['transforms'], `${path}.transforms`);
410
- };
411
- /**
412
- * Validate a command-based CLI config.
413
- */
414
- const validateCommandConfig = (config, path, aliases) => {
415
- // Commands must exist and have entries
416
- const commandNames = validateCommands(config['commands'], `${path}.commands`, aliases);
417
- // Positionals should not be present at top level
418
- if (config['positionals'] !== undefined) {
419
- const positionals = config['positionals'];
420
- if (Array.isArray(positionals) && positionals.length > 0) {
421
- throw new errors_js_1.ValidationError(`${path}.positionals`, 'top-level positionals are not allowed in command-based CLIs (define them per-command)');
422
- }
423
- }
424
- // handler should not be present (use defaultHandler instead)
425
- if (config['handler'] !== undefined) {
426
- throw new errors_js_1.ValidationError(`${path}.handler`, 'use defaultHandler for command-based CLIs');
427
- }
428
- // Validate defaultHandler
429
- const defaultHandler = config['defaultHandler'];
430
- if (defaultHandler !== undefined) {
431
- if (typeof defaultHandler === 'string') {
432
- // Must reference an existing command
433
- if (!commandNames.has(defaultHandler)) {
434
- throw new errors_js_1.ValidationError(`${path}.defaultHandler`, `must reference an existing command, got "${defaultHandler}"`);
435
- }
436
- }
437
- else if (!isFunction(defaultHandler)) {
438
- throw new errors_js_1.ValidationError(`${path}.defaultHandler`, 'must be a function or command name string');
439
- }
440
- }
441
- // Validate top-level transforms (optional, run before command-level transforms)
442
- validateTransforms(config['transforms'], `${path}.transforms`);
443
- };
444
- /**
445
- * Validate a bargs configuration object. Throws ValidationError if invalid.
446
- *
447
- * This validates both simple CLI configs (BargsConfig) and command-based CLI
448
- * configs (BargsConfigWithCommands).
449
- *
450
- * @param config - The configuration to validate
451
- * @throws ValidationError if the config is invalid
452
- */
453
- const validateConfig = (config) => {
454
- const { aliases, configObj } = validateBaseConfig(config, 'config');
455
- if (isCommandConfig(configObj)) {
456
- validateCommandConfig(configObj, 'config', aliases);
457
- }
458
- else {
459
- validateSimpleConfig(configObj, 'config', aliases);
460
- }
461
- };
462
- exports.validateConfig = validateConfig;
463
- //# sourceMappingURL=validate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Configuration validation for bargs.
3
- *
4
- * Validates bargs configuration objects at runtime before parsing, ensuring:
5
- *
6
- * - Required properties are present and correctly typed
7
- * - Option definitions have valid type discriminators and defaults
8
- * - Aliases are single characters with no conflicts
9
- * - Positional schemas have variadic args last and required args before optional
10
- * - Command handlers are properly defined
11
- * - Command-based CLIs don't have top-level positionals or handlers
12
- *
13
- * Throws {@link ValidationError} with detailed path information when invalid.
14
- *
15
- * @packageDocumentation
16
- */
17
- import type { BargsConfig, BargsConfigWithCommands, CommandConfigInput, OptionsSchema, PositionalsSchema } from "./types.cjs";
18
- /**
19
- * Validate a bargs configuration object. Throws ValidationError if invalid.
20
- *
21
- * This validates both simple CLI configs (BargsConfig) and command-based CLI
22
- * configs (BargsConfigWithCommands).
23
- *
24
- * @param config - The configuration to validate
25
- * @throws ValidationError if the config is invalid
26
- */
27
- export declare const validateConfig: (config: BargsConfig<OptionsSchema, PositionalsSchema, Record<string, CommandConfigInput> | undefined> | BargsConfig<OptionsSchema, PositionalsSchema, undefined> | BargsConfigWithCommands<OptionsSchema, Record<string, CommandConfigInput>>) => void;
28
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,oBAAmB;AAqnBpB;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,QACI,WAAW,CACT,aAAa,EACb,iBAAiB,EACjB,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,CAC/C,GACD,WAAW,CAAC,aAAa,EAAE,iBAAiB,EAAE,SAAS,CAAC,GACxD,uBAAuB,CACrB,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACnC,KACJ,IAQF,CAAC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Configuration validation for bargs.
3
- *
4
- * Validates bargs configuration objects at runtime before parsing, ensuring:
5
- *
6
- * - Required properties are present and correctly typed
7
- * - Option definitions have valid type discriminators and defaults
8
- * - Aliases are single characters with no conflicts
9
- * - Positional schemas have variadic args last and required args before optional
10
- * - Command handlers are properly defined
11
- * - Command-based CLIs don't have top-level positionals or handlers
12
- *
13
- * Throws {@link ValidationError} with detailed path information when invalid.
14
- *
15
- * @packageDocumentation
16
- */
17
- import type { BargsConfig, BargsConfigWithCommands, CommandConfigInput, OptionsSchema, PositionalsSchema } from "./types.js";
18
- /**
19
- * Validate a bargs configuration object. Throws ValidationError if invalid.
20
- *
21
- * This validates both simple CLI configs (BargsConfig) and command-based CLI
22
- * configs (BargsConfigWithCommands).
23
- *
24
- * @param config - The configuration to validate
25
- * @throws ValidationError if the config is invalid
26
- */
27
- export declare const validateConfig: (config: BargsConfig<OptionsSchema, PositionalsSchema, Record<string, CommandConfigInput> | undefined> | BargsConfig<OptionsSchema, PositionalsSchema, undefined> | BargsConfigWithCommands<OptionsSchema, Record<string, CommandConfigInput>>) => void;
28
- //# sourceMappingURL=validate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EAClB,mBAAmB;AAqnBpB;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GACzB,QACI,WAAW,CACT,aAAa,EACb,iBAAiB,EACjB,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,CAC/C,GACD,WAAW,CAAC,aAAa,EAAE,iBAAiB,EAAE,SAAS,CAAC,GACxD,uBAAuB,CACrB,aAAa,EACb,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACnC,KACJ,IAQF,CAAC"}