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
|
@@ -20,34 +20,23 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*
|
|
22
22
|
* @module
|
|
23
|
+
*
|
|
24
|
+
* @import { Reduce as BigintReduce } from '../bigint/types.ts'
|
|
25
|
+
* @import { Fold } from '../function/operator/types.ts'
|
|
26
|
+
* @import { List, Thunk } from '../list/types.ts'
|
|
27
|
+
* @import { Absorbing } from '../../common/monoid/types.ts'
|
|
28
|
+
* @import { Sign } from '../function/compare/types.ts'
|
|
29
|
+
* @import { Nullable } from '../nullable/types.ts'
|
|
30
|
+
* @import { BitOrder, PopFront, Reduce, Unpacked, Vec, _NormOp, _UnpackConcat, } from './types.ts'
|
|
23
31
|
*/
|
|
24
32
|
|
|
25
33
|
import { bitLength, divUp, mask, maxLength, xor } from '../bigint/module.f.mjs'
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
import { flip, identity } from '../function/module.f.mjs'
|
|
29
|
-
|
|
30
|
-
/** @import { Fold } from '../function/operator/types.ts' */
|
|
31
|
-
|
|
32
|
-
import { map, tryFold } from '../list/module.f.mjs'
|
|
33
|
-
/** @import { Accumulator, List, Thunk } from '../list/types.ts' */
|
|
34
|
-
|
|
34
|
+
import { compose, flip, identity } from '../function/module.f.mjs'
|
|
35
|
+
import { map } from '../list/module.f.mjs'
|
|
35
36
|
import { asBase, asNominal } from '../nominal/module.f.mjs'
|
|
36
|
-
|
|
37
|
-
import { repeat as mRepeat } from '../../common/monoid/module.f.mjs'
|
|
38
|
-
|
|
37
|
+
import { foldAbsorbing, repeat as mRepeat } from '../../common/monoid/module.f.mjs'
|
|
39
38
|
import { cmp, max, min } from '../function/compare/module.f.mjs'
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
import { mapUnwrap } from '../nullable/module.f.mjs'
|
|
43
|
-
/** @import { Nullable } from '../nullable/types.ts' */
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @import {
|
|
47
|
-
* BitOrder, PopFront, Reduce, Unpacked, Vec,
|
|
48
|
-
* _NormOp, _UnpackConcat,
|
|
49
|
-
* } from './types.ts'
|
|
50
|
-
*/
|
|
39
|
+
import { map as nullableMap, mapUnwrap } from '../nullable/module.f.mjs'
|
|
51
40
|
|
|
52
41
|
/**
|
|
53
42
|
* Maximum length of a bit vector in bits (1_048_576 = 0x10_0000).
|
|
@@ -195,55 +184,53 @@ const op = norm => op => ap => bp => {
|
|
|
195
184
|
const unpackEmpty = /** @type {const} */{ length: 0n, uint: 0n }
|
|
196
185
|
|
|
197
186
|
/**
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
187
|
+
* Concatenation as a monoid over `Nullable<Unpacked>`, where `null` means "the
|
|
188
|
+
* concatenation is longer than `maxLength`" and is an **absorbing** element:
|
|
189
|
+
* combining it with anything is `null` again. The identity is the empty vector.
|
|
190
|
+
*
|
|
191
|
+
* This is a lawful monoid, so `monoid.fold` may re-associate it freely. Length
|
|
192
|
+
* is additive and non-negative, so any partial combine is at most the total: a
|
|
193
|
+
* partial can only overflow when the total does, and the top-level combine
|
|
194
|
+
* always sees the full total. The result is therefore `null` **iff** the total
|
|
195
|
+
* length exceeds `maxLength`, whatever the grouping.
|
|
196
|
+
*
|
|
197
|
+
* The cap is checked on the operands' lengths rather than on the concatenated
|
|
198
|
+
* result because the result is what must not be built: `maxLength` is the
|
|
199
|
+
* smallest `bigint` size supported across FunctionalScript's runtimes. The two
|
|
200
|
+
* lengths are exact and additive — this is the length, not an estimate of it
|
|
201
|
+
* (AGENTS.md §5.6).
|
|
202
|
+
*
|
|
203
|
+
* Being absorbing is also what keeps the fold's walk bounded: `foldAbsorbing`
|
|
204
|
+
* stops at the first merge that overflows instead of reading the rest of a list
|
|
205
|
+
* whose answer is already `null`. `List<T>` includes `Thunk<T>`, so that is the
|
|
206
|
+
* difference between answering and never returning on an unbounded lazy list —
|
|
207
|
+
* and at `maxLength` = 128 KiB, overflow is an ordinary outcome for a stream,
|
|
208
|
+
* not an exotic one. Since a single vector is never `null`, only a merge can
|
|
209
|
+
* reach the absorbing element, so the stop lags the element that crossed the cap
|
|
210
|
+
* by at most one doubling of the run size (measured: 65 536 elements read for a
|
|
211
|
+
* cap crossed at 32 769, and 4 for a cap crossed at 3).
|
|
212
|
+
*
|
|
213
|
+
* @type {(unpackConcat: _UnpackConcat) => Absorbing<Nullable<Unpacked>>}
|
|
202
214
|
*/
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
len += v.length
|
|
211
|
-
if (len > maxLength) { return null }
|
|
212
|
-
let i = 0
|
|
213
|
-
while (true) {
|
|
214
|
-
if (stack.length <= i) {
|
|
215
|
-
stack = [...stack, v]
|
|
216
|
-
break
|
|
217
|
-
}
|
|
218
|
-
const old = stack[i]
|
|
219
|
-
if (old.length === 0n) {
|
|
220
|
-
stack = stack.toSpliced(i, 1, v)
|
|
221
|
-
break
|
|
222
|
-
}
|
|
223
|
-
stack = stack.toSpliced(i, 1, unpackEmpty)
|
|
224
|
-
v = unpackConcat(old)(v)
|
|
225
|
-
i++
|
|
226
|
-
}
|
|
227
|
-
return { len, stack }
|
|
215
|
+
const tryUnpackConcat = unpackConcat => ({
|
|
216
|
+
monoid: {
|
|
217
|
+
identity: unpackEmpty,
|
|
218
|
+
operation: a => b =>
|
|
219
|
+
a === null || b === null || a.length + b.length > maxLength
|
|
220
|
+
? null
|
|
221
|
+
: unpackConcat(a)(b)
|
|
228
222
|
},
|
|
229
|
-
|
|
223
|
+
absorbing: null,
|
|
230
224
|
})
|
|
231
225
|
|
|
232
226
|
/**
|
|
233
|
-
* Concatenates a list of unpacked vectors
|
|
234
|
-
*
|
|
235
|
-
* naive left fold.
|
|
227
|
+
* Concatenates a list of unpacked vectors, or `null` if the result would be
|
|
228
|
+
* longer than `maxLength`.
|
|
236
229
|
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
* preserved: `unpackConcat(old)(cur)` keeps the earlier run on the left, and
|
|
242
|
-
* the final reduce prepends higher (earlier) slots in front of accumulated
|
|
243
|
-
* later runs. An empty list yields `unpackEmpty`.
|
|
244
|
-
*
|
|
245
|
-
* Returns `null` as soon as the accumulated length exceeds `maxLength`, which
|
|
246
|
-
* `tryFold` propagates by abandoning the rest of the list.
|
|
230
|
+
* `monoid.foldAbsorbing` reduces as a balanced binary tree, so each merge joins
|
|
231
|
+
* two runs of comparable size — O(n log n) total `bigint` shifting work instead
|
|
232
|
+
* of the O(n²) a left fold would spend growing one accumulator against small
|
|
233
|
+
* operands — and stops reading at the first overflow.
|
|
247
234
|
*
|
|
248
235
|
* This is the bit-vector analogue of a builder that accumulates appended pieces
|
|
249
236
|
* and materializes the combined result on demand, such as `StringBuilder`
|
|
@@ -251,7 +238,8 @@ const listToVecOp = unpackConcat => ({
|
|
|
251
238
|
*
|
|
252
239
|
* @param {_UnpackConcat} unpackConcat
|
|
253
240
|
*/
|
|
254
|
-
const unpackListToVec = unpackConcat =>
|
|
241
|
+
const unpackListToVec = unpackConcat =>
|
|
242
|
+
compose(foldAbsorbing(tryUnpackConcat(unpackConcat)))(nullableMap(pack))
|
|
255
243
|
|
|
256
244
|
/** @type {(base: _Base) => BitOrder} */
|
|
257
245
|
const bo = ({ front, removeFront, norm, uintCmp, unpackSplit, unpackConcatUint }) => {
|
|
@@ -284,9 +272,9 @@ const bo = ({ front, removeFront, norm, uintCmp, unpackSplit, unpackConcatUint }
|
|
|
284
272
|
const bu = unpack(b)
|
|
285
273
|
return pack(unpackConcat(au)(bu))
|
|
286
274
|
}
|
|
275
|
+
const unpackedListToVec = unpackListToVec(unpackConcat)
|
|
287
276
|
/** @param {List<Vec>} list */
|
|
288
|
-
const tryListToVec = list =>
|
|
289
|
-
unpackListToVec(unpackConcat)(map(unpack)(list))
|
|
277
|
+
const tryListToVec = list => unpackedListToVec(map(unpack)(list))
|
|
290
278
|
return {
|
|
291
279
|
front,
|
|
292
280
|
removeFront,
|
|
@@ -378,9 +366,11 @@ export const msb = bo({
|
|
|
378
366
|
*
|
|
379
367
|
* @type {(_: BitOrder) => (list: List<number>) => Nullable<Vec>}
|
|
380
368
|
*/
|
|
381
|
-
export const tryU8ListToVec = ({ unpackConcat }) =>
|
|
382
|
-
unpackListToVec(unpackConcat)
|
|
369
|
+
export const tryU8ListToVec = ({ unpackConcat }) => {
|
|
370
|
+
const unpackedListToVec = unpackListToVec(unpackConcat)
|
|
371
|
+
return list => unpackedListToVec(
|
|
383
372
|
map(/** @type {(_: number) => Unpacked} */b => ({ length: 8n, uint: BigInt(b) }))(list))
|
|
373
|
+
}
|
|
384
374
|
|
|
385
375
|
/**
|
|
386
376
|
* Converts a list of unsigned 8-bit integers to a bit vector using the provided bit order.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { Sign } from '../function/compare/types.ts'
|
|
3
|
+
* @import { Vec, BitOrder } from './types.ts'
|
|
4
|
+
* @import { List } from '../list/types.ts'
|
|
5
|
+
*/
|
|
1
6
|
export declare const proof: {
|
|
2
7
|
fromSentinel: () => void;
|
|
3
8
|
examples: {
|
|
@@ -47,6 +52,7 @@ export declare const proof: {
|
|
|
47
52
|
};
|
|
48
53
|
u8ListToVec: () => () => void;
|
|
49
54
|
tryListToVecOverflow: () => void;
|
|
55
|
+
tryListToVecUnbounded: () => void;
|
|
50
56
|
listToVecOverflow: {
|
|
51
57
|
throw: () => void;
|
|
52
58
|
};
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { Sign } from '../function/compare/types.ts'
|
|
3
|
+
* @import { Vec, BitOrder } from './types.ts'
|
|
4
|
+
* @import { List } from '../list/types.ts'
|
|
5
|
+
*/
|
|
6
|
+
|
|
1
7
|
import { assert, assertEq } from '../../asserts/module.f.mjs'
|
|
2
8
|
import { mask } from '../bigint/module.f.mjs'
|
|
3
|
-
/** @import { Sign } from '../function/compare/types.ts' */
|
|
4
9
|
import { asBase, asNominal } from '../nominal/module.f.mjs'
|
|
5
|
-
/** @import { Vec, BitOrder } from './types.ts' */
|
|
6
10
|
import { length, empty, uint, vec, lsb, msb, repeat, vec8, maxLength, u8ListToVec, tryU8ListToVec, u8List, chunkList, fromSentinel } from './module.f.mjs'
|
|
7
|
-
/** @import { List } from '../list/types.ts' */
|
|
8
11
|
import { repeat as listRepeat, toArray } from '../list/module.f.mjs'
|
|
9
12
|
|
|
10
13
|
/** @type {(a: bigint) => Vec} */
|
|
@@ -421,6 +424,29 @@ export const proof = {
|
|
|
421
424
|
const list = [vec(maxLength)(1n), vec(1n)(1n)]
|
|
422
425
|
assertEq(lsb.tryListToVec(list), null)
|
|
423
426
|
assertEq(msb.tryListToVec(list), null)
|
|
427
|
+
// Overflow is an absorbing element, so it survives every later
|
|
428
|
+
// combination: here the failed pair ends up on the left of the last
|
|
429
|
+
// one, and on the right in the two-element case above.
|
|
430
|
+
/** @type {List<Vec>} */
|
|
431
|
+
const longer = [vec(maxLength)(1n), vec(1n)(1n), vec(1n)(1n)]
|
|
432
|
+
assertEq(lsb.tryListToVec(longer), null)
|
|
433
|
+
assertEq(msb.tryListToVec(longer), null)
|
|
434
|
+
},
|
|
435
|
+
tryListToVecUnbounded: () => {
|
|
436
|
+
// `List` includes `Thunk`, so an unbounded lazy list is a legal input —
|
|
437
|
+
// and at 128 KiB, `maxLength` is an ordinary amount for a stream to
|
|
438
|
+
// exceed. Overflow being absorbing is what lets the fold answer instead
|
|
439
|
+
// of reading forever: each element here is half of `maxLength`, so the
|
|
440
|
+
// total crosses the cap at the third and the merge that sees it happens
|
|
441
|
+
// at the fourth. The rest of the list asserts it is never read.
|
|
442
|
+
const half = vec(maxLength / 2n)(1n)
|
|
443
|
+
/** @type {(n: number) => List<Vec>} */
|
|
444
|
+
const from = n => () => {
|
|
445
|
+
assert(n <= 8)
|
|
446
|
+
return { first: half, tail: from(n + 1) }
|
|
447
|
+
}
|
|
448
|
+
assertEq(lsb.tryListToVec(from(1)), null)
|
|
449
|
+
assertEq(msb.tryListToVec(from(1)), null)
|
|
424
450
|
},
|
|
425
451
|
listToVecOverflow: {
|
|
426
452
|
// Same oversized input, but through the throwing `listToVec` wrapper.
|
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
* Lookup operations for persistent B-tree structures.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { TNode } from '../types/types.ts'
|
|
7
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
8
|
+
* @import { KeyOf } from '../../array/types.ts'
|
|
9
|
+
* @import { First, Path, PathItem, Result } from './types.ts'
|
|
5
10
|
*/
|
|
6
|
-
/** @import { TNode } from '../types/types.ts' */
|
|
7
11
|
import type { TNode } from '../types/types.ts';
|
|
8
12
|
import type { Compare } from '../../function/compare/types.ts';
|
|
9
13
|
import type { First, Result } from './types.ts';
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* Lookup operations for persistent B-tree structures.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { TNode } from '../types/types.ts'
|
|
7
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
8
|
+
* @import { KeyOf } from '../../array/types.ts'
|
|
9
|
+
* @import { First, Path, PathItem, Result } from './types.ts'
|
|
5
10
|
*/
|
|
6
|
-
/** @import { TNode } from '../types/types.ts' */
|
|
7
11
|
|
|
8
12
|
import { index3, index5 } from '../../function/compare/module.f.mjs'
|
|
9
|
-
/** @import { Compare } from '../../function/compare/types.ts' */
|
|
10
|
-
|
|
11
|
-
/** @import { KeyOf } from '../../array/types.ts' */
|
|
12
|
-
/** @import { First, Path, PathItem, Result } from './types.ts' */
|
|
13
13
|
|
|
14
14
|
/** @type {<T>(item: PathItem<T>) => TNode<T>} */
|
|
15
15
|
const child = item => {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../../../media/json/types.ts'
|
|
3
|
+
* @import { Result } from './types.ts'
|
|
4
|
+
* @import { TNode } from '../types/types.ts'
|
|
5
|
+
*/
|
|
2
6
|
declare const test: () => void;
|
|
3
7
|
export declare const proof: typeof test;
|
|
4
8
|
export {};
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../../../media/json/types.ts'
|
|
3
|
+
* @import { Result } from './types.ts'
|
|
4
|
+
* @import { TNode } from '../types/types.ts'
|
|
5
|
+
*/
|
|
2
6
|
|
|
3
|
-
/** @import { Result } from './types.ts' */
|
|
4
7
|
import { find as btreeFind } from './module.f.mjs'
|
|
5
8
|
import { map, toArray } from '../../list/module.f.mjs'
|
|
6
9
|
import { stringify } from '../../../media/json/module.f.mjs'
|
|
7
10
|
import { sort } from '../../object/module.f.mjs'
|
|
8
|
-
/** @import { TNode } from '../types/types.ts' */
|
|
9
11
|
import { cmp } from '../../string/module.f.mjs'
|
|
10
12
|
import { set as setSet } from '../set/module.f.mjs'
|
|
11
13
|
import { assertEq } from '../../../asserts/module.f.mjs'
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Core persistent B-tree construction and traversal helpers.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { List, Thunk } from '../list/types.ts'
|
|
7
|
+
* @import { TNode, Tree } from './types/types.ts'
|
|
5
8
|
*/
|
|
6
9
|
import type { List } from '../list/types.ts';
|
|
7
10
|
import type { Tree } from './types/types.ts';
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* Core persistent B-tree construction and traversal helpers.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { List, Thunk } from '../list/types.ts'
|
|
7
|
+
* @import { TNode, Tree } from './types/types.ts'
|
|
5
8
|
*/
|
|
6
9
|
|
|
7
10
|
import { flat } from '../list/module.f.mjs'
|
|
8
|
-
/** @import { List, Thunk } from '../list/types.ts' */
|
|
9
11
|
import { map } from '../nullable/module.f.mjs'
|
|
10
|
-
/** @import { TNode, Tree } from './types/types.ts' */
|
|
11
12
|
|
|
12
13
|
/** @type {<T>(node: TNode<T>) => Thunk<T>} */
|
|
13
14
|
const nodeValues
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../../media/json/types.ts'
|
|
3
|
+
* @import { TNode } from './types/types.ts'
|
|
4
|
+
* @import { List, Result } from '../list/types.ts'
|
|
5
|
+
*/
|
|
2
6
|
declare const valueTest1: () => void;
|
|
3
7
|
declare const valuesTest2: () => void;
|
|
4
8
|
declare const findTrue: () => void;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../../media/json/types.ts'
|
|
3
|
+
* @import { TNode } from './types/types.ts'
|
|
4
|
+
* @import { List, Result } from '../list/types.ts'
|
|
5
|
+
*/
|
|
2
6
|
|
|
3
|
-
/** @import { TNode } from './types/types.ts' */
|
|
4
7
|
import { values } from './module.f.mjs'
|
|
5
8
|
import { stringify as jsonStringify } from '../../media/json/module.f.mjs'
|
|
6
9
|
import { sort } from '../object/module.f.mjs'
|
|
7
10
|
import { cmp } from '../string/module.f.mjs'
|
|
8
|
-
/** @import { List, Result } from '../list/types.ts' */
|
|
9
11
|
import { next, toArray } from '../list/module.f.mjs'
|
|
10
12
|
import { set as setSet } from './set/module.f.mjs'
|
|
11
13
|
import { value, find as findFind } from './find/module.f.mjs'
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removal operations for persistent B-tree structures.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts'
|
|
7
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
8
|
+
* @import { Path, PathItem } from '../find/types.ts'
|
|
9
|
+
* @import { Tuple } from '../../array/types.ts'
|
|
10
|
+
*/
|
|
1
11
|
import type { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts';
|
|
2
12
|
import type { Compare } from '../../function/compare/types.ts';
|
|
3
13
|
import type { Path } from '../find/types.ts';
|
|
@@ -16,6 +26,7 @@ export declare const proof: {
|
|
|
16
26
|
throw: {
|
|
17
27
|
reduceValue0DefaultBranch: () => void;
|
|
18
28
|
reduceValue2DefaultBranch: () => void;
|
|
29
|
+
initValue0DefaultBranch: () => void;
|
|
19
30
|
initValue1DefaultBranch: () => void;
|
|
20
31
|
};
|
|
21
32
|
};
|
|
@@ -2,19 +2,16 @@
|
|
|
2
2
|
* Removal operations for persistent B-tree structures.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts'
|
|
7
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
8
|
+
* @import { Path, PathItem } from '../find/types.ts'
|
|
9
|
+
* @import { Tuple } from '../../array/types.ts'
|
|
5
10
|
*/
|
|
6
|
-
import { collapseRoot } from '../types/module.f.mjs'
|
|
7
|
-
/** @import { Leaf1, TNode, Branch1, Branch3, Branch5, Tree } from '../types/types.ts' */
|
|
8
|
-
|
|
9
|
-
/** @import { Compare } from '../../function/compare/types.ts' */
|
|
10
11
|
|
|
12
|
+
import { collapseRoot } from '../types/module.f.mjs'
|
|
11
13
|
import { find } from '../find/module.f.mjs'
|
|
12
|
-
/** @import { Path, PathItem } from '../find/types.ts' */
|
|
13
|
-
|
|
14
14
|
import { fold, concat, next } from '../../list/module.f.mjs'
|
|
15
|
-
|
|
16
|
-
/** @import { Tuple } from '../../array/types.ts' */
|
|
17
|
-
|
|
18
15
|
import { map } from '../../nullable/module.f.mjs'
|
|
19
16
|
|
|
20
17
|
/**
|
|
@@ -180,6 +177,9 @@ export const proof = {
|
|
|
180
177
|
reduceValue2DefaultBranch: () => {
|
|
181
178
|
reduceValue2([['leaf']])([['x'], 's', ['y']])
|
|
182
179
|
},
|
|
180
|
+
initValue0DefaultBranch: () => {
|
|
181
|
+
initValue0(null)([['x'], 's', [['a'], 'b', ['c']]])
|
|
182
|
+
},
|
|
183
183
|
initValue1DefaultBranch: () => {
|
|
184
184
|
initValue1(null)([[['a'], 'b', ['c']], 'd', ['e']])
|
|
185
185
|
},
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { TNode } from '../types/types.ts'
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
import { nodeRemove } from './module.f.mjs'
|
|
2
|
-
/** @import { TNode } from '../types/types.ts' */
|
|
3
6
|
import { set as setSet } from '../set/module.f.mjs'
|
|
4
7
|
import { cmp } from '../../string/module.f.mjs'
|
|
5
8
|
import { stringify } from '../../../media/json/module.f.mjs'
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Insertion and update operations for persistent B-tree structures.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts'
|
|
7
|
+
* @import { First, PathItem, Result } from '../find/types.ts'
|
|
8
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
9
|
+
*/
|
|
1
10
|
import type { Branch1, Branch3, TNode, Tree } from '../types/types.ts';
|
|
2
11
|
import type { Compare } from '../../function/compare/types.ts';
|
|
3
12
|
export type _Branch1To3<T> = Branch1<T> | Branch3<T>;
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
* Insertion and update operations for persistent B-tree structures.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts'
|
|
7
|
+
* @import { First, PathItem, Result } from '../find/types.ts'
|
|
8
|
+
* @import { Compare } from '../../function/compare/types.ts'
|
|
5
9
|
*/
|
|
6
|
-
import { collapseRoot } from '../types/module.f.mjs'
|
|
7
|
-
/** @import { Branch1, Branch3, Branch5, Branch7, TNode, Tree } from '../types/types.ts' */
|
|
8
10
|
|
|
11
|
+
import { collapseRoot } from '../types/module.f.mjs'
|
|
9
12
|
import { find } from '../find/module.f.mjs'
|
|
10
|
-
/** @import { First, PathItem, Result } from '../find/types.ts' */
|
|
11
|
-
|
|
12
|
-
/** @import { Compare } from '../../function/compare/types.ts' */
|
|
13
|
-
|
|
14
13
|
import { fold } from '../../list/module.f.mjs'
|
|
15
14
|
|
|
16
15
|
/**
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { TNode } from '../types/types.ts'
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
import { set as setSet } from './module.f.mjs'
|
|
2
|
-
/** @import { TNode } from '../types/types.ts' */
|
|
3
6
|
import { cmp } from '../../string/module.f.mjs'
|
|
4
7
|
import { stringify } from '../../../media/json/module.f.mjs'
|
|
5
8
|
import { sort } from '../../object/module.f.mjs'
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* themselves live in `./types.ts`.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Branch1, Branch3, Branch5, TNode } from './types.ts'
|
|
6
8
|
*/
|
|
7
|
-
/** @import { Branch1, Branch3, Branch5, TNode } from './types.ts' */
|
|
8
9
|
import type { Branch1, Branch3, Branch5, TNode } from './types.ts';
|
|
9
10
|
/**
|
|
10
11
|
* Demotes a single-child branch root to its only child.
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* themselves live in `./types.ts`.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Branch1, Branch3, Branch5, TNode } from './types.ts'
|
|
6
8
|
*/
|
|
7
|
-
/** @import { Branch1, Branch3, Branch5, TNode } from './types.ts' */
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Demotes a single-child branch root to its only child.
|
|
@@ -1,8 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compact byte-set operations and predicates. See `./types.ts` for the
|
|
3
|
+
* `ByteSet` type.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { RangeMap } from '../range_map/types.ts'
|
|
8
|
+
* @import { SortedSet } from '../sorted_set/types.ts'
|
|
9
|
+
* @import { ByteSet } from './types.ts'
|
|
10
|
+
*/
|
|
1
11
|
import type { RangeMap } from '../range_map/types.ts';
|
|
2
12
|
import type { SortedSet } from '../sorted_set/types.ts';
|
|
3
13
|
import type { ByteSet } from './types.ts';
|
|
4
14
|
export type _Byte = number;
|
|
5
|
-
/** @import { ByteSet } from './types.ts' */
|
|
6
15
|
/** @typedef {number} _Byte */
|
|
7
16
|
/** @type {(n: _Byte) => (s: ByteSet) => boolean} */
|
|
8
17
|
export declare const has: (n: _Byte) => (s: ByteSet) => boolean;
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
* `ByteSet` type.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { RangeMap } from '../range_map/types.ts'
|
|
8
|
+
* @import { SortedSet } from '../sorted_set/types.ts'
|
|
9
|
+
* @import { ByteSet } from './types.ts'
|
|
6
10
|
*/
|
|
11
|
+
|
|
7
12
|
import { compose } from '../function/module.f.mjs'
|
|
8
|
-
/** @import { RangeMap } from '../range_map/types.ts' */
|
|
9
|
-
/** @import { SortedSet } from '../sorted_set/types.ts' */
|
|
10
13
|
import { reverse, countdown, flat, map } from '../list/module.f.mjs'
|
|
11
|
-
/** @import { ByteSet } from './types.ts' */
|
|
12
14
|
|
|
13
15
|
/** @typedef {number} _Byte */
|
|
14
16
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../../media/json/types.ts'
|
|
3
|
+
*/
|
|
2
4
|
|
|
3
5
|
import { has, empty, set, setRange, unset, universe, complement, toRangeMap } from './module.f.mjs'
|
|
4
6
|
import { every, countdown, map, toArray } from '../list/module.f.mjs'
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Comparison function types and helpers.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Index, Tuple } from '../../array/types.ts'
|
|
7
|
+
* @import { Cmp1, Cmp2, Compare, Sign } from './types.ts'
|
|
5
8
|
*/
|
|
6
|
-
/** @import { Index, Tuple } from '../../array/types.ts' */
|
|
7
|
-
/** @import { Cmp1, Cmp2, Compare, Sign } from './types.ts' */
|
|
8
9
|
import type { Index, Tuple } from '../../array/types.ts';
|
|
9
10
|
import type { Cmp1, Cmp2, Compare, Sign } from './types.ts';
|
|
10
11
|
/** @type {<T>(cmp: Compare<T>) => (value: T) => Index<3>} */
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Comparison function types and helpers.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Index, Tuple } from '../../array/types.ts'
|
|
7
|
+
* @import { Cmp1, Cmp2, Compare, Sign } from './types.ts'
|
|
5
8
|
*/
|
|
6
|
-
/** @import { Index, Tuple } from '../../array/types.ts' */
|
|
7
|
-
/** @import { Cmp1, Cmp2, Compare, Sign } from './types.ts' */
|
|
8
9
|
|
|
9
10
|
/** @type {<T>(cmp: Compare<T>) => (value: T) => Index<3>} */
|
|
10
11
|
export const index3
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Function combinators: composition, identity, argument flipping, and the
|
|
3
|
+
* chainable `Fn` wrapper.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Func, Fn } from './types.ts'
|
|
8
|
+
*/
|
|
2
9
|
import type { Func, Fn } from './types.ts';
|
|
3
10
|
/**
|
|
4
11
|
* A postfix compose function.
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* Function combinators: composition, identity, argument flipping, and the
|
|
3
|
+
* chainable `Fn` wrapper.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Func, Fn } from './types.ts'
|
|
8
|
+
*/
|
|
2
9
|
|
|
3
10
|
/**
|
|
4
11
|
* A postfix compose function.
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Common higher-order operator type aliases.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { Fold, Reduce, Scan, StateScan, Unary } from './types.ts'
|
|
5
7
|
*/
|
|
6
8
|
import type { Fold, Reduce, Scan, StateScan, Unary } from './types.ts';
|
|
7
|
-
/** @import { Fold, Reduce, Scan, StateScan, Unary } from './types.ts' */
|
|
8
9
|
/** @type {(separator: string) => Reduce<string>} */
|
|
9
10
|
export declare const join: (separator: string) => Reduce<string>;
|
|
10
11
|
/** @type {Reduce<string>} */
|