@bcts/dcbor-parse 1.0.0-alpha.13
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/LICENSE +48 -0
- package/README.md +13 -0
- package/dist/index.cjs +1141 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +433 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +433 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.iife.js +1142 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.mjs +1118 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +84 -0
- package/src/compose.ts +156 -0
- package/src/error.ts +373 -0
- package/src/index.ts +82 -0
- package/src/parse.ts +411 -0
- package/src/token.ts +641 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import { Cbor, CborDate } from "@bcts/dcbor";
|
|
2
|
+
import { UR } from "@bcts/uniform-resources";
|
|
3
|
+
|
|
4
|
+
//#region src/token.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Token types produced by the lexer.
|
|
8
|
+
*
|
|
9
|
+
* Corresponds to the Rust `Token` enum in token.rs
|
|
10
|
+
*/
|
|
11
|
+
type Token = {
|
|
12
|
+
readonly type: "Bool";
|
|
13
|
+
readonly value: boolean;
|
|
14
|
+
} | {
|
|
15
|
+
readonly type: "BraceOpen";
|
|
16
|
+
} | {
|
|
17
|
+
readonly type: "BraceClose";
|
|
18
|
+
} | {
|
|
19
|
+
readonly type: "BracketOpen";
|
|
20
|
+
} | {
|
|
21
|
+
readonly type: "BracketClose";
|
|
22
|
+
} | {
|
|
23
|
+
readonly type: "ParenthesisOpen";
|
|
24
|
+
} | {
|
|
25
|
+
readonly type: "ParenthesisClose";
|
|
26
|
+
} | {
|
|
27
|
+
readonly type: "Colon";
|
|
28
|
+
} | {
|
|
29
|
+
readonly type: "Comma";
|
|
30
|
+
} | {
|
|
31
|
+
readonly type: "Null";
|
|
32
|
+
} | {
|
|
33
|
+
readonly type: "NaN";
|
|
34
|
+
} | {
|
|
35
|
+
readonly type: "Infinity";
|
|
36
|
+
} | {
|
|
37
|
+
readonly type: "NegInfinity";
|
|
38
|
+
} | {
|
|
39
|
+
readonly type: "ByteStringHex";
|
|
40
|
+
readonly value: Uint8Array;
|
|
41
|
+
} | {
|
|
42
|
+
readonly type: "ByteStringBase64";
|
|
43
|
+
readonly value: Uint8Array;
|
|
44
|
+
} | {
|
|
45
|
+
readonly type: "DateLiteral";
|
|
46
|
+
readonly value: CborDate;
|
|
47
|
+
} | {
|
|
48
|
+
readonly type: "Number";
|
|
49
|
+
readonly value: number;
|
|
50
|
+
} | {
|
|
51
|
+
readonly type: "String";
|
|
52
|
+
readonly value: string;
|
|
53
|
+
} | {
|
|
54
|
+
readonly type: "TagValue";
|
|
55
|
+
readonly value: number;
|
|
56
|
+
} | {
|
|
57
|
+
readonly type: "TagName";
|
|
58
|
+
readonly value: string;
|
|
59
|
+
} | {
|
|
60
|
+
readonly type: "KnownValueNumber";
|
|
61
|
+
readonly value: number;
|
|
62
|
+
} | {
|
|
63
|
+
readonly type: "KnownValueName";
|
|
64
|
+
readonly value: string;
|
|
65
|
+
} | {
|
|
66
|
+
readonly type: "Unit";
|
|
67
|
+
} | {
|
|
68
|
+
readonly type: "UR";
|
|
69
|
+
readonly value: UR;
|
|
70
|
+
};
|
|
71
|
+
declare const token: {
|
|
72
|
+
bool(value: boolean): Token;
|
|
73
|
+
braceOpen(): Token;
|
|
74
|
+
braceClose(): Token;
|
|
75
|
+
bracketOpen(): Token;
|
|
76
|
+
bracketClose(): Token;
|
|
77
|
+
parenthesisOpen(): Token;
|
|
78
|
+
parenthesisClose(): Token;
|
|
79
|
+
colon(): Token;
|
|
80
|
+
comma(): Token;
|
|
81
|
+
null(): Token;
|
|
82
|
+
nan(): Token;
|
|
83
|
+
infinity(): Token;
|
|
84
|
+
negInfinity(): Token;
|
|
85
|
+
byteStringHex(value: Uint8Array): Token;
|
|
86
|
+
byteStringBase64(value: Uint8Array): Token;
|
|
87
|
+
dateLiteral(value: CborDate): Token;
|
|
88
|
+
number(value: number): Token;
|
|
89
|
+
string(value: string): Token;
|
|
90
|
+
tagValue(value: number): Token;
|
|
91
|
+
tagName(value: string): Token;
|
|
92
|
+
knownValueNumber(value: number): Token;
|
|
93
|
+
knownValueName(value: string): Token;
|
|
94
|
+
unit(): Token;
|
|
95
|
+
ur(value: UR): Token;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Lexer for dCBOR diagnostic notation.
|
|
99
|
+
*
|
|
100
|
+
* Corresponds to the Rust `logos::Lexer` used in parse.rs
|
|
101
|
+
*/
|
|
102
|
+
declare class Lexer {
|
|
103
|
+
#private;
|
|
104
|
+
constructor(source: string);
|
|
105
|
+
/**
|
|
106
|
+
* Gets the current span (position range of the last token).
|
|
107
|
+
*/
|
|
108
|
+
span(): Span;
|
|
109
|
+
/**
|
|
110
|
+
* Gets the slice of source corresponding to the last token.
|
|
111
|
+
*/
|
|
112
|
+
slice(): string;
|
|
113
|
+
/**
|
|
114
|
+
* Gets the next token, or undefined if at end of input.
|
|
115
|
+
* Returns a Result to handle lexing errors.
|
|
116
|
+
*/
|
|
117
|
+
next(): ParseResult<Token> | undefined;
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region src/error.d.ts
|
|
121
|
+
/**
|
|
122
|
+
* Represents a span (range) in the source string.
|
|
123
|
+
*
|
|
124
|
+
* Corresponds to the Rust `logos::Span` type.
|
|
125
|
+
*/
|
|
126
|
+
interface Span {
|
|
127
|
+
readonly start: number;
|
|
128
|
+
readonly end: number;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Creates a span with the given start and end positions.
|
|
132
|
+
*/
|
|
133
|
+
declare function span(start: number, end: number): Span;
|
|
134
|
+
/**
|
|
135
|
+
* Creates a default (empty) span.
|
|
136
|
+
*/
|
|
137
|
+
declare function defaultSpan(): Span;
|
|
138
|
+
/**
|
|
139
|
+
* Parse error types.
|
|
140
|
+
*
|
|
141
|
+
* Corresponds to the Rust `Error` enum in error.rs
|
|
142
|
+
*/
|
|
143
|
+
type ParseError = {
|
|
144
|
+
readonly type: "EmptyInput";
|
|
145
|
+
} | {
|
|
146
|
+
readonly type: "UnexpectedEndOfInput";
|
|
147
|
+
} | {
|
|
148
|
+
readonly type: "ExtraData";
|
|
149
|
+
readonly span: Span;
|
|
150
|
+
} | {
|
|
151
|
+
readonly type: "UnexpectedToken";
|
|
152
|
+
readonly token: Token;
|
|
153
|
+
readonly span: Span;
|
|
154
|
+
} | {
|
|
155
|
+
readonly type: "UnrecognizedToken";
|
|
156
|
+
readonly span: Span;
|
|
157
|
+
} | {
|
|
158
|
+
readonly type: "ExpectedComma";
|
|
159
|
+
readonly span: Span;
|
|
160
|
+
} | {
|
|
161
|
+
readonly type: "ExpectedColon";
|
|
162
|
+
readonly span: Span;
|
|
163
|
+
} | {
|
|
164
|
+
readonly type: "UnmatchedParentheses";
|
|
165
|
+
readonly span: Span;
|
|
166
|
+
} | {
|
|
167
|
+
readonly type: "UnmatchedBraces";
|
|
168
|
+
readonly span: Span;
|
|
169
|
+
} | {
|
|
170
|
+
readonly type: "ExpectedMapKey";
|
|
171
|
+
readonly span: Span;
|
|
172
|
+
} | {
|
|
173
|
+
readonly type: "InvalidTagValue";
|
|
174
|
+
readonly value: string;
|
|
175
|
+
readonly span: Span;
|
|
176
|
+
} | {
|
|
177
|
+
readonly type: "UnknownTagName";
|
|
178
|
+
readonly name: string;
|
|
179
|
+
readonly span: Span;
|
|
180
|
+
} | {
|
|
181
|
+
readonly type: "InvalidHexString";
|
|
182
|
+
readonly span: Span;
|
|
183
|
+
} | {
|
|
184
|
+
readonly type: "InvalidBase64String";
|
|
185
|
+
readonly span: Span;
|
|
186
|
+
} | {
|
|
187
|
+
readonly type: "UnknownUrType";
|
|
188
|
+
readonly urType: string;
|
|
189
|
+
readonly span: Span;
|
|
190
|
+
} | {
|
|
191
|
+
readonly type: "InvalidUr";
|
|
192
|
+
readonly message: string;
|
|
193
|
+
readonly span: Span;
|
|
194
|
+
} | {
|
|
195
|
+
readonly type: "InvalidKnownValue";
|
|
196
|
+
readonly value: string;
|
|
197
|
+
readonly span: Span;
|
|
198
|
+
} | {
|
|
199
|
+
readonly type: "UnknownKnownValueName";
|
|
200
|
+
readonly name: string;
|
|
201
|
+
readonly span: Span;
|
|
202
|
+
} | {
|
|
203
|
+
readonly type: "InvalidDateString";
|
|
204
|
+
readonly dateString: string;
|
|
205
|
+
readonly span: Span;
|
|
206
|
+
} | {
|
|
207
|
+
readonly type: "DuplicateMapKey";
|
|
208
|
+
readonly span: Span;
|
|
209
|
+
};
|
|
210
|
+
declare const parseError: {
|
|
211
|
+
emptyInput(): ParseError;
|
|
212
|
+
unexpectedEndOfInput(): ParseError;
|
|
213
|
+
extraData(span: Span): ParseError;
|
|
214
|
+
unexpectedToken(token: Token, span: Span): ParseError;
|
|
215
|
+
unrecognizedToken(span: Span): ParseError;
|
|
216
|
+
expectedComma(span: Span): ParseError;
|
|
217
|
+
expectedColon(span: Span): ParseError;
|
|
218
|
+
unmatchedParentheses(span: Span): ParseError;
|
|
219
|
+
unmatchedBraces(span: Span): ParseError;
|
|
220
|
+
expectedMapKey(span: Span): ParseError;
|
|
221
|
+
invalidTagValue(value: string, span: Span): ParseError;
|
|
222
|
+
unknownTagName(name: string, span: Span): ParseError;
|
|
223
|
+
invalidHexString(span: Span): ParseError;
|
|
224
|
+
invalidBase64String(span: Span): ParseError;
|
|
225
|
+
unknownUrType(urType: string, span: Span): ParseError;
|
|
226
|
+
invalidUr(message: string, span: Span): ParseError;
|
|
227
|
+
invalidKnownValue(value: string, span: Span): ParseError;
|
|
228
|
+
unknownKnownValueName(name: string, span: Span): ParseError;
|
|
229
|
+
invalidDateString(dateString: string, span: Span): ParseError;
|
|
230
|
+
duplicateMapKey(span: Span): ParseError;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Checks if an error is the default unrecognized token error.
|
|
234
|
+
*
|
|
235
|
+
* Corresponds to Rust `Error::is_default()`
|
|
236
|
+
*/
|
|
237
|
+
declare function isDefaultError(error: ParseError): boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Gets the error message for a parse error.
|
|
240
|
+
*
|
|
241
|
+
* Corresponds to Rust's `Display` implementation for `Error`
|
|
242
|
+
*/
|
|
243
|
+
declare function errorMessage(error: ParseError): string;
|
|
244
|
+
/**
|
|
245
|
+
* Gets the span for a parse error, if applicable.
|
|
246
|
+
*/
|
|
247
|
+
declare function errorSpan(error: ParseError): Span | undefined;
|
|
248
|
+
/**
|
|
249
|
+
* Gets the full error message with source context.
|
|
250
|
+
*
|
|
251
|
+
* Corresponds to Rust `Error::full_message()`
|
|
252
|
+
*/
|
|
253
|
+
declare function fullErrorMessage(error: ParseError, source: string): string;
|
|
254
|
+
/**
|
|
255
|
+
* Creates a default parse error (UnrecognizedToken with empty span).
|
|
256
|
+
*
|
|
257
|
+
* Corresponds to Rust `Error::default()`
|
|
258
|
+
*/
|
|
259
|
+
declare function defaultParseError(): ParseError;
|
|
260
|
+
/**
|
|
261
|
+
* Result type for parse operations.
|
|
262
|
+
*
|
|
263
|
+
* Corresponds to Rust `Result<T, Error>`
|
|
264
|
+
*/
|
|
265
|
+
type ParseResult<T> = {
|
|
266
|
+
readonly ok: true;
|
|
267
|
+
readonly value: T;
|
|
268
|
+
} | {
|
|
269
|
+
readonly ok: false;
|
|
270
|
+
readonly error: ParseError;
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Creates a successful result.
|
|
274
|
+
*/
|
|
275
|
+
declare function ok<T>(value: T): ParseResult<T>;
|
|
276
|
+
/**
|
|
277
|
+
* Creates an error result.
|
|
278
|
+
*/
|
|
279
|
+
declare function err<T>(error: ParseError): ParseResult<T>;
|
|
280
|
+
/**
|
|
281
|
+
* Checks if a result is successful.
|
|
282
|
+
*/
|
|
283
|
+
declare function isOk<T>(result: ParseResult<T>): result is {
|
|
284
|
+
ok: true;
|
|
285
|
+
value: T;
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Checks if a result is an error.
|
|
289
|
+
*/
|
|
290
|
+
declare function isErr<T>(result: ParseResult<T>): result is {
|
|
291
|
+
ok: false;
|
|
292
|
+
error: ParseError;
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Unwraps a result, throwing if it's an error.
|
|
296
|
+
*/
|
|
297
|
+
declare function unwrap<T>(result: ParseResult<T>): T;
|
|
298
|
+
/**
|
|
299
|
+
* Unwraps a result error, throwing if it's successful.
|
|
300
|
+
*/
|
|
301
|
+
declare function unwrapErr<T>(result: ParseResult<T>): ParseError;
|
|
302
|
+
//#endregion
|
|
303
|
+
//#region src/parse.d.ts
|
|
304
|
+
/**
|
|
305
|
+
* Parses a dCBOR item from a string input.
|
|
306
|
+
*
|
|
307
|
+
* This function takes a string slice containing a dCBOR diagnostic notation
|
|
308
|
+
* encoded value and attempts to parse it into a `Cbor` object. If the input
|
|
309
|
+
* contains extra tokens after a valid item, an error is returned.
|
|
310
|
+
*
|
|
311
|
+
* @param src - A string containing the dCBOR-encoded data.
|
|
312
|
+
* @returns `Ok(Cbor)` if parsing is successful and the input contains exactly one
|
|
313
|
+
* valid dCBOR item, which itself might be an atomic value like a number or
|
|
314
|
+
* string, or a complex value like an array or map.
|
|
315
|
+
* `Err(ParseError)` if parsing fails or if extra tokens are found after the item.
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* ```typescript
|
|
319
|
+
* const result = parseDcborItem("[1, 2, 3]");
|
|
320
|
+
* if (result.ok) {
|
|
321
|
+
* console.log(result.value.toDiagnostic()); // "[1, 2, 3]"
|
|
322
|
+
* }
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
declare function parseDcborItem(src: string): ParseResult<Cbor>;
|
|
326
|
+
/**
|
|
327
|
+
* Parses a dCBOR item from the beginning of a string and returns the parsed
|
|
328
|
+
* `Cbor` along with the number of bytes consumed.
|
|
329
|
+
*
|
|
330
|
+
* Unlike `parseDcborItem`, this function succeeds even if additional
|
|
331
|
+
* characters follow the first item. The returned index points to the first
|
|
332
|
+
* unparsed character after skipping any trailing whitespace or comments.
|
|
333
|
+
*
|
|
334
|
+
* @param src - A string containing the dCBOR-encoded data.
|
|
335
|
+
* @returns `Ok([Cbor, number])` with the parsed item and bytes consumed.
|
|
336
|
+
*
|
|
337
|
+
* @example
|
|
338
|
+
* ```typescript
|
|
339
|
+
* const result = parseDcborItemPartial("true )");
|
|
340
|
+
* if (result.ok) {
|
|
341
|
+
* const [cbor, used] = result.value;
|
|
342
|
+
* console.log(cbor.toDiagnostic()); // "true"
|
|
343
|
+
* console.log(used); // 5
|
|
344
|
+
* }
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
declare function parseDcborItemPartial(src: string): ParseResult<[Cbor, number]>;
|
|
348
|
+
//#endregion
|
|
349
|
+
//#region src/compose.d.ts
|
|
350
|
+
/**
|
|
351
|
+
* Compose error types.
|
|
352
|
+
*
|
|
353
|
+
* Corresponds to the Rust `Error` enum in compose.rs
|
|
354
|
+
*/
|
|
355
|
+
type ComposeError = {
|
|
356
|
+
readonly type: "OddMapLength";
|
|
357
|
+
} | {
|
|
358
|
+
readonly type: "DuplicateMapKey";
|
|
359
|
+
} | {
|
|
360
|
+
readonly type: "ParseError";
|
|
361
|
+
readonly error: ParseError;
|
|
362
|
+
};
|
|
363
|
+
declare const composeError: {
|
|
364
|
+
oddMapLength(): ComposeError;
|
|
365
|
+
duplicateMapKey(): ComposeError;
|
|
366
|
+
parseError(error: ParseError): ComposeError;
|
|
367
|
+
};
|
|
368
|
+
/**
|
|
369
|
+
* Gets the error message for a compose error.
|
|
370
|
+
*/
|
|
371
|
+
declare function composeErrorMessage(error: ComposeError): string;
|
|
372
|
+
/**
|
|
373
|
+
* Result type for compose operations.
|
|
374
|
+
*
|
|
375
|
+
* Corresponds to Rust `Result<T, Error>`
|
|
376
|
+
*/
|
|
377
|
+
type ComposeResult<T> = {
|
|
378
|
+
readonly ok: true;
|
|
379
|
+
readonly value: T;
|
|
380
|
+
} | {
|
|
381
|
+
readonly ok: false;
|
|
382
|
+
readonly error: ComposeError;
|
|
383
|
+
};
|
|
384
|
+
/**
|
|
385
|
+
* Creates a successful compose result.
|
|
386
|
+
*/
|
|
387
|
+
declare function composeOk<T>(value: T): ComposeResult<T>;
|
|
388
|
+
/**
|
|
389
|
+
* Creates an error compose result.
|
|
390
|
+
*/
|
|
391
|
+
declare function composeErr<T>(error: ComposeError): ComposeResult<T>;
|
|
392
|
+
/**
|
|
393
|
+
* Composes a dCBOR array from a slice of string slices, and returns a CBOR
|
|
394
|
+
* object representing the array.
|
|
395
|
+
*
|
|
396
|
+
* Each string slice is parsed as a dCBOR item.
|
|
397
|
+
*
|
|
398
|
+
* @param array - Array of strings, each representing a dCBOR item
|
|
399
|
+
* @returns A CBOR array containing all parsed items
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```typescript
|
|
403
|
+
* const result = composeDcborArray(["1", "2", "3"]);
|
|
404
|
+
* if (result.ok) {
|
|
405
|
+
* console.log(result.value.toDiagnostic()); // "[1, 2, 3]"
|
|
406
|
+
* }
|
|
407
|
+
* ```
|
|
408
|
+
*/
|
|
409
|
+
declare function composeDcborArray(array: readonly string[]): ComposeResult<Cbor>;
|
|
410
|
+
/**
|
|
411
|
+
* Composes a dCBOR map from a slice of string slices, and returns a CBOR
|
|
412
|
+
* object representing the map.
|
|
413
|
+
*
|
|
414
|
+
* The length of the slice must be even, as each key must have a corresponding
|
|
415
|
+
* value.
|
|
416
|
+
*
|
|
417
|
+
* Each string slice is parsed as a dCBOR item.
|
|
418
|
+
*
|
|
419
|
+
* @param array - Array of strings representing key-value pairs in alternating order
|
|
420
|
+
* @returns A CBOR map containing all parsed key-value pairs
|
|
421
|
+
*
|
|
422
|
+
* @example
|
|
423
|
+
* ```typescript
|
|
424
|
+
* const result = composeDcborMap(["1", "2", "3", "4"]);
|
|
425
|
+
* if (result.ok) {
|
|
426
|
+
* console.log(result.value.toDiagnostic()); // "{1: 2, 3: 4}"
|
|
427
|
+
* }
|
|
428
|
+
* ```
|
|
429
|
+
*/
|
|
430
|
+
declare function composeDcborMap(array: readonly string[]): ComposeResult<Cbor>;
|
|
431
|
+
//#endregion
|
|
432
|
+
export { type ComposeError, type ComposeResult, Lexer, type ParseError, type ParseResult, type Span, type Token, composeDcborArray, composeDcborMap, composeErr, composeError, composeErrorMessage, composeOk, defaultParseError, defaultSpan, err, errorMessage, errorSpan, fullErrorMessage, isDefaultError, isErr, isOk, ok, parseDcborItem, parseDcborItemPartial, parseError, span, token, unwrap, unwrapErr };
|
|
433
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/token.ts","../src/error.ts","../src/parse.ts","../src/compose.ts"],"sourcesContent":[],"mappings":"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"}
|