@altopelago/aeon-finalize 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import type { AssignmentEvent } from '@altopelago/aeon-aes';
2
+ import type { FinalizeNodeResult, FinalizeOptions } from './types.js';
3
+ export declare function finalizeNode(aes: readonly AssignmentEvent[], options?: FinalizeOptions): FinalizeNodeResult;
4
+ //# sourceMappingURL=node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAIR,kBAAkB,EAClB,eAAe,EAMlB,MAAM,YAAY,CAAC;AAyCpB,wBAAgB,YAAY,CACxB,GAAG,EAAE,SAAS,eAAe,EAAE,EAC/B,OAAO,GAAE,eAAoB,GAC9B,kBAAkB,CAwCpB"}
package/dist/node.js ADDED
@@ -0,0 +1,321 @@
1
+ import { formatReferencePath } from './reference-path.js';
2
+ import { formatDatatypeAnnotation } from './datatype.js';
3
+ import { createProjectionState, shouldIncludeProjectedPath } from './projection.js';
4
+ function toDiagnostic(level, message, path, span) {
5
+ return {
6
+ level,
7
+ message,
8
+ ...(path !== undefined ? { path } : {}),
9
+ ...(span !== undefined ? { span: span } : {}),
10
+ };
11
+ }
12
+ const RESERVED_OBJECT_KEYS = new Set(['@', '$', '$node', '$children']);
13
+ export function finalizeNode(aes, options = {}) {
14
+ const strict = (options.mode ?? 'strict') === 'strict';
15
+ const scope = options.scope ?? 'payload';
16
+ const errors = [];
17
+ const warnings = [];
18
+ const ctx = { strict, errors, warnings };
19
+ const projection = createProjectionState(options.includePaths, options.materialization);
20
+ const rootEntries = new Map();
21
+ if (scope !== 'payload') {
22
+ rootEntries.set('header', headerNode(options.header, ctx, projection, scope));
23
+ }
24
+ if (scope !== 'header') {
25
+ const payloadEntries = payloadEntriesToNode(aes, ctx, projection, scope, options.header);
26
+ if (scope === 'full') {
27
+ rootEntries.set('payload', {
28
+ type: 'Object',
29
+ entries: payloadEntries,
30
+ span: firstNodeSpan(payloadEntries) ?? emptySpan(),
31
+ });
32
+ }
33
+ else {
34
+ for (const [key, value] of payloadEntries) {
35
+ rootEntries.set(key, value);
36
+ }
37
+ }
38
+ }
39
+ const meta = {
40
+ ...(errors.length > 0 ? { errors } : {}),
41
+ ...(warnings.length > 0 ? { warnings } : {}),
42
+ };
43
+ const root = {
44
+ type: 'Object',
45
+ entries: rootEntries,
46
+ span: firstNodeSpan(rootEntries) ?? emptySpan(),
47
+ };
48
+ return Object.keys(meta).length > 0 ? { document: { root }, meta } : { document: { root } };
49
+ }
50
+ function payloadEntriesToNode(aes, ctx, projection, scope, header) {
51
+ const rootEntries = new Map();
52
+ for (const event of aes) {
53
+ if (!isTopLevel(event.path))
54
+ continue;
55
+ const segment = event.path.segments[1];
56
+ if (!segment || segment.type !== 'member')
57
+ continue;
58
+ const key = segment.key;
59
+ if (isHeaderEventKey(key, header))
60
+ continue;
61
+ const eventPath = scopedTopLevelPath(scope, 'payload', key);
62
+ if (!shouldIncludeProjectedPath(eventPath, projection))
63
+ continue;
64
+ if (isReservedObjectKey(key)) {
65
+ ctx.errors.push(toDiagnostic('error', `Reserved key: ${key}`, eventPath, event.span));
66
+ continue;
67
+ }
68
+ if (rootEntries.has(key)) {
69
+ const diag = toDiagnostic(ctx.strict ? 'error' : 'warning', `Duplicate top-level key during node finalization: ${key}`, eventPath, event.span);
70
+ if (ctx.strict)
71
+ ctx.errors.push(diag);
72
+ else
73
+ ctx.warnings.push(diag);
74
+ if (ctx.strict)
75
+ continue;
76
+ }
77
+ const meta = {
78
+ span: event.span,
79
+ ...(event.datatype ? { datatype: event.datatype } : {}),
80
+ ...(event.annotations ? { annotations: event.annotations } : {}),
81
+ };
82
+ rootEntries.set(key, valueToNode(event.value, meta, ctx, eventPath, projection));
83
+ }
84
+ return rootEntries;
85
+ }
86
+ function headerNode(header, ctx, projection, scope) {
87
+ const entries = new Map();
88
+ if (header) {
89
+ for (const [key, value] of header.fields) {
90
+ const path = scopedTopLevelPath(scope, 'header', key);
91
+ if (!shouldIncludeProjectedPath(path, projection))
92
+ continue;
93
+ entries.set(key, valueToNode(value, { span: value.span }, ctx, path, projection));
94
+ }
95
+ }
96
+ return {
97
+ type: 'Object',
98
+ entries,
99
+ span: header?.span ?? firstNodeSpan(entries) ?? emptySpan(),
100
+ };
101
+ }
102
+ function isTopLevel(path) {
103
+ return path.segments.length === 2 && path.segments[0]?.type === 'root';
104
+ }
105
+ function valueToNode(value, meta, ctx, path, projection) {
106
+ switch (value.type) {
107
+ case 'TypedValue':
108
+ return valueToNode(value.value, meta, ctx, path, projection);
109
+ case 'StringLiteral':
110
+ return scalarNode('String', value.value, value.raw, meta);
111
+ case 'NumberLiteral':
112
+ return scalarNode('Number', value.value, value.raw, meta);
113
+ case 'InfinityLiteral':
114
+ case 'NaNLiteral':
115
+ return scalarNode('String', value.value, value.raw, meta);
116
+ case 'NullLiteral':
117
+ return value.mode === 'reserved' && value.value === 'none'
118
+ ? scalarNode('Null', null, value.raw, meta)
119
+ : scalarNode('String', value.raw, value.raw, meta);
120
+ case 'BooleanLiteral':
121
+ return scalarNode('Boolean', value.value, value.raw, meta);
122
+ case 'ToggleLiteral':
123
+ return scalarNode('Toggle', value.value, value.raw, meta);
124
+ case 'HexLiteral':
125
+ return scalarNode('Hex', value.value, value.raw, meta);
126
+ case 'RadixLiteral':
127
+ return scalarNode('Radix', value.value, value.raw, meta);
128
+ case 'EncodingLiteral':
129
+ return scalarNode('Encoding', value.value, value.raw, meta);
130
+ case 'SeparatorLiteral':
131
+ return scalarNode('Separator', value.value, value.raw, meta);
132
+ case 'DateLiteral':
133
+ return scalarNode('Date', value.value, value.raw, meta);
134
+ case 'DateTimeLiteral':
135
+ return scalarNode('DateTime', value.value, value.raw, meta);
136
+ case 'TimeLiteral':
137
+ return scalarNode('Time', value.value, value.raw, meta);
138
+ case 'CloneReference':
139
+ return referenceNode('clone', value.path, meta, path, ctx);
140
+ case 'PointerReference':
141
+ return referenceNode('pointer', value.path, meta, path, ctx);
142
+ case 'ObjectNode':
143
+ return objectNode(value.bindings, meta, ctx, path, projection);
144
+ case 'ListNode':
145
+ return listNode(value.elements, meta, ctx, path, projection);
146
+ case 'TupleLiteral':
147
+ return listNode(value.elements, meta, ctx, path, projection);
148
+ case 'NodeLiteral':
149
+ return objectNode([
150
+ {
151
+ type: 'Binding',
152
+ key: '$node',
153
+ value: {
154
+ type: 'StringLiteral',
155
+ value: value.tag,
156
+ raw: value.tag,
157
+ delimiter: '"',
158
+ span: value.span,
159
+ },
160
+ datatype: null,
161
+ attributes: [],
162
+ span: value.span,
163
+ },
164
+ ...(value.attributes.length > 0
165
+ ? [{
166
+ type: 'Binding',
167
+ key: '@',
168
+ value: {
169
+ type: 'ObjectNode',
170
+ bindings: value.attributes.flatMap((attribute) => Array.from(attribute.entries.entries()).map(([key, entry]) => ({
171
+ type: 'Binding',
172
+ key,
173
+ value: entry.value,
174
+ datatype: entry.datatype,
175
+ attributes: [],
176
+ span: entry.value.span,
177
+ }))),
178
+ attributes: [],
179
+ span: value.span,
180
+ },
181
+ datatype: null,
182
+ attributes: [],
183
+ span: value.span,
184
+ }]
185
+ : []),
186
+ {
187
+ type: 'Binding',
188
+ key: '$children',
189
+ value: {
190
+ type: 'ListNode',
191
+ elements: value.children,
192
+ attributes: [],
193
+ span: value.span,
194
+ },
195
+ datatype: null,
196
+ attributes: [],
197
+ span: value.span,
198
+ },
199
+ ], meta, ctx, path, projection, { allowReservedKeys: true });
200
+ default:
201
+ return scalarNode('String', '', '', meta);
202
+ }
203
+ }
204
+ function scalarNode(type, value, raw, meta) {
205
+ return {
206
+ type,
207
+ value,
208
+ raw,
209
+ span: meta.span,
210
+ ...(meta.datatype ? { datatype: meta.datatype } : {}),
211
+ ...(meta.annotations ? { annotations: meta.annotations } : {}),
212
+ };
213
+ }
214
+ function referenceNode(kind, refPath, meta, path, ctx) {
215
+ const token = `${kind === 'clone' ? '~' : '~>'}${formatReferencePath(refPath)}`;
216
+ const diag = toDiagnostic(ctx.strict ? 'error' : 'warning', `Reference left unresolved during node finalization: ${token}`, path, meta.span);
217
+ if (ctx.strict)
218
+ ctx.errors.push(diag);
219
+ else
220
+ ctx.warnings.push(diag);
221
+ return {
222
+ type: 'Reference',
223
+ kind,
224
+ path: refPath,
225
+ token,
226
+ span: meta.span,
227
+ ...(meta.datatype ? { datatype: meta.datatype } : {}),
228
+ ...(meta.annotations ? { annotations: meta.annotations } : {}),
229
+ };
230
+ }
231
+ function objectNode(bindings, meta, ctx, basePath, projection, options = {}) {
232
+ const entries = new Map();
233
+ for (const binding of bindings) {
234
+ const key = binding.key;
235
+ const entryPath = `${basePath}.${key}`;
236
+ if (!shouldIncludeProjectedPath(entryPath, projection)) {
237
+ continue;
238
+ }
239
+ if (!options.allowReservedKeys && isReservedObjectKey(key)) {
240
+ ctx.errors.push(toDiagnostic('error', `Reserved key: ${key}`, entryPath, binding.span));
241
+ continue;
242
+ }
243
+ if (entries.has(key)) {
244
+ const diag = toDiagnostic(ctx.strict ? 'error' : 'warning', `Duplicate object key during node finalization: ${key}`, entryPath, binding.span);
245
+ if (ctx.strict)
246
+ ctx.errors.push(diag);
247
+ else
248
+ ctx.warnings.push(diag);
249
+ if (ctx.strict)
250
+ continue;
251
+ }
252
+ const bindingAnnotations = buildAnnotations(binding.attributes);
253
+ const bindingMeta = {
254
+ span: binding.span,
255
+ ...(binding.datatype ? { datatype: formatDatatypeAnnotation(binding.datatype) } : {}),
256
+ ...(bindingAnnotations.size > 0 ? { annotations: bindingAnnotations } : {}),
257
+ };
258
+ entries.set(key, valueToNode(binding.value, bindingMeta, ctx, entryPath, projection));
259
+ }
260
+ return {
261
+ type: 'Object',
262
+ entries,
263
+ span: meta.span,
264
+ ...(meta.datatype ? { datatype: meta.datatype } : {}),
265
+ ...(meta.annotations ? { annotations: meta.annotations } : {}),
266
+ };
267
+ }
268
+ function isReservedObjectKey(key) {
269
+ return RESERVED_OBJECT_KEYS.has(key);
270
+ }
271
+ function listNode(elements, meta, ctx, basePath, projection) {
272
+ const items = elements.flatMap((element, index) => {
273
+ const elementPath = `${basePath}[${index}]`;
274
+ if (!shouldIncludeProjectedPath(elementPath, projection)) {
275
+ return [];
276
+ }
277
+ return [valueToNode(element, { span: element.span }, ctx, elementPath, projection)];
278
+ });
279
+ return {
280
+ type: 'List',
281
+ items,
282
+ span: meta.span,
283
+ ...(meta.datatype ? { datatype: meta.datatype } : {}),
284
+ ...(meta.annotations ? { annotations: meta.annotations } : {}),
285
+ };
286
+ }
287
+ function buildAnnotations(attributes) {
288
+ const result = new Map();
289
+ for (const attr of attributes) {
290
+ for (const [key, entry] of attr.entries) {
291
+ result.set(key, {
292
+ value: entry.value,
293
+ ...(entry.datatype ? { datatype: formatDatatypeAnnotation(entry.datatype) } : {}),
294
+ });
295
+ }
296
+ }
297
+ return result;
298
+ }
299
+ function scopedTopLevelPath(scope, branch, key) {
300
+ if (scope === 'full')
301
+ return `$.${branch}.${key}`;
302
+ return `$.${key}`;
303
+ }
304
+ function isHeaderEventKey(key, header) {
305
+ if (key === 'aeon:header')
306
+ return true;
307
+ if (!header || !key.startsWith('aeon:'))
308
+ return false;
309
+ return header.fields.has(key.slice('aeon:'.length));
310
+ }
311
+ function emptySpan() {
312
+ return {
313
+ start: { line: 1, column: 1, offset: 0 },
314
+ end: { line: 1, column: 1, offset: 0 },
315
+ };
316
+ }
317
+ function firstNodeSpan(entries) {
318
+ const first = entries.values().next().value;
319
+ return first?.span;
320
+ }
321
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { FinalizeInput, FinalizeWithProfileOptions, FinalizeMeta, OutputProfile, OutputRegistry } from './types.js';
2
+ import { finalizeJson, finalizeLinkedJson } from './json.js';
3
+ import { finalizeMap } from './finalize.js';
4
+ import { finalizeNode } from './node.js';
5
+ export declare function createOutputRegistry(): OutputRegistry;
6
+ export declare function createDefaultOutputRegistry(): OutputRegistry;
7
+ export declare const jsonOutputProfile: OutputProfile<ReturnType<typeof finalizeJson>['document']>;
8
+ export declare const linkedJsonOutputProfile: OutputProfile<ReturnType<typeof finalizeLinkedJson>['document']>;
9
+ export declare const mapOutputProfile: OutputProfile<ReturnType<typeof finalizeMap>['document']>;
10
+ export declare const nodeOutputProfile: OutputProfile<ReturnType<typeof finalizeNode>['document']>;
11
+ export declare function finalizeWithProfile<TDocument>(aes: FinalizeInput, options: FinalizeWithProfileOptions<TDocument>): {
12
+ document: TDocument;
13
+ meta?: FinalizeMeta;
14
+ };
15
+ //# sourceMappingURL=outputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.d.ts","sourceRoot":"","sources":["../src/outputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,aAAa,EACb,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EAEb,cAAc,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAM5D;AAED,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,CAGxF,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,UAAU,CAAC,CAGpG,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,UAAU,CAAC,CAGtF,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,CAGxF,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,SAAS,EACzC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,0BAA0B,CAAC,SAAS,CAAC,GAC/C;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAA;CAAE,CAe9C"}
@@ -0,0 +1,68 @@
1
+ import { finalizeJson, finalizeLinkedJson } from './json.js';
2
+ import { finalizeMap } from './finalize.js';
3
+ import { finalizeNode } from './node.js';
4
+ class Registry {
5
+ profiles = new Map();
6
+ register(profile) {
7
+ this.profiles.set(profile.id, profile);
8
+ return this;
9
+ }
10
+ get(id) {
11
+ return this.profiles.get(id);
12
+ }
13
+ has(id) {
14
+ return this.profiles.has(id);
15
+ }
16
+ list() {
17
+ return Array.from(this.profiles.values());
18
+ }
19
+ }
20
+ export function createOutputRegistry() {
21
+ return new Registry();
22
+ }
23
+ export function createDefaultOutputRegistry() {
24
+ return createOutputRegistry()
25
+ .register(jsonOutputProfile)
26
+ .register(linkedJsonOutputProfile)
27
+ .register(mapOutputProfile)
28
+ .register(nodeOutputProfile);
29
+ }
30
+ export const jsonOutputProfile = {
31
+ id: 'json',
32
+ finalize: (aes, options) => finalizeJson(aes, options),
33
+ };
34
+ export const linkedJsonOutputProfile = {
35
+ id: 'linked-json',
36
+ finalize: (aes, options) => finalizeLinkedJson(aes, options),
37
+ };
38
+ export const mapOutputProfile = {
39
+ id: 'map',
40
+ finalize: (aes, options) => finalizeMap(aes, options),
41
+ };
42
+ export const nodeOutputProfile = {
43
+ id: 'node',
44
+ finalize: (aes, options) => finalizeNode(aes, options),
45
+ };
46
+ export function finalizeWithProfile(aes, options) {
47
+ const registry = options.registry ?? createDefaultOutputRegistry();
48
+ const profile = resolveProfile(options.profile, registry);
49
+ if (!profile) {
50
+ const errors = [{
51
+ level: 'error',
52
+ message: `Unknown output profile: ${String(options.profile)}`,
53
+ code: 'OUTPUT_PROFILE_NOT_FOUND',
54
+ }];
55
+ return {
56
+ document: {},
57
+ meta: { errors },
58
+ };
59
+ }
60
+ return profile.finalize(aes, { mode: options.mode ?? 'strict' });
61
+ }
62
+ function resolveProfile(profileRef, registry) {
63
+ if (typeof profileRef === 'string') {
64
+ return registry.get(profileRef) ?? null;
65
+ }
66
+ return profileRef;
67
+ }
68
+ //# sourceMappingURL=outputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputs.js","sourceRoot":"","sources":["../src/outputs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface ProjectionState {
2
+ readonly projected: boolean;
3
+ readonly includePaths: readonly string[];
4
+ }
5
+ export declare function createProjectionState(includePaths: readonly string[] | undefined, materialization: 'all' | 'projected' | undefined): ProjectionState;
6
+ export declare function shouldIncludeProjectedPath(path: string, projection: ProjectionState): boolean;
7
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,eAAe,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,CAKpJ;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,OAAO,CAO7F"}
@@ -0,0 +1,28 @@
1
+ export function createProjectionState(includePaths, materialization) {
2
+ return {
3
+ projected: materialization === 'projected',
4
+ includePaths: Array.isArray(includePaths) ? includePaths : [],
5
+ };
6
+ }
7
+ export function shouldIncludeProjectedPath(path, projection) {
8
+ if (!projection.projected)
9
+ return true;
10
+ const normalizedPath = normalizeProjectionPath(path);
11
+ return projection.includePaths.some((candidate) => {
12
+ const normalizedCandidate = normalizeProjectionPath(candidate);
13
+ return normalizedCandidate === normalizedPath || isDescendantPath(normalizedCandidate, normalizedPath);
14
+ });
15
+ }
16
+ function isDescendantPath(candidate, ancestor) {
17
+ return candidate.startsWith(`${ancestor}.`)
18
+ || candidate.startsWith(`${ancestor}[`)
19
+ || candidate.startsWith(`${ancestor}@`)
20
+ || candidate.startsWith(`${ancestor}<`);
21
+ }
22
+ function normalizeProjectionPath(path) {
23
+ return path
24
+ .replace(/\.\["([A-Za-z_][A-Za-z0-9_:-]*)"\]/g, '.$1')
25
+ .replace(/@\["([A-Za-z_][A-Za-z0-9_:-]*)"\]/g, '@$1')
26
+ .replace(/^\$\["([A-Za-z_][A-Za-z0-9_:-]*)"\]/, '$.$1');
27
+ }
28
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../src/projection.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,qBAAqB,CAAC,YAA2C,EAAE,eAAgD;IAC/H,OAAO;QACH,SAAS,EAAE,eAAe,KAAK,WAAW;QAC1C,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;KAChE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,UAA2B;IAChF,IAAI,CAAC,UAAU,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QAC9C,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,mBAAmB,KAAK,cAAc,IAAI,gBAAgB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;IACzD,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC;WACpC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC;WACpC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC;WACpC,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY;IACzC,OAAO,IAAI;SACN,OAAO,CAAC,qCAAqC,EAAE,KAAK,CAAC;SACrD,OAAO,CAAC,oCAAoC,EAAE,KAAK,CAAC;SACpD,OAAO,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type ReferencePathPart = string | number | {
2
+ readonly type: 'attr';
3
+ readonly key: string;
4
+ };
5
+ export declare function formatReferencePath(pathParts: readonly ReferencePathPart[]): string;
6
+ //# sourceMappingURL=reference-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-path.d.ts","sourceRoot":"","sources":["../src/reference-path.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAElG,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CA0BnF"}
@@ -0,0 +1,35 @@
1
+ export function formatReferencePath(pathParts) {
2
+ if (pathParts.length === 0)
3
+ return '';
4
+ let out = '';
5
+ for (let i = 0; i < pathParts.length; i++) {
6
+ const segment = pathParts[i];
7
+ if (typeof segment === 'number') {
8
+ out += `[${segment}]`;
9
+ }
10
+ else if (typeof segment === 'object' && segment.type === 'attr') {
11
+ if (/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(segment.key)) {
12
+ out += `@${segment.key}`;
13
+ }
14
+ else {
15
+ out += `@[${JSON.stringify(segment.key)}]`;
16
+ }
17
+ }
18
+ else {
19
+ const member = segment;
20
+ const isBare = /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(member);
21
+ if (isBare) {
22
+ if (i > 0)
23
+ out += '.';
24
+ out += member;
25
+ }
26
+ else {
27
+ if (i > 0)
28
+ out += '.';
29
+ out += `[${JSON.stringify(member)}]`;
30
+ }
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ //# sourceMappingURL=reference-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-path.js","sourceRoot":"","sources":["../src/reference-path.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,SAAuC;IACvE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;QAC1B,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChE,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACJ,GAAG,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAC/C,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,MAAM,GAAG,OAAiB,CAAC;YACjC,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,CAAC;oBAAE,GAAG,IAAI,GAAG,CAAC;gBACtB,GAAG,IAAI,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC;oBAAE,GAAG,IAAI,GAAG,CAAC;gBACtB,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;YACzC,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FinalizedNode, FinalizedNodeDocument, NodeTransform, NodeTransformContext } from './types.js';
2
+ export declare function transformDocument(document: FinalizedNodeDocument, transform: NodeTransform): FinalizedNodeDocument;
3
+ export declare function transformNode(node: FinalizedNode, transform: NodeTransform, ctx: NodeTransformContext): FinalizedNode;
4
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EAGb,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACvB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,EAAE,aAAa,GACzB,qBAAqB,CAGvB;AAED,wBAAgB,aAAa,CACzB,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,oBAAoB,GAC1B,aAAa,CAaf"}