@elaraai/east 1.0.79 → 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/README.md +1 -1
- 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 +97 -25
- package/dist/src/comparison.js.map +1 -1
- package/dist/src/compile/builtins/array.d.ts +60 -0
- package/dist/src/compile/builtins/array.d.ts.map +1 -0
- package/dist/src/compile/builtins/array.js +691 -0
- package/dist/src/compile/builtins/array.js.map +1 -0
- package/dist/src/compile/builtins/blob.d.ts +18 -0
- package/dist/src/compile/builtins/blob.d.ts.map +1 -0
- package/dist/src/compile/builtins/blob.js +150 -0
- package/dist/src/compile/builtins/blob.js.map +1 -0
- package/dist/src/compile/builtins/compare.d.ts +18 -0
- package/dist/src/compile/builtins/compare.d.ts.map +1 -0
- package/dist/src/compile/builtins/compare.js +52 -0
- package/dist/src/compile/builtins/compare.js.map +1 -0
- package/dist/src/compile/builtins/datetime.d.ts +21 -0
- package/dist/src/compile/builtins/datetime.d.ts.map +1 -0
- package/dist/src/compile/builtins/datetime.js +46 -0
- package/dist/src/compile/builtins/datetime.js.map +1 -0
- package/dist/src/compile/builtins/dict.d.ts +47 -0
- package/dist/src/compile/builtins/dict.d.ts.map +1 -0
- package/dist/src/compile/builtins/dict.js +576 -0
- package/dist/src/compile/builtins/dict.js.map +1 -0
- package/dist/src/compile/builtins/index.d.ts +9 -0
- package/dist/src/compile/builtins/index.d.ts.map +1 -0
- package/dist/src/compile/builtins/index.js +28 -0
- package/dist/src/compile/builtins/index.js.map +1 -0
- package/dist/src/compile/builtins/matrix.d.ts +31 -0
- package/dist/src/compile/builtins/matrix.d.ts.map +1 -0
- package/dist/src/compile/builtins/matrix.js +310 -0
- package/dist/src/compile/builtins/matrix.js.map +1 -0
- package/dist/src/compile/builtins/primitives.d.ts +36 -0
- package/dist/src/compile/builtins/primitives.d.ts.map +1 -0
- package/dist/src/compile/builtins/primitives.js +67 -0
- package/dist/src/compile/builtins/primitives.js.map +1 -0
- package/dist/src/compile/builtins/ref.d.ts +11 -0
- package/dist/src/compile/builtins/ref.d.ts.map +1 -0
- package/dist/src/compile/builtins/ref.js +30 -0
- package/dist/src/compile/builtins/ref.js.map +1 -0
- package/dist/src/compile/builtins/set.d.ts +42 -0
- package/dist/src/compile/builtins/set.d.ts.map +1 -0
- package/dist/src/compile/builtins/set.js +410 -0
- package/dist/src/compile/builtins/set.js.map +1 -0
- package/dist/src/compile/builtins/sparse.d.ts +19 -0
- package/dist/src/compile/builtins/sparse.d.ts.map +1 -0
- package/dist/src/compile/builtins/sparse.js +143 -0
- package/dist/src/compile/builtins/sparse.js.map +1 -0
- package/dist/src/compile/builtins/string.d.ts +34 -0
- package/dist/src/compile/builtins/string.d.ts.map +1 -0
- package/dist/src/compile/builtins/string.js +238 -0
- package/dist/src/compile/builtins/string.js.map +1 -0
- 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/builtins/vector.d.ts +44 -0
- package/dist/src/compile/builtins/vector.d.ts.map +1 -0
- package/dist/src/compile/builtins/vector.js +463 -0
- package/dist/src/compile/builtins/vector.js.map +1 -0
- package/dist/src/compile/constructors.d.ts +13 -0
- package/dist/src/compile/constructors.d.ts.map +1 -0
- package/dist/src/compile/constructors.js +179 -0
- package/dist/src/compile/constructors.js.map +1 -0
- package/dist/src/compile/control.d.ts +13 -0
- package/dist/src/compile/control.d.ts.map +1 -0
- package/dist/src/compile/control.js +513 -0
- package/dist/src/compile/control.js.map +1 -0
- package/dist/src/compile/functions.d.ts +13 -0
- package/dist/src/compile/functions.d.ts.map +1 -0
- package/dist/src/compile/functions.js +492 -0
- package/dist/src/compile/functions.js.map +1 -0
- package/dist/src/compile/ir.d.ts +19 -0
- package/dist/src/compile/ir.d.ts.map +1 -0
- package/dist/src/compile/ir.js +193 -0
- package/dist/src/compile/ir.js.map +1 -0
- package/dist/src/compile/runtime.d.ts +75 -0
- package/dist/src/compile/runtime.d.ts.map +1 -0
- package/dist/src/compile/runtime.js +114 -0
- package/dist/src/compile/runtime.js.map +1 -0
- package/dist/src/compile/type_parameters.d.ts +4 -0
- package/dist/src/compile/type_parameters.d.ts.map +1 -0
- package/dist/src/compile/type_parameters.js +55 -0
- package/dist/src/compile/type_parameters.js.map +1 -0
- package/dist/src/compile/typed_arrays.d.ts +28 -0
- package/dist/src/compile/typed_arrays.d.ts.map +1 -0
- package/dist/src/compile/typed_arrays.js +77 -0
- package/dist/src/compile/typed_arrays.js.map +1 -0
- package/dist/src/compile.d.ts +6 -41
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +8 -4415
- package/dist/src/compile.js.map +1 -1
- package/dist/src/compile.open_beast.spec.js +5 -4
- package/dist/src/compile.open_beast.spec.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/containers/sortedmap.d.ts +2 -1
- package/dist/src/containers/sortedmap.d.ts.map +1 -1
- package/dist/src/containers/sortedmap.js +4 -2
- package/dist/src/containers/sortedmap.js.map +1 -1
- package/dist/src/containers/sortedset.d.ts +2 -1
- package/dist/src/containers/sortedset.d.ts.map +1 -1
- package/dist/src/containers/sortedset.js +4 -2
- package/dist/src/containers/sortedset.js.map +1 -1
- package/dist/src/error.d.ts +15 -0
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +16 -0
- package/dist/src/error.js.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- 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/patch/index.d.ts +1 -1
- package/dist/src/patch/index.d.ts.map +1 -1
- package/dist/src/patch/index.js +1 -1
- package/dist/src/patch/index.js.map +1 -1
- package/dist/src/patch/type_of_patch.d.ts +25 -1
- package/dist/src/patch/type_of_patch.d.ts.map +1 -1
- package/dist/src/patch/type_of_patch.js +33 -10
- package/dist/src/patch/type_of_patch.js.map +1 -1
- package/dist/src/platform.spec.js +19 -1
- package/dist/src/platform.spec.js.map +1 -1
- package/dist/src/runner_protocol.d.ts +357 -0
- package/dist/src/runner_protocol.d.ts.map +1 -0
- package/dist/src/runner_protocol.js +154 -0
- package/dist/src/runner_protocol.js.map +1 -0
- package/dist/src/serialization/beast2/index.d.ts +22 -5
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +13 -2
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/index.spec.js +84 -3
- package/dist/src/serialization/beast2/index.spec.js.map +1 -1
- package/dist/src/serialization/beast2/shared.d.ts +32 -3
- package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
- package/dist/src/serialization/beast2/shared.js +135 -10
- package/dist/src/serialization/beast2/shared.js.map +1 -1
- package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v4/container.js +5 -3
- package/dist/src/serialization/beast2/v4/container.js.map +1 -1
- package/dist/src/serialization/beast2/v5/aliasing.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/aliasing.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/aliasing.spec.js +75 -0
- package/dist/src/serialization/beast2/v5/aliasing.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/boundary.d.ts +176 -0
- package/dist/src/serialization/beast2/v5/boundary.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/boundary.js +297 -0
- package/dist/src/serialization/beast2/v5/boundary.js.map +1 -0
- package/dist/src/serialization/beast2/v5/boundary.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/boundary.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/boundary.spec.js +479 -0
- package/dist/src/serialization/beast2/v5/boundary.spec.js.map +1 -0
- 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/codec.d.ts +6 -5
- package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/codec.js +18 -3
- package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.d.ts +24 -2
- package/dist/src/serialization/beast2/v5/deflate.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.js +47 -12
- package/dist/src/serialization/beast2/v5/deflate.js.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.spec.js +15 -1
- package/dist/src/serialization/beast2/v5/deflate.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/elements.d.ts +66 -0
- package/dist/src/serialization/beast2/v5/elements.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/elements.js +325 -0
- package/dist/src/serialization/beast2/v5/elements.js.map +1 -0
- package/dist/src/serialization/beast2/v5/elements.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/elements.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/elements.spec.js +161 -0
- package/dist/src/serialization/beast2/v5/elements.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-pool.d.ts +62 -21
- package/dist/src/serialization/beast2/v5/frame-pool.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/frame-pool.js +138 -27
- package/dist/src/serialization/beast2/v5/frame-pool.js.map +1 -1
- package/dist/src/serialization/beast2/v5/frame-pool.spec.js +198 -71
- package/dist/src/serialization/beast2/v5/frame-pool.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/frame-worker.js +25 -15
- package/dist/src/serialization/beast2/v5/frame-worker.js.map +1 -1
- package/dist/src/serialization/beast2/v5/frames.d.ts +22 -12
- package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/frames.js +52 -27
- package/dist/src/serialization/beast2/v5/frames.js.map +1 -1
- package/dist/src/serialization/beast2/v5/geometry.d.ts +38 -1
- package/dist/src/serialization/beast2/v5/geometry.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/geometry.js +73 -1
- package/dist/src/serialization/beast2/v5/geometry.js.map +1 -1
- package/dist/src/serialization/beast2/v5/geometry.spec.js +34 -23
- package/dist/src/serialization/beast2/v5/geometry.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/index.spec.js +32 -28
- package/dist/src/serialization/beast2/v5/index.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/beast2/v5/lazy.d.ts +42 -1
- package/dist/src/serialization/beast2/v5/lazy.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/lazy.js +143 -28
- package/dist/src/serialization/beast2/v5/lazy.js.map +1 -1
- package/dist/src/serialization/beast2/v5/lazy.spec.js +102 -24
- package/dist/src/serialization/beast2/v5/lazy.spec.js.map +1 -1
- package/dist/src/serialization/beast2/v5/manifest-writer.d.ts +110 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.js +118 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.js.map +1 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.spec.js +207 -0
- package/dist/src/serialization/beast2/v5/manifest-writer.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/manifest.d.ts +241 -0
- package/dist/src/serialization/beast2/v5/manifest.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/manifest.js +233 -0
- package/dist/src/serialization/beast2/v5/manifest.js.map +1 -0
- package/dist/src/serialization/beast2/v5/merge.d.ts +93 -0
- package/dist/src/serialization/beast2/v5/merge.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/merge.js +202 -0
- package/dist/src/serialization/beast2/v5/merge.js.map +1 -0
- package/dist/src/serialization/beast2/v5/merge.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/merge.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/merge.spec.js +118 -0
- package/dist/src/serialization/beast2/v5/merge.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/recut.d.ts +143 -0
- package/dist/src/serialization/beast2/v5/recut.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/recut.js +365 -0
- package/dist/src/serialization/beast2/v5/recut.js.map +1 -0
- package/dist/src/serialization/beast2/v5/recut.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/recut.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/recut.spec.js +215 -0
- package/dist/src/serialization/beast2/v5/recut.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/runs.d.ts +148 -0
- package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/runs.js +260 -0
- package/dist/src/serialization/beast2/v5/runs.js.map +1 -0
- package/dist/src/serialization/beast2/v5/runs.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/runs.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/runs.spec.js +182 -0
- package/dist/src/serialization/beast2/v5/runs.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/sha256.d.ts +19 -0
- package/dist/src/serialization/beast2/v5/sha256.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/sha256.js +103 -0
- package/dist/src/serialization/beast2/v5/sha256.js.map +1 -0
- package/dist/src/serialization/beast2/v5/sha256.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/sha256.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/sha256.spec.js +42 -0
- package/dist/src/serialization/beast2/v5/sha256.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/stream.d.ts +273 -86
- package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/stream.js +576 -244
- package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
- package/dist/src/serialization/beast2/v5/sync-reader.spec.js +24 -10
- package/dist/src/serialization/beast2/v5/sync-reader.spec.js.map +1 -1
- 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/dist/src/serialization/json.d.ts +28 -0
- package/dist/src/serialization/json.d.ts.map +1 -1
- package/dist/src/serialization/json.js +141 -30
- package/dist/src/serialization/json.js.map +1 -1
- package/dist/src/serialization/json.spec.js +47 -2
- package/dist/src/serialization/json.spec.js.map +1 -1
- package/dist/src/serialization/json_schema.d.ts +15 -11
- package/dist/src/serialization/json_schema.d.ts.map +1 -1
- package/dist/src/serialization/json_schema.js +21 -36
- package/dist/src/serialization/json_schema.js.map +1 -1
- package/dist/src/serialization/json_schema.spec.js +26 -32
- package/dist/src/serialization/json_schema.spec.js.map +1 -1
- package/dist/src/serialization/json_schema_to_type.d.ts +10 -5
- package/dist/src/serialization/json_schema_to_type.d.ts.map +1 -1
- package/dist/src/serialization/json_schema_to_type.js +13 -6
- package/dist/src/serialization/json_schema_to_type.js.map +1 -1
- package/dist/src/serialization/json_schema_to_type.spec.js +19 -0
- package/dist/src/serialization/json_schema_to_type.spec.js.map +1 -1
- package/dist/src/string_order.d.ts +36 -0
- package/dist/src/string_order.d.ts.map +1 -0
- package/dist/src/string_order.js +64 -0
- package/dist/src/string_order.js.map +1 -0
- package/dist/src/string_order.spec.d.ts +6 -0
- package/dist/src/string_order.spec.d.ts.map +1 -0
- package/dist/src/string_order.spec.js +79 -0
- package/dist/src/string_order.spec.js.map +1 -0
- package/dist/src/type_of_type.d.ts +17 -0
- package/dist/src/type_of_type.d.ts.map +1 -1
- package/dist/src/type_of_type.js +66 -0
- package/dist/src/type_of_type.js.map +1 -1
- package/dist/src/type_of_type.to_etv.spec.js +69 -1
- package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recut.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/recut.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recut.spec.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/recut.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,215 @@
|
|
|
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
|
+
* Re-cutting, held to the Writer: whatever pieces a value arrives in — the
|
|
7
|
+
* Writer's segments of parts of it, or elements, split anywhere — the re-cut
|
|
8
|
+
* writes the segments the Writer writes for the whole value, and an edit
|
|
9
|
+
* costs the segments around it.
|
|
10
|
+
*/
|
|
11
|
+
import { describe, test } from "node:test";
|
|
12
|
+
import assert from "node:assert/strict";
|
|
13
|
+
import { ArrayType, BlobType, DictType, IntegerType, SetType, StringType, StructType } from "../../../types.js";
|
|
14
|
+
import { compareFor } from "../../../comparison.js";
|
|
15
|
+
import { SortedMap, SortedSet } from "../../../index.js";
|
|
16
|
+
import { carveBeast2, encodeBeast2FenceFor, encodeBeast2PagedFor, openBeast2PagesFor, readBeast2Extents, recutBeast2For, segmentKeyTypeOf, spliceBeast2, spliceBeast2Tail, } from "../index.js";
|
|
17
|
+
const RowType = StructType({ id: IntegerType, name: StringType });
|
|
18
|
+
const TableType = DictType(StringType, RowType);
|
|
19
|
+
const NamesType = SetType(StringType);
|
|
20
|
+
const RowsType = ArrayType(RowType);
|
|
21
|
+
const WideType = DictType(StringType, BlobType);
|
|
22
|
+
/** xorshift32 — a fixed stream, so a failure reproduces exactly. */
|
|
23
|
+
function rng(seed) {
|
|
24
|
+
let s = seed >>> 0 || 1;
|
|
25
|
+
return () => {
|
|
26
|
+
s ^= s << 13;
|
|
27
|
+
s >>>= 0;
|
|
28
|
+
s ^= s >>> 17;
|
|
29
|
+
s ^= s << 5;
|
|
30
|
+
s >>>= 0;
|
|
31
|
+
return s;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const row = (i) => ({ id: BigInt(i), name: `row-${i}` });
|
|
35
|
+
const key = (i) => `k${String(i).padStart(7, "0")}`;
|
|
36
|
+
/** References to every segment of a blob the Writer wrote. */
|
|
37
|
+
function refsOf(type, blob, reads = { count: 0 }) {
|
|
38
|
+
const extents = readBeast2Extents(blob);
|
|
39
|
+
const keyType = segmentKeyTypeOf(type);
|
|
40
|
+
const pages = openBeast2PagesFor(type)(blob);
|
|
41
|
+
const fenceOf = keyType === null ? null : encodeBeast2FenceFor(keyType);
|
|
42
|
+
const fences = extents.counts.map((_, i) => fenceOf === null ? new Uint8Array(0) : fenceOf(pages.fence(i)));
|
|
43
|
+
return extents.counts.map((count, i) => ({
|
|
44
|
+
count,
|
|
45
|
+
fence: fences[i],
|
|
46
|
+
...(fenceOf !== null && i + 1 < fences.length && { nextFence: fences[i + 1] }),
|
|
47
|
+
read: () => {
|
|
48
|
+
reads.count++;
|
|
49
|
+
return carveBeast2(blob, i, i + 1, extents);
|
|
50
|
+
},
|
|
51
|
+
carve: () => carveBeast2(blob, i, i + 1, extents),
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
/** The whole a re-cut writes, spliced into one blob, and what it came to. The
|
|
55
|
+
* sink awaits, as a store's would. */
|
|
56
|
+
async function recut(type, pieces, options) {
|
|
57
|
+
const parts = [];
|
|
58
|
+
const stats = await recutBeast2For(type, options)(pieces, {
|
|
59
|
+
written: async (segment) => { await Promise.resolve(); parts.push(segment.blob); },
|
|
60
|
+
carried: async (segment) => { await Promise.resolve(); parts.push(segment.carve()); },
|
|
61
|
+
});
|
|
62
|
+
const blob = parts.length > 0
|
|
63
|
+
? spliceBeast2(parts)
|
|
64
|
+
: new Uint8Array(Buffer.concat([stats.header, spliceBeast2Tail([], stats.header.length)]));
|
|
65
|
+
return { blob, stats };
|
|
66
|
+
}
|
|
67
|
+
const cases = [
|
|
68
|
+
{
|
|
69
|
+
name: "a Dict",
|
|
70
|
+
type: TableType,
|
|
71
|
+
elements: Array.from({ length: 20_000 }, (_, i) => [key(i), row(i)]),
|
|
72
|
+
valueOf: (part) => new SortedMap(part, compareFor(StringType)),
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: "a Set",
|
|
76
|
+
type: NamesType,
|
|
77
|
+
elements: Array.from({ length: 20_000 }, (_, i) => key(i)),
|
|
78
|
+
valueOf: (part) => new SortedSet(part, compareFor(StringType)),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "an Array",
|
|
82
|
+
type: RowsType,
|
|
83
|
+
elements: Array.from({ length: 20_000 }, (_, i) => row(i)),
|
|
84
|
+
valueOf: (part) => part,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "a Dict of wide rows",
|
|
88
|
+
type: WideType,
|
|
89
|
+
elements: Array.from({ length: 48 }, (_, i) => [key(i), new Uint8Array(256 * 1024).fill(i)]),
|
|
90
|
+
valueOf: (part) => new SortedMap(part, compareFor(StringType)),
|
|
91
|
+
options: { codec: "none" },
|
|
92
|
+
},
|
|
93
|
+
];
|
|
94
|
+
/** A case's elements cut at `at` into pieces: each the Writer's segments of
|
|
95
|
+
* its part, or the part's elements. */
|
|
96
|
+
function piecesOf(c, at, asSegments) {
|
|
97
|
+
const bounds = [0, ...at, c.elements.length];
|
|
98
|
+
const pieces = [];
|
|
99
|
+
for (let p = 0; p + 1 < bounds.length; p++) {
|
|
100
|
+
const part = c.elements.slice(bounds[p], bounds[p + 1]);
|
|
101
|
+
pieces.push(asSegments(p)
|
|
102
|
+
? { segments: refsOf(c.type, encodeBeast2PagedFor(c.type, c.options)(c.valueOf(part))) }
|
|
103
|
+
: { elements: part });
|
|
104
|
+
}
|
|
105
|
+
return pieces;
|
|
106
|
+
}
|
|
107
|
+
describe("beast2 v5 recut", () => {
|
|
108
|
+
for (const c of cases) {
|
|
109
|
+
test(`writes what the Writer writes for ${c.name}, from pieces cut anywhere`, async () => {
|
|
110
|
+
const expected = encodeBeast2PagedFor(c.type, c.options)(c.valueOf(c.elements));
|
|
111
|
+
const next = rng(0x7ec0 + c.elements.length);
|
|
112
|
+
for (let round = 0; round < 8; round++) {
|
|
113
|
+
const at = Array.from({ length: next() % 6 }, () => next() % (c.elements.length + 1)).sort((a, b) => a - b);
|
|
114
|
+
const flags = Array.from({ length: at.length + 1 }, () => next() % 3 !== 0);
|
|
115
|
+
const { blob } = await recut(c.type, piecesOf(c, at, (p) => flags[p]), c.options);
|
|
116
|
+
assert.deepEqual(blob, expected, `round ${round}: cut at [${at.join(", ")}], segments [${flags.join(", ")}]`);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
test("carries every segment when the pieces are runs of the whole's own segments, reading none", async () => {
|
|
121
|
+
const blob = encodeBeast2PagedFor(TableType)(cases[0].valueOf(cases[0].elements));
|
|
122
|
+
const reads = { count: 0 };
|
|
123
|
+
const refs = refsOf(TableType, blob, reads);
|
|
124
|
+
assert.ok(refs.length > 7, `${refs.length} segments`);
|
|
125
|
+
const { blob: out, stats } = await recut(TableType, [
|
|
126
|
+
{ segments: refs.slice(0, 3) },
|
|
127
|
+
{ elements: [] },
|
|
128
|
+
{ segments: refs.slice(3, 7) },
|
|
129
|
+
{ segments: refs.slice(7) },
|
|
130
|
+
]);
|
|
131
|
+
assert.deepEqual(out, blob);
|
|
132
|
+
assert.equal(stats.carried, refs.length);
|
|
133
|
+
assert.equal(stats.written, 0);
|
|
134
|
+
assert.equal(reads.count, 0);
|
|
135
|
+
});
|
|
136
|
+
test("re-cuts one segment for a one-row Dict edit, deciding the seams from fences alone", async () => {
|
|
137
|
+
const before = new SortedMap(Array.from({ length: 20_000 }, (_, i) => [key(i), row(i)]), compareFor(StringType));
|
|
138
|
+
const blob = encodeBeast2PagedFor(TableType)(before);
|
|
139
|
+
const pages = openBeast2PagesFor(TableType)(blob);
|
|
140
|
+
const reads = { count: 0 };
|
|
141
|
+
const refs = refsOf(TableType, blob, reads);
|
|
142
|
+
const edited = { id: 9000n, name: "edited" };
|
|
143
|
+
const i = pages.segmentFor(key(9_000));
|
|
144
|
+
const elements = [...pages.segment(i)].map(([k, v]) => [k, k === key(9_000) ? edited : v]);
|
|
145
|
+
const { blob: out, stats } = await recut(TableType, [
|
|
146
|
+
{ segments: refs.slice(0, i) },
|
|
147
|
+
{ elements },
|
|
148
|
+
{ segments: refs.slice(i + 1) },
|
|
149
|
+
]);
|
|
150
|
+
const after = new SortedMap(before, compareFor(StringType));
|
|
151
|
+
after.set(key(9_000), edited);
|
|
152
|
+
assert.deepEqual(out, encodeBeast2PagedFor(TableType)(after));
|
|
153
|
+
assert.equal(stats.written, 1);
|
|
154
|
+
assert.equal(stats.carried, refs.length - 1);
|
|
155
|
+
assert.equal(reads.count, 0);
|
|
156
|
+
});
|
|
157
|
+
test("re-cuts O(1) segments for an Array edit, reading only the segments at its seams", async () => {
|
|
158
|
+
const rows = Array.from({ length: 20_000 }, (_, i) => row(i));
|
|
159
|
+
const blob = encodeBeast2PagedFor(RowsType)(rows);
|
|
160
|
+
const pages = openBeast2PagesFor(RowsType)(blob);
|
|
161
|
+
const reads = { count: 0 };
|
|
162
|
+
const refs = refsOf(RowsType, blob, reads);
|
|
163
|
+
let i = 0;
|
|
164
|
+
let start = 0;
|
|
165
|
+
while (start + pages.counts[i] <= 9_000)
|
|
166
|
+
start += pages.counts[i++];
|
|
167
|
+
const elements = [...pages.segment(i)];
|
|
168
|
+
elements[9_000 - start] = { id: 9000n, name: "edited" };
|
|
169
|
+
const { blob: out, stats } = await recut(RowsType, [
|
|
170
|
+
{ segments: refs.slice(0, i) },
|
|
171
|
+
{ elements },
|
|
172
|
+
{ segments: refs.slice(i + 1) },
|
|
173
|
+
]);
|
|
174
|
+
const after = rows.slice();
|
|
175
|
+
after[9_000] = { id: 9000n, name: "edited" };
|
|
176
|
+
assert.deepEqual(out, encodeBeast2PagedFor(RowsType)(after));
|
|
177
|
+
assert.ok(stats.written <= 2, `${stats.written} segments written`);
|
|
178
|
+
assert.ok(reads.count <= 2, `${reads.count} segments read`);
|
|
179
|
+
});
|
|
180
|
+
test("writes no segment for an empty whole, under the Writer's header", async () => {
|
|
181
|
+
const { blob, stats } = await recut(TableType, [{ elements: [] }, { segments: [] }]);
|
|
182
|
+
assert.deepEqual(blob, encodeBeast2PagedFor(TableType)(new SortedMap(undefined, compareFor(StringType))));
|
|
183
|
+
assert.equal(stats.carried + stats.written, 0);
|
|
184
|
+
});
|
|
185
|
+
test("keeps the whole's order while written segments are framed on the pool", async () => {
|
|
186
|
+
const next = rng(0x9a11);
|
|
187
|
+
const items = Array.from({ length: 24_000 }, () => {
|
|
188
|
+
let s = "";
|
|
189
|
+
for (let k = 8 + (next() % 1400); k > 0; k--)
|
|
190
|
+
s += String.fromCharCode(97 + (next() % 26));
|
|
191
|
+
return s;
|
|
192
|
+
});
|
|
193
|
+
const type = ArrayType(StringType);
|
|
194
|
+
const tail = encodeBeast2PagedFor(type)(items.slice(12_000));
|
|
195
|
+
const { blob } = await recut(type, [{ elements: items.slice(0, 12_000) }, { segments: refsOf(type, tail) }], { parallel: true });
|
|
196
|
+
assert.deepEqual(blob, encodeBeast2PagedFor(type)(items));
|
|
197
|
+
});
|
|
198
|
+
test("refuses a piece whose keys do not ascend", async () => {
|
|
199
|
+
await assert.rejects(recut(TableType, [{ elements: [[key(2), row(2)], [key(1), row(1)]] }]), /must ascend strictly in East order/);
|
|
200
|
+
await assert.rejects(recut(NamesType, [{ elements: [key(1), key(1)] }]), /must ascend strictly in East order/);
|
|
201
|
+
});
|
|
202
|
+
test("refuses a segment that is not the one its reference describes", async () => {
|
|
203
|
+
const blob = encodeBeast2PagedFor(TableType)(cases[0].valueOf(cases[0].elements.slice(0, 5_000)));
|
|
204
|
+
const refs = refsOf(TableType, blob);
|
|
205
|
+
const opening = { elements: [[key(0), row(0)]] };
|
|
206
|
+
await assert.rejects(recut(TableType, [opening, { segments: [{ ...refs[1], count: refs[1].count + 1 }] }]), /reference says/);
|
|
207
|
+
await assert.rejects(recut(TableType, [opening, { segments: [{ ...refs[1], count: 0 }] }]), /at least one element/);
|
|
208
|
+
const names = encodeBeast2PagedFor(NamesType)(new SortedSet([key(1)], compareFor(StringType)));
|
|
209
|
+
await assert.rejects(recut(TableType, [opening, { segments: refsOf(NamesType, names) }]), /recut: a segment holds/);
|
|
210
|
+
});
|
|
211
|
+
test("refuses a type that is not a collection", () => {
|
|
212
|
+
assert.throws(() => recutBeast2For(IntegerType), /Array, Set or Dict/);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=recut.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recut.spec.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/recut.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
+
* Sorted runs — a Set's or Dict's elements in any order in, sorted canonical
|
|
7
|
+
* collections out.
|
|
8
|
+
*
|
|
9
|
+
* A producer that cannot hand its keys over in order — a re-key, an index built
|
|
10
|
+
* in another order than its source's — gives them to a
|
|
11
|
+
* {@link Beast2RunSorter}. It holds them encoded, with aliasing scoped to each
|
|
12
|
+
* element as every writer scopes it, and once it holds {@link RUN_MAX_COUNT} of
|
|
13
|
+
* them or {@link RUN_MAX_BYTES} of their bytes it sorts them, folds the keys
|
|
14
|
+
* that repeat, and writes them out as one run: the canonical blob of the run's
|
|
15
|
+
* value, cut by the content-defined rule like every other, or that value as a
|
|
16
|
+
* manifest directory. The runs are merged afterwards (`mergeBeast2For`), a key
|
|
17
|
+
* range at a time if need be, and a key that repeats across runs folds there,
|
|
18
|
+
* in run order.
|
|
19
|
+
*
|
|
20
|
+
* The caps are platform constants, not settings. Where a run closes decides how
|
|
21
|
+
* a repeated key's values group before they fold, which for a fold over floats
|
|
22
|
+
* decides the output's bytes; and both caps count what every runtime measures
|
|
23
|
+
* alike — elements, and the bytes of their canonical encoding — so every
|
|
24
|
+
* runtime closes a run at the same element.
|
|
25
|
+
*/
|
|
26
|
+
import { type EastTypeValue } from "../../../type_of_type.js";
|
|
27
|
+
import type { EastType } from "../../../types.js";
|
|
28
|
+
import { type Beast2ElementOf, type Beast2ElementWriterOptions } from "./stream.js";
|
|
29
|
+
import { type Beast2ManifestSink } from "./manifest-writer.js";
|
|
30
|
+
/** Elements a run holds before it closes (pairs, for a Dict). */
|
|
31
|
+
export declare const RUN_MAX_COUNT = 131072;
|
|
32
|
+
/** Bytes of canonical element encoding — keys and values both — a run holds
|
|
33
|
+
* before it closes. */
|
|
34
|
+
export declare const RUN_MAX_BYTES: number;
|
|
35
|
+
/** Where a {@link Beast2RunSorter} writes one run. */
|
|
36
|
+
export interface Beast2RunSink {
|
|
37
|
+
/**
|
|
38
|
+
* Receives the run's bytes, in order.
|
|
39
|
+
*
|
|
40
|
+
* @param bytes - the next bytes of the run's blob
|
|
41
|
+
*/
|
|
42
|
+
write(bytes: Uint8Array): void;
|
|
43
|
+
/** Called after the run's last bytes: the blob is complete. */
|
|
44
|
+
close(): void;
|
|
45
|
+
}
|
|
46
|
+
/** Options accepted by {@link Beast2RunSorter}. */
|
|
47
|
+
export type Beast2RunSorterOptions = Omit<Beast2ElementWriterOptions, "headerPrefix"> & {
|
|
48
|
+
/**
|
|
49
|
+
* Dict roots: how a key added more than once folds, `acc = merge(key, acc,
|
|
50
|
+
* value)`, in the order its values were added. Without it such a key is
|
|
51
|
+
* refused. A key's values fold within each run before the runs merge, so the
|
|
52
|
+
* function must be associative.
|
|
53
|
+
*/
|
|
54
|
+
merge?: (key: any, acc: any, value: any) => any;
|
|
55
|
+
/** Set roots: an element added more than once is kept once. Without it such
|
|
56
|
+
* an element is refused. */
|
|
57
|
+
union?: boolean;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Sorts a Set's or Dict's elements, given in any order, into sorted canonical
|
|
61
|
+
* runs.
|
|
62
|
+
*
|
|
63
|
+
* Each element is encoded as it is added, so what the sorter holds is bounded
|
|
64
|
+
* by bytes rather than by what the elements decode to. When a run closes its
|
|
65
|
+
* elements sort by key, stably — so a key's values stay in the order they were
|
|
66
|
+
* added — and each run is written through {@link Beast2ElementWriter}, as the
|
|
67
|
+
* bytes a writer of the run's value writes, or through
|
|
68
|
+
* {@link Beast2ManifestWriter} as the manifest directory of that value, when
|
|
69
|
+
* the sink a run opens is a {@link Beast2ManifestSink}. Runs are numbered from
|
|
70
|
+
* zero in the order they close; a key that repeats across runs is the merge's
|
|
71
|
+
* to fold.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* const type = DictType(StringType, IntegerType);
|
|
76
|
+
* const runs: Uint8Array[][] = [];
|
|
77
|
+
* const sorter = new Beast2RunSorter(type, () => {
|
|
78
|
+
* const chunks: Uint8Array[] = [];
|
|
79
|
+
* runs.push(chunks);
|
|
80
|
+
* return { write: (bytes) => chunks.push(bytes), close: () => {} };
|
|
81
|
+
* }, { merge: (_key, acc, value) => acc + value });
|
|
82
|
+
* sorter.add(["b", 1n]);
|
|
83
|
+
* sorter.add(["a", 2n]);
|
|
84
|
+
* sorter.add(["b", 3n]);
|
|
85
|
+
* sorter.finish();
|
|
86
|
+
* decodeBeast2For(type)(Buffer.concat(runs[0]!)); // Map { "a" => 2n, "b" => 4n }
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare class Beast2RunSorter<T extends EastType = EastType> {
|
|
90
|
+
private readonly typeValue;
|
|
91
|
+
private readonly kind;
|
|
92
|
+
private readonly openRun;
|
|
93
|
+
private readonly writerOptions;
|
|
94
|
+
private readonly merge;
|
|
95
|
+
private readonly union;
|
|
96
|
+
private readonly cmp;
|
|
97
|
+
private readonly printKey;
|
|
98
|
+
private readonly ctx;
|
|
99
|
+
/** Encodes one element at the end of the writer and returns the length of
|
|
100
|
+
* its key: a Set element's whole length, a Dict pair's key. */
|
|
101
|
+
private readonly encodeElement;
|
|
102
|
+
private readonly encodeValue;
|
|
103
|
+
private readonly decodeValue;
|
|
104
|
+
/** The open run's elements, back to back. */
|
|
105
|
+
private readonly buffer;
|
|
106
|
+
/** A folded element, while it is assembled. */
|
|
107
|
+
private readonly folded;
|
|
108
|
+
private starts;
|
|
109
|
+
private keyLengths;
|
|
110
|
+
private keys;
|
|
111
|
+
private written;
|
|
112
|
+
private finished;
|
|
113
|
+
/**
|
|
114
|
+
* @param type - the collection type the runs hold (Set or Dict)
|
|
115
|
+
* @param openRun - opens the sink for run `run`: a blob's bytes, or a
|
|
116
|
+
* manifest directory's objects and manifest
|
|
117
|
+
* @param options - the fold, and the runs' codec, source map and parallel
|
|
118
|
+
* framing
|
|
119
|
+
* @throws {TypeError} When `type` is not a Set or Dict type, or the fold does
|
|
120
|
+
* not fit it: a merge function folds a Dict, union a Set.
|
|
121
|
+
*/
|
|
122
|
+
constructor(type: T | EastTypeValue, openRun: (run: number) => Beast2RunSink | Beast2ManifestSink, options?: Beast2RunSorterOptions);
|
|
123
|
+
/** Runs written so far. The open run is not among them until a cap or
|
|
124
|
+
* {@link finish} closes it. */
|
|
125
|
+
get runs(): number;
|
|
126
|
+
/**
|
|
127
|
+
* Encodes one element and adds it to the open run, which is written out once
|
|
128
|
+
* it reaches {@link RUN_MAX_COUNT} elements or {@link RUN_MAX_BYTES}.
|
|
129
|
+
*
|
|
130
|
+
* @param element - a Set element, or a Dict's `[key, value]` pair
|
|
131
|
+
* @throws {Error} When called after {@link finish}; when the element cannot
|
|
132
|
+
* be encoded, which leaves the sorter as it was; or, as the run it closes is
|
|
133
|
+
* written, when a key repeats without a fold or the merge function throws.
|
|
134
|
+
*/
|
|
135
|
+
add(element: Beast2ElementOf<T>): void;
|
|
136
|
+
/**
|
|
137
|
+
* Writes the open run, if it holds anything. Idempotent.
|
|
138
|
+
*
|
|
139
|
+
* @throws {Error} When a key of the open run repeats without a fold, or the
|
|
140
|
+
* merge function throws.
|
|
141
|
+
*/
|
|
142
|
+
finish(): void;
|
|
143
|
+
/** Sorts the open run, folds its repeated keys, and writes it. A failure
|
|
144
|
+
* leaves the run incomplete: a blob sink without its `close`, a manifest
|
|
145
|
+
* directory without its manifest. */
|
|
146
|
+
private writeRun;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/runs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,OAAO,EAAuB,KAAK,eAAe,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAGrF,iEAAiE;AACjE,eAAO,MAAM,aAAa,SAAU,CAAC;AAErC;wBACwB;AACxB,eAAO,MAAM,aAAa,QAAmB,CAAC;AAE9C,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;CACf;AAED,mDAAmD;AACnD,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,0BAA0B,EAAE,cAAc,CAAC,GAAG;IACtF;;;;;OAKG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAChD;iCAC6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsD;IAC9E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmD;IACzE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAqC;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC;oEACgE;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqD;IACnF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgF;IAC5G,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IACtE,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;OAQG;gBACS,IAAI,EAAE,CAAC,GAAG,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,aAAa,GAAG,kBAAkB,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAoDnI;oCACgC;IAChC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAsBtC;;;;;OAKG;IACH,MAAM,IAAI,IAAI;IAMd;;0CAEsC;IACtC,OAAO,CAAC,QAAQ;CAiDjB"}
|