argv-flags 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.2 - 2026-01-30
4
+
5
+ - Enforce schema boolean fields and allowNo/allowEmpty validation.
6
+ - Export the JSON Schema subpath and verify it in tests.
7
+ - Add fixture-driven contract tests plus additional claim falsification cases.
8
+ - Document array default append behavior.
9
+
3
10
  ## 1.0.1 - 2026-01-30
4
11
 
5
12
  - Publish a formal JSON Schema for ParseResult and add JSON-safe conversion helper.
package/README.md CHANGED
@@ -56,6 +56,7 @@ interface FlagSpec<T extends FlagType = FlagType> {
56
56
  Notes:
57
57
  - `flags` must include at least one flag token (`-x` or `--long`).
58
58
  - `default` is cloned for arrays to avoid shared references.
59
+ - Array defaults act as a base; explicit array values append rather than replace.
59
60
  - `allowNo` enables `--no-<flag>` for boolean specs (default: `true`).
60
61
  - `allowEmpty` allows empty string/array values (default: `false`).
61
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjE,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,QAAQ,GAC3D,MAAM,GACN,CAAC,SAAS,SAAS,GAClB,OAAO,GACP,CAAC,SAAS,QAAQ,GACjB,MAAM,GACN,CAAC,SAAS,OAAO,GAChB,MAAM,EAAE,GACR,KAAK,CAAC;AAEZ,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACtD,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,MAAM,MAAM,SAAS,GAClB,cAAc,GACd,eAAe,GACf,eAAe,GACf,UAAU,GACV,WAAW,GACX,aAAa,CAAC;AAEjB,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;KAC3C,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;CACnD,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI;KAC5C,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACvB,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC5C,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;CACZ;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;AAExE,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;CACZ;AA0JD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,KAAG,CAAW,CAAC;AAEvE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAS,YAAiB,KAAG,WAAW,CAAC,CAAC,CAsQhG,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,QAAQ,WAAW,CAAC,CAAC,CAAC,KAAG,eAuBvE,CAAC"}
package/dist/index.js CHANGED
@@ -19,7 +19,7 @@ const isNumericValue = (value) => {
19
19
  };
20
20
  const cloneDefault = (value, type) => {
21
21
  if (type === 'array' && Array.isArray(value)) {
22
- return [...value];
22
+ return value.slice();
23
23
  }
24
24
  return value;
25
25
  };
@@ -29,44 +29,104 @@ const splitInlineValue = (token) => {
29
29
  return { flag: token };
30
30
  return { flag: token.slice(0, eqIndex), value: token.slice(eqIndex + 1) };
31
31
  };
32
+ const isStringArray = (value) => Array.isArray(value) && value.every((entry) => typeof entry === 'string');
33
+ const normalizeDefaultValue = (key, value, type) => {
34
+ if (value === undefined) {
35
+ return undefined;
36
+ }
37
+ switch (type) {
38
+ case 'string':
39
+ if (typeof value !== 'string') {
40
+ throw new TypeError(`Schema entry "${key}" default must be a string.`);
41
+ }
42
+ return value;
43
+ case 'boolean':
44
+ if (typeof value !== 'boolean') {
45
+ throw new TypeError(`Schema entry "${key}" default must be a boolean.`);
46
+ }
47
+ return value;
48
+ case 'number':
49
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
50
+ throw new TypeError(`Schema entry "${key}" default must be a finite number.`);
51
+ }
52
+ return value;
53
+ case 'array':
54
+ if (!isStringArray(value)) {
55
+ throw new TypeError(`Schema entry "${key}" default must be a string array.`);
56
+ }
57
+ return value;
58
+ default: {
59
+ const exhaustive = type;
60
+ throw new TypeError(`Schema entry "${key}" has invalid type "${String(exhaustive)}".`);
61
+ }
62
+ }
63
+ };
32
64
  const validateSchema = (schema) => {
33
- if (!schema || typeof schema !== 'object' || Array.isArray(schema)) {
65
+ if (schema === null || typeof schema !== 'object' || Array.isArray(schema)) {
34
66
  throw new TypeError('Schema must be an object.');
35
67
  }
36
68
  const flagToKey = new Map();
37
69
  const normalized = new Map();
38
- for (const [rawKey, rawSpec] of Object.entries(schema)) {
39
- const key = rawKey;
40
- const spec = rawSpec;
41
- if (!spec || typeof spec !== 'object') {
42
- throw new TypeError(`Schema entry for "${String(key)}" must be an object.`);
70
+ const typedSchema = schema;
71
+ for (const key of Object.keys(typedSchema)) {
72
+ const rawSpec = typedSchema[key];
73
+ if (rawSpec === null || typeof rawSpec !== 'object' || Array.isArray(rawSpec)) {
74
+ throw new TypeError(`Schema entry for "${key}" must be an object.`);
43
75
  }
44
- const type = spec.type;
45
- if (!['string', 'boolean', 'number', 'array'].includes(type)) {
46
- throw new TypeError(`Schema entry "${String(key)}" has invalid type "${String(type)}".`);
76
+ const specRecord = rawSpec;
77
+ const type = specRecord['type'];
78
+ if (type !== 'string' && type !== 'boolean' && type !== 'number' && type !== 'array') {
79
+ throw new TypeError(`Schema entry "${key}" has invalid type.`);
47
80
  }
48
- const flagsInput = spec.flags;
81
+ const flagsInput = specRecord['flags'];
49
82
  if (!Array.isArray(flagsInput) || flagsInput.length === 0) {
50
- throw new TypeError(`Schema entry "${String(key)}" must define at least one flag.`);
83
+ throw new TypeError(`Schema entry "${key}" must define at least one flag.`);
51
84
  }
52
85
  const flags = [];
53
86
  for (const flag of flagsInput) {
54
87
  if (typeof flag !== 'string' || flag.length < 2 || !flag.startsWith('-')) {
55
- throw new TypeError(`Schema entry "${String(key)}" has invalid flag "${String(flag)}".`);
88
+ throw new TypeError(`Schema entry "${key}" has invalid flag "${String(flag)}".`);
56
89
  }
57
90
  if (flagToKey.has(flag)) {
58
91
  const existing = flagToKey.get(flag);
59
- throw new TypeError(`Flag "${flag}" is already assigned to "${String(existing)}".`);
92
+ throw new TypeError(`Flag "${flag}" is already assigned to "${existing ?? ''}".`);
60
93
  }
61
94
  flagToKey.set(flag, key);
62
95
  flags.push(flag);
63
96
  }
97
+ const requiredValue = specRecord['required'];
98
+ if (requiredValue !== undefined && typeof requiredValue !== 'boolean') {
99
+ throw new TypeError(`Schema entry "${key}" required must be a boolean.`);
100
+ }
101
+ const allowNoValue = specRecord['allowNo'];
102
+ if (allowNoValue !== undefined && typeof allowNoValue !== 'boolean') {
103
+ throw new TypeError(`Schema entry "${key}" allowNo must be a boolean.`);
104
+ }
105
+ if (allowNoValue !== undefined && type !== 'boolean') {
106
+ throw new TypeError(`Schema entry "${key}" allowNo is only valid for boolean types.`);
107
+ }
108
+ const allowEmptyValue = specRecord['allowEmpty'];
109
+ if (allowEmptyValue !== undefined && typeof allowEmptyValue !== 'boolean') {
110
+ throw new TypeError(`Schema entry "${key}" allowEmpty must be a boolean.`);
111
+ }
112
+ if (allowEmptyValue !== undefined && type !== 'string' && type !== 'array') {
113
+ throw new TypeError(`Schema entry "${key}" allowEmpty is only valid for string or array types.`);
114
+ }
115
+ const defaultValue = normalizeDefaultValue(key, specRecord['default'], type);
116
+ const spec = {
117
+ type,
118
+ flags,
119
+ ...(requiredValue === true ? { required: true } : {}),
120
+ ...(allowEmptyValue === true ? { allowEmpty: true } : {}),
121
+ ...(allowNoValue === false ? { allowNo: false } : {}),
122
+ ...(defaultValue !== undefined ? { default: defaultValue } : {})
123
+ };
64
124
  const longFlag = flags.find((flag) => flag.startsWith('--'));
65
125
  const normalizedSpec = {
66
126
  ...spec,
67
127
  type,
68
128
  flags,
69
- ...(longFlag ? { longFlag } : {})
129
+ ...(typeof longFlag === 'string' ? { longFlag } : {})
70
130
  };
71
131
  normalized.set(key, normalizedSpec);
72
132
  }
@@ -75,7 +135,7 @@ const validateSchema = (schema) => {
75
135
  export const defineSchema = (schema) => schema;
76
136
  export const parseArgs = (schema, options = {}) => {
77
137
  const { flagToKey, normalized } = validateSchema(schema);
78
- const argv = Array.isArray(options.argv) ? options.argv : process.argv.slice(2);
138
+ const argv = options.argv !== undefined ? [...options.argv] : process.argv.slice(2);
79
139
  const allowUnknown = options.allowUnknown === true;
80
140
  const stopAtDoubleDash = options.stopAtDoubleDash !== false;
81
141
  const values = {};
@@ -92,6 +152,9 @@ export const parseArgs = (schema, options = {}) => {
92
152
  };
93
153
  for (let i = 0; i < argv.length; i += 1) {
94
154
  const token = argv[i];
155
+ if (token === undefined) {
156
+ continue;
157
+ }
95
158
  if (stopAtDoubleDash && token === '--') {
96
159
  rest.push(...argv.slice(i + 1));
97
160
  break;
@@ -105,16 +168,16 @@ export const parseArgs = (schema, options = {}) => {
105
168
  if (flag.startsWith('--no-') && !flagToKey.has(flag)) {
106
169
  const base = `--${flag.slice(5)}`;
107
170
  const baseKey = flagToKey.get(base);
108
- if (baseKey) {
171
+ if (baseKey !== undefined) {
109
172
  const baseSpec = normalized.get(baseKey);
110
173
  if (baseSpec?.type === 'boolean' && baseSpec.allowNo !== false) {
111
- if (present[baseKey]) {
174
+ if (present[baseKey] === true) {
112
175
  pushIssue({
113
176
  code: 'DUPLICATE',
114
177
  severity: 'warning',
115
178
  message: `Duplicate flag ${base}.`,
116
179
  flag: base,
117
- key: String(baseKey),
180
+ key: baseKey,
118
181
  index: i
119
182
  });
120
183
  }
@@ -125,7 +188,7 @@ export const parseArgs = (schema, options = {}) => {
125
188
  }
126
189
  }
127
190
  const key = flagToKey.get(flag);
128
- if (!key) {
191
+ if (key === undefined) {
129
192
  if (!allowUnknown) {
130
193
  pushIssue({
131
194
  code: 'UNKNOWN_FLAG',
@@ -141,174 +204,182 @@ export const parseArgs = (schema, options = {}) => {
141
204
  continue;
142
205
  }
143
206
  const spec = normalized.get(key);
144
- if (!spec) {
207
+ if (spec === undefined) {
145
208
  continue;
146
209
  }
147
- const wasPresent = present[key];
210
+ const wasPresent = present[key] === true;
148
211
  if (wasPresent && spec.type !== 'array') {
149
212
  pushIssue({
150
213
  code: 'DUPLICATE',
151
214
  severity: 'warning',
152
215
  message: `Duplicate flag ${flag}.`,
153
216
  flag,
154
- key: String(key),
217
+ key,
155
218
  index: i
156
219
  });
157
220
  }
158
221
  present[key] = true;
159
- if (spec.type === 'boolean') {
160
- let raw = inlineValue;
161
- let consumedNext = false;
162
- if (raw === undefined) {
163
- const nextValue = argv[i + 1];
164
- const normalizedValue = normalizeBoolean(nextValue);
165
- if (normalizedValue !== undefined) {
166
- raw = nextValue;
167
- consumedNext = true;
222
+ switch (spec.type) {
223
+ case 'boolean': {
224
+ let raw = inlineValue;
225
+ let consumedNext = false;
226
+ if (raw === undefined) {
227
+ const nextValue = argv[i + 1];
228
+ const normalizedValue = normalizeBoolean(nextValue);
229
+ if (normalizedValue !== undefined) {
230
+ raw = nextValue;
231
+ consumedNext = true;
232
+ }
233
+ }
234
+ if (raw !== undefined) {
235
+ const normalizedValue = normalizeBoolean(raw);
236
+ if (normalizedValue === undefined) {
237
+ pushIssue({
238
+ code: 'INVALID_VALUE',
239
+ severity: 'error',
240
+ message: `Invalid boolean value for ${flag}: ${raw}.`,
241
+ flag,
242
+ key,
243
+ value: raw,
244
+ index: i
245
+ });
246
+ }
247
+ else {
248
+ values[key] = normalizedValue;
249
+ if (consumedNext) {
250
+ i += 1;
251
+ }
252
+ }
168
253
  }
254
+ else {
255
+ values[key] = true;
256
+ }
257
+ break;
169
258
  }
170
- if (raw !== undefined) {
171
- const normalizedValue = normalizeBoolean(raw);
172
- if (normalizedValue === undefined) {
259
+ case 'string': {
260
+ let raw = inlineValue;
261
+ if (raw === undefined) {
262
+ const nextValue = argv[i + 1];
263
+ if (typeof nextValue !== 'string' || isFlagToken(nextValue)) {
264
+ pushIssue({
265
+ code: 'MISSING_VALUE',
266
+ severity: 'error',
267
+ message: `Missing value for ${flag}.`,
268
+ flag,
269
+ key,
270
+ index: i
271
+ });
272
+ break;
273
+ }
274
+ raw = nextValue;
275
+ i += 1;
276
+ }
277
+ if (raw.length === 0 && spec.allowEmpty !== true) {
173
278
  pushIssue({
174
- code: 'INVALID_VALUE',
279
+ code: 'EMPTY_VALUE',
175
280
  severity: 'error',
176
- message: `Invalid boolean value for ${flag}: ${raw}.`,
281
+ message: `Empty value not allowed for ${flag}.`,
177
282
  flag,
178
- key: String(key),
179
- value: raw,
283
+ key,
180
284
  index: i
181
285
  });
286
+ break;
182
287
  }
183
- else {
184
- values[key] = normalizedValue;
185
- if (consumedNext) {
186
- i += 1;
288
+ values[key] = raw;
289
+ break;
290
+ }
291
+ case 'number': {
292
+ let raw = inlineValue;
293
+ if (raw === undefined) {
294
+ const nextValue = argv[i + 1];
295
+ if (typeof nextValue !== 'string' || (!isNumericValue(nextValue) && isFlagToken(nextValue))) {
296
+ pushIssue({
297
+ code: 'MISSING_VALUE',
298
+ severity: 'error',
299
+ message: `Missing value for ${flag}.`,
300
+ flag,
301
+ key,
302
+ index: i
303
+ });
304
+ break;
187
305
  }
306
+ raw = nextValue;
307
+ i += 1;
188
308
  }
189
- }
190
- else {
191
- values[key] = true;
192
- }
193
- continue;
194
- }
195
- if (spec.type === 'string') {
196
- let raw = inlineValue;
197
- if (raw === undefined) {
198
- const nextValue = argv[i + 1];
199
- if (typeof nextValue !== 'string' || isFlagToken(nextValue)) {
309
+ if (!isNumericValue(raw)) {
200
310
  pushIssue({
201
- code: 'MISSING_VALUE',
311
+ code: 'INVALID_VALUE',
202
312
  severity: 'error',
203
- message: `Missing value for ${flag}.`,
313
+ message: `Invalid number value for ${flag}: ${raw}.`,
204
314
  flag,
205
- key: String(key),
315
+ key,
316
+ value: raw,
206
317
  index: i
207
318
  });
208
- continue;
319
+ break;
209
320
  }
210
- raw = nextValue;
211
- i += 1;
212
- }
213
- if (raw.length === 0 && spec.allowEmpty !== true) {
214
- pushIssue({
215
- code: 'EMPTY_VALUE',
216
- severity: 'error',
217
- message: `Empty value not allowed for ${flag}.`,
218
- flag,
219
- key: String(key),
220
- index: i
221
- });
222
- continue;
321
+ values[key] = Number(raw);
322
+ break;
223
323
  }
224
- values[key] = raw;
225
- continue;
226
- }
227
- if (spec.type === 'number') {
228
- let raw = inlineValue;
229
- if (raw === undefined) {
230
- const nextValue = argv[i + 1];
231
- if (typeof nextValue !== 'string' || (!isNumericValue(nextValue) && isFlagToken(nextValue))) {
324
+ case 'array': {
325
+ const collected = [];
326
+ if (inlineValue !== undefined && inlineValue.length > 0) {
327
+ collected.push(inlineValue);
328
+ }
329
+ let cursor = i + 1;
330
+ while (cursor < argv.length) {
331
+ const nextValue = argv[cursor];
332
+ if (nextValue === undefined) {
333
+ cursor += 1;
334
+ continue;
335
+ }
336
+ if (stopAtDoubleDash && nextValue === '--') {
337
+ break;
338
+ }
339
+ if (isFlagToken(nextValue)) {
340
+ break;
341
+ }
342
+ collected.push(nextValue);
343
+ cursor += 1;
344
+ }
345
+ if (cursor > i + 1) {
346
+ i = cursor - 1;
347
+ }
348
+ if (collected.length === 0 && spec.allowEmpty !== true) {
232
349
  pushIssue({
233
350
  code: 'MISSING_VALUE',
234
351
  severity: 'error',
235
352
  message: `Missing value for ${flag}.`,
236
353
  flag,
237
- key: String(key),
354
+ key,
238
355
  index: i
239
356
  });
240
- continue;
241
- }
242
- raw = nextValue;
243
- i += 1;
244
- }
245
- if (!isNumericValue(raw)) {
246
- pushIssue({
247
- code: 'INVALID_VALUE',
248
- severity: 'error',
249
- message: `Invalid number value for ${flag}: ${raw}.`,
250
- flag,
251
- key: String(key),
252
- value: raw,
253
- index: i
254
- });
255
- continue;
256
- }
257
- values[key] = Number(raw);
258
- continue;
259
- }
260
- if (spec.type === 'array') {
261
- const collected = [];
262
- if (inlineValue !== undefined && inlineValue.length > 0) {
263
- collected.push(inlineValue);
264
- }
265
- let cursor = i + 1;
266
- while (cursor < argv.length) {
267
- const nextValue = argv[cursor];
268
- if (stopAtDoubleDash && nextValue === '--') {
269
357
  break;
270
358
  }
271
- if (isFlagToken(nextValue)) {
272
- break;
273
- }
274
- collected.push(nextValue);
275
- cursor += 1;
276
- }
277
- if (cursor > i + 1) {
278
- i = cursor - 1;
359
+ const existing = Array.isArray(values[key]) ? values[key] : [];
360
+ values[key] = [...existing, ...collected];
361
+ break;
279
362
  }
280
- if (collected.length === 0 && spec.allowEmpty !== true) {
281
- pushIssue({
282
- code: 'MISSING_VALUE',
283
- severity: 'error',
284
- message: `Missing value for ${flag}.`,
285
- flag,
286
- key: String(key),
287
- index: i
288
- });
289
- continue;
290
- }
291
- const existing = Array.isArray(values[key]) ? values[key] : [];
292
- values[key] = [...existing, ...collected];
293
- continue;
363
+ default:
364
+ break;
294
365
  }
295
366
  }
296
367
  for (const [key, spec] of normalized.entries()) {
297
- if (spec.required && !present[key]) {
368
+ if (spec.required === true && present[key] !== true) {
298
369
  const primaryFlag = spec.flags[0];
299
370
  pushIssue({
300
371
  code: 'REQUIRED',
301
372
  severity: 'error',
302
373
  message: `Missing required flag ${primaryFlag ?? ''}.`,
303
- ...(primaryFlag ? { flag: primaryFlag } : {}),
304
- key: String(key)
374
+ ...(typeof primaryFlag === 'string' ? { flag: primaryFlag } : {}),
375
+ key
305
376
  });
306
377
  }
307
378
  }
308
379
  const ok = issues.every((issue) => issue.severity !== 'error');
309
380
  return {
310
- values,
311
- present,
381
+ values: values,
382
+ present: present,
312
383
  rest,
313
384
  unknown,
314
385
  issues,
@@ -318,16 +389,22 @@ export const parseArgs = (schema, options = {}) => {
318
389
  export default parseArgs;
319
390
  export const toJsonResult = (result) => {
320
391
  const values = {};
321
- for (const [key, value] of Object.entries(result.values)) {
392
+ const valueEntries = result.values;
393
+ for (const [key, value] of Object.entries(valueEntries)) {
322
394
  if (value === undefined) {
323
395
  values[key] = null;
324
396
  continue;
325
397
  }
326
398
  values[key] = value;
327
399
  }
400
+ const presentEntries = result.present;
401
+ const present = {};
402
+ for (const [key, value] of Object.entries(presentEntries)) {
403
+ present[key] = value;
404
+ }
328
405
  return {
329
406
  values,
330
- present: result.present,
407
+ present,
331
408
  rest: [...result.rest],
332
409
  unknown: [...result.unknown],
333
410
  issues: [...result.issues],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "argv-flags",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Schema-based CLI flag parser for Node.js.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -9,7 +9,8 @@
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
11
  "default": "./dist/index.js"
12
- }
12
+ },
13
+ "./schema/parse-result.schema.json": "./schema/parse-result.schema.json"
13
14
  },
14
15
  "files": [
15
16
  "CHANGELOG.md",
@@ -20,7 +21,8 @@
20
21
  ],
21
22
  "scripts": {
22
23
  "build": "tsc -p tsconfig.json",
23
- "test": "npm run build && node --test"
24
+ "lint": "eslint .",
25
+ "test": "npm run build && npm run lint && node --test"
24
26
  },
25
27
  "repository": {
26
28
  "type": "git",
@@ -42,8 +44,16 @@
42
44
  "node": ">=24"
43
45
  },
44
46
  "devDependencies": {
47
+ "@eslint/js": "^9.39.2",
45
48
  "@types/node": "^24.0.0",
49
+ "@typescript-eslint/eslint-plugin": "^8.54.0",
50
+ "@typescript-eslint/parser": "^8.54.0",
46
51
  "ajv": "^8.17.1",
52
+ "eslint": "^9.39.2",
53
+ "eslint-plugin-n": "^17.23.2",
54
+ "eslint-plugin-promise": "^7.2.1",
55
+ "eslint-plugin-security": "^3.0.1",
56
+ "globals": "^17.2.0",
47
57
  "typescript": "^5.5.4"
48
58
  }
49
59
  }