@optique/core 1.0.0-dev.1523 → 1.0.0-dev.1531

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/parser.cjs CHANGED
@@ -299,14 +299,20 @@ function findCommandInExclusive(term, commandName) {
299
299
  * in a Promise).
300
300
  *
301
301
  * @param parser The sync parser to generate documentation for.
302
- * @param args Optional array of command-line arguments for context.
303
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
302
+ * @param argsOrOptions Optional array of command-line arguments for context,
303
+ * or a {@link ParseOptions} object for annotations. When a
304
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
305
+ * @param options Optional {@link ParseOptions} for customizing parsing
306
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
304
307
  * @returns A {@link DocPage} or `undefined`.
305
308
  * @since 0.9.0
306
309
  * @since 0.10.0 Added optional `options` parameter for annotations support.
310
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
311
+ * directly.
307
312
  */
308
- function getDocPageSync(parser, args = [], options) {
309
- return getDocPageSyncImpl(parser, args, options);
313
+ function getDocPageSync(parser, argsOrOptions, options) {
314
+ if (Array.isArray(argsOrOptions)) return getDocPageSyncImpl(parser, argsOrOptions, options);
315
+ return getDocPageSyncImpl(parser, [], argsOrOptions ?? options);
310
316
  }
311
317
  /**
312
318
  * Generates a documentation page for any parser, returning a Promise.
@@ -316,19 +322,28 @@ function getDocPageSync(parser, args = [], options) {
316
322
  * async value parsers.
317
323
  *
318
324
  * @param parser The parser to generate documentation for.
319
- * @param args Optional array of command-line arguments for context.
320
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
325
+ * @param argsOrOptions Optional array of command-line arguments for context,
326
+ * or a {@link ParseOptions} object for annotations. When a
327
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
328
+ * @param options Optional {@link ParseOptions} for customizing parsing
329
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
321
330
  * @returns A Promise of {@link DocPage} or `undefined`.
322
331
  * @since 0.9.0
323
332
  * @since 0.10.0 Added optional `options` parameter for annotations support.
333
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
334
+ * directly.
324
335
  */
325
- function getDocPageAsync(parser, args = [], options) {
326
- if (parser.$mode === "sync") return Promise.resolve(getDocPageSyncImpl(parser, args, options));
327
- return getDocPageAsyncImpl(parser, args, options);
336
+ function getDocPageAsync(parser, argsOrOptions, options) {
337
+ const args = Array.isArray(argsOrOptions) ? argsOrOptions : [];
338
+ const opts = Array.isArray(argsOrOptions) ? options : argsOrOptions ?? options;
339
+ if (parser.$mode === "sync") return Promise.resolve(getDocPageSyncImpl(parser, args, opts));
340
+ return getDocPageAsyncImpl(parser, args, opts);
328
341
  }
329
- function getDocPage(parser, args = [], options) {
330
- if (parser.$mode === "sync") return getDocPageSyncImpl(parser, args, options);
331
- return getDocPageAsyncImpl(parser, args, options);
342
+ function getDocPage(parser, argsOrOptions, options) {
343
+ const args = Array.isArray(argsOrOptions) ? argsOrOptions : [];
344
+ const opts = Array.isArray(argsOrOptions) ? options : argsOrOptions ?? options;
345
+ if (parser.$mode === "sync") return getDocPageSyncImpl(parser, args, opts);
346
+ return getDocPageAsyncImpl(parser, args, opts);
332
347
  }
333
348
  /**
334
349
  * Internal sync implementation of getDocPage.
package/dist/parser.d.cts CHANGED
@@ -511,13 +511,18 @@ declare function suggest<M extends Mode, T>(parser: Parser<M, T, unknown>, args:
511
511
  * in a Promise).
512
512
  *
513
513
  * @param parser The sync parser to generate documentation for.
514
- * @param args Optional array of command-line arguments for context.
515
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
514
+ * @param argsOrOptions Optional array of command-line arguments for context,
515
+ * or a {@link ParseOptions} object for annotations. When a
516
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
517
+ * @param options Optional {@link ParseOptions} for customizing parsing
518
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
516
519
  * @returns A {@link DocPage} or `undefined`.
517
520
  * @since 0.9.0
518
521
  * @since 0.10.0 Added optional `options` parameter for annotations support.
522
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
523
+ * directly.
519
524
  */
520
- declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, args?: readonly string[], options?: ParseOptions): DocPage | undefined;
525
+ declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): DocPage | undefined;
521
526
  /**
522
527
  * Generates a documentation page for any parser, returning a Promise.
523
528
  *
@@ -526,13 +531,18 @@ declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, args?:
526
531
  * async value parsers.
527
532
  *
528
533
  * @param parser The parser to generate documentation for.
529
- * @param args Optional array of command-line arguments for context.
530
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
534
+ * @param argsOrOptions Optional array of command-line arguments for context,
535
+ * or a {@link ParseOptions} object for annotations. When a
536
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
537
+ * @param options Optional {@link ParseOptions} for customizing parsing
538
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
531
539
  * @returns A Promise of {@link DocPage} or `undefined`.
532
540
  * @since 0.9.0
533
541
  * @since 0.10.0 Added optional `options` parameter for annotations support.
542
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
543
+ * directly.
534
544
  */
535
- declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?: readonly string[], options?: ParseOptions): Promise<DocPage | undefined>;
545
+ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): Promise<DocPage | undefined>;
536
546
  /**
537
547
  * Generates a documentation page for a parser based on its current state after
538
548
  * attempting to parse the provided arguments. This function is useful for
@@ -548,10 +558,12 @@ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?:
548
558
  * For async parsers, returns a Promise of the documentation page.
549
559
  *
550
560
  * @param parser The parser to generate documentation for
551
- * @param args Optional array of command-line arguments that have been parsed
552
- * so far. Defaults to an empty array. This is used to determine
553
- * the current parsing context and generate contextual documentation.
554
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
561
+ * @param argsOrOptions Optional array of command-line arguments that have been
562
+ * parsed so far, or a {@link ParseOptions} object for annotations.
563
+ * When a `ParseOptions` is passed here, the `options` parameter is
564
+ * ignored. Defaults to an empty array when omitted.
565
+ * @param options Optional {@link ParseOptions} for customizing parsing
566
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
555
567
  * @returns For sync parsers, returns a {@link DocPage} directly.
556
568
  * For async parsers, returns a Promise of {@link DocPage}.
557
569
  * Returns `undefined` if no documentation can be generated.
@@ -571,9 +583,11 @@ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?:
571
583
  * ```
572
584
  * @since 0.9.0 Updated to support async parsers.
573
585
  * @since 0.10.0 Added optional `options` parameter for annotations support.
586
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
587
+ * directly.
574
588
  */
