@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.
- package/README.md +143 -0
- package/dist/datatype.d.ts +7 -0
- package/dist/datatype.d.ts.map +1 -0
- package/dist/datatype.js +19 -0
- package/dist/datatype.js.map +1 -0
- package/dist/finalize.d.ts +3 -0
- package/dist/finalize.d.ts.map +1 -0
- package/dist/finalize.js +89 -0
- package/dist/finalize.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +5 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +811 -0
- package/dist/json.js.map +1 -0
- package/dist/node.d.ts +4 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +321 -0
- package/dist/node.js.map +1 -0
- package/dist/outputs.d.ts +15 -0
- package/dist/outputs.d.ts.map +1 -0
- package/dist/outputs.js +68 -0
- package/dist/outputs.js.map +1 -0
- package/dist/projection.d.ts +7 -0
- package/dist/projection.d.ts.map +1 -0
- package/dist/projection.js +28 -0
- package/dist/projection.js.map +1 -0
- package/dist/reference-path.d.ts +6 -0
- package/dist/reference-path.d.ts.map +1 -0
- package/dist/reference-path.js +35 -0
- package/dist/reference-path.js.map +1 -0
- package/dist/transform.d.ts +4 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +43 -0
- package/dist/transform.js.map +1 -0
- package/dist/types.d.ts +123 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +33 -0
package/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# @altopelago/aeon-finalize
|
|
2
|
+
|
|
3
|
+
Minimal finalization utilities for AEON.
|
|
4
|
+
|
|
5
|
+
This package consumes Assignment Events (AES) and produces deterministic
|
|
6
|
+
finalized document maps. It does not interpret values or apply runtime
|
|
7
|
+
semantics. It only aggregates AES into a canonical, path-indexed structure.
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { finalizeMap } from '@altopelago/aeon-finalize';
|
|
13
|
+
|
|
14
|
+
const { document, meta } = finalizeMap(aes, { mode: 'strict' });
|
|
15
|
+
if (!meta?.errors?.length) {
|
|
16
|
+
console.log(document.entries.get('$.config.host'));
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Common Outputs
|
|
21
|
+
|
|
22
|
+
### JSON output
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import { finalizeJson } from '@altopelago/aeon-finalize';
|
|
26
|
+
|
|
27
|
+
const { document, meta } = finalizeJson(aes, { mode: 'strict' });
|
|
28
|
+
if (!meta?.errors?.length) {
|
|
29
|
+
console.log(document);
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Linked JSON output
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
import { finalizeLinkedJson } from '@altopelago/aeon-finalize';
|
|
37
|
+
|
|
38
|
+
const { document, meta } = finalizeLinkedJson(aes, { mode: 'strict' });
|
|
39
|
+
if (!meta?.errors?.length) {
|
|
40
|
+
document.alias = 3;
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Node output
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
import { finalizeNode } from '@altopelago/aeon-finalize';
|
|
48
|
+
|
|
49
|
+
const { document } = finalizeNode(aes, { mode: 'strict' });
|
|
50
|
+
console.log(document.root);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Common Patterns
|
|
54
|
+
|
|
55
|
+
### Project only selected paths
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const { document } = finalizeJson(aes, {
|
|
59
|
+
mode: 'strict',
|
|
60
|
+
materialization: 'projected',
|
|
61
|
+
includePaths: ['$.app.name'],
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Transform a finalized node document
|
|
66
|
+
|
|
67
|
+
```ts
|
|
68
|
+
import { transformDocument } from '@altopelago/aeon-finalize';
|
|
69
|
+
|
|
70
|
+
const next = transformDocument(nodeDocument, {
|
|
71
|
+
leave(node) {
|
|
72
|
+
if (node.type === 'String') {
|
|
73
|
+
return { ...node, value: node.value.toUpperCase() };
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## API
|
|
80
|
+
|
|
81
|
+
- `finalizeMap(aes, options)`
|
|
82
|
+
- `finalizeJson(aes, options)`
|
|
83
|
+
- `finalizeLinkedJson(aes, options)`
|
|
84
|
+
- `finalizeNode(aes, options)`
|
|
85
|
+
- `finalizeWithProfile(aes, options)`
|
|
86
|
+
|
|
87
|
+
Type contract:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
export interface FinalizeOptions {
|
|
91
|
+
readonly mode?: 'strict' | 'loose';
|
|
92
|
+
readonly materialization?: 'all' | 'projected';
|
|
93
|
+
readonly includePaths?: readonly string[];
|
|
94
|
+
readonly scope?: 'payload' | 'header' | 'full';
|
|
95
|
+
readonly header?: { readonly fields: ReadonlyMap<string, Value> };
|
|
96
|
+
readonly maxMaterializedWeight?: number;
|
|
97
|
+
readonly maxReferenceDepth?: number;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export interface FinalizeResult {
|
|
101
|
+
readonly document: FinalizedMap;
|
|
102
|
+
readonly meta?: FinalizeMeta;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface FinalizedMap {
|
|
106
|
+
readonly entries: ReadonlyMap<string, FinalizedEntry>;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface FinalizedEntry {
|
|
110
|
+
readonly path: string;
|
|
111
|
+
readonly value: Value;
|
|
112
|
+
readonly span: Span;
|
|
113
|
+
readonly datatype?: string;
|
|
114
|
+
readonly annotations?: ReadonlyMap<string, { value: Value; datatype?: string }>;
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Notes
|
|
119
|
+
|
|
120
|
+
- Strict mode records duplicate paths as errors.
|
|
121
|
+
- Loose mode records duplicate paths as warnings and keeps the first entry.
|
|
122
|
+
- Map/node finalization preserves symbolic references; JSON finalization may materialize clone references and linked JSON may materialize pointer aliases.
|
|
123
|
+
- JSON output converts AEON values into JSON-compatible primitives and containers.
|
|
124
|
+
- References (`~` / `~>`) emit diagnostics and are preserved as string tokens.
|
|
125
|
+
- `finalizeJson(...)` materializes clone references into concrete JSON values and can enforce `maxMaterializedWeight` and `maxReferenceDepth` to fail closed on clone-amplification growth.
|
|
126
|
+
- `finalizeLinkedJson(...)` is the opt-in live materialization variant for `~>` pointer aliases.
|
|
127
|
+
- `maxMaterializedWeight` is an implementation-facing budget control, not a Core or AEOS conformance surface.
|
|
128
|
+
- `maxReferenceDepth` is an implementation-facing budget control, not a Core or AEOS conformance surface.
|
|
129
|
+
- Binding attributes project under reserved `@` objects in JSON output.
|
|
130
|
+
- Exact keys `@`, `$`, `$node`, and `$children` are reserved in JSON/node materialization and produce deterministic errors on collision.
|
|
131
|
+
- Node values project with reserved `$node`, optional `@`, and `$children` members.
|
|
132
|
+
- `materialization: 'projected'` keeps only the requested `includePaths` and the ancestors needed to reach them.
|
|
133
|
+
- `scope: 'header' | 'full'` requires parsed header metadata and can emit header-only or `{ header, payload }` views.
|
|
134
|
+
|
|
135
|
+
## Output Profiles
|
|
136
|
+
|
|
137
|
+
Built-in output profiles:
|
|
138
|
+
- `json` → `finalizeJson`
|
|
139
|
+
- `linked-json` → `finalizeLinkedJson`
|
|
140
|
+
- `map` → `finalizeMap`
|
|
141
|
+
- `node` → `finalizeNode`
|
|
142
|
+
|
|
143
|
+
Use `finalizeWithProfile(...)` or register your own in a custom registry.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function formatDatatypeAnnotation(datatype: {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly genericArgs?: readonly string[] | null;
|
|
4
|
+
readonly radixBase?: number | null;
|
|
5
|
+
readonly separators?: readonly string[] | null;
|
|
6
|
+
} | null | undefined): string;
|
|
7
|
+
//# sourceMappingURL=datatype.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatype.d.ts","sourceRoot":"","sources":["../src/datatype.ts"],"names":[],"mappings":"AAAA,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAClD,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAiB5B"}
|
package/dist/datatype.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function formatDatatypeAnnotation(datatype) {
|
|
2
|
+
if (!datatype) {
|
|
3
|
+
return '';
|
|
4
|
+
}
|
|
5
|
+
const name = datatype.name;
|
|
6
|
+
const genericArgs = datatype.genericArgs ?? [];
|
|
7
|
+
const separatorsList = datatype.separators ?? [];
|
|
8
|
+
const generics = genericArgs.length > 0
|
|
9
|
+
? `<${genericArgs.join(', ')}>`
|
|
10
|
+
: '';
|
|
11
|
+
const radixBase = datatype.radixBase != null
|
|
12
|
+
? `[${datatype.radixBase}]`
|
|
13
|
+
: '';
|
|
14
|
+
const separators = separatorsList.length > 0
|
|
15
|
+
? separatorsList.map((separator) => `[${separator}]`).join('')
|
|
16
|
+
: '';
|
|
17
|
+
return `${name}${generics}${radixBase}${separators}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=datatype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatype.js","sourceRoot":"","sources":["../src/datatype.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,wBAAwB,CAAC,QAKrB;IAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC/B,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,IAAI;QACxC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG;QAC3B,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.d.ts","sourceRoot":"","sources":["../src/finalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGR,aAAa,EAEb,eAAe,EACf,cAAc,EAGjB,MAAM,YAAY,CAAC;AAapB,wBAAgB,WAAW,CACvB,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE,eAAoB,GAC9B,cAAc,CAyDhB"}
|
package/dist/finalize.js
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { formatPath } from '@altopelago/aeon-aes';
|
|
2
|
+
import { createProjectionState, shouldIncludeProjectedPath } from './projection.js';
|
|
3
|
+
function toDiagnostic(level, message, path, span) {
|
|
4
|
+
return {
|
|
5
|
+
level,
|
|
6
|
+
message,
|
|
7
|
+
...(path !== undefined ? { path } : {}),
|
|
8
|
+
...(span !== undefined ? { span: span } : {}),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function finalizeMap(aes, options = {}) {
|
|
12
|
+
const strict = (options.mode ?? 'strict') === 'strict';
|
|
13
|
+
const scope = options.scope ?? 'payload';
|
|
14
|
+
const errors = [];
|
|
15
|
+
const warnings = [];
|
|
16
|
+
const entries = new Map();
|
|
17
|
+
const projection = createProjectionState(options.includePaths, options.materialization);
|
|
18
|
+
if (scope !== 'payload' && options.header) {
|
|
19
|
+
appendHeaderEntries(entries, options.header, projection, scope);
|
|
20
|
+
}
|
|
21
|
+
if (scope === 'payload' || scope === 'full') {
|
|
22
|
+
for (const event of aes) {
|
|
23
|
+
const topLevelKey = topLevelMemberKey(event);
|
|
24
|
+
if (topLevelKey && isHeaderEventKey(topLevelKey, options.header)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const basePath = formatPath(event.path);
|
|
28
|
+
const path = scope === 'full' ? `$.payload${basePath.slice(1)}` : basePath;
|
|
29
|
+
if (!shouldIncludeProjectedPath(path, projection)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (entries.has(path)) {
|
|
33
|
+
const diag = toDiagnostic(strict ? 'error' : 'warning', `Duplicate path during finalization: ${path}`, path, event.span);
|
|
34
|
+
if (strict)
|
|
35
|
+
errors.push(diag);
|
|
36
|
+
else
|
|
37
|
+
warnings.push(diag);
|
|
38
|
+
if (strict)
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const entry = {
|
|
42
|
+
path,
|
|
43
|
+
value: event.value,
|
|
44
|
+
span: event.span,
|
|
45
|
+
...(event.datatype ? { datatype: event.datatype } : {}),
|
|
46
|
+
...(event.annotations ? { annotations: event.annotations } : {}),
|
|
47
|
+
};
|
|
48
|
+
if (!entries.has(path))
|
|
49
|
+
entries.set(path, entry);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const document = { entries };
|
|
53
|
+
const meta = {
|
|
54
|
+
...(errors.length > 0 ? { errors } : {}),
|
|
55
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
56
|
+
};
|
|
57
|
+
if (strict && errors.length > 0) {
|
|
58
|
+
return Object.keys(meta).length > 0 ? { document, meta } : { document };
|
|
59
|
+
}
|
|
60
|
+
return Object.keys(meta).length > 0 ? { document, meta } : { document };
|
|
61
|
+
}
|
|
62
|
+
function appendHeaderEntries(entries, header, projection, scope) {
|
|
63
|
+
for (const [key, value] of header.fields) {
|
|
64
|
+
const path = scope === 'full' ? `$.header.${key}` : `$.${key}`;
|
|
65
|
+
if (!shouldIncludeProjectedPath(path, projection)) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
entries.set(path, {
|
|
69
|
+
path,
|
|
70
|
+
value,
|
|
71
|
+
span: value.span,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function topLevelMemberKey(event) {
|
|
76
|
+
const segment = event.path.segments[1];
|
|
77
|
+
if (event.path.segments.length !== 2 || event.path.segments[0]?.type !== 'root' || !segment || segment.type !== 'member') {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
return segment.key;
|
|
81
|
+
}
|
|
82
|
+
function isHeaderEventKey(key, header) {
|
|
83
|
+
if (key === 'aeon:header')
|
|
84
|
+
return true;
|
|
85
|
+
if (!header || !key.startsWith('aeon:'))
|
|
86
|
+
return false;
|
|
87
|
+
return header.fields.has(key.slice('aeon:'.length));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=finalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finalize.js","sourceRoot":"","sources":["../src/finalize.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @altopelago/aeon-finalize - Finalization utilities
|
|
3
|
+
*
|
|
4
|
+
* Converts AES into a deterministic document model for downstream consumers.
|
|
5
|
+
*/
|
|
6
|
+
export { finalizeJson } from './json.js';
|
|
7
|
+
export { finalizeLinkedJson } from './json.js';
|
|
8
|
+
export { finalizeMap } from './finalize.js';
|
|
9
|
+
export { finalizeNode } from './node.js';
|
|
10
|
+
export { transformDocument, transformNode } from './transform.js';
|
|
11
|
+
export { createDefaultOutputRegistry, createOutputRegistry, finalizeWithProfile, jsonOutputProfile, linkedJsonOutputProfile, mapOutputProfile, nodeOutputProfile, } from './outputs.js';
|
|
12
|
+
export type { Diagnostic, DiagnosticLevel, FinalizeHeader, FinalizeInput, FinalizeJsonResult, FinalizeMeta, FinalizeOptions, FinalizeScope, FinalizeResult, FinalizeNodeResult, FinalizedNode, FinalizedNodeBase, FinalizedNodeDocument, FinalizedObjectNode, FinalizedListNode, FinalizedScalarNode, FinalizedReferenceNode, FinalizedEntry, FinalizedMap, JsonArray, JsonObject, JsonPrimitive, JsonValue, NodeTransform, NodeTransformContext, OutputProfile, OutputProfileRef, OutputRegistry, FinalizeWithProfileOptions, } from './types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,0BAA0B,GAC7B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @altopelago/aeon-finalize - Finalization utilities
|
|
3
|
+
*
|
|
4
|
+
* Converts AES into a deterministic document model for downstream consumers.
|
|
5
|
+
*/
|
|
6
|
+
export { finalizeJson } from './json.js';
|
|
7
|
+
export { finalizeLinkedJson } from './json.js';
|
|
8
|
+
export { finalizeMap } from './finalize.js';
|
|
9
|
+
export { finalizeNode } from './node.js';
|
|
10
|
+
export { transformDocument, transformNode } from './transform.js';
|
|
11
|
+
export { createDefaultOutputRegistry, createOutputRegistry, finalizeWithProfile, jsonOutputProfile, linkedJsonOutputProfile, mapOutputProfile, nodeOutputProfile, } from './outputs.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,cAAc,CAAC"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type AssignmentEvent } from '@altopelago/aeon-aes';
|
|
2
|
+
import type { FinalizeJsonResult, FinalizeOptions } from './types.js';
|
|
3
|
+
export declare function finalizeJson(aes: readonly AssignmentEvent[], options?: FinalizeOptions): FinalizeJsonResult;
|
|
4
|
+
export declare function finalizeLinkedJson(aes: readonly AssignmentEvent[], options?: FinalizeOptions): FinalizeJsonResult;
|
|
5
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,eAAe,EAAuB,MAAM,sBAAsB,CAAC;AAC7F,OAAO,KAAK,EAGR,kBAAkB,EAElB,eAAe,EAGlB,MAAM,YAAY,CAAC;AA8DpB,wBAAgB,YAAY,CACxB,GAAG,EAAE,SAAS,eAAe,EAAE,EAC/B,OAAO,GAAE,eAAoB,GAC9B,kBAAkB,CAEpB;AAED,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,SAAS,eAAe,EAAE,EAC/B,OAAO,GAAE,eAAoB,GAC9B,kBAAkB,CAEpB"}
|