@tabnas/transduce 0.1.2 → 0.2.0

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.
Files changed (83) hide show
  1. package/README.md +18 -0
  2. package/dist/guard.d.ts +1 -3
  3. package/dist/guard.js +8 -9
  4. package/dist/guard.js.map +1 -1
  5. package/dist/lines.d.ts +1 -2
  6. package/dist/lines.js +46 -89
  7. package/dist/lines.js.map +1 -1
  8. package/dist/matcher.d.ts +1 -3
  9. package/dist/matcher.js +12 -13
  10. package/dist/matcher.js.map +1 -1
  11. package/dist/parser-source.d.ts +1 -2
  12. package/dist/parser-source.js +11 -13
  13. package/dist/parser-source.js.map +1 -1
  14. package/dist/route.d.ts +1 -32
  15. package/dist/route.js +8 -32
  16. package/dist/route.js.map +1 -1
  17. package/dist/routers.d.ts +2 -0
  18. package/dist/routers.js +24 -0
  19. package/dist/routers.js.map +1 -0
  20. package/dist/rule-events.d.ts +1 -4
  21. package/dist/rule-events.js +40 -44
  22. package/dist/rule-events.js.map +1 -1
  23. package/dist/scan.d.ts +1 -10
  24. package/dist/scan.js +4 -17
  25. package/dist/scan.js.map +1 -1
  26. package/dist/source.d.ts +1 -4
  27. package/dist/source.js +20 -22
  28. package/dist/source.js.map +1 -1
  29. package/dist/table-from-json.d.ts +1 -5
  30. package/dist/table-from-json.js +25 -29
  31. package/dist/table-from-json.js.map +1 -1
  32. package/dist/transduce.d.ts +23 -19
  33. package/dist/transduce.js +66 -56
  34. package/dist/transduce.js.map +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +12 -4
  37. package/src/guard.ts +10 -4
  38. package/src/lines.ts +45 -6
  39. package/src/matcher.ts +1 -6
  40. package/src/parser-source.ts +2 -4
  41. package/src/route.ts +18 -70
  42. package/src/routers.ts +64 -0
  43. package/src/rule-events.ts +17 -7
  44. package/src/scan.ts +1 -19
  45. package/src/source.ts +12 -6
  46. package/src/table-from-json.ts +20 -9
  47. package/src/transduce.ts +36 -19
  48. package/dist/datum.d.ts +0 -64
  49. package/dist/datum.js +0 -391
  50. package/dist/datum.js.map +0 -1
  51. package/dist/error.d.ts +0 -43
  52. package/dist/error.js +0 -169
  53. package/dist/error.js.map +0 -1
  54. package/dist/event.d.ts +0 -56
  55. package/dist/event.js +0 -101
  56. package/dist/event.js.map +0 -1
  57. package/dist/json.d.ts +0 -4
  58. package/dist/json.js +0 -92
  59. package/dist/json.js.map +0 -1
  60. package/dist/limits.d.ts +0 -36
  61. package/dist/limits.js +0 -133
  62. package/dist/limits.js.map +0 -1
  63. package/dist/selector.d.ts +0 -40
  64. package/dist/selector.js +0 -154
  65. package/dist/selector.js.map +0 -1
  66. package/dist/sink.d.ts +0 -29
  67. package/dist/sink.js +0 -184
  68. package/dist/sink.js.map +0 -1
  69. package/dist/table.d.ts +0 -81
  70. package/dist/table.js +0 -141
  71. package/dist/table.js.map +0 -1
  72. package/dist/value.d.ts +0 -16
  73. package/dist/value.js +0 -96
  74. package/dist/value.js.map +0 -1
  75. package/src/datum.ts +0 -407
  76. package/src/error.ts +0 -198
  77. package/src/event.ts +0 -134
  78. package/src/json.ts +0 -82
  79. package/src/limits.ts +0 -165
  80. package/src/selector.ts +0 -191
  81. package/src/sink.ts +0 -199
  82. package/src/table.ts +0 -213
  83. package/src/value.ts +0 -93
