@altopelago/aeon-annotation-stream 0.9.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.
package/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # @altopelago/aeon-annotation-stream
2
+
3
+ Annotation and comment attachment stream generation for AEON.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @altopelago/aeon-annotation-stream
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { buildAnnotationStream } from '@altopelago/aeon-annotation-stream';
15
+
16
+ const result = buildAnnotationStream('//# docs\nanswer = 42');
17
+
18
+ if (result.errors.length === 0) {
19
+ console.log(result.annotations);
20
+ }
21
+ ```
22
+
23
+ Use this package when you need comment and annotation binding behavior directly.
24
+ For the stable compile entry point, prefer `@altopelago/aeon-core` and enable annotation emission there when appropriate.
@@ -0,0 +1,2 @@
1
+ export * from './stream.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './stream.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type AssignmentEvent } from '@altopelago/aeon-aes';
2
+ import { type Span, type Token } from '@altopelago/aeon-lexer';
3
+ export type AnnotationKind = 'doc' | 'annotation' | 'hint' | 'reserved';
4
+ export type AnnotationForm = 'line' | 'block';
5
+ export type AnnotationReservedSubtype = 'structure' | 'profile' | 'instructions';
6
+ export type AnnotationPlacementPart = 'key' | 'attributes' | 'datatype-colon' | 'datatype' | 'equals' | 'value';
7
+ export interface AnnotationPlacement {
8
+ readonly after?: AnnotationPlacementPart;
9
+ readonly before?: AnnotationPlacementPart;
10
+ }
11
+ export interface AnnotationTargetPath {
12
+ readonly kind: 'path';
13
+ readonly path: string;
14
+ }
15
+ export interface AnnotationTargetSpan {
16
+ readonly kind: 'span';
17
+ readonly span: Span;
18
+ }
19
+ export interface AnnotationTargetUnbound {
20
+ readonly kind: 'unbound';
21
+ readonly reason: 'eof' | 'no_bindable';
22
+ }
23
+ export type AnnotationTarget = AnnotationTargetPath | AnnotationTargetSpan | AnnotationTargetUnbound;
24
+ export interface AnnotationRecord {
25
+ readonly kind: AnnotationKind;
26
+ readonly form: AnnotationForm;
27
+ readonly raw: string;
28
+ readonly span: Span;
29
+ readonly target: AnnotationTarget;
30
+ readonly subtype?: AnnotationReservedSubtype;
31
+ readonly placement?: AnnotationPlacement;
32
+ }
33
+ export interface BuildAnnotationStreamInput {
34
+ readonly tokens: readonly Token[];
35
+ readonly events: readonly AssignmentEvent[];
36
+ readonly spans?: readonly Span[];
37
+ }
38
+ export declare function buildAnnotationStream(input: BuildAnnotationStreamInput): readonly AnnotationRecord[];
39
+ export declare function buildAnnotationStreamFromSource(source: string, events: readonly AssignmentEvent[]): readonly AnnotationRecord[];
40
+ export declare function buildAnnotationStreamFromSourceAndSpans(source: string, events: readonly AssignmentEvent[], spans: readonly Span[]): readonly AnnotationRecord[];
41
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAY,KAAK,IAAI,EAAE,KAAK,KAAK,EAAa,MAAM,wBAAwB,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,CAAC;AACjF,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,aAAa,CAAC;CAC1C;AAED,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAErG,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CACpC;AA2HD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,SAAS,gBAAgB,EAAE,CAyCpG;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAE/H;AAED,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,KAAK,EAAE,SAAS,IAAI,EAAE,GACvB,SAAS,gBAAgB,EAAE,CAM7B"}
package/dist/stream.js ADDED
@@ -0,0 +1,432 @@
1
+ import { formatPath } from '@altopelago/aeon-aes';
2
+ import { tokenize, TokenType } from '@altopelago/aeon-lexer';
3
+ class AnnotationResolver {
4
+ pathBindables;
5
+ spanBindables;
6
+ pathByStart;
7
+ pathStarts;
8
+ pathTrailingByLine;
9
+ descendantsByPath;
10
+ spanByStart;
11
+ spanStarts;
12
+ spanTrailingByLine;
13
+ pathCursor = 0;
14
+ pathActive = [];
15
+ spanCursor = 0;
16
+ spanActive = [];
17
+ constructor(pathBindables, spanBindables) {
18
+ this.pathBindables = pathBindables;
19
+ this.spanBindables = spanBindables;
20
+ this.pathByStart = [...pathBindables].sort((left, right) => left.span.start.offset - right.span.start.offset);
21
+ this.pathStarts = this.pathByStart.map((bindable) => bindable.span.start.offset);
22
+ this.pathTrailingByLine = buildTrailingIndex(pathBindables);
23
+ this.descendantsByPath = buildDescendantIndex(pathBindables);
24
+ this.spanByStart = [...spanBindables].sort((left, right) => left.span.start.offset - right.span.start.offset);
25
+ this.spanStarts = this.spanByStart.map((bindable) => bindable.span.start.offset);
26
+ this.spanTrailingByLine = buildTrailingIndex(spanBindables);
27
+ }
28
+ resolveTarget(commentSpan) {
29
+ if (this.pathBindables.length === 0 && this.spanBindables.length === 0) {
30
+ return { kind: 'unbound', reason: 'no_bindable' };
31
+ }
32
+ const pathTarget = this.resolvePathTarget(commentSpan);
33
+ if (pathTarget) {
34
+ return pathTarget;
35
+ }
36
+ const spanTarget = this.resolveSpanTarget(commentSpan);
37
+ if (spanTarget) {
38
+ return spanTarget;
39
+ }
40
+ return { kind: 'unbound', reason: 'eof' };
41
+ }
42
+ resolvePathTarget(commentSpan) {
43
+ this.pathActive = advanceActiveBindables(commentSpan, this.pathByStart, this.pathActive, this.pathCursor);
44
+ this.pathCursor += countNewlyActive(commentSpan, this.pathByStart, this.pathCursor);
45
+ const container = smallestContaining(commentSpan, this.pathActive);
46
+ if (container) {
47
+ const nearestChild = nearestDescendant(commentSpan, this.descendantsByPath.get(container.path));
48
+ if (nearestChild) {
49
+ return { kind: 'path', path: nearestChild.path };
50
+ }
51
+ return { kind: 'path', path: container.path };
52
+ }
53
+ const trailing = nearestTrailingSameLine(commentSpan, this.pathTrailingByLine);
54
+ if (trailing) {
55
+ return { kind: 'path', path: trailing.path };
56
+ }
57
+ const forward = firstForward(commentSpan, this.pathByStart, this.pathStarts);
58
+ if (forward) {
59
+ return { kind: 'path', path: forward.path };
60
+ }
61
+ return null;
62
+ }
63
+ resolveSpanTarget(commentSpan) {
64
+ this.spanActive = advanceActiveBindables(commentSpan, this.spanByStart, this.spanActive, this.spanCursor);
65
+ this.spanCursor += countNewlyActive(commentSpan, this.spanByStart, this.spanCursor);
66
+ const container = smallestContaining(commentSpan, this.spanActive);
67
+ if (container) {
68
+ return { kind: 'span', span: container.span };
69
+ }
70
+ const trailing = nearestTrailingSameLine(commentSpan, this.spanTrailingByLine);
71
+ if (trailing) {
72
+ return { kind: 'span', span: trailing.span };
73
+ }
74
+ const forward = firstForward(commentSpan, this.spanByStart, this.spanStarts);
75
+ if (forward) {
76
+ return { kind: 'span', span: forward.span };
77
+ }
78
+ return null;
79
+ }
80
+ }
81
+ export function buildAnnotationStream(input) {
82
+ const bindables = input.events.map((event, order) => ({
83
+ span: event.span,
84
+ path: formatPath(event.path),
85
+ order,
86
+ }));
87
+ const eventByPath = new Map(input.events.map((event) => [formatPath(event.path), event]));
88
+ const spanBindables = (input.spans ?? []).map((span, order) => ({ span, order }));
89
+ const resolver = new AnnotationResolver(bindables, spanBindables);
90
+ const records = [];
91
+ for (const token of input.tokens) {
92
+ if (token.type !== TokenType.LineComment && token.type !== TokenType.BlockComment) {
93
+ continue;
94
+ }
95
+ if (!token.comment) {
96
+ continue;
97
+ }
98
+ if (token.comment.channel === 'plain' || token.comment.channel === 'host') {
99
+ continue;
100
+ }
101
+ const target = resolver.resolveTarget(token.span);
102
+ const record = {
103
+ kind: token.comment.channel,
104
+ form: token.comment.form,
105
+ raw: token.value,
106
+ span: token.span,
107
+ target,
108
+ };
109
+ const placement = resolvePlacement(token, target, eventByPath, input.tokens);
110
+ if (placement) {
111
+ record.placement = placement;
112
+ }
113
+ if (token.comment.subtype) {
114
+ record.subtype = token.comment.subtype;
115
+ }
116
+ records.push(record);
117
+ }
118
+ return records;
119
+ }
120
+ export function buildAnnotationStreamFromSource(source, events) {
121
+ return buildAnnotationStreamFromSourceAndSpans(source, events, []);
122
+ }
123
+ export function buildAnnotationStreamFromSourceAndSpans(source, events, spans) {
124
+ const lexResult = tokenize(source, { includeComments: true });
125
+ if (lexResult.errors.length > 0) {
126
+ return [];
127
+ }
128
+ return buildAnnotationStream({ tokens: lexResult.tokens, events, spans });
129
+ }
130
+ function spanContains(outer, inner) {
131
+ return outer.start.offset <= inner.start.offset && outer.end.offset >= inner.end.offset;
132
+ }
133
+ function spanLength(span) {
134
+ return span.end.offset - span.start.offset;
135
+ }
136
+ function containingKey(bindable) {
137
+ return [spanLength(bindable.span), bindable.order];
138
+ }
139
+ function smallestContaining(commentSpan, bindables) {
140
+ let best = null;
141
+ for (const bindable of bindables) {
142
+ if (!spanContains(bindable.span, commentSpan)) {
143
+ continue;
144
+ }
145
+ if (!best) {
146
+ best = bindable;
147
+ continue;
148
+ }
149
+ const [leftLen, leftOrder] = containingKey(bindable);
150
+ const [rightLen, rightOrder] = containingKey(best);
151
+ if (leftLen < rightLen || (leftLen === rightLen && leftOrder < rightOrder)) {
152
+ best = bindable;
153
+ }
154
+ }
155
+ return best;
156
+ }
157
+ function nearestDescendant(commentSpan, index) {
158
+ if (!index) {
159
+ return null;
160
+ }
161
+ const trailingIndex = upperBound(index.ends, commentSpan.start.offset) - 1;
162
+ const forwardIndex = lowerBound(index.starts, commentSpan.end.offset);
163
+ const trailingHit = trailingIndex >= 0 ? index.items[trailingIndex] ?? null : null;
164
+ const forwardHit = forwardIndex < index.items.length ? index.items[forwardIndex] ?? null : null;
165
+ if (trailingHit && forwardHit) {
166
+ const trailingDistance = commentSpan.start.offset - trailingHit.span.end.offset;
167
+ const forwardDistance = forwardHit.span.start.offset - commentSpan.end.offset;
168
+ return forwardDistance <= trailingDistance ? forwardHit : trailingHit;
169
+ }
170
+ return forwardHit ?? trailingHit;
171
+ }
172
+ function resolvePlacement(comment, target, eventByPath, tokens) {
173
+ if (target.kind !== 'path') {
174
+ return undefined;
175
+ }
176
+ const event = eventByPath.get(target.path);
177
+ if (!event) {
178
+ return undefined;
179
+ }
180
+ const landmarks = bindingLandmarks(event, tokens);
181
+ if (landmarks.length === 0) {
182
+ return undefined;
183
+ }
184
+ if (landmarks.some((landmark) => spansOverlapInterior(landmark.span, comment.span))) {
185
+ return undefined;
186
+ }
187
+ const previous = landmarks
188
+ .filter((landmark) => landmark.span.end.offset <= comment.span.start.offset)
189
+ .at(-1);
190
+ const next = landmarks.find((landmark) => landmark.span.start.offset >= comment.span.end.offset);
191
+ if (!previous && !next) {
192
+ return undefined;
193
+ }
194
+ return {
195
+ ...(previous ? { after: previous.part } : {}),
196
+ ...(next ? { before: next.part } : {}),
197
+ };
198
+ }
199
+ function bindingLandmarks(event, tokens) {
200
+ const eventTokens = tokens
201
+ .filter((token) => token.type !== TokenType.EOF)
202
+ .filter((token) => !isCommentToken(token))
203
+ .filter((token) => token.span.start.offset >= event.span.start.offset && token.span.end.offset <= event.span.end.offset);
204
+ const topLevel = topLevelTokens(eventTokens);
205
+ const key = topLevel[0];
206
+ if (!key) {
207
+ return [];
208
+ }
209
+ const valueSpan = event.value.span;
210
+ const equals = topLevel
211
+ .filter((token) => token.type === TokenType.Equals && token.span.end.offset <= valueSpan.start.offset)
212
+ .at(-1);
213
+ const headEnd = equals?.span.start.offset ?? valueSpan.start.offset;
214
+ const attributes = findAttributesLandmark(eventTokens, topLevel, key.span.end.offset, headEnd);
215
+ const datatypeColon = topLevel.find((token) => token.type === TokenType.Colon
216
+ && token.span.start.offset >= (attributes?.span.end.offset ?? key.span.end.offset)
217
+ && token.span.end.offset <= headEnd);
218
+ const datatype = datatypeColon ? findDatatypeLandmark(eventTokens, datatypeColon.span.end.offset, headEnd) : undefined;
219
+ return [
220
+ { part: 'key', span: key.span },
221
+ ...(attributes ? [attributes] : []),
222
+ ...(datatypeColon ? [{ part: 'datatype-colon', span: datatypeColon.span }] : []),
223
+ ...(datatype ? [datatype] : []),
224
+ ...(equals ? [{ part: 'equals', span: equals.span }] : []),
225
+ { part: 'value', span: valueSpan },
226
+ ].sort((left, right) => left.span.start.offset - right.span.start.offset);
227
+ }
228
+ function isCommentToken(token) {
229
+ return token.type === TokenType.LineComment || token.type === TokenType.BlockComment;
230
+ }
231
+ function topLevelTokens(tokens) {
232
+ const result = [];
233
+ let depth = 0;
234
+ for (const token of tokens) {
235
+ if (depth === 0) {
236
+ result.push(token);
237
+ }
238
+ depth += depthDelta(token);
239
+ if (depth < 0) {
240
+ depth = 0;
241
+ }
242
+ }
243
+ return result;
244
+ }
245
+ function depthDelta(token) {
246
+ switch (token.type) {
247
+ case TokenType.LeftBrace:
248
+ case TokenType.LeftBracket:
249
+ case TokenType.LeftParen:
250
+ case TokenType.LeftAngle:
251
+ return 1;
252
+ case TokenType.RightBrace:
253
+ case TokenType.RightBracket:
254
+ case TokenType.RightParen:
255
+ case TokenType.RightAngle:
256
+ return -1;
257
+ default:
258
+ return 0;
259
+ }
260
+ }
261
+ function findAttributesLandmark(tokens, topLevel, afterOffset, beforeOffset) {
262
+ const at = topLevel.find((token) => token.type === TokenType.At
263
+ && token.span.start.offset >= afterOffset
264
+ && token.span.end.offset <= beforeOffset);
265
+ if (!at) {
266
+ return undefined;
267
+ }
268
+ const nextHeadPart = topLevel.find((token) => token.span.start.offset > at.span.start.offset
269
+ && token.span.start.offset <= beforeOffset
270
+ && (token.type === TokenType.Colon || token.type === TokenType.Equals));
271
+ const end = nextHeadPart
272
+ ? tokens
273
+ .filter((token) => token.span.end.offset <= nextHeadPart.span.start.offset)
274
+ .at(-1)?.span.end ?? at.span.end
275
+ : at.span.end;
276
+ return {
277
+ part: 'attributes',
278
+ span: { start: at.span.start, end },
279
+ };
280
+ }
281
+ function findDatatypeLandmark(tokens, afterOffset, beforeOffset) {
282
+ const datatypeTokens = tokens.filter((token) => token.span.start.offset >= afterOffset
283
+ && token.span.end.offset <= beforeOffset
284
+ && token.type !== TokenType.Equals);
285
+ const first = datatypeTokens[0];
286
+ const last = datatypeTokens.at(-1);
287
+ if (!first || !last) {
288
+ return undefined;
289
+ }
290
+ return {
291
+ part: 'datatype',
292
+ span: { start: first.span.start, end: last.span.end },
293
+ };
294
+ }
295
+ function spansOverlapInterior(left, right) {
296
+ return left.start.offset < right.end.offset && right.start.offset < left.end.offset;
297
+ }
298
+ function buildDescendantIndex(bindables) {
299
+ const grouped = new Map();
300
+ for (const bindable of bindables) {
301
+ const ancestors = ancestorPaths(bindable.path);
302
+ for (let index = 0; index < ancestors.length - 1; index += 1) {
303
+ const ancestor = ancestors[index];
304
+ const items = grouped.get(ancestor);
305
+ if (items) {
306
+ items.push(bindable);
307
+ }
308
+ else {
309
+ grouped.set(ancestor, [bindable]);
310
+ }
311
+ }
312
+ }
313
+ const indexed = new Map();
314
+ for (const [path, items] of grouped.entries()) {
315
+ items.sort((left, right) => left.span.start.offset - right.span.start.offset);
316
+ indexed.set(path, {
317
+ items,
318
+ starts: items.map((item) => item.span.start.offset),
319
+ ends: items.map((item) => item.span.end.offset),
320
+ });
321
+ }
322
+ return indexed;
323
+ }
324
+ function ancestorPaths(path) {
325
+ const result = ['$'];
326
+ let index = 1;
327
+ while (index < path.length) {
328
+ const marker = path[index];
329
+ if (marker === '.') {
330
+ index += 1;
331
+ while (index < path.length && path[index] !== '.' && path[index] !== '[') {
332
+ index += 1;
333
+ }
334
+ result.push(path.slice(0, index));
335
+ continue;
336
+ }
337
+ if (marker === '[') {
338
+ index += 1;
339
+ while (index < path.length && path[index] !== ']') {
340
+ index += 1;
341
+ }
342
+ if (index < path.length) {
343
+ index += 1;
344
+ }
345
+ result.push(path.slice(0, index));
346
+ continue;
347
+ }
348
+ index += 1;
349
+ }
350
+ return result;
351
+ }
352
+ function buildTrailingIndex(bindables) {
353
+ const grouped = new Map();
354
+ for (const bindable of bindables) {
355
+ const items = grouped.get(bindable.span.end.line);
356
+ if (items) {
357
+ items.push(bindable);
358
+ }
359
+ else {
360
+ grouped.set(bindable.span.end.line, [bindable]);
361
+ }
362
+ }
363
+ const indexed = new Map();
364
+ for (const [line, items] of grouped.entries()) {
365
+ items.sort((left, right) => left.span.end.offset - right.span.end.offset);
366
+ indexed.set(line, {
367
+ items,
368
+ offsets: items.map((item) => item.span.end.offset),
369
+ });
370
+ }
371
+ return indexed;
372
+ }
373
+ function nearestTrailingSameLine(commentSpan, trailingByLine) {
374
+ const entry = trailingByLine.get(commentSpan.start.line);
375
+ if (!entry) {
376
+ return null;
377
+ }
378
+ const index = upperBound(entry.offsets, commentSpan.start.offset) - 1;
379
+ if (index < 0) {
380
+ return null;
381
+ }
382
+ return entry.items[index] ?? null;
383
+ }
384
+ function firstForward(commentSpan, byStart, starts) {
385
+ const index = lowerBound(starts, commentSpan.end.offset);
386
+ return byStart[index] ?? null;
387
+ }
388
+ function countNewlyActive(commentSpan, byStart, cursor) {
389
+ let next = cursor;
390
+ while (next < byStart.length && byStart[next].span.start.offset <= commentSpan.start.offset) {
391
+ next += 1;
392
+ }
393
+ return next - cursor;
394
+ }
395
+ function advanceActiveBindables(commentSpan, byStart, active, cursor) {
396
+ const next = active.filter((bindable) => bindable.span.end.offset >= commentSpan.end.offset);
397
+ let index = cursor;
398
+ while (index < byStart.length && byStart[index].span.start.offset <= commentSpan.start.offset) {
399
+ next.push(byStart[index]);
400
+ index += 1;
401
+ }
402
+ return next;
403
+ }
404
+ function lowerBound(values, target) {
405
+ let low = 0;
406
+ let high = values.length;
407
+ while (low < high) {
408
+ const mid = Math.floor((low + high) / 2);
409
+ if (values[mid] < target) {
410
+ low = mid + 1;
411
+ }
412
+ else {
413
+ high = mid;
414
+ }
415
+ }
416
+ return low;
417
+ }
418
+ function upperBound(values, target) {
419
+ let low = 0;
420
+ let high = values.length;
421
+ while (low < high) {
422
+ const mid = Math.floor((low + high) / 2);
423
+ if (values[mid] <= target) {
424
+ low = mid + 1;
425
+ }
426
+ else {
427
+ high = mid;
428
+ }
429
+ }
430
+ return low;
431
+ }
432
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAyB,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAwEpF,MAAM,kBAAkB;IACH,aAAa,CAAsB;IACnC,aAAa,CAA0B;IACvC,WAAW,CAAsB;IACjC,UAAU,CAAoB;IAC9B,kBAAkB,CAA+C;IACjE,iBAAiB,CAAuC;IACxD,WAAW,CAA0B;IACrC,UAAU,CAAoB;IAC9B,kBAAkB,CAAmD;IAC9E,UAAU,GAAG,CAAC,CAAC;IACf,UAAU,GAAe,EAAE,CAAC;IAC5B,UAAU,GAAG,CAAC,CAAC;IACf,UAAU,GAAmB,EAAE,CAAC;IAExC,YAAY,aAAkC,EAAE,aAAsC;QAClF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,aAAa,CAAC,WAAiB;QAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAEO,iBAAiB,CAAC,WAAiB;QACvC,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpF,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAChG,IAAI,YAAY,EAAE,CAAC;gBACf,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/E,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,WAAiB;QACvC,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpF,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/E,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7E,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACnE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5B,KAAK;KACR,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAElE,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,EAAE,CAAC;YAChF,SAAS;QACb,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACjB,SAAS;QACb,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACxE,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAqB;YAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC3B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YACxB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM;SACT,CAAC;QACF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,SAAS,EAAE,CAAC;YACX,MAA6C,CAAC,SAAS,GAAG,SAAS,CAAC;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,MAAiD,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,MAAc,EAAE,MAAkC;IAC9F,OAAO,uCAAuC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,uCAAuC,CACnD,MAAc,EACd,MAAkC,EAClC,KAAsB;IAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,qBAAqB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,YAAY,CAAC,KAAW,EAAE,KAAW;IAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5F,CAAC;AAED,SAAS,UAAU,CAAC,IAAU;IAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,QAAyD;IAC5E,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,kBAAkB,CACvB,WAAiB,EACjB,SAAuB;IAEvB,IAAI,IAAI,GAAa,IAAI,CAAC;IAC1B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAC5C,SAAS;QACb,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,IAAI,GAAG,QAAQ,CAAC;YAChB,SAAS;QACb,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,QAAQ,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;YACzE,IAAI,GAAG,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAiB,EAAE,KAAkC;IAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,WAAW,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAChF,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAC9E,OAAO,eAAe,IAAI,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAC1E,CAAC;IACD,OAAO,UAAU,IAAI,WAAW,CAAC;AACrC,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAc,EACd,MAAwB,EACxB,WAAiD,EACjD,MAAwB;IAExB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS;SACrB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;SAC3E,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACZ,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjG,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO;QACH,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAsB,EAAE,MAAwB;IACtE,MAAM,WAAW,GAAG,MAAM;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,CAAC;SAC/C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7H,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ;SAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;SACrG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;IACpE,MAAM,UAAU,GAAG,sBAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1C,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK;WAC3B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;WAC/E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CACtC,CAAC;IACF,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEvH,OAAO;QACH,EAAE,IAAI,EAAE,KAAc,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QACxC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAyB,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,EAAE,IAAI,EAAE,OAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;KAC9C,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,KAAY;IAChC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC;AACzF,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,KAAY;IAC5B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,SAAS,CAAC;QACzB,KAAK,SAAS,CAAC,WAAW,CAAC;QAC3B,KAAK,SAAS,CAAC,SAAS,CAAC;QACzB,KAAK,SAAS,CAAC,SAAS;YACpB,OAAO,CAAC,CAAC;QACb,KAAK,SAAS,CAAC,UAAU,CAAC;QAC1B,KAAK,SAAS,CAAC,YAAY,CAAC;QAC5B,KAAK,SAAS,CAAC,UAAU,CAAC;QAC1B,KAAK,SAAS,CAAC,UAAU;YACrB,OAAO,CAAC,CAAC,CAAC;QACd;YACI,OAAO,CAAC,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAC3B,MAAwB,EACxB,QAA0B,EAC1B,WAAmB,EACnB,YAAoB;IAEpB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE;WACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW;WACtC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,CAC3C,CAAC;IACF,IAAI,CAAC,EAAE,EAAE,CAAC;QACN,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;WAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY;WACvC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CAAC,CACzE,CAAC;IACF,MAAM,GAAG,GAAG,YAAY;QACpB,CAAC,CAAC,MAAM;aACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aAC1E,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG;QACpC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;IAClB,OAAO;QACH,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;KACtC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CACzB,MAAwB,EACxB,WAAmB,EACnB,YAAoB;IAEpB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW;WACnC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,YAAY;WACrC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,CACrC,CAAC;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO;QACH,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;KACxD,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU,EAAE,KAAW;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACxF,CAAC;AAED,SAAS,oBAAoB,CAAC,SAA8B;IACxD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAE,CAAC;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,KAAK,EAAE,CAAC;gBACR,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;IACL,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2B,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YACd,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACnD,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;SAClD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IAC/B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvE,KAAK,IAAI,CAAC,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAClC,SAAS;QACb,CAAC;QACD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChD,KAAK,IAAI,CAAC,CAAC;YACf,CAAC;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,CAAC;YACf,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAClC,SAAS;QACb,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAoC,SAAuB;IAClF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YACd,KAAK;YACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;SACrD,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAC5B,WAAiB,EACjB,cAAqD;IAErD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CACjB,WAAiB,EACjB,OAAqB,EACrB,MAAyB;IAEzB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CACrB,WAAiB,EACjB,OAAqB,EACrB,MAAc;IAEd,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,OAAO,IAAI,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,CAAC;IACd,CAAC;IACD,OAAO,IAAI,GAAG,MAAM,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAC3B,WAAiB,EACjB,OAAqB,EACrB,MAAoB,EACpB,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7F,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,OAAO,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC7F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,MAAyB,EAAE,MAAc;IACzD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAE,GAAG,MAAM,EAAE,CAAC;YACxB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,MAAyB,EAAE,MAAc;IACzD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,MAAM,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@altopelago/aeon-annotation-stream",
3
+ "version": "0.9.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "!dist/**/*.test.d.ts",
16
+ "!dist/**/*.test.d.ts.map",
17
+ "!dist/**/*.test.js",
18
+ "!dist/**/*.test.js.map"
19
+ ],
20
+ "dependencies": {
21
+ "@altopelago/aeon-lexer": "0.9.0",
22
+ "@altopelago/aeon-aes": "0.9.0"
23
+ },
24
+ "scripts": {
25
+ "build": "tsc -p tsconfig.json",
26
+ "test": "node --test dist/*.test.js",
27
+ "perf:annotations": "pnpm --dir ../core build && pnpm build && node ./scripts/perf-annotations.mjs",
28
+ "clean": "rm -rf dist",
29
+ "typecheck": "tsc -p tsconfig.json --noEmit"
30
+ }
31
+ }