@tabnas/transduce 0.1.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 (63) hide show
  1. package/LICENSE +21 -0
  2. package/dist/capability.d.ts +6 -0
  3. package/dist/capability.js +52 -0
  4. package/dist/capability.js.map +1 -0
  5. package/dist/datum.d.ts +64 -0
  6. package/dist/datum.js +391 -0
  7. package/dist/datum.js.map +1 -0
  8. package/dist/error.d.ts +43 -0
  9. package/dist/error.js +169 -0
  10. package/dist/error.js.map +1 -0
  11. package/dist/event.d.ts +56 -0
  12. package/dist/event.js +101 -0
  13. package/dist/event.js.map +1 -0
  14. package/dist/guard.d.ts +20 -0
  15. package/dist/guard.js +90 -0
  16. package/dist/guard.js.map +1 -0
  17. package/dist/json.d.ts +4 -0
  18. package/dist/json.js +92 -0
  19. package/dist/json.js.map +1 -0
  20. package/dist/limits.d.ts +36 -0
  21. package/dist/limits.js +133 -0
  22. package/dist/limits.js.map +1 -0
  23. package/dist/lines.d.ts +39 -0
  24. package/dist/lines.js +1139 -0
  25. package/dist/lines.js.map +1 -0
  26. package/dist/matcher.d.ts +26 -0
  27. package/dist/matcher.js +245 -0
  28. package/dist/matcher.js.map +1 -0
  29. package/dist/parser-source.d.ts +27 -0
  30. package/dist/parser-source.js +194 -0
  31. package/dist/parser-source.js.map +1 -0
  32. package/dist/route.d.ts +61 -0
  33. package/dist/route.js +197 -0
  34. package/dist/route.js.map +1 -0
  35. package/dist/rule-events.d.ts +58 -0
  36. package/dist/rule-events.js +598 -0
  37. package/dist/rule-events.js.map +1 -0
  38. package/dist/scan.d.ts +19 -0
  39. package/dist/scan.js +70 -0
  40. package/dist/scan.js.map +1 -0
  41. package/dist/selector.d.ts +40 -0
  42. package/dist/selector.js +154 -0
  43. package/dist/selector.js.map +1 -0
  44. package/dist/sink.d.ts +29 -0
  45. package/dist/sink.js +184 -0
  46. package/dist/sink.js.map +1 -0
  47. package/dist/source.d.ts +37 -0
  48. package/dist/source.js +113 -0
  49. package/dist/source.js.map +1 -0
  50. package/dist/table-from-json.d.ts +12 -0
  51. package/dist/table-from-json.js +217 -0
  52. package/dist/table-from-json.js.map +1 -0
  53. package/dist/table.d.ts +81 -0
  54. package/dist/table.js +141 -0
  55. package/dist/table.js.map +1 -0
  56. package/dist/transduce.d.ts +28 -0
  57. package/dist/transduce.js +109 -0
  58. package/dist/transduce.js.map +1 -0
  59. package/dist/tsconfig.tsbuildinfo +1 -0
  60. package/dist/value.d.ts +16 -0
  61. package/dist/value.js +96 -0
  62. package/dist/value.js.map +1 -0
  63. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lines.js","sourceRoot":"","sources":["../src/lines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { JsonEvent } from './event';
