@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.
- package/dist/src/builtins.d.ts +1 -1
- package/dist/src/builtins.d.ts.map +1 -1
- package/dist/src/builtins.js +19 -0
- package/dist/src/builtins.js.map +1 -1
- package/dist/src/codegen/spellings.d.ts.map +1 -1
- package/dist/src/codegen/spellings.js +3 -0
- package/dist/src/codegen/spellings.js.map +1 -1
- package/dist/src/comparison.d.ts +54 -0
- package/dist/src/comparison.d.ts.map +1 -1
- package/dist/src/comparison.equivalent.spec.d.ts +6 -0
- package/dist/src/comparison.equivalent.spec.d.ts.map +1 -0
- package/dist/src/comparison.equivalent.spec.js +130 -0
- package/dist/src/comparison.equivalent.spec.js.map +1 -0
- package/dist/src/comparison.js +93 -20
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile/builtins/array.d.ts +2 -1
- package/dist/src/compile/builtins/array.d.ts.map +1 -1
- package/dist/src/compile/builtins/array.js +35 -0
- package/dist/src/compile/builtins/array.js.map +1 -1
- package/dist/src/compile/builtins/dict.d.ts +1 -0
- package/dist/src/compile/builtins/dict.d.ts.map +1 -1
- package/dist/src/compile/builtins/dict.js +25 -0
- package/dist/src/compile/builtins/dict.js.map +1 -1
- package/dist/src/compile/builtins/set.d.ts +1 -0
- package/dist/src/compile/builtins/set.d.ts.map +1 -1
- package/dist/src/compile/builtins/set.js +25 -0
- package/dist/src/compile/builtins/set.js.map +1 -1
- package/dist/src/compile/builtins/tree.d.ts +32 -0
- package/dist/src/compile/builtins/tree.d.ts.map +1 -0
- package/dist/src/compile/builtins/tree.js +108 -0
- package/dist/src/compile/builtins/tree.js.map +1 -0
- package/dist/src/compile/functions.d.ts.map +1 -1
- package/dist/src/compile/functions.js +4 -4
- package/dist/src/compile/functions.js.map +1 -1
- package/dist/src/compile/runtime.d.ts +12 -15
- package/dist/src/compile/runtime.d.ts.map +1 -1
- package/dist/src/compile/runtime.js +19 -16
- package/dist/src/compile/runtime.js.map +1 -1
- package/dist/src/compile.signature.spec.d.ts +6 -0
- package/dist/src/compile.signature.spec.d.ts.map +1 -0
- package/dist/src/compile.signature.spec.js +53 -0
- package/dist/src/compile.signature.spec.js.map +1 -0
- package/dist/src/expr/array.d.ts +158 -81
- package/dist/src/expr/array.d.ts.map +1 -1
- package/dist/src/expr/array.js +68 -51
- package/dist/src/expr/array.js.map +1 -1
- package/dist/src/expr/ast.d.ts.map +1 -1
- package/dist/src/expr/ast.js +13 -0
- package/dist/src/expr/ast.js.map +1 -1
- package/dist/src/expr/blob.d.ts +8 -8
- package/dist/src/expr/blob.js +8 -8
- package/dist/src/expr/block.d.ts +18 -5
- package/dist/src/expr/block.d.ts.map +1 -1
- package/dist/src/expr/block.js +19 -0
- package/dist/src/expr/block.js.map +1 -1
- package/dist/src/expr/boolean.d.ts +10 -10
- package/dist/src/expr/boolean.js +10 -10
- package/dist/src/expr/datetime.d.ts +28 -28
- package/dist/src/expr/datetime.js +28 -28
- package/dist/src/expr/dict.d.ts +101 -51
- package/dist/src/expr/dict.d.ts.map +1 -1
- package/dist/src/expr/dict.js +97 -36
- package/dist/src/expr/dict.js.map +1 -1
- package/dist/src/expr/float.d.ts +23 -23
- package/dist/src/expr/float.js +23 -23
- package/dist/src/expr/integer.d.ts +17 -17
- package/dist/src/expr/integer.js +11 -11
- package/dist/src/expr/libs/array.d.ts +6 -6
- package/dist/src/expr/libs/array.js +6 -6
- package/dist/src/expr/libs/blob.d.ts +2 -2
- package/dist/src/expr/libs/blob.js +2 -2
- package/dist/src/expr/libs/datetime.d.ts +25 -25
- package/dist/src/expr/libs/datetime.js +25 -25
- package/dist/src/expr/libs/dict.d.ts +2 -2
- package/dist/src/expr/libs/dict.js +2 -2
- package/dist/src/expr/libs/float.d.ts +15 -15
- package/dist/src/expr/libs/float.js +15 -15
- package/dist/src/expr/libs/integer.d.ts +12 -12
- package/dist/src/expr/libs/integer.js +12 -12
- package/dist/src/expr/libs/set.d.ts +2 -2
- package/dist/src/expr/libs/set.js +2 -2
- package/dist/src/expr/libs/string.d.ts +4 -4
- package/dist/src/expr/libs/string.js +4 -4
- package/dist/src/expr/recursive.d.ts +22 -5
- package/dist/src/expr/recursive.d.ts.map +1 -1
- package/dist/src/expr/recursive.js +22 -5
- package/dist/src/expr/recursive.js.map +1 -1
- package/dist/src/expr/ref.d.ts +5 -5
- package/dist/src/expr/ref.js +5 -5
- package/dist/src/expr/set.d.ts +96 -51
- package/dist/src/expr/set.d.ts.map +1 -1
- package/dist/src/expr/set.js +85 -29
- package/dist/src/expr/set.js.map +1 -1
- package/dist/src/expr/string.d.ts +28 -28
- package/dist/src/expr/string.js +28 -28
- package/dist/src/expr/struct.d.ts.map +1 -1
- package/dist/src/expr/struct.js +2 -2
- package/dist/src/expr/variant.d.ts +12 -12
- package/dist/src/expr/variant.js +7 -7
- package/dist/src/function_symbols.d.ts +28 -0
- package/dist/src/function_symbols.d.ts.map +1 -0
- package/dist/src/function_symbols.js +28 -0
- package/dist/src/function_symbols.js.map +1 -0
- package/dist/src/location.d.ts +32 -0
- package/dist/src/location.d.ts.map +1 -1
- package/dist/src/location.js +38 -0
- package/dist/src/location.js.map +1 -1
- package/dist/src/location.spec.js +89 -1
- package/dist/src/location.spec.js.map +1 -1
- package/dist/src/runner_protocol.d.ts +46 -5
- package/dist/src/runner_protocol.d.ts.map +1 -1
- package/dist/src/runner_protocol.js +24 -5
- package/dist/src/runner_protocol.js.map +1 -1
- package/dist/src/serialization/beast2/index.d.ts +1 -0
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +1 -0
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/v5/canonical.d.ts +101 -0
- package/dist/src/serialization/beast2/v5/canonical.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.js +436 -0
- package/dist/src/serialization/beast2/v5/canonical.js.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.js +124 -0
- package/dist/src/serialization/beast2/v5/canonical.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/elements.d.ts +3 -1
- package/dist/src/serialization/beast2/v5/elements.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/elements.js +7 -2
- package/dist/src/serialization/beast2/v5/elements.js.map +1 -1
- package/dist/src/serialization/beast2/v5/elements.spec.js +1 -1
- package/dist/src/serialization/beast2/v5/elements.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/intake.d.ts +98 -0
- package/dist/src/serialization/beast2/v5/intake.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.js +462 -0
- package/dist/src/serialization/beast2/v5/intake.js.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/intake.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/intake.spec.js +202 -0
- package/dist/src/serialization/beast2/v5/intake.spec.js.map +1 -0
- package/dist/src/serialization/index.d.ts +1 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +1 -1
- package/dist/src/serialization/index.js.map +1 -1
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"canonical.spec.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/canonical.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|