575
- declare function getDocPage(parser: Parser<"sync", unknown, unknown>, args?: readonly string[], options?: ParseOptions): DocPage | undefined;
576
- declare function getDocPage(parser: Parser<"async", unknown, unknown>, args?: readonly string[], options?: ParseOptions): Promise<DocPage | undefined>;
577
- declare function getDocPage<M extends Mode>(parser: Parser<M, unknown, unknown>, args?: readonly string[], options?: ParseOptions): ModeValue<M, DocPage | undefined>;
589
+ declare function getDocPage(parser: Parser<"sync", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): DocPage | undefined;
590
+ declare function getDocPage(parser: Parser<"async", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): Promise<DocPage | undefined>;
591
+ declare function getDocPage<M extends Mode>(parser: Parser<M, unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): ModeValue<M, DocPage | undefined>;
578
592
  //#endregion
579
593
  export { ArgumentErrorOptions, ArgumentOptions, CombineModes, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, GroupOptions, InferMode, InferValue, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionOptions, OptionState, OrErrorOptions, OrOptions, type ParseOptions, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, Result, Suggestion, TupleOptions, WithDefaultError, WithDefaultOptions, argument, command, concat, conditional, constant, fail, flag, getDocPage, getDocPageAsync, getDocPageSync, group, longestMatch, map, merge, multiple, nonEmpty, object, option, optional, or, parse, parseAsync, parseSync, passThrough, suggest, suggestAsync, suggestSync, tuple, withDefault };
package/dist/parser.d.ts CHANGED
@@ -511,13 +511,18 @@ declare function suggest<M extends Mode, T>(parser: Parser<M, T, unknown>, args:
511
511
  * in a Promise).
512
512
  *
513
513
  * @param parser The sync parser to generate documentation for.