2
+ import { Path, Selector } from './selector';
3
+ export type CaptureId = number;
4
+ export type HitKind = 'key' | 'start' | 'scalar' | 'close' | 'end';
5
+ export type Hit = {
6
+ kind: HitKind;
7
+ begins: number;
8
+ depth: number;
9
+ };
10
+ export declare class Matcher {
11
+ private nodes;
12
+ private levels;
13
+ private open;
14
+ private nodeStack;
15
+ private begun;
16
+ private rootDone;
17
+ private isEnded;
18
+ constructor(selectors: readonly Selector[]);
19
+ depth(): number;
20
+ ended(): boolean;
21
+ path(depth: number): Path;
22
+ begins(): readonly CaptureId[];
23
+ event(ev: JsonEvent): Hit;
24
+ private beginValue;
25
+ private completeValue;
26
+ }
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 tabnas, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Matcher = void 0;
5
+ // Shared-prefix matching of many selectors in one pass.
6
+ //
7
+ // The router has to recognize every capture's selector over one event
8
+ // stream, and a document can be hundreds of megabytes, so the matcher
9
+ // never spells out a path per event: the selectors are compiled into one
10
+ // trie of steps, and the matcher walks the document with a stack of open
11
+ // containers (a level per container: its kind, how many values it has
12
+ // started, the current member's key) and, per level, the trie nodes that
13
+ // named that container, kept on one flat stack.
14
+ //
15
+ // The matcher also validates the protocol as it goes, because it holds the
16
+ // state that makes a malformed stream visible (a key outside an object, an
17
+ // array ending an object, a value after the root). Every stage downstream
18
+ // of it can therefore trust the sequence. A concrete `Path` is built only
19
+ // on request, for a delivered match or a failure.
20
+ const error_1 = require("./error");
21
+ const selector_1 = require("./selector");
22
+ const ROOT = 0;
23
+ function newNode() {
24
+ return {
25
+ properties: new Map(),
26
+ indexes: new Map(),
27
+ eachIndex: -1,
28
+ eachMember: -1,
29
+ terminals: [],
30
+ };
31
+ }
32
+ // Recognizes every selector of a set over one event stream.
33
+ class Matcher {
34
+ // Compile the selectors; their positions are the capture ids.
35
+ constructor(selectors) {
36
+ this.nodes = [newNode()];
37
+ this.levels = [];
38
+ this.open = 0;
39
+ this.nodeStack = [];
40
+ this.begun = [];
41
+ this.rootDone = false;
42
+ this.isEnded = false;
43
+ selectors.forEach((selector, id) => {
44
+ let at = ROOT;
45
+ for (const step of selector.steps) {
46
+ const node = this.nodes[at];
47
+ let next;
48
+ switch (step.type) {
49
+ case 'property':
50
+ next = node.properties.get(step.name);
51
+ break;
52
+ case 'index':
53
+ next = node.indexes.get(step.index);
54
+ break;
55
+ case 'each_index':
56
+ next = node.eachIndex < 0 ? undefined : node.eachIndex;
57
+ break;
58
+ case 'each_member':
59
+ next = node.eachMember < 0 ? undefined : node.eachMember;
60
+ break;
61
+ }
62
+ if (undefined === next) {
63
+ next = this.nodes.length;
64
+ this.nodes.push(newNode());
65
+ switch (step.type) {
66
+ case 'property':
67
+ node.properties.set(step.name, next);
68
+ break;
69
+ case 'index':
70
+ node.indexes.set(step.index, next);
71
+ break;
72
+ case 'each_index':
73
+ node.eachIndex = next;
74
+ break;
75
+ case 'each_member':
76
+ node.eachMember = next;
77
+ break;
78
+ }
79
+ }
80
+ at = next;
81
+ }
82
+ this.nodes[at].terminals.push(id);
83
+ });
84
+ }
85
+ // Open containers right now.
86
+ depth() {
87
+ return this.open;
88
+ }
89
+ // Whether `end` has been seen.
90
+ ended() {
91
+ return this.isEnded;
92
+ }
93
+ // The concrete path of the value at `depth` enclosing containers. Asked
94
+ // at a `start` or `scalar` hit it names the value; asked at a `close`
95
+ // hit it names the container that closed.
96
+ path(depth) {
97
+ const segments = [];
98
+ const n = Math.min(depth, this.open);
99
+ for (let i = 0; i < n; i++) {
100
+ const level = this.levels[i];
101
+ segments.push(level.array ? Math.max(0, level.started - 1) : level.key);
102
+ }
103
+ return new selector_1.Path(segments);
104
+ }
105
+ // The captures that began with the last event, in id order.
106
+ begins() {
107
+ return this.begun;
108
+ }
109
+ // One event. A malformed sequence is a `PROTOCOL_ORDER_ERROR`.
110
+ event(ev) {
111
+ if (this.isEnded) {
112
+ throw error_1.Fail.protocol('an event arrived after the document ended');
113
+ }
114
+ switch (ev.type) {
115
+ case 'key': {
116
+ const level = 0 < this.open ? this.levels[this.open - 1] : undefined;
117
+ if (undefined === level || level.array) {
118
+ throw error_1.Fail.protocol('a key arrived outside an object');
119
+ }
120
+ if (level.inValue) {
121
+ throw error_1.Fail.protocol('a key arrived where a value was expected');
122
+ }
123
+ level.key = ev.key;
124
+ level.inValue = true;
125
+ this.begun.length = 0;
126
+ return { kind: 'key', begins: 0, depth: this.open };
127
+ }
128
+ case 'object_start':
129
+ case 'array_start': {
130
+ const depth = this.open;
131
+ const start = this.beginValue();
132
+ const end = this.nodeStack.length;
133
+ const array = 'array_start' === ev.type;
134
+ const level = {
135
+ array,
136
+ started: 0,
137
+ key: '',
138
+ inValue: false,
139
+ start,
140
+ end,
141
+ };
142
+ if (depth === this.levels.length)
143
+ this.levels.push(level);
144
+ else
145
+ this.levels[depth] = level;
146
+ this.open++;
147
+ return { kind: 'start', begins: this.begun.length, depth };
148
+ }
149
+ case 'object_end':
150
+ case 'array_end': {
151
+ const wantArray = 'array_end' === ev.type;
152
+ const level = 0 < this.open ? this.levels[this.open - 1] : undefined;
153
+ if (undefined === level) {
154
+ throw error_1.Fail.protocol('a container ended that had not started');
155
+ }
156
+ if (level.array !== wantArray) {
157
+ throw error_1.Fail.protocol(wantArray ? 'an array ended inside an object' : 'an object ended inside an array');
158
+ }
159
+ if (level.inValue) {
160
+ throw error_1.Fail.protocol('an object ended after a key without its value');
161
+ }
162
+ this.open--;
163
+ this.nodeStack.length = level.start;
164
+ this.completeValue();
165
+ this.begun.length = 0;
166
+ return { kind: 'close', begins: 0, depth: this.open };
167
+ }
168
+ case 'end':
169
+ if (0 < this.open) {
170
+ throw error_1.Fail.protocol('the document ended inside a container');
171
+ }
172
+ if (!this.rootDone) {
173
+ throw error_1.Fail.protocol('the document ended before its root value');
174
+ }
175
+ this.isEnded = true;
176
+ this.begun.length = 0;
177
+ return { kind: 'end', begins: 0, depth: 0 };
178
+ default: {
179
+ const depth = this.open;
180
+ const start = this.beginValue();
181
+ this.nodeStack.length = start;
182
+ this.completeValue();
183
+ return { kind: 'scalar', begins: this.begun.length, depth };
184
+ }
185
+ }
186
+ }
187
+ // A value begins at the current position: check that one is allowed
188
+ // here, push the trie nodes naming it onto the node stack, and fill
189
+ // `begun`. Returns where on the node stack the value's nodes start.
190
+ beginValue() {
191
+ let base;
192
+ if (0 === this.open) {
193
+ if (this.rootDone)
194
+ throw error_1.Fail.protocol('a second root value arrived');
195
+ this.nodeStack.length = 0;
196
+ this.nodeStack.push(ROOT);
197
+ base = 0;
198
+ }
199
+ else {
200
+ const level = this.levels[this.open - 1];
201
+ if (!level.array && !level.inValue) {
202
+ throw error_1.Fail.protocol('a value arrived inside an object without a key');
203
+ }
204
+ const index = level.started;
205
+ level.started++;
206
+ this.nodeStack.length = level.end;
207
+ for (let at = level.start; at < level.end; at++) {
208
+ const node = this.nodes[this.nodeStack[at]];
209
+ if (level.array) {
210
+ if (0 <= node.eachIndex)
211
+ this.nodeStack.push(node.eachIndex);
212
+ const c = node.indexes.get(index);
213
+ if (undefined !== c)
214
+ this.nodeStack.push(c);
215
+ }
216
+ else {
217
+ if (0 <= node.eachMember)
218
+ this.nodeStack.push(node.eachMember);
219
+ const c = node.properties.get(level.key);
220
+ if (undefined !== c)
221
+ this.nodeStack.push(c);
222
+ }
223
+ }
224
+ base = level.end;
225
+ }
226
+ this.begun.length = 0;
227
+ for (let i = base; i < this.nodeStack.length; i++) {
228
+ const terminals = this.nodes[this.nodeStack[i]].terminals;
229
+ for (const t of terminals)
230
+ this.begun.push(t);
231
+ }
232
+ if (this.begun.length > 1)
233
+ this.begun.sort((a, b) => a - b);
234
+ return base;
235
+ }
236
+ // The value at the current position is complete.
237
+ completeValue() {
238
+ if (0 === this.open)
239
+ this.rootDone = true;
240
+ else
241
+ this.levels[this.open - 1].inValue = false;
242
+ }
243
+ }
244
+ exports.Matcher = Matcher;
245
+ //# sourceMappingURL=matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../src/matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { AbortFlag, Limits, Metrics } from './limits';
2
+ import { Flow, Sink } from './sink';
3
+ import { Source, SourceMode } from './source';
4
+ export declare class ParserSource implements Source {
5
+ private parser;
6
+ private text;
7
+ private sourceMode;
8
+ private sourceLimits;
9
+ private abortFlag;
10
+ private sourceMetrics;
11
+ private grammarName;
12
+ private isUnverified;
13
+ private used;
14
+ constructor(parser: any, text: string);
15
+ mode(mode: SourceMode): this;
16
+ grammar(name: string): this;
17
+ unverified(): this;
18
+ limits(limits: Limits): this;
19
+ abort(abort: AbortFlag): this;
20
+ metrics(metrics: Metrics): this;
21
+ private gate;
22
+ run(sink: Sink): Flow;
23
+ runWithValue(sink: Sink): {
24
+ flow: Flow;
25
+ value: unknown;
26
+ };
27
+ }
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /* Copyright (c) 2026 tabnas, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ParserSource = void 0;
5
+ // `ParserSource`: `JsonEvents/1` from a tabnas parse of one text.
6
+ //
7
+ // Two modes. `materialize` parses, then walks the value: always sound, and
8
+ // retains the whole value. `incremental` installs the rule-event adapter
9
+ // so events leave the parse as containers open and entries land, and
10
+ // optionally prunes streamed array elements from the engine's tree. It is
11
+ // sound for the grammars `capability.incremental` lists, which the
12
+ // differential suite verifies in this runtime, and for no other: an
13
+ // imperative grammar's rule events give a well-formed stream of the wrong
14
+ // shape or a malformed one, and the run would still return. So the
15
+ // incremental path is gated on the list, by the grammar's name, which the
16
+ // source cannot learn from the `Tabnas` and so must be told (`grammar`);
17
+ // without a listed name it fails with `STREAMABILITY_UNKNOWN` before the
18
+ // parse, having emitted nothing. `unverified()` lifts the gate for the
19
+ // differential suite that maintains the list.
20
+ //
21
+ // The parser is the source's: the source subscribes to its rule events and
22
+ // sets its parse budget (the engine has no way to take either back), so a
23
+ // parser is given to one source and not reused afterwards, and a source
24
+ // runs once (a second run is `STREAM_REUSED`).
25
+ //
26
+ // Failure mapping, in this order: a sink failure is thrown as it was; a
27
+ // sink that stopped is `'stop'`; a parse cancelled through the caller's
28
+ // `AbortFlag` is `ABORTED`; any other engine error is `INPUT_INVALID`
29
+ // with the engine's code and position; a grammar's own guard cancelling
30
+ // the parse is `INPUT_INVALID` too, with a message that names the
31
+ // grammar's guard. An incremental parse that returned without one rule
32
+ // event the adapter could turn into a value (YAML's empty document is
33
+ // `null`) has its value walked instead.
34
+ const capability_1 = require("./capability");
35
+ const error_1 = require("./error");
36
+ const event_1 = require("./event");
37
+ const guard_1 = require("./guard");
38
+ const limits_1 = require("./limits");
39
+ const rule_events_1 = require("./rule-events");
40
+ const source_1 = require("./source");
41
+ // A tabnas parser applied to one text, as a source.
42
+ class ParserSource {
43
+ // A source in materialize mode with default limits, its own abort flag
44
+ // and fresh metrics; the builder methods change each.
45
+ constructor(parser, text) {
46
+ this.sourceMode = source_1.SourceMode.materialize();
47
+ this.sourceLimits = limits_1.Limits.default();
48
+ this.abortFlag = new limits_1.AbortFlag();
49
+ this.sourceMetrics = new limits_1.Metrics();
50
+ this.grammarName = null;
51
+ this.isUnverified = false;
52
+ this.used = false;
53
+ this.parser = parser;
54
+ this.text = text;
55
+ }
56
+ mode(mode) {
57
+ this.sourceMode = mode;
58
+ return this;
59
+ }
60
+ // The grammar the parser implements, by its package's name (`json` for
61
+ // `@tabnas/json`). Incremental mode runs only for a name
62
+ // `capability.incremental` lists.
63
+ grammar(name) {
64
+ this.grammarName = name;
65
+ return this;
66
+ }
67
+ // Run incremental mode whatever the verified list says. This exists for
68
+ // the differential suite that maintains the list and for nothing else.
69
+ unverified() {
70
+ this.isUnverified = true;
71
+ return this;
72
+ }
73
+ limits(limits) {
74
+ this.sourceLimits = limits;
75
+ return this;
76
+ }
77
+ abort(abort) {
78
+ this.abortFlag = abort;
79
+ return this;
80
+ }
81
+ metrics(metrics) {
82
+ this.sourceMetrics = metrics;
83
+ return this;
84
+ }
85
+ // Why the incremental path may not run, when it may not.
86
+ gate() {
87
+ if (this.isUnverified)
88
+ return null;
89
+ const name = this.grammarName;
90
+ if (null !== name && (0, capability_1.isIncremental)(name))
91
+ return null;
92
+ if (null !== name) {
93
+ return new error_1.Fail('STREAMABILITY_UNKNOWN', `grammar ${JSON.stringify(name)} is not in capability.incremental: the differential ` +
94
+ 'suite has not verified that its rule events stream as the walk does; run it with ' +
95
+ 'SourceMode.materialize');
96
+ }
97
+ return new error_1.Fail('STREAMABILITY_UNKNOWN', "SourceMode.incremental needs the grammar's name (ParserSource.grammar) to check " +
98
+ 'capability.incremental; without one, run SourceMode.materialize');
99
+ }
100
+ // Run in the configured mode.
101
+ run(sink) {
102
+ return this.runWithValue(sink).flow;
103
+ }
104
+ // `run`, also handing back the value the engine returned. In materialize
105
+ // mode that is the grammar's value. In incremental mode it is the
106
+ // engine's tree AFTER pruning, which is neither the grammar's value nor
107
+ // the run's result (the events are): it exists so a test can measure
108
+ // what pruning left in the tree, and nothing else should read it.
109
+ runWithValue(sink) {
110
+ if (this.used) {
111
+ throw new error_1.Fail('STREAM_REUSED', 'a ParserSource runs once: its parser carries the run\'s subscriber and budget; ' +
112
+ 'make a new source, with a new parser, for another run');
113
+ }
114
+ this.used = true;
115
+ const mode = this.sourceMode;
116
+ if ('materialize' === mode.type) {
117
+ const guarded = new guard_1.Guarded(sink, this.sourceLimits, this.abortFlag, this.sourceMetrics);
118
+ try {
119
+ return materialize(this.parser, this.text, this.abortFlag, guarded);
120
+ }
121
+ finally {
122
+ guarded.flush();
123
+ }
124
+ }
125
+ const refused = this.gate();
126
+ if (null !== refused)
127
+ throw refused;
128
+ return incremental(this.parser, this.text, this.sourceLimits, this.abortFlag, this.sourceMetrics, mode.prune, sink);
129
+ }
130
+ }
131
+ exports.ParserSource = ParserSource;
132
+ // Parse, then walk; the grammar's value comes back beside the outcome.
133
+ function materialize(parser, text, abort, guarded) {
134
+ (0, rule_events_1.prepare)(parser, () => !abort.isAborted());
135
+ let value;
136
+ try {
137
+ value = parser.parse(text);
138
+ }
139
+ catch (err) {
140
+ throw (0, source_1.engineFailure)(err, abort);
141
+ }
142
+ let flow = (0, source_1.walkValue)(value, guarded);
143
+ if ('continue' === flow)
144
+ flow = guarded.event(event_1.Ev.end);
145
+ return { flow, value };
146
+ }
147
+ function incremental(parser, text, limits, abort, metrics, prune, sink) {
148
+ const stop = new limits_1.AbortFlag();
149
+ const adapter = new rule_events_1.Adapter(sink, limits, abort, metrics, prune, stop);
150
+ (0, rule_events_1.prepare)(parser, () => !abort.isAborted() && !stop.isAborted(), (rule, done) => adapter.onDone(rule, done));
151
+ let parsed;
152
+ try {
153
+ parsed = { ok: true, value: parser.parse(text) };
154
+ }
155
+ catch (error) {
156
+ parsed = { ok: false, error };
157
+ }
158
+ let outcome = { flow: 'continue' };
159
+ try {
160
+ if ('running' === adapter.status.type) {
161
+ if (parsed.ok && adapter.complete()) {
162
+ outcome = { flow: adapter.send(event_1.Ev.end) };
163
+ }
164
+ else if (parsed.ok && adapter.idle()) {
165
+ let flow = adapter.walkWhole(parsed.value);
166
+ if ('continue' === flow)
167
+ flow = adapter.send(event_1.Ev.end);
168
+ outcome = { flow };
169
+ }
170
+ else if (parsed.ok) {
171
+ outcome = { error: (0, rule_events_1.notStreamable)() };
172
+ }
173
+ else {
174
+ outcome = { error: (0, source_1.engineFailure)(parsed.error, abort) };
175
+ }
176
+ }
177
+ }
178
+ catch (error) {
179
+ outcome = { error };
180
+ }
181
+ finally {
182
+ adapter.sink.flush();
183
+ }
184
+ const value = parsed.ok ? parsed.value : undefined;
185
+ const status = adapter.status;
186
+ if ('failed' === status.type)
187
+ throw status.error;
188
+ if ('stopped' === status.type)
189
+ return { flow: 'stop', value };
190
+ if ('error' in outcome)
191
+ throw outcome.error;
192
+ return { flow: outcome.flow, value };
193
+ }
194
+ //# sourceMappingURL=parser-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-source.js","sourceRoot":"","sources":["../src/parser-source.ts"],"names":[],"mappings":"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"}