functionalscript 0.36.0 → 0.38.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/README.md +1 -1
- package/{fs → fjs}/asn.1/module.f.js +1 -1
- package/{fs → fjs}/asn.1/proof.f.js +32 -94
- package/fjs/asserts/module.f.d.ts +36 -0
- package/fjs/asserts/module.f.js +39 -0
- package/fjs/asserts/proof.f.d.ts +11 -0
- package/fjs/asserts/proof.f.js +18 -0
- package/{fs → fjs}/base_n/module.f.js +3 -3
- package/{fs → fjs}/base_n/proof.f.js +15 -39
- package/{fs → fjs/basen}/base128/module.f.d.ts +1 -1
- package/{fs → fjs/basen}/base128/module.f.js +1 -1
- package/{fs → fjs/basen}/base128/proof.f.js +3 -3
- package/{fs → fjs/basen}/base64/module.f.d.ts +2 -2
- package/{fs → fjs/basen}/base64/module.f.js +25 -15
- package/{fs → fjs/basen}/base64/proof.f.d.ts +2 -0
- package/{fs → fjs/basen}/base64/proof.f.js +26 -6
- package/{fs → fjs/basen}/cbase32/module.f.d.ts +2 -2
- package/{fs → fjs/basen}/cbase32/module.f.js +2 -2
- package/{fs → fjs/basen}/cbase32/proof.f.js +16 -43
- package/fjs/bnf/data/module.f.d.ts +52 -0
- package/{fs → fjs}/bnf/data/module.f.js +56 -6
- package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/data/proof.f.js +59 -24
- package/{fs → fjs}/bnf/descent/module.f.d.ts +4 -14
- package/fjs/bnf/descent/module.f.js +124 -0
- package/{fs → fjs}/bnf/descent/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/descent/proof.f.js +59 -28
- package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
- package/{fs → fjs}/bnf/ll1/module.f.js +15 -13
- package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/ll1/proof.f.js +33 -16
- package/{fs → fjs}/bnf/module.f.d.ts +19 -5
- package/{fs → fjs}/bnf/module.f.js +14 -15
- package/fjs/bnf/proof.f.js +69 -0
- package/{fs → fjs}/bnf/testlib.f.js +2 -2
- package/{fs → fjs}/cas/cli/module.f.js +7 -7
- package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
- package/{fs → fjs}/cas/cli/proof.f.js +37 -74
- package/fjs/cas/evo/mcp/module.f.d.ts +19 -0
- package/fjs/cas/evo/mcp/module.f.js +56 -0
- package/fjs/cas/evo/mcp/proof.f.d.ts +9 -0
- package/fjs/cas/evo/mcp/proof.f.js +95 -0
- package/fjs/cas/evo/module.f.d.ts +138 -0
- package/fjs/cas/evo/module.f.js +309 -0
- package/fjs/cas/evo/proof.f.d.ts +32 -0
- package/fjs/cas/evo/proof.f.js +453 -0
- package/fjs/cas/mcp/module.f.d.ts +49 -0
- package/fjs/cas/mcp/module.f.js +267 -0
- package/{fs → fjs}/cas/mcp/proof.f.d.ts +7 -2
- package/{fs → fjs}/cas/mcp/proof.f.js +116 -60
- package/{fs → fjs}/cas/module.f.d.ts +10 -0
- package/{fs → fjs}/cas/module.f.js +36 -10
- package/{fs → fjs}/cas/proof.f.d.ts +8 -2
- package/{fs → fjs}/cas/proof.f.js +85 -94
- package/{fs → fjs}/ci/bun/module.f.js +2 -2
- package/{fs → fjs}/ci/common/module.f.d.ts +2 -2
- package/{fs → fjs}/ci/common/module.f.js +4 -4
- package/fjs/ci/config/module.f.d.ts +42 -0
- package/{fs → fjs}/ci/config/module.f.js +6 -8
- package/fjs/ci/deno/module.f.js +20 -0
- package/{fs → fjs}/ci/module.f.js +9 -9
- package/{fs → fjs}/ci/node/module.f.d.ts +1 -1
- package/{fs → fjs}/ci/node/module.f.js +3 -5
- package/{fs → fjs}/ci/playwright/module.f.js +3 -3
- package/{fs → fjs}/ci/proof.f.js +27 -22
- package/{fs → fjs}/ci/rust/module.f.js +11 -3
- package/{fs → fjs}/cli/module.f.js +3 -3
- package/{fs → fjs}/cli/proof.f.js +25 -66
- package/{fs/types → fjs/common}/monoid/module.f.d.ts +1 -1
- package/{fs/types → fjs/common}/monoid/proof.f.js +4 -9
- package/{fs → fjs}/crypto/hmac/module.f.js +2 -2
- package/{fs → fjs}/crypto/hmac/proof.f.js +9 -17
- package/{fs → fjs}/crypto/pow/module.f.js +3 -3
- package/fjs/crypto/pow/proof.f.js +111 -0
- package/{fs → fjs}/crypto/secp/module.f.js +2 -2
- package/{fs → fjs}/crypto/secp/proof.f.js +14 -35
- package/{fs → fjs}/crypto/sha2/module.f.js +2 -2
- package/{fs → fjs}/crypto/sha2/proof.f.js +23 -54
- package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
- package/{fs → fjs}/crypto/sign/module.f.js +11 -8
- package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
- package/{fs → fjs}/crypto/vdf/module.f.js +1 -1
- package/{fs → fjs}/crypto/vdf/proof.f.js +23 -64
- package/{fs → fjs}/dev/module.f.js +6 -6
- package/{fs → fjs}/dev/package_json/module.f.js +6 -6
- package/{fs → fjs}/dev/package_json/proof.f.js +9 -9
- package/{fs → fjs}/dev/proof.f.js +3 -5
- package/{fs → fjs}/djs/ast/module.f.js +2 -2
- package/{fs → fjs}/djs/ast/proof.f.js +8 -16
- package/fjs/djs/examples/m.f.d.ts +2 -0
- package/{fs → fjs}/djs/module.f.d.ts +1 -1
- package/{fs → fjs}/djs/module.f.js +5 -5
- package/{fs → fjs}/djs/parser/module.f.d.ts +5 -0
- package/{fs → fjs}/djs/parser/module.f.js +24 -4
- package/{fs → fjs}/djs/parser/proof.f.js +145 -407
- package/{fs → fjs}/djs/proof.f.js +16 -39
- package/{fs → fjs}/djs/serializer/module.f.js +6 -6
- package/{fs → fjs}/djs/serializer/proof.f.js +18 -43
- package/fjs/djs/tokenizer/module.f.d.ts +24 -0
- package/fjs/djs/tokenizer/module.f.js +472 -0
- package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.d.ts +4 -3
- package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.js +447 -446
- package/{fs → fjs}/djs/transpiler/module.f.d.ts +5 -0
- package/{fs → fjs}/djs/transpiler/module.f.js +21 -11
- package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
- package/fjs/djs/transpiler/proof.f.js +67 -0
- package/{fs → fjs}/effects/memory/module.f.js +4 -4
- package/{fs → fjs}/effects/memory/proof.f.js +11 -24
- package/{fs → fjs}/effects/module.f.js +1 -1
- package/{fs → fjs}/effects/node/memory/module.js +2 -2
- package/{fs → fjs}/effects/node/memory/proof.js +8 -15
- package/{fs → fjs}/effects/node/module.d.ts +1 -1
- package/{fs → fjs}/effects/node/module.f.d.ts +1 -1
- package/{fs → fjs}/effects/node/module.f.js +7 -7
- package/{fs → fjs}/effects/node/module.js +13 -13
- package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
- package/{fs → fjs}/effects/node/proof.f.js +106 -292
- package/{fs → fjs}/effects/node/virtual/module.f.js +7 -7
- package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +2 -0
- package/{fs → fjs}/effects/node/virtual/proof.f.js +44 -30
- package/{fs → fjs}/effects/proof.f.js +18 -47
- package/fjs/emergent_testing/all.test.js +4 -0
- package/{fs → fjs}/emergent_testing/example.f.d.ts +1 -1
- package/{fs → fjs}/emergent_testing/module.f.js +6 -6
- package/{fs → fjs}/emergent_testing/proof.f.d.ts +19 -17
- package/{fs → fjs}/emergent_testing/proof.f.js +14 -14
- package/fjs/emergent_testing/scenarios/all.js +1 -0
- package/{fs → fjs}/fsc/bnf.f.js +2 -2
- package/{fs → fjs}/fsc/json.f.js +1 -1
- package/{fs → fjs}/fsc/module.f.js +7 -7
- package/{fs → fjs}/fsc/proof.f.js +16 -38
- package/{fs → fjs}/fsm/module.f.js +9 -9
- package/{fs → fjs}/fsm/proof.f.js +12 -19
- package/{fs → fjs}/js/tokenizer/module.f.js +7 -7
- package/{fs → fjs}/js/tokenizer/proof.f.js +5 -5
- package/{fs → fjs}/mcp/module.f.d.ts +20 -13
- package/{fs → fjs}/mcp/module.f.js +16 -9
- package/{fs → fjs}/mcp/proof.f.js +17 -17
- package/{fs → fjs}/mcp/stdio/module.f.d.ts +4 -4
- package/{fs → fjs}/mcp/stdio/module.f.js +12 -12
- package/{fs → fjs}/mcp/stdio/proof.f.js +10 -10
- package/{fs → fjs/media}/html/module.f.d.ts +3 -3
- package/{fs → fjs/media}/html/module.f.js +9 -9
- package/{fs → fjs/media}/html/proof.f.js +12 -33
- package/fjs/media/json/module.f.d.ts +50 -0
- package/{fs → fjs/media}/json/module.f.js +7 -7
- package/{fs → fjs/media}/json/parser/module.f.d.ts +7 -2
- package/{fs → fjs/media}/json/parser/module.f.js +21 -7
- package/{fs → fjs/media}/json/parser/proof.f.js +45 -120
- package/{fs → fjs/media}/json/proof.f.js +4 -4
- package/fjs/media/json/rpc/module.f.d.ts +114 -0
- package/{fs → fjs/media}/json/rpc/module.f.js +4 -4
- package/{fs → fjs/media}/json/rpc/proof.f.js +4 -4
- package/fjs/media/json/schema/module.f.d.ts +78 -0
- package/{fs → fjs/media}/json/schema/module.f.js +25 -41
- package/{fs → fjs/media}/json/schema/proof.f.js +6 -9
- package/{fs → fjs/media}/json/serializer/module.f.d.ts +1 -1
- package/{fs → fjs/media}/json/serializer/module.f.js +2 -2
- package/{fs → fjs/media}/json/serializer/proof.f.js +12 -29
- package/{fs → fjs/media}/json/tokenizer/module.f.d.ts +2 -2
- package/{fs → fjs/media}/json/tokenizer/module.f.js +4 -4
- package/{fs → fjs/media}/json/tokenizer/proof.f.js +5 -5
- package/fjs/media/module.f.d.ts +37 -0
- package/fjs/media/module.f.js +23 -0
- package/fjs/media/proof.f.d.ts +9 -0
- package/fjs/media/proof.f.js +58 -0
- package/fjs/media/revision/module.f.d.ts +78 -0
- package/fjs/media/revision/module.f.js +122 -0
- package/fjs/media/revision/proof.f.d.ts +31 -0
- package/fjs/media/revision/proof.f.js +140 -0
- package/{fs/mime → fjs/media/type}/module.f.d.ts +6 -6
- package/{fs/mime → fjs/media/type}/module.f.js +6 -6
- package/{fs/mime → fjs/media/type}/proof.f.js +8 -12
- package/fjs/module.f.d.ts +2 -0
- package/{fs/fjs → fjs}/module.f.js +9 -9
- package/fjs/module.js +4 -0
- package/{fs → fjs}/path/module.f.js +2 -2
- package/{fs → fjs}/path/proof.f.js +27 -78
- package/{fs/fjs → fjs}/proof.f.js +6 -4
- package/{fs → fjs}/sul/id/module.f.js +9 -9
- package/{fs → fjs}/sul/id/proof.f.js +12 -26
- package/{fs → fjs}/sul/level/hash/module.f.js +3 -3
- package/{fs → fjs}/sul/level/hash/proof.f.js +8 -8
- package/{fs → fjs}/sul/level/literal/module.f.js +5 -5
- package/{fs → fjs}/sul/level/literal/proof.f.js +15 -29
- package/{fs → fjs}/sul/module.f.js +3 -3
- package/{fs → fjs}/sul/proof.f.js +3 -3
- package/fjs/text/ascii/proof.f.d.ts +6 -0
- package/fjs/text/ascii/proof.f.js +14 -0
- package/{fs → fjs}/text/code_point/module.f.js +12 -12
- package/{fs → fjs}/text/code_point/proof.f.js +1 -1
- package/{fs → fjs}/text/module.f.js +5 -5
- package/{fs → fjs}/text/proof.f.js +7 -12
- package/{fs → fjs}/text/sgr/module.f.js +2 -2
- package/{fs → fjs}/text/sgr/proof.f.js +8 -17
- package/{fs → fjs}/text/utf16/module.f.js +6 -6
- package/{fs → fjs}/text/utf16/proof.f.js +27 -70
- package/{fs → fjs}/text/utf8/module.f.js +22 -17
- package/{fs → fjs}/text/utf8/proof.f.js +59 -128
- package/{fs → fjs}/types/array/module.f.js +1 -1
- package/{fs → fjs}/types/array/proof.f.js +21 -55
- package/{fs → fjs}/types/bigfloat/module.f.js +1 -1
- package/fjs/types/bigfloat/proof.f.js +217 -0
- package/{fs → fjs}/types/bigint/module.f.js +2 -2
- package/{fs → fjs}/types/bigint/proof.f.js +51 -147
- package/{fs → fjs}/types/bit_vec/module.f.js +8 -8
- package/{fs → fjs}/types/bit_vec/proof.f.js +76 -218
- package/{fs → fjs}/types/btree/find/module.f.js +1 -1
- package/fjs/types/btree/find/proof.f.d.ts +3 -0
- package/fjs/types/btree/find/proof.f.js +108 -0
- package/{fs → fjs}/types/btree/module.f.js +2 -2
- package/fjs/types/btree/proof.f.d.ts +13 -0
- package/{fs → fjs}/types/btree/proof.f.js +12 -19
- package/{fs → fjs}/types/btree/remove/module.f.js +4 -4
- package/fjs/types/btree/remove/proof.f.d.ts +9 -0
- package/{fs → fjs}/types/btree/remove/proof.f.js +88 -235
- package/{fs → fjs}/types/btree/set/module.f.js +8 -5
- package/{fs → fjs}/types/btree/set/proof.f.js +39 -28
- package/{fs → fjs}/types/byte_set/module.f.js +2 -2
- package/fjs/types/byte_set/proof.f.js +79 -0
- package/{fs → fjs}/types/function/compare/proof.f.js +14 -37
- package/fjs/types/function/operator/proof.f.d.ts +23 -0
- package/{fs → fjs}/types/function/operator/proof.f.js +18 -49
- package/{fs → fjs}/types/function/proof.f.js +3 -4
- package/{fs → fjs}/types/list/module.f.js +2 -2
- package/fjs/types/list/proof.f.d.ts +30 -0
- package/{fs → fjs}/types/list/proof.f.js +59 -167
- package/{fs → fjs}/types/map/proof.f.js +6 -14
- package/fjs/types/nibble_set/proof.f.js +60 -0
- package/{fs → fjs}/types/nominal/proof.f.js +5 -10
- package/{fs → fjs}/types/nullable/module.f.js +2 -2
- package/fjs/types/nullable/proof.f.js +29 -0
- package/{fs → fjs}/types/number/module.f.js +5 -5
- package/{fs → fjs}/types/number/proof.f.js +10 -25
- package/{fs → fjs}/types/object/module.f.js +4 -4
- package/{fs → fjs}/types/object/proof.f.js +4 -7
- package/{fs → fjs}/types/ordered_map/module.f.js +6 -6
- package/{fs → fjs}/types/ordered_map/proof.f.js +3 -3
- package/fjs/types/patricia_trie/proof.f.d.ts +13 -0
- package/{fs → fjs}/types/patricia_trie/proof.f.js +22 -22
- package/{fs → fjs}/types/prime_field/module.f.js +3 -8
- package/{fs → fjs}/types/prime_field/proof.f.js +2 -2
- package/{fs → fjs}/types/range/module.f.d.ts +1 -1
- package/fjs/types/range/module.f.js +2 -0
- package/fjs/types/range/proof.f.js +9 -0
- package/{fs → fjs}/types/range_map/module.f.js +4 -4
- package/{fs → fjs}/types/range_map/proof.f.js +35 -88
- package/{fs → fjs}/types/result/module.js +1 -1
- package/fjs/types/result/proof.f.d.ts +12 -0
- package/fjs/types/result/proof.f.js +31 -0
- package/{fs → fjs}/types/rtti/common/module.f.d.ts +36 -1
- package/{fs → fjs}/types/rtti/common/module.f.js +48 -4
- package/fjs/types/rtti/common/proof.f.d.ts +8 -0
- package/fjs/types/rtti/common/proof.f.js +51 -0
- package/{fs → fjs}/types/rtti/module.f.d.ts +2 -2
- package/{fs → fjs}/types/rtti/module.f.js +1 -1
- package/{fs → fjs}/types/rtti/parse/module.f.js +16 -25
- package/{fs → fjs}/types/rtti/parse/proof.f.js +9 -20
- package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
- package/{fs → fjs}/types/rtti/ts/module.f.js +1 -1
- package/{fs → fjs}/types/rtti/ts/proof.f.js +2 -2
- package/{fs → fjs}/types/rtti/validate/module.f.js +11 -32
- package/{fs → fjs}/types/rtti/validate/proof.f.js +6 -11
- package/{fs → fjs}/types/sorted_list/module.f.js +3 -3
- package/{fs → fjs}/types/sorted_list/proof.f.js +14 -27
- package/{fs → fjs}/types/sorted_set/module.f.js +1 -1
- package/{fs → fjs}/types/sorted_set/proof.f.js +20 -45
- package/{fs → fjs}/types/string/module.f.js +4 -4
- package/fjs/types/string/proof.f.js +77 -0
- package/{fs → fjs}/types/string_set/module.f.js +6 -6
- package/fjs/types/string_set/proof.f.js +43 -0
- package/{fs → fjs}/types/ts/proof.f.d.ts +18 -18
- package/{fs → fjs}/types/ts/proof.f.js +16 -43
- package/{fs → fjs}/types/uint8array/module.f.js +10 -10
- package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
- package/{fs → fjs}/types/uint8array/proof.f.js +11 -11
- package/{fs → fjs}/website/module.f.js +3 -3
- package/fjs/website/proof.f.js +13 -0
- package/package.json +8 -8
- package/fs/asserts/module.f.d.ts +0 -4
- package/fs/asserts/module.f.js +0 -9
- package/fs/asserts/proof.f.d.ts +0 -8
- package/fs/asserts/proof.f.js +0 -51
- package/fs/bnf/data/module.f.d.ts +0 -30
- package/fs/bnf/descent/module.f.js +0 -119
- package/fs/bnf/proof.f.js +0 -104
- package/fs/cas/mcp/module.f.d.ts +0 -36
- package/fs/cas/mcp/module.f.js +0 -249
- package/fs/ci/config/module.f.d.ts +0 -43
- package/fs/ci/deno/module.f.js +0 -16
- package/fs/crypto/pow/proof.f.js +0 -161
- package/fs/djs/examples/m.f.d.ts +0 -2
- package/fs/djs/tokenizer/module.f.d.ts +0 -12
- package/fs/djs/tokenizer/module.f.js +0 -62
- package/fs/djs/tokenizer/proof.f.d.ts +0 -7
- package/fs/djs/tokenizer/proof.f.js +0 -543
- package/fs/djs/tokenizer-new/module.f.d.ts +0 -3
- package/fs/djs/tokenizer-new/module.f.js +0 -155
- package/fs/djs/transpiler/proof.f.js +0 -68
- package/fs/emergent_testing/all.test.js +0 -4
- package/fs/emergent_testing/scenarios/all.js +0 -1
- package/fs/fjs/module.f.d.ts +0 -2
- package/fs/fjs/module.js +0 -4
- package/fs/json/module.f.d.ts +0 -50
- package/fs/json/rpc/module.f.d.ts +0 -114
- package/fs/json/schema/module.f.d.ts +0 -77
- package/fs/text/ascii/proof.f.d.ts +0 -4
- package/fs/text/ascii/proof.f.js +0 -24
- package/fs/types/bigfloat/proof.f.js +0 -348
- package/fs/types/btree/find/proof.f.js +0 -151
- package/fs/types/btree/proof.f.d.ts +0 -7
- package/fs/types/btree/remove/proof.f.d.ts +0 -4
- package/fs/types/byte_set/proof.f.js +0 -120
- package/fs/types/function/operator/proof.f.d.ts +0 -12
- package/fs/types/list/proof.f.d.ts +0 -22
- package/fs/types/nibble_set/proof.f.js +0 -89
- package/fs/types/nullable/proof.f.js +0 -50
- package/fs/types/patricia_trie/proof.f.d.ts +0 -7
- package/fs/types/range/module.f.js +0 -2
- package/fs/types/range/proof.f.d.ts +0 -1
- package/fs/types/range/proof.f.js +0 -18
- package/fs/types/result/proof.f.d.ts +0 -6
- package/fs/types/result/proof.f.js +0 -52
- package/fs/types/string/proof.f.js +0 -118
- package/fs/types/string_set/proof.f.js +0 -82
- package/fs/website/proof.f.js +0 -16
- /package/{fs → fjs}/asn.1/module.f.d.ts +0 -0
- /package/{fs → fjs}/asn.1/proof.f.d.ts +0 -0
- /package/{fs → fjs}/base_n/module.f.d.ts +0 -0
- /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
- /package/{fs → fjs/basen}/base128/proof.f.d.ts +0 -0
- /package/{fs → fjs/basen}/cbase32/proof.f.d.ts +0 -0
- /package/{fs → fjs}/bnf/proof.f.d.ts +0 -0
- /package/{fs → fjs}/bnf/testlib.f.d.ts +0 -0
- /package/{fs → fjs}/cas/cli/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/bun/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/deno/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/proof.f.d.ts +0 -0
- /package/{fs → fjs}/ci/rust/module.f.d.ts +0 -0
- /package/{fs → fjs}/cli/module.f.d.ts +0 -0
- /package/{fs → fjs}/cli/proof.f.d.ts +0 -0
- /package/{fs/types → fjs/common}/monoid/module.f.js +0 -0
- /package/{fs/types → fjs/common}/monoid/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/hmac/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/hmac/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/pow/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/pow/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/secp/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/secp/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sha2/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sha2/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/sign/proof.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/vdf/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/vdf/proof.f.d.ts +0 -0
- /package/{fs → fjs}/dev/module.f.d.ts +0 -0
- /package/{fs → fjs}/dev/package_json/module.f.d.ts +0 -0
- /package/{fs → fjs}/dev/package_json/proof.f.d.ts +0 -0
- /package/{fs → fjs}/dev/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/ast/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/ast/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/input.f.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/input.f.js +0 -0
- /package/{fs → fjs}/djs/examples/m.f.js +0 -0
- /package/{fs → fjs}/djs/parser/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/serializer/module.f.d.ts +0 -0
- /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/effects/list/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/list/module.f.js +0 -0
- /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/memory/proof.f.d.ts +0 -0
- /package/{fs → fjs}/effects/mock/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/mock/module.f.js +0 -0
- /package/{fs → fjs}/effects/module.d.ts +0 -0
- /package/{fs → fjs}/effects/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/module.js +0 -0
- /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
- /package/{fs → fjs}/effects/node/memory/proof.d.ts +0 -0
- /package/{fs → fjs}/effects/node/virtual/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/proof.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/example.f.js +0 -0
- /package/{fs → fjs}/emergent_testing/module.f.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/all.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/async.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.js +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.js +0 -0
- /package/{fs → fjs}/fsc/bnf.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/proof.f.d.ts +0 -0
- /package/{fs → fjs}/fsm/module.f.d.ts +0 -0
- /package/{fs → fjs}/fsm/proof.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/module.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/mcp/proof.f.d.ts +0 -0
- /package/{fs → fjs}/mcp/stdio/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/html/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/parser/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/rpc/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/schema/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs/media}/json/tokenizer/proof.f.d.ts +0 -0
- /package/{fs/mime → fjs/media/type}/proof.f.d.ts +0 -0
- /package/{fs/fjs → fjs}/module.d.ts +0 -0
- /package/{fs → fjs}/path/module.f.d.ts +0 -0
- /package/{fs → fjs}/path/proof.f.d.ts +0 -0
- /package/{fs/fjs → fjs}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/hash/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/hash/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/literal/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/level/literal/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/ascii/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/ascii/module.f.js +0 -0
- /package/{fs → fjs}/text/code_point/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/code_point/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/sgr/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/sgr/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf16/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf16/proof.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf8/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/utf8/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/array/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/array/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigfloat/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigfloat/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigint/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bigint/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/bit_vec/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/bit_vec/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/find/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/remove/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/types/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/types/module.f.js +0 -0
- /package/{fs → fjs}/types/byte_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/byte_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/compare/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/compare/module.f.js +0 -0
- /package/{fs/types/btree/find → fjs/types/function/compare}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/module.f.js +0 -0
- /package/{fs → fjs}/types/function/operator/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/operator/module.f.js +0 -0
- /package/{fs/types/function/compare → fjs/types/function}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/list/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/map/module.f.js +0 -0
- /package/{fs → fjs}/types/map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nibble_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nibble_set/module.f.js +0 -0
- /package/{fs → fjs}/types/nibble_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nominal/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nominal/module.f.js +0 -0
- /package/{fs → fjs}/types/nominal/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/nullable/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/nullable/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/number/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/number/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/object/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/object/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/option/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/option/module.f.js +0 -0
- /package/{fs → fjs}/types/ordered_map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/patricia_trie/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/patricia_trie/module.f.js +0 -0
- /package/{fs → fjs}/types/phantom/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/phantom/module.f.js +0 -0
- /package/{fs → fjs}/types/prime_field/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/prime_field/proof.f.d.ts +0 -0
- /package/{fs/types/function → fjs/types/range}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/range_map/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/range_map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/result/module.f.js +0 -0
- /package/{fs → fjs}/types/rtti/parse/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/parse/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/proof.f.js +0 -0
- /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/validate/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/validate/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_list/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_list/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/sorted_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/string/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/string/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/string_set/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/string_set/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/ts/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/ts/module.f.js +0 -0
- /package/{fs → fjs}/types/uint8array/module.f.d.ts +0 -0
- /package/{fs → fjs}/website/module.f.d.ts +0 -0
- /package/{fs → fjs}/website/proof.f.d.ts +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { dfa, run, toRange, toUnion } from
|
|
2
|
-
import { union } from
|
|
3
|
-
import { sort, fromEntries } from
|
|
4
|
-
import { stringify } from
|
|
5
|
-
import { identity } from
|
|
6
|
-
import { toArray } from
|
|
7
|
-
import { stringToList } from
|
|
1
|
+
import { dfa, run, toRange, toUnion } from './module.f.js';
|
|
2
|
+
import { union } from '../types/byte_set/module.f.js';
|
|
3
|
+
import { sort, fromEntries } from '../types/object/module.f.js';
|
|
4
|
+
import { stringify } from '../media/json/module.f.js';
|
|
5
|
+
import { identity } from '../types/function/module.f.js';
|
|
6
|
+
import { toArray } from '../types/list/module.f.js';
|
|
7
|
+
import { stringToList } from '../text/utf16/module.f.js';
|
|
8
|
+
import { assertEq } from '../asserts/module.f.js';
|
|
8
9
|
const stringifyIdentity = stringify(identity);
|
|
9
10
|
const buildDfa = () => {
|
|
10
11
|
const lowercaseAlpha = toRange('az');
|
|
@@ -85,9 +86,7 @@ export const proof = {
|
|
|
85
86
|
'["id"]'
|
|
86
87
|
];
|
|
87
88
|
const expectedResult = stringifyIdentity(expectedOutput);
|
|
88
|
-
|
|
89
|
-
throw result;
|
|
90
|
-
}
|
|
89
|
+
assertEq(result, expectedResult);
|
|
91
90
|
},
|
|
92
91
|
() => {
|
|
93
92
|
const dfa = buildDfa();
|
|
@@ -99,9 +98,7 @@ export const proof = {
|
|
|
99
98
|
'["float"]'
|
|
100
99
|
];
|
|
101
100
|
const expectedResult = stringifyIdentity(expectedOutput);
|
|
102
|
-
|
|
103
|
-
throw result;
|
|
104
|
-
}
|
|
101
|
+
assertEq(result, expectedResult);
|
|
105
102
|
},
|
|
106
103
|
() => {
|
|
107
104
|
const dfa = buildDfa();
|
|
@@ -112,9 +109,7 @@ export const proof = {
|
|
|
112
109
|
'[]'
|
|
113
110
|
];
|
|
114
111
|
const expectedResult = stringifyIdentity(expectedOutput);
|
|
115
|
-
|
|
116
|
-
throw result;
|
|
117
|
-
}
|
|
112
|
+
assertEq(result, expectedResult);
|
|
118
113
|
},
|
|
119
114
|
() => {
|
|
120
115
|
const dfa = buildDfa();
|
|
@@ -125,9 +120,7 @@ export const proof = {
|
|
|
125
120
|
'[]'
|
|
126
121
|
];
|
|
127
122
|
const expectedResult = stringifyIdentity(expectedOutput);
|
|
128
|
-
|
|
129
|
-
throw result;
|
|
130
|
-
}
|
|
123
|
+
assertEq(result, expectedResult);
|
|
131
124
|
}
|
|
132
125
|
]
|
|
133
126
|
};
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { strictEqual } from
|
|
9
|
-
import { merge, fromRange, get } from
|
|
10
|
-
import { empty, stateScan, flat, toArray, reduce as listReduce, scan, map as listMap } from
|
|
11
|
-
import { at, fromEntries } from
|
|
12
|
-
import { one } from
|
|
8
|
+
import { strictEqual } from '../../types/function/operator/module.f.js';
|
|
9
|
+
import { merge, fromRange, get } from '../../types/range_map/module.f.js';
|
|
10
|
+
import { empty, stateScan, flat, toArray, reduce as listReduce, scan, map as listMap } from '../../types/list/module.f.js';
|
|
11
|
+
import { at, fromEntries } from '../../types/ordered_map/module.f.js';
|
|
12
|
+
import { one } from '../../types/range/module.f.js';
|
|
13
13
|
import { range,
|
|
14
14
|
//
|
|
15
15
|
backspace, ht, lf, ff, cr,
|
|
@@ -26,8 +26,8 @@ leftSquareBracket, reverseSolidus, rightSquareBracket, lowLine,
|
|
|
26
26
|
//
|
|
27
27
|
latinSmallLetterRange, latinSmallLetterA, latinSmallLetterB, latinSmallLetterE, latinSmallLetterF, latinSmallLetterN, latinSmallLetterR, latinSmallLetterT, latinSmallLetterU,
|
|
28
28
|
//
|
|
29
|
-
leftCurlyBracket, rightCurlyBracket, dollarSign } from
|
|
30
|
-
import { todo } from
|
|
29
|
+
leftCurlyBracket, rightCurlyBracket, dollarSign } from '../../text/ascii/module.f.js';
|
|
30
|
+
import { todo } from '../../asserts/module.f.js';
|
|
31
31
|
const { fromCharCode } = String;
|
|
32
32
|
const rangeOneNine = range('19');
|
|
33
33
|
const rangeSetNewLine = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { tokenize } from
|
|
2
|
-
import { map, toArray } from
|
|
3
|
-
import { stringifyAsTree } from
|
|
4
|
-
import { sort } from
|
|
5
|
-
import { stringToList } from
|
|
1
|
+
import { tokenize } from './module.f.js';
|
|
2
|
+
import { map, toArray } from '../../types/list/module.f.js';
|
|
3
|
+
import { stringifyAsTree } from '../../djs/serializer/module.f.js';
|
|
4
|
+
import { sort } from '../../types/object/module.f.js';
|
|
5
|
+
import { stringToList } from '../../text/utf16/module.f.js';
|
|
6
6
|
const tokenizeString = s => toArray(map(withoutMetada)(tokenize(stringToList(s))('')));
|
|
7
7
|
const tokenizeStringWithMetadata = s => toArray(tokenize(stringToList(s))(''));
|
|
8
8
|
const stringify = stringifyAsTree(sort);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type Unknown } from '../json/module.f.ts';
|
|
1
|
+
import { unknown, type Unknown } from '../media/json/module.f.ts';
|
|
2
2
|
import type { Ts } from '../types/rtti/ts/module.f.ts';
|
|
3
3
|
import { type Operation, type Effect } from '../effects/module.f.ts';
|
|
4
4
|
import { type Key, type MemOp } from '../effects/memory/module.f.ts';
|
|
5
|
-
import { type Response } from '../json/rpc/module.f.ts';
|
|
5
|
+
import { type Response } from '../media/json/rpc/module.f.ts';
|
|
6
6
|
import type { Type } from '../types/rtti/module.f.ts';
|
|
7
7
|
/** Name + version pair sent in `initialize` requests and responses. */
|
|
8
8
|
export declare const implementation: {
|
|
@@ -20,7 +20,7 @@ export type ServerCapabilities = Ts<typeof serverCapabilities>;
|
|
|
20
20
|
/** Params for the `initialize` request. */
|
|
21
21
|
export declare const initializeParams: {
|
|
22
22
|
readonly protocolVersion: import("../types/rtti/module.f.ts").String;
|
|
23
|
-
readonly capabilities:
|
|
23
|
+
readonly capabilities: typeof unknown;
|
|
24
24
|
readonly clientInfo: {
|
|
25
25
|
readonly name: import("../types/rtti/module.f.ts").String;
|
|
26
26
|
readonly version: import("../types/rtti/module.f.ts").String;
|
|
@@ -44,7 +44,7 @@ export declare const initializeResult: {
|
|
|
44
44
|
export type InitializeResult = Ts<typeof initializeResult>;
|
|
45
45
|
/** Plain-text content item returned by a tool call. */
|
|
46
46
|
export declare const textContent: {
|
|
47
|
-
readonly type:
|
|
47
|
+
readonly type: 'text';
|
|
48
48
|
readonly text: import("../types/rtti/module.f.ts").String;
|
|
49
49
|
};
|
|
50
50
|
export type TextContent = Ts<typeof textContent>;
|
|
@@ -62,7 +62,7 @@ export declare const blobResource: {
|
|
|
62
62
|
export type BlobResource = Ts<typeof blobResource>;
|
|
63
63
|
/** An `EmbeddedResource` content item wrapping a {@link blobResource}. */
|
|
64
64
|
export declare const embeddedResource: {
|
|
65
|
-
readonly type:
|
|
65
|
+
readonly type: 'resource';
|
|
66
66
|
readonly resource: {
|
|
67
67
|
readonly uri: import("../types/rtti/module.f.ts").String;
|
|
68
68
|
readonly mimeType: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
@@ -76,10 +76,10 @@ export type EmbeddedResource = Ts<typeof embeddedResource>;
|
|
|
76
76
|
* `image` and `audio` variants are not modelled yet.
|
|
77
77
|
*/
|
|
78
78
|
export declare const contentItem: import("../types/rtti/module.f.ts").Or<[{
|
|
79
|
-
readonly type:
|
|
79
|
+
readonly type: 'text';
|
|
80
80
|
readonly text: import("../types/rtti/module.f.ts").String;
|
|
81
81
|
}, {
|
|
82
|
-
readonly type:
|
|
82
|
+
readonly type: 'resource';
|
|
83
83
|
readonly resource: {
|
|
84
84
|
readonly uri: import("../types/rtti/module.f.ts").String;
|
|
85
85
|
readonly mimeType: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
@@ -95,7 +95,7 @@ export type ContentItem = Ts<typeof contentItem>;
|
|
|
95
95
|
export declare const tool: {
|
|
96
96
|
readonly name: import("../types/rtti/module.f.ts").String;
|
|
97
97
|
readonly description: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
98
|
-
readonly inputSchema:
|
|
98
|
+
readonly inputSchema: typeof unknown;
|
|
99
99
|
};
|
|
100
100
|
export type Tool = Ts<typeof tool>;
|
|
101
101
|
/**
|
|
@@ -110,22 +110,22 @@ export declare const toolsListResult: {
|
|
|
110
110
|
readonly tools: import("../types/rtti/module.f.ts").Type1<"array", {
|
|
111
111
|
readonly name: import("../types/rtti/module.f.ts").String;
|
|
112
112
|
readonly description: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
113
|
-
readonly inputSchema:
|
|
113
|
+
readonly inputSchema: typeof unknown;
|
|
114
114
|
}>;
|
|
115
115
|
readonly nextCursor: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
116
116
|
};
|
|
117
117
|
export type ToolsListResult = Ts<typeof toolsListResult>;
|
|
118
118
|
export declare const toolsCallParams: {
|
|
119
119
|
readonly name: import("../types/rtti/module.f.ts").String;
|
|
120
|
-
readonly arguments: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").Type1<"record",
|
|
120
|
+
readonly arguments: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").Type1<"record", typeof unknown>, undefined]>;
|
|
121
121
|
};
|
|
122
122
|
export type ToolsCallParams = Ts<typeof toolsCallParams>;
|
|
123
123
|
export declare const toolsCallResult: {
|
|
124
124
|
readonly content: import("../types/rtti/module.f.ts").Type1<"array", import("../types/rtti/module.f.ts").Or<[{
|
|
125
|
-
readonly type:
|
|
125
|
+
readonly type: 'text';
|
|
126
126
|
readonly text: import("../types/rtti/module.f.ts").String;
|
|
127
127
|
}, {
|
|
128
|
-
readonly type:
|
|
128
|
+
readonly type: 'resource';
|
|
129
129
|
readonly resource: {
|
|
130
130
|
readonly uri: import("../types/rtti/module.f.ts").String;
|
|
131
131
|
readonly mimeType: import("../types/rtti/module.f.ts").Or<readonly [import("../types/rtti/module.f.ts").String, undefined]>;
|
|
@@ -166,6 +166,13 @@ export type ToolEntry<O extends Operation> = {
|
|
|
166
166
|
* @returns A `ToolEntry` ready to be added to a registry
|
|
167
167
|
*/
|
|
168
168
|
export declare const toolEntry: <T extends Type, O extends Operation>(name: string, description: string, inputRtti: T, handle: (args: Ts<T>) => Effect<O, ToolsCallResult>) => ToolEntry<O>;
|
|
169
|
+
/**
|
|
170
|
+
* Helper to create a successful single-text-block tool result.
|
|
171
|
+
*
|
|
172
|
+
* @param text - The text to return to the client
|
|
173
|
+
* @returns A `ToolsCallResult` with the text content
|
|
174
|
+
*/
|
|
175
|
+
export declare const okResult: (text: string) => ToolsCallResult;
|
|
169
176
|
/**
|
|
170
177
|
* Helper to create a tool-level error result with plain text explanation.
|
|
171
178
|
*
|
|
@@ -191,7 +198,7 @@ export type Handle<O extends Operation> = (value: Unknown) => Effect<O, Response
|
|
|
191
198
|
export declare const notInitialized: import("../types/rtti/ts/module.f.ts").StructTs<{
|
|
192
199
|
readonly code: import("../types/rtti/module.f.ts").Number;
|
|
193
200
|
readonly message: import("../types/rtti/module.f.ts").String;
|
|
194
|
-
readonly data: import("../types/rtti/module.f.ts").Or<readonly [
|
|
201
|
+
readonly data: import("../types/rtti/module.f.ts").Or<readonly [typeof unknown, undefined]>;
|
|
195
202
|
}>;
|
|
196
203
|
/** State carried before the peer sends `initialize`. */
|
|
197
204
|
export type Uninitialized = readonly ['uninitialized'];
|
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Each schema is both a runtime decoder (`validate(schema)`) and a static
|
|
11
11
|
* TypeScript type (`Ts<typeof schema>`). Transport framing (stdio) and the
|
|
12
|
-
* JSON-RPC dispatcher are in `
|
|
12
|
+
* JSON-RPC dispatcher are in `fjs/media/json/rpc/module.f.ts`.
|
|
13
13
|
*
|
|
14
14
|
* @module
|
|
15
15
|
*/
|
|
16
|
-
import { boolean, string, option, array, record, or } from
|
|
17
|
-
import { unknown } from
|
|
18
|
-
import { pure } from
|
|
19
|
-
import { read, write } from
|
|
20
|
-
import { decodeRequest, rpcError, invalidRequest, invalidParams, methodNotFound, jsonrpc, } from
|
|
21
|
-
import { validate } from
|
|
22
|
-
import { toJsonSchema } from
|
|
16
|
+
import { boolean, string, option, array, record, or } from '../types/rtti/module.f.js';
|
|
17
|
+
import { unknown } from '../media/json/module.f.js';
|
|
18
|
+
import { pure } from '../effects/module.f.js';
|
|
19
|
+
import { read, write } from '../effects/memory/module.f.js';
|
|
20
|
+
import { decodeRequest, rpcError, invalidRequest, invalidParams, methodNotFound, jsonrpc, } from '../media/json/rpc/module.f.js';
|
|
21
|
+
import { validate } from '../types/rtti/validate/module.f.js';
|
|
22
|
+
import { toJsonSchema } from '../media/json/schema/module.f.js';
|
|
23
23
|
// ── Shared ─────────────────────────────────────────────────────────────────────
|
|
24
24
|
/** Name + version pair sent in `initialize` requests and responses. */
|
|
25
25
|
export const implementation = {
|
|
@@ -125,13 +125,20 @@ export const toolEntry = (name, description, inputRtti, handle) => ({
|
|
|
125
125
|
: handle(r);
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
|
+
/**
|
|
129
|
+
* Helper to create a successful single-text-block tool result.
|
|
130
|
+
*
|
|
131
|
+
* @param text - The text to return to the client
|
|
132
|
+
* @returns A `ToolsCallResult` with the text content
|
|
133
|
+
*/
|
|
134
|
+
export const okResult = (text) => ({ content: [{ type: 'text', text }] });
|
|
128
135
|
/**
|
|
129
136
|
* Helper to create a tool-level error result with plain text explanation.
|
|
130
137
|
*
|
|
131
138
|
* @param text - The error message to return to the client
|
|
132
139
|
* @returns A `ToolsCallResult` with `isError: true` and the text explanation
|
|
133
140
|
*/
|
|
134
|
-
export const errorResult = (text) => ({
|
|
141
|
+
export const errorResult = (text) => ({ ...okResult(text), isError: true });
|
|
135
142
|
/**
|
|
136
143
|
* Builds `McpHandlers` from a registry of tool entries.
|
|
137
144
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { assert, assertEq } from
|
|
2
|
-
import { pure } from
|
|
3
|
-
import { run } from
|
|
4
|
-
import { asBase, asNominal, create, read } from
|
|
5
|
-
import { uninitializedState, mcpStep, notInitialized, } from
|
|
1
|
+
import { assert, assertEq } from '../asserts/module.f.js';
|
|
2
|
+
import { pure } from '../effects/module.f.js';
|
|
3
|
+
import { run } from '../effects/mock/module.f.js';
|
|
4
|
+
import { asBase, asNominal, create, read } from '../effects/memory/module.f.js';
|
|
5
|
+
import { uninitializedState, mcpStep, notInitialized, } from './module.f.js';
|
|
6
6
|
const initial = { next: 0, values: {} };
|
|
7
7
|
const mock = {
|
|
8
8
|
memCreate: value => state => {
|
|
@@ -49,16 +49,16 @@ const initNotif = { jsonrpc: '2.0', method: 'notifications/initialized' };
|
|
|
49
49
|
export const proof = {
|
|
50
50
|
lifecycle: {
|
|
51
51
|
initialStateIsUninitialized: () => {
|
|
52
|
-
|
|
52
|
+
assert(uninitializedState[0] === 'uninitialized');
|
|
53
53
|
},
|
|
54
54
|
initializeTransitionsToInitializing: () => {
|
|
55
55
|
const [, newState] = step1(config)(initMsg);
|
|
56
|
-
|
|
56
|
+
assert(newState[0] === 'initializing');
|
|
57
57
|
},
|
|
58
58
|
initializedNotificationTransitionsToInitialized: () => {
|
|
59
59
|
const [resp, newState] = step2(config)(initMsg)(initNotif);
|
|
60
60
|
assertEq(resp, null);
|
|
61
|
-
|
|
61
|
+
assert(newState[0] === 'initialized');
|
|
62
62
|
},
|
|
63
63
|
initializeReturnsResult: () => {
|
|
64
64
|
const [resp] = step1(config)(initMsg);
|
|
@@ -69,12 +69,12 @@ export const proof = {
|
|
|
69
69
|
initializeWithBadParamsReturnsInvalidParams: () => {
|
|
70
70
|
const bad = { jsonrpc: '2.0', method: 'initialize', id: 2, params: { wrong: true } };
|
|
71
71
|
const [resp, newState] = step1(config)(bad);
|
|
72
|
-
|
|
72
|
+
assert(newState[0] === 'uninitialized');
|
|
73
73
|
assertEq(resp.error.code, -32602);
|
|
74
74
|
},
|
|
75
75
|
notificationBeforeInitReturnNull: () => {
|
|
76
76
|
const [resp, newState] = step1(config)(initNotif);
|
|
77
|
-
|
|
77
|
+
assert(newState[0] === 'uninitialized');
|
|
78
78
|
assertEq(resp, null);
|
|
79
79
|
},
|
|
80
80
|
unknownNotificationReturnNull: () => {
|
|
@@ -84,19 +84,19 @@ export const proof = {
|
|
|
84
84
|
},
|
|
85
85
|
doubleInitializeReturnsInvalidRequest: () => {
|
|
86
86
|
const [resp, newState] = step2(config)(initMsg)(initMsg);
|
|
87
|
-
|
|
87
|
+
assert(newState[0] === 'initializing');
|
|
88
88
|
assertEq(resp.error.code, -32600);
|
|
89
89
|
},
|
|
90
90
|
pingBeforeInitSucceeds: () => {
|
|
91
91
|
const msg = { jsonrpc: '2.0', method: 'ping', id: 11 };
|
|
92
92
|
const [resp, newState] = step1(config)(msg);
|
|
93
|
-
|
|
93
|
+
assert(newState[0] === 'uninitialized');
|
|
94
94
|
assert(!('error' in resp));
|
|
95
95
|
},
|
|
96
96
|
pingDuringInitializingSucceeds: () => {
|
|
97
97
|
const msg = { jsonrpc: '2.0', method: 'ping', id: 12 };
|
|
98
98
|
const [resp, newState] = step2(config)(initMsg)(msg);
|
|
99
|
-
|
|
99
|
+
assert(newState[0] === 'initializing');
|
|
100
100
|
assert(!('error' in resp));
|
|
101
101
|
},
|
|
102
102
|
pingAfterInitSucceeds: () => {
|
|
@@ -118,24 +118,24 @@ export const proof = {
|
|
|
118
118
|
const notif = { jsonrpc: '2.0', method: 'notifications/initialized', params: {} };
|
|
119
119
|
const [resp, newState] = step2(config)(initMsg)(notif);
|
|
120
120
|
assertEq(resp, null);
|
|
121
|
-
|
|
121
|
+
assert(newState[0] === 'initialized');
|
|
122
122
|
},
|
|
123
123
|
initializedNotificationBadParamsIgnored: () => {
|
|
124
124
|
const notif = { jsonrpc: '2.0', method: 'notifications/initialized', params: 1 };
|
|
125
125
|
const [resp, newState] = step2(config)(initMsg)(notif);
|
|
126
126
|
assertEq(resp, null);
|
|
127
|
-
|
|
127
|
+
assert(newState[0] === 'initializing');
|
|
128
128
|
},
|
|
129
129
|
methodBeforeInitReturnsNotInitialized: () => {
|
|
130
130
|
const msg = { jsonrpc: '2.0', method: 'tools/list', id: 3 };
|
|
131
131
|
const [resp, newState] = step1(config)(msg);
|
|
132
|
-
|
|
132
|
+
assert(newState[0] === 'uninitialized');
|
|
133
133
|
assertEq(resp.error.code, notInitialized.code);
|
|
134
134
|
},
|
|
135
135
|
methodDuringInitializingReturnsNotInitialized: () => {
|
|
136
136
|
const msg = { jsonrpc: '2.0', method: 'tools/list', id: 16 };
|
|
137
137
|
const [resp, newState] = step2(config)(initMsg)(msg);
|
|
138
|
-
|
|
138
|
+
assert(newState[0] === 'initializing');
|
|
139
139
|
assertEq(resp.error.code, notInitialized.code);
|
|
140
140
|
},
|
|
141
141
|
invalidEnvelopeReturnsInvalidRequest: () => {
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* stdio transport for JSON-RPC / MCP servers.
|
|
3
3
|
*
|
|
4
4
|
* `stdioTransport` wraps a step function — the `mcpStep`-shaped
|
|
5
|
-
* `(value) => Effect<O, Response | null>` from `
|
|
5
|
+
* `(value) => Effect<O, Response | null>` from `fjs/mcp/module.f.ts` — in the
|
|
6
6
|
* canonical read → parse → dispatch → write loop, expressed as a recursive
|
|
7
7
|
* effect so it stays in the pure effect model and is fully testable against a
|
|
8
|
-
* mock stdin / stdout (see `
|
|
8
|
+
* mock stdin / stdout (see `fjs/effects/node/virtual`) with no real process.
|
|
9
9
|
*
|
|
10
10
|
* The loop only consumes `Read` (stdin, one byte at a time, via the pure
|
|
11
11
|
* `readLine` combinator) and emits `Write` (stdout) on top of whatever `O` the
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
*/
|
|
32
32
|
import { type Effect, type Operation } from '../../effects/module.f.ts';
|
|
33
33
|
import { type Read, type Write } from '../../effects/node/module.f.ts';
|
|
34
|
-
import { type Unknown } from '../../json/module.f.ts';
|
|
35
|
-
import { type Response } from '../../json/rpc/module.f.ts';
|
|
34
|
+
import { type Unknown } from '../../media/json/module.f.ts';
|
|
35
|
+
import { type Response } from '../../media/json/rpc/module.f.ts';
|
|
36
36
|
/**
|
|
37
37
|
* A transport step: maps one parsed JSON-RPC message to a response, or `null`
|
|
38
38
|
* for a notification that needs no reply. The shape of `mcpStep(config)(handlers)(key)`.
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* stdio transport for JSON-RPC / MCP servers.
|
|
3
3
|
*
|
|
4
4
|
* `stdioTransport` wraps a step function — the `mcpStep`-shaped
|
|
5
|
-
* `(value) => Effect<O, Response | null>` from `
|
|
5
|
+
* `(value) => Effect<O, Response | null>` from `fjs/mcp/module.f.ts` — in the
|
|
6
6
|
* canonical read → parse → dispatch → write loop, expressed as a recursive
|
|
7
7
|
* effect so it stays in the pure effect model and is fully testable against a
|
|
8
|
-
* mock stdin / stdout (see `
|
|
8
|
+
* mock stdin / stdout (see `fjs/effects/node/virtual`) with no real process.
|
|
9
9
|
*
|
|
10
10
|
* The loop only consumes `Read` (stdin, one byte at a time, via the pure
|
|
11
11
|
* `readLine` combinator) and emits `Write` (stdout) on top of whatever `O` the
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
*
|
|
30
30
|
* @module
|
|
31
31
|
*/
|
|
32
|
-
import { pure } from
|
|
33
|
-
import { readLine, write } from
|
|
34
|
-
import { tryUtf8 } from
|
|
35
|
-
import { stringToList } from
|
|
36
|
-
import { stringify } from
|
|
37
|
-
import { tokenize } from
|
|
38
|
-
import { parse } from
|
|
39
|
-
import { sort } from
|
|
40
|
-
import { internalError, jsonrpc, parseError } from
|
|
41
|
-
import { error, ok } from
|
|
32
|
+
import { pure } from '../../effects/module.f.js';
|
|
33
|
+
import { readLine, write } from '../../effects/node/module.f.js';
|
|
34
|
+
import { tryUtf8 } from '../../text/module.f.js';
|
|
35
|
+
import { stringToList } from '../../text/utf16/module.f.js';
|
|
36
|
+
import { stringify } from '../../media/json/module.f.js';
|
|
37
|
+
import { tokenize } from '../../media/json/tokenizer/module.f.js';
|
|
38
|
+
import { parse } from '../../media/json/parser/module.f.js';
|
|
39
|
+
import { sort } from '../../types/object/module.f.js';
|
|
40
|
+
import { internalError, jsonrpc, parseError } from '../../media/json/rpc/module.f.js';
|
|
41
|
+
import { error, ok } from '../../types/result/module.f.js';
|
|
42
42
|
const stringifyJson = stringify(sort);
|
|
43
43
|
/** The parse-error response (`-32700`, `id: null`) for a malformed input line. */
|
|
44
44
|
const parseErrorResponse = { jsonrpc, error: parseError, id: null };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { assertEq } from
|
|
2
|
-
import { pure } from
|
|
3
|
-
import { emptyState, virtual } from
|
|
4
|
-
import { stringify } from
|
|
5
|
-
import { utf8 } from
|
|
6
|
-
import { fromVec } from
|
|
7
|
-
import { maxLengthBytes } from
|
|
8
|
-
import { sort } from
|
|
9
|
-
import { internalError, jsonrpc, parseError } from
|
|
10
|
-
import { stdioTransport } from
|
|
1
|
+
import { assertEq } from '../../asserts/module.f.js';
|
|
2
|
+
import { pure } from '../../effects/module.f.js';
|
|
3
|
+
import { emptyState, virtual } from '../../effects/node/virtual/module.f.js';
|
|
4
|
+
import { stringify } from '../../media/json/module.f.js';
|
|
5
|
+
import { utf8 } from '../../text/module.f.js';
|
|
6
|
+
import { fromVec } from '../../types/uint8array/module.f.js';
|
|
7
|
+
import { maxLengthBytes } from '../../types/bit_vec/module.f.js';
|
|
8
|
+
import { sort } from '../../types/object/module.f.js';
|
|
9
|
+
import { internalError, jsonrpc, parseError } from '../../media/json/rpc/module.f.js';
|
|
10
|
+
import { stdioTransport } from './module.f.js';
|
|
11
11
|
const stringifyJson = stringify(sort);
|
|
12
12
|
// Extracts the request `id` (a request has one; a notification does not).
|
|
13
13
|
const idOf = (value) => value !== null && typeof value === 'object' && !(value instanceof Array)
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import { type List } from '
|
|
8
|
-
import { type StringMap } from '
|
|
9
|
-
import { type Vec } from '
|
|
7
|
+
import { type List } from '../../types/list/module.f.ts';
|
|
8
|
+
import { type StringMap } from '../../types/object/module.f.ts';
|
|
9
|
+
import { type Vec } from '../../types/bit_vec/module.f.ts';
|
|
10
10
|
type Tag = string;
|
|
11
11
|
type Element1 = readonly [Tag, ...Node[]];
|
|
12
12
|
type Element2 = readonly [Tag, Attributes, ...Node[]];
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import { map, flatMap, flat, concat as listConcat } from
|
|
8
|
-
import { concat, concat as stringConcat } from
|
|
9
|
-
import { definedEntries } from
|
|
10
|
-
import { compose } from
|
|
11
|
-
import { stringToList } from
|
|
12
|
-
import { includes } from
|
|
13
|
-
import {} from
|
|
14
|
-
import { utf8 } from
|
|
15
|
-
import { quotationMark, ampersand, lessThanSign, greaterThanSign } from
|
|
7
|
+
import { map, flatMap, flat, concat as listConcat } from '../../types/list/module.f.js';
|
|
8
|
+
import { concat, concat as stringConcat } from '../../types/string/module.f.js';
|
|
9
|
+
import { definedEntries } from '../../types/object/module.f.js';
|
|
10
|
+
import { compose } from '../../types/function/module.f.js';
|
|
11
|
+
import { stringToList } from '../../text/utf16/module.f.js';
|
|
12
|
+
import { includes } from '../../types/array/module.f.js';
|
|
13
|
+
import {} from '../../types/bit_vec/module.f.js';
|
|
14
|
+
import { utf8 } from '../../text/module.f.js';
|
|
15
|
+
import { quotationMark, ampersand, lessThanSign, greaterThanSign } from '../../text/ascii/module.f.js';
|
|
16
16
|
const { fromCharCode } = String;
|
|
17
17
|
/**
|
|
18
18
|
* Void Elements
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { htmlToString } from "./module.f.js";
|
|
2
|
+
import { assertEq } from '../../asserts/module.f.js';
|
|
2
3
|
export const proof = {
|
|
3
4
|
empty: () => {
|
|
4
5
|
const r = htmlToString(['html']);
|
|
@@ -8,79 +9,57 @@ export const proof = {
|
|
|
8
9
|
},
|
|
9
10
|
empty2: () => {
|
|
10
11
|
const r = htmlToString(['html']);
|
|
11
|
-
|
|
12
|
-
throw r;
|
|
13
|
-
}
|
|
12
|
+
assertEq(r, '<!DOCTYPE html><html></html>');
|
|
14
13
|
},
|
|
15
14
|
void: () => {
|
|
16
15
|
const r = htmlToString(['area']);
|
|
17
|
-
|
|
18
|
-
throw r;
|
|
19
|
-
}
|
|
16
|
+
assertEq(r, '<!DOCTYPE html><area>');
|
|
20
17
|
},
|
|
21
18
|
some: () => {
|
|
22
19
|
const x = ['div', {}, '<div>&</div>', ['a', { href: 'hello"' }]];
|
|
23
20
|
const s = htmlToString(x);
|
|
24
|
-
|
|
25
|
-
throw s;
|
|
26
|
-
}
|
|
21
|
+
assertEq(s, '<!DOCTYPE html><div><div>&amp;</div><a href="hello""></a></div>');
|
|
27
22
|
},
|
|
28
23
|
some2: () => {
|
|
29
24
|
const x = ['div', '<div>&</div>', ['a', { href: 'hello"' }]];
|
|
30
25
|
const s = htmlToString(x);
|
|
31
|
-
|
|
32
|
-
throw s;
|
|
33
|
-
}
|
|
26
|
+
assertEq(s, '<!DOCTYPE html><div><div>&amp;</div><a href="hello""></a></div>');
|
|
34
27
|
},
|
|
35
28
|
someVoid: () => {
|
|
36
29
|
const x = ['div', ['br', { id: '5' }], '<div>&</div>', ['a', { href: 'hello"' }]];
|
|
37
30
|
const s = htmlToString(x);
|
|
38
|
-
|
|
39
|
-
throw s;
|
|
40
|
-
}
|
|
31
|
+
assertEq(s, '<!DOCTYPE html><div><br id="5"><div>&amp;</div><a href="hello""></a></div>');
|
|
41
32
|
},
|
|
42
33
|
raw: {
|
|
43
34
|
script: () => {
|
|
44
35
|
const x = ['script', { id: 'a<' }, 'const a = ', 'a<b>c'];
|
|
45
36
|
const s = htmlToString(x);
|
|
46
|
-
|
|
47
|
-
throw s;
|
|
48
|
-
}
|
|
37
|
+
assertEq(s, '<!DOCTYPE html><script id="a<">const a = a<b>c</script>');
|
|
49
38
|
},
|
|
50
39
|
scriptEsc: () => {
|
|
51
40
|
const x = ['script', { id: 'a<' }, '<', '/script>'];
|
|
52
41
|
const s = htmlToString(x);
|
|
53
|
-
|
|
54
|
-
throw s;
|
|
55
|
-
}
|
|
42
|
+
assertEq(s, '<!DOCTYPE html><script id="a<"><\\/script></script>');
|
|
56
43
|
},
|
|
57
44
|
style: () => {
|
|
58
45
|
const x = ['style', { id: 'a<' }, 'const a = ', 'a<b>c'];
|
|
59
46
|
const s = htmlToString(x);
|
|
60
|
-
|
|
61
|
-
throw s;
|
|
62
|
-
}
|
|
47
|
+
assertEq(s, '<!DOCTYPE html><style id="a<">const a = a<b>c</style>');
|
|
63
48
|
},
|
|
64
49
|
styleEsc: () => {
|
|
65
50
|
const x = ['style', { id: 'a<' }, '</', 'stYle>'];
|
|
66
51
|
const s = htmlToString(x);
|
|
67
|
-
|
|
68
|
-
throw s;
|
|
69
|
-
}
|
|
52
|
+
assertEq(s, '<!DOCTYPE html><style id="a<"><\\/stYle></style>');
|
|
70
53
|
},
|
|
71
54
|
noRaw: () => {
|
|
72
55
|
const x = ['div', { id: 'a<' }, 'const a = ', 'a<b>c'];
|
|
73
56
|
const s = htmlToString(x);
|
|
74
|
-
|
|
75
|
-
throw s;
|
|
76
|
-
}
|
|
57
|
+
assertEq(s, '<!DOCTYPE html><div id="a<">const a = a<b>c</div>');
|
|
77
58
|
},
|
|
78
59
|
elemChild: () => {
|
|
79
60
|
const x = ['script', ['span', 'ignored'], 'visible'];
|
|
80
61
|
const s = htmlToString(x);
|
|
81
|
-
|
|
82
|
-
throw s;
|
|
83
|
-
}
|
|
62
|
+
assertEq(s, '<!DOCTYPE html><script>visible</script>');
|
|
84
63
|
},
|
|
85
64
|
}
|
|
86
65
|
};
|