@altopelago/aeon-core 0.11.0 → 0.12.1

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 CHANGED
@@ -66,6 +66,41 @@ console.log(result.errors); // all known issues
66
66
 
67
67
  If you need schema validation after compile, pass `result.events` to `@altopelago/aeos-core`.
68
68
 
69
+ ### Interoperate through Telex
70
+
71
+ The native workflow remains `compile()`. Use `compileToTelex()` when events
72
+ must cross a process or implementation boundary, or `exportTelex()` when you
73
+ already have Core assignment events:
74
+
75
+ ```ts
76
+ import { compile, compileToTelex, exportTelex, parseTelex } from '@altopelago/aeon-core';
77
+
78
+ const native = compile('answer = 42');
79
+ const wire = exportTelex(native.events);
80
+ const portable = parseTelex(wire).records;
81
+
82
+ const direct = compileToTelex('answer = 42');
83
+ console.log(direct.telex);
84
+ ```
85
+
86
+ Headers are excluded by default. Set `includeHeaders: true` to use the explicit
87
+ `aeon.document.v1` header plane.
88
+
89
+ `origin` and `span` remain optional. Pass the exact, unnormalized UTF-8 artifact
90
+ as `sourceBytes` to `compileToTelex()` or `exportTelex()` to derive a
91
+ `sha256:<digest>` origin and convert Core's native UTF-16 source indexes to
92
+ portable UTF-8 byte ranges. The supplied bytes are an assertion that they are
93
+ the artifact from which the native events were compiled; do not pass a
94
+ normalized or re-encoded substitute.
95
+
96
+ For a legacy assignment-event boundary that also needs compatibility evidence,
97
+ use `adaptTypeScriptAssignmentEventsToPortableAes()`. It returns strict
98
+ portable events and a conversion report under the named
99
+ `aeon.typescript.assignment-events.v0-to-aes.events.v1` adapter. Local spans
100
+ without an immutable origin are omitted and reported. Its optional
101
+ `sourceBytes` input enables the same source-backed conversion while preserving
102
+ the report.
103
+
69
104
  ### Inspect the file preamble without full parsing
70
105
 
71
106
  Use `inspectFilePreamble()` to read only the allowed file-header slot for:
@@ -108,6 +143,13 @@ Reads only the file-header preamble slot and returns:
108
143
  - `format`
109
144
  - `span`
110
145
 
146
+ ### Telex boundary APIs
147
+
148
+ - `compileToTelex(input, options?)`
149
+ - `exportTelex(events, options?)`
150
+ - `parseTelex`, `encodeTelex`, `canonicalizeTelex`
151
+ - `validateTelex`, `validateTelexRecords`
152
+
111
153
  ## Exported Types
112
154
 
113
155
  - `CompileResult` — Return type of `compile()`
package/dist/index.d.ts CHANGED
@@ -15,14 +15,15 @@
15
15
  */
16
16
  import { type LexerError } from '@altopelago/aeon-lexer';
17
17
  import { type ParserError, type Document, type Value } from '@altopelago/aeon-parser';
18
- import { EventEmissionError, type AssignmentEvent, type PathResolutionError, type ReferenceValidationError, type ModeEnforcementError, type DatatypePolicy, type Mode } from '@altopelago/aeon-aes';
18
+ import { EventEmissionError, type AssignmentEvent, type PortableAesEvent, type TelexEncodeOptions, type TelexRecord, type PathResolutionError, type ReferenceValidationError, type ModeEnforcementError, type DatatypePolicy, type Mode } from '@altopelago/aeon-aes';
19
19
  import { type AnnotationRecord } from '@altopelago/aeon-annotation-stream';
20
20
  export { inspectFilePreamble, type FilePreambleInfo, type HostDirective, type HostDirectiveKind } from './preamble.js';
21
- export declare const VERSION = "0.11.0";
21
+ export * from './limits.js';
22
+ export declare const VERSION = "0.12.1";
22
23
  /**
23
24
  * Union of all possible AEON errors
24
25
  */
