functionalscript 0.44.0 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fjs/asn.1/proof.f.d.mts +5 -0
- package/fjs/asn.1/proof.f.mjs +15 -3
- package/fjs/asserts/module.f.d.mts +14 -0
- package/fjs/asserts/module.f.mjs +20 -0
- package/fjs/asserts/proof.f.d.mts +3 -0
- package/fjs/asserts/proof.f.mjs +15 -1
- package/fjs/basen/base128/proof.f.d.mts +3 -1
- package/fjs/basen/base128/proof.f.mjs +3 -1
- package/fjs/basen/base64/module.f.mjs +7 -3
- package/fjs/basen/base64/proof.f.d.mts +3 -1
- package/fjs/basen/base64/proof.f.mjs +7 -4
- package/fjs/basen/cbase32/proof.f.d.mts +3 -1
- package/fjs/basen/cbase32/proof.f.mjs +3 -1
- package/fjs/bnf/data/proof.f.mjs +0 -1
- package/fjs/bnf/descent/module.f.d.mts +17 -2
- package/fjs/bnf/descent/module.f.mjs +118 -41
- package/fjs/bnf/descent/proof.f.d.mts +1 -0
- package/fjs/bnf/descent/proof.f.mjs +77 -1
- package/fjs/bnf/descent/types.d.ts +12 -4
- package/fjs/bnf/ll1/module.f.d.mts +28 -2
- package/fjs/bnf/ll1/module.f.mjs +180 -38
- package/fjs/bnf/ll1/proof.f.d.mts +2 -0
- package/fjs/bnf/ll1/proof.f.mjs +62 -1
- package/fjs/bnf/ll1/types.d.ts +14 -8
- package/fjs/bnf/module.f.d.mts +15 -6
- package/fjs/bnf/module.f.mjs +52 -11
- package/fjs/bnf/proof.f.d.mts +2 -0
- package/fjs/bnf/proof.f.mjs +79 -3
- package/fjs/bnf/token_symbol/module.f.d.mts +4 -3
- package/fjs/bnf/token_symbol/module.f.mjs +7 -6
- package/fjs/bnf/token_symbol/proof.f.mjs +5 -2
- package/fjs/bnf/token_symbol/types.d.ts +2 -2
- package/fjs/bnf/types.d.ts +10 -3
- package/fjs/cas/cli/proof.f.d.mts +3 -1
- package/fjs/cas/cli/proof.f.mjs +3 -1
- package/fjs/cas/evo/module.f.d.mts +7 -13
- package/fjs/cas/evo/module.f.mjs +103 -96
- package/fjs/cas/evo/proof.f.mjs +6 -3
- package/fjs/cas/module.f.mjs +96 -109
- package/fjs/ci/common/module.f.d.mts +1 -1
- package/fjs/ci/common/module.f.mjs +1 -0
- package/fjs/ci/config/module.f.d.mts +2 -2
- package/fjs/ci/config/module.f.mjs +2 -2
- package/fjs/ci/nix/proof.f.d.mts +2 -0
- package/fjs/ci/nix/proof.f.mjs +2 -2
- package/fjs/ci/proof.f.d.mts +4 -2
- package/fjs/ci/proof.f.mjs +4 -3
- package/fjs/cli/proof.f.d.mts +4 -2
- package/fjs/cli/proof.f.mjs +4 -2
- package/fjs/common/monoid/module.f.d.mts +70 -12
- package/fjs/common/monoid/module.f.mjs +177 -14
- package/fjs/common/monoid/proof.f.d.mts +12 -1
- package/fjs/common/monoid/proof.f.mjs +88 -4
- package/fjs/common/monoid/types.d.ts +23 -0
- package/fjs/crypto/secp/proof.f.d.mts +3 -1
- package/fjs/crypto/secp/proof.f.mjs +3 -1
- package/fjs/crypto/sha2/proof.f.d.mts +3 -1
- package/fjs/crypto/sha2/proof.f.mjs +3 -1
- package/fjs/crypto/vdf/module.f.d.mts +23 -4
- package/fjs/crypto/vdf/module.f.mjs +6 -4
- package/fjs/dev/module.f.d.mts +5 -2
- package/fjs/dev/module.f.mjs +5 -4
- package/fjs/dev/package_json/module.f.d.mts +7 -0
- package/fjs/dev/package_json/module.f.mjs +10 -7
- package/fjs/dev/update/module.f.d.mts +3 -0
- package/fjs/dev/update/module.f.mjs +3 -2
- package/fjs/dev/update/proof.f.d.mts +3 -0
- package/fjs/dev/update/proof.f.mjs +1 -2
- package/fjs/djs/parser/module.f.d.mts +3 -0
- package/fjs/djs/parser/module.f.mjs +18 -0
- package/fjs/djs/parser/proof.f.d.mts +3 -0
- package/fjs/djs/parser/proof.f.mjs +13 -1
- package/fjs/djs/proof.f.d.mts +3 -0
- package/fjs/djs/proof.f.mjs +4 -1
- package/fjs/djs/serializer/module.f.mjs +5 -4
- package/fjs/djs/tokenizer/module.f.mjs +21 -13
- package/fjs/djs/tokenizer/proof.f.d.mts +3 -0
- package/fjs/djs/tokenizer/proof.f.mjs +14 -2
- package/fjs/djs/transpiler/module.f.d.mts +1 -12
- package/fjs/djs/transpiler/module.f.mjs +1 -20
- package/fjs/djs/transpiler/types.d.ts +25 -0
- package/fjs/effects/eff/module.f.d.mts +10 -0
- package/fjs/effects/eff/module.f.mjs +4 -2
- package/fjs/effects/eff/proof.f.d.mts +3 -0
- package/fjs/effects/eff/proof.f.mjs +4 -1
- package/fjs/effects/list/module.f.d.mts +10 -2
- package/fjs/effects/list/module.f.mjs +4 -2
- package/fjs/effects/memory/module.f.d.mts +4 -2
- package/fjs/effects/memory/module.f.mjs +4 -3
- package/fjs/effects/memory/proof.f.d.mts +4 -0
- package/fjs/effects/memory/proof.f.mjs +5 -2
- package/fjs/effects/mock/module.f.d.mts +10 -2
- package/fjs/effects/mock/module.f.mjs +4 -2
- package/fjs/effects/module.d.mts +8 -0
- package/fjs/effects/module.f.d.mts +6 -4
- package/fjs/effects/module.f.mjs +6 -5
- package/fjs/effects/module.mjs +9 -1
- package/fjs/effects/node/memory/module.d.mts +3 -0
- package/fjs/effects/node/memory/module.mjs +3 -2
- package/fjs/effects/node/memory/proof.d.mts +2 -0
- package/fjs/effects/node/memory/proof.mjs +2 -1
- package/fjs/effects/node/module.d.mts +5 -0
- package/fjs/effects/node/module.f.d.mts +17 -12
- package/fjs/effects/node/module.f.mjs +6 -12
- package/fjs/effects/node/module.mjs +5 -17
- package/fjs/effects/node/virtual/module.f.d.mts +6 -3
- package/fjs/effects/node/virtual/module.f.mjs +6 -5
- package/fjs/effects/node/virtual/proof.f.d.mts +4 -1
- package/fjs/effects/node/virtual/proof.f.mjs +13 -1
- package/fjs/effects/proof.f.d.mts +3 -0
- package/fjs/effects/proof.f.mjs +4 -1
- package/fjs/emergent_testing/all.test.d.mts +8 -0
- package/fjs/emergent_testing/all.test.mjs +14 -0
- package/fjs/emergent_testing/module.f.d.mts +6 -1
- package/fjs/emergent_testing/module.f.mjs +40 -66
- package/fjs/emergent_testing/proof.f.mjs +5 -5
- package/fjs/fsc/bnf.f.d.mts +3 -0
- package/fjs/fsc/bnf.f.mjs +4 -1
- package/fjs/fsc/json.f.d.mts +3 -0
- package/fjs/fsc/json.f.mjs +4 -1
- package/fjs/fsc/module.f.d.mts +9 -0
- package/fjs/fsc/module.f.mjs +5 -3
- package/fjs/fsm/proof.f.d.mts +3 -0
- package/fjs/fsm/proof.f.mjs +4 -1
- package/fjs/js/tokenizer/module.f.d.mts +7 -0
- package/fjs/js/tokenizer/module.f.mjs +19 -55
- package/fjs/mcp/module.f.d.mts +36 -1
- package/fjs/mcp/module.f.mjs +9 -7
- package/fjs/mcp/proof.f.d.mts +11 -1
- package/fjs/mcp/proof.f.mjs +11 -18
- package/fjs/media/html/module.f.d.mts +12 -0
- package/fjs/media/html/module.f.mjs +6 -4
- package/fjs/media/html/proof.f.d.mts +3 -0
- package/fjs/media/html/proof.f.mjs +4 -1
- package/fjs/media/json/parser/module.f.d.mts +1 -1
- package/fjs/media/json/parser/module.f.mjs +25 -8
- package/fjs/media/json/parser/types.d.ts +5 -0
- package/fjs/media/json/rtti/proof.f.d.mts +3 -0
- package/fjs/media/json/rtti/proof.f.mjs +3 -3
- package/fjs/media/json/schema/module.f.d.mts +61 -27
- package/fjs/media/json/schema/module.f.mjs +228 -63
- package/fjs/media/json/schema/proof.f.d.mts +41 -0
- package/fjs/media/json/schema/proof.f.mjs +219 -7
- package/fjs/media/json/serializer/module.f.d.mts +13 -0
- package/fjs/media/json/serializer/module.f.mjs +7 -7
- package/fjs/media/json/tokenizer/module.f.d.mts +8 -0
- package/fjs/media/json/tokenizer/module.f.mjs +24 -5
- package/fjs/media/nix/module.f.d.mts +13 -0
- package/fjs/media/nix/module.f.mjs +4 -2
- package/fjs/media/nix/proof.f.d.mts +3 -0
- package/fjs/media/nix/proof.f.mjs +4 -1
- package/fjs/media/revision/module.f.d.mts +5 -0
- package/fjs/media/revision/module.f.mjs +8 -11
- package/fjs/media/revision/proof.f.d.mts +4 -0
- package/fjs/media/revision/proof.f.mjs +5 -2
- package/fjs/media/type/module.f.d.mts +28 -11
- package/fjs/media/type/module.f.mjs +69 -85
- package/fjs/media/type/proof.f.d.mts +16 -0
- package/fjs/media/type/proof.f.mjs +44 -4
- package/fjs/module.d.mts +5 -0
- package/fjs/module.f.d.mts +8 -0
- package/fjs/module.f.mjs +4 -2
- package/fjs/module.mjs +6 -0
- package/fjs/path/module.f.d.mts +8 -0
- package/fjs/path/module.f.mjs +4 -2
- package/fjs/proof.f.d.mts +4 -0
- package/fjs/proof.f.mjs +5 -2
- package/fjs/protocol/json_rpc/module.f.d.mts +1 -1
- package/fjs/protocol/json_rpc/module.f.mjs +7 -4
- package/fjs/protocol/json_rpc/proof.f.d.mts +6 -0
- package/fjs/protocol/json_rpc/proof.f.mjs +22 -1
- package/fjs/protocol/mcp/proof.f.d.mts +4 -0
- package/fjs/protocol/mcp/proof.f.mjs +47 -24
- package/fjs/protocol/mcp/stdio/module.f.d.mts +2 -4
- package/fjs/protocol/mcp/stdio/module.f.mjs +1 -8
- package/fjs/protocol/mcp/stdio/proof.f.d.mts +1 -1
- package/fjs/protocol/mcp/stdio/proof.f.mjs +1 -1
- package/fjs/protocol/mcp/stdio/types.d.ts +14 -0
- package/fjs/sul/id/module.f.d.mts +5 -0
- package/fjs/sul/id/module.f.mjs +5 -4
- package/fjs/sul/level/hash/module.f.d.mts +4 -1
- package/fjs/sul/level/hash/module.f.mjs +4 -3
- package/fjs/sul/level/hash/proof.f.d.mts +4 -0
- package/fjs/sul/level/hash/proof.f.mjs +5 -2
- package/fjs/sul/level/literal/module.f.d.mts +4 -1
- package/fjs/sul/level/literal/module.f.mjs +4 -3
- package/fjs/sul/level/literal/proof.f.d.mts +3 -0
- package/fjs/sul/level/literal/proof.f.mjs +4 -1
- package/fjs/sul/module.f.d.mts +5 -3
- package/fjs/sul/module.f.mjs +5 -4
- package/fjs/sul/proof.f.d.mts +4 -0
- package/fjs/sul/proof.f.mjs +5 -2
- package/fjs/text/ascii/module.f.d.mts +26 -0
- package/fjs/text/ascii/module.f.mjs +49 -1
- package/fjs/text/ascii/proof.f.d.mts +10 -0
- package/fjs/text/ascii/proof.f.mjs +33 -1
- package/fjs/text/code_point/module.f.d.mts +21 -3
- package/fjs/text/code_point/module.f.mjs +24 -8
- package/fjs/text/code_point/proof.f.d.mts +1 -0
- package/fjs/text/code_point/proof.f.mjs +28 -0
- package/fjs/text/module.f.d.mts +4 -2
- package/fjs/text/module.f.mjs +4 -3
- package/fjs/text/proof.f.d.mts +3 -0
- package/fjs/text/proof.f.mjs +4 -1
- package/fjs/text/sgr/module.f.d.mts +4 -1
- package/fjs/text/sgr/module.f.mjs +4 -3
- package/fjs/text/sgr/proof.f.d.mts +3 -0
- package/fjs/text/sgr/proof.f.mjs +4 -1
- package/fjs/text/utf16/module.f.d.mts +5 -1
- package/fjs/text/utf16/module.f.mjs +31 -33
- package/fjs/text/utf16/proof.f.d.mts +3 -1
- package/fjs/text/utf16/proof.f.mjs +18 -1
- package/fjs/text/utf8/module.f.d.mts +9 -5
- package/fjs/text/utf8/module.f.mjs +16 -18
- package/fjs/types/array/module.f.d.mts +2 -1
- package/fjs/types/array/module.f.mjs +2 -2
- package/fjs/types/bigfloat/module.f.d.mts +21 -1
- package/fjs/types/bigfloat/module.f.mjs +33 -7
- package/fjs/types/bigfloat/proof.f.d.mts +1 -0
- package/fjs/types/bigfloat/proof.f.mjs +46 -0
- package/fjs/types/bigint/module.f.d.mts +4 -0
- package/fjs/types/bigint/module.f.mjs +4 -3
- package/fjs/types/bit_vec/module.f.d.mts +10 -14
- package/fjs/types/bit_vec/module.f.mjs +61 -71
- package/fjs/types/bit_vec/proof.f.d.mts +6 -0
- package/fjs/types/bit_vec/proof.f.mjs +29 -3
- package/fjs/types/btree/find/module.f.d.mts +5 -1
- package/fjs/types/btree/find/module.f.mjs +5 -5
- package/fjs/types/btree/find/proof.f.d.mts +5 -1
- package/fjs/types/btree/find/proof.f.mjs +5 -3
- package/fjs/types/btree/module.f.d.mts +3 -0
- package/fjs/types/btree/module.f.mjs +3 -2
- package/fjs/types/btree/proof.f.d.mts +5 -1
- package/fjs/types/btree/proof.f.mjs +5 -3
- package/fjs/types/btree/remove/module.f.d.mts +11 -0
- package/fjs/types/btree/remove/module.f.mjs +9 -9
- package/fjs/types/btree/remove/proof.f.d.mts +3 -0
- package/fjs/types/btree/remove/proof.f.mjs +4 -1
- package/fjs/types/btree/set/module.f.d.mts +9 -0
- package/fjs/types/btree/set/module.f.mjs +5 -6
- package/fjs/types/btree/set/proof.f.d.mts +3 -0
- package/fjs/types/btree/set/proof.f.mjs +4 -1
- package/fjs/types/btree/types/module.f.d.mts +2 -1
- package/fjs/types/btree/types/module.f.mjs +2 -1
- package/fjs/types/byte_set/module.f.d.mts +10 -1
- package/fjs/types/byte_set/module.f.mjs +5 -3
- package/fjs/types/byte_set/proof.f.d.mts +3 -1
- package/fjs/types/byte_set/proof.f.mjs +3 -1
- package/fjs/types/function/compare/module.f.d.mts +3 -2
- package/fjs/types/function/compare/module.f.mjs +3 -2
- package/fjs/types/function/module.f.d.mts +8 -1
- package/fjs/types/function/module.f.mjs +8 -1
- package/fjs/types/function/operator/module.f.d.mts +2 -1
- package/fjs/types/function/operator/module.f.mjs +2 -2
- package/fjs/types/list/module.f.d.mts +9 -2
- package/fjs/types/list/module.f.mjs +5 -3
- package/fjs/types/list/proof.f.d.mts +4 -1
- package/fjs/types/list/proof.f.mjs +4 -2
- package/fjs/types/nibble_set/module.f.d.mts +2 -1
- package/fjs/types/nibble_set/module.f.mjs +2 -2
- package/fjs/types/nominal/module.f.d.mts +2 -1
- package/fjs/types/nominal/module.f.mjs +2 -1
- package/fjs/types/nullable/module.f.d.mts +8 -2
- package/fjs/types/nullable/module.f.mjs +4 -2
- package/fjs/types/number/module.f.d.mts +4 -0
- package/fjs/types/number/module.f.mjs +4 -3
- package/fjs/types/object/module.f.d.mts +14 -2
- package/fjs/types/object/module.f.mjs +15 -6
- package/fjs/types/object/proof.f.d.mts +5 -2
- package/fjs/types/object/proof.f.mjs +6 -3
- package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
- package/fjs/types/object/structurally_same/module.f.mjs +59 -0
- package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
- package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
- package/fjs/types/ordered_map/module.f.d.mts +5 -0
- package/fjs/types/ordered_map/module.f.mjs +5 -4
- package/fjs/types/ordered_map/proof.f.d.mts +3 -0
- package/fjs/types/ordered_map/proof.f.mjs +4 -1
- package/fjs/types/patricia_trie/module.f.d.mts +2 -1
- package/fjs/types/patricia_trie/module.f.mjs +2 -2
- package/fjs/types/patricia_trie/proof.f.d.mts +3 -0
- package/fjs/types/patricia_trie/proof.f.mjs +4 -1
- package/fjs/types/prime_field/module.f.d.mts +3 -1
- package/fjs/types/prime_field/module.f.mjs +3 -2
- package/fjs/types/range/module.f.d.mts +2 -1
- package/fjs/types/range/module.f.mjs +2 -2
- package/fjs/types/range_map/module.f.d.mts +6 -0
- package/fjs/types/range_map/module.f.mjs +6 -9
- package/fjs/types/range_map/proof.f.d.mts +5 -1
- package/fjs/types/range_map/proof.f.mjs +5 -3
- package/fjs/types/range_set/module.f.d.mts +5 -0
- package/fjs/types/range_set/module.f.mjs +1 -0
- package/fjs/types/range_set/proof.f.d.mts +3 -0
- package/fjs/types/range_set/proof.f.mjs +4 -1
- package/fjs/types/result/module.d.mts +8 -0
- package/fjs/types/result/module.f.d.mts +37 -7
- package/fjs/types/result/module.f.mjs +38 -8
- package/fjs/types/result/module.mjs +9 -1
- package/fjs/types/result/proof.f.d.mts +5 -0
- package/fjs/types/result/proof.f.mjs +22 -2
- package/fjs/types/rtti/common/module.f.d.mts +35 -2
- package/fjs/types/rtti/common/module.f.mjs +9 -7
- package/fjs/types/rtti/common/proof.f.d.mts +4 -0
- package/fjs/types/rtti/common/proof.f.mjs +5 -2
- package/fjs/types/rtti/data/module.f.d.mts +120 -0
- package/fjs/types/rtti/data/module.f.mjs +1030 -0
- package/fjs/types/rtti/data/proof.f.d.mts +75 -0
- package/fjs/types/rtti/data/proof.f.mjs +566 -0
- package/fjs/types/rtti/data/types.d.ts +83 -0
- package/fjs/types/rtti/module.f.d.mts +12 -5
- package/fjs/types/rtti/module.f.mjs +7 -5
- package/fjs/types/rtti/parse/module.f.d.mts +38 -0
- package/fjs/types/rtti/parse/module.f.mjs +9 -7
- package/fjs/types/rtti/parse/proof.f.mjs +18 -38
- package/fjs/types/rtti/proof.f.d.mts +3 -1
- package/fjs/types/rtti/proof.f.mjs +3 -1
- package/fjs/types/rtti/ts/module.f.d.mts +68 -9
- package/fjs/types/rtti/ts/module.f.mjs +262 -30
- package/fjs/types/rtti/ts/proof.f.d.mts +44 -0
- package/fjs/types/rtti/ts/proof.f.mjs +152 -4
- package/fjs/types/rtti/ts/types.d.ts +11 -0
- package/fjs/types/rtti/types.d.ts +40 -0
- package/fjs/types/rtti/validate/module.f.d.mts +36 -1
- package/fjs/types/rtti/validate/module.f.mjs +6 -4
- package/fjs/types/sorted_list/module.f.d.mts +4 -1
- package/fjs/types/sorted_list/module.f.mjs +21 -12
- package/fjs/types/sorted_list/proof.f.d.mts +3 -1
- package/fjs/types/sorted_list/proof.f.mjs +3 -1
- package/fjs/types/sorted_set/module.f.d.mts +31 -1
- package/fjs/types/sorted_set/module.f.mjs +4 -2
- package/fjs/types/sorted_set/proof.f.d.mts +3 -1
- package/fjs/types/sorted_set/proof.f.mjs +3 -1
- package/fjs/types/string/module.f.d.mts +4 -0
- package/fjs/types/string/module.f.mjs +4 -3
- package/fjs/types/string_set/module.f.d.mts +3 -1
- package/fjs/types/string_set/module.f.mjs +3 -2
- package/fjs/types/ts/module.f.d.mts +2 -0
- package/fjs/types/ts/module.f.mjs +3 -3
- package/fjs/types/ts/proof.f.d.mts +1 -0
- package/fjs/types/ts/proof.f.mjs +5 -0
- package/fjs/types/ts/types.d.ts +6 -1
- package/fjs/types/uint8array/module.f.d.mts +13 -2
- package/fjs/types/uint8array/module.f.mjs +20 -15
- package/fjs/website/module.f.d.mts +3 -0
- package/fjs/website/module.f.mjs +3 -2
- package/package.json +3 -3
- package/fjs/asn.1/types.js +0 -6
- package/fjs/asserts/types.js +0 -6
- package/fjs/basen/types.js +0 -6
- package/fjs/bnf/data/types.js +0 -6
- package/fjs/bnf/descent/types.js +0 -6
- package/fjs/bnf/ll1/types.js +0 -6
- package/fjs/bnf/token_symbol/types.js +0 -6
- package/fjs/bnf/types.js +0 -6
- package/fjs/cas/evo/types.js +0 -7
- package/fjs/cas/types.js +0 -6
- package/fjs/ci/common/types.js +0 -1
- package/fjs/ci/nix/types.js +0 -6
- package/fjs/ci/types.js +0 -6
- package/fjs/cli/types.js +0 -6
- package/fjs/common/monoid/types.js +0 -6
- package/fjs/crypto/pow/types.js +0 -6
- package/fjs/crypto/secp/types.js +0 -6
- package/fjs/crypto/sha2/types.js +0 -6
- package/fjs/crypto/sign/types.js +0 -6
- package/fjs/crypto/vdf/types.js +0 -6
- package/fjs/dev/types.js +0 -6
- package/fjs/djs/ast/types.js +0 -8
- package/fjs/djs/parser/types.js +0 -7
- package/fjs/djs/tokenizer/types.js +0 -7
- package/fjs/djs/types.js +0 -7
- package/fjs/effects/eff/types.js +0 -6
- package/fjs/effects/list/types.js +0 -6
- package/fjs/effects/memory/types.js +0 -6
- package/fjs/effects/mock/types.js +0 -6
- package/fjs/effects/node/types.js +0 -6
- package/fjs/effects/node/virtual/types.js +0 -7
- package/fjs/effects/types.js +0 -6
- package/fjs/emergent_testing/all.test.d.ts +0 -1
- package/fjs/emergent_testing/all.test.js +0 -5
- package/fjs/emergent_testing/scenarios/all.d.ts +0 -1
- package/fjs/emergent_testing/scenarios/all.js +0 -1
- package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
- package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
- package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
- package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
- package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
- package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
- package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
- package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
- package/fjs/emergent_testing/types.js +0 -6
- package/fjs/js/tokenizer/types.js +0 -6
- package/fjs/media/html/types.js +0 -6
- package/fjs/media/json/parser/types.js +0 -6
- package/fjs/media/json/tokenizer/types.js +0 -6
- package/fjs/media/json/types.js +0 -13
- package/fjs/media/nix/types.js +0 -6
- package/fjs/media/revision/types.js +0 -8
- package/fjs/media/type/types.js +0 -6
- package/fjs/media/types.js +0 -7
- package/fjs/nanvm/types.js +0 -11
- package/fjs/protocol/json_rpc/types.js +0 -8
- package/fjs/protocol/mcp/types.js +0 -8
- package/fjs/sul/id/types.js +0 -6
- package/fjs/sul/level/hash/types.js +0 -6
- package/fjs/sul/level/literal/types.js +0 -6
- package/fjs/sul/types.js +0 -6
- package/fjs/text/sgr/types.js +0 -6
- package/fjs/text/types.js +0 -6
- package/fjs/text/utf16/types.js +0 -6
- package/fjs/text/utf8/types.js +0 -6
- package/fjs/types/array/types.js +0 -6
- package/fjs/types/bigfloat/types.js +0 -6
- package/fjs/types/bigint/types.js +0 -6
- package/fjs/types/bit_vec/types.js +0 -6
- package/fjs/types/btree/find/types.js +0 -6
- package/fjs/types/btree/types/types.js +0 -6
- package/fjs/types/byte_set/types.js +0 -6
- package/fjs/types/function/compare/types.js +0 -6
- package/fjs/types/function/operator/types.js +0 -6
- package/fjs/types/function/types.js +0 -6
- package/fjs/types/list/types.js +0 -6
- package/fjs/types/nibble_set/types.js +0 -6
- package/fjs/types/nominal/types.js +0 -6
- package/fjs/types/nullable/types.js +0 -6
- package/fjs/types/object/types.js +0 -8
- package/fjs/types/option/types.js +0 -6
- package/fjs/types/ordered_map/types.js +0 -6
- package/fjs/types/patricia_trie/types.js +0 -6
- package/fjs/types/phantom/types.js +0 -11
- package/fjs/types/prime_field/types.js +0 -6
- package/fjs/types/range/types.js +0 -6
- package/fjs/types/range_map/types.js +0 -6
- package/fjs/types/result/types.js +0 -6
- package/fjs/types/rtti/common/types.js +0 -1
- package/fjs/types/rtti/parse/types.js +0 -1
- package/fjs/types/rtti/ts/types.js +0 -1
- package/fjs/types/rtti/types.js +0 -1
- package/fjs/types/rtti/validate/types.js +0 -1
- package/fjs/types/sorted_list/types.js +0 -6
- package/fjs/types/sorted_set/types.js +0 -6
- package/fjs/types/string_set/types.js +0 -6
- package/fjs/types/ts/types.js +0 -8
package/fjs/bnf/module.f.mjs
CHANGED
|
@@ -31,12 +31,52 @@ const offset = 24
|
|
|
31
31
|
|
|
32
32
|
const mask = (1 << offset) - 1
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* How many stored endpoint codes one 24-bit half holds: `2 ** 24`.
|
|
36
|
+
*/
|
|
37
|
+
const terminalSize = mask + 1
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The logical end-of-input symbol.
|
|
41
|
+
*
|
|
42
|
+
* `-1` is outside the non-negative physical-symbol domain, so no alphabet
|
|
43
|
+
* adapter can produce it and no ordinary symbol has to be reserved for it.
|
|
44
|
+
* Parser backends synthesize it exactly once, after the physical input.
|
|
45
|
+
*/
|
|
46
|
+
export const eofSymbol = -1
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* The largest ordinary symbol, `2 ** 24 - 2`: the semantic domain is
|
|
50
|
+
* `[-1] | [0, 2 ** 24 - 2]`, exactly `2 ** 24` terminals, one per stored code.
|
|
51
|
+
*/
|
|
52
|
+
const maxSymbol = mask - 1
|
|
53
|
+
|
|
54
|
+
const isValid = contains(eofSymbol, maxSymbol)
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Semantic terminal to its stored 24-bit endpoint code. Branchless: EOF wraps
|
|
58
|
+
* to `2 ** 24 - 1` (the top of the stored space) and every ordinary symbol
|
|
59
|
+
* keeps its own value as its code.
|
|
60
|
+
*
|
|
61
|
+
* @type {(value: number) => number}
|
|
62
|
+
*/
|
|
63
|
+
const encodeTerminal = value => (value + terminalSize) & mask
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The inverse of `encodeTerminal`, also branchless.
|
|
67
|
+
*
|
|
68
|
+
* Stored codes are an implementation representation, not semantic terminal
|
|
69
|
+
* ordering — `2 ** 24 - 1` is the largest code but the smallest terminal — so
|
|
70
|
+
* range operations that care about ordering must compare decoded values.
|
|
71
|
+
*
|
|
72
|
+
* @type {(value: number) => number}
|
|
73
|
+
*/
|
|
74
|
+
const decodeTerminal = value => ((value + 1) & mask) - 1
|
|
35
75
|
|
|
36
76
|
/** @type {(a: number, b: number) => TerminalRange} */
|
|
37
77
|
export const rangeEncode = (a, b) => {
|
|
38
78
|
assert(isValid(a) && isValid(b) && a <= b)
|
|
39
|
-
return Number((BigInt(a) << BigInt(offset)) | BigInt(b))
|
|
79
|
+
return Number((BigInt(encodeTerminal(a)) << BigInt(offset)) | BigInt(encodeTerminal(b)))
|
|
40
80
|
}
|
|
41
81
|
|
|
42
82
|
/**
|
|
@@ -47,20 +87,21 @@ export const rangeEncode = (a, b) => {
|
|
|
47
87
|
export const oneEncode = a => rangeEncode(a, a)
|
|
48
88
|
|
|
49
89
|
/**
|
|
50
|
-
* End-of-file marker:
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* real code point.
|
|
90
|
+
* End-of-file marker: the singleton range of {@link eofSymbol}. Deliberately
|
|
91
|
+
* outside the ordinary symbol domain — and so outside Unicode — so it can
|
|
92
|
+
* never collide with a real code point.
|
|
54
93
|
*
|
|
55
94
|
* @type {TerminalRange}
|
|
56
95
|
*/
|
|
57
|
-
export const eof = oneEncode(
|
|
96
|
+
export const eof = oneEncode(eofSymbol)
|
|
58
97
|
|
|
59
98
|
/**
|
|
60
|
-
*
|
|
99
|
+
* Every ordinary symbol packed into a single {@link TerminalRange}. EOF is not
|
|
100
|
+
* one of them, so complements over this range never include it.
|
|
101
|
+
*
|
|
61
102
|
* @type {TerminalRange}
|
|
62
103
|
*/
|
|
63
|
-
export const fullRange =
|
|
104
|
+
export const fullRange = rangeEncode(0, maxSymbol)
|
|
64
105
|
|
|
65
106
|
/**
|
|
66
107
|
* Unicode scalar value range packed into a single {@link TerminalRange}.
|
|
@@ -74,12 +115,12 @@ export const unicodeRange = 0x000000_10FFFF
|
|
|
74
115
|
export const unicodeMax = codePointListToString([0x10FFFF])
|
|
75
116
|
|
|
76
117
|
/**
|
|
77
|
-
* Decodes a packed range into `[start, end]` symbols.
|
|
118
|
+
* Decodes a packed range into `[start, end]` semantic symbols.
|
|
78
119
|
*
|
|
79
120
|
* @type {(r: number) => Tuple<2, number>}
|
|
80
121
|
*/
|
|
81
122
|
export const rangeDecode = r =>
|
|
82
|
-
[Number(BigInt(r) >> BigInt(offset)), r & mask]
|
|
123
|
+
[decodeTerminal(Number(BigInt(r) >> BigInt(offset))), decodeTerminal(r & mask)]
|
|
83
124
|
|
|
84
125
|
const mapOneEncode = map(oneEncode)
|
|
85
126
|
|
package/fjs/bnf/proof.f.d.mts
CHANGED
package/fjs/bnf/proof.f.mjs
CHANGED
|
@@ -4,8 +4,18 @@
|
|
|
4
4
|
* @import { Rule } from './types.ts'
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { assert, assertEq } from '../asserts/module.f.mjs'
|
|
8
7
|
import {
|
|
8
|
+
assert,
|
|
9
|
+
assertEq,
|
|
10
|
+
assertStructurallySame,
|
|
11
|
+
} from '../asserts/module.f.mjs'
|
|
12
|
+
import {
|
|
13
|
+
eof,
|
|
14
|
+
eofSymbol,
|
|
15
|
+
fullRange,
|
|
16
|
+
not,
|
|
17
|
+
notSet,
|
|
18
|
+
rangeDecode,
|
|
9
19
|
rangeEncode,
|
|
10
20
|
str,
|
|
11
21
|
set,
|
|
@@ -15,8 +25,14 @@ import {
|
|
|
15
25
|
oneEncode,
|
|
16
26
|
repeat1Plus,
|
|
17
27
|
} from './module.f.mjs'
|
|
28
|
+
import { definedValues } from '../types/object/module.f.mjs'
|
|
18
29
|
import { classic, deterministic } from './testlib.f.mjs'
|
|
19
30
|
|
|
31
|
+
// The last ordinary symbol, `2 ** 24 - 2`. Written out because the range codec
|
|
32
|
+
// is what these tests check: deriving it from the codec would move both sides
|
|
33
|
+
// of every assertion together.
|
|
34
|
+
const maxSymbol = 0xFFFFFE
|
|
35
|
+
|
|
20
36
|
export const proof = {
|
|
21
37
|
test: () => {
|
|
22
38
|
classic()
|
|
@@ -24,8 +40,14 @@ export const proof = {
|
|
|
24
40
|
},
|
|
25
41
|
throw: {
|
|
26
42
|
rangeEncodeInvalid: [
|
|
27
|
-
|
|
28
|
-
() => { rangeEncode(
|
|
43
|
+
// one below `eofSymbol`, the smallest semantic terminal
|
|
44
|
+
() => { rangeEncode(-2, 0) },
|
|
45
|
+
() => { rangeEncode(0, -2) },
|
|
46
|
+
// one above the largest ordinary symbol: `2 ** 24 - 1` is EOF's
|
|
47
|
+
// stored code, not a terminal of its own
|
|
48
|
+
() => { rangeEncode(0, maxSymbol + 1) },
|
|
49
|
+
// semantic ordering, so EOF is below every ordinary symbol
|
|
50
|
+
() => { rangeEncode(0, eofSymbol) },
|
|
29
51
|
() => { rangeEncode(5, 3) },
|
|
30
52
|
],
|
|
31
53
|
rangeInvalid: [
|
|
@@ -33,6 +55,60 @@ export const proof = {
|
|
|
33
55
|
() => { range('abc') },
|
|
34
56
|
],
|
|
35
57
|
},
|
|
58
|
+
terminal: [
|
|
59
|
+
() => {
|
|
60
|
+
// EOF is the singleton `[-1, -1]` and keeps the stored code
|
|
61
|
+
// `2 ** 24 - 1` at both endpoints.
|
|
62
|
+
assertEq(eof, 0xFFFFFF_FFFFFF)
|
|
63
|
+
const [a, b] = rangeDecode(eof)
|
|
64
|
+
assertEq(a, eofSymbol)
|
|
65
|
+
assertEq(b, eofSymbol)
|
|
66
|
+
},
|
|
67
|
+
() => {
|
|
68
|
+
// `fullRange` holds the ordinary symbols only.
|
|
69
|
+
const [a, b] = rangeDecode(fullRange)
|
|
70
|
+
assertEq(a, 0)
|
|
71
|
+
assertEq(b, maxSymbol)
|
|
72
|
+
},
|
|
73
|
+
() => {
|
|
74
|
+
// Round trips over the whole semantic domain: EOF, the ordinary
|
|
75
|
+
// minimum, an ordinary symbol, and the ordinary maximum.
|
|
76
|
+
for (const v of [eofSymbol, 0, 0x10FFFF, maxSymbol]) {
|
|
77
|
+
const [a, b] = rangeDecode(oneEncode(v))
|
|
78
|
+
assertEq(a, v)
|
|
79
|
+
assertEq(b, v)
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
() => {
|
|
83
|
+
// Ordinary symbols keep their own value as their stored code, so a
|
|
84
|
+
// packed literal still reads as its endpoints.
|
|
85
|
+
assertEq(oneEncode(0x20), 0x000020_000020)
|
|
86
|
+
const [a, b] = rangeDecode(0x000030_000039)
|
|
87
|
+
assertEq(a, 0x30)
|
|
88
|
+
assertEq(b, 0x39)
|
|
89
|
+
},
|
|
90
|
+
() => {
|
|
91
|
+
// A range may span EOF and ordinary symbols; the endpoints are
|
|
92
|
+
// ordered semantically, not by stored code.
|
|
93
|
+
const [a, b] = rangeDecode(rangeEncode(eofSymbol, maxSymbol))
|
|
94
|
+
assertEq(a, eofSymbol)
|
|
95
|
+
assertEq(b, maxSymbol)
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
complement: [
|
|
99
|
+
() => {
|
|
100
|
+
// The complement of nothing over `fullRange` is `fullRange`: EOF is
|
|
101
|
+
// not an ordinary symbol, so no complement can produce it.
|
|
102
|
+
const r = definedValues(not({}))
|
|
103
|
+
assertEq(r.length, 1)
|
|
104
|
+
assertEq(r[0], fullRange)
|
|
105
|
+
},
|
|
106
|
+
() => {
|
|
107
|
+
const r = definedValues(notSet('a'))
|
|
108
|
+
const decoded = r.map(rangeDecode)
|
|
109
|
+
assertStructurallySame(decoded, [[0, 0x60], [0x62, maxSymbol]])
|
|
110
|
+
},
|
|
111
|
+
],
|
|
36
112
|
str: [
|
|
37
113
|
() => {
|
|
38
114
|
const result = str('a')
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* A parser built on top of a tokenizer consumes one input symbol per token, so
|
|
5
5
|
* multi-character operators (`>>>=`) and keywords (`instanceof`) each need a
|
|
6
6
|
* symbol of their own. Names are registered as one fixed alphabet and get a
|
|
7
|
-
* symbol from their position in it, above the Unicode range and
|
|
7
|
+
* symbol from their position in it, above the Unicode range and up to the last
|
|
8
|
+
* ordinary symbol.
|
|
8
9
|
*
|
|
9
10
|
* See `./types.ts` for the `Encoding<T>` type-level API.
|
|
10
11
|
*
|
|
@@ -14,8 +15,8 @@
|
|
|
14
15
|
*/
|
|
15
16
|
import type { Encoding } from './types.ts';
|
|
16
17
|
/**
|
|
17
|
-
* How many names one encoding holds: every symbol from {@link start} up to
|
|
18
|
-
*
|
|
18
|
+
* How many names one encoding holds: every symbol from {@link start} up to and
|
|
19
|
+
* including the last ordinary symbol (`0xFFFFFE`, the top of `fullRange`).
|
|
19
20
|
*
|
|
20
21
|
* @type {number}
|
|
21
22
|
*/
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
* A parser built on top of a tokenizer consumes one input symbol per token, so
|
|
5
5
|
* multi-character operators (`>>>=`) and keywords (`instanceof`) each need a
|
|
6
6
|
* symbol of their own. Names are registered as one fixed alphabet and get a
|
|
7
|
-
* symbol from their position in it, above the Unicode range and
|
|
7
|
+
* symbol from their position in it, above the Unicode range and up to the last
|
|
8
|
+
* ordinary symbol.
|
|
8
9
|
*
|
|
9
10
|
* See `./types.ts` for the `Encoding<T>` type-level API.
|
|
10
11
|
*
|
|
@@ -15,11 +16,11 @@
|
|
|
15
16
|
|
|
16
17
|
import { assert } from '../../asserts/module.f.mjs'
|
|
17
18
|
import { fromUndefined } from '../../types/nullable/module.f.mjs'
|
|
18
|
-
import {
|
|
19
|
+
import { fullRange, rangeDecode, unicodeRange } from '../module.f.mjs'
|
|
19
20
|
|
|
20
21
|
const [, unicodeLast] = rangeDecode(unicodeRange)
|
|
21
22
|
|
|
22
|
-
const [
|
|
23
|
+
const [, lastOrdinary] = rangeDecode(fullRange)
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* The symbol of the first registered name: `0x110000`, one past the last
|
|
@@ -29,12 +30,12 @@ const [eofSymbol] = rangeDecode(eof)
|
|
|
29
30
|
const start = unicodeLast + 1
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
|
-
* How many names one encoding holds: every symbol from {@link start} up to
|
|
33
|
-
*
|
|
33
|
+
* How many names one encoding holds: every symbol from {@link start} up to and
|
|
34
|
+
* including the last ordinary symbol (`0xFFFFFE`, the top of `fullRange`).
|
|
34
35
|
*
|
|
35
36
|
* @type {number}
|
|
36
37
|
*/
|
|
37
|
-
export const capacity =
|
|
38
|
+
export const capacity = lastOrdinary - start + 1
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* Builds an encoding over the complete list of token names.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertEq } from '../../asserts/module.f.mjs'
|
|
2
|
+
import { eofSymbol } from '../module.f.mjs'
|
|
2
3
|
import { capacity, encoding } from './module.f.mjs'
|
|
3
4
|
|
|
4
5
|
const names = /** @type {const} */ (['>>', '>>>=', 'instanceof'])
|
|
@@ -17,10 +18,12 @@ export const proof = {
|
|
|
17
18
|
},
|
|
18
19
|
() => {
|
|
19
20
|
const { decode } = encoding(names)
|
|
20
|
-
// past the end of the alphabet, a code point,
|
|
21
|
+
// past the end of the alphabet, a code point, the last ordinary
|
|
22
|
+
// symbol, and `eof`
|
|
21
23
|
assertEq(decode(0x110003), null)
|
|
22
24
|
assertEq(decode(0x10FFFF), null)
|
|
23
|
-
assertEq(decode(
|
|
25
|
+
assertEq(decode(0xFFFFFE), null)
|
|
26
|
+
assertEq(decode(eofSymbol), null)
|
|
24
27
|
},
|
|
25
28
|
],
|
|
26
29
|
roundTrip: () => {
|
|
@@ -20,8 +20,8 @@ export type Encoding<T extends string> = {
|
|
|
20
20
|
readonly encode: (name: T) => number;
|
|
21
21
|
/**
|
|
22
22
|
* The name a symbol stands for, or `null` when the symbol belongs to no
|
|
23
|
-
* registered name — a code point, `eof
|
|
24
|
-
* alphabet.
|
|
23
|
+
* registered name — a code point, the `eof` symbol, or a symbol past the
|
|
24
|
+
* end of the alphabet.
|
|
25
25
|
*/
|
|
26
26
|
readonly decode: (symbol: number) => Nullable<T>;
|
|
27
27
|
};
|
package/fjs/bnf/types.d.ts
CHANGED
|
@@ -5,11 +5,18 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { StringMap } from '../types/object/types.ts';
|
|
7
7
|
/**
|
|
8
|
-
* A range of symbols. Two 24-bit
|
|
8
|
+
* A range of symbols. Two 24-bit endpoint codes are stored in one JS number
|
|
9
|
+
* (48 bits).
|
|
9
10
|
*
|
|
10
11
|
* For example: 0xBBBBBB_EEEEEE
|
|
11
|
-
* - 0xBBBBBB is the first
|
|
12
|
-
* - 0xEEEEEE is the last
|
|
12
|
+
* - 0xBBBBBB is the first endpoint's stored code (24 bits)
|
|
13
|
+
* - 0xEEEEEE is the last endpoint's stored code (24 bits)
|
|
14
|
+
*
|
|
15
|
+
* A stored code is not the semantic terminal value: the semantic domain is
|
|
16
|
+
* `[-1] | [0, 2 ** 24 - 2]` — EOF plus every ordinary symbol — and EOF's code
|
|
17
|
+
* is `0xFFFFFF`, the top of the stored space. `rangeEncode` / `rangeDecode` in
|
|
18
|
+
* `./module.f.mjs` convert between the two, and everything that compares
|
|
19
|
+
* terminals compares decoded values.
|
|
13
20
|
*
|
|
14
21
|
* 24 bits per half, not 26 (the most `float64`'s 52-bit safe-integer mantissa
|
|
15
22
|
* could fit two of): 24 is divisible by 4, so each half is exactly 6 hex
|
package/fjs/cas/cli/proof.f.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { NodeProgramOptions } from '../../effects/node/types.ts'
|
|
3
|
+
*/
|
|
2
4
|
|
|
3
5
|
import { commands } from './module.f.mjs'
|
|
4
6
|
import { computeSync, sha256 } from '../../crypto/sha2/module.f.mjs'
|
|
@@ -111,19 +111,13 @@ export declare const syncRevision: (cacheKey: Key<Cache>) => (hash: Vec) => (val
|
|
|
111
111
|
/**
|
|
112
112
|
* Adds a new revision to `cas` and folds it into the cache at `cacheKey`.
|
|
113
113
|
*
|
|
114
|
-
* Steps: resolve and validate every parent ({@link resolveParents}),
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* own field types), encode and write it to `cas`, then fold the new revision
|
|
122
|
-
* into the cache. Every failure — an invalid or missing parent, a
|
|
123
|
-
* cross-subject parent, an unresolvable subject or snapshot, an invalid
|
|
124
|
-
* revision, a blob too large to encode, or a store write failure — is
|
|
125
|
-
* reported as `error(message)` rather than thrown, so a caller (e.g. an MCP
|
|
126
|
-
* tool handler) can surface it without a `throw`/`catch`.
|
|
114
|
+
* Steps: resolve and validate every parent ({@link resolveParents}), derive
|
|
115
|
+
* the revision to store from them ({@link buildRevision}), then encode it,
|
|
116
|
+
* write it to `cas`, and fold it into the cache. Every failure — an invalid
|
|
117
|
+
* or missing parent, a cross-subject parent, an unresolvable subject or
|
|
118
|
+
* snapshot, an invalid revision, a blob too large to encode, or a store write
|
|
119
|
+
* failure — is reported as `error(message)` rather than thrown, so a caller
|
|
120
|
+
* (e.g. an MCP tool handler) can surface it without a `throw`/`catch`.
|
|
127
121
|
*
|
|
128
122
|
* `input.generation` is ignored: it exists on {@link RevisionData} only so a
|
|
129
123
|
* value read back by {@link readRevision} round-trips into `add` unchanged,
|