@elaraai/east 1.0.80 → 1.0.81

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.
Files changed (144) hide show
  1. package/dist/src/builtins.d.ts +1 -1
  2. package/dist/src/builtins.d.ts.map +1 -1
  3. package/dist/src/builtins.js +19 -0
  4. package/dist/src/builtins.js.map +1 -1
  5. package/dist/src/codegen/spellings.d.ts.map +1 -1
  6. package/dist/src/codegen/spellings.js +3 -0
  7. package/dist/src/codegen/spellings.js.map +1 -1
  8. package/dist/src/comparison.d.ts +54 -0
  9. package/dist/src/comparison.d.ts.map +1 -1
  10. package/dist/src/comparison.equivalent.spec.d.ts +6 -0
  11. package/dist/src/comparison.equivalent.spec.d.ts.map +1 -0
  12. package/dist/src/comparison.equivalent.spec.js +130 -0
  13. package/dist/src/comparison.equivalent.spec.js.map +1 -0
  14. package/dist/src/comparison.js +93 -20
  15. package/dist/src/comparison.js.map +1 -1
  16. package/dist/src/compile/builtins/array.d.ts +2 -1
  17. package/dist/src/compile/builtins/array.d.ts.map +1 -1
  18. package/dist/src/compile/builtins/array.js +35 -0
  19. package/dist/src/compile/builtins/array.js.map +1 -1
  20. package/dist/src/compile/builtins/dict.d.ts +1 -0
  21. package/dist/src/compile/builtins/dict.d.ts.map +1 -1
  22. package/dist/src/compile/builtins/dict.js +25 -0
  23. package/dist/src/compile/builtins/dict.js.map +1 -1
  24. package/dist/src/compile/builtins/set.d.ts +1 -0
  25. package/dist/src/compile/builtins/set.d.ts.map +1 -1
  26. package/dist/src/compile/builtins/set.js +25 -0
  27. package/dist/src/compile/builtins/set.js.map +1 -1
  28. package/dist/src/compile/builtins/tree.d.ts +32 -0
  29. package/dist/src/compile/builtins/tree.d.ts.map +1 -0
  30. package/dist/src/compile/builtins/tree.js +108 -0
  31. package/dist/src/compile/builtins/tree.js.map +1 -0
  32. package/dist/src/compile/functions.d.ts.map +1 -1
  33. package/dist/src/compile/functions.js +4 -4
  34. package/dist/src/compile/functions.js.map +1 -1
  35. package/dist/src/compile/runtime.d.ts +12 -15
  36. package/dist/src/compile/runtime.d.ts.map +1 -1
  37. package/dist/src/compile/runtime.js +19 -16
  38. package/dist/src/compile/runtime.js.map +1 -1
  39. package/dist/src/compile.signature.spec.d.ts +6 -0
  40. package/dist/src/compile.signature.spec.d.ts.map +1 -0
  41. package/dist/src/compile.signature.spec.js +53 -0
  42. package/dist/src/compile.signature.spec.js.map +1 -0
  43. package/dist/src/expr/array.d.ts +158 -81
  44. package/dist/src/expr/array.d.ts.map +1 -1
  45. package/dist/src/expr/array.js +68 -51
  46. package/dist/src/expr/array.js.map +1 -1
  47. package/dist/src/expr/ast.d.ts.map +1 -1
  48. package/dist/src/expr/ast.js +13 -0
  49. package/dist/src/expr/ast.js.map +1 -1
  50. package/dist/src/expr/blob.d.ts +8 -8
  51. package/dist/src/expr/blob.js +8 -8
  52. package/dist/src/expr/block.d.ts +18 -5
  53. package/dist/src/expr/block.d.ts.map +1 -1
  54. package/dist/src/expr/block.js +19 -0
  55. package/dist/src/expr/block.js.map +1 -1
  56. package/dist/src/expr/boolean.d.ts +10 -10
  57. package/dist/src/expr/boolean.js +10 -10
  58. package/dist/src/expr/datetime.d.ts +28 -28
  59. package/dist/src/expr/datetime.js +28 -28
  60. package/dist/src/expr/dict.d.ts +101 -51
  61. package/dist/src/expr/dict.d.ts.map +1 -1
  62. package/dist/src/expr/dict.js +97 -36
  63. package/dist/src/expr/dict.js.map +1 -1
  64. package/dist/src/expr/float.d.ts +23 -23
  65. package/dist/src/expr/float.js +23 -23
  66. package/dist/src/expr/integer.d.ts +17 -17
  67. package/dist/src/expr/integer.js +11 -11
  68. package/dist/src/expr/libs/array.d.ts +6 -6
  69. package/dist/src/expr/libs/array.js +6 -6
  70. package/dist/src/expr/libs/blob.d.ts +2 -2
  71. package/dist/src/expr/libs/blob.js +2 -2
  72. package/dist/src/expr/libs/datetime.d.ts +25 -25
  73. package/dist/src/expr/libs/datetime.js +25 -25
  74. package/dist/src/expr/libs/dict.d.ts +2 -2
  75. package/dist/src/expr/libs/dict.js +2 -2
  76. package/dist/src/expr/libs/float.d.ts +15 -15
  77. package/dist/src/expr/libs/float.js +15 -15
  78. package/dist/src/expr/libs/integer.d.ts +12 -12
  79. package/dist/src/expr/libs/integer.js +12 -12
  80. package/dist/src/expr/libs/set.d.ts +2 -2
  81. package/dist/src/expr/libs/set.js +2 -2
  82. package/dist/src/expr/libs/string.d.ts +4 -4
  83. package/dist/src/expr/libs/string.js +4 -4
  84. package/dist/src/expr/recursive.d.ts +22 -5
  85. package/dist/src/expr/recursive.d.ts.map +1 -1
  86. package/dist/src/expr/recursive.js +22 -5
  87. package/dist/src/expr/recursive.js.map +1 -1
  88. package/dist/src/expr/ref.d.ts +5 -5
  89. package/dist/src/expr/ref.js +5 -5
  90. package/dist/src/expr/set.d.ts +96 -51
  91. package/dist/src/expr/set.d.ts.map +1 -1
  92. package/dist/src/expr/set.js +85 -29
  93. package/dist/src/expr/set.js.map +1 -1
  94. package/dist/src/expr/string.d.ts +28 -28
  95. package/dist/src/expr/string.js +28 -28
  96. package/dist/src/expr/struct.d.ts.map +1 -1
  97. package/dist/src/expr/struct.js +2 -2
  98. package/dist/src/expr/variant.d.ts +12 -12
  99. package/dist/src/expr/variant.js +7 -7
  100. package/dist/src/function_symbols.d.ts +28 -0
  101. package/dist/src/function_symbols.d.ts.map +1 -0
  102. package/dist/src/function_symbols.js +28 -0
  103. package/dist/src/function_symbols.js.map +1 -0
  104. package/dist/src/location.d.ts +32 -0
  105. package/dist/src/location.d.ts.map +1 -1
  106. package/dist/src/location.js +38 -0
  107. package/dist/src/location.js.map +1 -1
  108. package/dist/src/location.spec.js +89 -1
  109. package/dist/src/location.spec.js.map +1 -1
  110. package/dist/src/runner_protocol.d.ts +46 -5
  111. package/dist/src/runner_protocol.d.ts.map +1 -1
  112. package/dist/src/runner_protocol.js +24 -5
  113. package/dist/src/runner_protocol.js.map +1 -1
  114. package/dist/src/serialization/beast2/index.d.ts +1 -0
  115. package/dist/src/serialization/beast2/index.d.ts.map +1 -1
  116. package/dist/src/serialization/beast2/index.js +1 -0
  117. package/dist/src/serialization/beast2/index.js.map +1 -1
  118. package/dist/src/serialization/beast2/v5/canonical.d.ts +101 -0
  119. package/dist/src/serialization/beast2/v5/canonical.d.ts.map +1 -0
  120. package/dist/src/serialization/beast2/v5/canonical.js +436 -0
  121. package/dist/src/serialization/beast2/v5/canonical.js.map +1 -0
  122. package/dist/src/serialization/beast2/v5/canonical.spec.d.ts +6 -0
  123. package/dist/src/serialization/beast2/v5/canonical.spec.d.ts.map +1 -0
  124. package/dist/src/serialization/beast2/v5/canonical.spec.js +124 -0
  125. package/dist/src/serialization/beast2/v5/canonical.spec.js.map +1 -0
  126. package/dist/src/serialization/beast2/v5/elements.d.ts +3 -1
  127. package/dist/src/serialization/beast2/v5/elements.d.ts.map +1 -1
  128. package/dist/src/serialization/beast2/v5/elements.js +7 -2
  129. package/dist/src/serialization/beast2/v5/elements.js.map +1 -1
  130. package/dist/src/serialization/beast2/v5/elements.spec.js +1 -1
  131. package/dist/src/serialization/beast2/v5/elements.spec.js.map +1 -1
  132. package/dist/src/serialization/beast2/v5/intake.d.ts +98 -0
  133. package/dist/src/serialization/beast2/v5/intake.d.ts.map +1 -0
  134. package/dist/src/serialization/beast2/v5/intake.js +462 -0
  135. package/dist/src/serialization/beast2/v5/intake.js.map +1 -0
  136. package/dist/src/serialization/beast2/v5/intake.spec.d.ts +6 -0
  137. package/dist/src/serialization/beast2/v5/intake.spec.d.ts.map +1 -0
  138. package/dist/src/serialization/beast2/v5/intake.spec.js +202 -0
  139. package/dist/src/serialization/beast2/v5/intake.spec.js.map +1 -0
  140. package/dist/src/serialization/index.d.ts +1 -1
  141. package/dist/src/serialization/index.d.ts.map +1 -1
  142. package/dist/src/serialization/index.js +1 -1
  143. package/dist/src/serialization/index.js.map +1 -1
  144. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Stepping over a value's v5 encoding without decoding it, and proving on the
