@altopelago/aeos-core 0.12.0 → 0.13.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,14 @@
1
+ import { type TelexLimitOptions } from '@altopelago/aeon-aes';
2
+ import { type ResultEnvelope } from './types/envelope.js';
3
+ import type { SchemaV1 } from './types/schema.js';
4
+ import { type ValidateOptions } from './validate.js';
5
+ export interface ValidateTelexOptions extends ValidateOptions, TelexLimitOptions {
6
+ readonly registeredFields?: readonly string[];
7
+ }
8
+ /**
9
+ * Decode and validate a Telex stream before applying an AEOS schema to its
10
+ * body records. Header-plane records are transport metadata and are not schema
11
+ * bindings.
12
+ */
13
+ export declare function validateTelex(input: string, schema: SchemaV1, options?: ValidateTelexOptions): ResultEnvelope;
14
+ //# sourceMappingURL=telex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telex.d.ts","sourceRoot":"","sources":["../src/telex.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,iBAAiB,EAEzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,MAAM,WAAW,oBAAqB,SAAQ,eAAe,EAAE,iBAAiB;IAC5E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACjD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,oBAAyB,GACnC,cAAc,CAkChB"}
package/dist/telex.js ADDED
@@ -0,0 +1,33 @@
1
+ import { parseTelex, validateTelexRecords, } from '@altopelago/aeon-aes';
2
+ import { createDiag } from './diag/emit.js';
3
+ import { createFailingEnvelope } from './types/envelope.js';
4
+ import { validate } from './validate.js';
5
+ /**
6
+ * Decode and validate a Telex stream before applying an AEOS schema to its
7
+ * body records. Header-plane records are transport metadata and are not schema
8
+ * bindings.
9
+ */
10
+ export function validateTelex(input, schema, options = {}) {
11
+ let parsed;
12
+ try {
13
+ parsed = parseTelex(input, options);
14
+ }
15
+ catch (error) {
16
+ const syntax = error;
17
+ return createFailingEnvelope([
18
+ createDiag('$', null, syntax.message, syntax.code ?? 'TELEX_SYNTAX_ERROR'),
19
+ ]);
20
+ }
21
+ const portable = validateTelexRecords(parsed.records, {
22
+ ...options,
23
+ profile: parsed.profile,
24
+ projection: parsed.projection,
25
+ });
26
+ if (!portable.valid) {
27
+ return createFailingEnvelope(portable.diagnostics.map((diagnostic) => createDiag(diagnostic.path ?? '$', null, diagnostic.message, diagnostic.code)));
28
+ }
29
+ return validate(parsed.records.filter((record) => (typeof record.path === 'string'
30
+ && typeof record.kind === 'string'
31
+ && record.header === undefined)), schema, options);
32
+ }
33
+ //# sourceMappingURL=telex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telex.js","sourceRoot":"","sources":["../src/telex.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,oBAAoB,GAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAuB,MAAM,qBAAqB,CAAC;AAGjF,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAM/D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CACzB,KAAa,EACb,MAAgB,EAChB,OAAO,GAAyB,EAAE;IAElC,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACD,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,KAAyB,CAAC;QACzC,OAAO,qBAAqB,CAAC;YACzB,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,oBAAoB,CAAC;SAC7E,CAAC,CAAC;IACP,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE;QAClD,GAAG,OAAO;QACV,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,qBAAqB,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAC5E,UAAU,CAAC,IAAI,IAAI,GAAG,EACtB,IAAI,EACJ,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,IAAI,CAClB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,OAAO,QAAQ,CACX,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAkC,EAAE,CAAC,CAC9D,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;WAC5B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;WAC/B,MAAM,CAAC,MAAM,KAAK,SAAS,CACjC,CAAC,EACF,MAAM,EACN,OAAO,CACV,CAAC;AACN,CAAC"}
@@ -4,11 +4,17 @@
4
4
  * Re-exports AES types from @altopelago/aeon-aes.
5
5
  * These are type-only imports to maintain zero runtime dependencies.
6
6
  */
7
- import type { AssignmentEvent } from '@altopelago/aeon-aes';
7
+ import type { AssignmentEvent, TelexRecord } from '@altopelago/aeon-aes';
8
8
  import type { Span as AeonSpan } from '@altopelago/aeon-lexer';