package/dist/datum.js DELETED
@@ -1,391 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2026 tabnas, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DatumBuilder = exports.Datum = void 0;
5
- exports.byteSize = byteSize;
6
- exports.getPath = getPath;
7
- exports.takePath = takePath;
8
- exports.fromTabnas = fromTabnas;
9
- exports.toJSON = toJSON;
10
- exports.fromJSON = fromJSON;
11
- exports.toText = toText;
12
- exports.walkDatum = walkDatum;
13
- // The retained value type.
14
- //
15
- // What a capture materializes and what a projected cell holds. Distinct
16
- // from the engine's value on purpose: a datum keeps a number's lexeme,
17
- // keeps member order whatever the keys look like (a `Map`, since a plain
18
- // object enumerates integer-like keys first), measures its own size
19
- // against limits in UTF-8 bytes, and is owned by the transducer rather
20
- // than shared with a parse.
21
- const error_1 = require("./error");
22
- const event_1 = require("./event");
23
- const json_1 = require("./json");
24
- const limits_1 = require("./limits");
25
- const value_1 = require("./value");
26
- const NULL = Object.freeze({ type: 'null' });
27
- const TRUE = Object.freeze({ type: 'bool', value: true });
28
- const FALSE = Object.freeze({ type: 'bool', value: false });
29
- exports.Datum = Object.freeze({
30
- null: NULL,
31
- bool(value) {
32
- return value ? TRUE : FALSE;
33
- },
34
- number(value, lexeme) {
35
- return { type: 'number', value, lexeme: lexeme ?? null };
36
- },
37
- string(value) {
38
- return { type: 'string', value };
39
- },
40
- array(items = []) {
41
- return { type: 'array', items };
42
- },
43
- object(members = []) {
44
- return { type: 'object', members: members instanceof Map ? members : new Map(members) };
45
- },
46
- // Payload bytes plus `NODE_BYTES` per node: the measure limits use.
47
- byteSize,
48
- getPath,
49
- takePath,
50
- isContainer(d) {
51
- return 'array' === d.type || 'object' === d.type;
52
- },
53
- // From an engine value: `undefined` is `null`, as the engine serializes
54
- // it; a number has no lexeme.
55
- fromTabnas,
56
- // As a plain JavaScript value, for oracles and tests. An object becomes a
57
- // plain object (integer-like keys reorder), a number its value.
58
- toJSON,
59
- // From a plain JavaScript value, for tests. A number's lexeme is its
60
- // shortest text.
61
- fromJSON,
62
- // Compact JSON, keeping number lexemes.
63
- toText,
64
- });
65
- function byteSize(d) {
66
- switch (d.type) {
67
- case 'null':
68
- case 'bool':
69
- return limits_1.NODE_BYTES;
70
- case 'number':
71
- return limits_1.NODE_BYTES + (null != d.lexeme ? (0, limits_1.utf8Bytes)(d.lexeme) : 8);
72
- case 'string':
73
- return limits_1.NODE_BYTES + (0, limits_1.utf8Bytes)(d.value);
74
- case 'array': {
75
- let n = limits_1.NODE_BYTES;
76
- for (const item of d.items)
77
- n += byteSize(item);
78
- return n;
79
- }
80
- case 'object': {
81
- let n = limits_1.NODE_BYTES;
82
- for (const [k, v] of d.members)
83
- n += (0, limits_1.utf8Bytes)(k) + byteSize(v);
84
- return n;
85
- }
86
- }
87
- }
88
- // The value at a concrete path below this one.
89
- function getPath(d, path) {
90
- let here = d;
91
- for (const seg of path) {
92
- if (undefined === here)
93
- return undefined;
94
- if ('string' === typeof seg) {
95
- here = 'object' === here.type ? here.members.get(seg) : undefined;
96
- }
97
- else {
98
- here = 'array' === here.type ? here.items[seg] : undefined;
99
- }
100
- }
101
- return here;
102
- }
103
- // The value at a concrete path below this one, moved out and replaced by
104
- // `null` in its container. The root itself cannot be replaced in place, so
105
- // an empty path returns the datum and leaves it alone.
106
- function takePath(d, path) {
107
- if (0 === path.length)
108
- return d;
109
- const parent = getPath(d, path.slice(0, -1));
110
- if (undefined === parent)
111
- return undefined;
112
- const last = path[path.length - 1];
113
- if ('string' === typeof last) {
114
- if ('object' !== parent.type || !parent.members.has(last))
115
- return undefined;
116
- const v = parent.members.get(last);
117
- parent.members.set(last, NULL);
118
- return v;
119
- }
120
- if ('array' !== parent.type || last >= parent.items.length)
121
- return undefined;
122
- const v = parent.items[last];
123
- parent.items[last] = NULL;
124
- return v;
125
- }
126
- function fromTabnas(value) {
127
- if (Array.isArray(value))
128
- return exports.Datum.array(value.map(fromTabnas));
129
- const scalar = (0, value_1.engineScalar)(value);
130
- if (undefined !== scalar) {
131
- switch (scalar.type) {
132
- case 'null':
133
- return NULL;
134
- case 'bool':
135
- return exports.Datum.bool(scalar.value);
136
- case 'number':
137
- return exports.Datum.number(scalar.value);
138
- case 'string':
139
- return exports.Datum.string(scalar.value);
140
- }
141
- }
142
- const members = new Map();
143
- for (const k of (0, value_1.engineKeys)(value))
144
- members.set(k, fromTabnas(value[k]));
145
- return { type: 'object', members };
146
- }
147
- function toJSON(d) {
148
- switch (d.type) {
149
- case 'null':
150
- return null;
151
- case 'bool':
152
- case 'string':
153
- return d.value;
154
- case 'number':
155
- return null != d.lexeme ? Number(d.lexeme) : d.value;
156
- case 'array':
157
- return d.items.map(toJSON);
158
- case 'object': {
159
- const out = {};
160
- for (const [k, v] of d.members)
161
- out[k] = toJSON(v);
162
- return out;
163
- }
164
- }
165
- }
166
- function fromJSON(value) {
167
- if (null == value)
168
- return NULL;
169
- if ('boolean' === typeof value)
170
- return exports.Datum.bool(value);
171
- if ('number' === typeof value)
172
- return exports.Datum.number(value, String(value));
173
- if ('string' === typeof value)
174
- return exports.Datum.string(value);
175
- if (Array.isArray(value))
176
- return exports.Datum.array(value.map(fromJSON));
177
- const members = new Map();
178
- if (value instanceof Map) {
179
- for (const [k, v] of value)
180
- members.set(String(k), fromJSON(v));
181
- }
182
- else {
183
- for (const k of Object.keys(value)) {
184
- members.set(k, fromJSON(value[k]));
185
- }
186
- }
187
- return { type: 'object', members };
188
- }
189
- function toText(d) {
190
- switch (d.type) {
191
- case 'null':
192
- return 'null';
193
- case 'bool':
194
- return d.value ? 'true' : 'false';
195
- case 'number':
196
- return (0, json_1.jsonNumber)(d.value, d.lexeme);
197
- case 'string':
198
- return (0, json_1.jsonString)(d.value);
199
- case 'array': {
200
- let out = '[';
201
- d.items.forEach((item, i) => {
202
- if (i > 0)
203
- out += ',';
204
- out += toText(item);
205
- });
206
- return out + ']';
207
- }
208
- case 'object': {
209
- let out = '{';
210
- let i = 0;
211
- for (const [k, v] of d.members) {
212
- if (i++ > 0)
213
- out += ',';
214
- out += (0, json_1.jsonString)(k) + ':' + toText(v);
215
- }
216
- return out + '}';
217
- }
218
- }
219
- }
220
- // Emit a datum as `JsonEvents/1` (without the final `end`, so a datum can
221
- // stand in for any part of a document).
222
- function walkDatum(d, sink) {
223
- switch (d.type) {
224
- case 'null':
225
- return sink.event(event_1.Ev.null);
226
- case 'bool':
227
- return sink.event(event_1.Ev.bool(d.value));
228
- case 'number':
229
- return sink.event(event_1.Ev.number(d.value, d.lexeme));
230
- case 'string':
231
- return sink.event(event_1.Ev.string(d.value));
232
- case 'array':
233
- if ('stop' === sink.event(event_1.Ev.arrayStart))
234
- return 'stop';
235
- for (const item of d.items) {
236
- if ('stop' === walkDatum(item, sink))
237
- return 'stop';
238
- }
239
- return sink.event(event_1.Ev.arrayEnd);
240
- case 'object':
241
- if ('stop' === sink.event(event_1.Ev.objectStart))
242
- return 'stop';
243
- for (const [k, v] of d.members) {
244
- if ('stop' === sink.event(event_1.Ev.key(k)))
245
- return 'stop';
246
- if ('stop' === walkDatum(v, sink))
247
- return 'stop';
248
- }
249
- return sink.event(event_1.Ev.objectEnd);
250
- }
251
- }
252
- // Builds one `Datum` from the events of one value, under a byte limit.
253
- //
254
- // Feed it every event from the value's first to its last; `finished()`
255
- // says when the value is complete. Bytes are counted as they arrive, and
256
- // the limit fails at the first byte over it rather than after the value is
257
- // whole. The builder knows nothing of where in a document its value sits:
258
- // a failure leaves `path` unset and the stage that placed the builder adds
259
- // it.
260
- class DatumBuilder {
261
- // A builder whose limit failure names `limitName` (a `Limits` field).
262
- constructor(limit, limitName, duplicates) {
263
- this.stack = [];
264
- this.done = undefined;
265
- this.held = 0;
266
- this.limit = limit;
267
- this.limitName = limitName;
268
- this.duplicates = duplicates;
269
- }
270
- bytes() {
271
- return this.held;
272
- }
273
- finished() {
274
- return undefined !== this.done;
275
- }
276
- // The value, once finished. Probing an unfinished builder returns
277
- // `undefined` and leaves the charge for the partial value in place.
278
- take() {
279
- const done = this.done;
280
- if (undefined !== done) {
281
- this.done = undefined;
282
- this.held = 0;
283
- }
284
- return done;
285
- }
286
- charge(n) {
287
- this.held += n;
288
- if (this.held > this.limit) {
289
- throw error_1.Fail.limit(this.limitName, this.limit, `a value is larger than ${this.limit} bytes`);
290
- }
291
- }
292
- place(value) {
293
- const top = this.stack[this.stack.length - 1];
294
- if (undefined === top) {
295
- this.done = value;
296
- return;
297
- }
298
- if (top.array) {
299
- top.items.push(value);
300
- return;
301
- }
302
- const key = top.key;
303
- if (null === key) {
304
- throw error_1.Fail.protocol('a value arrived inside an object without a key');
305
- }
306
- top.key = null;
307
- // A repeated member was charged in full as its events arrived, which is
308
- // right: for a moment both were held. Whichever one goes now gives its
309
- // bytes back, so an object that keeps repeating a small key does not
310
- // grow towards the limit while the value it holds stays the same size.
311
- const existing = top.members.get(key);
312
- let released = 0;
313
- if (undefined !== existing) {
314
- switch (this.duplicates) {
315
- case 'reject':
316
- throw new error_1.Fail('DUPLICATE_MEMBER', `member ${JSON.stringify(key)} appears twice`);
317
- case 'first_wins':
318
- this.held = Math.max(0, this.held - ((0, limits_1.utf8Bytes)(key) + byteSize(value)));
319
- return;
320
- case 'last_wins':
321
- released = (0, limits_1.utf8Bytes)(key) + byteSize(existing);
322
- }
323
- }
324
- top.members.set(key, value);
325
- this.held = Math.max(0, this.held - released);
326
- }
327
- // One event of the value being built.
328
- event(ev) {
329
- if (undefined !== this.done) {
330
- throw error_1.Fail.protocol('an event arrived after the value was complete');
331
- }
332
- switch (ev.type) {
333
- case 'object_start':
334
- this.charge(limits_1.NODE_BYTES);
335
- this.stack.push({ array: false, members: new Map(), key: null });
336
- break;
337
- case 'array_start':
338
- this.charge(limits_1.NODE_BYTES);
339
- this.stack.push({ array: true, items: [] });
340
- break;
341
- case 'key': {
342
- this.charge((0, limits_1.utf8Bytes)(ev.key));
343
- const top = this.stack[this.stack.length - 1];
344
- if (undefined === top || top.array || null !== top.key) {
345
- throw error_1.Fail.protocol('a key arrived where no member was expected');
346
- }
347
- top.key = ev.key;
348
- break;
349
- }
350
- case 'object_end': {
351
- const top = this.stack.pop();
352
- if (undefined === top || top.array) {
353
- throw error_1.Fail.protocol('an object ended that had not started');
354
- }
355
- if (null !== top.key) {
356
- throw error_1.Fail.protocol('an object ended after a key without its value');
357
- }
358
- this.place({ type: 'object', members: top.members });
359
- break;
360
- }
361
- case 'array_end': {
362
- const top = this.stack.pop();
363
- if (undefined === top || !top.array) {
364
- throw error_1.Fail.protocol('an array ended that had not started');
365
- }
366
- this.place({ type: 'array', items: top.items });
367
- break;
368
- }
369
- case 'null':
370
- this.charge(limits_1.NODE_BYTES);
371
- this.place(NULL);
372
- break;
373
- case 'bool':
374
- this.charge(limits_1.NODE_BYTES);
375
- this.place(exports.Datum.bool(ev.value));
376
- break;
377
- case 'number':
378
- this.charge(limits_1.NODE_BYTES + (null != ev.lexeme ? (0, limits_1.utf8Bytes)(ev.lexeme) : 8));
379
- this.place(exports.Datum.number(ev.value, ev.lexeme));
380
- break;
381
- case 'string':
382
- this.charge(limits_1.NODE_BYTES + (0, limits_1.utf8Bytes)(ev.value));
383
- this.place(exports.Datum.string(ev.value));
384
- break;
385
- case 'end':
386
- throw error_1.Fail.protocol('the document ended inside a value being captured');
387
- }
388
- }
389
- }
390
- exports.DatumBuilder = DatumBuilder;
391
- //# sourceMappingURL=datum.js.map
package/dist/datum.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"datum.js","sourceRoot":"","sources":["../src/datum.ts"],"names":[],"mappings":"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"}
package/dist/error.d.ts DELETED
@@ -1,43 +0,0 @@
1
- declare const CODES: readonly ['DSL_PARSE_ERROR', 'DSL_TYPE_ERROR', 'STREAM_REUSED', 'STREAMABILITY_UNKNOWN', 'INPUT_ORDER_VIOLATION', 'CAPTURE_OVERLAP_UNSUPPORTED', 'MISSING_VALUE', 'DUPLICATE_MEMBER', 'INVALID_NUMBER', 'PROTOCOL_ORDER_ERROR', 'TARGET_VALUE_UNREPRESENTABLE', 'RESOURCE_LIMIT_EXCEEDED', 'INPUT_INVALID', 'OUTPUT_FAILED', 'ABORTED'];
2
- export type Code = (typeof CODES)[number];
3
- type CodeTable = {
4
- readonly [K in Code]: K;
5
- } & {
6
- readonly ALL: readonly Code[];
7
- parse(text: string): Code | undefined;
8
- };
9
- export declare const Code: CodeTable;
10
- export type Limit = {
11
- name: string;
12
- value: number;
13
- };
14
- export declare class Fail extends Error {
15
- code: Code;
16
- path?: string;
17
- limit?: Limit;
18
- row?: number;
19
- col?: number;
20
- file?: string;
21
- committedOutput: boolean;
22
- constructor(code: Code, message: string);
23
- inFile(file: string): this;
24
- atPath(path: string): this;
25
- at(row: number, col: number): this;
26
- committed(): this;
27
- static limit(name: string, value: number, message: string): Fail;
28
- static protocol(message: string): Fail;
29
- static input(message: string): Fail;
30
- static output(message: string): Fail;
31
- static aborted(): Fail;
32
- static fromTabnas(e: any): Fail;
33
- toJSON(): Record<string, unknown>;
34
- toString(): string;
35
- }
36
- export declare function isFail(e: unknown): e is Fail;
37
- export declare function engineCode(e: any): string;
38
- export declare function engineDetail(e: any): string;
39
- export declare function enginePosition(e: any): {
40
- row: number;
41
- col: number;
42
- } | undefined;
43
- export {};
package/dist/error.js DELETED
@@ -1,169 +0,0 @@
1
- "use strict";
2
- /* Copyright (c) 2026 tabnas, MIT License */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Fail = exports.Code = void 0;
5
- exports.isFail = isFail;
6
- exports.engineCode = engineCode;
7
- exports.engineDetail = engineDetail;
8
- exports.enginePosition = enginePosition;
9
- // Failures, with stable codes.
10
- //
11
- // The code is the contract: scripts and agents branch on it, and every
12
- // renderer, transducer and host uses the same set. The message, path and
13
- // limit are informative. A code is never renamed, removed or repurposed;
14
- // one may be added.
15
- const CODES = [
16
- 'DSL_PARSE_ERROR',
17
- 'DSL_TYPE_ERROR',
18
- 'STREAM_REUSED',
19
- 'STREAMABILITY_UNKNOWN',
20
- 'INPUT_ORDER_VIOLATION',
21
- 'CAPTURE_OVERLAP_UNSUPPORTED',
22
- 'MISSING_VALUE',
23
- 'DUPLICATE_MEMBER',
24
- 'INVALID_NUMBER',
25
- 'PROTOCOL_ORDER_ERROR',
26
- 'TARGET_VALUE_UNREPRESENTABLE',
27
- 'RESOURCE_LIMIT_EXCEEDED',
28
- 'INPUT_INVALID',
29
- 'OUTPUT_FAILED',
30
- 'ABORTED',
31
- ];
32
- const table = {};
33
- for (const c of CODES)
34
- table[c] = c;
35
- table.ALL = Object.freeze([...CODES]);
36
- table.parse = (text) => CODES.includes(text) ? text : undefined;
37
- // The codes as constants: `Code.INPUT_INVALID`, and `Code.ALL`.
38
- exports.Code = Object.freeze(table);
39
- // A failure: a code, and what is known about where and why.
40
- //
41
- // `committedOutput` says whether bytes had already been written when the
42
- // failure was found: an incremental export cannot take them back, and the
43
- // caller must be told the output may be partial.
44
- class Fail extends Error {
45
- constructor(code, message) {
46
- super(message);
47
- this.name = 'Fail';
48
- this.code = code;
49
- this.committedOutput = false;
50
- }
51
- // The failure with the source file its position is in.
52
- inFile(file) {
53
- this.file = file;
54
- return this;
55
- }
56
- atPath(path) {
57
- this.path = path;
58
- return this;
59
- }
60
- at(row, col) {
61
- this.row = row;
62
- this.col = col;
63
- return this;
64
- }
65
- committed() {
66
- this.committedOutput = true;
67
- return this;
68
- }
69
- // A limit failure, named after the `Limits` field that was passed.
70
- static limit(name, value, message) {
71
- const f = new Fail('RESOURCE_LIMIT_EXCEEDED', message);
72
- f.limit = { name, value };
73
- return f;
74
- }
75
- static protocol(message) {
76
- return new Fail('PROTOCOL_ORDER_ERROR', message);
77
- }
78
- static input(message) {
79
- return new Fail('INPUT_INVALID', message);
80
- }
81
- static output(message) {
82
- return new Fail('OUTPUT_FAILED', message);
83
- }
84
- static aborted() {
85
- return new Fail('ABORTED', 'the run was cancelled');
86
- }
87
- // The engine's own error, as an input failure carrying its code,
88
- // position and report.
89
- static fromTabnas(e) {
90
- const f = new Fail('INPUT_INVALID', `${engineCode(e)}: ${engineDetail(e)}`);
91
- const pos = enginePosition(e);
92
- if (pos) {
93
- f.row = pos.row;
94
- f.col = pos.col;
95
- }
96
- return f;
97
- }
98
- // The failure as a plain object: `code`, `message`, and `path`, `limit`
99
- // (`{name, value}`), `row`, `col`, `file`, `output` ("partial" or
100
- // "none") when they apply. This is the shape hosts print.
101
- toJSON() {
102
- const out = {
103
- code: this.code,
104
- message: this.message,
105
- };
106
- if (null != this.path)
107
- out.path = this.path;
108
- if (null != this.limit)
109
- out.limit = { name: this.limit.name, value: this.limit.value };
110
- if (null != this.row)
111
- out.row = this.row;
112
- if (null != this.col)
113
- out.col = this.col;
114
- if (null != this.file)
115
- out.file = this.file;
116
- out.output = this.committedOutput ? 'partial' : 'none';
117
- return out;
118
- }
119
- toString() {
120
- let s = `${this.code}: ${this.message}`;
121
- if (null != this.path)
122
- s += ` at ${this.path}`;
123
- if (null != this.file && null != this.row && null != this.col) {
124
- s += ` (${this.file}:${this.row}:${this.col})`;
125
- }
126
- else if (null != this.row && null != this.col) {
127
- s += ` (${this.row}:${this.col})`;
128
- }
129
- else if (null != this.file) {
130
- s += ` (in ${this.file})`;
131
- }
132
- if (null != this.limit)
133
- s += ` [${this.limit.name} = ${this.limit.value}]`;
134
- return s;
135
- }
136
- }
137
- exports.Fail = Fail;
138
- // Whether a thrown value is a `Fail`.
139
- function isFail(e) {
140
- return e instanceof Fail;
141
- }
142
- // The engine error's code (`unexpected`, `cancel`, ...).
143
- function engineCode(e) {
144
- return 'string' === typeof e?.code ? e.code : 'unknown';
145
- }
146
- // The engine error's one-line description, without the code.
147
- function engineDetail(e) {
148
- let detail = '';
149
- try {
150
- if ('function' === typeof e?.toJSON)
151
- detail = e.toJSON()?.message ?? '';
152
- }
153
- catch (_err) {
154
- detail = '';
155
- }
156
- if ('' === detail)
157
- detail = String(e?.message ?? e);
158
- return detail.trimEnd();
159
- }
160
- // The engine error's 1-based position, when it has one.
161
- function enginePosition(e) {
162
- const row = e?.lineNumber;
163
- const col = e?.columnNumber;
164
- if ('number' === typeof row && 0 < row) {
165
- return { row, col: 'number' === typeof col ? col : 0 };
166
- }
167
- return undefined;
168
- }
169
- //# sourceMappingURL=error.js.map
package/dist/error.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"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"}