25
- export type AEONError = LexerError | ParserError | PathResolutionError | EventEmissionError | ReferenceValidationError | ModeEnforcementError | InputSizeExceededError | EventCountExceededError;
26
+ export type AEONError = LexerError | ParserError | PathResolutionError | EventEmissionError | ReferenceValidationError | ModeEnforcementError | InputSizeExceededError | EventCountExceededError | ResourceLimitExceededError;
26
27
  export interface AEONWarning {
27
28
  readonly code: string;
28
29
  readonly message: string;
@@ -43,6 +44,14 @@ export declare class EventCountExceededError extends Error {
43
44
  readonly maxEvents: number;
44
45
  constructor(actualEvents: number, maxEvents: number);
45
46
  }
47
+ export declare class ResourceLimitExceededError extends Error {
48
+ readonly code: string;
49
+ readonly counter: string;
50
+ readonly observed: number;
51
+ readonly limit: number;
52
+ readonly span: Document['span'];
53
+ constructor(counter: string, observed: number, limit: number);
54
+ }
46
55
  /**
47
56
  * Compilation result
48
57
  */
@@ -76,12 +85,36 @@ export interface CompileOptions {
76
85
  readonly recovery?: boolean;
77
86
  /** Maximum number of attribute segments in a reference path (default: 1). */
78
87
  readonly maxAttributeDepth?: number;
79
- /** Maximum number of separator specs in a datatype annotation (default: 1). */
88
+ /** Maximum clarifier values on one datatype descriptor (default: 1). */
89
+ readonly maxClarifierValues?: number;
90
+ /** @deprecated Use maxClarifierValues. */
80
91
  readonly maxSeparatorDepth?: number;
81
92
  /** Maximum nesting depth for nested generic type annotations (default: 1). */
82
93
  readonly maxGenericDepth?: number;
94
+ /** Maximum generic arguments on one datatype descriptor (default: 32). */
95
+ readonly maxGenericArguments?: number;
96
+ /** Maximum aggregate components in one recursive datatype (default: 64). */
97
+ readonly maxDatatypeComponents?: number;
83
98
  /** Maximum container nesting depth for objects, lists, tuples, and nodes (default: 256). */
99
+ readonly maxValueNestingDepth?: number;
100
+ /** @deprecated Use maxValueNestingDepth. */
84
101
  readonly maxNestingDepth?: number;
102
+ /** Maximum canonical address structural-step depth (default: 1024). */
103
+ readonly maxPathDepth?: number;
104
+ /** Maximum decoded string length in Unicode code points (default: 1048576). */
105
+ readonly maxStringCodepoints?: number;
106
+ /** Maximum decoded key segment length in Unicode code points (default: 1024). */
107
+ readonly maxKeySegmentCodepoints?: number;
108
+ /** Maximum direct items in one list (default: 65536). */
109
+ readonly maxListItems?: number;
110
+ /** Maximum direct items in one tuple (default: 65536). */
111
+ readonly maxTupleItems?: number;
112
+ /** Maximum canonical/reference path length in Unicode code points (default: 8192). */
113
+ readonly maxPathCharacters?: number;
114
+ /** Maximum raw AEON numeric literal length (default: 1024). */
115
+ readonly maxNumericLiteralCharacters?: number;
116
+ /** Maximum structured-comment payload length (default: 1048576). */
117
+ readonly maxStructuredCommentCharacters?: number;
85
118
  /** Emit structured annotation stream records. Default: true. */
86
119
  readonly emitAnnotations?: boolean;
87
120
  /** Datatype policy in strict mode. Default: reserved_only */
@@ -96,6 +129,32 @@ export interface CompileOptions {
96
129
  /** Maximum number of AES events Core may emit. Fail-closed when exceeded. */
97
130
  readonly maxEvents?: number;
98
131
  }
132
+ export interface CompileToTelexOptions {
133
+ /** Options for the existing AEON compilation pipeline. */
134
+ readonly compile?: CompileOptions;
135
+ /** Telex encoding and resource-limit options. */
136
+ readonly telex?: TelexEncodeOptions;
137
+ /** Include AEON document headers in the explicit header plane. Default: false. */
138
+ readonly includeHeaders?: boolean;
139
+ /** Exact, unnormalized UTF-8 source bytes used for optional portable provenance. */
140
+ readonly sourceBytes?: Uint8Array;
141
+ }
142
+ export interface ExportTelexOptions extends TelexEncodeOptions {
143
+ /** Include AEON document headers in the explicit header plane. Default: false. */
144
+ readonly includeHeaders?: boolean;
145
+ /** Exact unprefixed fields from a retained AEON header model. */
146
+ readonly headerFieldNames?: readonly string[] | ReadonlySet<string>;
147
+ /** Exact source bytes asserted to correspond to the supplied native events. */
148
+ readonly sourceBytes?: Uint8Array;
149
+ }
150
+ export interface CompileToTelexResult {
151
+ /** The unchanged Core compilation result. */
152
+ readonly compile: CompileResult;
153
+ /** Portable AES records in source event order. */
154
+ readonly records: readonly (TelexRecord | PortableAesEvent)[];
155
+ /** Encoded Telex, or null when compilation failed. */
156
+ readonly telex: string | null;
157
+ }
99
158
  /**
100
159
  * Compile an AEON document into Assignment Events
101
160
  *
@@ -122,8 +181,18 @@ export interface CompileOptions {
122
181
  * ```
123
182
  */
124
183
  export declare function compile(input: string, options?: CompileOptions): CompileResult;
125
- export type { AssignmentEvent, CanonicalPath } from '@altopelago/aeon-aes';
184
+ /**
185
+ * Compile AEON source and export its portable AES event stream as Telex.
186
+ *
187
+ * This is an additive boundary API: `compile()` remains the native in-memory
188
+ * workflow, while this helper produces an interoperable stream for another
189
+ * process or implementation.
190
+ */
191
+ export declare function compileToTelex(input: string, options?: CompileToTelexOptions): CompileToTelexResult;
192
+ /** Export existing Core assignment events without recompiling their source. */
193
+ export declare function exportTelex(events: readonly AssignmentEvent[], options?: ExportTelexOptions): string;
194
+ export type { AssignmentEvent, CanonicalPath, PortableAesEvent, TelexRecord, ParsedTelex, TelexEncodeOptions, TelexCompletenessResult, TelexLimitOptions, TelexValidationOptions, TelexValidationResult, PortableAesCompatibilityEvent, PortableAesCompatibilityOptions, PortableAesCompatibilityResultV1, PortableAesConversionChange, PortableAesConversionReportV1, } from '@altopelago/aeon-aes';
126
195
  export type { AnnotationRecord } from '@altopelago/aeon-annotation-stream';
127
196
  export type { Span, Position } from '@altopelago/aeon-lexer';
128
- export { formatPath } from '@altopelago/aeon-aes';
197
+ export { formatPath, parseTelex, encodeTelex, canonicalizeTelex, checkTelexCompleteness, validateTelex, validateTelexRecords, projectPortableEvents, createPortableEventPathMap, adaptTypeScriptAssignmentEventsToPortableAes, PortableAesSourceError, TYPESCRIPT_ASSIGNMENT_EVENTS_CONTRACT_V0, TYPESCRIPT_PORTABLE_AES_ADAPTER_V0, TYPESCRIPT_PORTABLE_AES_ADAPTER_VERSION_V1, } from '@altopelago/aeon-aes';
129
198
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,15 +13,16 @@
13
13
  * }
14
14
  * ```
15
15
  */
16
- import { tokenize } from '@altopelago/aeon-lexer';
16
+ import { tokenize, TokenType } from '@altopelago/aeon-lexer';
17
17
  import { parse, SyntaxError as ParserSyntaxError } from '@altopelago/aeon-parser';
18
- import { resolvePaths, emitEvents, validateReferences, enforceMode, EventEmissionError, } from '@altopelago/aeon-aes';
18
+ import { resolvePaths, emitEvents, validateReferences, enforceMode, formatPath, EventEmissionError, AEON_DOCUMENT_PROJECTION, adaptTypeScriptAssignmentEventsToPortableAes, encodeTelex, } from '@altopelago/aeon-aes';
19
19
  import { buildAnnotationStreamFromSourceAndSpans } from '@altopelago/aeon-annotation-stream';
20
20
  export { inspectFilePreamble } from './preamble.js';
21
+ export * from './limits.js';
21
22
  // =============================================================================
22
23
  // PUBLIC API
23
24
  // =============================================================================
24
- export const VERSION = '0.11.0';
25
+ export const VERSION = '0.12.1';
25
26
  export class InputSizeExceededError extends Error {
26
27
  code = 'INPUT_SIZE_EXCEEDED';
27
28
  actualBytes;
@@ -44,6 +45,23 @@ export class EventCountExceededError extends Error {
44
45
  this.maxEvents = maxEvents;
45
46
  }
46
47
  }
48
+ export class ResourceLimitExceededError extends Error {
49
+ code;
50
+ counter;
51
+ observed;
52
+ limit;
53
+ span;
54
+ constructor(counter, observed, limit) {
55
+ super(`${counter} observed value ${observed} exceeds configured limit ${limit}`);
56
+ this.name = 'ResourceLimitExceededError';
57
+ this.code = `${counter.replaceAll(/([a-z])([A-Z])/g, '$1_$2').toUpperCase()}_EXCEEDED`;
58
+ this.counter = counter;
59
+ this.observed = observed;
60
+ this.limit = limit;
61
+ const position = { line: 1, column: 1, offset: 0 };
62
+ this.span = { start: position, end: position };
63
+ }
64
+ }
47
65
  /**
48
66
  * Compile an AEON document into Assignment Events
49
67
  *
@@ -73,9 +91,19 @@ export function compile(input, options = {}) {
73
91
  const allErrors = [];
74
92
  const recovery = options.recovery ?? false;
75
93
  const maxAttributeDepth = options.maxAttributeDepth ?? 1;
76
- const maxSeparatorDepth = options.maxSeparatorDepth ?? 1;
94
+ const maxClarifierValues = options.maxClarifierValues ?? options.maxSeparatorDepth ?? 1;
77
95
  const maxGenericDepth = options.maxGenericDepth ?? 1;
78
- const maxNestingDepth = options.maxNestingDepth ?? 256;
96
+ const maxGenericArguments = options.maxGenericArguments ?? 32;
97
+ const maxDatatypeComponents = options.maxDatatypeComponents ?? 64;
98
+ const maxValueNestingDepth = options.maxValueNestingDepth ?? options.maxNestingDepth ?? 256;
99
+ const maxPathDepth = options.maxPathDepth ?? 1024;
100
+ const maxStringCodepoints = options.maxStringCodepoints ?? 1_048_576;
101
+ const maxKeySegmentCodepoints = options.maxKeySegmentCodepoints ?? 1024;
102
+ const maxListItems = options.maxListItems ?? 65_536;
103
+ const maxTupleItems = options.maxTupleItems ?? 65_536;
104
+ const maxPathCharacters = options.maxPathCharacters ?? 8192;
105
+ const maxNumericLiteralCharacters = options.maxNumericLiteralCharacters ?? 1024;
106
+ const maxStructuredCommentCharacters = options.maxStructuredCommentCharacters ?? 1_048_576;
79
107
  const emitAnnotations = options.emitAnnotations ?? true;
80
108
  const datatypePolicy = options.datatypePolicy;
81
109
  const maxInputBytes = options.maxInputBytes;
@@ -88,7 +116,6 @@ export function compile(input, options = {}) {
88
116
  return { events: [], errors: allErrors, warnings };
89
117
  }
90
118
  }
91
- input = stripLeadingBom(input);
92
119
  // Phase 1: Lexing
93
120
  const lexResult = tokenize(input, { includeComments: false });
94
121
  allErrors.push(...normalizeLexerErrors(input, lexResult.errors));
@@ -96,7 +123,14 @@ export function compile(input, options = {}) {
96
123
  return { events: [], errors: allErrors, warnings };
97
124
  }
98
125
  // Phase 2: Parsing
99
- const parseResult = parse(lexResult.tokens, { maxAttributeDepth, maxSeparatorDepth, maxGenericDepth, maxNestingDepth });
126
+ const parseResult = parse(lexResult.tokens, {
127
+ maxAttributeDepth,
128
+ maxClarifierValues,
129
+ maxGenericDepth,
130
+ maxGenericArguments,
131
+ maxDatatypeComponents,
132
+ maxValueNestingDepth,
133
+ });
100
134
  allErrors.push(...parseResult.errors);
101
135
  if (parseResult.errors.length > 0 && !recovery) {
102
136
  return { events: [], errors: allErrors, warnings };
@@ -104,12 +138,42 @@ export function compile(input, options = {}) {
104
138
  if (!parseResult.document) {
105
139
  return { events: [], errors: allErrors, warnings };
106
140
  }
141
+ const structureError = validateSourceStructure(parseResult.document, {
142
+ maxStringCodepoints,
143
+ maxKeySegmentCodepoints,
144
+ maxListItems,
145
+ maxTupleItems,
146
+ maxNumericLiteralCharacters,
147
+ maxPathDepth,
148
+ maxPathCharacters,
149
+ });
150
+ if (structureError) {
151
+ allErrors.push(structureError);
152
+ return { events: [], errors: allErrors, warnings };
153
+ }
154
+ const structuredCommentError = validateStructuredComments(input, maxStructuredCommentCharacters);
155
+ if (structuredCommentError) {
156
+ allErrors.push(structuredCommentError);
157
+ return { events: [], errors: allErrors, warnings };
158
+ }
107
159
  // Phase 3: Path Resolution
108
160
  const resolveResult = resolvePaths(parseResult.document, { indexedPaths: true });
109
161
  allErrors.push(...resolveResult.errors);
110
162
  if (resolveResult.errors.length > 0 && !recovery) {
111
163
  return { events: [], errors: allErrors, warnings };
112
164
  }
165
+ for (const binding of resolveResult.bindings) {
166
+ const depth = Math.max(0, binding.path.segments.length - 1);
167
+ if (depth > maxPathDepth) {
168
+ allErrors.push(new ResourceLimitExceededError('max_path_depth', depth, maxPathDepth));
169
+ return { events: [], errors: allErrors, warnings };
170
+ }
171
+ const characters = [...formatPath(binding.path)].length;
172
+ if (characters > maxPathCharacters) {
173
+ allErrors.push(new ResourceLimitExceededError('max_path_characters', characters, maxPathCharacters));
174
+ return { events: [], errors: allErrors, warnings };
175
+ }
176
+ }
113
177
  // Phase 4: Event Emission
114
178
  const emitResult = emitEvents(resolveResult, { recovery });
115
179
  for (const err of emitResult.errors) {
@@ -161,19 +225,59 @@ export function compile(input, options = {}) {
161
225
  }
162
226
  return result;
163
227
  }
228
+ /**
229
+ * Compile AEON source and export its portable AES event stream as Telex.
230
+ *
231
+ * This is an additive boundary API: `compile()` remains the native in-memory
232
+ * workflow, while this helper produces an interoperable stream for another
233
+ * process or implementation.
234
+ */
235
+ export function compileToTelex(input, options = {}) {
236
+ const compileResult = compile(input, options.compile);
237
+ if (compileResult.errors.length > 0) {
238
+ return { compile: compileResult, records: [], telex: null };
239
+ }
240
+ const records = projectAssignmentEventsToTelex(compileResult.events, options.includeHeaders ?? false, options.sourceBytes, compileResult.header ? [...compileResult.header.fields.keys()] : []);
241
+ const telexOptions = {
242
+ ...options.telex,
243
+ ...(options.includeHeaders === true ? { projection: AEON_DOCUMENT_PROJECTION } : {}),
244
+ };
245
+ return {
246
+ compile: compileResult,
247
+ records,
248
+ telex: encodeTelex(records, telexOptions),
249
+ };
250
+ }
251
+ /** Export existing Core assignment events without recompiling their source. */
252
+ export function exportTelex(events, options = {}) {
253
+ const includeHeaders = options.includeHeaders ?? false;
254
+ const { includeHeaders: _includeHeaders, headerFieldNames, sourceBytes, ...encodeOptions } = options;
255
+ return encodeTelex(projectAssignmentEventsToTelex(events, includeHeaders, sourceBytes, headerFieldNames), includeHeaders
256
+ ? { ...encodeOptions, projection: AEON_DOCUMENT_PROJECTION }
257
+ : encodeOptions);
258
+ }
259
+ function projectAssignmentEventsToTelex(events, includeHeaders, sourceBytes, headerFieldNames) {
260
+ return adaptTypeScriptAssignmentEventsToPortableAes(events, {
261
+ includeHeaders,
262
+ ...(headerFieldNames === undefined ? {} : { headerFieldNames }),
263
+ ...(sourceBytes === undefined ? {} : { sourceBytes }),
264
+ }).events.map((event) => ({ ...event }));
265
+ }
164
266
  function compilePortabilityWarnings(options) {
165
267
  const warnings = [];
166
268
  if (options.maxAttributeDepth !== undefined) {
167
269
  warnIfAbove(warnings, 'AEON_NON_PORTABLE_POLICY_DEPTH', 'maxAttributeDepth', options.maxAttributeDepth, 8);
168
270
  }
169
- if (options.maxSeparatorDepth !== undefined) {
170
- warnIfAbove(warnings, 'AEON_NON_PORTABLE_POLICY_DEPTH', 'maxSeparatorDepth', options.maxSeparatorDepth, 8);
271
+ const maxClarifierValues = options.maxClarifierValues ?? options.maxSeparatorDepth;
272
+ if (maxClarifierValues !== undefined) {
273
+ warnIfAbove(warnings, 'AEON_NON_PORTABLE_CLARIFIER_VALUES', 'maxClarifierValues', maxClarifierValues, 8);
171
274
  }
172
275
  if (options.maxGenericDepth !== undefined) {
173
276
  warnIfAbove(warnings, 'AEON_NON_PORTABLE_POLICY_DEPTH', 'maxGenericDepth', options.maxGenericDepth, 8);
174
277
  }
175
- if (options.maxNestingDepth !== undefined) {
176
- warnIfAbove(warnings, 'AEON_NON_PORTABLE_CONTAINER_NESTING_DEPTH', 'maxNestingDepth', options.maxNestingDepth, 64);
278
+ const maxValueNestingDepth = options.maxValueNestingDepth ?? options.maxNestingDepth;
279
+ if (maxValueNestingDepth !== undefined) {
280
+ warnIfAbove(warnings, 'AEON_NON_PORTABLE_CONTAINER_NESTING_DEPTH', 'maxValueNestingDepth', maxValueNestingDepth, 64);
177
281
  }
178
282
  if (options.maxEvents !== undefined) {
179
283
  warnIfAbove(warnings, 'AEON_NON_PORTABLE_EVENT_BUDGET', 'maxEvents', options.maxEvents, 100_000);
@@ -192,6 +296,143 @@ function warnIfAbove(warnings, code, policy, observed, portableFloor) {
192
296
  message: `${policy} ${observed} exceeds the AEON v1 portable floor ${portableFloor}`,
193
297
  });
194
298
  }
299
+ function validateSourceStructure(document, limits) {
300
+ const checkKey = (key) => {
301
+ const observed = [...key].length;
302
+ return observed > limits.maxKeySegmentCodepoints
303
+ ? new ResourceLimitExceededError('max_key_segment_codepoints', observed, limits.maxKeySegmentCodepoints)
304
+ : null;
305
+ };
306
+ const checkDatatype = (datatype) => {
307
+ if (!datatype)
308
+ return null;
309
+ for (const clarifier of datatype.clarifiers) {
310
+ if (typeof clarifier === 'string') {
311
+ const observed = [...clarifier].length;
312
+ if (observed > limits.maxStringCodepoints) {
313
+ return new ResourceLimitExceededError('max_string_codepoints', observed, limits.maxStringCodepoints);
314
+ }
315
+ }
316
+ }
317
+ return null;
318
+ };
319
+ const checkAttributes = (attributes) => {
320
+ for (const attribute of attributes) {
321
+ for (const [key, entry] of attribute.entries) {
322
+ const error = checkKey(key) ?? checkDatatype(entry.datatype) ?? checkAttributes(entry.attributes) ?? checkValue(entry.value);
323
+ if (error)
324
+ return error;
325
+ }
326
+ }
327
+ return null;
328
+ };
329
+ const checkReference = (value) => {
330
+ const depth = value.path.length;
331
+ if (depth > limits.maxPathDepth)
332
+ return new ResourceLimitExceededError('max_path_depth', depth, limits.maxPathDepth);
333
+ let rendered = '$';
334
+ for (const segment of value.path) {
335
+ if (typeof segment === 'number')
336
+ rendered += `[${segment}]`;
337
+ else if (typeof segment === 'string')
338
+ rendered += /^[A-Za-z_][A-Za-z0-9_]*$/.test(segment) ? `.${segment}` : `.[${JSON.stringify(segment)}]`;
339
+ else
340
+ rendered += /^[A-Za-z_][A-Za-z0-9_]*$/.test(segment.key) ? `.@.${segment.key}` : `.@.[${JSON.stringify(segment.key)}]`;
341
+ }
342
+ const characters = [...rendered].length;
343
+ return characters > limits.maxPathCharacters
344
+ ? new ResourceLimitExceededError('max_path_characters', characters, limits.maxPathCharacters)
345
+ : null;
346
+ };
347
+ const checkValue = (value) => {
348
+ switch (value.type) {
349
+ case 'StringLiteral': {
350
+ const observed = [...value.value].length;
351
+ return observed > limits.maxStringCodepoints
352
+ ? new ResourceLimitExceededError('max_string_codepoints', observed, limits.maxStringCodepoints)
353
+ : null;
354
+ }
355
+ case 'NumberLiteral': {
356
+ const observed = [...value.raw].length;
357
+ return observed > limits.maxNumericLiteralCharacters
358
+ ? new ResourceLimitExceededError('max_numeric_literal_characters', observed, limits.maxNumericLiteralCharacters)
359
+ : null;
360
+ }
361
+ case 'ListNode':
362
+ if (value.elements.length > limits.maxListItems)
363
+ return new ResourceLimitExceededError('max_list_items', value.elements.length, limits.maxListItems);
364
+ for (const item of value.elements) {
365
+ const error = checkValue(item);
366
+ if (error)
367
+ return error;
368
+ }
369
+ return checkAttributes(value.attributes);
370
+ case 'TupleLiteral':
371
+ if (value.elements.length > limits.maxTupleItems)
372
+ return new ResourceLimitExceededError('max_tuple_items', value.elements.length, limits.maxTupleItems);
373
+ for (const item of value.elements) {
374
+ const error = checkValue(item);
375
+ if (error)
376
+ return error;
377
+ }
378
+ return checkAttributes(value.attributes);
379
+ case 'ObjectNode':
380
+ for (const binding of value.bindings) {
381
+ const error = checkBinding(binding);
382
+ if (error)
383
+ return error;
384
+ }
385
+ return checkAttributes(value.attributes);
386
+ case 'NodeLiteral': {
387
+ const tagError = checkKey(value.tag);
388
+ if (tagError)
389
+ return tagError;
390
+ for (const child of value.children) {
391
+ const error = checkValue(child);
392
+ if (error)
393
+ return error;
394
+ }
395
+ return checkDatatype(value.datatype) ?? checkAttributes(value.attributes);
396
+ }
397
+ case 'TypedValue':
398
+ return checkDatatype(value.datatype) ?? checkAttributes(value.attributes) ?? checkValue(value.value);
399
+ case 'CloneReference':
400
+ case 'PointerReference':
401
+ return checkReference(value);
402
+ default:
403
+ return null;
404
+ }
405
+ };
406
+ const checkBinding = (binding) => checkKey(binding.key) ?? checkDatatype(binding.datatype) ?? checkAttributes(binding.attributes) ?? checkValue(binding.value);
407
+ if (document.header) {
408
+ for (const binding of document.header.bindings) {
409
+ const error = checkBinding(binding);
410
+ if (error)
411
+ return error;
412
+ }
413
+ }
414
+ for (const binding of document.bindings) {
415
+ const error = checkBinding(binding);
416
+ if (error)
417
+ return error;
418
+ }
419
+ return null;
420
+ }
421
+ function validateStructuredComments(input, limit) {
422
+ const lexed = tokenize(input, { includeComments: true });
423
+ for (const token of lexed.tokens) {
424
+ if (token.type !== TokenType.LineComment && token.type !== TokenType.BlockComment)
425
+ continue;
426
+ const marker = token.type === TokenType.LineComment ? token.value[2] : token.value[1];
427
+ if (!marker || !'#@?!{[('.includes(marker))
428
+ continue;
429
+ const payload = token.type === TokenType.LineComment ? token.value.slice(3) : token.value.slice(2, -2);
430
+ const observed = [...payload].length;
431
+ if (observed > limit)
432
+ return new ResourceLimitExceededError('max_structured_comment_characters', observed, limit);
433
+ }
434
+ return null;
435
+ }
195
436
  function normalizeLexerErrors(input, errors) {
196
437
  return errors.map((error) => {
197
438
  if (error.code === 'INVALID_NUMBER') {
@@ -204,10 +445,7 @@ function normalizeLexerErrors(input, errors) {
204
445
  });
205
446
  }
206
447
  // Utility for formatting paths (commonly needed)
207
- export { formatPath } from '@altopelago/aeon-aes';
208
- function stripLeadingBom(input) {
209
- return input.startsWith('\uFEFF') ? input.slice(1) : input;
210
- }
448
+ export { formatPath, parseTelex, encodeTelex, canonicalizeTelex, checkTelexCompleteness, validateTelex, validateTelexRecords, projectPortableEvents, createPortableEventPathMap, adaptTypeScriptAssignmentEventsToPortableAes, PortableAesSourceError, TYPESCRIPT_ASSIGNMENT_EVENTS_CONTRACT_V0, TYPESCRIPT_PORTABLE_AES_ADAPTER_V0, TYPESCRIPT_PORTABLE_AES_ADAPTER_VERSION_V1, } from '@altopelago/aeon-aes';
211
449
  function collectSpanTargets(document) {
212
450
  const spans = [];
213
451
  const seen = new Set();
@@ -316,6 +554,9 @@ function collectSpanTargets(document) {
316
554
  }
317
555
  break;
318
556
  case 'NodeLiteral':
557
+ if (value.headSpan) {
558
+ addSpan(value.headSpan);
559
+ }
319
560
  for (const attribute of value.attributes) {
320
561
  addSpan(attribute.span);
321
562
  for (const [, entry] of attribute.entries) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ export declare const AEONIC_LIMITS_ID = "altopelago.aeonic-limits.v1";
2
+ export declare const AEONIC_LIMITS_VERSION = "1.0.0";
3
+ export declare const LIMITS_BOOTSTRAP: Readonly<{
4
+ maxInputBytes: 65536;
5
+ maxEvents: 256;
6
+ maxPathDepth: 8;
7
+ maxValueNestingDepth: 8;
8
+ maxAttributeDepth: 0;
9
+ maxGenericDepth: 0;
10
+ maxGenericArguments: 0;
11
+ maxClarifierValues: 0;
12
+ maxDatatypeComponents: 1;
13
+ }>;
14
+ export type LimitSetting = number | 'unBound' | 'useImplementation';
15
+ export interface AeonicLimitsV1 {
16
+ readonly limitsId: typeof AEONIC_LIMITS_ID;
17
+ readonly limitsVersion: typeof AEONIC_LIMITS_VERSION;
18
+ readonly profileClaims: readonly string[];
19
+ readonly structure: Readonly<{
20
+ maxAttributeDepth: LimitSetting;
21
+ maxGenericDepth: LimitSetting;
22
+ maxGenericArguments: LimitSetting;
23
+ maxClarifierValues: LimitSetting;
24
+ maxDatatypeComponents: LimitSetting;
25
+ maxValueNestingDepth: LimitSetting;
26
+ maxPathDepth: LimitSetting;
27
+ maxStringCodepoints: LimitSetting;
28
+ maxKeySegmentCodepoints: LimitSetting;
29
+ maxListItems: LimitSetting;
30
+ maxTupleItems: LimitSetting;
31
+ maxPathCharacters: LimitSetting;
32
+ }>;
33
+ readonly processing: Readonly<{
34
+ maxEvents: LimitSetting;
35
+ maxReferenceDepth: LimitSetting;
36
+ maxMaterializedWeight: LimitSetting;
37
+ }>;
38
+ readonly formats: Readonly<{
39
+ aeon: Readonly<{
40
+ maxInputBytes: LimitSetting;
41
+ maxNumericLiteralCharacters: LimitSetting;
42
+ maxStructuredCommentCharacters: LimitSetting;
43
+ }>;
44
+ telex: Readonly<{
45
+ maxInputBytes: LimitSetting;
46
+ maxLineBytes: LimitSetting;
47
+ maxFieldsPerEvent: LimitSetting;
48
+ maxDecodedPayloadBytes: LimitSetting;
49
+ }>;
50
+ }>;
51
+ readonly transport: Readonly<{
52
+ maxFrameBytes: LimitSetting;
53
+ maxBufferBytes: LimitSetting;
54
+ maxHeaderBytes: LimitSetting;
55
+ }>;
56
+ }
57
+ export interface LimitsDiagnostic {
58
+ readonly code: string;
59
+ readonly path: string;
60
+ readonly message: string;
61
+ }
62
+ export interface AeonCompileLimits {
63
+ readonly maxAttributeDepth: number;
64
+ readonly maxClarifierValues: number;
65
+ readonly maxGenericDepth: number;
66
+ readonly maxGenericArguments: number;
67
+ readonly maxDatatypeComponents: number;
68
+ readonly maxValueNestingDepth: number;
69
+ readonly maxPathDepth: number;
70
+ readonly maxStringCodepoints: number;
71
+ readonly maxKeySegmentCodepoints: number;
72
+ readonly maxListItems: number;
73
+ readonly maxTupleItems: number;
74
+ readonly maxPathCharacters: number;
75
+ readonly maxNumericLiteralCharacters: number;
76
+ readonly maxStructuredCommentCharacters: number;
77
+ readonly maxInputBytes?: number;
78
+ readonly maxEvents?: number;
79
+ }
80
+ export interface FinalizationLimits {
81
+ readonly maxReferenceDepth?: number;
82
+ readonly maxMaterializedWeight?: number;
83
+ }
84
+ export interface AeonTelexLimits {
85
+ readonly maxInputBytes: number;
86
+ readonly maxLineBytes: number;
87
+ readonly maxFieldsPerEvent: number;
88
+ readonly maxEvents: number;
89
+ readonly maxDecodedPayloadBytes: number;
90
+ readonly maxPathDepth: number;
91
+ readonly maxPathCharacters: number;
92
+ readonly maxAttributeDepth: number;
93
+ readonly maxValueNestingDepth: number;
94
+ readonly maxStringCodepoints: number;
95
+ readonly maxKeySegmentCodepoints: number;
96
+ readonly maxListItems: number;
97
+ readonly maxTupleItems: number;
98
+ readonly maxGenericDepth: number;
99
+ readonly maxGenericArguments: number;
100
+ readonly maxClarifierValues: number;
101
+ readonly maxDatatypeComponents: number;
102
+ }
103
+ /**
104
+ * Inspectable configuration selected for a Telex portable boundary.
105
+ *
106
+ * Identity and profile claims are descriptive metadata. Codec and
107
+ * finalization consumers receive only the normalized option subsets below.
108
+ */
109
+ export interface EffectiveTelexConfiguration {
110
+ readonly limitsId: typeof AEONIC_LIMITS_ID;
111
+ readonly limitsVersion: typeof AEONIC_LIMITS_VERSION;
112
+ readonly profileClaims: readonly string[];
113
+ readonly telex: AeonTelexLimits;
114
+ readonly finalization: FinalizationLimits;
115
+ /** True when a trusted caller has changed a normalized selected value. */
116
+ readonly overridesApplied: boolean;
117
+ }
118
+ export interface AeonTransportLimits {
119
+ readonly maxFrameBytes: number;
120
+ readonly maxBufferBytes: number;
121
+ readonly maxHeaderBytes: number;
122
+ }
123
+ export type AeonicLimitsLoadResult = {
124
+ readonly limits: AeonicLimitsV1;
125
+ readonly errors: readonly [];
126
+ } | {
127
+ readonly limits: null;
128
+ readonly errors: readonly LimitsDiagnostic[];
129
+ };
130
+ export declare function loadAeonicLimits(input: string): AeonicLimitsLoadResult;
131
+ /** Resolve the AEON Core subset into an inspectable, language-native view. */
132
+ export declare function aeonCompileLimits(limits: AeonicLimitsV1): AeonCompileLimits;
133
+ /** Resolve the shared reference/materialization subset for finalization. */
134
+ export declare function finalizationLimits(limits: AeonicLimitsV1): FinalizationLimits;
135
+ /** Resolve the shared structural, processing, and Telex-format subsets. */
136
+ export declare function telexLimits(limits: AeonicLimitsV1): AeonTelexLimits;
137
+ /** Resolve an inspectable snapshot of all limits used at a Telex boundary. */
138
+ export declare function effectiveTelexConfiguration(limits: AeonicLimitsV1): EffectiveTelexConfiguration;
139
+ /** Resolve the TypeScript framing transport subset. */
140
+ export declare function aeonTransportLimits(limits: AeonicLimitsV1): AeonTransportLimits;
141
+ //# sourceMappingURL=limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.d.ts","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"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"}
package/dist/limits.js ADDED
@@ -0,0 +1,277 @@
1
+ import { tokenize } from '@altopelago/aeon-lexer';
2
+ import { parse } from '@altopelago/aeon-parser';
3
+ export const AEONIC_LIMITS_ID = 'altopelago.aeonic-limits.v1';
4
+ export const AEONIC_LIMITS_VERSION = '1.0.0';
5
+ export const LIMITS_BOOTSTRAP = Object.freeze({
6
+ maxInputBytes: 65_536,
7
+ maxEvents: 256,
8
+ maxPathDepth: 8,
9
+ maxValueNestingDepth: 8,
10
+ maxAttributeDepth: 0,
11
+ maxGenericDepth: 0,
12
+ maxGenericArguments: 0,
13
+ maxClarifierValues: 0,
14
+ maxDatatypeComponents: 1,
15
+ });
16
+ export function loadAeonicLimits(input) {
17
+ const errors = [];
18
+ const actualBytes = Buffer.byteLength(input, 'utf8');
19
+ if (actualBytes > LIMITS_BOOTSTRAP.maxInputBytes) {
20
+ return failure('LIMITS_BOOTSTRAP_EXCEEDED', '$', `Limits input size ${actualBytes} exceeds bootstrap limit ${LIMITS_BOOTSTRAP.maxInputBytes}`);
21
+ }
22
+ const lexed = tokenize(input, { includeComments: false });
23
+ if (lexed.errors.length > 0) {
24
+ return { limits: null, errors: lexed.errors.map((error) => ({ code: error.code, path: '$', message: error.message })) };
25
+ }
26
+ const parsed = parse(lexed.tokens, {
27
+ maxAttributeDepth: LIMITS_BOOTSTRAP.maxAttributeDepth,
28
+ maxClarifierValues: LIMITS_BOOTSTRAP.maxClarifierValues,
29
+ maxGenericDepth: LIMITS_BOOTSTRAP.maxGenericDepth,
30
+ maxGenericArguments: LIMITS_BOOTSTRAP.maxGenericArguments,
31
+ maxDatatypeComponents: LIMITS_BOOTSTRAP.maxDatatypeComponents,
32
+ maxValueNestingDepth: LIMITS_BOOTSTRAP.maxValueNestingDepth,
33
+ });
34
+ if (parsed.errors.length > 0 || !parsed.document) {
35
+ return {
36
+ limits: null,
37
+ errors: parsed.errors.map((error) => ({ code: error.code, path: '$', message: error.message })),
38
+ };
39
+ }
40
+ if (parsed.document.header) {
41
+ return failure('LIMITS_HEADER_NOT_ALLOWED', '$', 'Limits files must not contain an AEON header');
42
+ }
43
+ const eventCount = parsed.document.bindings.reduce((count, binding) => count + projectedEventCount(binding.value), 0);
44
+ if (eventCount > LIMITS_BOOTSTRAP.maxEvents) {
45
+ return failure('LIMITS_BOOTSTRAP_EXCEEDED', '$', `Limits file projects ${eventCount} events; bootstrap limit is ${LIMITS_BOOTSTRAP.maxEvents}`);
46
+ }
47
+ const decoded = {};
48
+ for (const binding of parsed.document.bindings) {
49
+ const value = decodeBinding(binding, `$.${binding.key}`, errors);
50
+ if (value !== undefined)
51
+ decoded[binding.key] = value;
52
+ }
53
+ if (errors.length > 0)
54
+ return { limits: null, errors };
55
+ try {
56
+ const limits = validateLimits(decoded);
57
+ return { limits, errors: [] };
58
+ }
59
+ catch (error) {
60
+ return failure('INVALID_LIMITS_FILE', '$', error instanceof Error ? error.message : String(error));
61
+ }
62
+ }
63
+ /** Resolve the AEON Core subset into an inspectable, language-native view. */
64
+ export function aeonCompileLimits(limits) {
65
+ return {
66
+ maxAttributeDepth: bounded(limits.structure.maxAttributeDepth, 1, 64, 'max_attribute_depth'),
67
+ maxClarifierValues: bounded(limits.structure.maxClarifierValues, 1, 4_096, 'max_clarifier_values'),
68
+ maxGenericDepth: bounded(limits.structure.maxGenericDepth, 1, 64, 'max_generic_depth'),
69
+ maxGenericArguments: bounded(limits.structure.maxGenericArguments, 32, 4_096, 'max_generic_arguments'),
70
+ maxDatatypeComponents: bounded(limits.structure.maxDatatypeComponents, 64, 4_096, 'max_datatype_components'),
71
+ maxValueNestingDepth: bounded(limits.structure.maxValueNestingDepth, 256, 512, 'max_value_nesting_depth'),
72
+ maxPathDepth: bounded(limits.structure.maxPathDepth, 1024, 4096, 'max_path_depth'),
73
+ maxStringCodepoints: bounded(limits.structure.maxStringCodepoints, 1_048_576, 16_777_216, 'max_string_codepoints'),
74
+ maxKeySegmentCodepoints: bounded(limits.structure.maxKeySegmentCodepoints, 1024, 65_536, 'max_key_segment_codepoints'),
75
+ maxListItems: bounded(limits.structure.maxListItems, 65_536, 1_000_000, 'max_list_items'),
76
+ maxTupleItems: bounded(limits.structure.maxTupleItems, 65_536, 1_000_000, 'max_tuple_items'),
77
+ maxPathCharacters: bounded(limits.structure.maxPathCharacters, 8192, 65_536, 'max_path_characters'),
78
+ maxNumericLiteralCharacters: bounded(limits.formats.aeon.maxNumericLiteralCharacters, 1024, 65_536, 'max_numeric_literal_characters'),
79
+ maxStructuredCommentCharacters: bounded(limits.formats.aeon.maxStructuredCommentCharacters, 1_048_576, 16_777_216, 'max_structured_comment_characters'),
80
+ ...optional(limits.formats.aeon.maxInputBytes, 16_777_216, 'maxInputBytes'),
81
+ ...optional(limits.processing.maxEvents, 100_000, 'maxEvents'),
82
+ };
83
+ }
84
+ /** Resolve the shared reference/materialization subset for finalization. */
85
+ export function finalizationLimits(limits) {
86
+ return {
87
+ ...optionalProcessing(limits.processing.maxReferenceDepth, 'maxReferenceDepth'),
88
+ ...optionalProcessing(limits.processing.maxMaterializedWeight, 'maxMaterializedWeight'),
89
+ };
90
+ }
91
+ /** Resolve the shared structural, processing, and Telex-format subsets. */
92
+ export function telexLimits(limits) {
93
+ return {
94
+ maxInputBytes: bounded(limits.formats.telex.maxInputBytes, 67_108_864, 1_073_741_824, 'max_input_bytes'),
95
+ maxLineBytes: bounded(limits.formats.telex.maxLineBytes, 1_048_576, 67_108_864, 'max_line_bytes'),
96
+ maxFieldsPerEvent: bounded(limits.formats.telex.maxFieldsPerEvent, 64, 4_096, 'max_fields_per_event'),
97
+ maxDecodedPayloadBytes: bounded(limits.formats.telex.maxDecodedPayloadBytes, 33_554_432, 1_073_741_824, 'max_decoded_payload_bytes'),
98
+ maxEvents: bounded(limits.processing.maxEvents, 100_000, 1_000_000, 'max_events'),
99
+ maxPathDepth: bounded(limits.structure.maxPathDepth, 1_024, 4_096, 'max_path_depth'),
100
+ maxPathCharacters: bounded(limits.structure.maxPathCharacters, 8_192, 65_536, 'max_path_characters'),
101
+ maxAttributeDepth: bounded(limits.structure.maxAttributeDepth, 1, 64, 'max_attribute_depth'),
102
+ maxValueNestingDepth: bounded(limits.structure.maxValueNestingDepth, 256, 512, 'max_value_nesting_depth'),
103
+ maxStringCodepoints: bounded(limits.structure.maxStringCodepoints, 1_048_576, 16_777_216, 'max_string_codepoints'),
104
+ maxKeySegmentCodepoints: bounded(limits.structure.maxKeySegmentCodepoints, 1_024, 65_536, 'max_key_segment_codepoints'),
105
+ maxListItems: bounded(limits.structure.maxListItems, 65_536, 1_000_000, 'max_list_items'),
106
+ maxTupleItems: bounded(limits.structure.maxTupleItems, 65_536, 1_000_000, 'max_tuple_items'),
107
+ maxGenericDepth: bounded(limits.structure.maxGenericDepth, 1, 64, 'max_generic_depth'),
108
+ maxGenericArguments: bounded(limits.structure.maxGenericArguments, 32, 4_096, 'max_generic_arguments'),
109
+ maxClarifierValues: bounded(limits.structure.maxClarifierValues, 1, 4_096, 'max_clarifier_values'),
110
+ maxDatatypeComponents: bounded(limits.structure.maxDatatypeComponents, 64, 4_096, 'max_datatype_components'),
111
+ };
112
+ }
113
+ /** Resolve an inspectable snapshot of all limits used at a Telex boundary. */
114
+ export function effectiveTelexConfiguration(limits) {
115
+ return {
116
+ limitsId: limits.limitsId,
117
+ limitsVersion: limits.limitsVersion,
118
+ profileClaims: [...limits.profileClaims],
119
+ telex: telexLimits(limits),
120
+ finalization: finalizationLimits(limits),
121
+ overridesApplied: false,
122
+ };
123
+ }
124
+ /** Resolve the TypeScript framing transport subset. */
125
+ export function aeonTransportLimits(limits) {
126
+ return {
127
+ maxFrameBytes: bounded(limits.transport.maxFrameBytes, 16_777_216, 4_294_967_295, 'max_frame_bytes'),
128
+ maxBufferBytes: bounded(limits.transport.maxBufferBytes, 33_554_432, 4_294_967_295, 'max_buffer_bytes'),
129
+ maxHeaderBytes: bounded(limits.transport.maxHeaderBytes, 65_536, 16_777_216, 'max_header_bytes'),
130
+ };
131
+ }
132
+ function bounded(setting, implementationDefault, hardCeiling, name) {
133
+ if (setting === 'useImplementation')
134
+ return implementationDefault;
135
+ if (setting === 'unBound')
136
+ return hardCeiling;
137
+ if (setting > hardCeiling)
138
+ throw new Error(`${name} ${setting} exceeds implementation safety ceiling ${hardCeiling}`);
139
+ return setting;
140
+ }
141
+ function optional(setting, implementationDefault, key) {
142
+ if (setting === 'unBound')
143
+ return {};
144
+ return { [key]: setting === 'useImplementation' ? implementationDefault : setting };
145
+ }
146
+ function optionalProcessing(setting, key) {
147
+ if (setting === 'unBound' || setting === 'useImplementation')
148
+ return {};
149
+ return { [key]: setting };
150
+ }
151
+ function decodeBinding(binding, path, errors) {
152
+ if (binding.datatype || binding.attributes.length > 0 || binding.structuralId) {
153
+ errors.push({ code: 'LIMITS_DECORATION_NOT_ALLOWED', path, message: 'Limits bindings may not use datatypes, attributes, or structural identities' });
154
+ return undefined;
155
+ }
156
+ return decodeValue(binding.value, path, errors);
157
+ }
158
+ function decodeValue(value, path, errors) {
159
+ switch (value.type) {
160
+ case 'StringLiteral':
161
+ return value.value;
162
+ case 'NumberLiteral': {
163
+ const parsed = Number(value.value.replaceAll('_', ''));
164
+ if (!Number.isSafeInteger(parsed) || parsed < 0) {
165
+ errors.push({ code: 'INVALID_LIMIT_VALUE', path, message: 'Limit values must be non-negative safe integers' });
166
+ return undefined;
167
+ }
168
+ return parsed;
169
+ }
170
+ case 'NullLiteral':
171
+ if (value.mode === 'reason' && (value.value === 'unBound' || value.value === 'useImplementation')) {
172
+ return value.value;
173
+ }
174
+ errors.push({ code: 'INVALID_LIMIT_VALUE', path, message: 'Only !"unBound" and !"useImplementation" are valid limit sentinels' });
175
+ return undefined;
176
+ case 'ListNode':
177
+ return value.elements.map((item, index) => decodeValue(item, `${path}[${index}]`, errors));
178
+ case 'ObjectNode': {
179
+ const object = {};
180
+ for (const binding of value.bindings) {
181
+ const child = decodeBinding(binding, `${path}.${binding.key}`, errors);
182
+ if (child !== undefined)
183
+ object[binding.key] = child;
184
+ }
185
+ return object;
186
+ }
187
+ default:
188
+ errors.push({ code: 'INVALID_LIMIT_VALUE', path, message: `Unsupported limits value ${value.type}` });
189
+ return undefined;
190
+ }
191
+ }
192
+ function projectedEventCount(value) {
193
+ switch (value.type) {
194
+ case 'ObjectNode':
195
+ return 1 + value.bindings.reduce((count, binding) => count + projectedEventCount(binding.value), 0);
196
+ case 'ListNode':
197
+ case 'TupleLiteral':
198
+ return 1 + value.elements.reduce((count, item) => count + projectedEventCount(item), 0);
199
+ default:
200
+ return 1;
201
+ }
202
+ }
203
+ function validateLimits(root) {
204
+ assertKeys(root, '$', ['limits_id', 'limits_version', 'profile_claims', 'structure', 'processing', 'formats', 'transport']);
205
+ const limitsId = requiredString(root, 'limits_id', '$');
206
+ const limitsVersion = requiredString(root, 'limits_version', '$');
207
+ if (limitsId !== AEONIC_LIMITS_ID)
208
+ throw new Error(`Unsupported limits_id ${JSON.stringify(limitsId)}`);
209
+ if (limitsVersion !== AEONIC_LIMITS_VERSION)
210
+ throw new Error(`Unsupported limits_version ${JSON.stringify(limitsVersion)}`);
211
+ const profileClaims = requiredArray(root, 'profile_claims', '$').map((value, index) => {
212
+ if (typeof value !== 'string')
213
+ throw new Error(`$.profile_claims[${index}] must be a string`);
214
+ return value;
215
+ });
216
+ const structure = requiredObject(root, 'structure', '$');
217
+ const processing = requiredObject(root, 'processing', '$');
218
+ const formats = requiredObject(root, 'formats', '$');
219
+ const aeon = requiredObject(formats, 'aeon', '$.formats');
220
+ const telex = requiredObject(formats, 'telex', '$.formats');
221
+ const transport = requiredObject(root, 'transport', '$');
222
+ return {
223
+ limitsId: AEONIC_LIMITS_ID,
224
+ limitsVersion: AEONIC_LIMITS_VERSION,
225
+ profileClaims,
226
+ structure: settings(structure, '$.structure', ['max_attribute_depth', 'max_generic_depth', 'max_generic_arguments', 'max_clarifier_values', 'max_datatype_components', 'max_value_nesting_depth', 'max_path_depth', 'max_string_codepoints', 'max_key_segment_codepoints', 'max_list_items', 'max_tuple_items', 'max_path_characters'], ['maxAttributeDepth', 'maxGenericDepth', 'maxGenericArguments', 'maxClarifierValues', 'maxDatatypeComponents', 'maxValueNestingDepth', 'maxPathDepth', 'maxStringCodepoints', 'maxKeySegmentCodepoints', 'maxListItems', 'maxTupleItems', 'maxPathCharacters']),
227
+ processing: settings(processing, '$.processing', ['max_events', 'max_reference_depth', 'max_materialized_weight'], ['maxEvents', 'maxReferenceDepth', 'maxMaterializedWeight']),
228
+ formats: {
229
+ aeon: settings(aeon, '$.formats.aeon', ['max_input_bytes', 'max_numeric_literal_characters', 'max_structured_comment_characters'], ['maxInputBytes', 'maxNumericLiteralCharacters', 'maxStructuredCommentCharacters']),
230
+ telex: settings(telex, '$.formats.telex', ['max_input_bytes', 'max_line_bytes', 'max_fields_per_event', 'max_decoded_payload_bytes'], ['maxInputBytes', 'maxLineBytes', 'maxFieldsPerEvent', 'maxDecodedPayloadBytes']),
231
+ },
232
+ transport: settings(transport, '$.transport', ['max_frame_bytes', 'max_buffer_bytes', 'max_header_bytes'], ['maxFrameBytes', 'maxBufferBytes', 'maxHeaderBytes']),
233
+ };
234
+ }
235
+ function settings(object, path, sourceKeys, targetKeys) {
236
+ assertKeys(object, path, sourceKeys);
237
+ const result = {};
238
+ sourceKeys.forEach((key, index) => { result[targetKeys[index]] = requiredSetting(object, key, path); });
239
+ return result;
240
+ }
241
+ function assertKeys(object, path, expected) {
242
+ const actual = Object.keys(object);
243
+ for (const key of actual)
244
+ if (!expected.includes(key))
245
+ throw new Error(`Unknown field ${path}.${key}`);
246
+ for (const key of expected)
247
+ if (!(key in object))
248
+ throw new Error(`Missing field ${path}.${key}`);
249
+ }
250
+ function requiredString(object, key, path) {
251
+ const value = object[key];
252
+ if (typeof value !== 'string')
253
+ throw new Error(`${path}.${key} must be a string`);
254
+ return value;
255
+ }
256
+ function requiredSetting(object, key, path) {
257
+ const value = object[key];
258
+ if (typeof value === 'number' || value === 'unBound' || value === 'useImplementation')
259
+ return value;
260
+ throw new Error(`${path}.${key} must be a non-negative integer, !"unBound", or !"useImplementation"`);
261
+ }
262
+ function requiredObject(object, key, path) {
263
+ const value = object[key];
264
+ if (!value || typeof value !== 'object' || Array.isArray(value))
265
+ throw new Error(`${path}.${key} must be an object`);
266
+ return value;
267
+ }
268
+ function requiredArray(object, key, path) {
269
+ const value = object[key];
270
+ if (!Array.isArray(value))
271
+ throw new Error(`${path}.${key} must be a list`);
272
+ return value;
273
+ }
274
+ function failure(code, path, message) {
275
+ return { limits: null, errors: [{ code, path, message }] };
276
+ }
277
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../src/limits.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@altopelago/aeon-core",
3
- "version": "0.11.0",
3
+ "version": "0.12.1",
4
4
  "description": "Core AEON TypeScript compiler for parsing, validation, and assignment events.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -45,10 +45,10 @@
45
45
  "access": "public"
46
46
  },
47
47
  "dependencies": {
48
- "@altopelago/aeon-lexer": "0.11.0",
49
- "@altopelago/aeon-parser": "0.11.0",
50
- "@altopelago/aeon-aes": "0.11.0",
51
- "@altopelago/aeon-annotation-stream": "0.11.0"
48
+ "@altopelago/aeon-lexer": "0.12.1",
49
+ "@altopelago/aeon-parser": "0.12.1",
50
+ "@altopelago/aeon-aes": "0.12.1",
51
+ "@altopelago/aeon-annotation-stream": "0.12.1"
52
52
  },
53
53
  "scripts": {
54
54
  "build": "tsc -p tsconfig.json",