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
|
@@ -9,32 +9,19 @@
|
|
|
9
9
|
* scheduling and pass/fail counting.
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
|
+
*
|
|
13
|
+
* @import { Effect, Operation } from '../effects/types.ts'
|
|
14
|
+
* @import { LoadModuleOperations, ModuleMap } from '../dev/types.ts'
|
|
15
|
+
* @import { TestFn, TestEntry, TestSet, Path, Reporter, _TestState, _TestAndPath } from './types.ts'
|
|
16
|
+
* @import { All, Await, Env, NodeProgram, NodeProgramOptions, Program, Sandbox, SandboxResult, Test, TestContext, Write, WriteConsoles } from '../effects/node/types.ts'
|
|
12
17
|
*/
|
|
13
18
|
|
|
14
19
|
import { reset, fgGreen, fgRed, bold, csiWrite } from '../text/sgr/module.f.mjs'
|
|
15
20
|
import { all, awaitIfPromise, sandbox, test } from '../effects/node/module.f.mjs'
|
|
16
|
-
|
|
17
|
-
All,
|
|
18
|
-
Await,
|
|
19
|
-
Env,
|
|
20
|
-
NodeProgram,
|
|
21
|
-
NodeProgramOptions,
|
|
22
|
-
Program,
|
|
23
|
-
Sandbox,
|
|
24
|
-
SandboxResult,
|
|
25
|
-
Test,
|
|
26
|
-
TestContext,
|
|
27
|
-
Write,
|
|
28
|
-
WriteConsoles
|
|
29
|
-
} from '../effects/node/types.ts' */
|
|
30
|
-
import { history, historyStep, pure, step } from '../effects/module.f.mjs'
|
|
31
|
-
/** @import { Effect, Operation } from '../effects/types.ts' */
|
|
32
|
-
import { eff } from '../effects/eff/module.f.mjs'
|
|
21
|
+
import { history, historyStep, mapStep, pure, step } from '../effects/module.f.mjs'
|
|
33
22
|
import { loadModuleMap } from '../dev/module.f.mjs'
|
|
34
|
-
/** @import { LoadModuleOperations, ModuleMap } from '../dev/types.ts' */
|
|
35
23
|
import { invert } from '../types/result/module.f.mjs'
|
|
36
24
|
import { definedEntries } from '../types/object/module.f.mjs'
|
|
37
|
-
/** @import { TestFn, TestEntry, TestSet, Path, Reporter, _TestState, _TestAndPath } from './types.ts' */
|
|
38
25
|
|
|
39
26
|
/** @type {(delta: number) => (ts: _TestState) => _TestState} */
|
|
40
27
|
const addPass = delta => ts =>
|
|
@@ -131,27 +118,21 @@ export const registerModule = (ctx, k, v, star) => {
|
|
|
131
118
|
const base = fmtImport(k, path)
|
|
132
119
|
const name = throws ? base : `${base}${star}`
|
|
133
120
|
return test(ctx, name, throws, (/** @type {TestContext} */ t) =>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
.step(() => pure(undefined))
|
|
145
|
-
.value
|
|
146
|
-
})
|
|
147
|
-
.value
|
|
121
|
+
step(awaitIfPromise(fn()), resolved => {
|
|
122
|
+
if (throws) {
|
|
123
|
+
return pure(undefined)
|
|
124
|
+
}
|
|
125
|
+
const sub = collectTests([...path, null], false, resolved)
|
|
126
|
+
if (sub.length === 0) {
|
|
127
|
+
return pure(undefined)
|
|
128
|
+
}
|
|
129
|
+
return mapStep(all(...sub.map(e => registerOne(t, e))), () => undefined)
|
|
130
|
+
})
|
|
148
131
|
)
|
|
149
132
|
}
|
|
150
133
|
const tests = collectTests([], false, v)
|
|
151
134
|
if (tests.length === 0) { return pure(undefined) }
|
|
152
|
-
return
|
|
153
|
-
.step(() => pure(undefined))
|
|
154
|
-
.value
|
|
135
|
+
return mapStep(all(...tests.map(e => registerOne(ctx, e))), () => undefined)
|
|
155
136
|
}
|
|
156
137
|
|
|
157
138
|
/** @type {(a: _TestState, b: _TestState) => _TestState} */
|
|
@@ -194,13 +175,9 @@ const runModule = ({ result, test }) => (k, v) => ts => {
|
|
|
194
175
|
/** @type {(path: Path, throws: boolean, v: unknown) => Effect<O | All, _TestState>} */
|
|
195
176
|
const walk = (path, throws, v) => {
|
|
196
177
|
const effects = collectTests(path, throws, v).map(one)
|
|
197
|
-
return
|
|
198
|
-
.step(states => pure(states.reduce(mergeState, zero)))
|
|
199
|
-
.value
|
|
178
|
+
return mapStep(all(...effects), states => states.reduce(mergeState, zero))
|
|
200
179
|
}
|
|
201
|
-
return
|
|
202
|
-
.step(delta => pure(mergeState(ts, delta)))
|
|
203
|
-
.value
|
|
180
|
+
return mapStep(walk([], false, v), delta => mergeState(ts, delta))
|
|
204
181
|
}
|
|
205
182
|
|
|
206
183
|
/** @type {(moduleMap: ModuleMap) => readonly (readonly [string, unknown])[]} */
|
|
@@ -220,11 +197,16 @@ const proofEntries = moduleMap =>
|
|
|
220
197
|
export const runModuleMap = reporter => moduleMap => {
|
|
221
198
|
const { summary } = reporter
|
|
222
199
|
const modules = proofEntries(moduleMap)
|
|
223
|
-
|
|
224
|
-
.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
200
|
+
const total = mapStep(
|
|
201
|
+
all(...modules.map(([k, v]) => runModule(reporter)(k, v)(zero))),
|
|
202
|
+
m => m.reduce(mergeState, zero))
|
|
203
|
+
// The totals are still needed after the summary has been printed, so they
|
|
204
|
+
// are carried forward in a history rather than closed over by a nested
|
|
205
|
+
// continuation.
|
|
206
|
+
const reported = historyStep(
|
|
207
|
+
history(total),
|
|
208
|
+
ts => summary(ts.pass, ts.fail, ts.time))
|
|
209
|
+
return mapStep(reported, ([, ts]) => ts.fail !== 0 ? 1 : 0)
|
|
228
210
|
}
|
|
229
211
|
|
|
230
212
|
/**
|
|
@@ -237,9 +219,7 @@ export const runModuleMap = reporter => moduleMap => {
|
|
|
237
219
|
* @returns {Program<O | All | LoadModuleOperations>}
|
|
238
220
|
*/
|
|
239
221
|
export const testAll = reporter => options =>
|
|
240
|
-
|
|
241
|
-
.step(runModuleMap(reporter))
|
|
242
|
-
.value
|
|
222
|
+
step(loadModuleMap(options.env), runModuleMap(reporter))
|
|
243
223
|
|
|
244
224
|
/**
|
|
245
225
|
* Registers all modules in `moduleMap` that export a `proof` property with
|
|
@@ -250,9 +230,7 @@ export const testAll = reporter => options =>
|
|
|
250
230
|
const registerModuleMap = (ctx, star) => moduleMap => {
|
|
251
231
|
const modules = proofEntries(moduleMap)
|
|
252
232
|
if (modules.length === 0) { return pure(undefined) }
|
|
253
|
-
return
|
|
254
|
-
.step(() => pure(undefined))
|
|
255
|
-
.value
|
|
233
|
+
return mapStep(all(...modules.map(([k, v]) => registerModule(ctx, k, v, star))), () => undefined)
|
|
256
234
|
}
|
|
257
235
|
|
|
258
236
|
/** @type {(c: string) => boolean} */
|
|
@@ -341,9 +319,7 @@ export const ghEscape = s =>
|
|
|
341
319
|
* @type {(file: string, path: Path, entry: TestEntry) => Effect<Sandbox, SandboxResult<unknown>>}
|
|
342
320
|
*/
|
|
343
321
|
export const defaultTest = (file, path, { fn, throws }) =>
|
|
344
|
-
|
|
345
|
-
.step(r => pure(throws ? { ...r, result: invert(r.result) } : r))
|
|
346
|
-
.value
|
|
322
|
+
mapStep(sandbox(fn), r => throws ? { ...r, result: invert(r.result) } : r)
|
|
347
323
|
|
|
348
324
|
/** @type {(file: string, path: Path, color: string, label: string, duration: number) => string} */
|
|
349
325
|
const fmtResultLine = (file, path, color, label, duration) =>
|
|
@@ -375,14 +351,14 @@ export const defaultReporter = options => {
|
|
|
375
351
|
? csiLog(fmtResultLine(file, path, fgGreen, 'ok', duration) + (throws ? ' # EXPECTED TO THROW' : ''))
|
|
376
352
|
: isGitHub
|
|
377
353
|
? csiError(`::error file=${file},line=1,title=${ghEscape(fmtImport(file, path))}::${ghEscape(String(v))}`)
|
|
378
|
-
:
|
|
379
|
-
|
|
380
|
-
|
|
354
|
+
: step(
|
|
355
|
+
csiError(fmtResultLine(file, path, fgRed, 'error', duration)),
|
|
356
|
+
() => csiError(`${fgRed}${v}${reset}`)),
|
|
381
357
|
summary: (pass, fail, time) => {
|
|
382
358
|
const fgFail = fail === 0 ? fgGreen : fgRed
|
|
383
|
-
return
|
|
384
|
-
|
|
385
|
-
|
|
359
|
+
return step(
|
|
360
|
+
csiLog(`${bold}Number of tests: pass: ${fgGreen}${pass}${reset}${bold}, fail: ${fgFail}${fail}${reset}${bold}, total: ${pass + fail}${reset}`),
|
|
361
|
+
() => csiLog(`${bold}Time: ${timeFormat(time)}${reset}`))
|
|
386
362
|
},
|
|
387
363
|
test: defaultTest,
|
|
388
364
|
}
|
|
@@ -407,8 +383,6 @@ export const main =
|
|
|
407
383
|
export const register = o => {
|
|
408
384
|
const star = o.inlineTestContext ? ' ...' : ''
|
|
409
385
|
const ctx = o.engine === 'bun' ? o.bunTestContext : o.testContext
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
.step(() => pure(0))
|
|
413
|
-
.value
|
|
386
|
+
const registered = step(loadModuleMap(o.env), registerModuleMap(ctx, star))
|
|
387
|
+
return mapStep(registered, () => 0)
|
|
414
388
|
}
|
|
@@ -11,9 +11,9 @@ import { log } from '../effects/node/module.f.mjs'
|
|
|
11
11
|
import { defaultNodeProgramOptions, emptyState, virtual } from '../effects/node/virtual/module.f.mjs'
|
|
12
12
|
import { assert, assertEq } from '../asserts/module.f.mjs'
|
|
13
13
|
import {
|
|
14
|
-
testAll,
|
|
14
|
+
testAll, fmtPath, fmtTerm, fmtImport, ghEscape, isInteger, isIdentifier,
|
|
15
15
|
registerModule, parseTestSet,
|
|
16
|
-
defaultTest,
|
|
16
|
+
defaultTest, main,
|
|
17
17
|
} from './module.f.mjs'
|
|
18
18
|
import { run as mockRun } from '../effects/mock/module.f.mjs'
|
|
19
19
|
import { shouldLoad } from '../dev/module.f.mjs'
|
|
@@ -79,13 +79,13 @@ const run = (dir, initCwd = '.') => {
|
|
|
79
79
|
return [parseEvents(finalState.stdout), exitCode]
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
// Runs the
|
|
83
|
-
// terminal and GitHub output formats can be asserted directly.
|
|
82
|
+
// Runs the `fjs t` entry point (`main`) and returns its captured stdout/stderr
|
|
83
|
+
// so the terminal and GitHub output formats can be asserted directly.
|
|
84
84
|
/** @type {(dir: Record<string, JsModule>, github?: boolean) => readonly [string, string, number]} */
|
|
85
85
|
const runMain = (dir, github = false) => {
|
|
86
86
|
const state = { ...emptyState, root: dir }
|
|
87
87
|
const opts = options('.', github)
|
|
88
|
-
const [finalState, exitCode] = virtual(state)(
|
|
88
|
+
const [finalState, exitCode] = virtual(state)(main(opts))
|
|
89
89
|
return [finalState.stdout, finalState.stderr, exitCode]
|
|
90
90
|
}
|
|
91
91
|
|
package/fjs/fsc/bnf.f.d.mts
CHANGED
package/fjs/fsc/bnf.f.mjs
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @import { Rule } from '../bnf/types.ts'
|
|
3
|
+
*/
|
|
4
|
+
|
|
1
5
|
import { range, remove, set, option } from '../bnf/module.f.mjs'
|
|
2
|
-
/** @import { Rule } from '../bnf/types.ts' */
|
|
3
6
|
import { digit, json, unicode, ws0, ws1, wsNoNewLine0 } from './json.f.mjs'
|
|
4
7
|
|
|
5
8
|
/** @type {Rule} */
|
package/fjs/fsc/json.f.d.mts
CHANGED
package/fjs/fsc/json.f.mjs
CHANGED
package/fjs/fsc/module.f.d.mts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FunctionalScript command utilities for compile workflows.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts'
|
|
7
|
+
* @import { List } from '../types/list/types.ts'
|
|
8
|
+
* @import { Range } from '../types/range/types.ts'
|
|
9
|
+
*/
|
|
1
10
|
import type { RangeMapArray } from '../types/range_map/types.ts';
|
|
2
11
|
export type _Result = readonly [readonly string[], _ToResult];
|
|
3
12
|
export type _ToResult = (codePoint: number) => _Result;
|
package/fjs/fsc/module.f.mjs
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
* FunctionalScript command utilities for compile workflows.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts'
|
|
7
|
+
* @import { List } from '../types/list/types.ts'
|
|
8
|
+
* @import { Range } from '../types/range/types.ts'
|
|
5
9
|
*/
|
|
10
|
+
|
|
6
11
|
import { strictEqual } from '../types/function/operator/module.f.mjs'
|
|
7
12
|
import { merge as rangeMapMerge, fromRange, get } from '../types/range_map/module.f.mjs'
|
|
8
|
-
/** @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts' */
|
|
9
13
|
import { reduce as listReduce, toArray, map } from '../types/list/module.f.mjs'
|
|
10
|
-
/** @import { List } from '../types/list/types.ts' */
|
|
11
14
|
import { range as asciiRange } from '../text/ascii/module.f.mjs'
|
|
12
15
|
import { flip, fn } from '../types/function/module.f.mjs'
|
|
13
16
|
import { one } from '../types/range/module.f.mjs'
|
|
14
|
-
/** @import { Range } from '../types/range/types.ts' */
|
|
15
17
|
import { assertEq } from '../asserts/module.f.mjs'
|
|
16
18
|
|
|
17
19
|
const fromCharCode = String.fromCharCode
|
package/fjs/fsm/proof.f.d.mts
CHANGED
package/fjs/fsm/proof.f.mjs
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Grammar } from './module.f.mjs'
|
|
3
|
+
*/
|
|
4
|
+
|
|
2
5
|
import { dfa, run, toRange, toUnion } from './module.f.mjs'
|
|
3
6
|
import { union } from '../types/byte_set/module.f.mjs'
|
|
4
7
|
import { sort, fromEntries } from '../types/object/module.f.mjs'
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* and numeric literals (including `BigFloat`).
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Scan, StateScan } from '../../types/function/operator/types.ts'
|
|
9
|
+
* @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts'
|
|
10
|
+
* @import { List } from '../../types/list/types.ts'
|
|
11
|
+
* @import { Entry } from '../../types/ordered_map/types.ts'
|
|
12
|
+
* @import { Range as NumberRange } from '../../types/range/types.ts'
|
|
13
|
+
* @import { StringToken, NumberToken, BigIntToken, ErrorToken, WhitespaceToken, NewLineToken, IdToken, CommentToken, EofToken, JsToken, TokenMetadata, JsTokenWithMetadata, _TokenizerStateWithMetadata, _TokenizerState, _ErrorMessage, _InitialState, _ParseIdState, _ParseWhitespaceState, _ParseNewLineState, _ParseStringState, _ParseEscapeCharState, _ParseOperatorState, _ParseCommentState, _ParseUnicodeCharState, _ParseNumberState, _ParseNumberBuffer, _InvalidNumberState, _EofState, _CharCodeOrEof, _ToToken, _CreateToToken, _RangeFunc, _RangeMapToToken, } from './types.ts'
|
|
7
14
|
*/
|
|
8
15
|
import type { List } from '../../types/list/types.ts';
|
|
9
16
|
import type { JsToken, JsTokenWithMetadata } from './types.ts';
|
|
@@ -4,17 +4,19 @@
|
|
|
4
4
|
* and numeric literals (including `BigFloat`).
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { Scan, StateScan } from '../../types/function/operator/types.ts'
|
|
9
|
+
* @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts'
|
|
10
|
+
* @import { List } from '../../types/list/types.ts'
|
|
11
|
+
* @import { Entry } from '../../types/ordered_map/types.ts'
|
|
12
|
+
* @import { Range as NumberRange } from '../../types/range/types.ts'
|
|
13
|
+
* @import { StringToken, NumberToken, BigIntToken, ErrorToken, WhitespaceToken, NewLineToken, IdToken, CommentToken, EofToken, JsToken, TokenMetadata, JsTokenWithMetadata, _TokenizerStateWithMetadata, _TokenizerState, _ErrorMessage, _InitialState, _ParseIdState, _ParseWhitespaceState, _ParseNewLineState, _ParseStringState, _ParseEscapeCharState, _ParseOperatorState, _ParseCommentState, _ParseUnicodeCharState, _ParseNumberState, _ParseNumberBuffer, _InvalidNumberState, _EofState, _CharCodeOrEof, _ToToken, _CreateToToken, _RangeFunc, _RangeMapToToken, } from './types.ts'
|
|
7
14
|
*/
|
|
8
15
|
|
|
9
|
-
/** @import { Scan, StateScan } from '../../types/function/operator/types.ts' */
|
|
10
16
|
import { strictEqual } from '../../types/function/operator/module.f.mjs'
|
|
11
|
-
/** @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts' */
|
|
12
17
|
import { merge, fromRange, get } from '../../types/range_map/module.f.mjs'
|
|
13
|
-
/** @import { List } from '../../types/list/types.ts' */
|
|
14
18
|
import { empty, stateScan, flat, toArray, reduce as listReduce, scan, map as listMap } from '../../types/list/module.f.mjs'
|
|
15
19
|
import { at, fromEntries } from '../../types/ordered_map/module.f.mjs'
|
|
16
|
-
/** @import { Entry } from '../../types/ordered_map/types.ts' */
|
|
17
|
-
/** @import { Range as NumberRange } from '../../types/range/types.ts' */
|
|
18
20
|
import { one } from '../../types/range/module.f.mjs'
|
|
19
21
|
import {
|
|
20
22
|
range,
|
|
@@ -51,8 +53,9 @@ import {
|
|
|
51
53
|
digit0,
|
|
52
54
|
colon,
|
|
53
55
|
//
|
|
56
|
+
hexDigitValue,
|
|
57
|
+
//
|
|
54
58
|
latinCapitalLetterRange,
|
|
55
|
-
latinCapitalLetterA,
|
|
56
59
|
latinCapitalLetterE,
|
|
57
60
|
//
|
|
58
61
|
leftSquareBracket,
|
|
@@ -61,7 +64,6 @@ import {
|
|
|
61
64
|
lowLine,
|
|
62
65
|
//
|
|
63
66
|
latinSmallLetterRange,
|
|
64
|
-
latinSmallLetterA,
|
|
65
67
|
latinSmallLetterB,
|
|
66
68
|
latinSmallLetterE,
|
|
67
69
|
latinSmallLetterF,
|
|
@@ -75,41 +77,6 @@ import {
|
|
|
75
77
|
dollarSign
|
|
76
78
|
} from '../../text/ascii/module.f.mjs'
|
|
77
79
|
import { todo, assertEq } from '../../asserts/module.f.mjs'
|
|
78
|
-
/** @import {
|
|
79
|
-
StringToken,
|
|
80
|
-
NumberToken,
|
|
81
|
-
BigIntToken,
|
|
82
|
-
ErrorToken,
|
|
83
|
-
WhitespaceToken,
|
|
84
|
-
NewLineToken,
|
|
85
|
-
IdToken,
|
|
86
|
-
CommentToken,
|
|
87
|
-
EofToken,
|
|
88
|
-
JsToken,
|
|
89
|
-
TokenMetadata,
|
|
90
|
-
JsTokenWithMetadata,
|
|
91
|
-
_TokenizerStateWithMetadata,
|
|
92
|
-
_TokenizerState,
|
|
93
|
-
_ErrorMessage,
|
|
94
|
-
_InitialState,
|
|
95
|
-
_ParseIdState,
|
|
96
|
-
_ParseWhitespaceState,
|
|
97
|
-
_ParseNewLineState,
|
|
98
|
-
_ParseStringState,
|
|
99
|
-
_ParseEscapeCharState,
|
|
100
|
-
_ParseOperatorState,
|
|
101
|
-
_ParseCommentState,
|
|
102
|
-
_ParseUnicodeCharState,
|
|
103
|
-
_ParseNumberState,
|
|
104
|
-
_ParseNumberBuffer,
|
|
105
|
-
_InvalidNumberState,
|
|
106
|
-
_EofState,
|
|
107
|
-
_CharCodeOrEof,
|
|
108
|
-
_ToToken,
|
|
109
|
-
_CreateToToken,
|
|
110
|
-
_RangeFunc,
|
|
111
|
-
_RangeMapToToken,
|
|
112
|
-
} from './types.ts' */
|
|
113
80
|
|
|
114
81
|
const { fromCharCode } = String
|
|
115
82
|
|
|
@@ -150,9 +117,6 @@ const rangeSetTerminalForNumber = [
|
|
|
150
117
|
one(tilde),
|
|
151
118
|
]
|
|
152
119
|
|
|
153
|
-
const rangeSmallAF = range('af')
|
|
154
|
-
const rangeCapitalAF = range('AF')
|
|
155
|
-
|
|
156
120
|
const rangeIdStart = [
|
|
157
121
|
latinSmallLetterRange,
|
|
158
122
|
latinCapitalLetterRange,
|
|
@@ -596,22 +560,22 @@ const parseUnicodeCharDefault = state => input => {
|
|
|
596
560
|
return [{ first: { kind: 'error', message: 'invalid hex value' }, tail: next[0] }, next[1]]
|
|
597
561
|
}
|
|
598
562
|
|
|
599
|
-
/**
|
|
600
|
-
|
|
601
|
-
|
|
563
|
+
/**
|
|
564
|
+
* `hexDigitValue` classifies the code point and decodes it in one step, so this
|
|
565
|
+
* state needs no range-map dispatch: a `null` value is exactly the non-hex
|
|
566
|
+
* input the default handler rejects.
|
|
567
|
+
*
|
|
568
|
+
* @type {(state: _ParseUnicodeCharState) => (input: number) => readonly [List<JsToken>, _TokenizerState]}
|
|
569
|
+
*/
|
|
570
|
+
const parseUnicodeCharStateOp = state => input => {
|
|
571
|
+
const hexValue = hexDigitValue(input)
|
|
572
|
+
if (hexValue === null) { return parseUnicodeCharDefault(state)(input) }
|
|
602
573
|
const newUnicode = state.unicode | (hexValue << (3 - state.hexIndex) * 4)
|
|
603
574
|
return [empty, state.hexIndex === 3 ?
|
|
604
575
|
{ kind: 'string', value: appendChar(state.value)(newUnicode) } :
|
|
605
576
|
{ kind: 'unicodeChar', value: state.value, unicode: newUnicode, hexIndex: state.hexIndex + 1 }]
|
|
606
577
|
}
|
|
607
578
|
|
|
608
|
-
/** @type {(state: _ParseUnicodeCharState) => (input: number) => readonly [List<JsToken>, _TokenizerState]} */
|
|
609
|
-
const parseUnicodeCharStateOp = create(parseUnicodeCharDefault)([
|
|
610
|
-
rangeFunc(digitRange)(parseUnicodeCharHex(digit0)),
|
|
611
|
-
rangeFunc(rangeSmallAF)(parseUnicodeCharHex(latinSmallLetterA - 10)),
|
|
612
|
-
rangeFunc(rangeCapitalAF)(parseUnicodeCharHex(latinCapitalLetterA - 10))
|
|
613
|
-
])
|
|
614
|
-
|
|
615
579
|
/** @type {(s: string) => JsToken} */
|
|
616
580
|
const idToToken = s => at(s)(keywordMap) ?? { kind: 'id', value: s }
|
|
617
581
|
|
package/fjs/mcp/module.f.d.mts
CHANGED
|
@@ -1,3 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The FJS MCP server: the composition root the `fjs mcp` / `m` CLI command
|
|
3
|
+
* runs. Session configuration (`McpConfig`), the top-level entry point
|
|
4
|
+
* (`casMcpServer`, wiring `mcpStep` + `stdioTransport` from
|
|
5
|
+
* `fjs/protocol/mcp/`), and the composed tool registry — nothing CAS- or
|
|
6
|
+
* Evo-specific lives here, it only knows about tool *registries*, not what is
|
|
7
|
+
* in them, so a future non-CAS tool set can land as a new sibling of
|
|
8
|
+
* `fjs/mcp/cas/` and `fjs/mcp/evo/` without touching either of them.
|
|
9
|
+
*
|
|
10
|
+
* ## Tools
|
|
11
|
+
*
|
|
12
|
+
* | Tool | args | action | result |
|
|
13
|
+
* |----------------|------------------------------------------------|------------------|--------------------------------------|
|
|
14
|
+
* | `cas_add` | `{ content, type? }` | `c.write(...)` | hash (cBase32) |
|
|
15
|
+
* | `cas_get` | `{ hash, content?: boolean }` | `c.read(key)` | JSON `{length,mimeType,type[,uri][,text\|blob]}` |
|
|
16
|
+
* | `cas_list` | `{}` | `c.list()` | hashes, one per line |
|
|
17
|
+
* | `evo_list` | `{ archived? }` | `e.list(...)` | subjects, as a JSON array of strings |
|
|
18
|
+
* | `evo_head` | `{ subject }` | `e.head(...)` | head hashes, one per line |
|
|
19
|
+
* | `evo_revision` | `{ hash }` | `e.revision(...)`| the revision, as JSON |
|
|
20
|
+
* | `evo_add` | `{ parents, snapshot?, subject?, archived? }` | `e.add(...)` | hash (cBase32) |
|
|
21
|
+
*
|
|
22
|
+
* `cas_add`/`cas_get`/`cas_list` are `fjs/mcp/cas` — see that module for tool
|
|
23
|
+
* documentation (input encoding, output shape, error convention). `evo_*` is
|
|
24
|
+
* `fjs/mcp/evo`. Both tool sets run in one process, sharing one `~/.cas/`
|
|
25
|
+
* store and one in-memory Evo cache scanned once at startup (`initEvo`).
|
|
26
|
+
*
|
|
27
|
+
* @module
|
|
28
|
+
*
|
|
29
|
+
* @import { Effect } from '../effects/types.ts'
|
|
30
|
+
* @import { MemOp } from '../effects/memory/types.ts'
|
|
31
|
+
* @import { Read, Write } from '../effects/node/types.ts'
|
|
32
|
+
* @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts'
|
|
33
|
+
* @import { FileCasOperation } from '../cas/types.ts'
|
|
34
|
+
* @import { Cache } from '../cas/evo/types.ts'
|
|
35
|
+
* @import { Key } from '../effects/memory/types.ts'
|
|
36
|
+
*/
|
|
1
37
|
import type { Effect } from '../effects/types.ts';
|
|
2
38
|
import type { MemOp } from '../effects/memory/types.ts';
|
|
3
39
|
import type { Read, Write } from '../effects/node/types.ts';
|
|
@@ -5,7 +41,6 @@ import type { McpConfig, McpHandlers } from '../protocol/mcp/types.ts';
|
|
|
5
41
|
import type { FileCasOperation } from '../cas/types.ts';
|
|
6
42
|
import type { Cache } from '../cas/evo/types.ts';
|
|
7
43
|
import type { Key } from '../effects/memory/types.ts';
|
|
8
|
-
/** @import { Key } from '../effects/memory/types.ts' */
|
|
9
44
|
/**
|
|
10
45
|
* MCP handlers for `FileCas` (`fjs/mcp/cas`) plus the Evo API (`fjs/mcp/evo`)
|
|
11
46
|
* layered on it, bound to `home` and an already-built Evo cache slot (see
|
package/fjs/mcp/module.f.mjs
CHANGED
|
@@ -25,25 +25,27 @@
|
|
|
25
25
|
* store and one in-memory Evo cache scanned once at startup (`initEvo`).
|
|
26
26
|
*
|
|
27
27
|
* @module
|
|
28
|
+
*
|
|
29
|
+
* @import { Effect } from '../effects/types.ts'
|
|
30
|
+
* @import { MemOp } from '../effects/memory/types.ts'
|
|
31
|
+
* @import { Read, Write } from '../effects/node/types.ts'
|
|
32
|
+
* @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts'
|
|
33
|
+
* @import { FileCasOperation } from '../cas/types.ts'
|
|
34
|
+
* @import { Cache } from '../cas/evo/types.ts'
|
|
35
|
+
* @import { Key } from '../effects/memory/types.ts'
|
|
28
36
|
*/
|
|
37
|
+
|
|
29
38
|
import { step } from '../effects/module.f.mjs'
|
|
30
|
-
/** @import { Effect } from '../effects/types.ts' */
|
|
31
39
|
import { create } from '../effects/memory/module.f.mjs'
|
|
32
|
-
/** @import { MemOp } from '../effects/memory/types.ts' */
|
|
33
|
-
/** @import { Read, Write } from '../effects/node/types.ts' */
|
|
34
40
|
import { stdioTransport } from '../protocol/mcp/stdio/module.f.mjs'
|
|
35
41
|
import {
|
|
36
42
|
mcpStep, uninitializedState, fromRegistry,
|
|
37
43
|
} from '../protocol/mcp/module.f.mjs'
|
|
38
|
-
/** @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts' */
|
|
39
44
|
import { fileCas } from '../cas/module.f.mjs'
|
|
40
|
-
/** @import { FileCasOperation } from '../cas/types.ts' */
|
|
41
45
|
import { initEvo, evo } from '../cas/evo/module.f.mjs'
|
|
42
|
-
/** @import { Cache } from '../cas/evo/types.ts' */
|
|
43
46
|
import { sha256 } from '../crypto/sha2/module.f.mjs'
|
|
44
47
|
import { casToolRegistry } from './cas/module.f.mjs'
|
|
45
48
|
import { evoToolRegistry } from './evo/module.f.mjs'
|
|
46
|
-
/** @import { Key } from '../effects/memory/types.ts' */
|
|
47
49
|
|
|
48
50
|
// ── Handlers ────────────────────────────────────────────────────────────────────
|
|
49
51
|
|
package/fjs/mcp/proof.f.d.mts
CHANGED
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../media/json/types.ts'
|
|
3
|
+
* @import { Effect, Operation } from '../effects/types.ts'
|
|
4
|
+
* @import { Response } from '../protocol/json_rpc/types.ts'
|
|
5
|
+
* @import { Vec } from '../types/bit_vec/types.ts'
|
|
6
|
+
* @import { FileCasOperation } from '../cas/types.ts'
|
|
7
|
+
* @import { List } from '../effects/list/types.ts'
|
|
8
|
+
* @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts'
|
|
9
|
+
* @import { IoResult, Mkdir, Now, RandomInt, ReadBytes, Rename, } from '../effects/node/types.ts'
|
|
10
|
+
* @import { Dir } from '../effects/node/virtual/types.ts'
|
|
11
|
+
*/
|
|
2
12
|
export declare const proof: {
|
|
3
13
|
getMetaLargeMultiChunkBlobNoError: () => void;
|
|
4
14
|
getMetaLargeMultiChunkUtf8Symbols: () => void;
|
package/fjs/mcp/proof.f.mjs
CHANGED
|
@@ -1,40 +1,33 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* @import { Unknown } from '../media/json/types.ts'
|
|
3
|
+
* @import { Effect, Operation } from '../effects/types.ts'
|
|
4
|
+
* @import { Response } from '../protocol/json_rpc/types.ts'
|
|
5
|
+
* @import { Vec } from '../types/bit_vec/types.ts'
|
|
6
|
+
* @import { FileCasOperation } from '../cas/types.ts'
|
|
7
|
+
* @import { List } from '../effects/list/types.ts'
|
|
8
|
+
* @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts'
|
|
9
|
+
* @import { IoResult, Mkdir, Now, RandomInt, ReadBytes, Rename, } from '../effects/node/types.ts'
|
|
10
|
+
* @import { Dir } from '../effects/node/virtual/types.ts'
|
|
11
|
+
*/
|
|
2
12
|
|
|
3
13
|
import { assert, assertEq } from '../asserts/module.f.mjs'
|
|
4
14
|
import { pure, step } from '../effects/module.f.mjs'
|
|
5
|
-
/** @import { Effect, Operation } from '../effects/types.ts' */
|
|
6
15
|
import { create } from '../effects/memory/module.f.mjs'
|
|
7
16
|
import { parse as parseJson } from '../media/json/module.f.mjs'
|
|
8
17
|
import { number as rttiNumber, option, string as rttiString } from '../types/rtti/module.f.mjs'
|
|
9
18
|
import { parse as rttiParse } from '../types/rtti/parse/module.f.mjs'
|
|
10
|
-
/** @import { Response } from '../protocol/json_rpc/types.ts' */
|
|
11
|
-
/** @import { Vec } from '../types/bit_vec/types.ts' */
|
|
12
19
|
import { msb, u8ListToVec, vec8, repeat, length, maxLengthBytes } from '../types/bit_vec/module.f.mjs'
|
|
13
20
|
import { vecToCBase32 } from '../basen/cbase32/module.f.mjs'
|
|
14
21
|
import { encode as base64Encode } from '../basen/base64/module.f.mjs'
|
|
15
22
|
import { utf8 } from '../text/module.f.mjs'
|
|
16
23
|
import { fileCas } from '../cas/module.f.mjs'
|
|
17
|
-
/** @import { FileCasOperation } from '../cas/types.ts' */
|
|
18
24
|
import { dialect as revisionDialect, mediaType as revisionMediaType } from '../media/revision/module.f.mjs'
|
|
19
25
|
import { sha256 } from '../crypto/sha2/module.f.mjs'
|
|
20
26
|
import { nonEmpty, empty as elEmpty } from '../effects/list/module.f.mjs'
|
|
21
|
-
/** @import { List } from '../effects/list/types.ts' */
|
|
22
27
|
import {
|
|
23
28
|
mcpStep, uninitializedState,
|
|
24
29
|
} from '../protocol/mcp/module.f.mjs'
|
|
25
|
-
/** @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts' */
|
|
26
|
-
/**
|
|
27
|
-
* @import {
|
|
28
|
-
* IoResult,
|
|
29
|
-
* Mkdir,
|
|
30
|
-
* Now,
|
|
31
|
-
* RandomInt,
|
|
32
|
-
* ReadBytes,
|
|
33
|
-
* Rename,
|
|
34
|
-
* } from '../effects/node/types.ts'
|
|
35
|
-
*/
|
|
36
30
|
import { emptyState, virtual } from '../effects/node/virtual/module.f.mjs'
|
|
37
|
-
/** @import { Dir } from '../effects/node/virtual/types.ts' */
|
|
38
31
|
import { casConfig, casMcpHandlers } from './module.f.mjs'
|
|
39
32
|
import { ok as resultOk, unwrap } from '../types/result/module.f.mjs'
|
|
40
33
|
import { stdioTransport } from '../protocol/mcp/stdio/module.f.mjs'
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML serialization helpers: `Element`/`Attributes` builders, void-tag
|
|
3
|
+
* handling, attribute/text escaping, and a UTF-8 emitter for full documents.
|
|
4
|
+
* See `./types.ts` for the `Element`/`Node` type-level API.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { List } from '../../types/list/types.ts'
|
|
9
|
+
* @import { Entry, StringMap } from '../../types/object/types.ts'
|
|
10
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
11
|
+
* @import { Element, Node } from './types.ts'
|
|
12
|
+
*/
|
|
1
13
|
import type { List } from '../../types/list/types.ts';
|
|
2
14
|
import type { StringMap } from '../../types/object/types.ts';
|
|
3
15
|
import type { Vec } from '../../types/bit_vec/types.ts';
|
|
@@ -4,19 +4,21 @@
|
|
|
4
4
|
* See `./types.ts` for the `Element`/`Node` type-level API.
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
|
+
*
|
|
8
|
+
* @import { List } from '../../types/list/types.ts'
|
|
9
|
+
* @import { Entry, StringMap } from '../../types/object/types.ts'
|
|
10
|
+
* @import { Vec } from '../../types/bit_vec/types.ts'
|
|
11
|
+
* @import { Element, Node } from './types.ts'
|
|
7
12
|
*/
|
|
8
|
-
|
|
13
|
+
|
|
9
14
|
import { map, flatMap, flat, concat as listConcat } from '../../types/list/module.f.mjs'
|
|
10
15
|
import { concat, concat as stringConcat } from '../../types/string/module.f.mjs'
|
|
11
16
|
import { definedEntries } from '../../types/object/module.f.mjs'
|
|
12
|
-
/** @import { Entry, StringMap } from '../../types/object/types.ts' */
|
|
13
17
|
import { compose } from '../../types/function/module.f.mjs'
|
|
14
18
|
import { stringToList } from '../../text/utf16/module.f.mjs'
|
|
15
19
|
import { includes } from '../../types/array/module.f.mjs'
|
|
16
|
-
/** @import { Vec } from '../../types/bit_vec/types.ts' */
|
|
17
20
|
import { utf8 } from '../../text/module.f.mjs'
|
|
18
21
|
import { quotationMark, ampersand, lessThanSign, greaterThanSign } from '../../text/ascii/module.f.mjs'
|
|
19
|
-
/** @import { Element, Node } from './types.ts' */
|
|
20
22
|
|
|
21
23
|
const { fromCharCode } = String
|
|
22
24
|
|