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