7
+ * way that the bytes are the ones the Writer writes for the value they hold.
8
+ *
9
+ * Decoding a value and encoding it again gives its canonical bytes, but builds
10
+ * the value to do it. A reader that needs only where a value ends, and that its
11
+ * bytes are the Writer's, can step over them instead, holding each to what the
12
+ * encoder writes:
13
+ *
14
+ * - varints are minimal, and a length is a safe integer;
15
+ * - an Integer fits 64 bits, and a DateTime is a date a `Date` holds;
16
+ * - a Boolean is 0 or 1, and a NaN is the one NaN the encoder writes;
17
+ * - a String is well-formed UTF-8;
18
+ * - a Variant's case is one its type has;
19
+ * - a container's content is one run, and an alias names an earlier container
20
+ * of the same type within the root element;
21
+ * - a Set's elements and a Dict's keys strictly ascend.
22
+ *
23
+ * Whatever decodes but would encode otherwise — what decoding and encoding
24
+ * again would change — is refused. Only a Set's elements and a Dict's keys are
25
+ * decoded, to be ordered; they are of immutable types, so each decodes on its
26
+ * own. A function value is refused: its captures' types are known only once
27
+ * its IR is decoded.
28
+ *
29
+ * A lenient skipper holds bytes to what the decoder reads instead, where that
30
+ * is looser than what the Writer writes: a varint need not be minimal, a NaN
31
+ * may be the negative one, a container's content may come in several runs, and
32
+ * an alias may name a container of an earlier root element, when the caller
33
+ * shares one `defs` list across them. Bytes that pass it decode, and encoding
34
+ * what they decode to gives the Writer's bytes; everything else it refuses as
35
+ * the strict one does.
36
+ */
37
+ import { type EastTypeValue } from "../../../type_of_type.js";
38
+ import type { EastType } from "../../../types.js";
39
+ import type { BufferReader } from "../../binary-utils.js";
40
+ /** Thrown where bytes are not the encoding the Writer writes — or, for a
41
+ * lenient skipper, not an encoding the decoder reads. */
42
+ export declare class Beast2NotCanonicalError extends Error {
43
+ /** What is wrong with the bytes, as a refusal names it. */
44
+ readonly reason: string;
45
+ /**
46
+ * @param reason - what the Writer would not have written
47
+ */
48
+ constructor(reason: string);
49
+ }
50
+ /**
51
+ * Steps a reader over one value's encoding, holding it to the Writer's.
52
+ *
53
+ * @param reader - positioned at the value
54
+ * @param defs - the types of the containers defined so far in the root element
55
+ * the value belongs to, in definition order — for a lenient skipper, in
56
+ * every root element that shares the list; a container the value defines is
57
+ * added
58
+ * @throws {Beast2NotCanonicalError} When the bytes are not the Writer's.
59
+ */
60
+ export type CanonicalSkipper = (reader: BufferReader, defs: EastTypeValue[]) => void;
61
+ /** Options accepted by {@link canonicalSkipperFor}. */
62
+ export type CanonicalSkipperOptions = {
63
+ /** Hold the bytes to what the decoder reads rather than to what the Writer
64
+ * writes. Defaults to `false`. */
65
+ lenient?: boolean;
66
+ };
67
+ /** The most elements a container of zero-width elements holds, as every
68
+ * decoder bounds it. */
69
+ export declare const BEAST2_ZERO_WIDTH_MAX: number;
70
+ /** Whether a value of `type` encodes to no bytes: Null, Never, and structs of
71
+ * them.
72
+ * @internal */
73
+ export declare function zeroWidth(type: EastTypeValue): boolean;
74
+ /**
75
+ * Reads a varint the Writer writes: minimal, and no larger than a safe integer.
76
+ *
77
+ * @param reader - positioned at the varint
78
+ * @param what - what the varint is, for the refusal
79
+ * @param lenient - whether a varint that is not minimal reads
80
+ * @returns its value
81
+ * @throws {Beast2NotCanonicalError} When it is not minimal, too large, or
82
+ * runs past the bytes.
83
+ */
84
+ export declare function canonicalVarint(reader: BufferReader, what: string, lenient?: boolean): number;
85
+ /**
86
+ * Builds the {@link CanonicalSkipper} for a type.
87
+ *
88
+ * @param type - the type of the values to step over
89
+ * @param options - whether the skipper is lenient
90
+ * @returns the skipper
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const bytes = encodeBeast2FenceFor(StringType)("key");
95
+ * const reader = new BufferReader(bytes, 0);
96
+ * canonicalSkipperFor(StringType)(reader, []);
97
+ * // reader.offset === bytes.length
98
+ * ```
99
+ */
100
+ export declare function canonicalSkipperFor(type: EastType | EastTypeValue, options?: CanonicalSkipperOptions): CanonicalSkipper;
101
+ //# sourceMappingURL=canonical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/canonical.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D;0DAC0D;AAC1D,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;gBACS,MAAM,EAAE,MAAM;CAK3B;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;AAErF,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,GAAG;IACpC;uCACmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF;yBACyB;AACzB,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD;;gBAEgB;AAChB,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAGtD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,MAAM,CAmB3F;AAyID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,gBAAgB,CAEvH"}
@@ -0,0 +1,436 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * Stepping over a value's v5 encoding without decoding it, and proving on the
7
+ * way that the bytes are the ones the Writer writes for the value they hold.
8
+ *
9
+ * Decoding a value and encoding it again gives its canonical bytes, but builds
10
+ * the value to do it. A reader that needs only where a value ends, and that its
11
+ * bytes are the Writer's, can step over them instead, holding each to what the
12
+ * encoder writes:
13
+ *
14
+ * - varints are minimal, and a length is a safe integer;
15
+ * - an Integer fits 64 bits, and a DateTime is a date a `Date` holds;
16
+ * - a Boolean is 0 or 1, and a NaN is the one NaN the encoder writes;
17
+ * - a String is well-formed UTF-8;
18
+ * - a Variant's case is one its type has;
19
+ * - a container's content is one run, and an alias names an earlier container
20
+ * of the same type within the root element;
21
+ * - a Set's elements and a Dict's keys strictly ascend.
22
+ *
23
+ * Whatever decodes but would encode otherwise — what decoding and encoding
24
+ * again would change — is refused. Only a Set's elements and a Dict's keys are
25
+ * decoded, to be ordered; they are of immutable types, so each decodes on its
26
+ * own. A function value is refused: its captures' types are known only once
27
+ * its IR is decoded.
28
+ *
29
+ * A lenient skipper holds bytes to what the decoder reads instead, where that
30
+ * is looser than what the Writer writes: a varint need not be minimal, a NaN
31
+ * may be the negative one, a container's content may come in several runs, and
32
+ * an alias may name a container of an earlier root element, when the caller
33
+ * shares one `defs` list across them. Bytes that pass it decode, and encoding
34
+ * what they decode to gives the Writer's bytes; everything else it refuses as
35
+ * the strict one does.
36
+ */
37
+ import { isTypeValueEqual } from "../../../type_of_type.js";
38
+ import { compareFor } from "../../../comparison.js";
39
+ import { asTypeValue } from "./type-section.js";
40
+ import { TAG_NEW, TAG_REF } from "./codec.js";
41
+ import { decodeBeast2FenceFor } from "./boundary.js";
42
+ /** Thrown where bytes are not the encoding the Writer writes — or, for a
43
+ * lenient skipper, not an encoding the decoder reads. */
44
+ export class Beast2NotCanonicalError extends Error {
45
+ /** What is wrong with the bytes, as a refusal names it. */
46
+ reason;
47
+ /**
48
+ * @param reason - what the Writer would not have written
49
+ */
50
+ constructor(reason) {
51
+ super(`beast2 v5: ${reason}`);
52
+ this.name = "Beast2NotCanonicalError";
53
+ this.reason = reason;
54
+ }
55
+ }
56
+ /** The largest zigzag form of a date a `Date` holds: 8.64e15 ms either side of
57
+ * the epoch. */
58
+ const DATE_ZIGZAG_MAX = 2n * 8640000000000000n;
59
+ /** The most elements a container of zero-width elements holds, as every
60
+ * decoder bounds it: a Null costs no bytes, so the bytes left bound nothing. */
61
+ const ZERO_WIDTH_MAX = 2 ** 28;
62
+ /** The most elements a container of zero-width elements holds, as every
63
+ * decoder bounds it. */
64
+ export const BEAST2_ZERO_WIDTH_MAX = ZERO_WIDTH_MAX;
65
+ /** Whether a value of `type` encodes to no bytes: Null, Never, and structs of
66
+ * them.
67
+ * @internal */
68
+ export function zeroWidth(type) {
69
+ if (type.type === "Null" || type.type === "Never")
70
+ return true;
71
+ return type.type === "Struct" && type.value.every((field) => zeroWidth(field.type));
72
+ }
73
+ function refuse(reason) {
74
+ throw new Beast2NotCanonicalError(reason);
75
+ }
76
+ /**
77
+ * Reads a varint the Writer writes: minimal, and no larger than a safe integer.
78
+ *
79
+ * @param reader - positioned at the varint
80
+ * @param what - what the varint is, for the refusal
81
+ * @param lenient - whether a varint that is not minimal reads
82
+ * @returns its value
83
+ * @throws {Beast2NotCanonicalError} When it is not minimal, too large, or
84
+ * runs past the bytes.
85
+ */
86
+ export function canonicalVarint(reader, what, lenient = false) {
87
+ const buf = reader.buffer;
88
+ let off = reader.offset;
89
+ let value = 0;
90
+ let scale = 1;
91
+ for (let i = 0;; i++) {
92
+ if (off >= buf.length)
93
+ refuse(`${what} runs past the end of its bytes`);
94
+ const byte = buf[off++];
95
+ value += (byte & 0x7f) * scale;
96
+ if ((byte & 0x80) === 0) {
97
+ if (byte === 0 && i > 0 && !lenient)
98
+ refuse(`${what} is not a minimal varint`);
99
+ break;
100
+ }
101
+ if (i === 7)
102
+ refuse(`${what} is larger than a safe integer`);
103
+ scale *= 128;
104
+ }
105
+ if (value > Number.MAX_SAFE_INTEGER)
106
+ refuse(`${what} is larger than a safe integer`);
107
+ reader.offset = off;
108
+ return value;
109
+ }
110
+ /** Steps over `length` bytes. */
111
+ function bytes(reader, length, what) {
112
+ if (reader.offset + length > reader.buffer.length)
113
+ refuse(`${what} runs past the end of its bytes`);
114
+ reader.offset += length;
115
+ }
116
+ /** An Integer: a minimal zigzag varint of 64 bits at most. Ten bytes carry
117
+ * bits 63 and up in the last, which 64 bits leave 1 — or, lenient, 0 too,
118
+ * when the varint is padded. */
119
+ function integer(reader, lenient) {
120
+ const buf = reader.buffer;
121
+ let off = reader.offset;
122
+ for (let i = 0;; i++) {
123
+ if (off >= buf.length)
124
+ refuse("an Integer runs past the end of its bytes");
125
+ const byte = buf[off++];
126
+ if ((byte & 0x80) === 0) {
127
+ if (byte === 0 && i > 0 && !lenient)
128
+ refuse("an Integer is not a minimal varint");
129
+ if (i === 9 && byte > 1)
130
+ refuse("an Integer is larger than 64 bits");
131
+ break;
132
+ }
133
+ if (i === 9)
134
+ refuse("an Integer is larger than 64 bits");
135
+ }
136
+ reader.offset = off;
137
+ }
138
+ /** A DateTime: a zigzag varint of the milliseconds of a date a `Date` holds.
139
+ * Seven bytes or fewer always are one; more are measured. */
140
+ function dateTime(reader, lenient) {
141
+ const start = reader.offset;
142
+ integer(reader, lenient);
143
+ const length = reader.offset - start;
144
+ if (length < 8)
145
+ return;
146
+ let zigzag = 0n;
147
+ for (let i = length - 1; i >= 0; i--)
148
+ zigzag = (zigzag << 7n) | BigInt(reader.buffer[start + i] & 0x7f);
149
+ if (zigzag > DATE_ZIGZAG_MAX)
150
+ refuse("a DateTime is outside the dates a Date holds");
151
+ }
152
+ /** A Float: any 64 bits but a NaN other than the encoder's,
153
+ * `0x7FF8000000000000` — or, lenient, the negative one the decoder also
154
+ * reads, `0xFFF8000000000000`. */
155
+ function float(reader, lenient) {
156
+ const buf = reader.buffer;
157
+ const off = reader.offset;
158
+ if (off + 8 > buf.length)
159
+ refuse("a Float runs past the end of its bytes");
160
+ const top = buf[off + 7];
161
+ const next = buf[off + 6];
162
+ if ((top & 0x7f) === 0x7f && (next & 0xf0) === 0xf0) {
163
+ const low = (buf[off] | buf[off + 1] | buf[off + 2] | buf[off + 3] | buf[off + 4] | buf[off + 5]) === 0;
164
+ const infinite = low && (next & 0x0f) === 0;
165
+ const writers = low && next === 0xf8 && (top === 0x7f || (lenient && top === 0xff));
166
+ if (!infinite && !writers)
167
+ refuse("a Float is a NaN other than the one the Writer writes");
168
+ }
169
+ reader.offset = off + 8;
170
+ }
171
+ /** A String: a length, then that many bytes of well-formed UTF-8 — no overlong
172
+ * form, surrogate or code point past U+10FFFF, each of which a decode
173
+ * replaces and an encode then writes otherwise. */
174
+ function string(reader, lenient) {
175
+ const length = canonicalVarint(reader, "a String's length", lenient);
176
+ const buf = reader.buffer;
177
+ let off = reader.offset;
178
+ const end = off + length;
179
+ if (end > buf.length)
180
+ refuse("a String runs past the end of its bytes");
181
+ while (off < end) {
182
+ const lead = buf[off];
183
+ if (lead < 0x80) {
184
+ off++;
185
+ continue;
186
+ }
187
+ // The well-formed sequences: the second byte's range turns on the lead.
188
+ let follow;
189
+ let low = 0x80;
190
+ let high = 0xbf;
191
+ if (lead >= 0xc2 && lead <= 0xdf)
192
+ follow = 1;
193
+ else if (lead === 0xe0) {
194
+ follow = 2;
195
+ low = 0xa0;
196
+ }
197
+ else if ((lead >= 0xe1 && lead <= 0xec) || lead === 0xee || lead === 0xef)
198
+ follow = 2;
199
+ else if (lead === 0xed) {
200
+ follow = 2;
201
+ high = 0x9f;
202
+ }
203
+ else if (lead === 0xf0) {
204
+ follow = 3;
205
+ low = 0x90;
206
+ }
207
+ else if (lead >= 0xf1 && lead <= 0xf3)
208
+ follow = 3;
209
+ else if (lead === 0xf4) {
210
+ follow = 3;
211
+ high = 0x8f;
212
+ }
213
+ else
214
+ refuse("a String is not well-formed UTF-8");
215
+ if (off + follow >= end)
216
+ refuse("a String is not well-formed UTF-8");
217
+ const second = buf[off + 1];
218
+ if (second < low || second > high)
219
+ refuse("a String is not well-formed UTF-8");
220
+ for (let k = 2; k <= follow; k++) {
221
+ const byte = buf[off + k];
222
+ if (byte < 0x80 || byte > 0xbf)
223
+ refuse("a String is not well-formed UTF-8");
224
+ }
225
+ off += follow + 1;
226
+ }
227
+ reader.offset = end;
228
+ }
229
+ /**
230
+ * A mutable container's tag: `NEW`, whose content follows, recorded as a
231
+ * definition of `type`; or `REF` to an earlier definition of the same type in
232
+ * `defs`.
233
+ *
234
+ * @returns whether the container's content follows
235
+ */
236
+ function container(reader, defs, type, lenient) {
237
+ const buf = reader.buffer;
238
+ if (reader.offset >= buf.length)
239
+ refuse("a container runs past the end of its bytes");
240
+ const tag = buf[reader.offset++];
241
+ if (tag === TAG_NEW) {
242
+ defs.push(type);
243
+ return true;
244
+ }
245
+ if (tag !== TAG_REF)
246
+ refuse(`a container's tag is 0x${tag.toString(16)}, neither NEW nor REF`);
247
+ const delta = canonicalVarint(reader, "a container alias", lenient);
248
+ if (delta < 1 || delta > defs.length) {
249
+ refuse(lenient ? "a container alias reaches outside its segment" : "a container alias reaches outside its root element");
250
+ }
251
+ const target = defs[defs.length - delta];
252
+ if (target !== type && !isTypeValueEqual(target, type))
253
+ refuse("a container alias names a container of another type");
254
+ return false;
255
+ }
256
+ /** A container's content: `varint(0)` when empty, else `varint(n)`, the n
257
+ * elements, and `varint(0)` — one run, as the encoder writes it; lenient,
258
+ * any number of runs before the `varint(0)`. Each element is given its index
259
+ * in the content. `zero` says the elements encode to no bytes, whose count
260
+ * is bounded as every decoder bounds it. */
261
+ function run(reader, what, lenient, zero, element) {
262
+ let index = 0;
263
+ for (;;) {
264
+ const n = canonicalVarint(reader, index === 0 ? `${what}'s length` : `${what}'s end`, lenient);
265
+ if (n === 0)
266
+ return;
267
+ if (index > 0 && !lenient)
268
+ refuse(`${what}'s elements are not written in one run`);
269
+ if (zero && index + n > ZERO_WIDTH_MAX)
270
+ refuse(`${what} holds more elements than a reader takes`);
271
+ for (let i = 0; i < n; i++)
272
+ element(index++);
273
+ }
274
+ }
275
+ /**
276
+ * Builds the {@link CanonicalSkipper} for a type.
277
+ *
278
+ * @param type - the type of the values to step over
279
+ * @param options - whether the skipper is lenient
280
+ * @returns the skipper
281
+ *
282
+ * @example
283
+ * ```ts
284
+ * const bytes = encodeBeast2FenceFor(StringType)("key");
285
+ * const reader = new BufferReader(bytes, 0);
286
+ * canonicalSkipperFor(StringType)(reader, []);
287
+ * // reader.offset === bytes.length
288
+ * ```
289
+ */
290
+ export function canonicalSkipperFor(type, options) {
291
+ return build(asTypeValue(type), new Map(), options?.lenient ?? false);
292
+ }
293
+ function build(type, recursive, lenient) {
294
+ switch (type.type) {
295
+ case "Never":
296
+ return () => refuse("a value of type Never");
297
+ case "Null":
298
+ return () => { };
299
+ case "Boolean":
300
+ return (reader) => {
301
+ if (reader.offset >= reader.buffer.length)
302
+ refuse("a Boolean runs past the end of its bytes");
303
+ if (reader.buffer[reader.offset++] > 1)
304
+ refuse("a Boolean is neither 0 nor 1");
305
+ };
306
+ case "Integer":
307
+ return (reader) => integer(reader, lenient);
308
+ case "Float":
309
+ return (reader) => float(reader, lenient);
310
+ case "String":
311
+ return (reader) => string(reader, lenient);
312
+ case "DateTime":
313
+ return (reader) => dateTime(reader, lenient);
314
+ case "Blob":
315
+ return (reader) => bytes(reader, canonicalVarint(reader, "a Blob's length", lenient), "a Blob");
316
+ case "Vector": {
317
+ const width = type.value.type === "Boolean" ? 1 : 8;
318
+ return (reader) => {
319
+ const length = canonicalVarint(reader, "a Vector's length", lenient);
320
+ if (length > (reader.buffer.length - reader.offset) / width)
321
+ refuse("a Vector runs past the end of its bytes");
322
+ bytes(reader, length * width, "a Vector");
323
+ };
324
+ }
325
+ case "Matrix": {
326
+ const width = type.value.type === "Boolean" ? 1 : 8;
327
+ return (reader) => {
328
+ const rows = canonicalVarint(reader, "a Matrix's rows", lenient);
329
+ const cols = canonicalVarint(reader, "a Matrix's columns", lenient);
330
+ if (rows > 0 && cols > (reader.buffer.length - reader.offset) / width / rows)
331
+ refuse("a Matrix runs past the end of its bytes");
332
+ bytes(reader, rows * cols * width, "a Matrix");
333
+ };
334
+ }
335
+ case "Array": {
336
+ let element;
337
+ const zero = zeroWidth(type.value);
338
+ const skip = (reader, defs) => {
339
+ if (container(reader, defs, type, lenient))
340
+ run(reader, "an Array", lenient, zero, () => element(reader, defs));
341
+ };
342
+ element = build(type.value, recursive, lenient);
343
+ return skip;
344
+ }
345
+ case "Set": {
346
+ let element;
347
+ const decode = decodeBeast2FenceFor(type.value);
348
+ const cmp = compareFor(type.value);
349
+ const zero = zeroWidth(type.value);
350
+ const skip = (reader, defs) => {
351
+ if (!container(reader, defs, type, lenient))
352
+ return;
353
+ let previous;
354
+ run(reader, "a Set", lenient, zero, (index) => {
355
+ const start = reader.offset;
356
+ element(reader, defs);
357
+ const value = decode(reader.buffer.subarray(start, reader.offset));
358
+ if (index > 0 && cmp(previous, value) >= 0)
359
+ refuse("a Set's elements do not strictly ascend");
360
+ previous = value;
361
+ });
362
+ };
363
+ element = build(type.value, recursive, lenient);
364
+ return skip;
365
+ }
366
+ case "Dict": {
367
+ let key;
368
+ let value;
369
+ const decode = decodeBeast2FenceFor(type.value.key);
370
+ const cmp = compareFor(type.value.key);
371
+ const zero = zeroWidth(type.value.key) && zeroWidth(type.value.value);
372
+ const skip = (reader, defs) => {
373
+ if (!container(reader, defs, type, lenient))
374
+ return;
375
+ let previous;
376
+ run(reader, "a Dict", lenient, zero, (index) => {
377
+ const start = reader.offset;
378
+ key(reader, defs);
379
+ const k = decode(reader.buffer.subarray(start, reader.offset));
380
+ if (index > 0 && cmp(previous, k) >= 0)
381
+ refuse("a Dict's keys do not strictly ascend");
382
+ previous = k;
383
+ value(reader, defs);
384
+ });
385
+ };
386
+ key = build(type.value.key, recursive, lenient);
387
+ value = build(type.value.value, recursive, lenient);
388
+ return skip;
389
+ }
390
+ case "Ref": {
391
+ let inner;
392
+ const skip = (reader, defs) => {
393
+ if (container(reader, defs, type, lenient))
394
+ inner(reader, defs);
395
+ };
396
+ inner = build(type.value, recursive, lenient);
397
+ return skip;
398
+ }
399
+ case "Struct": {
400
+ const fields = type.value.map((field) => build(field.type, recursive, lenient));
401
+ return (reader, defs) => {
402
+ for (const field of fields)
403
+ field(reader, defs);
404
+ };
405
+ }
406
+ case "Variant": {
407
+ const cases = type.value.map((c) => build(c.type, recursive, lenient));
408
+ return (reader, defs) => {
409
+ const tag = canonicalVarint(reader, "a Variant's case", lenient);
410
+ if (tag >= cases.length)
411
+ refuse(`a Variant's case ${tag} is not one of its ${cases.length}`);
412
+ cases[tag](reader, defs);
413
+ };
414
+ }
415
+ case "Recursive": {
416
+ const node = type.value;
417
+ if (node.type === "wrapper") {
418
+ let inner;
419
+ const skip = (reader, defs) => inner(reader, defs);
420
+ recursive.set(node.value.id, skip);
421
+ inner = build(node.value.inner, recursive, lenient);
422
+ return skip;
423
+ }
424
+ const target = recursive.get(node.value);
425
+ if (target === undefined)
426
+ throw new Error("beast2 v5: a recursive type refers to one not being built");
427
+ return target;
428
+ }
429
+ case "Function":
430
+ case "AsyncFunction":
431
+ return () => refuse("a function value, whose captures' types only its decoded IR says");
432
+ default:
433
+ throw new Error(`beast2 v5: unknown type ${type.type}`);
434
+ }
435
+ }
436
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=canonical.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.spec.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/canonical.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}