@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.
@@ -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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"}