@optique/core 1.0.0-dev.509 → 1.0.0-dev.511

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.
@@ -1085,7 +1085,8 @@ type MergeTailOptions = MergeOptions & {
1085
1085
  type MergeArityGuard<TParsers extends readonly unknown[]> = IsTuple<TParsers> extends true ? TParsers["length"] extends MergeParserArity ? unknown : MergeArityLimitError : unknown;
1086
1086
  type MergeParsers = readonly Parser<Mode, unknown, unknown>[];
1087
1087
  type EnsureMergeParsers<TParsers extends MergeParsers> = { readonly [K in keyof TParsers]: ExtractObjectTypes<TParsers[K]> extends never ? never : TParsers[K] };
1088
- type MergeValues<TParsers extends MergeParsers> = TParsers extends readonly [infer THead extends Parser<Mode, unknown, unknown>, ...infer TRest extends MergeParsers] ? ExtractObjectTypes<THead> & MergeValues<TRest> : Record<string | symbol, unknown>;
1088
+ type IntersectMergeValues<TParsers extends MergeParsers> = TParsers extends readonly [infer THead extends Parser<Mode, unknown, unknown>, ...infer TRest extends MergeParsers] ? ExtractObjectTypes<THead> & IntersectMergeValues<TRest> : unknown;
1089
+ type MergeValues<TParsers extends MergeParsers> = IsTuple<TParsers> extends true ? IntersectMergeValues<TParsers> : Record<string | symbol, unknown>;
1089
1090
  type MergeReturnType<TParsers extends MergeParsers> = Parser<CombineModes<{ readonly [K in keyof TParsers]: ExtractMode<TParsers[K]> }>, MergeValues<TParsers>, Record<string | symbol, unknown>>;
1090
1091
  /**
1091
1092
  * Merges multiple object-like parsers into one parser.
@@ -1115,6 +1116,16 @@ declare function merge<const TParsers extends MergeParsers>(...rest: [...parsers
1115
1116
  * @since 0.4.0
1116
1117
  */
1117
1118
  declare function merge<const TParsers extends MergeParsers>(label: string, ...parsers: EnsureMergeParsers<TParsers> & MergeArityGuard<TParsers>): MergeReturnType<TParsers>;
1119
+ /**
1120
+ * Merges multiple object-like parsers into one labeled parser, with options.
1121
+ *
1122
+ * @param label Label used in documentation output.
1123
+ * @param rest Parsers to merge, followed by merge options.
1124
+ * @returns A parser that merges parsed object fields from all parsers.
1125
+ * Type inference is precise for tuple calls up to 15 parser arguments.
1126
+ * @since 0.7.0
1127
+ */
1128
+ declare function merge<const TParsers extends MergeParsers>(label: string, ...rest: [...parsers: EnsureMergeParsers<TParsers>, options: MergeTailOptions] & MergeArityGuard<TParsers>): MergeReturnType<TParsers>;
1118
1129
  type ConcatParserArity = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
1119
1130
  type ConcatArityLimitError = {
1120
1131
  readonly __optiqueConcatArityLimit: "concat() requires between 1 and 15 parser arguments. Nest concat() to combine more.";
@@ -1085,7 +1085,8 @@ type MergeTailOptions = MergeOptions & {
1085
1085
  type MergeArityGuard<TParsers extends readonly unknown[]> = IsTuple<TParsers> extends true ? TParsers["length"] extends MergeParserArity ? unknown : MergeArityLimitError : unknown;
1086
1086
  type MergeParsers = readonly Parser<Mode, unknown, unknown>[];
1087
1087
  type EnsureMergeParsers<TParsers extends MergeParsers> = { readonly [K in keyof TParsers]: ExtractObjectTypes<TParsers[K]> extends never ? never : TParsers[K] };
1088
- type MergeValues<TParsers extends MergeParsers> = TParsers extends readonly [infer THead extends Parser<Mode, unknown, unknown>, ...infer TRest extends MergeParsers] ? ExtractObjectTypes<THead> & MergeValues<TRest> : Record<string | symbol, unknown>;
1088
+ type IntersectMergeValues<TParsers extends MergeParsers> = TParsers extends readonly [infer THead extends Parser<Mode, unknown, unknown>, ...infer TRest extends MergeParsers] ? ExtractObjectTypes<THead> & IntersectMergeValues<TRest> : unknown;
1089
+ type MergeValues<TParsers extends MergeParsers> = IsTuple<TParsers> extends true ? IntersectMergeValues<TParsers> : Record<string | symbol, unknown>;
1089
1090
  type MergeReturnType<TParsers extends MergeParsers> = Parser<CombineModes<{ readonly [K in keyof TParsers]: ExtractMode<TParsers[K]> }>, MergeValues<TParsers>, Record<string | symbol, unknown>>;
1090
1091
  /**
1091
1092
  * Merges multiple object-like parsers into one parser.
@@ -1115,6 +1116,16 @@ declare function merge<const TParsers extends MergeParsers>(...rest: [...parsers
1115
1116
  * @since 0.4.0
1116
1117
  */
1117
1118
  declare function merge<const TParsers extends MergeParsers>(label: string, ...parsers: EnsureMergeParsers<TParsers> & MergeArityGuard<TParsers>): MergeReturnType<TParsers>;
1119
+ /**
1120
+ * Merges multiple object-like parsers into one labeled parser, with options.
1121
+ *
1122
+ * @param label Label used in documentation output.
1123
+ * @param rest Parsers to merge, followed by merge options.
1124
+ * @returns A parser that merges parsed object fields from all parsers.
1125
+ * Type inference is precise for tuple calls up to 15 parser arguments.
1126
+ * @since 0.7.0
1127
+ */
1128
+ declare function merge<const TParsers extends MergeParsers>(label: string, ...rest: [...parsers: EnsureMergeParsers<TParsers>, options: MergeTailOptions] & MergeArityGuard<TParsers>): MergeReturnType<TParsers>;
1118
1129
  type ConcatParserArity = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
1119
1130
  type ConcatArityLimitError = {
1120
1131
  readonly __optiqueConcatArityLimit: "concat() requires between 1 and 15 parser arguments. Nest concat() to combine more.";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optique/core",
3
- "version": "1.0.0-dev.509+52b4f7b6",
3
+ "version": "1.0.0-dev.511+2a5e3e40",
4
4
  "description": "Type-safe combinatorial command-line interface parser",
5
5
  "keywords": [
6
6
  "CLI",