functionalscript 0.37.0 → 0.39.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/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/proof.f.js +12 -36
- package/{fs → fjs}/basen/base64/proof.f.d.ts +1 -0
- package/{fs → fjs}/basen/base64/proof.f.js +15 -1
- package/{fs → fjs}/basen/cbase32/proof.f.js +15 -42
- package/fjs/bnf/data/module.f.d.ts +52 -0
- package/{fs → fjs}/bnf/data/module.f.js +53 -3
- package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/data/proof.f.js +54 -19
- 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 +55 -24
- package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
- package/{fs → fjs}/bnf/ll1/module.f.js +7 -5
- package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
- package/{fs → fjs}/bnf/ll1/proof.f.js +27 -10
- package/{fs → fjs}/bnf/module.f.d.ts +19 -5
- package/{fs → fjs}/bnf/module.f.js +10 -11
- package/fjs/bnf/proof.f.js +69 -0
- package/{fs → fjs}/bnf/testlib.f.js +2 -2
- package/fjs/bnf/token_symbol/module.f.d.ts +38 -0
- package/fjs/bnf/token_symbol/module.f.js +48 -0
- package/fjs/bnf/token_symbol/proof.f.d.ts +10 -0
- package/fjs/bnf/token_symbol/proof.f.js +37 -0
- package/{fs → fjs}/cas/cli/module.f.js +6 -9
- package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
- package/{fs → fjs}/cas/cli/proof.f.js +29 -66
- package/fjs/cas/evo/mcp/module.f.d.ts +27 -0
- package/fjs/cas/evo/mcp/module.f.js +94 -0
- package/fjs/cas/evo/mcp/proof.f.d.ts +11 -0
- package/fjs/cas/evo/mcp/proof.f.js +126 -0
- package/fjs/cas/evo/module.f.d.ts +202 -0
- package/fjs/cas/evo/module.f.js +421 -0
- package/fjs/cas/evo/proof.f.d.ts +39 -0
- package/fjs/cas/evo/proof.f.js +572 -0
- package/fjs/cas/mcp/module.f.d.ts +49 -0
- package/{fs → fjs}/cas/mcp/module.f.js +61 -81
- package/{fs → fjs}/cas/mcp/proof.f.d.ts +4 -1
- package/{fs → fjs}/cas/mcp/proof.f.js +45 -17
- package/{fs → fjs}/cas/module.f.d.ts +10 -0
- package/{fs → fjs}/cas/module.f.js +89 -36
- package/fjs/cas/proof.f.d.ts +18 -0
- package/fjs/cas/proof.f.js +305 -0
- package/{fs → fjs}/ci/bun/module.f.js +3 -3
- package/{fs → fjs}/ci/common/module.f.d.ts +1 -2
- package/{fs → fjs}/ci/common/module.f.js +1 -5
- package/{fs → fjs}/ci/config/module.f.d.ts +8 -8
- package/{fs → fjs}/ci/config/module.f.js +8 -8
- package/{fs → fjs}/ci/deno/module.f.js +3 -3
- package/{fs → fjs}/ci/module.f.js +3 -4
- package/{fs → fjs}/ci/node/module.f.js +11 -9
- package/{fs → fjs}/ci/proof.f.js +16 -9
- package/{fs → fjs}/ci/rust/module.f.js +9 -1
- package/{fs → fjs}/cli/module.f.js +2 -2
- package/{fs → fjs}/cli/proof.f.js +22 -63
- package/{fs → fjs}/common/monoid/module.f.d.ts +46 -2
- package/fjs/common/monoid/module.f.js +88 -0
- package/fjs/common/monoid/proof.f.d.ts +9 -0
- package/fjs/common/monoid/proof.f.js +48 -0
- package/{fs → fjs}/crypto/hmac/proof.f.js +4 -12
- package/fjs/crypto/pow/proof.f.js +111 -0
- package/{fs → fjs}/crypto/secp/proof.f.js +12 -33
- package/{fs → fjs}/crypto/sha2/proof.f.js +18 -49
- package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
- package/{fs → fjs}/crypto/sign/module.f.js +7 -4
- package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
- package/{fs → fjs}/crypto/vdf/proof.f.js +22 -63
- package/{fs → fjs}/dev/module.f.js +25 -25
- package/{fs → fjs}/dev/package_json/proof.f.js +7 -7
- package/{fs → fjs}/dev/proof.f.js +2 -4
- package/{fs → fjs}/djs/ast/proof.f.js +4 -12
- package/{fs → fjs}/djs/module.f.js +5 -8
- package/{fs → fjs}/djs/parser/module.f.d.ts +8 -0
- package/{fs → fjs}/djs/parser/module.f.js +37 -0
- package/{fs → fjs}/djs/parser/proof.f.js +138 -400
- package/{fs → fjs}/djs/proof.f.js +13 -36
- package/{fs → fjs}/djs/serializer/proof.f.js +14 -39
- 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 +446 -445
- package/{fs → fjs}/djs/transpiler/module.f.js +6 -6
- package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
- package/{fs → fjs}/djs/transpiler/proof.f.js +29 -30
- package/fjs/effects/eff/module.f.d.ts +72 -0
- package/fjs/effects/eff/module.f.js +46 -0
- package/fjs/effects/eff/proof.f.d.ts +11 -0
- package/fjs/effects/eff/proof.f.js +58 -0
- package/{fs → fjs}/effects/list/module.f.d.ts +11 -5
- package/{fs → fjs}/effects/list/module.f.js +2 -1
- package/{fs → fjs}/effects/memory/proof.f.js +15 -29
- package/fjs/effects/module.f.d.ts +388 -0
- package/fjs/effects/module.f.js +288 -0
- package/{fs → fjs}/effects/node/memory/proof.js +7 -13
- package/{fs → fjs}/effects/node/module.d.ts +1 -1
- package/{fs → fjs}/effects/node/module.f.d.ts +2 -2
- package/{fs → fjs}/effects/node/module.f.js +9 -11
- package/{fs → fjs}/effects/node/module.js +3 -3
- package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
- package/{fs → fjs}/effects/node/proof.f.js +121 -299
- package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +1 -0
- package/{fs → fjs}/effects/node/virtual/proof.f.js +36 -29
- package/fjs/effects/proof.f.d.ts +51 -0
- package/fjs/effects/proof.f.js +178 -0
- package/{fs → fjs}/emergent_testing/module.f.js +55 -39
- package/{fs → fjs}/emergent_testing/proof.f.d.ts +4 -0
- package/{fs → fjs}/emergent_testing/proof.f.js +60 -27
- package/{fs → fjs}/fsc/proof.f.js +12 -34
- package/{fs → fjs}/fsm/proof.f.js +5 -12
- package/{fs → fjs}/mcp/module.f.d.ts +7 -0
- package/{fs → fjs}/mcp/module.f.js +17 -10
- package/{fs → fjs}/mcp/proof.f.js +17 -16
- package/{fs → fjs}/mcp/stdio/module.f.d.ts +4 -4
- package/{fs → fjs}/mcp/stdio/module.f.js +14 -14
- package/{fs → fjs}/media/html/proof.f.js +12 -33
- package/{fs → fjs}/media/json/parser/module.f.d.ts +5 -0
- package/{fs → fjs}/media/json/parser/module.f.js +14 -0
- package/{fs → fjs}/media/json/parser/proof.f.js +39 -114
- package/{fs → fjs}/media/json/rpc/module.f.js +1 -1
- package/{fs → fjs}/media/json/schema/module.f.d.ts +2 -2
- package/{fs → fjs}/media/json/schema/module.f.js +23 -39
- package/{fs → fjs}/media/json/schema/proof.f.js +3 -6
- package/{fs → fjs}/media/json/serializer/proof.f.js +10 -27
- package/{fs → fjs}/media/module.f.d.ts +6 -6
- package/{fs → fjs}/media/module.f.js +3 -4
- package/{fs → fjs}/media/proof.f.js +5 -4
- package/{fs → fjs}/media/revision/module.f.d.ts +31 -4
- package/{fs → fjs}/media/revision/module.f.js +35 -23
- package/{fs → fjs}/media/revision/proof.f.d.ts +10 -8
- package/fjs/media/revision/proof.f.js +140 -0
- package/{fs → fjs}/media/type/module.f.js +2 -2
- package/{fs → fjs}/media/type/proof.f.js +8 -15
- package/{fs → fjs}/module.f.js +5 -9
- package/{fs → fjs}/path/proof.f.js +27 -78
- package/{fs → fjs}/proof.f.js +2 -0
- package/{fs → fjs}/sul/id/proof.f.js +7 -21
- package/{fs → fjs}/sul/level/hash/proof.f.js +5 -5
- package/{fs → fjs}/sul/level/literal/proof.f.js +12 -26
- package/fjs/text/ascii/proof.f.d.ts +6 -0
- package/{fs → fjs}/text/ascii/proof.f.js +4 -14
- package/{fs → fjs}/text/code_point/module.f.js +10 -10
- package/{fs → fjs}/text/proof.f.js +4 -9
- package/{fs → fjs}/text/sgr/proof.f.js +6 -15
- package/{fs → fjs}/text/utf16/module.f.js +1 -1
- package/{fs → fjs}/text/utf16/proof.f.js +23 -66
- package/{fs → fjs}/text/utf8/proof.f.js +56 -125
- package/{fs → fjs}/types/array/proof.f.js +18 -52
- package/fjs/types/bigfloat/proof.f.js +217 -0
- package/{fs → fjs}/types/bigint/module.f.js +4 -3
- package/{fs → fjs}/types/bigint/proof.f.js +49 -145
- package/{fs → fjs}/types/bit_vec/module.f.js +5 -15
- package/{fs → fjs}/types/bit_vec/proof.f.js +72 -214
- package/{fs → fjs}/types/btree/find/proof.f.js +23 -66
- package/{fs → fjs}/types/btree/proof.f.js +5 -12
- package/{fs → fjs}/types/btree/remove/module.f.d.ts +5 -0
- package/{fs → fjs}/types/btree/remove/module.f.js +12 -0
- package/{fs → fjs}/types/btree/remove/proof.f.d.ts +2 -0
- package/{fs → fjs}/types/btree/remove/proof.f.js +83 -230
- package/{fs → fjs}/types/btree/set/module.f.js +5 -2
- package/{fs → fjs}/types/btree/set/proof.f.js +35 -24
- package/{fs → fjs}/types/byte_set/proof.f.js +22 -63
- package/{fs → fjs}/types/function/compare/proof.f.js +13 -36
- package/{fs → fjs}/types/function/operator/proof.f.js +17 -48
- package/{fs → fjs}/types/function/proof.f.js +2 -3
- package/{fs → fjs}/types/list/module.f.d.ts +21 -0
- package/{fs → fjs}/types/list/module.f.js +17 -0
- package/{fs → fjs}/types/list/proof.f.d.ts +1 -0
- package/{fs → fjs}/types/list/proof.f.js +79 -164
- package/{fs → fjs}/types/map/proof.f.js +4 -12
- package/{fs → fjs}/types/nibble_set/proof.f.js +16 -45
- package/{fs → fjs}/types/nominal/proof.f.js +5 -10
- package/fjs/types/nullable/proof.f.js +29 -0
- package/{fs → fjs}/types/number/module.f.js +2 -1
- package/{fs → fjs}/types/number/proof.f.js +9 -24
- package/{fs → fjs}/types/object/proof.f.js +3 -6
- package/{fs → fjs}/types/patricia_trie/proof.f.js +21 -21
- package/{fs → fjs}/types/prime_field/module.f.js +2 -7
- 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/proof.f.js +28 -81
- package/{fs → fjs}/types/result/proof.f.d.ts +3 -2
- 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 +44 -0
- 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/parse/module.f.js +13 -22
- package/{fs → fjs}/types/rtti/parse/proof.f.js +7 -18
- package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
- package/{fs → fjs}/types/rtti/validate/module.f.js +8 -29
- package/{fs → fjs}/types/rtti/validate/proof.f.js +4 -9
- package/{fs → fjs}/types/sorted_list/proof.f.js +8 -21
- package/{fs → fjs}/types/sorted_set/proof.f.js +14 -39
- package/{fs → fjs}/types/string/module.f.js +10 -2
- package/fjs/types/string/proof.f.js +77 -0
- package/fjs/types/string_set/proof.f.js +43 -0
- package/{fs → fjs}/types/ts/proof.f.js +15 -42
- package/{fs → fjs}/types/uint8array/module.f.js +7 -7
- package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
- package/{fs → fjs}/types/uint8array/proof.f.js +7 -7
- package/{fs → fjs}/website/module.f.js +2 -3
- package/{fs → fjs}/website/proof.f.js +3 -6
- 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/proof.f.d.ts +0 -20
- package/fs/cas/proof.f.js +0 -294
- package/fs/common/monoid/module.f.js +0 -44
- package/fs/common/monoid/proof.f.d.ts +0 -4
- package/fs/common/monoid/proof.f.js +0 -27
- package/fs/crypto/pow/proof.f.js +0 -161
- 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/effects/module.f.d.ts +0 -106
- package/fs/effects/module.f.js +0 -80
- package/fs/effects/proof.f.d.ts +0 -25
- package/fs/effects/proof.f.js +0 -115
- package/fs/media/revision/proof.f.js +0 -119
- package/fs/text/ascii/proof.f.d.ts +0 -4
- package/fs/types/bigfloat/proof.f.js +0 -348
- package/fs/types/nullable/proof.f.js +0 -50
- package/fs/types/range/module.f.js +0 -2
- package/fs/types/range/proof.f.js +0 -18
- 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 → fjs}/asn.1/module.f.d.ts +0 -0
- /package/{fs → fjs}/asn.1/module.f.js +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/module.f.js +0 -0
- /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/module.f.js +0 -0
- /package/{fs → fjs}/basen/base128/proof.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base128/proof.f.js +0 -0
- /package/{fs → fjs}/basen/base64/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/base64/module.f.js +0 -0
- /package/{fs → fjs}/basen/cbase32/module.f.d.ts +0 -0
- /package/{fs → fjs}/basen/cbase32/module.f.js +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/node/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
- /package/{fs → fjs}/ci/playwright/module.f.js +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 → fjs}/crypto/hmac/module.f.d.ts +0 -0
- /package/{fs → fjs}/crypto/hmac/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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.d.ts +0 -0
- /package/{fs → fjs}/djs/examples/m.f.js +0 -0
- /package/{fs → fjs}/djs/module.f.d.ts +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/module.f.js +0 -0
- /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/djs/transpiler/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
- /package/{fs → fjs}/effects/memory/module.f.js +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.js +0 -0
- /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
- /package/{fs → fjs}/effects/node/memory/module.js +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/node/virtual/module.f.js +0 -0
- /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
- /package/{fs → fjs}/emergent_testing/all.test.js +0 -0
- /package/{fs → fjs}/emergent_testing/example.f.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/all.js +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/bnf.f.js +0 -0
- /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/json.f.js +0 -0
- /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
- /package/{fs → fjs}/fsc/module.f.js +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/module.f.js +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/module.f.js +0 -0
- /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/js/tokenizer/proof.f.js +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}/mcp/stdio/proof.f.js +0 -0
- /package/{fs → fjs}/media/html/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/html/module.f.js +0 -0
- /package/{fs → fjs}/media/html/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/module.f.js +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/proof.f.js +0 -0
- /package/{fs → fjs}/media/json/rpc/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/rpc/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/rpc/proof.f.js +0 -0
- /package/{fs → fjs}/media/json/schema/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/serializer/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/serializer/module.f.js +0 -0
- /package/{fs → fjs}/media/json/serializer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/module.f.js +0 -0
- /package/{fs → fjs}/media/json/tokenizer/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/json/tokenizer/proof.f.js +0 -0
- /package/{fs → fjs}/media/proof.f.d.ts +0 -0
- /package/{fs → fjs}/media/type/module.f.d.ts +0 -0
- /package/{fs → fjs}/media/type/proof.f.d.ts +0 -0
- /package/{fs → fjs}/module.d.ts +0 -0
- /package/{fs → fjs}/module.f.d.ts +0 -0
- /package/{fs → fjs}/module.js +0 -0
- /package/{fs → fjs}/path/module.f.d.ts +0 -0
- /package/{fs → fjs}/path/module.f.js +0 -0
- /package/{fs → fjs}/path/proof.f.d.ts +0 -0
- /package/{fs → fjs}/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
- /package/{fs → fjs}/sul/id/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +0 -0
- /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
- /package/{fs → fjs}/sul/proof.f.js +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/code_point/proof.f.js +0 -0
- /package/{fs → fjs}/text/module.f.d.ts +0 -0
- /package/{fs → fjs}/text/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/find/module.f.js +0 -0
- /package/{fs → fjs}/types/btree/find/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/btree/module.f.js +0 -0
- /package/{fs → fjs}/types/btree/proof.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/module.f.js +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 → 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 → fjs}/types/function/operator/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/function/proof.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/module.f.js +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/module.f.js +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/module.f.js +0 -0
- /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/ordered_map/proof.f.js +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/patricia_trie/proof.f.d.ts +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 → fjs}/types/prime_field/proof.f.js +0 -0
- /package/{fs → 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/module.f.js +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/result/module.js +0 -0
- /package/{fs → fjs}/types/rtti/module.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/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/module.f.js +0 -0
- /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
- /package/{fs → fjs}/types/rtti/ts/proof.f.js +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/module.f.js +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/module.f.js +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/module.f.js +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/ts/proof.f.d.ts +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,170 +1,119 @@
|
|
|
1
1
|
import { concat, isProperPrefix, join, normalize, relativize, toPosix } from "./module.f.js";
|
|
2
|
+
import { assertEq } from '../asserts/module.f.js';
|
|
2
3
|
const normalizeTest = [
|
|
3
4
|
() => {
|
|
4
5
|
const norm = normalize("dir/file.json");
|
|
5
|
-
|
|
6
|
-
throw norm;
|
|
7
|
-
}
|
|
6
|
+
assertEq(norm, "dir/file.json");
|
|
8
7
|
},
|
|
9
8
|
() => {
|
|
10
9
|
const norm = normalize("dir//file.json");
|
|
11
|
-
|
|
12
|
-
throw norm;
|
|
13
|
-
}
|
|
10
|
+
assertEq(norm, "dir/file.json");
|
|
14
11
|
},
|
|
15
12
|
() => {
|
|
16
13
|
const norm = normalize("../../dir/file.json");
|
|
17
|
-
|
|
18
|
-
throw norm;
|
|
19
|
-
}
|
|
14
|
+
assertEq(norm, "../../dir/file.json");
|
|
20
15
|
},
|
|
21
16
|
() => {
|
|
22
17
|
const norm = normalize("../../dir/../file.json");
|
|
23
|
-
|
|
24
|
-
throw norm;
|
|
25
|
-
}
|
|
18
|
+
assertEq(norm, "../../file.json");
|
|
26
19
|
},
|
|
27
20
|
];
|
|
28
21
|
const concatTest = [
|
|
29
22
|
() => {
|
|
30
23
|
const c = concat("a")("b");
|
|
31
|
-
|
|
32
|
-
throw c;
|
|
33
|
-
}
|
|
24
|
+
assertEq(c, "a/b");
|
|
34
25
|
},
|
|
35
26
|
() => {
|
|
36
27
|
const c = concat("a///b/")("c");
|
|
37
|
-
|
|
38
|
-
throw c;
|
|
39
|
-
}
|
|
28
|
+
assertEq(c, "a/b/c");
|
|
40
29
|
},
|
|
41
30
|
() => {
|
|
42
31
|
const c = concat("a/../b/..")("c");
|
|
43
|
-
|
|
44
|
-
throw c;
|
|
45
|
-
}
|
|
32
|
+
assertEq(c, "c");
|
|
46
33
|
},
|
|
47
34
|
];
|
|
48
35
|
const joinTest = [
|
|
49
36
|
() => {
|
|
50
37
|
const r = join('a', 'b');
|
|
51
|
-
|
|
52
|
-
throw r;
|
|
53
|
-
}
|
|
38
|
+
assertEq(r, 'a/b');
|
|
54
39
|
},
|
|
55
40
|
() => {
|
|
56
41
|
const r = join('/abs/root', 'x');
|
|
57
|
-
|
|
58
|
-
throw r;
|
|
59
|
-
}
|
|
42
|
+
assertEq(r, '/abs/root/x');
|
|
60
43
|
},
|
|
61
44
|
() => {
|
|
62
45
|
const r = join('a', 'b', 'c', 'd');
|
|
63
|
-
|
|
64
|
-
throw r;
|
|
65
|
-
}
|
|
46
|
+
assertEq(r, 'a/b/c/d');
|
|
66
47
|
},
|
|
67
48
|
() => {
|
|
68
49
|
const r = join('', 'x');
|
|
69
|
-
|
|
70
|
-
throw r;
|
|
71
|
-
}
|
|
50
|
+
assertEq(r, '/x');
|
|
72
51
|
},
|
|
73
52
|
() => {
|
|
74
53
|
const r = join();
|
|
75
|
-
|
|
76
|
-
throw r;
|
|
77
|
-
}
|
|
54
|
+
assertEq(r, '');
|
|
78
55
|
},
|
|
79
56
|
() => {
|
|
80
57
|
const r = join('only');
|
|
81
|
-
|
|
82
|
-
throw r;
|
|
83
|
-
}
|
|
58
|
+
assertEq(r, 'only');
|
|
84
59
|
},
|
|
85
60
|
];
|
|
86
61
|
const relativizeTest = [
|
|
87
62
|
() => {
|
|
88
63
|
const r = relativize('/repo', '/repo/fs/a.ts');
|
|
89
|
-
|
|
90
|
-
throw r;
|
|
91
|
-
}
|
|
64
|
+
assertEq(r, './fs/a.ts');
|
|
92
65
|
},
|
|
93
66
|
() => {
|
|
94
67
|
const r = relativize('/repo', '/other/a.ts');
|
|
95
|
-
|
|
96
|
-
throw r;
|
|
97
|
-
}
|
|
68
|
+
assertEq(r, '/other/a.ts');
|
|
98
69
|
},
|
|
99
70
|
() => {
|
|
100
71
|
const r = relativize('', './fs/a.ts');
|
|
101
|
-
|
|
102
|
-
throw r;
|
|
103
|
-
}
|
|
72
|
+
assertEq(r, './fs/a.ts');
|
|
104
73
|
},
|
|
105
74
|
];
|
|
106
75
|
const toPosixTest = [
|
|
107
76
|
() => {
|
|
108
77
|
const p = toPosix('a\\b\\c');
|
|
109
|
-
|
|
110
|
-
throw p;
|
|
111
|
-
}
|
|
78
|
+
assertEq(p, 'a/b/c');
|
|
112
79
|
},
|
|
113
80
|
() => {
|
|
114
81
|
const p = toPosix('a/b/c');
|
|
115
|
-
|
|
116
|
-
throw p;
|
|
117
|
-
}
|
|
82
|
+
assertEq(p, 'a/b/c');
|
|
118
83
|
},
|
|
119
84
|
() => {
|
|
120
85
|
const p = toPosix('C:\\Users\\x');
|
|
121
|
-
|
|
122
|
-
throw p;
|
|
123
|
-
}
|
|
86
|
+
assertEq(p, 'C:/Users/x');
|
|
124
87
|
},
|
|
125
88
|
() => {
|
|
126
89
|
const p = toPosix('');
|
|
127
|
-
|
|
128
|
-
throw p;
|
|
129
|
-
}
|
|
90
|
+
assertEq(p, '');
|
|
130
91
|
},
|
|
131
92
|
];
|
|
132
93
|
const isProperPrefixTest = [
|
|
133
94
|
() => {
|
|
134
95
|
const r = isProperPrefix(['a', 'b'], ['a', 'b', 'c']);
|
|
135
|
-
|
|
136
|
-
throw r;
|
|
137
|
-
}
|
|
96
|
+
assertEq(r, true);
|
|
138
97
|
},
|
|
139
98
|
() => {
|
|
140
99
|
const r = isProperPrefix(['a', 'b'], ['a', 'b']);
|
|
141
|
-
|
|
142
|
-
throw r;
|
|
143
|
-
}
|
|
100
|
+
assertEq(r, false);
|
|
144
101
|
},
|
|
145
102
|
() => {
|
|
146
103
|
const r = isProperPrefix(['a', 'x'], ['a', 'b', 'c']);
|
|
147
|
-
|
|
148
|
-
throw r;
|
|
149
|
-
}
|
|
104
|
+
assertEq(r, false);
|
|
150
105
|
},
|
|
151
106
|
() => {
|
|
152
107
|
const r = isProperPrefix(['a', 'b', 'c'], ['a', 'b']);
|
|
153
|
-
|
|
154
|
-
throw r;
|
|
155
|
-
}
|
|
108
|
+
assertEq(r, false);
|
|
156
109
|
},
|
|
157
110
|
() => {
|
|
158
111
|
const r = isProperPrefix([], ['a']);
|
|
159
|
-
|
|
160
|
-
throw r;
|
|
161
|
-
}
|
|
112
|
+
assertEq(r, true);
|
|
162
113
|
},
|
|
163
114
|
() => {
|
|
164
115
|
const r = isProperPrefix([], []);
|
|
165
|
-
|
|
166
|
-
throw r;
|
|
167
|
-
}
|
|
116
|
+
assertEq(r, false);
|
|
168
117
|
},
|
|
169
118
|
];
|
|
170
119
|
export const proof = { normalizeTest, concatTest, joinTest, relativizeTest, toPosixTest, isProperPrefixTest };
|
package/{fs → fjs}/proof.f.js
RENAMED
|
@@ -25,6 +25,8 @@ export const proof = {
|
|
|
25
25
|
mcp: () => {
|
|
26
26
|
// stdin is empty in the virtual environment, so the server sees EOF
|
|
27
27
|
// immediately and shuts down cleanly, exercising the `mcp` handler.
|
|
28
|
+
// The store is empty too, so `casMcpServer`'s Evo cache scan
|
|
29
|
+
// (`initEvo`) also runs and finds nothing.
|
|
28
30
|
const [, code] = run({})(['mcp']);
|
|
29
31
|
assertEq(code, 0);
|
|
30
32
|
},
|
|
@@ -28,9 +28,7 @@ export const proof = {
|
|
|
28
28
|
inline_is_raw: () => assert(isRaw(compress(level3Id(0x00n), level3Id(0x00n)))),
|
|
29
29
|
// Non-commutativity: argument order is preserved in concatenation
|
|
30
30
|
non_commutative: () => {
|
|
31
|
-
|
|
32
|
-
throw compress(level3Id(0n), level3Id(1n));
|
|
33
|
-
}
|
|
31
|
+
assert(compress(level3Id(0n), level3Id(1n)) !== compress(level3Id(1n), level3Id(0n)), compress(level3Id(0n), level3Id(1n)));
|
|
34
32
|
},
|
|
35
33
|
// Overflow: two 127-bit raw payloads sum to 254 bits, exceeding the 253-bit inline limit
|
|
36
34
|
overflow_is_hash: () => assert(isHash(overflowHash)),
|
|
@@ -38,38 +36,26 @@ export const proof = {
|
|
|
38
36
|
hash_left_is_hash: () => assert(isHash(compress(overflowHash, level3Id(0n)))),
|
|
39
37
|
hash_right_is_hash: () => assert(isHash(compress(level3Id(0n), overflowHash))),
|
|
40
38
|
hash_non_commutative: () => {
|
|
41
|
-
|
|
42
|
-
throw compress(overflowHash, level3Id(0n));
|
|
43
|
-
}
|
|
39
|
+
assert(compress(overflowHash, level3Id(0n)) !== compress(level3Id(0n), overflowHash), compress(overflowHash, level3Id(0n)));
|
|
44
40
|
},
|
|
45
41
|
// High-bit sensitivity: prefix bit of `a` is included in the SHA2 upper half
|
|
46
42
|
hash_merge_a_high_bits: () => {
|
|
47
|
-
|
|
48
|
-
throw compress(hashId(0n), hashId(0n));
|
|
49
|
-
}
|
|
43
|
+
assert(compress(hashId(0n), hashId(0n)) !== compress(level3Id(0n), hashId(0n)), compress(hashId(0n), hashId(0n)));
|
|
50
44
|
},
|
|
51
45
|
// High-bit sensitivity: prefix bit of `b` is included in the SHA2 lower half
|
|
52
46
|
hash_merge_b_high_bits: () => {
|
|
53
|
-
|
|
54
|
-
throw compress(hashId(0n), hashId(0n));
|
|
55
|
-
}
|
|
47
|
+
assert(compress(hashId(0n), hashId(0n)) !== compress(hashId(0n), level3Id(0n)), compress(hashId(0n), hashId(0n)));
|
|
56
48
|
},
|
|
57
49
|
// Shift correctness: changing a bit in `a` (upper 256 bits of SHA2 input) changes result
|
|
58
50
|
hash_merge_a_sensitivity: () => {
|
|
59
|
-
|
|
60
|
-
throw compress(hFF, hFF);
|
|
61
|
-
}
|
|
51
|
+
assert(compress(hFF, hFF) !== compress(hFE, hFF), compress(hFF, hFF));
|
|
62
52
|
},
|
|
63
53
|
// Shift correctness: changing a bit in `b` (lower 256 bits of SHA2 input) changes result
|
|
64
54
|
hash_merge_b_sensitivity: () => {
|
|
65
|
-
|
|
66
|
-
throw compress(hFF, hFF);
|
|
67
|
-
}
|
|
55
|
+
assert(compress(hFF, hFF) !== compress(hFF, hFE), compress(hFF, hFF));
|
|
68
56
|
},
|
|
69
57
|
// Shift correctness: same bit-flip in `a` vs `b` lands at different SHA2 input positions
|
|
70
58
|
hash_merge_shift: () => {
|
|
71
|
-
|
|
72
|
-
throw compress(hFE, hFF);
|
|
73
|
-
}
|
|
59
|
+
assert(compress(hFE, hFF) !== compress(hFF, hFE), compress(hFE, hFF));
|
|
74
60
|
},
|
|
75
61
|
};
|
|
@@ -42,9 +42,9 @@ export const proof = {
|
|
|
42
42
|
// All symbols before the terminator return undefined
|
|
43
43
|
intermediate_undefined: () => {
|
|
44
44
|
const [r0, st0] = enc(s1, initial);
|
|
45
|
-
|
|
45
|
+
assertEq(r0, undefined);
|
|
46
46
|
const [r1, st1] = enc(s0, st0);
|
|
47
|
-
|
|
47
|
+
assertEq(r1, undefined);
|
|
48
48
|
const [r2] = enc(s1, st1);
|
|
49
49
|
assert(r2 !== undefined);
|
|
50
50
|
},
|
|
@@ -100,13 +100,13 @@ export const proof = {
|
|
|
100
100
|
// Trie-internal merges have isSymbol=false; only the terminal merge has isSymbol=true
|
|
101
101
|
isSymbol_terminal_only: () => {
|
|
102
102
|
const [, storage] = runWord([s1, s0, s0]);
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
assertEq(storage[0][3], false); // Patricia trie merge
|
|
104
|
+
assertEq(storage[1][3], true); // terminal compress(root, t)
|
|
105
105
|
},
|
|
106
106
|
// Single-step word: no trie merges, exactly one isSymbol=true
|
|
107
107
|
isSymbol_min_word: () => {
|
|
108
108
|
const [, storage] = runWord([s0, s0]);
|
|
109
109
|
assertEq(storage.length, 1);
|
|
110
|
-
|
|
110
|
+
assertEq(storage[0][3], true);
|
|
111
111
|
},
|
|
112
112
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { chunkList, msb, vec } from '../../../types/bit_vec/module.f.js';
|
|
2
|
+
import { assert, assertEq } from '../../../asserts/module.f.js';
|
|
2
3
|
import { map, stateScan, toArray } from '../../../types/list/module.f.js';
|
|
3
4
|
import { emptyEncodeState, emptyPipelineState, level, literal1ToVec, literal2ToVec, literal3ToVec, pipelineStep, symbolToString, wordEqual, wordToString } from './module.f.js';
|
|
4
5
|
const tests = (n) => {
|
|
@@ -18,33 +19,24 @@ const tests = (n) => {
|
|
|
18
19
|
}
|
|
19
20
|
// encode
|
|
20
21
|
const a = toArray(stateScan(push)(emptyEncodeState)(word));
|
|
21
|
-
|
|
22
|
-
throw a;
|
|
23
|
-
}
|
|
22
|
+
assert(a.slice(0, -1).every(i => i === undefined), a);
|
|
24
23
|
const x = a.at(-1);
|
|
25
|
-
|
|
26
|
-
throw x;
|
|
27
|
-
}
|
|
24
|
+
assertEq(x, expected);
|
|
28
25
|
}
|
|
29
26
|
};
|
|
30
27
|
};
|
|
31
28
|
const l = (f) => (l, e) => {
|
|
32
29
|
const result = f(l);
|
|
33
|
-
|
|
34
|
-
throw [result, e];
|
|
35
|
-
}
|
|
30
|
+
assertEq(result, e, [result, e]);
|
|
36
31
|
};
|
|
37
32
|
const vecToBits = (v) => map((b) => msb.front(1n)(b))(chunkList(msb)(1n)(v));
|
|
38
33
|
const w = (symbol, expected) => {
|
|
39
34
|
const result = literal3ToVec(symbol);
|
|
40
|
-
|
|
41
|
-
throw [result, expected];
|
|
35
|
+
assertEq(result, expected, [result, expected]);
|
|
42
36
|
const a = toArray(stateScan(pipelineStep)(emptyPipelineState)(vecToBits(expected)));
|
|
43
|
-
|
|
44
|
-
throw a;
|
|
37
|
+
assert(a.slice(0, -1).every(o => o === undefined), a);
|
|
45
38
|
const out = a.at(-1);
|
|
46
|
-
|
|
47
|
-
throw out;
|
|
39
|
+
assertEq(out, symbol);
|
|
48
40
|
};
|
|
49
41
|
export const proof = {
|
|
50
42
|
x2: () => {
|
|
@@ -688,9 +680,7 @@ export const proof = {
|
|
|
688
680
|
},
|
|
689
681
|
wordToString: () => {
|
|
690
682
|
const result = wordToString([0n, 1n, 0xabn]);
|
|
691
|
-
|
|
692
|
-
throw result;
|
|
693
|
-
}
|
|
683
|
+
assertEq(result, '0,1,ab');
|
|
694
684
|
},
|
|
695
685
|
pipeline: () => {
|
|
696
686
|
// 4 L1 [0,0] words → 2 L2 [0,0] words → L3 [0,0] word → symbol 0
|
|
@@ -698,14 +688,12 @@ export const proof = {
|
|
|
698
688
|
let s = emptyPipelineState;
|
|
699
689
|
for (let i = 0; i < 7; i++) {
|
|
700
690
|
const [out, next] = pipelineStep(0n, s);
|
|
701
|
-
|
|
702
|
-
throw out;
|
|
691
|
+
assertEq(out, undefined);
|
|
703
692
|
s = next;
|
|
704
693
|
}
|
|
705
694
|
// 8th zero emits L3 symbol 0
|
|
706
695
|
const [out0, s2] = pipelineStep(0n, s);
|
|
707
|
-
|
|
708
|
-
throw out0;
|
|
696
|
+
assertEq(out0, 0n);
|
|
709
697
|
// state resets after emit: second batch of 8 zeros also emits 0
|
|
710
698
|
let s3 = s2;
|
|
711
699
|
for (let i = 0; i < 7; i++) {
|
|
@@ -713,8 +701,7 @@ export const proof = {
|
|
|
713
701
|
s3 = next;
|
|
714
702
|
}
|
|
715
703
|
const [out1] = pipelineStep(0n, s3);
|
|
716
|
-
|
|
717
|
-
throw out1;
|
|
704
|
+
assertEq(out1, 0n);
|
|
718
705
|
// 8 ones emit a different symbol than 8 zeros
|
|
719
706
|
let s4 = emptyPipelineState;
|
|
720
707
|
for (let i = 0; i < 7; i++) {
|
|
@@ -722,7 +709,6 @@ export const proof = {
|
|
|
722
709
|
s4 = next;
|
|
723
710
|
}
|
|
724
711
|
const [out2] = pipelineStep(1n, s4);
|
|
725
|
-
|
|
726
|
-
throw out2;
|
|
712
|
+
assert(out2 !== 0n, out2);
|
|
727
713
|
}
|
|
728
714
|
};
|
|
@@ -1,24 +1,14 @@
|
|
|
1
1
|
import { one, range } from './module.f.js';
|
|
2
2
|
import { stringify as jsonStringify } from '../../media/json/module.f.js';
|
|
3
3
|
import { sort } from '../../types/object/module.f.js';
|
|
4
|
+
import { assertEq } from '../../asserts/module.f.js';
|
|
4
5
|
const stringify = jsonStringify(sort);
|
|
5
6
|
export const proof = {
|
|
6
7
|
range: () => {
|
|
7
8
|
const r = stringify(range("A"));
|
|
8
|
-
|
|
9
|
-
throw r;
|
|
10
|
-
}
|
|
9
|
+
assertEq(r, '[65,65]');
|
|
11
10
|
},
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
try {
|
|
15
|
-
one('');
|
|
16
|
-
}
|
|
17
|
-
catch (_) {
|
|
18
|
-
threw = true;
|
|
19
|
-
}
|
|
20
|
-
if (!threw) {
|
|
21
|
-
throw 'expected throw';
|
|
22
|
-
}
|
|
11
|
+
throw: {
|
|
12
|
+
oneThrowsOnEmpty: () => one(''),
|
|
23
13
|
},
|
|
24
14
|
};
|
|
@@ -48,18 +48,18 @@ const maxCodePoint = 0x10_ffff;
|
|
|
48
48
|
* Checks whether the 16-bit word (U16) is a high surrogate.
|
|
49
49
|
* Range: 0xD800 - 0xDBFF.
|
|
50
50
|
*/
|
|
51
|
-
export const isHighSurrogate = contains(
|
|
51
|
+
export const isHighSurrogate = contains(surrogateMin, lowSurrogateMin - 1);
|
|
52
52
|
/**
|
|
53
53
|
* Checks whether the 16-bit word (U16) is a low surrogate.
|
|
54
54
|
* Range: 0xDC00 - 0xDFFF.
|
|
55
55
|
*/
|
|
56
|
-
export const isLowSurrogate = contains(
|
|
56
|
+
export const isLowSurrogate = contains(lowSurrogateMin, surrogateMax);
|
|
57
57
|
/**
|
|
58
58
|
* Ranges of code points for the lower (Low) and higher (High) parts of the BMP
|
|
59
59
|
* (Basic Multilingual Plane), i.e. the BMP with the surrogate block removed.
|
|
60
60
|
*/
|
|
61
|
-
const lowBmp = contains(
|
|
62
|
-
const highBmp = contains(
|
|
61
|
+
const lowBmp = contains(0x0000, surrogateMin - 1);
|
|
62
|
+
const highBmp = contains(surrogateMax + 1, bmpMax);
|
|
63
63
|
/**
|
|
64
64
|
* Checks whether the code point is in the BMP range.
|
|
65
65
|
* BMP is the main Unicode plane that covers code points 0x0000 - 0xFFFF, except
|
|
@@ -70,13 +70,13 @@ export const isBmpCodePoint = (codePoint) => lowBmp(codePoint) || highBmp(codePo
|
|
|
70
70
|
* Checks whether the code point belongs to a supplementary (additional) Unicode
|
|
71
71
|
* plane. Supplementary planes cover code points from 0x010000 to 0x10FFFF.
|
|
72
72
|
*/
|
|
73
|
-
export const isSupplementaryPlane = contains(
|
|
73
|
+
export const isSupplementaryPlane = contains(bmpMax + 1, maxCodePoint);
|
|
74
74
|
/**
|
|
75
75
|
* The full assignable code-point range and the surrogate block, used to gate
|
|
76
76
|
* overall validity below.
|
|
77
77
|
*/
|
|
78
|
-
const validRange = contains(
|
|
79
|
-
const isSurrogate = contains(
|
|
78
|
+
const validRange = contains(0, maxCodePoint);
|
|
79
|
+
const isSurrogate = contains(surrogateMin, surrogateMax);
|
|
80
80
|
/**
|
|
81
81
|
* Checks whether the code point is a valid scalar value: within the assignable
|
|
82
82
|
* Unicode range (0x0000 - 0x10FFFF) and not a surrogate.
|
|
@@ -89,9 +89,9 @@ export const isValidCodePoint = (c) => validRange(c) && !isSurrogate(c);
|
|
|
89
89
|
* contiguous run; the whitespace block 0x0009 - 0x000D (TAB, LF, VT, FF, CR) is
|
|
90
90
|
* the only control range legitimate in text.
|
|
91
91
|
*/
|
|
92
|
-
const c0Control = contains(
|
|
93
|
-
const delAndC1Control = contains(
|
|
94
|
-
const textWhitespace = contains(
|
|
92
|
+
const c0Control = contains(0x00, 0x1f);
|
|
93
|
+
const delAndC1Control = contains(0x7f, 0x9f);
|
|
94
|
+
const textWhitespace = contains(0x09, 0x0d);
|
|
95
95
|
/**
|
|
96
96
|
* Checks whether the code point is a *text* code point — distinct from
|
|
97
97
|
* {@link isValidCodePoint}, which gates well-formedness for decoding. A code
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { assertEq, assertNotNullish } from '../asserts/module.f.js';
|
|
2
2
|
import { flat, utf8, utf8ToString, tryUtf8 } from './module.f.js';
|
|
3
3
|
import { join } from '../types/string/module.f.js';
|
|
4
4
|
import { empty, maxLengthBytes } from '../types/bit_vec/module.f.js';
|
|
@@ -15,20 +15,15 @@ export const proof = {
|
|
|
15
15
|
'e',
|
|
16
16
|
];
|
|
17
17
|
const result = join('\n')(flat(':')(text));
|
|
18
|
-
|
|
19
|
-
throw result;
|
|
20
|
-
}
|
|
18
|
+
assertEq(result, 'a\nb\n:c\n::d\ne');
|
|
21
19
|
},
|
|
22
20
|
encoding: () => {
|
|
23
21
|
const v = utf8('Hello world!');
|
|
24
22
|
const r = utf8ToString(v);
|
|
25
|
-
|
|
26
|
-
throw r;
|
|
27
|
-
}
|
|
23
|
+
assertEq(r, 'Hello world!');
|
|
28
24
|
},
|
|
29
25
|
tryUtf8RoundTrip: () => {
|
|
30
|
-
const v = tryUtf8('Hello world!');
|
|
31
|
-
assert(v !== null);
|
|
26
|
+
const v = assertNotNullish(tryUtf8('Hello world!'));
|
|
32
27
|
assertEq(v, utf8('Hello world!'));
|
|
33
28
|
assertEq(utf8ToString(v), 'Hello world!');
|
|
34
29
|
},
|
|
@@ -1,42 +1,33 @@
|
|
|
1
1
|
import { fgRed, reset, createConsoleText, backspace, csiWrite } from './module.f.js';
|
|
2
2
|
import { virtual, emptyState, defaultNodeProgramOptions } from '../../effects/node/virtual/module.f.js';
|
|
3
|
+
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
3
4
|
const makeOptions = (isTTY) => ({ ...defaultNodeProgramOptions, std: { stdout: { isTTY }, stderr: { isTTY } } });
|
|
4
5
|
export const proof = [
|
|
5
6
|
() => {
|
|
6
|
-
|
|
7
|
-
throw new Error('Test failed: sgr(0)');
|
|
8
|
-
}
|
|
7
|
+
assertEq(fgRed, '\x1b[31m', new Error('Test failed: sgr(0)'));
|
|
9
8
|
},
|
|
10
9
|
() => {
|
|
11
10
|
const output = [];
|
|
12
11
|
const stdout = { write: (s) => { output.push(s); } };
|
|
13
12
|
const writer1 = createConsoleText(stdout);
|
|
14
13
|
const writer2 = writer1('hello');
|
|
15
|
-
|
|
16
|
-
throw output[0];
|
|
17
|
-
}
|
|
14
|
+
assert(output[0] === 'hello');
|
|
18
15
|
// replacing 'hello' (len=5) with 'hi' (len=2): suffixLength=3
|
|
19
16
|
writer2('hi');
|
|
20
17
|
const expected = backspace.repeat(5) + 'hi' + ' '.repeat(3) + backspace.repeat(3);
|
|
21
|
-
|
|
22
|
-
throw output[1];
|
|
23
|
-
}
|
|
18
|
+
assertEq(output[1], expected);
|
|
24
19
|
},
|
|
25
20
|
() => {
|
|
26
21
|
// csiWrite with isTTY=false strips ANSI SGR sequences
|
|
27
22
|
const writeFn = csiWrite(makeOptions(false))('stdout');
|
|
28
23
|
const [state] = virtual(emptyState)(writeFn(fgRed + 'hello' + reset));
|
|
29
|
-
|
|
30
|
-
throw ['expected ANSI stripped', state.stdout];
|
|
31
|
-
}
|
|
24
|
+
assertEq(state.stdout, 'hello', ['expected ANSI stripped', state.stdout]);
|
|
32
25
|
},
|
|
33
26
|
() => {
|
|
34
27
|
// csiWrite with isTTY=true preserves ANSI SGR sequences
|
|
35
28
|
const writeFn = csiWrite(makeOptions(true))('stdout');
|
|
36
29
|
const [state] = virtual(emptyState)(writeFn(fgRed + 'hello' + reset));
|
|
37
30
|
const expected = fgRed + 'hello' + reset;
|
|
38
|
-
|
|
39
|
-
throw ['expected ANSI preserved', state.stdout];
|
|
40
|
-
}
|
|
31
|
+
assertEq(state.stdout, expected, ['expected ANSI preserved', state.stdout]);
|
|
41
32
|
},
|
|
42
33
|
];
|
|
@@ -107,7 +107,7 @@ export const fromCodePointList = flatMap(codePointToUtf16);
|
|
|
107
107
|
* const edgeCaseHigh = u16(0xFFFF) // true: Maximum valid value for UTF-16
|
|
108
108
|
* ```
|
|
109
109
|
*/
|
|
110
|
-
const u16 = contains(
|
|
110
|
+
const u16 = contains(0x0000, 0xFFFF);
|
|
111
111
|
/**
|
|
112
112
|
* A stateful operation that converts a UTF-16 word (U16) to a list of Unicode code points (CodePoint),
|
|
113
113
|
* while maintaining the state of surrogate pair decoding.
|