514
- * @param args Optional array of command-line arguments for context.
515
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
514
+ * @param argsOrOptions Optional array of command-line arguments for context,
515
+ * or a {@link ParseOptions} object for annotations. When a
516
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
517
+ * @param options Optional {@link ParseOptions} for customizing parsing
518
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
516
519
  * @returns A {@link DocPage} or `undefined`.
517
520
  * @since 0.9.0
518
521
  * @since 0.10.0 Added optional `options` parameter for annotations support.
522
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
523
+ * directly.
519
524
  */
520
- declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, args?: readonly string[], options?: ParseOptions): DocPage | undefined;
525
+ declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): DocPage | undefined;
521
526
  /**
522
527
  * Generates a documentation page for any parser, returning a Promise.
523
528
  *
@@ -526,13 +531,18 @@ declare function getDocPageSync(parser: Parser<"sync", unknown, unknown>, args?:
526
531
  * async value parsers.
527
532
  *
528
533
  * @param parser The parser to generate documentation for.
529
- * @param args Optional array of command-line arguments for context.
530
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
534
+ * @param argsOrOptions Optional array of command-line arguments for context,
535
+ * or a {@link ParseOptions} object for annotations. When a
536
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
537
+ * @param options Optional {@link ParseOptions} for customizing parsing
538
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
531
539
  * @returns A Promise of {@link DocPage} or `undefined`.
532
540
  * @since 0.9.0
533
541
  * @since 0.10.0 Added optional `options` parameter for annotations support.
542
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
543
+ * directly.
534
544
  */
535
- declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?: readonly string[], options?: ParseOptions): Promise<DocPage | undefined>;
545
+ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): Promise<DocPage | undefined>;
536
546
  /**
537
547
  * Generates a documentation page for a parser based on its current state after
538
548
  * attempting to parse the provided arguments. This function is useful for
@@ -548,10 +558,12 @@ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?:
548
558
  * For async parsers, returns a Promise of the documentation page.
549
559
  *
550
560
  * @param parser The parser to generate documentation for
551
- * @param args Optional array of command-line arguments that have been parsed
552
- * so far. Defaults to an empty array. This is used to determine
553
- * the current parsing context and generate contextual documentation.
554
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
561
+ * @param argsOrOptions Optional array of command-line arguments that have been
562
+ * parsed so far, or a {@link ParseOptions} object for annotations.
563
+ * When a `ParseOptions` is passed here, the `options` parameter is
564
+ * ignored. Defaults to an empty array when omitted.
565
+ * @param options Optional {@link ParseOptions} for customizing parsing
566
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
555
567
  * @returns For sync parsers, returns a {@link DocPage} directly.
556
568
  * For async parsers, returns a Promise of {@link DocPage}.
557
569
  * Returns `undefined` if no documentation can be generated.
@@ -571,9 +583,11 @@ declare function getDocPageAsync(parser: Parser<Mode, unknown, unknown>, args?:
571
583
  * ```
572
584
  * @since 0.9.0 Updated to support async parsers.
573
585
  * @since 0.10.0 Added optional `options` parameter for annotations support.
586
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
587
+ * directly.
574
588
  */
575
- declare function getDocPage(parser: Parser<"sync", unknown, unknown>, args?: readonly string[], options?: ParseOptions): DocPage | undefined;
576
- declare function getDocPage(parser: Parser<"async", unknown, unknown>, args?: readonly string[], options?: ParseOptions): Promise<DocPage | undefined>;
577
- declare function getDocPage<M extends Mode>(parser: Parser<M, unknown, unknown>, args?: readonly string[], options?: ParseOptions): ModeValue<M, DocPage | undefined>;
589
+ declare function getDocPage(parser: Parser<"sync", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): DocPage | undefined;
590
+ declare function getDocPage(parser: Parser<"async", unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): Promise<DocPage | undefined>;
591
+ declare function getDocPage<M extends Mode>(parser: Parser<M, unknown, unknown>, argsOrOptions?: readonly string[] | ParseOptions, options?: ParseOptions): ModeValue<M, DocPage | undefined>;
578
592
  //#endregion
