@optique/core 0.9.0-dev.211 → 0.9.0-dev.215
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/constructs.cjs +1332 -602
- package/dist/constructs.d.cts +182 -62
- package/dist/constructs.d.ts +182 -62
- package/dist/constructs.js +1332 -602
- package/dist/facade.cjs +188 -144
- package/dist/facade.d.cts +41 -3
- package/dist/facade.d.ts +41 -3
- package/dist/facade.js +187 -145
- package/dist/index.cjs +8 -0
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/modifiers.cjs +228 -79
- package/dist/modifiers.d.cts +11 -6
- package/dist/modifiers.d.ts +11 -6
- package/dist/modifiers.js +228 -79
- package/dist/parser.cjs +217 -33
- package/dist/parser.d.cts +202 -18
- package/dist/parser.d.ts +202 -18
- package/dist/parser.js +212 -34
- package/dist/primitives.cjs +242 -97
- package/dist/primitives.d.cts +14 -10
- package/dist/primitives.d.ts +14 -10
- package/dist/primitives.js +242 -97
- package/dist/valueparser.cjs +10 -1
- package/dist/valueparser.d.cts +29 -16
- package/dist/valueparser.d.ts +29 -16
- package/dist/valueparser.js +10 -1
- package/package.json +1 -1
package/dist/constructs.d.cts
CHANGED
|
@@ -1,8 +1,27 @@
|
|
|
1
1
|
import { Message } from "./message.cjs";
|
|
2
|
-
import { Parser, ParserResult } from "./parser.cjs";
|
|
2
|
+
import { CombineModes, InferValue, Mode, Parser, ParserResult } from "./parser.cjs";
|
|
3
3
|
|
|
4
4
|
//#region src/constructs.d.ts
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Helper type to extract Mode from a Parser.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
type ExtractMode<T> = T extends Parser<infer M, unknown, unknown> ? M : never;
|
|
11
|
+
/**
|
|
12
|
+
* Helper type to combine modes from an object of parsers.
|
|
13
|
+
* Returns "async" if any parser is async, otherwise "sync".
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
type CombineObjectModes<T extends {
|
|
17
|
+
readonly [key: string | symbol]: Parser<Mode, unknown, unknown>;
|
|
18
|
+
}> = CombineModes<{ [K in keyof T]: ExtractMode<T[K]> }[keyof T] extends infer M ? M extends Mode ? readonly [M] : never : never>;
|
|
19
|
+
/**
|
|
20
|
+
* Helper type to combine modes from a tuple of parsers.
|
|
21
|
+
* Returns "async" if any parser is async, otherwise "sync".
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
type CombineTupleModes<T extends readonly Parser<Mode, unknown, unknown>[]> = CombineModes<{ readonly [K in keyof T]: ExtractMode<T[K]> }>;
|
|
6
25
|
/**
|
|
7
26
|
* Options for customizing error messages in the {@link or} combinator.
|
|
8
27
|
* @since 0.5.0
|
|
@@ -90,6 +109,8 @@ declare class DuplicateOptionError extends Error {
|
|
|
90
109
|
* Creates a parser that combines two mutually exclusive parsers into one.
|
|
91
110
|
* The resulting parser will try each of the provided parsers in order,
|
|
92
111
|
* and return the result of the first successful parser.
|
|
112
|
+
* @template MA The mode of the first parser.
|
|
113
|
+
* @template MB The mode of the second parser.
|
|
93
114
|
* @template TA The type of the value returned by the first parser.
|
|
94
115
|
* @template TB The type of the value returned by the second parser.
|
|
95
116
|
* @template TStateA The type of the state used by the first parser.
|
|
@@ -99,11 +120,14 @@ declare class DuplicateOptionError extends Error {
|
|
|
99
120
|
* @returns A {@link Parser} that tries to parse using the provided parsers
|
|
100
121
|
* in order, returning the result of the first successful parser.
|
|
101
122
|
*/
|
|
102
|
-
declare function or<TA, TB, TStateA, TStateB>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>): Parser<TA | TB, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>]>;
|
|
123
|
+
declare function or<MA extends Mode, MB extends Mode, TA, TB, TStateA, TStateB>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>): Parser<CombineModes<readonly [MA, MB]>, TA | TB, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>]>;
|
|
103
124
|
/**
|
|
104
125
|
* Creates a parser that combines three mutually exclusive parsers into one.
|
|
105
126
|
* The resulting parser will try each of the provided parsers in order,
|
|
106
127
|
* and return the result of the first successful parser.
|
|
128
|
+
* @template MA The mode of the first parser.
|
|
129
|
+
* @template MB The mode of the second parser.
|
|
130
|
+
* @template MC The mode of the third parser.
|
|
107
131
|
* @template TA The type of the value returned by the first parser.
|
|
108
132
|
* @template TB The type of the value returned by the second parser.
|
|
109
133
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -116,11 +140,15 @@ declare function or<TA, TB, TStateA, TStateB>(a: Parser<TA, TStateA>, b: Parser<
|
|
|
116
140
|
* @return A {@link Parser} that tries to parse using the provided parsers
|
|
117
141
|
* in order, returning the result of the first successful parser.
|
|
118
142
|
*/
|
|
119
|
-
declare function or<TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>): Parser<TA | TB | TC, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>]>;
|
|
143
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>): Parser<CombineModes<readonly [MA, MB, MC]>, TA | TB | TC, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>]>;
|
|
120
144
|
/**
|
|
121
145
|
* Creates a parser that combines four mutually exclusive parsers into one.
|
|
122
146
|
* The resulting parser will try each of the provided parsers in order,
|
|
123
147
|
* and return the result of the first successful parser.
|
|
148
|
+
* @template MA The mode of the first parser.
|
|
149
|
+
* @template MB The mode of the second parser.
|
|
150
|
+
* @template MC The mode of the third parser.
|
|
151
|
+
* @template MD The mode of the fourth parser.
|
|
124
152
|
* @template TA The type of the value returned by the first parser.
|
|
125
153
|
* @template TB The type of the value returned by the second parser.
|
|
126
154
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -136,11 +164,16 @@ declare function or<TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<TA, TStateA
|
|
|
136
164
|
* @return A {@link Parser} that tries to parse using the provided parsers
|
|
137
165
|
* in order, returning the result of the first successful parser.
|
|
138
166
|
*/
|
|
139
|
-
declare function or<TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>): Parser<TA | TB | TC | TD, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>]>;
|
|
167
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>): Parser<CombineModes<readonly [MA, MB, MC, MD]>, TA | TB | TC | TD, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>]>;
|
|
140
168
|
/**
|
|
141
169
|
* Creates a parser that combines five mutually exclusive parsers into one.
|
|
142
170
|
* The resulting parser will try each of the provided parsers in order,
|
|
143
171
|
* and return the result of the first successful parser.
|
|
172
|
+
* @template MA The mode of the first parser.
|
|
173
|
+
* @template MB The mode of the second parser.
|
|
174
|
+
* @template MC The mode of the third parser.
|
|
175
|
+
* @template MD The mode of the fourth parser.
|
|
176
|
+
* @template ME The mode of the fifth parser.
|
|
144
177
|
* @template TA The type of the value returned by the first parser.
|
|
145
178
|
* @template TB The type of the value returned by the second parser.
|
|
146
179
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -159,11 +192,17 @@ declare function or<TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD>(a: Parse
|
|
|
159
192
|
* @return A {@link Parser} that tries to parse using the provided parsers
|
|
160
193
|
* in order, returning the result of the first successful parser.
|
|
161
194
|
*/
|
|
162
|
-
declare function or<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>): Parser<TA | TB | TC | TD | TE, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>]>;
|
|
195
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME]>, TA | TB | TC | TD | TE, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>]>;
|
|
163
196
|
/**
|
|
164
197
|
* Creates a parser that combines six mutually exclusive parsers into one.
|
|
165
198
|
* The resulting parser will try each of the provided parsers in order,
|
|
166
199
|
* and return the result of the first successful parser.
|
|
200
|
+
* @template MA The mode of the first parser.
|
|
201
|
+
* @template MB The mode of the second parser.
|
|
202
|
+
* @template MC The mode of the third parser.
|
|
203
|
+
* @template MD The mode of the fourth parser.
|
|
204
|
+
* @template ME The mode of the fifth parser.
|
|
205
|
+
* @template MF The mode of the sixth parser.
|
|
167
206
|
* @template TA The type of the value returned by the first parser.
|
|
168
207
|
* @template TB The type of the value returned by the second parser.
|
|
169
208
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -186,11 +225,18 @@ declare function or<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TSta
|
|
|
186
225
|
* in order, returning the result of the first successful parser.
|
|
187
226
|
* @since 0.3.0
|
|
188
227
|
*/
|
|
189
|
-
declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>): Parser<TA | TB | TC | TD | TE | TF, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>]>;
|
|
228
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, MF extends Mode, TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>, f: Parser<MF, TF, TStateF>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME, MF]>, TA | TB | TC | TD | TE | TF, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>]>;
|
|
190
229
|
/**
|
|
191
230
|
* Creates a parser that combines seven mutually exclusive parsers into one.
|
|
192
231
|
* The resulting parser will try each of the provided parsers in order,
|
|
193
232
|
* and return the result of the first successful parser.
|
|
233
|
+
* @template MA The mode of the first parser.
|
|
234
|
+
* @template MB The mode of the second parser.
|
|
235
|
+
* @template MC The mode of the third parser.
|
|
236
|
+
* @template MD The mode of the fourth parser.
|
|
237
|
+
* @template ME The mode of the fifth parser.
|
|
238
|
+
* @template MF The mode of the sixth parser.
|
|
239
|
+
* @template MG The mode of the seventh parser.
|
|
194
240
|
* @template TA The type of the value returned by the first parser.
|
|
195
241
|
* @template TB The type of the value returned by the second parser.
|
|
196
242
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -216,11 +262,19 @@ declare function or<TA, TB, TC, TD, TE, TF, TStateA, TStateB, TStateC, TStateD,
|
|
|
216
262
|
* in order, returning the result of the first successful parser.
|
|
217
263
|
* @since 0.3.0
|
|
218
264
|
*/
|
|
219
|
-
declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>): Parser<TA | TB | TC | TD | TE | TF | TG, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>]>;
|
|
265
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, MF extends Mode, MG extends Mode, TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>, f: Parser<MF, TF, TStateF>, g: Parser<MG, TG, TStateG>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME, MF, MG]>, TA | TB | TC | TD | TE | TF | TG, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>]>;
|
|
220
266
|
/**
|
|
221
267
|
* Creates a parser that combines eight mutually exclusive parsers into one.
|
|
222
268
|
* The resulting parser will try each of the provided parsers in order,
|
|
223
269
|
* and return the result of the first successful parser.
|
|
270
|
+
* @template MA The mode of the first parser.
|
|
271
|
+
* @template MB The mode of the second parser.
|
|
272
|
+
* @template MC The mode of the third parser.
|
|
273
|
+
* @template MD The mode of the fourth parser.
|
|
274
|
+
* @template ME The mode of the fifth parser.
|
|
275
|
+
* @template MF The mode of the sixth parser.
|
|
276
|
+
* @template MG The mode of the seventh parser.
|
|
277
|
+
* @template MH The mode of the eighth parser.
|
|
224
278
|
* @template TA The type of the value returned by the first parser.
|
|
225
279
|
* @template TB The type of the value returned by the second parser.
|
|
226
280
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -249,11 +303,20 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TStateA, TStateB, TStateC, TStat
|
|
|
249
303
|
* in order, returning the result of the first successful parser.
|
|
250
304
|
* @since 0.3.0
|
|
251
305
|
*/
|
|
252
|
-
declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>): Parser<TA | TB | TC | TD | TE | TF | TG | TH, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>]>;
|
|
306
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, MF extends Mode, MG extends Mode, MH extends Mode, TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>, f: Parser<MF, TF, TStateF>, g: Parser<MG, TG, TStateG>, h: Parser<MH, TH, TStateH>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME, MF, MG, MH]>, TA | TB | TC | TD | TE | TF | TG | TH, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>]>;
|
|
253
307
|
/**
|
|
254
308
|
* Creates a parser that combines nine mutually exclusive parsers into one.
|
|
255
309
|
* The resulting parser will try each of the provided parsers in order,
|
|
256
310
|
* and return the result of the first successful parser.
|
|
311
|
+
* @template MA The mode of the first parser.
|
|
312
|
+
* @template MB The mode of the second parser.
|
|
313
|
+
* @template MC The mode of the third parser.
|
|
314
|
+
* @template MD The mode of the fourth parser.
|
|
315
|
+
* @template ME The mode of the fifth parser.
|
|
316
|
+
* @template MF The mode of the sixth parser.
|
|
317
|
+
* @template MG The mode of the seventh parser.
|
|
318
|
+
* @template MH The mode of the eighth parser.
|
|
319
|
+
* @template MI The mode of the ninth parser.
|
|
257
320
|
* @template TA The type of the value returned by the first parser.
|
|
258
321
|
* @template TB The type of the value returned by the second parser.
|
|
259
322
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -285,11 +348,21 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TStateA, TStateB, TStateC, T
|
|
|
285
348
|
* in order, returning the result of the first successful parser.
|
|
286
349
|
* @since 0.3.0
|
|
287
350
|
*/
|
|
288
|
-
declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>]>;
|
|
351
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, MF extends Mode, MG extends Mode, MH extends Mode, MI extends Mode, TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>, f: Parser<MF, TF, TStateF>, g: Parser<MG, TG, TStateG>, h: Parser<MH, TH, TStateH>, i: Parser<MI, TI, TStateI>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME, MF, MG, MH, MI]>, TA | TB | TC | TD | TE | TF | TG | TH | TI, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>]>;
|
|
289
352
|
/**
|
|
290
353
|
* Creates a parser that combines ten mutually exclusive parsers into one.
|
|
291
354
|
* The resulting parser will try each of the provided parsers in order,
|
|
292
355
|
* and return the result of the first successful parser.
|
|
356
|
+
* @template MA The mode of the first parser.
|
|
357
|
+
* @template MB The mode of the second parser.
|
|
358
|
+
* @template MC The mode of the third parser.
|
|
359
|
+
* @template MD The mode of the fourth parser.
|
|
360
|
+
* @template ME The mode of the fifth parser.
|
|
361
|
+
* @template MF The mode of the sixth parser.
|
|
362
|
+
* @template MG The mode of the seventh parser.
|
|
363
|
+
* @template MH The mode of the eighth parser.
|
|
364
|
+
* @template MI The mode of the ninth parser.
|
|
365
|
+
* @template MJ The mode of the tenth parser.
|
|
293
366
|
* @template TA The type of the value returned by the first parser.
|
|
294
367
|
* @template TB The type of the value returned by the second parser.
|
|
295
368
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -324,8 +397,34 @@ declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TStateA, TStateB, TState
|
|
|
324
397
|
* in order, returning the result of the first successful parser.
|
|
325
398
|
* @since 0.3.0
|
|
326
399
|
*/
|
|
327
|
-
declare function or<TA, TB, TC, TD, TE, TF, TG, TH, TI, TJ, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI, TStateJ>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>, f: Parser<TF, TStateF>, g: Parser<TG, TStateG>, h: Parser<TH, TStateH>, i: Parser<TI, TStateI>, j: Parser<TJ, TStateJ>): Parser<TA | TB | TC | TD | TE | TF | TG | TH | TI | TJ, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>] | [9, ParserResult<TStateJ>]>;
|
|
328
|
-
|
|
400
|
+
declare function or<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, MF extends Mode, MG extends Mode, MH extends Mode, MI extends Mode, MJ extends Mode, TA, TB, TC, TD, TE, TF, TG, TH, TI, TJ, TStateA, TStateB, TStateC, TStateD, TStateE, TStateF, TStateG, TStateH, TStateI, TStateJ>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>, f: Parser<MF, TF, TStateF>, g: Parser<MG, TG, TStateG>, h: Parser<MH, TH, TStateH>, i: Parser<MI, TI, TStateI>, j: Parser<MJ, TJ, TStateJ>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME, MF, MG, MH, MI, MJ]>, TA | TB | TC | TD | TE | TF | TG | TH | TI | TJ, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>] | [5, ParserResult<TStateF>] | [6, ParserResult<TStateG>] | [7, ParserResult<TStateH>] | [8, ParserResult<TStateI>] | [9, ParserResult<TStateJ>]>;
|
|
401
|
+
/**
|
|
402
|
+
* Creates a parser that combines two mutually exclusive parsers into one,
|
|
403
|
+
* with custom error message options.
|
|
404
|
+
* @template TA The type of the first parser.
|
|
405
|
+
* @template TB The type of the second parser.
|
|
406
|
+
* @param a The first {@link Parser} to try.
|
|
407
|
+
* @param b The second {@link Parser} to try.
|
|
408
|
+
* @param options Custom error message options.
|
|
409
|
+
* @return A {@link Parser} that tries to parse using the provided parsers.
|
|
410
|
+
* @since 0.5.0
|
|
411
|
+
*/
|
|
412
|
+
declare function or<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, options: OrOptions): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>]>, InferValue<TA> | InferValue<TB>, undefined | [number, ParserResult<unknown>]>;
|
|
413
|
+
/**
|
|
414
|
+
* Creates a parser that combines three mutually exclusive parsers into one,
|
|
415
|
+
* with custom error message options.
|
|
416
|
+
* @template TA The type of the first parser.
|
|
417
|
+
* @template TB The type of the second parser.
|
|
418
|
+
* @template TC The type of the third parser.
|
|
419
|
+
* @param a The first {@link Parser} to try.
|
|
420
|
+
* @param b The second {@link Parser} to try.
|
|
421
|
+
* @param c The third {@link Parser} to try.
|
|
422
|
+
* @param options Custom error message options.
|
|
423
|
+
* @return A {@link Parser} that tries to parse using the provided parsers.
|
|
424
|
+
* @since 0.5.0
|
|
425
|
+
*/
|
|
426
|
+
declare function or<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, options: OrOptions): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>]>, InferValue<TA> | InferValue<TB> | InferValue<TC>, undefined | [number, ParserResult<unknown>]>;
|
|
427
|
+
declare function or(...parsers: Parser<Mode, unknown, unknown>[]): Parser<Mode, unknown, undefined | [number, ParserResult<unknown>]>;
|
|
329
428
|
/**
|
|
330
429
|
* Creates a parser that tries each parser in sequence until one succeeds,
|
|
331
430
|
* with custom error message options.
|
|
@@ -334,7 +433,7 @@ declare function or(...parsers: Parser<unknown, unknown>[]): Parser<unknown, und
|
|
|
334
433
|
* @returns A parser that succeeds if any of the input parsers succeed.
|
|
335
434
|
* @since 0.5.0
|
|
336
435
|
*/
|
|
337
|
-
declare function or(parser1: Parser<unknown, unknown>, ...rest: [...parsers: Parser<unknown, unknown>[], options: OrOptions]): Parser<unknown, undefined | [number, ParserResult<unknown>]>;
|
|
436
|
+
declare function or(parser1: Parser<Mode, unknown, unknown>, ...rest: [...parsers: Parser<Mode, unknown, unknown>[], options: OrOptions]): Parser<Mode, unknown, undefined | [number, ParserResult<unknown>]>;
|
|
338
437
|
/**
|
|
339
438
|
* Options for customizing error messages in the {@link longestMatch}
|
|
340
439
|
* combinator.
|
|
@@ -396,6 +495,8 @@ interface LongestMatchErrorOptions {
|
|
|
396
495
|
* selecting the parser that consumes the most tokens.
|
|
397
496
|
* The resulting parser will try both parsers and return the result
|
|
398
497
|
* of the parser that consumed more input tokens.
|
|
498
|
+
* @template MA The mode of the first parser.
|
|
499
|
+
* @template MB The mode of the second parser.
|
|
399
500
|
* @template TA The type of the value returned by the first parser.
|
|
400
501
|
* @template TB The type of the value returned by the second parser.
|
|
401
502
|
* @template TStateA The type of the state used by the first parser.
|
|
@@ -406,12 +507,15 @@ interface LongestMatchErrorOptions {
|
|
|
406
507
|
* and returns the result of the parser that consumed more tokens.
|
|
407
508
|
* @since 0.3.0
|
|
408
509
|
*/
|
|
409
|
-
declare function longestMatch<TA, TB, TStateA, TStateB>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>): Parser<TA | TB, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>]>;
|
|
510
|
+
declare function longestMatch<MA extends Mode, MB extends Mode, TA, TB, TStateA, TStateB>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>): Parser<CombineModes<readonly [MA, MB]>, TA | TB, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>]>;
|
|
410
511
|
/**
|
|
411
512
|
* Creates a parser that combines three mutually exclusive parsers into one,
|
|
412
513
|
* selecting the parser that consumes the most tokens.
|
|
413
514
|
* The resulting parser will try all parsers and return the result
|
|
414
515
|
* of the parser that consumed the most input tokens.
|
|
516
|
+
* @template MA The mode of the first parser.
|
|
517
|
+
* @template MB The mode of the second parser.
|
|
518
|
+
* @template MC The mode of the third parser.
|
|
415
519
|
* @template TA The type of the value returned by the first parser.
|
|
416
520
|
* @template TB The type of the value returned by the second parser.
|
|
417
521
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -425,12 +529,16 @@ declare function longestMatch<TA, TB, TStateA, TStateB>(a: Parser<TA, TStateA>,
|
|
|
425
529
|
* and returns the result of the parser that consumed the most tokens.
|
|
426
530
|
* @since 0.3.0
|
|
427
531
|
*/
|
|
428
|
-
declare function longestMatch<TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>): Parser<TA | TB | TC, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>]>;
|
|
532
|
+
declare function longestMatch<MA extends Mode, MB extends Mode, MC extends Mode, TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>): Parser<CombineModes<readonly [MA, MB, MC]>, TA | TB | TC, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>]>;
|
|
429
533
|
/**
|
|
430
534
|
* Creates a parser that combines four mutually exclusive parsers into one,
|
|
431
535
|
* selecting the parser that consumes the most tokens.
|
|
432
536
|
* The resulting parser will try all parsers and return the result
|
|
433
537
|
* of the parser that consumed the most input tokens.
|
|
538
|
+
* @template MA The mode of the first parser.
|
|
539
|
+
* @template MB The mode of the second parser.
|
|
540
|
+
* @template MC The mode of the third parser.
|
|
541
|
+
* @template MD The mode of the fourth parser.
|
|
434
542
|
* @template TA The type of the value returned by the first parser.
|
|
435
543
|
* @template TB The type of the value returned by the second parser.
|
|
436
544
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -447,12 +555,17 @@ declare function longestMatch<TA, TB, TC, TStateA, TStateB, TStateC>(a: Parser<T
|
|
|
447
555
|
* and returns the result of the parser that consumed the most tokens.
|
|
448
556
|
* @since 0.3.0
|
|
449
557
|
*/
|
|
450
|
-
declare function longestMatch<TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>): Parser<TA | TB | TC | TD, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>]>;
|
|
558
|
+
declare function longestMatch<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>): Parser<CombineModes<readonly [MA, MB, MC, MD]>, TA | TB | TC | TD, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>]>;
|
|
451
559
|
/**
|
|
452
560
|
* Creates a parser that combines five mutually exclusive parsers into one,
|
|
453
561
|
* selecting the parser that consumes the most tokens.
|
|
454
562
|
* The resulting parser will try all parsers and return the result
|
|
455
563
|
* of the parser that consumed the most input tokens.
|
|
564
|
+
* @template MA The mode of the first parser.
|
|
565
|
+
* @template MB The mode of the second parser.
|
|
566
|
+
* @template MC The mode of the third parser.
|
|
567
|
+
* @template MD The mode of the fourth parser.
|
|
568
|
+
* @template ME The mode of the fifth parser.
|
|
456
569
|
* @template TA The type of the value returned by the first parser.
|
|
457
570
|
* @template TB The type of the value returned by the second parser.
|
|
458
571
|
* @template TC The type of the value returned by the third parser.
|
|
@@ -472,8 +585,20 @@ declare function longestMatch<TA, TB, TC, TD, TStateA, TStateB, TStateC, TStateD
|
|
|
472
585
|
* and returns the result of the parser that consumed the most tokens.
|
|
473
586
|
* @since 0.3.0
|
|
474
587
|
*/
|
|
475
|
-
declare function longestMatch<TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>): Parser<TA | TB | TC | TD | TE, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>]>;
|
|
476
|
-
|
|
588
|
+
declare function longestMatch<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, TA, TB, TC, TD, TE, TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME]>, TA | TB | TC | TD | TE, undefined | [0, ParserResult<TStateA>] | [1, ParserResult<TStateB>] | [2, ParserResult<TStateC>] | [3, ParserResult<TStateD>] | [4, ParserResult<TStateE>]>;
|
|
589
|
+
/**
|
|
590
|
+
* Creates a parser that combines two mutually exclusive parsers into one,
|
|
591
|
+
* with custom error message options.
|
|
592
|
+
* @since 0.5.0
|
|
593
|
+
*/
|
|
594
|
+
declare function longestMatch<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, options: LongestMatchOptions): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>]>, InferValue<TA> | InferValue<TB>, undefined | [number, ParserResult<unknown>]>;
|
|
595
|
+
/**
|
|
596
|
+
* Creates a parser that combines three mutually exclusive parsers into one,
|
|
597
|
+
* with custom error message options.
|
|
598
|
+
* @since 0.5.0
|
|
599
|
+
*/
|
|
600
|
+
declare function longestMatch<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, options: LongestMatchOptions): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>]>, InferValue<TA> | InferValue<TB> | InferValue<TC>, undefined | [number, ParserResult<unknown>]>;
|
|
601
|
+
declare function longestMatch(...parsers: Parser<Mode, unknown, unknown>[]): Parser<Mode, unknown, undefined | [number, ParserResult<unknown>]>;
|
|
477
602
|
/**
|
|
478
603
|
* Creates a parser that tries all parsers and selects the one that consumes
|
|
479
604
|
* the most input, with custom error message options.
|
|
@@ -483,7 +608,7 @@ declare function longestMatch(...parsers: Parser<unknown, unknown>[]): Parser<un
|
|
|
483
608
|
* consumed the most input.
|
|
484
609
|
* @since 0.5.0
|
|
485
610
|
*/
|
|
486
|
-
declare function longestMatch(parser1: Parser<unknown, unknown>, ...rest: [...parsers: Parser<unknown, unknown>[], options: LongestMatchOptions]): Parser<unknown, undefined | [number, ParserResult<unknown>]>;
|
|
611
|
+
declare function longestMatch(parser1: Parser<Mode, unknown, unknown>, ...rest: [...parsers: Parser<Mode, unknown, unknown>[], options: LongestMatchOptions]): Parser<Mode, unknown, undefined | [number, ParserResult<unknown>]>;
|
|
487
612
|
/**
|
|
488
613
|
* Options for the {@link object} parser.
|
|
489
614
|
* @since 0.5.0
|
|
@@ -558,8 +683,8 @@ interface ObjectErrorOptions {
|
|
|
558
683
|
* parser.
|
|
559
684
|
*/
|
|
560
685
|
declare function object<T extends {
|
|
561
|
-
readonly [key: string | symbol]: Parser<unknown, unknown>;
|
|
562
|
-
}>(parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
686
|
+
readonly [key: string | symbol]: Parser<Mode, unknown, unknown>;
|
|
687
|
+
}>(parsers: T): Parser<CombineObjectModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
563
688
|
/**
|
|
564
689
|
* Creates a parser that combines multiple parsers into a single object parser.
|
|
565
690
|
* Each parser in the object is applied to parse different parts of the input,
|
|
@@ -575,8 +700,8 @@ declare function object<T extends {
|
|
|
575
700
|
* @since 0.5.0
|
|
576
701
|
*/
|
|
577
702
|
declare function object<T extends {
|
|
578
|
-
readonly [key: string | symbol]: Parser<unknown, unknown>;
|
|
579
|
-
}>(parsers: T, options: ObjectOptions): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
703
|
+
readonly [key: string | symbol]: Parser<Mode, unknown, unknown>;
|
|
704
|
+
}>(parsers: T, options: ObjectOptions): Parser<CombineObjectModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
580
705
|
/**
|
|
581
706
|
* Creates a labeled parser that combines multiple parsers into a single
|
|
582
707
|
* object parser with an associated label for documentation or error reporting.
|
|
@@ -590,8 +715,8 @@ declare function object<T extends {
|
|
|
590
715
|
* parser.
|
|
591
716
|
*/
|
|
592
717
|
declare function object<T extends {
|
|
593
|
-
readonly [key: string | symbol]: Parser<unknown, unknown>;
|
|
594
|
-
}>(label: string, parsers: T): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
718
|
+
readonly [key: string | symbol]: Parser<Mode, unknown, unknown>;
|
|
719
|
+
}>(label: string, parsers: T): Parser<CombineObjectModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
595
720
|
/**
|
|
596
721
|
* Creates a labeled parser that combines multiple parsers into a single
|
|
597
722
|
* object parser with an associated label for documentation or error reporting.
|
|
@@ -608,8 +733,8 @@ declare function object<T extends {
|
|
|
608
733
|
* @since 0.5.0
|
|
609
734
|
*/
|
|
610
735
|
declare function object<T extends {
|
|
611
|
-
readonly [key: string | symbol]: Parser<unknown, unknown>;
|
|
612
|
-
}>(label: string, parsers: T, options: ObjectOptions): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
736
|
+
readonly [key: string | symbol]: Parser<Mode, unknown, unknown>;
|
|
737
|
+
}>(label: string, parsers: T, options: ObjectOptions): Parser<CombineObjectModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
613
738
|
/**
|
|
614
739
|
* Options for the {@link tuple} parser.
|
|
615
740
|
* @since 0.7.0
|
|
@@ -636,7 +761,7 @@ interface TupleOptions {
|
|
|
636
761
|
* as the input array, where each element is the result of the
|
|
637
762
|
* corresponding parser.
|
|
638
763
|
*/
|
|
639
|
-
declare function tuple<const T extends readonly Parser<unknown, unknown>[]>(parsers: T, options?: TupleOptions): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
764
|
+
declare function tuple<const T extends readonly Parser<Mode, unknown, unknown>[]>(parsers: T, options?: TupleOptions): Parser<CombineTupleModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
640
765
|
/**
|
|
641
766
|
* Creates a labeled parser that combines multiple parsers into a sequential
|
|
642
767
|
* tuple parser with an associated label for documentation or error reporting.
|
|
@@ -650,7 +775,7 @@ declare function tuple<const T extends readonly Parser<unknown, unknown>[]>(pars
|
|
|
650
775
|
* as the input array, where each element is the result of the
|
|
651
776
|
* corresponding parser.
|
|
652
777
|
*/
|
|
653
|
-
declare function tuple<const T extends readonly Parser<unknown, unknown>[]>(label: string, parsers: T, options?: TupleOptions): Parser<{ readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
778
|
+
declare function tuple<const T extends readonly Parser<Mode, unknown, unknown>[]>(label: string, parsers: T, options?: TupleOptions): Parser<CombineTupleModes<T>, { readonly [K in keyof T]: T[K]["$valueType"][number] extends (infer U) ? U : never }, { readonly [K in keyof T]: T[K]["$stateType"][number] extends (infer U2) ? U2 : never }>;
|
|
654
779
|
/**
|
|
655
780
|
* Helper type to check if all members of a union are object-like.
|
|
656
781
|
* This allows merge() to work with parsers like withDefault() that produce union types.
|
|
@@ -660,7 +785,7 @@ type AllObjectLike<T> = T extends readonly unknown[] ? never : T extends Record<
|
|
|
660
785
|
* Helper type to extract object-like types from parser value types,
|
|
661
786
|
* including union types where all members are objects.
|
|
662
787
|
*/
|
|
663
|
-
type ExtractObjectTypes<P> = P extends Parser<infer V, unknown> ? [AllObjectLike<V>] extends [never] ? never : V : never;
|
|
788
|
+
type ExtractObjectTypes<P> = P extends Parser<Mode, infer V, unknown> ? [AllObjectLike<V>] extends [never] ? never : V : never;
|
|
664
789
|
/**
|
|
665
790
|
* Options for the {@link merge} parser.
|
|
666
791
|
* @since 0.7.0
|
|
@@ -688,7 +813,7 @@ interface MergeOptions {
|
|
|
688
813
|
* @return A new {@link object} parser that combines the values and states
|
|
689
814
|
* of the two parsers into a single object.
|
|
690
815
|
*/
|
|
691
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
816
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
692
817
|
/**
|
|
693
818
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
694
819
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -703,7 +828,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
703
828
|
* @return A new {@link object} parser that combines the values and states
|
|
704
829
|
* of the two parsers into a single object.
|
|
705
830
|
*/
|
|
706
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, options: MergeOptions): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
831
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, options: MergeOptions): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
707
832
|
/**
|
|
708
833
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
709
834
|
* with a label for documentation and help text organization.
|
|
@@ -720,7 +845,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
720
845
|
* @return A new {@link object} parser that combines the values and states
|
|
721
846
|
* of the two parsers into a single object.
|
|
722
847
|
*/
|
|
723
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>>(label: string, a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
848
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>>(label: string, a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB>, Record<string | symbol, unknown>>;
|
|
724
849
|
/**
|
|
725
850
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
726
851
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -736,7 +861,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
736
861
|
* @return A new {@link object} parser that combines the values and states
|
|
737
862
|
* of the two parsers into a single object.
|
|
738
863
|
*/
|
|
739
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
864
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
740
865
|
/**
|
|
741
866
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
742
867
|
* with a label for documentation and help text organization.
|
|
@@ -755,7 +880,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
755
880
|
* @return A new {@link object} parser that combines the values and states
|
|
756
881
|
* of the two parsers into a single object.
|
|
757
882
|
*/
|
|
758
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
883
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC>, Record<string | symbol, unknown>>;
|
|
759
884
|
/**
|
|
760
885
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
761
886
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -773,7 +898,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
773
898
|
* @return A new {@link object} parser that combines the values and states
|
|
774
899
|
* of the two parsers into a single object.
|
|
775
900
|
*/
|
|
776
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
901
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>, ExtractMode<TD>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
777
902
|
/**
|
|
778
903
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
779
904
|
* with a label for documentation and help text organization.
|
|
@@ -794,7 +919,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
794
919
|
* @return A new {@link object} parser that combines the values and states
|
|
795
920
|
* of the two parsers into a single object.
|
|
796
921
|
*/
|
|
797
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
922
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>, ExtractMode<TD>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD>, Record<string | symbol, unknown>>;
|
|
798
923
|
/**
|
|
799
924
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
800
925
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -814,7 +939,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
814
939
|
* @return A new {@link object} parser that combines the values and states
|
|
815
940
|
* of the two parsers into a single object.
|
|
816
941
|
*/
|
|
817
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC, d: ExtractObjectTypes<TD> extends never ? never : TD, e: ExtractObjectTypes<TE> extends never ? never : TE): Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
942
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>>(a: ExtractObjectTypes<TA> extends never ? never : TA, b: ExtractObjectTypes<TB> extends never ? never : TB, c: ExtractObjectTypes<TC> extends never ? never : TC, d: ExtractObjectTypes<TD> extends never ? never : TD, e: ExtractObjectTypes<TE> extends never ? never : TE): Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>, ExtractMode<TD>, ExtractMode<TE>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
818
943
|
/**
|
|
819
944
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
820
945
|
* with a label for documentation and help text organization.
|
|
@@ -837,7 +962,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
837
962
|
* @return A new {@link object} parser that combines the values and states
|
|
838
963
|
* of the two parsers into a single object.
|
|
839
964
|
*/
|
|
840
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
965
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>, ExtractMode<TD>, ExtractMode<TE>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE>, Record<string | symbol, unknown>>;
|
|
841
966
|
/**
|
|
842
967
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
843
968
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -860,7 +985,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
860
985
|
* of the parsers into a single object.
|
|
861
986
|
* @since 0.4.0
|
|
862
987
|
*/
|
|
863
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
988
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
864
989
|
/**
|
|
865
990
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
866
991
|
* with a label for documentation and help text organization.
|
|
@@ -886,7 +1011,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
886
1011
|
* of the parsers into a single object.
|
|
887
1012
|
* @since 0.4.0
|
|
888
1013
|
*/
|
|
889
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
1014
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF>, Record<string | symbol, unknown>>;
|
|
890
1015
|
/**
|
|
891
1016
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
892
1017
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -911,7 +1036,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
911
1036
|
* of the parsers into a single object.
|
|
912
1037
|
* @since 0.4.0
|
|
913
1038
|
*/
|
|
914
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
1039
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
915
1040
|
/**
|
|
916
1041
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
917
1042
|
* with a label for documentation and help text organization.
|
|
@@ -939,7 +1064,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
939
1064
|
* of the parsers into a single object.
|
|
940
1065
|
* @since 0.4.0
|
|
941
1066
|
*/
|
|
942
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
1067
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG>, Record<string | symbol, unknown>>;
|
|
943
1068
|
/**
|
|
944
1069
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
945
1070
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -966,7 +1091,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
966
1091
|
* of the parsers into a single object.
|
|
967
1092
|
* @since 0.4.0
|
|
968
1093
|
*/
|
|
969
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
1094
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
970
1095
|
/**
|
|
971
1096
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
972
1097
|
* with a label for documentation and help text organization.
|
|
@@ -996,7 +1121,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
996
1121
|
* of the parsers into a single object.
|
|
997
1122
|
* @since 0.4.0
|
|
998
1123
|
*/
|
|
999
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
1124
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH>, Record<string | symbol, unknown>>;
|
|
1000
1125
|
/**
|
|
1001
1126
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
1002
1127
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -1025,7 +1150,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
1025
1150
|
* of the parsers into a single object.
|
|
1026
1151
|
* @since 0.4.0
|
|
1027
1152
|
*/
|
|
1028
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
1153
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>, TI extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
1029
1154
|
/**
|
|
1030
1155
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
1031
1156
|
* with a label for documentation and help text organization.
|
|
@@ -1057,7 +1182,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
1057
1182
|
* of the parsers into a single object.
|
|
1058
1183
|
* @since 0.4.0
|
|
1059
1184
|
*/
|
|
1060
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
1185
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>, TI extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI>, Record<string | symbol, unknown>>;
|
|
1061
1186
|
/**
|
|
1062
1187
|
* Merges multiple {@link object} parsers into a single {@link object} parser.
|
|
1063
1188
|
* It is useful for combining multiple {@link object} parsers so that
|
|
@@ -1088,7 +1213,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
1088
1213
|
* of the parsers into a single object.
|
|
1089
1214
|
* @since 0.4.0
|
|
1090
1215
|
*/
|
|
1091
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>, TJ extends Parser<unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
1216
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>, TI extends Parser<Mode, unknown, unknown>, TJ extends Parser<Mode, unknown, unknown>>(a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
1092
1217
|
/**
|
|
1093
1218
|
* Merges multiple {@link object} parsers into a single {@link object} parser
|
|
1094
1219
|
* with a label for documentation and help text organization.
|
|
@@ -1122,7 +1247,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
1122
1247
|
* of the parsers into a single object.
|
|
1123
1248
|
* @since 0.4.0
|
|
1124
1249
|
*/
|
|
1125
|
-
declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<unknown, unknown>, TC extends Parser<unknown, unknown>, TD extends Parser<unknown, unknown>, TE extends Parser<unknown, unknown>, TF extends Parser<unknown, unknown>, TG extends Parser<unknown, unknown>, TH extends Parser<unknown, unknown>, TI extends Parser<unknown, unknown>, TJ extends Parser<unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
1250
|
+
declare function merge<TA extends Parser<Mode, unknown, unknown>, TB extends Parser<Mode, unknown, unknown>, TC extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, unknown, unknown>, TE extends Parser<Mode, unknown, unknown>, TF extends Parser<Mode, unknown, unknown>, TG extends Parser<Mode, unknown, unknown>, TH extends Parser<Mode, unknown, unknown>, TI extends Parser<Mode, unknown, unknown>, TJ extends Parser<Mode, unknown, unknown>>(label: string, a: TA, b: TB, c: TC, d: TD, e: TE, f: TF, g: TG, h: TH, i: TI, j: TJ): ExtractObjectTypes<TA> extends never ? never : ExtractObjectTypes<TB> extends never ? never : ExtractObjectTypes<TC> extends never ? never : ExtractObjectTypes<TD> extends never ? never : ExtractObjectTypes<TE> extends never ? never : ExtractObjectTypes<TF> extends never ? never : ExtractObjectTypes<TG> extends never ? never : ExtractObjectTypes<TH> extends never ? never : ExtractObjectTypes<TI> extends never ? never : ExtractObjectTypes<TJ> extends never ? never : Parser<CombineModes<readonly [ExtractMode<TA>, ExtractMode<TB>, ExtractMode<TC>, ExtractMode<TD>, ExtractMode<TE>, ExtractMode<TF>, ExtractMode<TG>, ExtractMode<TH>, ExtractMode<TI>, ExtractMode<TJ>]>, ExtractObjectTypes<TA> & ExtractObjectTypes<TB> & ExtractObjectTypes<TC> & ExtractObjectTypes<TD> & ExtractObjectTypes<TE> & ExtractObjectTypes<TF> & ExtractObjectTypes<TG> & ExtractObjectTypes<TH> & ExtractObjectTypes<TI> & ExtractObjectTypes<TJ>, Record<string | symbol, unknown>>;
|
|
1126
1251
|
/**
|
|
1127
1252
|
* Concatenates two {@link tuple} parsers into a single parser that produces
|
|
1128
1253
|
* a flattened tuple containing the values from both parsers in order.
|
|
@@ -1160,7 +1285,7 @@ declare function merge<TA extends Parser<unknown, unknown>, TB extends Parser<un
|
|
|
1160
1285
|
* into a single flattened tuple.
|
|
1161
1286
|
* @since 0.2.0
|
|
1162
1287
|
*/
|
|
1163
|
-
declare function concat<TA extends readonly unknown[], TB extends readonly unknown[], TStateA, TStateB>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>): Parser<[...TA, ...TB], [TStateA, TStateB]>;
|
|
1288
|
+
declare function concat<MA extends Mode, MB extends Mode, TA extends readonly unknown[], TB extends readonly unknown[], TStateA, TStateB>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>): Parser<CombineModes<readonly [MA, MB]>, [...TA, ...TB], [TStateA, TStateB]>;
|
|
1164
1289
|
/**
|
|
1165
1290
|
* Concatenates three {@link tuple} parsers into a single parser that produces
|
|
1166
1291
|
* a flattened tuple containing the values from all parsers in order.
|
|
@@ -1178,7 +1303,7 @@ declare function concat<TA extends readonly unknown[], TB extends readonly unkno
|
|
|
1178
1303
|
* into a single flattened tuple.
|
|
1179
1304
|
* @since 0.2.0
|
|
1180
1305
|
*/
|
|
1181
|
-
declare function concat<TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TStateA, TStateB, TStateC>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>): Parser<[...TA, ...TB, ...TC], [TStateA, TStateB, TStateC]>;
|
|
1306
|
+
declare function concat<MA extends Mode, MB extends Mode, MC extends Mode, TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TStateA, TStateB, TStateC>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>): Parser<CombineModes<readonly [MA, MB, MC]>, [...TA, ...TB, ...TC], [TStateA, TStateB, TStateC]>;
|
|
1182
1307
|
/**
|
|
1183
1308
|
* Concatenates four {@link tuple} parsers into a single parser that produces
|
|
1184
1309
|
* a flattened tuple containing the values from all parsers in order.
|
|
@@ -1199,7 +1324,7 @@ declare function concat<TA extends readonly unknown[], TB extends readonly unkno
|
|
|
1199
1324
|
* into a single flattened tuple.
|
|
1200
1325
|
* @since 0.2.0
|
|
1201
1326
|
*/
|
|
1202
|
-
declare function concat<TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TD extends readonly unknown[], TStateA, TStateB, TStateC, TStateD>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>): Parser<[...TA, ...TB, ...TC, ...TD], [TStateA, TStateB, TStateC, TStateD]>;
|
|
1327
|
+
declare function concat<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TD extends readonly unknown[], TStateA, TStateB, TStateC, TStateD>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>): Parser<CombineModes<readonly [MA, MB, MC, MD]>, [...TA, ...TB, ...TC, ...TD], [TStateA, TStateB, TStateC, TStateD]>;
|
|
1203
1328
|
/**
|
|
1204
1329
|
* Concatenates five {@link tuple} parsers into a single parser that produces
|
|
1205
1330
|
* a flattened tuple containing the values from all parsers in order.
|
|
@@ -1223,7 +1348,7 @@ declare function concat<TA extends readonly unknown[], TB extends readonly unkno
|
|
|
1223
1348
|
* into a single flattened tuple.
|
|
1224
1349
|
* @since 0.2.0
|
|
1225
1350
|
*/
|
|
1226
|
-
declare function concat<TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TD extends readonly unknown[], TE extends readonly unknown[], TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<TA, TStateA>, b: Parser<TB, TStateB>, c: Parser<TC, TStateC>, d: Parser<TD, TStateD>, e: Parser<TE, TStateE>): Parser<[...TA, ...TB, ...TC, ...TD, ...TE], [TStateA, TStateB, TStateC, TStateD, TStateE]>;
|
|
1351
|
+
declare function concat<MA extends Mode, MB extends Mode, MC extends Mode, MD extends Mode, ME extends Mode, TA extends readonly unknown[], TB extends readonly unknown[], TC extends readonly unknown[], TD extends readonly unknown[], TE extends readonly unknown[], TStateA, TStateB, TStateC, TStateD, TStateE>(a: Parser<MA, TA, TStateA>, b: Parser<MB, TB, TStateB>, c: Parser<MC, TC, TStateC>, d: Parser<MD, TD, TStateD>, e: Parser<ME, TE, TStateE>): Parser<CombineModes<readonly [MA, MB, MC, MD, ME]>, [...TA, ...TB, ...TC, ...TD, ...TE], [TStateA, TStateB, TStateC, TStateD, TStateE]>;
|
|
1227
1352
|
/**
|
|
1228
1353
|
* Wraps a parser with a group label for documentation purposes.
|
|
1229
1354
|
*
|
|
@@ -1266,7 +1391,7 @@ declare function concat<TA extends readonly unknown[], TB extends readonly unkno
|
|
|
1266
1391
|
* but generates documentation within a labeled section.
|
|
1267
1392
|
* @since 0.4.0
|
|
1268
1393
|
*/
|
|
1269
|
-
declare function group<TValue, TState>(label: string, parser: Parser<TValue, TState>): Parser<TValue, TState>;
|
|
1394
|
+
declare function group<M extends Mode, TValue, TState>(label: string, parser: Parser<M, TValue, TState>): Parser<M, TValue, TState>;
|
|
1270
1395
|
/**
|
|
1271
1396
|
* Tagged union type representing which branch is selected.
|
|
1272
1397
|
* Uses tagged union to avoid collision with discriminator values.
|
|
@@ -1317,17 +1442,12 @@ interface ConditionalOptions {
|
|
|
1317
1442
|
* Helper type to infer result type without default branch.
|
|
1318
1443
|
* @internal
|
|
1319
1444
|
*/
|
|
1320
|
-
type ConditionalResultWithoutDefault<TDiscriminator extends string, TBranches extends Record<string, Parser<unknown, unknown>>> = { [K in keyof TBranches & string]: readonly [K, InferValue<TBranches[K]>] }[keyof TBranches & string];
|
|
1445
|
+
type ConditionalResultWithoutDefault<TDiscriminator extends string, TBranches extends Record<string, Parser<Mode, unknown, unknown>>> = { [K in keyof TBranches & string]: readonly [K, InferValue<TBranches[K]>] }[keyof TBranches & string];
|
|
1321
1446
|
/**
|
|
1322
1447
|
* Helper type to infer result type with default branch.
|
|
1323
1448
|
* @internal
|
|
1324
1449
|
*/
|
|
1325
|
-
type ConditionalResultWithDefault<TDiscriminator extends string, TBranches extends Record<string, Parser<unknown, unknown>>, TDefault extends Parser<unknown, unknown>> = ConditionalResultWithoutDefault<TDiscriminator, TBranches> | readonly [undefined, InferValue<TDefault>];
|
|
1326
|
-
/**
|
|
1327
|
-
* Helper type to infer value type from a parser.
|
|
1328
|
-
* @internal
|
|
1329
|
-
*/
|
|
1330
|
-
type InferValue<T> = T extends Parser<infer V, unknown> ? V : never;
|
|
1450
|
+
type ConditionalResultWithDefault<TDiscriminator extends string, TBranches extends Record<string, Parser<Mode, unknown, unknown>>, TDefault extends Parser<Mode, unknown, unknown>> = ConditionalResultWithoutDefault<TDiscriminator, TBranches> | readonly [undefined, InferValue<TDefault>];
|
|
1331
1451
|
/**
|
|
1332
1452
|
* Creates a conditional parser without a default branch.
|
|
1333
1453
|
* The discriminator option is required; parsing fails if not provided.
|
|
@@ -1339,7 +1459,7 @@ type InferValue<T> = T extends Parser<infer V, unknown> ? V : never;
|
|
|
1339
1459
|
* @returns A parser that produces a tuple `[discriminatorValue, branchResult]`.
|
|
1340
1460
|
* @since 0.8.0
|
|
1341
1461
|
*/
|
|
1342
|
-
declare function conditional<TDiscriminator extends string, TBranches extends { [K in TDiscriminator]: Parser<unknown, unknown> }
|
|
1462
|
+
declare function conditional<TDiscriminator extends string, TBranches extends { [K in TDiscriminator]: Parser<Mode, unknown, unknown> }, TD extends Parser<Mode, TDiscriminator, unknown>>(discriminator: TD, branches: TBranches): Parser<CombineModes<readonly [ExtractMode<TD>, ...{ [K in keyof TBranches]: ExtractMode<TBranches[K]> }[keyof TBranches][]]>, ConditionalResultWithoutDefault<TDiscriminator, TBranches>, ConditionalState<TDiscriminator>>;
|
|
1343
1463
|
/**
|
|
1344
1464
|
* Creates a conditional parser with a default branch.
|
|
1345
1465
|
* The default branch is used when the discriminator option is not provided.
|
|
@@ -1354,6 +1474,6 @@ declare function conditional<TDiscriminator extends string, TBranches extends {
|
|
|
1354
1474
|
* @returns A parser that produces a tuple `[discriminatorValue | undefined, branchResult]`.
|
|
1355
1475
|
* @since 0.8.0
|
|
1356
1476
|
*/
|
|
1357
|
-
declare function conditional<TDiscriminator extends string, TBranches extends { [K in TDiscriminator]: Parser<unknown, unknown> }, TDefault extends Parser<unknown, unknown
|
|
1477
|
+
declare function conditional<TDiscriminator extends string, TBranches extends { [K in TDiscriminator]: Parser<Mode, unknown, unknown> }, TDefault extends Parser<Mode, unknown, unknown>, TD extends Parser<Mode, TDiscriminator, unknown>>(discriminator: TD, branches: TBranches, defaultBranch: TDefault, options?: ConditionalOptions): Parser<CombineModes<readonly [ExtractMode<TD>, ExtractMode<TDefault>, ...{ [K in keyof TBranches]: ExtractMode<TBranches[K]> }[keyof TBranches][]]>, ConditionalResultWithDefault<TDiscriminator, TBranches, TDefault>, ConditionalState<TDiscriminator>>;
|
|
1358
1478
|
//#endregion
|
|
1359
1479
|
export { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, tuple };
|