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
|
@@ -5,15 +5,15 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { toArray } from
|
|
9
|
-
import { length, msb, uint, uintChunkList, unpack, vec } from
|
|
10
|
-
import { assertEq } from
|
|
11
|
-
import { utf8 } from
|
|
12
|
-
import { secp256r1 } from
|
|
13
|
-
import { base32 } from
|
|
14
|
-
import { literal3ToVec } from
|
|
15
|
-
import { log2 } from
|
|
16
|
-
import { asBase, asNominal } from
|
|
8
|
+
import { toArray } from '../../types/list/module.f.js';
|
|
9
|
+
import { length, msb, uint, uintChunkList, unpack, vec } from '../../types/bit_vec/module.f.js';
|
|
10
|
+
import { assertEq } from '../../asserts/module.f.js';
|
|
11
|
+
import { utf8 } from '../../text/module.f.js';
|
|
12
|
+
import { secp256r1 } from '../../crypto/secp/module.f.js';
|
|
13
|
+
import { base32 } from '../../crypto/sha2/module.f.js';
|
|
14
|
+
import { literal3ToVec } from '../level/literal/module.f.js';
|
|
15
|
+
import { log2 } from '../../types/bigint/module.f.js';
|
|
16
|
+
import { asBase, asNominal } from '../../types/nominal/module.f.js';
|
|
17
17
|
// 32 bytes = 256 bits.
|
|
18
18
|
//
|
|
19
19
|
// 0 1
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { assert, assertEq } from
|
|
2
|
-
import { mask } from
|
|
3
|
-
import { vec } from
|
|
4
|
-
import { compress, hashId, isHash, isRaw, level3Id, rawId } from
|
|
5
|
-
import { asBase } from
|
|
1
|
+
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
2
|
+
import { mask } from '../../types/bigint/module.f.js';
|
|
3
|
+
import { vec } from '../../types/bit_vec/module.f.js';
|
|
4
|
+
import { compress, hashId, isHash, isRaw, level3Id, rawId } from './module.f.js';
|
|
5
|
+
import { asBase } from '../../types/nominal/module.f.js';
|
|
6
6
|
// literal3ToVec bit patterns for symbols used below:
|
|
7
7
|
// 0 → vec(8n)(0n) 4 → vec(8n)(3n)
|
|
8
8
|
// 1 → vec(8n)(1n) 10 → vec(8n)(5n)
|
|
@@ -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
|
};
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { emptyState, patriciaTrie } from
|
|
7
|
-
import { compress } from
|
|
8
|
-
import { asBase } from
|
|
6
|
+
import { emptyState, patriciaTrie } from '../../../types/patricia_trie/module.f.js';
|
|
7
|
+
import { compress } from '../../id/module.f.js';
|
|
8
|
+
import { asBase } from '../../../types/nominal/module.f.js';
|
|
9
9
|
/**
|
|
10
10
|
* Returns a streaming encoder for hash-level symbols.
|
|
11
11
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { assert, assertEq } from
|
|
2
|
-
import { compress, level3Id } from
|
|
3
|
-
import { emptyEncodeState, encode } from
|
|
1
|
+
import { assert, assertEq } from '../../../asserts/module.f.js';
|
|
2
|
+
import { compress, level3Id } from '../../id/module.f.js';
|
|
3
|
+
import { emptyEncodeState, encode } from './module.f.js';
|
|
4
4
|
const add = (l, r, m, isSymbol, s) => [...s, [l, r, m, isSymbol]];
|
|
5
5
|
const enc = encode(add);
|
|
6
6
|
const initial = emptyEncodeState([]);
|
|
@@ -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
|
};
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import { log2 } from
|
|
8
|
-
import { msb, vec } from
|
|
9
|
-
import { strictEqual } from
|
|
10
|
-
import { equal, map } from
|
|
11
|
-
import { join } from
|
|
7
|
+
import { log2 } from '../../../types/bigint/module.f.js';
|
|
8
|
+
import { msb, vec } from '../../../types/bit_vec/module.f.js';
|
|
9
|
+
import { strictEqual } from '../../../types/function/operator/module.f.js';
|
|
10
|
+
import { equal, map } from '../../../types/list/module.f.js';
|
|
11
|
+
import { join } from '../../../types/string/module.f.js';
|
|
12
12
|
export const symbolToString = (s) => s.toString(16);
|
|
13
13
|
export const wordToString = (word) => join(',')(map(symbolToString)(word));
|
|
14
14
|
export const wordEqual = equal(strictEqual);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { chunkList, msb, vec } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { chunkList, msb, vec } from '../../../types/bit_vec/module.f.js';
|
|
2
|
+
import { assert, assertEq } from '../../../asserts/module.f.js';
|
|
3
|
+
import { map, stateScan, toArray } from '../../../types/list/module.f.js';
|
|
4
|
+
import { emptyEncodeState, emptyPipelineState, level, literal1ToVec, literal2ToVec, literal3ToVec, pipelineStep, symbolToString, wordEqual, wordToString } from './module.f.js';
|
|
4
5
|
const tests = (n) => {
|
|
5
6
|
const { sum, decode, encode: push } = level(n);
|
|
6
7
|
return {
|
|
@@ -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
|
};
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import { emptyPipelineState, pipelineStep } from
|
|
8
|
-
import { encode as hashEncode } from
|
|
9
|
-
import { level3Id } from
|
|
7
|
+
import { emptyPipelineState, pipelineStep } from './level/literal/module.f.js';
|
|
8
|
+
import { encode as hashEncode } from './level/hash/module.f.js';
|
|
9
|
+
import { level3Id } from './id/module.f.js';
|
|
10
10
|
export const emptyEncodeState = (storage) => [emptyPipelineState, storage, []];
|
|
11
11
|
export const encode = (add) => {
|
|
12
12
|
const step = hashEncode(add);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { assert, assertEq } from
|
|
2
|
-
import { compress } from
|
|
3
|
-
import { encode, emptyEncodeState } from
|
|
1
|
+
import { assert, assertEq } from '../asserts/module.f.js';
|
|
2
|
+
import { compress } from './id/module.f.js';
|
|
3
|
+
import { encode, emptyEncodeState } from './module.f.js';
|
|
4
4
|
const run = (bits) => {
|
|
5
5
|
const log = [];
|
|
6
6
|
const add = (l, r, m, isSymbol) => { log.push([l, r, m, isSymbol]); return null; };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { one, range } from './module.f.js';
|
|
2
|
+
import { stringify as jsonStringify } from '../../media/json/module.f.js';
|
|
3
|
+
import { sort } from '../../types/object/module.f.js';
|
|
4
|
+
import { assertEq } from '../../asserts/module.f.js';
|
|
5
|
+
const stringify = jsonStringify(sort);
|
|
6
|
+
export const proof = {
|
|
7
|
+
range: () => {
|
|
8
|
+
const r = stringify(range("A"));
|
|
9
|
+
assertEq(r, '[65,65]');
|
|
10
|
+
},
|
|
11
|
+
throw: {
|
|
12
|
+
oneThrowsOnEmpty: () => one(''),
|
|
13
|
+
},
|
|
14
|
+
};
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
11
|
-
import { flat, stateScan } from
|
|
12
|
-
import { contains } from
|
|
11
|
+
import { flat, stateScan } from '../../types/list/module.f.js';
|
|
12
|
+
import { contains } from '../../types/range/module.f.js';
|
|
13
13
|
/**
|
|
14
14
|
* Error mask used to tag invalid code points or encoding errors. A decoded
|
|
15
15
|
* value with this bit set represents a malformed unit rather than a valid
|
|
@@ -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 { isBmpCodePoint, isHighSurrogate, isLowSurrogate, isSupplementaryPlane, isTextCodePoint, isValidCodePoint, } from
|
|
1
|
+
import { isBmpCodePoint, isHighSurrogate, isLowSurrogate, isSupplementaryPlane, isTextCodePoint, isValidCodePoint, } from './module.f.js';
|
|
2
2
|
const check = (actual, expected) => {
|
|
3
3
|
if (actual !== expected) {
|
|
4
4
|
throw `${actual} !== ${expected}`;
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { msb, tryU8ListToVec, u8List } from
|
|
9
|
-
import { flatMap } from
|
|
10
|
-
import { fromCodePointList, toCodePointList } from
|
|
11
|
-
import { stringToCodePointList, codePointListToString } from
|
|
12
|
-
import { mapUnwrap } from
|
|
8
|
+
import { msb, tryU8ListToVec, u8List } from '../types/bit_vec/module.f.js';
|
|
9
|
+
import { flatMap } from '../types/list/module.f.js';
|
|
10
|
+
import { fromCodePointList, toCodePointList } from './utf8/module.f.js';
|
|
11
|
+
import { stringToCodePointList, codePointListToString } from './utf16/module.f.js';
|
|
12
|
+
import { mapUnwrap } from '../types/nullable/module.f.js';
|
|
13
13
|
export const flat = (indent) => {
|
|
14
14
|
const f = (prefix) => {
|
|
15
15
|
const g = (item) => typeof (item) === 'string' ? [`${prefix}${item}`] : f(`${prefix}${indent}`)(item);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { flat, utf8, utf8ToString, tryUtf8 } from
|
|
3
|
-
import { join } from
|
|
4
|
-
import { empty, maxLengthBytes } from
|
|
1
|
+
import { assertEq, assertNotNullish } from '../asserts/module.f.js';
|
|
2
|
+
import { flat, utf8, utf8ToString, tryUtf8 } from './module.f.js';
|
|
3
|
+
import { join } from '../types/string/module.f.js';
|
|
4
|
+
import { empty, maxLengthBytes } from '../types/bit_vec/module.f.js';
|
|
5
5
|
const overflowStr = 'a'.repeat(Number(maxLengthBytes) + 1);
|
|
6
6
|
export const proof = {
|
|
7
7
|
block: () => {
|
|
@@ -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
|
},
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
// C0 control codes
|
|
8
8
|
// https://en.wikipedia.org/wiki/ANSI_escape_code#C0_control_codes
|
|
9
|
-
import { write } from
|
|
10
|
-
import {} from
|
|
9
|
+
import { write } from '../../effects/node/module.f.js';
|
|
10
|
+
import {} from '../../effects/module.f.js';
|
|
11
11
|
import { utf8 } from "../module.f.js";
|
|
12
12
|
export const backspace = '\x08';
|
|
13
13
|
const begin = '\x1b[';
|
|
@@ -1,42 +1,33 @@
|
|
|
1
|
-
import { fgRed, reset, createConsoleText, backspace, csiWrite } from
|
|
2
|
-
import { virtual, emptyState, defaultNodeProgramOptions } from
|
|
1
|
+
import { fgRed, reset, createConsoleText, backspace, csiWrite } from './module.f.js';
|
|
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
|
];
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import { map, reduce, flatMap, empty, } from
|
|
9
|
-
import { concat } from
|
|
10
|
-
import { contains } from
|
|
11
|
-
import { fn } from
|
|
12
|
-
import { decoder, errorMask, isBmpCodePoint, isHighSurrogate, isLowSurrogate, isSupplementaryPlane, } from
|
|
8
|
+
import { map, reduce, flatMap, empty, } from '../../types/list/module.f.js';
|
|
9
|
+
import { concat } from '../../types/function/operator/module.f.js';
|
|
10
|
+
import { contains } from '../../types/range/module.f.js';
|
|
11
|
+
import { fn } from '../../types/function/module.f.js';
|
|
12
|
+
import { decoder, errorMask, isBmpCodePoint, isHighSurrogate, isLowSurrogate, isSupplementaryPlane, } from '../code_point/module.f.js';
|
|
13
13
|
/**
|
|
14
14
|
* The BMP / surrogate / supplementary-plane predicates used below live in
|
|
15
15
|
* `code_point`, the shared Unicode contract; see that module for their ranges.
|
|
@@ -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.
|