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
|
@@ -29,16 +29,14 @@
|
|
|
29
29
|
*
|
|
30
30
|
* @module
|
|
31
31
|
*
|
|
32
|
-
* @import { Unknown } from '../../../media/json/types.ts'
|
|
33
32
|
* @import { Effect, Operation } from '../../../effects/types.ts'
|
|
34
33
|
* @import { IoResult, Read, Write } from '../../../effects/node/types.ts'
|
|
35
34
|
* @import { Response } from '../../json_rpc/types.ts'
|
|
35
|
+
* @import { Step } from './types.ts'
|
|
36
36
|
*/
|
|
37
|
-
import type { Unknown } from '../../../media/json/types.ts';
|
|
38
37
|
import type { Effect, Operation } from '../../../effects/types.ts';
|
|
39
38
|
import type { Read, Write } from '../../../effects/node/types.ts';
|
|
40
|
-
import type {
|
|
41
|
-
export type Step<O extends Operation> = (value: Unknown) => Effect<O, Response | null>;
|
|
39
|
+
import type { Step } from './types.ts';
|
|
42
40
|
/**
|
|
43
41
|
* Drives the read-parse-dispatch-write loop for `handler` over stdin/stdout.
|
|
44
42
|
*
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
*
|
|
30
30
|
* @module
|
|
31
31
|
*
|
|
32
|
-
* @import { Unknown } from '../../../media/json/types.ts'
|
|
33
32
|
* @import { Effect, Operation } from '../../../effects/types.ts'
|
|
34
33
|
* @import { IoResult, Read, Write } from '../../../effects/node/types.ts'
|
|
35
34
|
* @import { Response } from '../../json_rpc/types.ts'
|
|
35
|
+
* @import { Step } from './types.ts'
|
|
36
36
|
*/
|
|
37
37
|
|
|
38
38
|
import { pure, step } from '../../../effects/module.f.mjs'
|
|
@@ -43,13 +43,6 @@ import { sort } from '../../../types/object/module.f.mjs'
|
|
|
43
43
|
import { internalError, jsonrpc, parseError } from '../../json_rpc/module.f.mjs'
|
|
44
44
|
import { error, ok } from '../../../types/result/module.f.mjs'
|
|
45
45
|
|
|
46
|
-
/**
|
|
47
|
-
* A transport step: maps one parsed JSON-RPC message to a response, or `null`
|
|
48
|
-
* for a notification that needs no reply. The shape of `mcpStep(config)(handlers)(key)`.
|
|
49
|
-
* @template {Operation} O
|
|
50
|
-
* @typedef {(value: Unknown) => Effect<O, Response | null>} Step
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
46
|
const stringifyJson = stringify(sort)
|
|
54
47
|
|
|
55
48
|
/** The parse-error response (`-32700`, `id: null`) for a malformed input line. */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @import { Effect } from '../../../effects/types.ts'
|
|
4
4
|
* @import { State } from '../../../effects/node/virtual/types.ts'
|
|
5
5
|
* @import { Id, Response } from '../../json_rpc/types.ts'
|
|
6
|
-
* @import { Step } from './
|
|
6
|
+
* @import { Step } from './types.ts'
|
|
7
7
|
*/
|
|
8
8
|
export declare const proof: {
|
|
9
9
|
eofImmediately: () => void;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @import { Effect } from '../../../effects/types.ts'
|
|
4
4
|
* @import { State } from '../../../effects/node/virtual/types.ts'
|
|
5
5
|
* @import { Id, Response } from '../../json_rpc/types.ts'
|
|
6
|
-
* @import { Step } from './
|
|
6
|
+
* @import { Step } from './types.ts'
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { assertEq } from '../../../asserts/module.f.mjs'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the stdio transport of JSON-RPC / MCP servers.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import type { Unknown } from '../../../media/json/types.ts';
|
|
7
|
+
import type { Effect, Operation } from '../../../effects/types.ts';
|
|
8
|
+
import type { Response } from '../../json_rpc/types.ts';
|
|
9
|
+
/**
|
|
10
|
+
* A transport step: maps one parsed JSON-RPC message to a response, or `null`
|
|
11
|
+
* for a notification that needs no reply. The shape of
|
|
12
|
+
* `mcpStep(config)(handlers)(key)`.
|
|
13
|
+
*/
|
|
14
|
+
export type Step<O extends Operation> = (value: Unknown) => Effect<O, Response | null>;
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
* See `./types.ts` for the `Id` type.
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
|
+
*
|
|
9
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
10
|
+
* @import { Point2D } from '../../crypto/secp/types.ts'
|
|
11
|
+
* @import { V8 } from '../../crypto/sha2/types.ts'
|
|
12
|
+
* @import { Id } from './types.ts'
|
|
8
13
|
*/
|
|
9
14
|
import type { Vec } from '../../types/bit_vec/types.ts';
|
|
10
15
|
import type { Id } from './types.ts';
|
package/fjs/sul/id/module.f.mjs
CHANGED
|
@@ -5,21 +5,22 @@
|
|
|
5
5
|
* See `./types.ts` for the `Id` type.
|
|
6
6
|
*
|
|
7
7
|
* @module
|
|
8
|
+
*
|
|
9
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
10
|
+
* @import { Point2D } from '../../crypto/secp/types.ts'
|
|
11
|
+
* @import { V8 } from '../../crypto/sha2/types.ts'
|
|
12
|
+
* @import { Id } from './types.ts'
|
|
8
13
|
*/
|
|
9
14
|
|
|
10
15
|
import { toArray } from '../../types/list/module.f.mjs'
|
|
11
|
-
/** @import { Vec } from '../../types/bit_vec/types.ts' */
|
|
12
16
|
import { length, msb, uint, uintChunkList, unpack, vec } from '../../types/bit_vec/module.f.mjs'
|
|
13
17
|
import { assertEq } from '../../asserts/module.f.mjs'
|
|
14
18
|
import { utf8 } from '../../text/module.f.mjs'
|
|
15
|
-
/** @import { Point2D } from '../../crypto/secp/types.ts' */
|
|
16
19
|
import { secp256r1 } from '../../crypto/secp/module.f.mjs'
|
|
17
|
-
/** @import { V8 } from '../../crypto/sha2/types.ts' */
|
|
18
20
|
import { base32 } from '../../crypto/sha2/module.f.mjs'
|
|
19
21
|
import { literal3ToVec } from '../level/literal/module.f.mjs'
|
|
20
22
|
import { log2 } from '../../types/bigint/module.f.mjs'
|
|
21
23
|
import { asBase, asNominal } from '../../types/nominal/module.f.mjs'
|
|
22
|
-
/** @import { Id } from './types.ts' */
|
|
23
24
|
|
|
24
25
|
// 32 bytes = 256 bits.
|
|
25
26
|
//
|
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
* See `./types.ts` for the `Add`/`EncodeState` type-level API.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Create } from '../../../types/patricia_trie/types.ts'
|
|
8
|
+
* @import { Id } from '../../id/types.ts'
|
|
9
|
+
* @import { Add, EncodeState } from './types.ts'
|
|
6
10
|
*/
|
|
7
11
|
import type { Id } from '../../id/types.ts';
|
|
8
12
|
import type { Add, EncodeState } from './types.ts';
|
|
9
|
-
/** @import { Add, EncodeState } from './types.ts' */
|
|
10
13
|
/**
|
|
11
14
|
* Returns a streaming encoder for hash-level symbols.
|
|
12
15
|
*
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
* See `./types.ts` for the `Add`/`EncodeState` type-level API.
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Create } from '../../../types/patricia_trie/types.ts'
|
|
8
|
+
* @import { Id } from '../../id/types.ts'
|
|
9
|
+
* @import { Add, EncodeState } from './types.ts'
|
|
6
10
|
*/
|
|
7
11
|
|
|
8
|
-
/** @import { Create } from '../../../types/patricia_trie/types.ts' */
|
|
9
12
|
import { emptyState, patriciaTrie } from '../../../types/patricia_trie/module.f.mjs'
|
|
10
13
|
import { compress } from '../../id/module.f.mjs'
|
|
11
|
-
/** @import { Id } from '../../id/types.ts' */
|
|
12
14
|
import { asBase } from '../../../types/nominal/module.f.mjs'
|
|
13
|
-
/** @import { Add, EncodeState } from './types.ts' */
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* Returns a streaming encoder for hash-level symbols.
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { Id } from '../../id/types.ts'
|
|
3
|
+
* @import { EncodeState } from './types.ts'
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
import { assert, assertEq } from '../../../asserts/module.f.mjs'
|
|
2
7
|
import { compress, level3Id } from '../../id/module.f.mjs'
|
|
3
|
-
/** @import { Id } from '../../id/types.ts' */
|
|
4
8
|
import { emptyEncodeState, encode } from './module.f.mjs'
|
|
5
|
-
/** @import { EncodeState } from './types.ts' */
|
|
6
9
|
|
|
7
10
|
/** @typedef {readonly (readonly [Id, Id, Id, boolean])[]} _NodeList */
|
|
8
11
|
|
|
@@ -4,11 +4,14 @@
|
|
|
4
4
|
* `Word`/`EncodeState`/`Level`/`PipelineState`/`LiteralToVec` type-level API.
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Equal, StateScan } from '../../../types/function/operator/types.ts'
|
|
9
|
+
* @import { List } from '../../../types/list/types.ts'
|
|
10
|
+
* @import { EncodeState, Level, LiteralToVec, PipelineState } from './types.ts'
|
|
7
11
|
*/
|
|
8
12
|
import type { Equal, StateScan } from '../../../types/function/operator/types.ts';
|
|
9
13
|
import type { List } from '../../../types/list/types.ts';
|
|
10
14
|
import type { EncodeState, Level, LiteralToVec, PipelineState } from './types.ts';
|
|
11
|
-
/** @import { EncodeState, Level, LiteralToVec, PipelineState } from './types.ts' */
|
|
12
15
|
/** @type {(s: bigint) => string} */
|
|
13
16
|
export declare const symbolToString: (s: bigint) => string;
|
|
14
17
|
/** @type {(word: List<bigint>) => string} */
|
|
@@ -4,16 +4,17 @@
|
|
|
4
4
|
* `Word`/`EncodeState`/`Level`/`PipelineState`/`LiteralToVec` type-level API.
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Equal, StateScan } from '../../../types/function/operator/types.ts'
|
|
9
|
+
* @import { List } from '../../../types/list/types.ts'
|
|
10
|
+
* @import { EncodeState, Level, LiteralToVec, PipelineState } from './types.ts'
|
|
7
11
|
*/
|
|
8
12
|
|
|
9
13
|
import { log2 } from '../../../types/bigint/module.f.mjs'
|
|
10
14
|
import { msb, vec } from '../../../types/bit_vec/module.f.mjs'
|
|
11
|
-
/** @import { Equal, StateScan } from '../../../types/function/operator/types.ts' */
|
|
12
15
|
import { strictEqual } from '../../../types/function/operator/module.f.mjs'
|
|
13
|
-
/** @import { List } from '../../../types/list/types.ts' */
|
|
14
16
|
import { equal, map } from '../../../types/list/module.f.mjs'
|
|
15
17
|
import { join } from '../../../types/string/module.f.mjs'
|
|
16
|
-
/** @import { EncodeState, Level, LiteralToVec, PipelineState } from './types.ts' */
|
|
17
18
|
|
|
18
19
|
/** @type {(s: bigint) => string} */
|
|
19
20
|
export const symbolToString = s => s.toString(16)
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Vec } from '../../../types/bit_vec/types.ts'
|
|
3
|
+
*/
|
|
4
|
+
|
|
2
5
|
import { chunkList, msb, vec } from '../../../types/bit_vec/module.f.mjs'
|
|
3
6
|
import { assert, assertEq } from '../../../asserts/module.f.mjs'
|
|
4
7
|
import { map, stateScan, toArray } from '../../../types/list/module.f.mjs'
|
package/fjs/sul/module.f.d.mts
CHANGED
|
@@ -4,15 +4,17 @@
|
|
|
4
4
|
* See `./types.ts` for the `EncodeState`/`Encode` type-level API.
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Add } from './level/hash/types.ts'
|
|
9
|
+
* @import { Id } from './id/types.ts'
|
|
10
|
+
* @import { InternalState } from '../types/patricia_trie/types.ts'
|
|
11
|
+
* @import { EncodeState, Encode } from './types.ts'
|
|
7
12
|
*/
|
|
8
13
|
import type { Add } from './level/hash/types.ts';
|
|
9
14
|
import type { Id } from './id/types.ts';
|
|
10
15
|
import type { InternalState } from '../types/patricia_trie/types.ts';
|
|
11
16
|
import type { EncodeState, Encode } from './types.ts';
|
|
12
17
|
export type _HashState = InternalState<Id>;
|
|
13
|
-
/** @import { Id } from './id/types.ts' */
|
|
14
|
-
/** @import { InternalState } from '../types/patricia_trie/types.ts' */
|
|
15
|
-
/** @import { EncodeState, Encode } from './types.ts' */
|
|
16
18
|
/** @typedef {InternalState<Id>} _HashState */
|
|
17
19
|
/** @type {<S>(storage: S) => EncodeState<S>} */
|
|
18
20
|
export declare const emptyEncodeState: <S>(storage: S) => EncodeState<S>;
|
package/fjs/sul/module.f.mjs
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
* See `./types.ts` for the `EncodeState`/`Encode` type-level API.
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Add } from './level/hash/types.ts'
|
|
9
|
+
* @import { Id } from './id/types.ts'
|
|
10
|
+
* @import { InternalState } from '../types/patricia_trie/types.ts'
|
|
11
|
+
* @import { EncodeState, Encode } from './types.ts'
|
|
7
12
|
*/
|
|
8
13
|
|
|
9
14
|
import { emptyPipelineState, pipelineStep } from './level/literal/module.f.mjs'
|
|
10
15
|
import { encode as hashEncode } from './level/hash/module.f.mjs'
|
|
11
|
-
/** @import { Add } from './level/hash/types.ts' */
|
|
12
16
|
import { level3Id } from './id/module.f.mjs'
|
|
13
|
-
/** @import { Id } from './id/types.ts' */
|
|
14
|
-
/** @import { InternalState } from '../types/patricia_trie/types.ts' */
|
|
15
|
-
/** @import { EncodeState, Encode } from './types.ts' */
|
|
16
17
|
|
|
17
18
|
/** @typedef {InternalState<Id>} _HashState */
|
|
18
19
|
|
package/fjs/sul/proof.f.d.mts
CHANGED
package/fjs/sul/proof.f.mjs
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { Id } from './id/types.ts'
|
|
3
|
+
* @import { Add } from './level/hash/types.ts'
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
import { assert, assertEq } from '../asserts/module.f.mjs'
|
|
2
7
|
import { compress } from './id/module.f.mjs'
|
|
3
|
-
/** @import { Id } from './id/types.ts' */
|
|
4
8
|
import { encode, emptyEncodeState } from './module.f.mjs'
|
|
5
|
-
/** @import { Add } from './level/hash/types.ts' */
|
|
6
9
|
|
|
7
10
|
/** @typedef {readonly [Id, Id, Id, boolean]} _Merge */
|
|
8
11
|
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provides ASCII code point constants and helpers for creating numeric code points and inclusive ranges.
|
|
3
3
|
*
|
|
4
|
+
* It also owns the hexadecimal digit codec (`hexDigitValue` /
|
|
5
|
+
* `hexDigitCodePoint`), so no consumer has to rederive the `'0'`, `'a' - 10`
|
|
6
|
+
* and `'A' - 10` offsets for itself.
|
|
7
|
+
*
|
|
4
8
|
* @module
|
|
9
|
+
*
|
|
10
|
+
* @import { Nullable } from '../../types/nullable/types.ts'
|
|
11
|
+
* @import { Range } from '../../types/range/types.ts'
|
|
5
12
|
*/
|
|
13
|
+
import type { Nullable } from '../../types/nullable/types.ts';
|
|
6
14
|
import type { Range } from '../../types/range/types.ts';
|
|
7
15
|
/** Returns the code point value of the first character in a string. @type {(s: string) => number} */
|
|
8
16
|
export declare const one: (s: string) => number;
|
|
@@ -94,6 +102,8 @@ export declare const latinCapitalLetterA: number;
|
|
|
94
102
|
export declare const latinCapitalLetterE: number;
|
|
95
103
|
/** 0x46 */
|
|
96
104
|
export declare const latinCapitalLetterF: number;
|
|
105
|
+
/** 0x41..0x46, the uppercase hexadecimal digits. */
|
|
106
|
+
export declare const latinCapitalLetterAFRange: Range;
|
|
97
107
|
/** 0x5B */
|
|
98
108
|
export declare const leftSquareBracket: number;
|
|
99
109
|
/** 0x5C */
|
|
@@ -116,6 +126,8 @@ export declare const latinSmallLetterB: number;
|
|
|
116
126
|
export declare const latinSmallLetterE: number;
|
|
117
127
|
/** 0x66 */
|
|
118
128
|
export declare const latinSmallLetterF: number;
|
|
129
|
+
/** 0x61..0x66, the lowercase hexadecimal digits. */
|
|
130
|
+
export declare const latinSmallLetterAFRange: Range;
|
|
119
131
|
/** 0x6E */
|
|
120
132
|
export declare const latinSmallLetterN: number;
|
|
121
133
|
/** 0x72 */
|
|
@@ -134,3 +146,17 @@ export declare const verticalLine: number;
|
|
|
134
146
|
export declare const rightCurlyBracket: number;
|
|
135
147
|
/** 0x7E */
|
|
136
148
|
export declare const tilde: number;
|
|
149
|
+
/**
|
|
150
|
+
* The value `0..15` denoted by a hexadecimal digit code point, or `null` when
|
|
151
|
+
* the code point is not one of `0-9`, `a-f`, `A-F`.
|
|
152
|
+
*
|
|
153
|
+
* @type {(codePoint: number) => Nullable<number>}
|
|
154
|
+
*/
|
|
155
|
+
export declare const hexDigitValue: (codePoint: number) => Nullable<number>;
|
|
156
|
+
/**
|
|
157
|
+
* The lowercase hexadecimal digit code point denoting a value in `0..15`.
|
|
158
|
+
* `hexDigitValue(hexDigitCodePoint(v))` is `v` for every such value.
|
|
159
|
+
*
|
|
160
|
+
* @type {(value: number) => number}
|
|
161
|
+
*/
|
|
162
|
+
export declare const hexDigitCodePoint: (value: number) => number;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provides ASCII code point constants and helpers for creating numeric code points and inclusive ranges.
|
|
3
3
|
*
|
|
4
|
+
* It also owns the hexadecimal digit codec (`hexDigitValue` /
|
|
5
|
+
* `hexDigitCodePoint`), so no consumer has to rederive the `'0'`, `'a' - 10`
|
|
6
|
+
* and `'A' - 10` offsets for itself.
|
|
7
|
+
*
|
|
4
8
|
* @module
|
|
9
|
+
*
|
|
10
|
+
* @import { Nullable } from '../../types/nullable/types.ts'
|
|
11
|
+
* @import { Range } from '../../types/range/types.ts'
|
|
5
12
|
*/
|
|
6
13
|
|
|
7
|
-
|
|
14
|
+
import { contains } from '../../types/range/module.f.mjs'
|
|
8
15
|
|
|
9
16
|
/** @type {(s: string) => (i: number) => number} */
|
|
10
17
|
const at = s => i => {
|
|
@@ -161,6 +168,9 @@ export const latinCapitalLetterE = one('E')
|
|
|
161
168
|
/** 0x46 */
|
|
162
169
|
export const latinCapitalLetterF = one('F')
|
|
163
170
|
|
|
171
|
+
/** 0x41..0x46, the uppercase hexadecimal digits. */
|
|
172
|
+
export const latinCapitalLetterAFRange = range('AF')
|
|
173
|
+
|
|
164
174
|
/** 0x5B */
|
|
165
175
|
export const leftSquareBracket = one('[')
|
|
166
176
|
|
|
@@ -196,6 +206,9 @@ export const latinSmallLetterE = one('e')
|
|
|
196
206
|
/** 0x66 */
|
|
197
207
|
export const latinSmallLetterF = one('f')
|
|
198
208
|
|
|
209
|
+
/** 0x61..0x66, the lowercase hexadecimal digits. */
|
|
210
|
+
export const latinSmallLetterAFRange = range('af')
|
|
211
|
+
|
|
199
212
|
/** 0x6E */
|
|
200
213
|
export const latinSmallLetterN = one('n')
|
|
201
214
|
|
|
@@ -222,3 +235,38 @@ export const rightCurlyBracket = one('}')
|
|
|
222
235
|
|
|
223
236
|
/** 0x7E */
|
|
224
237
|
export const tilde = one('~')
|
|
238
|
+
|
|
239
|
+
// hexadecimal digits
|
|
240
|
+
|
|
241
|
+
const isDigit = contains(...digitRange)
|
|
242
|
+
|
|
243
|
+
const isLatinSmallLetterAF = contains(...latinSmallLetterAFRange)
|
|
244
|
+
|
|
245
|
+
const isLatinCapitalLetterAF = contains(...latinCapitalLetterAFRange)
|
|
246
|
+
|
|
247
|
+
/** The distance from a lowercase hexadecimal letter to the value it denotes. */
|
|
248
|
+
const latinSmallLetterAFOffset = latinSmallLetterA - 10
|
|
249
|
+
|
|
250
|
+
/** The distance from an uppercase hexadecimal letter to the value it denotes. */
|
|
251
|
+
const latinCapitalLetterAFOffset = latinCapitalLetterA - 10
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* The value `0..15` denoted by a hexadecimal digit code point, or `null` when
|
|
255
|
+
* the code point is not one of `0-9`, `a-f`, `A-F`.
|
|
256
|
+
*
|
|
257
|
+
* @type {(codePoint: number) => Nullable<number>}
|
|
258
|
+
*/
|
|
259
|
+
export const hexDigitValue = codePoint =>
|
|
260
|
+
isDigit(codePoint) ? codePoint - digit0
|
|
261
|
+
: isLatinSmallLetterAF(codePoint) ? codePoint - latinSmallLetterAFOffset
|
|
262
|
+
: isLatinCapitalLetterAF(codePoint) ? codePoint - latinCapitalLetterAFOffset
|
|
263
|
+
: null
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* The lowercase hexadecimal digit code point denoting a value in `0..15`.
|
|
267
|
+
* `hexDigitValue(hexDigitCodePoint(v))` is `v` for every such value.
|
|
268
|
+
*
|
|
269
|
+
* @type {(value: number) => number}
|
|
270
|
+
*/
|
|
271
|
+
export const hexDigitCodePoint = value =>
|
|
272
|
+
value < 10 ? digit0 + value : latinSmallLetterAFOffset + value
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
export declare const proof: {
|
|
2
2
|
range: () => void;
|
|
3
|
+
hexDigitValue: {
|
|
4
|
+
digit: () => void;
|
|
5
|
+
latinSmallLetterAF: () => void;
|
|
6
|
+
latinCapitalLetterAF: () => void;
|
|
7
|
+
notAHexDigit: () => void;
|
|
8
|
+
};
|
|
9
|
+
hexDigitCodePoint: {
|
|
10
|
+
lowercaseDigits: () => void;
|
|
11
|
+
roundTrip: () => void;
|
|
12
|
+
};
|
|
3
13
|
throw: {
|
|
4
14
|
oneThrowsOnEmpty: () => number;
|
|
5
15
|
};
|
|
@@ -1,15 +1,47 @@
|
|
|
1
|
-
import { one, range } from './module.f.mjs'
|
|
1
|
+
import { hexDigitCodePoint, hexDigitValue, one, range } from './module.f.mjs'
|
|
2
2
|
import { stringify as jsonStringify } from '../../media/json/module.f.mjs'
|
|
3
3
|
import { sort } from '../../types/object/module.f.mjs'
|
|
4
4
|
import { assertEq } from '../../asserts/module.f.mjs'
|
|
5
5
|
|
|
6
6
|
const stringify = jsonStringify(sort)
|
|
7
7
|
|
|
8
|
+
const values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
|
9
|
+
|
|
8
10
|
export const proof = {
|
|
9
11
|
range: () => {
|
|
10
12
|
const r = stringify(range("A"))
|
|
11
13
|
assertEq(r, '[65,65]')
|
|
12
14
|
},
|
|
15
|
+
hexDigitValue: {
|
|
16
|
+
digit: () => {
|
|
17
|
+
assertEq(hexDigitValue(one('0')), 0)
|
|
18
|
+
assertEq(hexDigitValue(one('9')), 9)
|
|
19
|
+
},
|
|
20
|
+
latinSmallLetterAF: () => {
|
|
21
|
+
assertEq(hexDigitValue(one('a')), 10)
|
|
22
|
+
assertEq(hexDigitValue(one('f')), 15)
|
|
23
|
+
},
|
|
24
|
+
latinCapitalLetterAF: () => {
|
|
25
|
+
assertEq(hexDigitValue(one('A')), 10)
|
|
26
|
+
assertEq(hexDigitValue(one('F')), 15)
|
|
27
|
+
},
|
|
28
|
+
notAHexDigit: () => {
|
|
29
|
+
assertEq(hexDigitValue(one('/')), null)
|
|
30
|
+
assertEq(hexDigitValue(one(':')), null)
|
|
31
|
+
assertEq(hexDigitValue(one('@')), null)
|
|
32
|
+
assertEq(hexDigitValue(one('G')), null)
|
|
33
|
+
assertEq(hexDigitValue(one('`')), null)
|
|
34
|
+
assertEq(hexDigitValue(one('g')), null)
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
hexDigitCodePoint: {
|
|
38
|
+
lowercaseDigits: () => {
|
|
39
|
+
assertEq(String.fromCodePoint(...values.map(v => hexDigitCodePoint(v))), '0123456789abcdef')
|
|
40
|
+
},
|
|
41
|
+
roundTrip: () => {
|
|
42
|
+
assertEq(stringify(values.map(v => hexDigitValue(hexDigitCodePoint(v)))), stringify(values))
|
|
43
|
+
},
|
|
44
|
+
},
|
|
13
45
|
throw: {
|
|
14
46
|
oneThrowsOnEmpty: () => one(''),
|
|
15
47
|
},
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
* Shared Unicode code-point contract for the UTF-8 and UTF-16 decoders: the
|
|
3
3
|
* error-tag mask used to flag invalid sequences, the streaming `decoder`
|
|
4
4
|
* factory that wraps a per-unit step and an end-of-input step into a single
|
|
5
|
-
* `List`-to-`List` conversion,
|
|
6
|
-
*
|
|
7
|
-
* share.
|
|
5
|
+
* `List`-to-`List` conversion, the `eofFlush` factory that builds that
|
|
6
|
+
* end-of-input step, and the code-point classification predicates (BMP /
|
|
7
|
+
* surrogate / supplementary-plane / overall validity) that both codecs share.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
|
+
*
|
|
11
|
+
* @import { List } from '../../types/list/types.ts'
|
|
12
|
+
* @import { StateScan } from '../../types/function/operator/types.ts'
|
|
10
13
|
*/
|
|
11
14
|
import type { List } from '../../types/list/types.ts';
|
|
12
15
|
import type { StateScan } from '../../types/function/operator/types.ts';
|
|
@@ -31,6 +34,21 @@ export declare const errorMask = 2147483648;
|
|
|
31
34
|
* @returns {(input: List<Unit>) => List<Cp>} A function converting a list of code units into a list of code points.
|
|
32
35
|
*/
|
|
33
36
|
export declare const decoder: <Unit, S, Cp>(byteOp: StateScan<Unit, S | null, List<Cp>>, eofOp: (state: S | null) => readonly [List<Cp>, S | null]) => (input: List<Unit>) => List<Cp>;
|
|
37
|
+
/**
|
|
38
|
+
* Builds the end-of-input step {@link decoder} needs, from the one function
|
|
39
|
+
* that differs between codecs.
|
|
40
|
+
*
|
|
41
|
+
* The flush contract is the same for every decoder: leftover state at the end
|
|
42
|
+
* of the input becomes **exactly one** error unit and the state resets to
|
|
43
|
+
* empty (`null`); with no leftover state nothing is emitted. Only the mapping
|
|
44
|
+
* from a non-empty state to its error unit is codec-specific.
|
|
45
|
+
*
|
|
46
|
+
* @template S
|
|
47
|
+
* @template Cp
|
|
48
|
+
* @param {(state: S) => Cp} toError - Turns a non-empty leftover state into a single error unit.
|
|
49
|
+
* @returns {(state: S | null) => readonly [List<Cp>, S | null]} The end-of-input step.
|
|
50
|
+
*/
|
|
51
|
+
export declare const eofFlush: <S, Cp>(toError: (state: S) => Cp) => (state: S | null) => readonly [List<Cp>, S | null];
|
|
34
52
|
/**
|
|
35
53
|
* Checks whether the 16-bit word (U16) is a high surrogate.
|
|
36
54
|
* Range: 0xD800 - 0xDBFF.
|
|
@@ -2,18 +2,17 @@
|
|
|
2
2
|
* Shared Unicode code-point contract for the UTF-8 and UTF-16 decoders: the
|
|
3
3
|
* error-tag mask used to flag invalid sequences, the streaming `decoder`
|
|
4
4
|
* factory that wraps a per-unit step and an end-of-input step into a single
|
|
5
|
-
* `List`-to-`List` conversion,
|
|
6
|
-
*
|
|
7
|
-
* share.
|
|
5
|
+
* `List`-to-`List` conversion, the `eofFlush` factory that builds that
|
|
6
|
+
* end-of-input step, and the code-point classification predicates (BMP /
|
|
7
|
+
* surrogate / supplementary-plane / overall validity) that both codecs share.
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
|
+
*
|
|
11
|
+
* @import { List } from '../../types/list/types.ts'
|
|
12
|
+
* @import { StateScan } from '../../types/function/operator/types.ts'
|
|
10
13
|
*/
|
|
11
14
|
|
|
12
|
-
import { flat, stateScan } from '../../types/list/module.f.mjs'
|
|
13
|
-
/** @import { List } from '../../types/list/types.ts' */
|
|
14
|
-
|
|
15
|
-
/** @import { StateScan } from '../../types/function/operator/types.ts' */
|
|
16
|
-
|
|
15
|
+
import { empty, flat, stateScan } from '../../types/list/module.f.mjs'
|
|
17
16
|
import { contains } from '../../types/range/module.f.mjs'
|
|
18
17
|
|
|
19
18
|
//
|
|
@@ -50,6 +49,23 @@ export const decoder = (
|
|
|
50
49
|
return input => flat(run(flat(/** @type {List<List<Unit|null>>} */([input, [null]]))))
|
|
51
50
|
}
|
|
52
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Builds the end-of-input step {@link decoder} needs, from the one function
|
|
54
|
+
* that differs between codecs.
|
|
55
|
+
*
|
|
56
|
+
* The flush contract is the same for every decoder: leftover state at the end
|
|
57
|
+
* of the input becomes **exactly one** error unit and the state resets to
|
|
58
|
+
* empty (`null`); with no leftover state nothing is emitted. Only the mapping
|
|
59
|
+
* from a non-empty state to its error unit is codec-specific.
|
|
60
|
+
*
|
|
61
|
+
* @template S
|
|
62
|
+
* @template Cp
|
|
63
|
+
* @param {(state: S) => Cp} toError - Turns a non-empty leftover state into a single error unit.
|
|
64
|
+
* @returns {(state: S | null) => readonly [List<Cp>, S | null]} The end-of-input step.
|
|
65
|
+
*/
|
|
66
|
+
export const eofFlush = toError => state =>
|
|
67
|
+
[state === null ? empty : [toError(state)], null]
|
|
68
|
+
|
|
53
69
|
/**
|
|
54
70
|
* Unicode code-point classification boundaries. The surrogate block
|
|
55
71
|
* (`0xD800`–`0xDFFF`) splits into a high half (`0xD800`–`0xDBFF`) and a low half
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { assertEq } from '../../asserts/module.f.mjs'
|
|
2
|
+
import { toArray } from '../../types/list/module.f.mjs'
|
|
1
3
|
import {
|
|
4
|
+
eofFlush,
|
|
2
5
|
isBmpCodePoint,
|
|
3
6
|
isHighSurrogate,
|
|
4
7
|
isLowSurrogate,
|
|
@@ -12,7 +15,32 @@ const check = (actual, expected) => {
|
|
|
12
15
|
if (actual !== expected) { throw `${actual} !== ${expected}` }
|
|
13
16
|
}
|
|
14
17
|
|
|
18
|
+
/**
|
|
19
|
+
* A stand-in for a codec's state-to-error function.
|
|
20
|
+
*
|
|
21
|
+
* @type {(state: number) => number}
|
|
22
|
+
*/
|
|
23
|
+
const negate = state => -state
|
|
24
|
+
|
|
25
|
+
const flush = eofFlush(negate)
|
|
26
|
+
|
|
15
27
|
export const proof = {
|
|
28
|
+
eofFlush: [
|
|
29
|
+
// no leftover state: nothing is flushed, the state stays empty
|
|
30
|
+
() => {
|
|
31
|
+
const [out, next] = flush(null)
|
|
32
|
+
assertEq(toArray(out).length, 0)
|
|
33
|
+
assertEq(next, null)
|
|
34
|
+
},
|
|
35
|
+
// leftover state: exactly one error unit, then the state resets
|
|
36
|
+
() => {
|
|
37
|
+
const [out, next] = flush(42)
|
|
38
|
+
const [first, ...rest] = toArray(out)
|
|
39
|
+
assertEq(first, -42)
|
|
40
|
+
assertEq(rest.length, 0)
|
|
41
|
+
assertEq(next, null)
|
|
42
|
+
},
|
|
43
|
+
],
|
|
16
44
|
isHighSurrogate: [
|
|
17
45
|
() => check(isHighSurrogate(0xd800), true),
|
|
18
46
|
() => check(isHighSurrogate(0xdbff), true),
|