579
593
  export { ArgumentErrorOptions, ArgumentOptions, CombineModes, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, GroupOptions, InferMode, InferValue, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionOptions, OptionState, OrErrorOptions, OrOptions, type ParseOptions, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, Result, Suggestion, TupleOptions, WithDefaultError, WithDefaultOptions, argument, command, concat, conditional, constant, fail, flag, getDocPage, getDocPageAsync, getDocPageSync, group, longestMatch, map, merge, multiple, nonEmpty, object, option, optional, or, parse, parseAsync, parseSync, passThrough, suggest, suggestAsync, suggestSync, tuple, withDefault };
package/dist/parser.js CHANGED
@@ -299,14 +299,20 @@ function findCommandInExclusive(term, commandName) {
299
299
  * in a Promise).
300
300
  *
301
301
  * @param parser The sync parser to generate documentation for.
302
- * @param args Optional array of command-line arguments for context.
303
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
302
+ * @param argsOrOptions Optional array of command-line arguments for context,
303
+ * or a {@link ParseOptions} object for annotations. When a
304
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
305
+ * @param options Optional {@link ParseOptions} for customizing parsing
306
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
304
307
  * @returns A {@link DocPage} or `undefined`.
305
308
  * @since 0.9.0
306
309
  * @since 0.10.0 Added optional `options` parameter for annotations support.
310
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
311
+ * directly.
307
312
  */
308
- function getDocPageSync(parser, args = [], options) {
309
- return getDocPageSyncImpl(parser, args, options);
313
+ function getDocPageSync(parser, argsOrOptions, options) {
314
+ if (Array.isArray(argsOrOptions)) return getDocPageSyncImpl(parser, argsOrOptions, options);
315
+ return getDocPageSyncImpl(parser, [], argsOrOptions ?? options);
310
316
  }
311
317
  /**
312
318
  * Generates a documentation page for any parser, returning a Promise.
@@ -316,19 +322,28 @@ function getDocPageSync(parser, args = [], options) {
316
322
  * async value parsers.
317
323
  *
318
324
  * @param parser The parser to generate documentation for.
319
- * @param args Optional array of command-line arguments for context.
320
- * @param options Optional {@link ParseOptions} for customizing parsing behavior.
325
+ * @param argsOrOptions Optional array of command-line arguments for context,
326
+ * or a {@link ParseOptions} object for annotations. When a
327
+ * `ParseOptions` is passed here, the `options` parameter is ignored.
328
+ * @param options Optional {@link ParseOptions} for customizing parsing
329
+ * behavior. Only used when `argsOrOptions` is an array or omitted.
321
330
  * @returns A Promise of {@link DocPage} or `undefined`.
322
331
  * @since 0.9.0
323
332
  * @since 0.10.0 Added optional `options` parameter for annotations support.
333
+ * @since 1.0.0 The second parameter now also accepts a `ParseOptions` object
334
+ * directly.
324
335
  */
325
- function getDocPageAsync(parser, args = [], options) {
326
- if (parser.$mode === "sync") return Promise.resolve(getDocPageSyncImpl(parser, args, options));
327
- return getDocPageAsyncImpl(parser, args, options);
336
+ function getDocPageAsync(parser, argsOrOptions, options) {
337
+ const args = Array.isArray(argsOrOptions) ? argsOrOptions : [];
338
+ const opts = Array.isArray(argsOrOptions) ? options : argsOrOptions ?? options;
339
+ if (parser.$mode === "sync") return Promise.resolve(getDocPageSyncImpl(parser, args, opts));
340
+ return getDocPageAsyncImpl(parser, args, opts);
328
341
  }
329
- function getDocPage(parser, args = [], options) {
330
- if (parser.$mode === "sync") return getDocPageSyncImpl(parser, args, options);
331
- return getDocPageAsyncImpl(parser, args, options);
342
+ function getDocPage(parser, argsOrOptions, options) {
343
+ const args = Array.isArray(argsOrOptions) ? argsOrOptions : [];
344
+ const opts = Array.isArray(argsOrOptions) ? options : argsOrOptions ?? options;
345
+ if (parser.$mode === "sync") return getDocPageSyncImpl(parser, args, opts);
346
+ return getDocPageAsyncImpl(parser, args, opts);
332
347
  }
333
348
  /**
334
349
  * Internal sync implementation of getDocPage.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "1.0.0-dev.1523+edc4d966",
3
+ "version": "1.0.0-dev.1531+6382e76e",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",