9
- export type { AssignmentEvent, AeonSpan };
9
+ export type { AssignmentEvent, AeonSpan, TelexRecord };
10
+ /** A decoded portable AES body record; header-plane records are filtered first. */
11
+ export type PortableAesBodyEvent = TelexRecord & {
12
+ readonly path: string;
13
+ readonly kind: string;
14
+ readonly header?: never;
15
+ };
10
16
  /**
11
17
  * Readonly AES array type for validation input
12
18
  */
13
- export type AES = readonly AssignmentEvent[];
19
+ export type AES = readonly (AssignmentEvent | PortableAesBodyEvent)[];
14
20
  //# sourceMappingURL=aes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aes.d.ts","sourceRoot":"","sources":["../../src/types/aes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG/D,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,SAAS,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"aes.d.ts","sourceRoot":"","sources":["../../src/types/aes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG/D,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AAEvD,mFAAmF;AACnF,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,GAAG,oBAAoB,CAAC,EAAE,CAAC"}
@@ -53,9 +53,9 @@ export interface ConstraintsV1 {
53
53
  readonly radix?: number;
54
54
  /** Allow RadixLiteral values without a matching radix datatype declaration */
55
55
  readonly allow_unspecified_radix?: boolean;
56
- /** Minimum integer value (inclusive), encoded as base-10 string for exactness */
56
+ /** Minimum numeric value (inclusive), retained as an exact canonical AEON number lexeme */
57
57
  readonly min_value?: string;
58
- /** Maximum integer value (inclusive), encoded as base-10 string for exactness */
58
+ /** Maximum numeric value (inclusive), retained as an exact canonical AEON number lexeme */
59
59
  readonly max_value?: string;
60
60
  /** Minimum string length in UTF-16 code units (JavaScript string.length) */
61
61
  readonly min_length?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,aAAa;CAAG;AAEhE,MAAM,WAAW,aAAa;IAC1B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAE3C,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,gEAAgE;IAChE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAElC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAE7B,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEzC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEnD,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAEpD,uDAAuD;IACvD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IAEzD,oFAAoF;IACpF,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAE3C,kFAAkF;IAClF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAE1C,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC,+CAA+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,uDAAuD;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEtC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,8EAA8E;IAC9E,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAE3C,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,4EAA4E;IAC5E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,2FAA2F;IAC3F,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAEvE,mEAAmE;IACnE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAEjC,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,+FAA+F;IAC/F,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;CACvC;AAED,MAAM,MAAM,qBAAqB,GAC3B,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,mBAAmB,GACnB,iBAAiB,GACjB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEhB,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAEtC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAElD,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAEnC,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE/C,4CAA4C;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IAEvD,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAElE,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACjD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;CACpD;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CA+BpD,CAAC;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAOtF"}
@@ -0,0 +1,7 @@
1
+ /** Exact decimal helpers for AEOS numeric value bounds. */
2
+ export type NumericComparison = -1 | 0 | 1;
3
+ /** Normalize an exact AEON decimal lexeme without coercing it to Number. */
4
+ export declare function normalizeNumericBound(value: string): string | null;
5
+ /** Compare two exact decimal lexemes without machine-number range or precision loss. */
6
+ export declare function compareNumericValues(left: string, right: string): NumericComparison | null;
7
+ //# sourceMappingURL=numericBounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numericBounds.d.ts","sourceRoot":"","sources":["../../src/util/numericBounds.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAE3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAW3C,4EAA4E;AAC5E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6BlE;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAS1F"}
@@ -0,0 +1,96 @@
1
+ /** Exact decimal helpers for AEOS numeric value bounds. */
2
+ const DECIMAL = /^([+-]?)(?:(\d+)(?:\.(\d+))?|\.(\d+))(?:[eE]([+-]?\d+))?$/u;
3
+ const MAX_BOUND_CHARACTERS = 65_536;
4
+ /** Normalize an exact AEON decimal lexeme without coercing it to Number. */
5
+ export function normalizeNumericBound(value) {
6
+ const parsed = parseExactDecimal(value);
7
+ if (parsed === null)
8
+ return null;
9
+ let normalized = value.replaceAll('E', 'e');
10
+ if (normalized.startsWith('+'))
11
+ normalized = normalized.slice(1);
12
+ if (normalized.startsWith('.'))
13
+ normalized = `0${normalized}`;
14
+ if (normalized.startsWith('-.'))
15
+ normalized = `-0${normalized.slice(1)}`;
16
+ const [mantissaInput = '', exponentInput] = normalized.split('e');
17
+ let mantissa = mantissaInput;
18
+ if (mantissa.includes('.')) {
19
+ const [integer = '', fractionInput = ''] = mantissa.split('.');
20
+ const fraction = trimTrailingZeros(fractionInput) || '0';
21
+ mantissa = exponentInput !== undefined && fraction === '0'
22
+ ? integer
23
+ : `${integer}.${fraction}`;
24
+ }
25
+ if (parsed.sign === 0)
26
+ return '0';
27
+ if (exponentInput === undefined)
28
+ return mantissa;
29
+ const negativeExponent = exponentInput.startsWith('-');
30
+ const unsignedExponent = exponentInput.startsWith('-') || exponentInput.startsWith('+')
31
+ ? exponentInput.slice(1)
32
+ : exponentInput;
33
+ const exponentDigits = trimLeadingZeros(unsignedExponent) || '0';
34
+ const exponent = exponentDigits === '0' ? '0' : `${negativeExponent ? '-' : ''}${exponentDigits}`;
35
+ return `${mantissa}e${exponent}`;
36
+ }
37
+ /** Compare two exact decimal lexemes without machine-number range or precision loss. */
38
+ export function compareNumericValues(left, right) {
39
+ const leftValue = parseExactDecimal(left);
40
+ const rightValue = parseExactDecimal(right);
41
+ if (leftValue === null || rightValue === null)
42
+ return null;
43
+ if (leftValue.sign !== rightValue.sign)
44
+ return leftValue.sign < rightValue.sign ? -1 : 1;
45
+ if (leftValue.sign === 0)
46
+ return 0;
47
+ const magnitude = compareMagnitude(leftValue, rightValue);
48
+ return leftValue.sign === -1 ? invert(magnitude) : magnitude;
49
+ }
50
+ function parseExactDecimal(value) {
51
+ if (value.length > MAX_BOUND_CHARACTERS)
52
+ return null;
53
+ const match = DECIMAL.exec(value);
54
+ if (match === null)
55
+ return null;
56
+ const integer = match[2] ?? '';
57
+ const fraction = match[3] ?? match[4] ?? '';
58
+ if (integer.length > 1 && integer.startsWith('0'))
59
+ return null;
60
+ const digits = trimLeadingZeros(`${integer}${fraction}`);
61
+ if (digits.length === 0)
62
+ return { sign: 0, digits: '0', scale: 0n };
63
+ return {
64
+ sign: match[1] === '-' ? -1 : 1,
65
+ digits,
66
+ scale: BigInt(match[5] ?? '0') - BigInt(fraction.length),
67
+ };
68
+ }
69
+ function trimLeadingZeros(value) {
70
+ let start = 0;
71
+ while (start < value.length && value.charCodeAt(start) === 48)
72
+ start += 1;
73
+ return value.slice(start);
74
+ }
75
+ function trimTrailingZeros(value) {
76
+ let end = value.length;
77
+ while (end > 0 && value.charCodeAt(end - 1) === 48)
78
+ end -= 1;
79
+ return value.slice(0, end);
80
+ }
81
+ function compareMagnitude(left, right) {
82
+ const leftOrder = BigInt(left.digits.length) + left.scale;
83
+ const rightOrder = BigInt(right.digits.length) + right.scale;
84
+ if (leftOrder !== rightOrder)
85
+ return leftOrder < rightOrder ? -1 : 1;
86
+ const width = Math.max(left.digits.length, right.digits.length);
87
+ const leftDigits = left.digits.padEnd(width, '0');
88
+ const rightDigits = right.digits.padEnd(width, '0');
89
+ if (leftDigits === rightDigits)
90
+ return 0;
91
+ return leftDigits < rightDigits ? -1 : 1;
92
+ }
93
+ function invert(value) {
94
+ return value === 0 ? 0 : value === 1 ? -1 : 1;
95
+ }
96
+ //# sourceMappingURL=numericBounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numericBounds.js","sourceRoot":"","sources":["../../src/util/numericBounds.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAY1D,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4EzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAErE,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;CAE9C;AAiJD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,eAAoB,GAC9B,cAAc,CAqWhB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAwB,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAc,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAa1D,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAuFzE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAErE,+DAA+D;IAC/D,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;CAE9C;AAiJD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CACpB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,QAAQ,EAChB,OAAO,GAAE,eAAoB,GAC9B,cAAc,CA2YhB"}