functionalscript 0.43.1 → 0.44.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 +53 -21
- package/fjs/asn.1/module.f.d.mts +123 -0
- package/fjs/asn.1/module.f.mjs +459 -0
- package/fjs/asn.1/proof.f.mjs +309 -0
- package/fjs/asn.1/types.d.ts +37 -0
- package/fjs/asn.1/types.js +6 -0
- package/fjs/asserts/module.f.d.mts +37 -0
- package/fjs/asserts/module.f.mjs +49 -0
- package/fjs/asserts/proof.f.mjs +19 -0
- package/fjs/asserts/types.d.ts +11 -0
- package/fjs/asserts/types.js +6 -0
- package/fjs/basen/base128/module.f.d.mts +22 -0
- package/fjs/basen/base128/module.f.mjs +51 -0
- package/fjs/basen/base128/proof.f.d.mts +2 -0
- package/fjs/basen/base128/proof.f.mjs +30 -0
- package/fjs/basen/base64/module.f.d.mts +14 -0
- package/fjs/basen/base64/module.f.mjs +71 -0
- package/fjs/basen/base64/proof.f.d.mts +17 -0
- package/fjs/basen/base64/proof.f.mjs +147 -0
- package/fjs/basen/cbase32/module.f.d.mts +18 -0
- package/fjs/basen/cbase32/module.f.mjs +61 -0
- package/fjs/basen/cbase32/proof.f.d.mts +8 -0
- package/fjs/basen/cbase32/proof.f.mjs +77 -0
- package/fjs/basen/module.f.d.mts +30 -0
- package/fjs/basen/module.f.mjs +88 -0
- package/fjs/basen/proof.f.mjs +69 -0
- package/fjs/basen/types.d.ts +14 -0
- package/fjs/basen/types.js +6 -0
- package/fjs/bnf/data/module.f.d.mts +47 -0
- package/fjs/bnf/data/module.f.mjs +188 -0
- package/fjs/bnf/data/proof.f.d.mts +13 -0
- package/fjs/bnf/data/proof.f.mjs +160 -0
- package/fjs/bnf/data/types.d.ts +35 -0
- package/fjs/bnf/data/types.js +6 -0
- package/fjs/bnf/descent/module.f.d.mts +33 -0
- package/fjs/bnf/descent/module.f.mjs +212 -0
- package/fjs/bnf/descent/proof.f.d.mts +13 -0
- package/fjs/bnf/descent/proof.f.mjs +351 -0
- package/fjs/bnf/descent/types.d.ts +71 -0
- package/fjs/bnf/descent/types.js +6 -0
- package/fjs/bnf/ll1/module.f.d.mts +41 -0
- package/fjs/bnf/ll1/module.f.mjs +199 -0
- package/fjs/bnf/ll1/proof.f.d.mts +16 -0
- package/fjs/bnf/ll1/proof.f.mjs +352 -0
- package/fjs/bnf/ll1/types.d.ts +59 -0
- package/fjs/bnf/ll1/types.js +6 -0
- package/fjs/bnf/module.f.d.mts +164 -0
- package/fjs/bnf/module.f.mjs +298 -0
- package/fjs/bnf/proof.f.d.mts +17 -0
- package/fjs/bnf/proof.f.mjs +89 -0
- package/fjs/bnf/testlib.f.d.mts +10 -0
- package/fjs/bnf/testlib.f.mjs +196 -0
- package/fjs/bnf/token_symbol/module.f.d.mts +35 -0
- package/fjs/bnf/token_symbol/module.f.mjs +62 -0
- package/fjs/bnf/token_symbol/proof.f.mjs +43 -0
- package/fjs/bnf/token_symbol/types.d.ts +27 -0
- package/fjs/bnf/token_symbol/types.js +6 -0
- package/fjs/bnf/types.d.ts +67 -0
- package/fjs/bnf/types.js +6 -0
- package/fjs/cas/cli/module.f.d.mts +17 -0
- package/fjs/cas/cli/module.f.mjs +73 -0
- package/fjs/cas/cli/proof.f.d.mts +18 -0
- package/fjs/cas/cli/proof.f.mjs +118 -0
- package/fjs/cas/evo/module.f.d.mts +163 -0
- package/fjs/cas/evo/module.f.mjs +556 -0
- package/fjs/cas/evo/proof.f.d.mts +55 -0
- package/fjs/cas/evo/proof.f.mjs +749 -0
- package/fjs/cas/evo/types.d.ts +111 -0
- package/fjs/cas/evo/types.js +7 -0
- package/fjs/cas/module.f.d.mts +68 -0
- package/fjs/cas/module.f.mjs +363 -0
- package/fjs/cas/proof.f.d.mts +29 -0
- package/fjs/cas/proof.f.mjs +371 -0
- package/fjs/cas/types.d.ts +35 -0
- package/fjs/cas/types.js +6 -0
- package/fjs/ci/bun/module.f.d.mts +11 -0
- package/fjs/ci/bun/module.f.mjs +20 -0
- package/fjs/ci/common/module.f.d.mts +80 -0
- package/fjs/ci/common/module.f.mjs +87 -0
- package/fjs/ci/common/types.d.ts +27 -0
- package/fjs/ci/config/module.f.d.mts +45 -0
- package/fjs/ci/config/module.f.mjs +89 -0
- package/fjs/ci/deno/module.f.d.mts +16 -0
- package/fjs/ci/deno/module.f.mjs +29 -0
- package/fjs/ci/deno/proof.f.d.mts +4 -0
- package/fjs/ci/deno/proof.f.mjs +26 -0
- package/fjs/ci/module.f.d.mts +19 -0
- package/fjs/ci/module.f.mjs +89 -0
- package/fjs/ci/nix/module.f.d.mts +69 -0
- package/fjs/ci/nix/module.f.mjs +136 -0
- package/fjs/ci/nix/proof.f.d.mts +28 -0
- package/fjs/ci/nix/proof.f.mjs +146 -0
- package/fjs/ci/nix/types.d.ts +16 -0
- package/fjs/ci/nix/types.js +6 -0
- package/fjs/ci/node/module.f.d.mts +48 -0
- package/fjs/ci/node/module.f.mjs +139 -0
- package/fjs/ci/node/proof.f.mjs +18 -0
- package/fjs/ci/proof.f.d.mts +20 -0
- package/fjs/ci/proof.f.mjs +219 -0
- package/fjs/ci/rust/module.f.d.mts +15 -0
- package/fjs/ci/rust/module.f.mjs +108 -0
- package/fjs/ci/types.d.ts +9 -0
- package/fjs/ci/types.js +6 -0
- package/fjs/cli/module.f.d.mts +16 -0
- package/fjs/cli/module.f.mjs +51 -0
- package/fjs/cli/proof.f.d.mts +16 -0
- package/fjs/cli/proof.f.mjs +130 -0
- package/fjs/cli/types.d.ts +15 -0
- package/fjs/cli/types.js +6 -0
- package/fjs/common/monoid/module.f.d.mts +87 -0
- package/fjs/common/monoid/module.f.mjs +104 -0
- package/fjs/common/monoid/proof.f.d.mts +10 -0
- package/fjs/common/monoid/proof.f.mjs +58 -0
- package/fjs/common/monoid/types.d.ts +50 -0
- package/fjs/common/monoid/types.js +6 -0
- package/fjs/crypto/hmac/module.f.d.mts +32 -0
- package/fjs/crypto/hmac/module.f.mjs +65 -0
- package/fjs/crypto/hmac/proof.f.mjs +34 -0
- package/fjs/crypto/pow/module.f.d.mts +43 -0
- package/fjs/crypto/pow/module.f.mjs +93 -0
- package/fjs/crypto/pow/proof.f.mjs +121 -0
- package/fjs/crypto/pow/types.d.ts +19 -0
- package/fjs/crypto/pow/types.js +6 -0
- package/fjs/crypto/secp/module.f.d.mts +61 -0
- package/fjs/crypto/secp/module.f.mjs +204 -0
- package/fjs/crypto/secp/proof.f.d.mts +9 -0
- package/fjs/crypto/secp/proof.f.mjs +137 -0
- package/fjs/crypto/secp/types.d.ts +36 -0
- package/fjs/crypto/secp/types.js +6 -0
- package/fjs/crypto/sha2/module.f.d.mts +80 -0
- package/fjs/crypto/sha2/module.f.mjs +431 -0
- package/fjs/crypto/sha2/proof.f.d.mts +32 -0
- package/fjs/crypto/sha2/proof.f.mjs +144 -0
- package/fjs/crypto/sha2/types.d.ts +57 -0
- package/fjs/crypto/sha2/types.js +6 -0
- package/fjs/crypto/sign/module.f.d.mts +46 -0
- package/fjs/crypto/sign/module.f.mjs +189 -0
- package/fjs/crypto/sign/proof.f.d.mts +17 -0
- package/fjs/crypto/sign/proof.f.mjs +604 -0
- package/fjs/crypto/sign/types.d.ts +13 -0
- package/fjs/crypto/sign/types.js +6 -0
- package/fjs/crypto/vdf/module.f.d.mts +15 -0
- package/fjs/crypto/vdf/module.f.mjs +84 -0
- package/fjs/crypto/vdf/proof.f.mjs +106 -0
- package/fjs/crypto/vdf/types.d.ts +18 -0
- package/fjs/crypto/vdf/types.js +6 -0
- package/fjs/dev/module.f.d.mts +56 -0
- package/fjs/dev/module.f.mjs +170 -0
- package/fjs/dev/package_json/module.f.d.mts +32 -0
- package/fjs/dev/package_json/module.f.mjs +37 -0
- package/fjs/dev/package_json/proof.f.mjs +32 -0
- package/fjs/dev/proof.f.d.mts +13 -0
- package/fjs/dev/proof.f.mjs +78 -0
- package/fjs/dev/types.d.ts +14 -0
- package/fjs/dev/types.js +6 -0
- package/fjs/dev/update/module.f.d.mts +19 -0
- package/fjs/dev/update/module.f.mjs +36 -0
- package/fjs/dev/update/proof.f.d.mts +7 -0
- package/fjs/dev/update/proof.f.mjs +36 -0
- package/fjs/djs/ast/module.f.d.mts +35 -0
- package/fjs/djs/ast/module.f.mjs +82 -0
- package/fjs/djs/ast/proof.f.mjs +48 -0
- package/fjs/djs/ast/types.d.ts +54 -0
- package/fjs/djs/ast/types.js +8 -0
- package/fjs/djs/examples/input.f.mjs +4 -0
- package/fjs/djs/examples/m.f.mjs +1 -0
- package/fjs/djs/module.f.d.mts +17 -0
- package/fjs/djs/module.f.mjs +47 -0
- package/fjs/djs/parser/module.f.d.mts +75 -0
- package/fjs/djs/parser/module.f.mjs +547 -0
- package/fjs/djs/parser/proof.f.mjs +543 -0
- package/fjs/djs/parser/types.d.ts +11 -0
- package/fjs/djs/parser/types.js +7 -0
- package/fjs/djs/proof.f.mjs +52 -0
- package/fjs/djs/serializer/module.f.d.mts +30 -0
- package/fjs/djs/serializer/module.f.mjs +206 -0
- package/fjs/djs/serializer/proof.f.mjs +116 -0
- package/fjs/djs/tokenizer/module.f.d.mts +65 -0
- package/fjs/djs/tokenizer/module.f.mjs +624 -0
- package/fjs/djs/tokenizer/proof.f.mjs +980 -0
- package/fjs/djs/tokenizer/types.d.ts +20 -0
- package/fjs/djs/tokenizer/types.js +7 -0
- package/fjs/djs/transpiler/module.f.d.mts +44 -0
- package/fjs/djs/transpiler/module.f.mjs +141 -0
- package/fjs/djs/transpiler/proof.f.mjs +76 -0
- package/fjs/djs/types.d.ts +13 -0
- package/fjs/djs/types.js +7 -0
- package/fjs/effects/eff/module.f.d.mts +10 -0
- package/fjs/effects/eff/module.f.mjs +68 -0
- package/fjs/effects/eff/proof.f.d.mts +12 -0
- package/fjs/effects/eff/proof.f.mjs +66 -0
- package/fjs/effects/eff/types.d.ts +71 -0
- package/fjs/effects/eff/types.js +6 -0
- package/fjs/effects/list/module.f.d.mts +24 -0
- package/fjs/effects/list/module.f.mjs +34 -0
- package/fjs/effects/list/types.d.ts +26 -0
- package/fjs/effects/list/types.js +6 -0
- package/fjs/effects/memory/module.f.d.mts +32 -0
- package/fjs/effects/memory/module.f.mjs +44 -0
- package/fjs/effects/memory/proof.f.d.mts +12 -0
- package/fjs/effects/memory/proof.f.mjs +83 -0
- package/fjs/effects/memory/types.d.ts +18 -0
- package/fjs/effects/memory/types.js +6 -0
- package/fjs/effects/mock/module.f.d.mts +6 -0
- package/fjs/effects/mock/module.f.mjs +26 -0
- package/fjs/effects/mock/types.d.ts +15 -0
- package/fjs/effects/mock/types.js +6 -0
- package/fjs/effects/module.d.mts +7 -0
- package/fjs/effects/module.f.d.mts +350 -0
- package/fjs/effects/module.f.mjs +382 -0
- package/fjs/effects/module.mjs +18 -0
- package/fjs/effects/node/memory/module.d.mts +24 -0
- package/fjs/effects/node/memory/module.mjs +59 -0
- package/fjs/effects/node/memory/proof.mjs +43 -0
- package/fjs/effects/node/module.d.mts +54 -0
- package/fjs/effects/node/module.f.d.mts +172 -0
- package/fjs/effects/node/module.f.mjs +354 -0
- package/fjs/effects/node/module.mjs +393 -0
- package/fjs/effects/node/proof.f.d.mts +76 -0
- package/fjs/effects/node/proof.f.mjs +444 -0
- package/fjs/effects/node/types.d.ts +203 -0
- package/fjs/effects/node/types.js +6 -0
- package/fjs/effects/node/virtual/module.f.d.mts +31 -0
- package/fjs/effects/node/virtual/module.f.mjs +434 -0
- package/fjs/effects/node/virtual/proof.f.d.mts +35 -0
- package/fjs/effects/node/virtual/proof.f.mjs +226 -0
- package/fjs/effects/node/virtual/types.d.ts +39 -0
- package/fjs/effects/node/virtual/types.js +7 -0
- package/fjs/effects/proof.f.d.mts +62 -0
- package/fjs/effects/proof.f.mjs +231 -0
- package/fjs/effects/types.d.ts +115 -0
- package/fjs/effects/types.js +6 -0
- package/fjs/emergent_testing/all.test.js +2 -2
- package/fjs/emergent_testing/example.f.d.mts +16 -0
- package/fjs/emergent_testing/example.f.mjs +34 -0
- package/fjs/emergent_testing/module.f.d.mts +150 -0
- package/fjs/emergent_testing/module.f.mjs +414 -0
- package/fjs/emergent_testing/proof.f.d.mts +97 -0
- package/fjs/emergent_testing/proof.f.mjs +518 -0
- package/fjs/emergent_testing/types.d.ts +53 -0
- package/fjs/emergent_testing/types.js +6 -0
- package/fjs/fsc/bnf.f.d.mts +3 -0
- package/fjs/fsc/bnf.f.mjs +77 -0
- package/fjs/fsc/json.f.d.mts +13 -0
- package/fjs/fsc/json.f.mjs +124 -0
- package/fjs/fsc/module.f.d.mts +14 -0
- package/fjs/fsc/module.f.mjs +138 -0
- package/fjs/fsc/proof.f.mjs +119 -0
- package/fjs/fsm/module.f.d.mts +27 -0
- package/fjs/fsm/module.f.mjs +99 -0
- package/fjs/fsm/proof.f.mjs +146 -0
- package/fjs/js/tokenizer/module.f.d.mts +19 -0
- package/fjs/js/tokenizer/module.f.mjs +795 -0
- package/fjs/js/tokenizer/proof.f.d.mts +12 -0
- package/fjs/js/tokenizer/proof.f.mjs +681 -0
- package/fjs/js/tokenizer/types.d.ts +193 -0
- package/fjs/js/tokenizer/types.js +6 -0
- package/fjs/mcp/cas/module.f.d.mts +156 -0
- package/fjs/mcp/cas/module.f.mjs +302 -0
- package/fjs/mcp/evo/module.f.d.mts +88 -0
- package/fjs/mcp/evo/module.f.mjs +153 -0
- package/fjs/mcp/evo/proof.f.d.mts +17 -0
- package/fjs/mcp/evo/proof.f.mjs +166 -0
- package/fjs/mcp/module.f.d.mts +32 -0
- package/fjs/mcp/module.f.mjs +96 -0
- package/fjs/mcp/proof.f.d.mts +46 -0
- package/fjs/mcp/proof.f.mjs +725 -0
- package/fjs/media/html/module.f.d.mts +43 -0
- package/fjs/media/html/module.f.mjs +167 -0
- package/fjs/media/html/proof.f.mjs +77 -0
- package/fjs/media/html/types.d.ts +19 -0
- package/fjs/media/html/types.js +6 -0
- package/fjs/media/json/module.f.d.mts +48 -0
- package/fjs/media/json/module.f.mjs +104 -0
- package/fjs/media/json/parser/module.f.d.mts +30 -0
- package/fjs/media/json/parser/module.f.mjs +219 -0
- package/fjs/media/json/parser/proof.f.d.mts +8 -0
- package/fjs/media/json/parser/proof.f.mjs +314 -0
- package/fjs/media/json/parser/types.d.ts +34 -0
- package/fjs/media/json/parser/types.js +6 -0
- package/fjs/media/json/proof.f.mjs +79 -0
- package/fjs/media/json/rtti/module.f.d.mts +38 -0
- package/fjs/media/json/rtti/module.f.mjs +51 -0
- package/fjs/media/json/rtti/proof.f.d.mts +26 -0
- package/fjs/media/json/rtti/proof.f.mjs +86 -0
- package/fjs/media/json/schema/module.f.d.mts +79 -0
- package/fjs/media/json/schema/module.f.mjs +144 -0
- package/fjs/media/json/schema/proof.f.d.mts +40 -0
- package/fjs/media/json/schema/proof.f.mjs +93 -0
- package/fjs/media/json/serializer/module.f.d.mts +27 -0
- package/fjs/media/json/serializer/module.f.mjs +131 -0
- package/fjs/media/json/serializer/proof.f.mjs +92 -0
- package/fjs/media/json/tokenizer/module.f.d.mts +17 -0
- package/fjs/media/json/tokenizer/module.f.mjs +77 -0
- package/fjs/media/json/tokenizer/proof.f.d.mts +8 -0
- package/fjs/media/json/tokenizer/proof.f.mjs +291 -0
- package/fjs/media/json/tokenizer/types.d.ts +17 -0
- package/fjs/media/json/tokenizer/types.js +6 -0
- package/fjs/media/json/types.d.ts +25 -0
- package/fjs/media/json/types.js +13 -0
- package/fjs/media/module.f.d.mts +116 -0
- package/fjs/media/module.f.mjs +152 -0
- package/fjs/media/nix/module.f.d.mts +14 -0
- package/fjs/media/nix/module.f.mjs +261 -0
- package/fjs/media/nix/proof.f.mjs +181 -0
- package/fjs/media/nix/types.d.ts +22 -0
- package/fjs/media/nix/types.js +6 -0
- package/fjs/media/proof.f.d.mts +19 -0
- package/fjs/media/proof.f.mjs +159 -0
- package/fjs/media/revision/module.f.d.mts +119 -0
- package/fjs/media/revision/module.f.mjs +166 -0
- package/fjs/media/revision/proof.f.mjs +228 -0
- package/fjs/media/revision/types.d.ts +16 -0
- package/fjs/media/revision/types.js +8 -0
- package/fjs/media/rust/module.f.d.mts +61 -0
- package/fjs/media/rust/module.f.mjs +93 -0
- package/fjs/media/rust/proof.f.d.mts +17 -0
- package/fjs/media/rust/proof.f.mjs +50 -0
- package/fjs/media/type/module.f.d.mts +97 -0
- package/fjs/media/type/module.f.mjs +281 -0
- package/fjs/media/type/proof.f.mjs +285 -0
- package/fjs/media/type/types.d.ts +67 -0
- package/fjs/media/type/types.js +6 -0
- package/fjs/media/types.d.ts +26 -0
- package/fjs/media/types.js +7 -0
- package/fjs/module.f.d.mts +3 -0
- package/fjs/module.f.mjs +60 -0
- package/fjs/module.mjs +6 -0
- package/fjs/nanvm/module.f.d.mts +54 -0
- package/fjs/nanvm/module.f.mjs +240 -0
- package/fjs/nanvm/proof.f.d.mts +41 -0
- package/fjs/nanvm/proof.f.mjs +173 -0
- package/fjs/nanvm/rust/module.f.d.mts +54 -0
- package/fjs/nanvm/rust/module.f.mjs +166 -0
- package/fjs/nanvm/rust/proof.f.d.mts +21 -0
- package/fjs/nanvm/rust/proof.f.mjs +119 -0
- package/fjs/nanvm/types.d.ts +105 -0
- package/fjs/nanvm/types.js +11 -0
- package/fjs/nanvm/update/module.f.d.mts +23 -0
- package/fjs/nanvm/update/module.f.mjs +33 -0
- package/fjs/nanvm/update/proof.f.d.mts +9 -0
- package/fjs/nanvm/update/proof.f.mjs +32 -0
- package/fjs/path/module.f.d.mts +55 -0
- package/fjs/path/module.f.mjs +96 -0
- package/fjs/path/proof.f.mjs +125 -0
- package/fjs/proof.f.mjs +48 -0
- package/fjs/protocol/json_rpc/module.f.d.mts +127 -0
- package/fjs/protocol/json_rpc/module.f.mjs +112 -0
- package/fjs/protocol/json_rpc/proof.f.mjs +84 -0
- package/fjs/protocol/json_rpc/types.d.ts +30 -0
- package/fjs/protocol/json_rpc/types.js +8 -0
- package/fjs/protocol/mcp/module.f.d.mts +227 -0
- package/fjs/protocol/mcp/module.f.mjs +369 -0
- package/fjs/protocol/mcp/proof.f.d.mts +53 -0
- package/fjs/protocol/mcp/proof.f.mjs +312 -0
- package/fjs/protocol/mcp/stdio/module.f.d.mts +52 -0
- package/fjs/protocol/mcp/stdio/module.f.mjs +132 -0
- package/fjs/protocol/mcp/stdio/proof.f.d.mts +20 -0
- package/fjs/protocol/mcp/stdio/proof.f.mjs +190 -0
- package/fjs/protocol/mcp/types.d.ts +59 -0
- package/fjs/protocol/mcp/types.js +8 -0
- package/fjs/sul/id/module.f.d.mts +37 -0
- package/fjs/sul/id/module.f.mjs +143 -0
- package/fjs/sul/id/proof.f.mjs +72 -0
- package/fjs/sul/id/types.d.ts +8 -0
- package/fjs/sul/id/types.js +6 -0
- package/fjs/sul/level/hash/module.f.d.mts +37 -0
- package/fjs/sul/level/hash/module.f.mjs +61 -0
- package/fjs/sul/level/hash/proof.f.d.mts +15 -0
- package/fjs/sul/level/hash/proof.f.mjs +131 -0
- package/fjs/sul/level/hash/types.d.ts +20 -0
- package/fjs/sul/level/hash/types.js +6 -0
- package/fjs/sul/level/literal/module.f.d.mts +54 -0
- package/fjs/sul/level/literal/module.f.mjs +120 -0
- package/fjs/sul/level/literal/proof.f.mjs +788 -0
- package/fjs/sul/level/literal/types.d.ts +31 -0
- package/fjs/sul/level/literal/types.js +6 -0
- package/fjs/sul/module.f.d.mts +25 -0
- package/fjs/sul/module.f.mjs +69 -0
- package/fjs/sul/proof.f.d.mts +11 -0
- package/fjs/sul/proof.f.mjs +62 -0
- package/fjs/sul/types.d.ts +19 -0
- package/fjs/sul/types.js +6 -0
- package/fjs/text/ascii/module.f.d.mts +136 -0
- package/fjs/text/ascii/module.f.mjs +224 -0
- package/fjs/text/ascii/proof.f.mjs +16 -0
- package/fjs/text/code_point/module.f.d.mts +74 -0
- package/fjs/text/code_point/module.f.mjs +139 -0
- package/fjs/text/code_point/proof.f.mjs +80 -0
- package/fjs/text/module.f.d.mts +39 -0
- package/fjs/text/module.f.mjs +61 -0
- package/fjs/text/proof.f.mjs +48 -0
- package/fjs/text/sgr/module.f.d.mts +58 -0
- package/fjs/text/sgr/module.f.mjs +99 -0
- package/fjs/text/sgr/proof.f.mjs +39 -0
- package/fjs/text/sgr/types.d.ts +12 -0
- package/fjs/text/sgr/types.js +6 -0
- package/fjs/text/types.d.ts +13 -0
- package/fjs/text/types.js +6 -0
- package/fjs/text/utf16/module.f.d.mts +147 -0
- package/fjs/text/utf16/module.f.mjs +350 -0
- package/fjs/text/utf16/proof.f.d.mts +11 -0
- package/fjs/text/utf16/proof.f.mjs +158 -0
- package/fjs/text/utf16/types.d.ts +19 -0
- package/fjs/text/utf16/types.js +6 -0
- package/fjs/text/utf8/module.f.d.mts +69 -0
- package/fjs/text/utf8/module.f.mjs +280 -0
- package/fjs/text/utf8/proof.f.mjs +217 -0
- package/fjs/text/utf8/types.d.ts +26 -0
- package/fjs/text/utf8/types.js +6 -0
- package/fjs/types/array/module.f.d.mts +68 -0
- package/fjs/types/array/module.f.mjs +101 -0
- package/fjs/types/array/proof.f.mjs +98 -0
- package/fjs/types/array/types.d.ts +13 -0
- package/fjs/types/array/types.js +6 -0
- package/fjs/types/bigfloat/module.f.d.mts +14 -0
- package/fjs/types/bigfloat/module.f.mjs +99 -0
- package/fjs/types/bigfloat/proof.f.mjs +218 -0
- package/fjs/types/bigfloat/types.d.ts +6 -0
- package/fjs/types/bigfloat/types.js +6 -0
- package/fjs/types/bigint/benchmark.d.mts +1 -0
- package/fjs/types/bigint/benchmark.mjs +205 -0
- package/fjs/types/bigint/module.f.d.mts +176 -0
- package/fjs/types/bigint/module.f.mjs +289 -0
- package/fjs/types/bigint/proof.f.d.mts +39 -0
- package/fjs/types/bigint/proof.f.mjs +443 -0
- package/fjs/types/bigint/types.d.ts +14 -0
- package/fjs/types/bigint/types.js +6 -0
- package/fjs/types/bit_vec/module.f.d.mts +199 -0
- package/fjs/types/bit_vec/module.f.mjs +485 -0
- package/fjs/types/bit_vec/proof.f.mjs +495 -0
- package/fjs/types/bit_vec/types.d.ts +51 -0
- package/fjs/types/bit_vec/types.js +6 -0
- package/fjs/types/btree/find/module.f.d.mts +15 -0
- package/fjs/types/btree/find/module.f.mjs +80 -0
- package/fjs/types/btree/find/proof.f.d.mts +4 -0
- package/fjs/types/btree/find/proof.f.mjs +121 -0
- package/fjs/types/btree/find/types.d.ts +22 -0
- package/fjs/types/btree/find/types.js +6 -0
- package/fjs/types/btree/module.f.d.mts +10 -0
- package/fjs/types/btree/module.f.mjs +39 -0
- package/fjs/types/btree/proof.f.d.mts +14 -0
- package/fjs/types/btree/proof.f.mjs +85 -0
- package/fjs/types/btree/remove/module.f.d.mts +21 -0
- package/fjs/types/btree/remove/module.f.mjs +187 -0
- package/fjs/types/btree/remove/proof.f.mjs +472 -0
- package/fjs/types/btree/set/module.f.d.mts +5 -0
- package/fjs/types/btree/set/module.f.mjs +117 -0
- package/fjs/types/btree/set/proof.f.mjs +427 -0
- package/fjs/types/btree/types/module.f.d.mts +19 -0
- package/fjs/types/btree/types/module.f.mjs +19 -0
- package/fjs/types/btree/types/types.d.ts +14 -0
- package/fjs/types/btree/types/types.js +6 -0
- package/fjs/types/byte_set/module.f.d.mts +26 -0
- package/fjs/types/byte_set/module.f.mjs +66 -0
- package/fjs/types/byte_set/proof.f.d.mts +12 -0
- package/fjs/types/byte_set/proof.f.mjs +84 -0
- package/fjs/types/byte_set/types.d.ts +6 -0
- package/fjs/types/byte_set/types.js +6 -0
- package/fjs/types/function/compare/module.f.d.mts +44 -0
- package/fjs/types/function/compare/module.f.mjs +71 -0
- package/fjs/types/function/compare/proof.f.mjs +50 -0
- package/fjs/types/function/compare/types.d.ts +22 -0
- package/fjs/types/function/compare/types.js +6 -0
- package/fjs/types/function/module.f.d.mts +26 -0
- package/fjs/types/function/module.f.mjs +32 -0
- package/fjs/types/function/operator/module.f.d.mts +37 -0
- package/fjs/types/function/operator/module.f.mjs +55 -0
- package/fjs/types/function/operator/proof.f.mjs +76 -0
- package/fjs/types/function/operator/types.d.ts +39 -0
- package/fjs/types/function/operator/types.js +6 -0
- package/fjs/types/function/proof.f.mjs +16 -0
- package/fjs/types/function/types.d.ts +16 -0
- package/fjs/types/function/types.js +6 -0
- package/fjs/types/list/module.f.d.mts +88 -0
- package/fjs/types/list/module.f.mjs +309 -0
- package/fjs/types/list/proof.f.d.mts +32 -0
- package/fjs/types/list/proof.f.mjs +363 -0
- package/fjs/types/list/types.d.ts +36 -0
- package/fjs/types/list/types.js +6 -0
- package/fjs/types/map/module.f.d.mts +13 -0
- package/fjs/types/map/module.f.mjs +42 -0
- package/fjs/types/map/proof.f.mjs +25 -0
- package/fjs/types/nibble_set/module.f.d.mts +30 -0
- package/fjs/types/nibble_set/module.f.mjs +43 -0
- package/fjs/types/nibble_set/proof.f.mjs +59 -0
- package/fjs/types/nibble_set/types.d.ts +9 -0
- package/fjs/types/nibble_set/types.js +6 -0
- package/fjs/types/nominal/module.f.d.mts +9 -0
- package/fjs/types/nominal/module.f.mjs +16 -0
- package/fjs/types/nominal/proof.f.d.mts +7 -0
- package/fjs/types/nominal/proof.f.mjs +79 -0
- package/fjs/types/nominal/types.d.ts +25 -0
- package/fjs/types/nominal/types.js +6 -0
- package/fjs/types/nullable/module.f.d.mts +38 -0
- package/fjs/types/nullable/module.f.mjs +53 -0
- package/fjs/types/nullable/proof.f.mjs +34 -0
- package/fjs/types/nullable/types.d.ts +6 -0
- package/fjs/types/nullable/types.js +6 -0
- package/fjs/types/number/module.f.d.mts +23 -0
- package/fjs/types/number/module.f.mjs +55 -0
- package/fjs/types/number/proof.f.mjs +204 -0
- package/fjs/types/object/module.f.d.mts +33 -0
- package/fjs/types/object/module.f.mjs +58 -0
- package/fjs/types/object/proof.f.d.mts +25 -0
- package/fjs/types/object/proof.f.mjs +26 -0
- package/fjs/types/object/types.d.ts +50 -0
- package/fjs/types/object/types.js +8 -0
- package/fjs/types/ordered_map/module.f.d.mts +21 -0
- package/fjs/types/ordered_map/module.f.mjs +54 -0
- package/fjs/types/ordered_map/proof.f.mjs +88 -0
- package/fjs/types/ordered_map/types.d.ts +8 -0
- package/fjs/types/ordered_map/types.js +6 -0
- package/fjs/types/patricia_trie/module.f.d.mts +19 -0
- package/fjs/types/patricia_trie/module.f.mjs +43 -0
- package/fjs/types/patricia_trie/proof.f.d.mts +14 -0
- package/fjs/types/patricia_trie/proof.f.mjs +148 -0
- package/fjs/types/patricia_trie/types.d.ts +34 -0
- package/fjs/types/patricia_trie/types.js +6 -0
- package/fjs/types/prime_field/module.f.d.mts +42 -0
- package/fjs/types/prime_field/module.f.mjs +136 -0
- package/fjs/types/prime_field/proof.f.mjs +131 -0
- package/fjs/types/prime_field/types.d.ts +38 -0
- package/fjs/types/prime_field/types.js +6 -0
- package/fjs/types/range/module.f.d.mts +11 -0
- package/fjs/types/range/module.f.mjs +13 -0
- package/fjs/types/range/proof.f.mjs +10 -0
- package/fjs/types/range/types.d.ts +6 -0
- package/fjs/types/range/types.js +6 -0
- package/fjs/types/range_map/module.f.d.mts +72 -0
- package/fjs/types/range_map/module.f.mjs +130 -0
- package/fjs/types/range_map/proof.f.d.mts +7 -0
- package/fjs/types/range_map/proof.f.mjs +186 -0
- package/fjs/types/range_map/types.d.ts +56 -0
- package/fjs/types/range_map/types.js +6 -0
- package/fjs/types/range_set/module.f.d.mts +5 -0
- package/fjs/types/range_set/module.f.mjs +19 -0
- package/fjs/types/range_set/proof.f.mjs +26 -0
- package/fjs/types/result/module.d.mts +5 -0
- package/fjs/types/result/module.f.d.mts +59 -0
- package/fjs/types/result/module.f.mjs +67 -0
- package/fjs/types/result/module.mjs +22 -0
- package/fjs/types/result/proof.f.mjs +41 -0
- package/fjs/types/result/types.d.ts +17 -0
- package/fjs/types/result/types.js +6 -0
- package/fjs/types/rtti/common/module.f.d.mts +86 -0
- package/fjs/types/rtti/common/module.f.mjs +183 -0
- package/fjs/types/rtti/common/proof.f.d.mts +9 -0
- package/fjs/types/rtti/common/proof.f.mjs +64 -0
- package/fjs/types/rtti/common/types.d.ts +43 -0
- package/fjs/types/rtti/common/types.js +1 -0
- package/fjs/types/rtti/module.f.d.mts +76 -0
- package/fjs/types/rtti/module.f.mjs +110 -0
- package/fjs/types/rtti/parse/module.f.d.mts +9 -0
- package/fjs/types/rtti/parse/module.f.mjs +196 -0
- package/fjs/types/rtti/parse/proof.f.d.mts +122 -0
- package/fjs/types/rtti/parse/proof.f.mjs +363 -0
- package/fjs/types/rtti/parse/types.d.ts +12 -0
- package/fjs/types/rtti/parse/types.js +1 -0
- package/fjs/types/rtti/proof.f.d.mts +8 -0
- package/fjs/types/rtti/proof.f.mjs +20 -0
- package/fjs/types/rtti/ts/module.f.d.mts +34 -0
- package/fjs/types/rtti/ts/module.f.mjs +64 -0
- package/fjs/types/rtti/ts/proof.f.mjs +88 -0
- package/fjs/types/rtti/ts/types.d.ts +88 -0
- package/fjs/types/rtti/ts/types.js +1 -0
- package/fjs/types/rtti/types.d.ts +43 -0
- package/fjs/types/rtti/types.js +1 -0
- package/fjs/types/rtti/validate/module.f.d.mts +6 -0
- package/fjs/types/rtti/validate/module.f.mjs +169 -0
- package/fjs/types/rtti/validate/proof.f.d.mts +125 -0
- package/fjs/types/rtti/validate/proof.f.mjs +437 -0
- package/fjs/types/rtti/validate/types.d.ts +6 -0
- package/fjs/types/rtti/validate/types.js +1 -0
- package/fjs/types/sorted_list/module.f.d.mts +43 -0
- package/fjs/types/sorted_list/module.f.mjs +110 -0
- package/fjs/types/sorted_list/proof.f.d.mts +5 -0
- package/fjs/types/sorted_list/proof.f.mjs +52 -0
- package/fjs/types/sorted_list/types.d.ts +15 -0
- package/fjs/types/sorted_list/types.js +6 -0
- package/fjs/types/sorted_set/module.f.d.mts +24 -0
- package/fjs/types/sorted_set/module.f.mjs +56 -0
- package/fjs/types/sorted_set/proof.f.d.mts +7 -0
- package/fjs/types/sorted_set/proof.f.mjs +77 -0
- package/fjs/types/sorted_set/types.d.ts +6 -0
- package/fjs/types/sorted_set/types.js +6 -0
- package/fjs/types/string/module.f.d.mts +36 -0
- package/fjs/types/string/module.f.mjs +58 -0
- package/fjs/types/string/proof.f.mjs +76 -0
- package/fjs/types/string_set/module.f.d.mts +37 -0
- package/fjs/types/string_set/module.f.mjs +53 -0
- package/fjs/types/string_set/proof.f.mjs +46 -0
- package/fjs/types/string_set/types.d.ts +7 -0
- package/fjs/types/string_set/types.js +6 -0
- package/fjs/types/ts/module.f.d.mts +20 -0
- package/fjs/types/ts/module.f.mjs +51 -0
- package/fjs/types/ts/proof.f.mjs +97 -0
- package/fjs/types/ts/types.d.ts +16 -0
- package/fjs/types/ts/types.js +8 -0
- package/fjs/types/uint8array/module.f.d.mts +31 -0
- package/fjs/types/uint8array/module.f.mjs +53 -0
- package/fjs/types/uint8array/proof.f.d.mts +17 -0
- package/fjs/types/uint8array/proof.f.mjs +73 -0
- package/fjs/website/module.f.d.mts +8 -0
- package/fjs/website/module.f.mjs +24 -0
- package/fjs/website/proof.f.mjs +14 -0
- package/package.json +12 -10
- package/todo/proof.f.d.mts +22 -0
- package/todo/proof.f.mjs +59 -0
- package/fjs/asn.1/module.f.d.ts +0 -62
- package/fjs/asn.1/module.f.js +0 -278
- package/fjs/asn.1/proof.f.js +0 -285
- package/fjs/asserts/module.f.d.ts +0 -36
- package/fjs/asserts/module.f.js +0 -39
- package/fjs/asserts/proof.f.js +0 -18
- package/fjs/base_n/module.f.d.ts +0 -45
- package/fjs/base_n/module.f.js +0 -72
- package/fjs/base_n/proof.f.js +0 -73
- package/fjs/basen/base128/module.f.d.ts +0 -20
- package/fjs/basen/base128/module.f.js +0 -43
- package/fjs/basen/base128/proof.f.js +0 -26
- package/fjs/basen/base64/module.f.d.ts +0 -9
- package/fjs/basen/base64/module.f.js +0 -71
- package/fjs/basen/base64/proof.f.d.ts +0 -16
- package/fjs/basen/base64/proof.f.js +0 -139
- package/fjs/basen/cbase32/module.f.d.ts +0 -11
- package/fjs/basen/cbase32/module.f.js +0 -55
- package/fjs/basen/cbase32/proof.f.d.ts +0 -7
- package/fjs/basen/cbase32/proof.f.js +0 -62
- package/fjs/bnf/data/module.f.d.ts +0 -52
- package/fjs/bnf/data/module.f.js +0 -143
- package/fjs/bnf/data/proof.f.d.ts +0 -8
- package/fjs/bnf/data/proof.f.js +0 -169
- package/fjs/bnf/descent/module.f.d.ts +0 -87
- package/fjs/bnf/descent/module.f.js +0 -149
- package/fjs/bnf/descent/proof.f.d.ts +0 -7
- package/fjs/bnf/descent/proof.f.js +0 -368
- package/fjs/bnf/ll1/module.f.d.ts +0 -72
- package/fjs/bnf/ll1/module.f.js +0 -155
- package/fjs/bnf/ll1/proof.f.d.ts +0 -10
- package/fjs/bnf/ll1/proof.f.js +0 -375
- package/fjs/bnf/module.f.d.ts +0 -165
- package/fjs/bnf/module.f.js +0 -174
- package/fjs/bnf/proof.f.d.ts +0 -12
- package/fjs/bnf/proof.f.js +0 -69
- package/fjs/bnf/testlib.f.d.ts +0 -3
- package/fjs/bnf/testlib.f.js +0 -138
- package/fjs/bnf/token_symbol/module.f.d.ts +0 -38
- package/fjs/bnf/token_symbol/module.f.js +0 -48
- package/fjs/bnf/token_symbol/proof.f.js +0 -37
- package/fjs/cas/cli/module.f.d.ts +0 -6
- package/fjs/cas/cli/module.f.js +0 -53
- package/fjs/cas/cli/proof.f.d.ts +0 -17
- package/fjs/cas/cli/proof.f.js +0 -112
- package/fjs/cas/evo/module.f.d.ts +0 -223
- package/fjs/cas/evo/module.f.js +0 -455
- package/fjs/cas/evo/proof.f.d.ts +0 -47
- package/fjs/cas/evo/proof.f.js +0 -707
- package/fjs/cas/module.f.d.ts +0 -64
- package/fjs/cas/module.f.js +0 -255
- package/fjs/cas/proof.f.d.ts +0 -18
- package/fjs/cas/proof.f.js +0 -305
- package/fjs/ci/bun/module.f.d.ts +0 -2
- package/fjs/ci/bun/module.f.js +0 -15
- package/fjs/ci/common/module.f.d.ts +0 -88
- package/fjs/ci/common/module.f.js +0 -63
- package/fjs/ci/config/module.f.d.ts +0 -45
- package/fjs/ci/config/module.f.js +0 -80
- package/fjs/ci/deno/module.f.d.ts +0 -10
- package/fjs/ci/deno/module.f.js +0 -28
- package/fjs/ci/deno/proof.f.d.ts +0 -5
- package/fjs/ci/deno/proof.f.js +0 -26
- package/fjs/ci/module.f.d.ts +0 -13
- package/fjs/ci/module.f.js +0 -58
- package/fjs/ci/nix/module.f.d.ts +0 -61
- package/fjs/ci/nix/module.f.js +0 -92
- package/fjs/ci/nix/proof.f.d.ts +0 -23
- package/fjs/ci/nix/proof.f.js +0 -109
- package/fjs/ci/node/module.f.d.ts +0 -28
- package/fjs/ci/node/module.f.js +0 -92
- package/fjs/ci/node/proof.f.js +0 -17
- package/fjs/ci/proof.f.d.ts +0 -18
- package/fjs/ci/proof.f.js +0 -182
- package/fjs/ci/rust/module.f.d.ts +0 -3
- package/fjs/ci/rust/module.f.js +0 -75
- package/fjs/cli/module.f.d.ts +0 -11
- package/fjs/cli/module.f.js +0 -34
- package/fjs/cli/proof.f.d.ts +0 -14
- package/fjs/cli/proof.f.js +0 -111
- package/fjs/common/monoid/module.f.d.ts +0 -126
- package/fjs/common/monoid/module.f.js +0 -88
- package/fjs/common/monoid/proof.f.d.ts +0 -9
- package/fjs/common/monoid/proof.f.js +0 -48
- package/fjs/crypto/hmac/module.f.d.ts +0 -29
- package/fjs/crypto/hmac/module.f.js +0 -56
- package/fjs/crypto/hmac/proof.f.js +0 -32
- package/fjs/crypto/pow/module.f.d.ts +0 -37
- package/fjs/crypto/pow/module.f.js +0 -72
- package/fjs/crypto/pow/proof.f.js +0 -111
- package/fjs/crypto/secp/module.f.d.ts +0 -85
- package/fjs/crypto/secp/module.f.js +0 -176
- package/fjs/crypto/secp/proof.f.d.ts +0 -8
- package/fjs/crypto/secp/proof.f.js +0 -124
- package/fjs/crypto/sha2/module.f.d.ts +0 -102
- package/fjs/crypto/sha2/module.f.js +0 -266
- package/fjs/crypto/sha2/proof.f.d.ts +0 -31
- package/fjs/crypto/sha2/proof.f.js +0 -139
- package/fjs/crypto/sign/module.f.d.ts +0 -33
- package/fjs/crypto/sign/module.f.js +0 -163
- package/fjs/crypto/sign/proof.f.d.ts +0 -11
- package/fjs/crypto/sign/proof.f.js +0 -562
- package/fjs/crypto/vdf/module.f.d.ts +0 -21
- package/fjs/crypto/vdf/module.f.js +0 -57
- package/fjs/crypto/vdf/proof.f.js +0 -94
- package/fjs/dev/module.f.d.ts +0 -57
- package/fjs/dev/module.f.js +0 -135
- package/fjs/dev/package_json/module.f.d.ts +0 -16
- package/fjs/dev/package_json/module.f.js +0 -24
- package/fjs/dev/package_json/proof.f.js +0 -28
- package/fjs/dev/proof.f.d.ts +0 -13
- package/fjs/dev/proof.f.js +0 -77
- package/fjs/dev/update/module.f.d.ts +0 -11
- package/fjs/dev/update/module.f.js +0 -20
- package/fjs/dev/update/proof.f.d.ts +0 -7
- package/fjs/dev/update/proof.f.js +0 -35
- package/fjs/djs/ast/module.f.d.ts +0 -62
- package/fjs/djs/ast/module.f.js +0 -61
- package/fjs/djs/ast/proof.f.js +0 -49
- package/fjs/djs/examples/input.f.js +0 -4
- package/fjs/djs/examples/m.f.js +0 -1
- package/fjs/djs/module.f.d.ts +0 -17
- package/fjs/djs/module.f.js +0 -22
- package/fjs/djs/parser/module.f.d.ts +0 -23
- package/fjs/djs/parser/module.f.js +0 -410
- package/fjs/djs/parser/proof.f.js +0 -556
- package/fjs/djs/proof.f.js +0 -50
- package/fjs/djs/serializer/module.f.d.ts +0 -17
- package/fjs/djs/serializer/module.f.js +0 -173
- package/fjs/djs/serializer/proof.f.js +0 -133
- package/fjs/djs/tokenizer/module.f.d.ts +0 -24
- package/fjs/djs/tokenizer/module.f.js +0 -472
- package/fjs/djs/tokenizer/proof.f.js +0 -1211
- package/fjs/djs/transpiler/module.f.d.ts +0 -41
- package/fjs/djs/transpiler/module.f.js +0 -88
- package/fjs/djs/transpiler/proof.f.js +0 -67
- package/fjs/effects/eff/module.f.d.ts +0 -72
- package/fjs/effects/eff/module.f.js +0 -46
- package/fjs/effects/eff/proof.f.d.ts +0 -11
- package/fjs/effects/eff/proof.f.js +0 -58
- package/fjs/effects/list/module.f.d.ts +0 -37
- package/fjs/effects/list/module.f.js +0 -17
- package/fjs/effects/memory/module.f.d.ts +0 -37
- package/fjs/effects/memory/module.f.js +0 -24
- package/fjs/effects/memory/proof.f.d.ts +0 -6
- package/fjs/effects/memory/proof.f.js +0 -50
- package/fjs/effects/mock/module.f.d.ts +0 -16
- package/fjs/effects/mock/module.f.js +0 -20
- package/fjs/effects/module.d.ts +0 -2
- package/fjs/effects/module.f.d.ts +0 -408
- package/fjs/effects/module.f.js +0 -312
- package/fjs/effects/module.js +0 -11
- package/fjs/effects/node/memory/module.d.ts +0 -20
- package/fjs/effects/node/memory/module.js +0 -44
- package/fjs/effects/node/memory/proof.js +0 -29
- package/fjs/effects/node/module.d.ts +0 -20
- package/fjs/effects/node/module.f.d.ts +0 -300
- package/fjs/effects/node/module.f.js +0 -171
- package/fjs/effects/node/module.js +0 -305
- package/fjs/effects/node/proof.f.d.ts +0 -69
- package/fjs/effects/node/proof.f.js +0 -409
- package/fjs/effects/node/virtual/module.f.d.ts +0 -49
- package/fjs/effects/node/virtual/module.f.js +0 -440
- package/fjs/effects/node/virtual/proof.f.d.ts +0 -33
- package/fjs/effects/node/virtual/proof.f.js +0 -186
- package/fjs/effects/proof.f.d.ts +0 -56
- package/fjs/effects/proof.f.js +0 -200
- package/fjs/emergent_testing/example.f.d.ts +0 -13
- package/fjs/emergent_testing/example.f.js +0 -31
- package/fjs/emergent_testing/module.f.d.ts +0 -140
- package/fjs/emergent_testing/module.f.js +0 -289
- package/fjs/emergent_testing/proof.f.d.ts +0 -67
- package/fjs/emergent_testing/proof.f.js +0 -416
- package/fjs/fsc/bnf.f.d.ts +0 -2
- package/fjs/fsc/bnf.f.js +0 -42
- package/fjs/fsc/json.f.d.ts +0 -7
- package/fjs/fsc/json.f.js +0 -64
- package/fjs/fsc/module.f.d.ts +0 -11
- package/fjs/fsc/module.f.js +0 -73
- package/fjs/fsc/proof.f.js +0 -104
- package/fjs/fsm/module.f.d.ts +0 -17
- package/fjs/fsm/module.f.js +0 -55
- package/fjs/fsm/proof.f.js +0 -126
- package/fjs/js/tokenizer/module.f.d.ts +0 -104
- package/fjs/js/tokenizer/module.f.js +0 -547
- package/fjs/js/tokenizer/proof.f.d.ts +0 -9
- package/fjs/js/tokenizer/proof.f.js +0 -986
- package/fjs/mcp/cas/module.f.d.ts +0 -27
- package/fjs/mcp/cas/module.f.js +0 -232
- package/fjs/mcp/evo/module.f.d.ts +0 -32
- package/fjs/mcp/evo/module.f.js +0 -99
- package/fjs/mcp/evo/proof.f.d.ts +0 -12
- package/fjs/mcp/evo/proof.f.js +0 -147
- package/fjs/mcp/module.f.d.ts +0 -56
- package/fjs/mcp/module.f.js +0 -69
- package/fjs/mcp/proof.f.d.ts +0 -45
- package/fjs/mcp/proof.f.js +0 -535
- package/fjs/media/html/module.f.d.ts +0 -52
- package/fjs/media/html/module.f.js +0 -117
- package/fjs/media/html/proof.f.js +0 -65
- package/fjs/media/json/module.f.d.ts +0 -64
- package/fjs/media/json/module.f.js +0 -109
- package/fjs/media/json/parser/module.f.d.ts +0 -21
- package/fjs/media/json/parser/module.f.js +0 -194
- package/fjs/media/json/parser/proof.f.d.ts +0 -5
- package/fjs/media/json/parser/proof.f.js +0 -314
- package/fjs/media/json/proof.f.js +0 -98
- package/fjs/media/json/schema/module.f.d.ts +0 -78
- package/fjs/media/json/schema/module.f.js +0 -96
- package/fjs/media/json/schema/proof.f.d.ts +0 -36
- package/fjs/media/json/schema/proof.f.js +0 -83
- package/fjs/media/json/serializer/module.f.d.ts +0 -28
- package/fjs/media/json/serializer/module.f.js +0 -73
- package/fjs/media/json/serializer/proof.f.js +0 -94
- package/fjs/media/json/tokenizer/module.f.d.ts +0 -15
- package/fjs/media/json/tokenizer/module.f.js +0 -63
- package/fjs/media/json/tokenizer/proof.f.d.ts +0 -5
- package/fjs/media/json/tokenizer/proof.f.js +0 -417
- package/fjs/media/module.f.d.ts +0 -119
- package/fjs/media/module.f.js +0 -88
- package/fjs/media/nix/module.f.d.ts +0 -30
- package/fjs/media/nix/module.f.js +0 -166
- package/fjs/media/nix/proof.f.js +0 -127
- package/fjs/media/proof.f.d.ts +0 -19
- package/fjs/media/proof.f.js +0 -127
- package/fjs/media/revision/module.f.d.ts +0 -94
- package/fjs/media/revision/module.f.js +0 -143
- package/fjs/media/revision/proof.f.js +0 -190
- package/fjs/media/type/module.f.d.ts +0 -135
- package/fjs/media/type/module.f.js +0 -231
- package/fjs/media/type/proof.f.js +0 -213
- package/fjs/module.f.d.ts +0 -2
- package/fjs/module.f.js +0 -50
- package/fjs/module.js +0 -4
- package/fjs/path/module.f.d.ts +0 -46
- package/fjs/path/module.f.js +0 -71
- package/fjs/path/proof.f.js +0 -119
- package/fjs/proof.f.js +0 -38
- package/fjs/protocol/json_rpc/module.f.d.ts +0 -114
- package/fjs/protocol/json_rpc/module.f.js +0 -89
- package/fjs/protocol/json_rpc/proof.f.js +0 -68
- package/fjs/protocol/mcp/module.f.d.ts +0 -239
- package/fjs/protocol/mcp/module.f.js +0 -272
- package/fjs/protocol/mcp/proof.f.d.ts +0 -34
- package/fjs/protocol/mcp/proof.f.js +0 -208
- package/fjs/protocol/mcp/stdio/module.f.d.ts +0 -47
- package/fjs/protocol/mcp/stdio/module.f.js +0 -78
- package/fjs/protocol/mcp/stdio/proof.f.d.ts +0 -13
- package/fjs/protocol/mcp/stdio/proof.f.js +0 -143
- package/fjs/sul/id/module.f.d.ts +0 -33
- package/fjs/sul/id/module.f.js +0 -93
- package/fjs/sul/id/proof.f.js +0 -61
- package/fjs/sul/level/hash/module.f.d.ts +0 -38
- package/fjs/sul/level/hash/module.f.js +0 -43
- package/fjs/sul/level/hash/proof.f.d.ts +0 -13
- package/fjs/sul/level/hash/proof.f.js +0 -112
- package/fjs/sul/level/literal/module.f.d.ts +0 -64
- package/fjs/sul/level/literal/module.f.js +0 -88
- package/fjs/sul/level/literal/proof.f.js +0 -714
- package/fjs/sul/module.f.d.ts +0 -23
- package/fjs/sul/module.f.js +0 -46
- package/fjs/sul/proof.f.d.ts +0 -9
- package/fjs/sul/proof.f.js +0 -47
- package/fjs/text/ascii/module.f.d.ts +0 -136
- package/fjs/text/ascii/module.f.js +0 -154
- package/fjs/text/ascii/proof.f.js +0 -14
- package/fjs/text/code_point/module.f.d.ts +0 -65
- package/fjs/text/code_point/module.f.js +0 -103
- package/fjs/text/code_point/proof.f.js +0 -72
- package/fjs/text/module.f.d.ts +0 -40
- package/fjs/text/module.f.js +0 -43
- package/fjs/text/proof.f.js +0 -44
- package/fjs/text/sgr/module.f.d.ts +0 -53
- package/fjs/text/sgr/module.f.js +0 -63
- package/fjs/text/sgr/proof.f.js +0 -33
- package/fjs/text/utf16/module.f.d.ts +0 -161
- package/fjs/text/utf16/module.f.js +0 -311
- package/fjs/text/utf16/proof.f.d.ts +0 -10
- package/fjs/text/utf16/proof.f.js +0 -144
- package/fjs/text/utf8/module.f.d.ts +0 -83
- package/fjs/text/utf8/module.f.js +0 -247
- package/fjs/text/utf8/proof.f.js +0 -217
- package/fjs/types/array/module.f.d.ts +0 -49
- package/fjs/types/array/module.f.js +0 -42
- package/fjs/types/array/proof.f.js +0 -92
- package/fjs/types/bigfloat/module.f.d.ts +0 -6
- package/fjs/types/bigfloat/module.f.js +0 -69
- package/fjs/types/bigfloat/proof.f.js +0 -217
- package/fjs/types/bigint/module.f.d.ts +0 -172
- package/fjs/types/bigint/module.f.js +0 -251
- package/fjs/types/bigint/proof.f.d.ts +0 -37
- package/fjs/types/bigint/proof.f.js +0 -400
- package/fjs/types/bit_vec/module.f.d.ts +0 -302
- package/fjs/types/bit_vec/module.f.js +0 -375
- package/fjs/types/bit_vec/proof.f.js +0 -465
- package/fjs/types/btree/find/module.f.d.ts +0 -25
- package/fjs/types/btree/find/module.f.js +0 -80
- package/fjs/types/btree/find/proof.f.d.ts +0 -3
- package/fjs/types/btree/find/proof.f.js +0 -108
- package/fjs/types/btree/module.f.d.ts +0 -9
- package/fjs/types/btree/module.f.js +0 -33
- package/fjs/types/btree/proof.f.d.ts +0 -13
- package/fjs/types/btree/proof.f.js +0 -64
- package/fjs/types/btree/remove/module.f.d.ts +0 -14
- package/fjs/types/btree/remove/module.f.js +0 -186
- package/fjs/types/btree/remove/proof.f.js +0 -484
- package/fjs/types/btree/set/module.f.d.ts +0 -8
- package/fjs/types/btree/set/module.f.js +0 -128
- package/fjs/types/btree/set/proof.f.js +0 -368
- package/fjs/types/btree/types/module.f.d.ts +0 -23
- package/fjs/types/btree/types/module.f.js +0 -9
- package/fjs/types/byte_set/module.f.d.ts +0 -16
- package/fjs/types/byte_set/module.f.js +0 -30
- package/fjs/types/byte_set/proof.f.d.ts +0 -11
- package/fjs/types/byte_set/proof.f.js +0 -79
- package/fjs/types/function/compare/module.f.d.ts +0 -49
- package/fjs/types/function/compare/module.f.js +0 -51
- package/fjs/types/function/compare/proof.f.js +0 -47
- package/fjs/types/function/module.f.d.ts +0 -28
- package/fjs/types/function/module.f.js +0 -19
- package/fjs/types/function/operator/module.f.d.ts +0 -48
- package/fjs/types/function/operator/module.f.js +0 -16
- package/fjs/types/function/operator/proof.f.js +0 -53
- package/fjs/types/function/proof.f.js +0 -10
- package/fjs/types/list/module.f.d.ts +0 -75
- package/fjs/types/list/module.f.js +0 -190
- package/fjs/types/list/proof.f.d.ts +0 -31
- package/fjs/types/list/proof.f.js +0 -330
- package/fjs/types/map/module.f.d.ts +0 -2
- package/fjs/types/map/module.f.js +0 -22
- package/fjs/types/map/proof.f.js +0 -22
- package/fjs/types/nibble_set/module.f.d.ts +0 -27
- package/fjs/types/nibble_set/module.f.js +0 -25
- package/fjs/types/nibble_set/proof.f.js +0 -60
- package/fjs/types/nominal/module.f.d.ts +0 -22
- package/fjs/types/nominal/module.f.js +0 -13
- package/fjs/types/nominal/proof.f.d.ts +0 -4
- package/fjs/types/nominal/proof.f.js +0 -48
- package/fjs/types/nullable/module.f.d.ts +0 -21
- package/fjs/types/nullable/module.f.js +0 -29
- package/fjs/types/nullable/proof.f.js +0 -29
- package/fjs/types/number/module.f.d.ts +0 -16
- package/fjs/types/number/module.f.js +0 -30
- package/fjs/types/number/proof.f.js +0 -124
- package/fjs/types/object/module.f.d.ts +0 -54
- package/fjs/types/object/module.f.js +0 -25
- package/fjs/types/object/proof.f.d.ts +0 -4
- package/fjs/types/object/proof.f.js +0 -14
- package/fjs/types/ordered_map/module.f.d.ts +0 -17
- package/fjs/types/ordered_map/module.f.js +0 -22
- package/fjs/types/ordered_map/proof.f.js +0 -73
- package/fjs/types/patricia_trie/module.f.d.ts +0 -25
- package/fjs/types/patricia_trie/module.f.js +0 -35
- package/fjs/types/patricia_trie/proof.f.d.ts +0 -13
- package/fjs/types/patricia_trie/proof.f.js +0 -121
- package/fjs/types/prime_field/module.f.d.ts +0 -62
- package/fjs/types/prime_field/module.f.js +0 -112
- package/fjs/types/prime_field/proof.f.js +0 -128
- package/fjs/types/range/module.f.d.ts +0 -8
- package/fjs/types/range/module.f.js +0 -2
- package/fjs/types/range/proof.f.js +0 -9
- package/fjs/types/range_map/module.f.d.ts +0 -92
- package/fjs/types/range_map/module.f.js +0 -82
- package/fjs/types/range_map/proof.f.d.ts +0 -6
- package/fjs/types/range_map/proof.f.js +0 -151
- package/fjs/types/range_set/module.f.d.ts +0 -5
- package/fjs/types/range_set/module.f.js +0 -16
- package/fjs/types/range_set/proof.f.d.ts +0 -1
- package/fjs/types/range_set/proof.f.js +0 -19
- package/fjs/types/result/module.d.ts +0 -3
- package/fjs/types/result/module.f.d.ts +0 -61
- package/fjs/types/result/module.f.js +0 -54
- package/fjs/types/result/module.js +0 -19
- package/fjs/types/result/proof.f.js +0 -31
- package/fjs/types/rtti/common/module.f.d.ts +0 -121
- package/fjs/types/rtti/common/module.f.js +0 -94
- package/fjs/types/rtti/common/proof.f.d.ts +0 -8
- package/fjs/types/rtti/common/proof.f.js +0 -51
- package/fjs/types/rtti/module.f.d.ts +0 -75
- package/fjs/types/rtti/module.f.js +0 -34
- package/fjs/types/rtti/parse/module.f.d.ts +0 -36
- package/fjs/types/rtti/parse/module.f.js +0 -114
- package/fjs/types/rtti/parse/proof.f.d.ts +0 -115
- package/fjs/types/rtti/parse/proof.f.js +0 -334
- package/fjs/types/rtti/proof.f.d.ts +0 -5
- package/fjs/types/rtti/proof.f.js +0 -16
- package/fjs/types/rtti/ts/module.f.d.ts +0 -118
- package/fjs/types/rtti/ts/module.f.js +0 -59
- package/fjs/types/rtti/ts/proof.f.js +0 -75
- package/fjs/types/rtti/validate/module.f.d.ts +0 -4
- package/fjs/types/rtti/validate/module.f.js +0 -74
- package/fjs/types/rtti/validate/proof.f.d.ts +0 -118
- package/fjs/types/rtti/validate/proof.f.js +0 -349
- package/fjs/types/sorted_list/module.f.d.ts +0 -26
- package/fjs/types/sorted_list/module.f.js +0 -51
- package/fjs/types/sorted_list/proof.f.d.ts +0 -4
- package/fjs/types/sorted_list/proof.f.js +0 -46
- package/fjs/types/sorted_set/module.f.d.ts +0 -33
- package/fjs/types/sorted_set/module.f.js +0 -5
- package/fjs/types/sorted_set/proof.f.d.ts +0 -6
- package/fjs/types/sorted_set/proof.f.js +0 -67
- package/fjs/types/string/module.f.d.ts +0 -24
- package/fjs/types/string/module.f.js +0 -35
- package/fjs/types/string/proof.f.js +0 -77
- package/fjs/types/string_set/module.f.d.ts +0 -30
- package/fjs/types/string_set/module.f.js +0 -37
- package/fjs/types/string_set/proof.f.js +0 -43
- package/fjs/types/ts/module.f.d.ts +0 -23
- package/fjs/types/ts/module.f.js +0 -27
- package/fjs/types/ts/proof.f.js +0 -86
- package/fjs/types/uint8array/module.f.d.ts +0 -13
- package/fjs/types/uint8array/module.f.js +0 -34
- package/fjs/types/uint8array/proof.f.d.ts +0 -17
- package/fjs/types/uint8array/proof.f.js +0 -64
- package/fjs/website/module.f.d.ts +0 -3
- package/fjs/website/module.f.js +0 -14
- package/fjs/website/proof.f.js +0 -13
- package/nanvm-lib/tests/proof.f.d.ts +0 -122
- package/nanvm-lib/tests/proof.f.js +0 -330
- package/todo/031-json.f.js +0 -241
- package/todo/proof.f.d.ts +0 -20
- package/todo/proof.f.js +0 -62
- /package/fjs/asn.1/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/asserts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{base_n/proof.f.d.ts → basen/proof.f.d.mts} +0 -0
- /package/fjs/bnf/token_symbol/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/{todo/031-json.f.d.ts → fjs/ci/common/types.js} +0 -0
- /package/fjs/ci/node/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/hmac/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/pow/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/crypto/vdf/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/dev/package_json/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/ast/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/examples/{input.f.d.ts → input.f.d.mts} +0 -0
- /package/fjs/djs/examples/{m.f.d.ts → m.f.d.mts} +0 -0
- /package/fjs/djs/parser/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/tokenizer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/djs/transpiler/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/effects/node/memory/{proof.d.ts → proof.d.mts} +0 -0
- /package/fjs/fsc/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/fsm/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/html/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/json/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/json/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/nix/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/revision/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/media/type/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{module.d.ts → module.d.mts} +0 -0
- /package/fjs/path/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/protocol/json_rpc/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/sul/id/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/sul/level/literal/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/ascii/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/code_point/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/sgr/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/text/utf8/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/array/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/bigfloat/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/bit_vec/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/btree/remove/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/btree/set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/{basen/base128/proof.f.d.ts → types/function/compare/proof.f.d.mts} +0 -0
- /package/fjs/types/function/operator/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/function/{compare/proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/map/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/nibble_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/nullable/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/number/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/option/{module.f.d.ts → types.d.ts} +0 -0
- /package/fjs/types/option/{module.f.js → types.js} +0 -0
- /package/fjs/types/ordered_map/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/phantom/{module.f.d.ts → types.d.ts} +0 -0
- /package/fjs/types/phantom/{module.f.js → types.js} +0 -0
- /package/fjs/types/prime_field/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/{function/proof.f.d.ts → range/proof.f.d.mts} +0 -0
- /package/fjs/types/{range/proof.f.d.ts → range_set/proof.f.d.mts} +0 -0
- /package/fjs/types/result/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/rtti/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/string/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/string_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/types/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
- /package/fjs/website/{proof.f.d.ts → proof.f.d.mts} +0 -0
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Numeric list reductions (`sum`, `min`, `max`), comparison via `cmp`, and
|
|
3
|
-
* `countOnes` for 32-bit population count using SWAR.
|
|
4
|
-
*
|
|
5
|
-
* @module
|
|
6
|
-
*/
|
|
7
|
-
import { reduce } from '../list/module.f.js';
|
|
8
|
-
import { addition } from '../function/operator/module.f.js';
|
|
9
|
-
import { cmp as uCmp, min as uMin, max as uMax } from '../function/compare/module.f.js';
|
|
10
|
-
import { fold } from '../../common/monoid/module.f.js';
|
|
11
|
-
export const sum = fold({ identity: 0, operation: addition });
|
|
12
|
-
export const min = reduce(uMin)(null);
|
|
13
|
-
export const max = reduce(uMax)(null);
|
|
14
|
-
export const cmp = uCmp;
|
|
15
|
-
const mo = [
|
|
16
|
-
[0x5555_5555, 1],
|
|
17
|
-
[0x3333_3333, 2],
|
|
18
|
-
[0x0F0F_0F0F, 4],
|
|
19
|
-
[0x00FF_00FF, 8],
|
|
20
|
-
[0x0000_FFFF, 16],
|
|
21
|
-
];
|
|
22
|
-
/**
|
|
23
|
-
* Count a number of ones in 32 bit number
|
|
24
|
-
*/
|
|
25
|
-
export const countOnes = (n) => {
|
|
26
|
-
for (const [mask, offset] of mo) {
|
|
27
|
-
n = (n & mask) + ((n >> offset) & mask);
|
|
28
|
-
}
|
|
29
|
-
return n;
|
|
30
|
-
};
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { sum, min, max, cmp, countOnes } from './module.f.js';
|
|
2
|
-
import { assertEq } from '../../asserts/module.f.js';
|
|
3
|
-
export const proof = {
|
|
4
|
-
sum: () => {
|
|
5
|
-
const result = sum([2, 3, 4, 5]);
|
|
6
|
-
assertEq(result, 14);
|
|
7
|
-
},
|
|
8
|
-
min: {
|
|
9
|
-
empty: () => {
|
|
10
|
-
const result = min([]);
|
|
11
|
-
assertEq(result, null);
|
|
12
|
-
},
|
|
13
|
-
multi: () => {
|
|
14
|
-
const result = min([1, 2, 12, -4, 8]);
|
|
15
|
-
assertEq(result, -4);
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
max: () => {
|
|
19
|
-
const result = max([1, 2, 12, -4, 8]);
|
|
20
|
-
assertEq(result, 12);
|
|
21
|
-
},
|
|
22
|
-
cmp: () => {
|
|
23
|
-
const result = cmp(4)(5);
|
|
24
|
-
assertEq(result, -1);
|
|
25
|
-
},
|
|
26
|
-
standard: () => {
|
|
27
|
-
const check = a => b => {
|
|
28
|
-
assertEq(BigInt(Number(a)), b, [a, b]);
|
|
29
|
-
};
|
|
30
|
-
const eq = v => check(v)(v);
|
|
31
|
-
// 53, 0x35 bits.
|
|
32
|
-
// 3 2 1 0
|
|
33
|
-
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210
|
|
34
|
-
eq(4503599627370496n);
|
|
35
|
-
eq(4503599627370497n);
|
|
36
|
-
eq(4503599627370498n);
|
|
37
|
-
eq(4503599627370499n);
|
|
38
|
-
eq(4503599627370500n);
|
|
39
|
-
//
|
|
40
|
-
eq(8205552883602248n);
|
|
41
|
-
eq(6023495077481713n);
|
|
42
|
-
eq(7655550916643882n);
|
|
43
|
-
eq(7408615831253283n);
|
|
44
|
-
eq(5372046171422892n);
|
|
45
|
-
//
|
|
46
|
-
eq(9007199254740991n);
|
|
47
|
-
eq(9007199254740990n);
|
|
48
|
-
eq(9007199254740989n);
|
|
49
|
-
eq(9007199254740988n);
|
|
50
|
-
eq(9007199254740987n);
|
|
51
|
-
eq(9007199254740986n);
|
|
52
|
-
eq(9007199254740985n);
|
|
53
|
-
eq(9007199254740984n);
|
|
54
|
-
// 54, 0x35+1 bits.
|
|
55
|
-
// 3 2 1 0
|
|
56
|
-
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1
|
|
57
|
-
check(9007199254740992n)(9007199254740992n);
|
|
58
|
-
check(16585805050637558n)(16585805050637558n);
|
|
59
|
-
check(18014398509481982n)(18014398509481982n);
|
|
60
|
-
// round down
|
|
61
|
-
check(9007199254740993n)(9007199254740992n);
|
|
62
|
-
check(9007199254740997n)(9007199254740996n);
|
|
63
|
-
check(11727370849309157n)(11727370849309156n);
|
|
64
|
-
check(18014398509481981n)(18014398509481980n);
|
|
65
|
-
// round up
|
|
66
|
-
check(9007199254740995n)(9007199254740996n);
|
|
67
|
-
check(15679542343753527n)(15679542343753528n);
|
|
68
|
-
check(18014398509481983n)(18014398509481984n);
|
|
69
|
-
// 55, 0x35+2 bits.
|
|
70
|
-
// 3 2 1 0
|
|
71
|
-
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_12
|
|
72
|
-
// 0_xx: down, down, up
|
|
73
|
-
// 0_00
|
|
74
|
-
check(18014398509481984n)(18014398509481984n);
|
|
75
|
-
check(31009640954244032n)(31009640954244032n);
|
|
76
|
-
check(36028797018963960n)(36028797018963960n);
|
|
77
|
-
// 0_01 round down
|
|
78
|
-
check(18014398509481985n)(18014398509481984n);
|
|
79
|
-
check(35865859090492321n)(35865859090492320n);
|
|
80
|
-
check(36028797018963961n)(36028797018963960n);
|
|
81
|
-
// 0_10 round down
|
|
82
|
-
check(18014398509481986n)(18014398509481984n);
|
|
83
|
-
check(20537830900813786n)(20537830900813784n);
|
|
84
|
-
check(36028797018963962n)(36028797018963960n);
|
|
85
|
-
// 0_11 round up
|
|
86
|
-
check(18014398509481987n)(18014398509481988n);
|
|
87
|
-
check(20762549594556867n)(20762549594556868n);
|
|
88
|
-
check(36028797018963963n)(36028797018963964n);
|
|
89
|
-
// 1_xx: down, up, up
|
|
90
|
-
// 1_00
|
|
91
|
-
check(18014398509481988n)(18014398509481988n);
|
|
92
|
-
check(27158415062912468n)(27158415062912468n);
|
|
93
|
-
check(36028797018963963n)(36028797018963964n);
|
|
94
|
-
// 1_01 round down
|
|
95
|
-
check(18014398509481989n)(18014398509481988n);
|
|
96
|
-
check(23136524663958789n)(23136524663958788n);
|
|
97
|
-
check(36028797018963965n)(36028797018963964n);
|
|
98
|
-
// 1_10 round up
|
|
99
|
-
check(18014398509481990n)(18014398509481992n);
|
|
100
|
-
check(35732739218314830n)(35732739218314832n);
|
|
101
|
-
check(36028797018963966n)(36028797018963968n);
|
|
102
|
-
// 1_11 round up
|
|
103
|
-
check(18014398509481991n)(18014398509481992n);
|
|
104
|
-
check(35015291789494295n)(35015291789494296n);
|
|
105
|
-
check(36028797018963967n)(36028797018963968n);
|
|
106
|
-
// 57, 0x35+4 bits.
|
|
107
|
-
// 3 2 1 0
|
|
108
|
-
// 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1234
|
|
109
|
-
check(104002482718319358n)(104002482718319360n);
|
|
110
|
-
check(142693895881191444n)(142693895881191440n);
|
|
111
|
-
},
|
|
112
|
-
countOnes: [
|
|
113
|
-
() => {
|
|
114
|
-
// 1121 2231 = 5 + 8 = 13
|
|
115
|
-
const r = countOnes(0x1234_5678);
|
|
116
|
-
assertEq(r, 13);
|
|
117
|
-
},
|
|
118
|
-
() => {
|
|
119
|
-
// 2232 3340 = 9 + 10 = 19
|
|
120
|
-
const r = countOnes(0x9ABC_DEF0);
|
|
121
|
-
assertEq(r, 19);
|
|
122
|
-
}
|
|
123
|
-
]
|
|
124
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { type List } from '../list/module.f.ts';
|
|
2
|
-
import { type Nullable } from '../nullable/module.f.ts';
|
|
3
|
-
import { type OrderedMap } from '../ordered_map/module.f.ts';
|
|
4
|
-
/** A record over the keys of `K`, each value possibly missing at runtime. */
|
|
5
|
-
export type OptionalMap<K extends string, T> = {
|
|
6
|
-
readonly [k in K]?: T;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* A record over the keys of `K`, each value required.
|
|
10
|
-
*
|
|
11
|
-
* `K` has to be a finite union of string literals: `RequiredMap<string, T>` is
|
|
12
|
-
* `never`, because no object can carry every string as a key. Use `StringMap<T>`
|
|
13
|
-
* for an open key set — its values are optional, which is what such a key set
|
|
14
|
-
* means at runtime.
|
|
15
|
-
*
|
|
16
|
-
* There is no known way to ask TypeScript whether `K` is finite, so the guard
|
|
17
|
-
* approximates it with `string extends K`, which holds exactly when `K` is
|
|
18
|
-
* `string`. Other infinite key sets are not caught: a template literal such as
|
|
19
|
-
* `x-${string}` yields a template index signature instead of `never`, and its
|
|
20
|
-
* reads are typed `T` while the runtime value is `undefined`. Keep `K` a union
|
|
21
|
-
* of string literals.
|
|
22
|
-
*/
|
|
23
|
-
export type RequiredMap<K extends string, T> = string extends K ? never : {
|
|
24
|
-
readonly [k in K]: T;
|
|
25
|
-
};
|
|
26
|
-
/** A record with an open key set. Every value can be missing at runtime. */
|
|
27
|
-
export type StringMap<T> = OptionalMap<string, T>;
|
|
28
|
-
export type Entry<T> = readonly [string, T];
|
|
29
|
-
export declare const at: (name: string) => <T>(object: StringMap<T>) => Nullable<Exclude<T, undefined>>;
|
|
30
|
-
export declare const sort: <T>(e: List<Entry<T>>) => List<Entry<T>>;
|
|
31
|
-
export declare const fromEntries: <T>(e: List<Entry<T>>) => StringMap<T>;
|
|
32
|
-
export declare const fromMap: <T>(m: OrderedMap<T>) => StringMap<T>;
|
|
33
|
-
/**
|
|
34
|
-
* A set of objects with a single key.
|
|
35
|
-
*
|
|
36
|
-
* See also
|
|
37
|
-
* https://stackoverflow.com/questions/57571664/typescript-type-for-an-object-with-only-one-key-no-union-type-allowed-as-a-key
|
|
38
|
-
*/
|
|
39
|
-
export type OneKey<K extends string, V> = {
|
|
40
|
-
[P in K]: (RequiredMap<P, V> & OptionalMap<Exclude<K, P>, never>) extends infer O ? {
|
|
41
|
-
[Q in keyof O]: O[Q];
|
|
42
|
-
} : never;
|
|
43
|
-
}[K];
|
|
44
|
-
/**
|
|
45
|
-
* https://stackoverflow.com/questions/61112584/typing-a-single-record-entry
|
|
46
|
-
*/
|
|
47
|
-
export type NotUnion<T, U = T> = T extends unknown ? [
|
|
48
|
-
U
|
|
49
|
-
] extends [T] ? T : never : never;
|
|
50
|
-
export type SingleProperty<T extends StringMap<never>> = keyof T extends NotUnion<keyof T> ? T : never;
|
|
51
|
-
export declare const isObject: (value: unknown) => value is { readonly [k in string]: unknown; };
|
|
52
|
-
/** Returns only the defined (non-undefined) values of a partial record. */
|
|
53
|
-
export declare const definedValues: <T>(map: StringMap<Exclude<T, undefined>>) => readonly Exclude<T, undefined>[];
|
|
54
|
-
export declare const definedEntries: <T>(cmd: StringMap<Exclude<T, undefined>>) => readonly (readonly [string, Exclude<T, undefined>])[];
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plain-object helpers and types: the `OptionalMap`/`RequiredMap`/`StringMap`
|
|
3
|
-
* record shapes and `Entry<T>`, safe property lookup via `at`, conversions
|
|
4
|
-
* between entries and `OrderedMap`, and the `OneKey`/`SingleProperty`/`NotUnion`
|
|
5
|
-
* utility types.
|
|
6
|
-
*
|
|
7
|
-
* @module
|
|
8
|
-
*/
|
|
9
|
-
import { isArray } from '../array/module.f.js';
|
|
10
|
-
import { iterable } from '../list/module.f.js';
|
|
11
|
-
import { fromUndefined } from '../nullable/module.f.js';
|
|
12
|
-
import { entries as mapEntries, fromEntries as mapFromEntries } from '../ordered_map/module.f.js';
|
|
13
|
-
const { getOwnPropertyDescriptor, fromEntries: objectFromEntries } = Object;
|
|
14
|
-
export const at = name => object => {
|
|
15
|
-
const d = getOwnPropertyDescriptor(object, name);
|
|
16
|
-
return d === undefined ? null : fromUndefined(d.value);
|
|
17
|
-
};
|
|
18
|
-
export const sort = e => mapEntries(mapFromEntries(e));
|
|
19
|
-
export const fromEntries = e => objectFromEntries(iterable(e));
|
|
20
|
-
export const fromMap = m => fromEntries(mapEntries(m));
|
|
21
|
-
export const isObject = (value) => typeof value === 'object' && !isArray(value) && value !== null;
|
|
22
|
-
const { values, entries } = Object;
|
|
23
|
-
/** Returns only the defined (non-undefined) values of a partial record. */
|
|
24
|
-
export const definedValues = (map) => values(map).filter(v => v !== undefined);
|
|
25
|
-
export const definedEntries = (cmd) => entries(cmd).flatMap(([a, b]) => b === undefined ? [] : [[a, b]]);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { at } from './module.f.js';
|
|
2
|
-
import { assertEq } from '../../asserts/module.f.js';
|
|
3
|
-
export const proof = {
|
|
4
|
-
ctor: () => {
|
|
5
|
-
const a = {};
|
|
6
|
-
const value = at('constructor')(a);
|
|
7
|
-
assertEq(value, null);
|
|
8
|
-
},
|
|
9
|
-
property: () => {
|
|
10
|
-
const a = { constructor: 42 };
|
|
11
|
-
const value = at('constructor')(a);
|
|
12
|
-
assertEq(value, 42);
|
|
13
|
-
}
|
|
14
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Ordered map operations with deterministic key traversal.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
import type { Tree } from '../btree/types/module.f.ts';
|
|
7
|
-
import { type List } from '../list/module.f.ts';
|
|
8
|
-
import type { Reduce } from '../function/operator/module.f.ts';
|
|
9
|
-
export type Entry<T> = readonly [string, T];
|
|
10
|
-
export type OrderedMap<T> = Tree<Entry<T>>;
|
|
11
|
-
export declare const at: (name: string) => <T>(map: OrderedMap<T>) => T | null;
|
|
12
|
-
export declare const setReduce: <T>(reduce: Reduce<T>) => (name: string) => (value: T) => (map: OrderedMap<T>) => OrderedMap<T>;
|
|
13
|
-
export declare const setReplace: (name: string) => <T>(value: T) => (map: OrderedMap<T>) => OrderedMap<T>;
|
|
14
|
-
export declare const entries: <T>(map: OrderedMap<T>) => List<Entry<T>>;
|
|
15
|
-
export declare const fromEntries: <T>(entries: List<Entry<T>>) => OrderedMap<T>;
|
|
16
|
-
export declare const remove: (name: string) => <T>(map: OrderedMap<T>) => OrderedMap<T>;
|
|
17
|
-
export declare const empty: null;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { value, find } from '../btree/find/module.f.js';
|
|
2
|
-
import { set } from '../btree/set/module.f.js';
|
|
3
|
-
import { remove as btreeRemove } from '../btree/remove/module.f.js';
|
|
4
|
-
import { values } from '../btree/module.f.js';
|
|
5
|
-
import { cmp } from '../string/module.f.js';
|
|
6
|
-
import { fold } from '../list/module.f.js';
|
|
7
|
-
const keyCmp = a => ([b]) => cmp(a)(b);
|
|
8
|
-
export const at = (name) => (map) => {
|
|
9
|
-
if (map === null) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
const result = value(find(keyCmp(name))(map).first);
|
|
13
|
-
return result === null ? null : result[1];
|
|
14
|
-
};
|
|
15
|
-
const setReduceEntry = reduce => entry => set(keyCmp(entry[0]))(old => old === null ? entry : [old[0], reduce(old[1])(entry[1])]);
|
|
16
|
-
export const setReduce = reduce => name => value => setReduceEntry(reduce)([name, value]);
|
|
17
|
-
const replace = () => b => b;
|
|
18
|
-
export const setReplace = name => value => setReduceEntry(replace)([name, value]);
|
|
19
|
-
export const entries = values;
|
|
20
|
-
export const fromEntries = fold(setReduceEntry(replace))(null);
|
|
21
|
-
export const remove = name => btreeRemove(keyCmp(name));
|
|
22
|
-
export const empty = null;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { at, setReplace, setReduce, empty, entries, remove, fromEntries } from './module.f.js';
|
|
2
|
-
import { toArray } from '../list/module.f.js';
|
|
3
|
-
import { assertEq } from '../../asserts/module.f.js';
|
|
4
|
-
export const proof = {
|
|
5
|
-
main: [
|
|
6
|
-
() => {
|
|
7
|
-
let m = setReplace('a')(1)(null);
|
|
8
|
-
assertEq(at('a')(m), 1);
|
|
9
|
-
assertEq(at('b')(m), null);
|
|
10
|
-
m = setReplace('b')(2)(m);
|
|
11
|
-
assertEq(at('a')(m), 1);
|
|
12
|
-
assertEq(at('b')(m), 2);
|
|
13
|
-
assertEq(at('c')(m), null);
|
|
14
|
-
m = setReplace('z')(3)(m);
|
|
15
|
-
assertEq(at('a')(m), 1);
|
|
16
|
-
assertEq(at('b')(m), 2);
|
|
17
|
-
assertEq(at('z')(m), 3);
|
|
18
|
-
assertEq(at('')(m), null);
|
|
19
|
-
m = setReplace('')(4)(m);
|
|
20
|
-
assertEq(at('a')(m), 1);
|
|
21
|
-
assertEq(at('b')(m), 2);
|
|
22
|
-
assertEq(at('z')(m), 3);
|
|
23
|
-
assertEq(at('')(m), 4);
|
|
24
|
-
assertEq(at('Hello world!')(m), null);
|
|
25
|
-
m = setReplace('Hello world!')(42)(m);
|
|
26
|
-
assertEq(at('a')(m), 1);
|
|
27
|
-
assertEq(at('b')(m), 2);
|
|
28
|
-
assertEq(at('z')(m), 3);
|
|
29
|
-
assertEq(at('')(m), 4);
|
|
30
|
-
assertEq(at('Hello world!')(m), 42);
|
|
31
|
-
assertEq(at('x')(m), null);
|
|
32
|
-
// console.log(Array.from(m.entries()))
|
|
33
|
-
m = remove('Hello world!')(m);
|
|
34
|
-
assertEq(at('Hello world!')(m), null);
|
|
35
|
-
m = setReduce((a) => (b) => a + b)('a')(43)(m);
|
|
36
|
-
assertEq(at('a')(m), 44);
|
|
37
|
-
},
|
|
38
|
-
() => {
|
|
39
|
-
let m = setReplace('x')(12)(null);
|
|
40
|
-
m = setReplace('y')(44)(m);
|
|
41
|
-
assertEq(at('x')(m), 12);
|
|
42
|
-
assertEq(at('y')(m), 44);
|
|
43
|
-
assertEq(at('a')(m), null);
|
|
44
|
-
const e = toArray(entries(m));
|
|
45
|
-
assertEq(e.length, 2);
|
|
46
|
-
},
|
|
47
|
-
],
|
|
48
|
-
fromEntries: () => {
|
|
49
|
-
const list = [['a', 1], ['b', 2], ['c', 3]];
|
|
50
|
-
const m = fromEntries(list);
|
|
51
|
-
assertEq(at('a')(m), 1);
|
|
52
|
-
assertEq(at('b')(m), 2);
|
|
53
|
-
assertEq(at('c')(m), 3);
|
|
54
|
-
assertEq(at('d')(m), null);
|
|
55
|
-
// duplicate key: last one wins
|
|
56
|
-
const m2 = fromEntries([['x', 10], ['x', 20]]);
|
|
57
|
-
assertEq(at('x')(m2), 20);
|
|
58
|
-
},
|
|
59
|
-
stress: () => {
|
|
60
|
-
let m = empty;
|
|
61
|
-
for (let i = 0; i < 100_000; ++i) {
|
|
62
|
-
m = setReplace((i * i).toString())(i)(m);
|
|
63
|
-
/*
|
|
64
|
-
console.log()
|
|
65
|
-
console.log(`# ${i}`)
|
|
66
|
-
console.log()
|
|
67
|
-
for (const e of m.struct()) {
|
|
68
|
-
console.log(e)
|
|
69
|
-
}
|
|
70
|
-
*/
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming Patricia trie for building content-addressed binary trees from sorted leaf sequences.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
/** Merges two child identities into a parent. Values first, storage last in both params and return. */
|
|
7
|
-
export type Create<S, T> = (a: T, b: T, storage: S) => readonly [T, S];
|
|
8
|
-
/** A leaf entry: `[sortKey, identity]`. The sort key is used only for XOR comparisons. */
|
|
9
|
-
export type Candidate<T> = readonly [bigint, T];
|
|
10
|
-
export type InternalState<T> = readonly Candidate<T>[];
|
|
11
|
-
/** Streaming state: `[storage, right-spine stack]`. */
|
|
12
|
-
export type State<S, T> = readonly [S, InternalState<T>];
|
|
13
|
-
export type PatriciaTrie<S, T> = {
|
|
14
|
-
/** Add one leaf. Merges any tightly-coupled stack candidates before pushing. */
|
|
15
|
-
readonly push: (c: Candidate<T>, state: State<S, T>) => State<S, T>;
|
|
16
|
-
/**
|
|
17
|
-
* Drain the stack right-to-left, returning the root identity and final storage.
|
|
18
|
-
* Returns `undefined` as the root if no leaves were pushed.
|
|
19
|
-
*/
|
|
20
|
-
readonly end: (state: State<S, T>) => readonly [T | undefined, S];
|
|
21
|
-
};
|
|
22
|
-
/** Creates a Patricia trie whose node merging is delegated to `create`. */
|
|
23
|
-
export declare const patriciaTrie: <S, T>(create: Create<S, T>) => PatriciaTrie<S, T>;
|
|
24
|
-
/** Constructs the initial state from a storage value. */
|
|
25
|
-
export declare const emptyState: <S>(storage: S) => readonly [S, readonly []];
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming Patricia trie for building content-addressed binary trees from sorted leaf sequences.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*/
|
|
6
|
-
/** Creates a Patricia trie whose node merging is delegated to `create`. */
|
|
7
|
-
export const patriciaTrie = (create) => ({
|
|
8
|
-
push: (c, [storage, stack]) => {
|
|
9
|
-
const [u] = c;
|
|
10
|
-
while (stack.length >= 2) {
|
|
11
|
-
const [rLeaf, rHash] = stack[stack.length - 1];
|
|
12
|
-
const [lLeaf, lHash] = stack[stack.length - 2];
|
|
13
|
-
if ((lLeaf ^ rLeaf) >= (rLeaf ^ u)) {
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
const [h, newS] = create(lHash, rHash, storage);
|
|
17
|
-
storage = newS;
|
|
18
|
-
stack = [...stack.slice(0, -2), [rLeaf, h]];
|
|
19
|
-
}
|
|
20
|
-
return [storage, [...stack, c]];
|
|
21
|
-
},
|
|
22
|
-
end: ([storage, stack]) => {
|
|
23
|
-
if (stack.length === 0) {
|
|
24
|
-
return [undefined, storage];
|
|
25
|
-
}
|
|
26
|
-
let h = stack[stack.length - 1][1];
|
|
27
|
-
for (let i = stack.length - 2; i >= 0; i--) {
|
|
28
|
-
const lHash = stack[i][1];
|
|
29
|
-
[h, storage] = create(lHash, h, storage);
|
|
30
|
-
}
|
|
31
|
-
return [h, storage];
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
/** Constructs the initial state from a storage value. */
|
|
35
|
-
export const emptyState = (storage) => [storage, []];
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
declare const empty: () => void;
|
|
2
|
-
declare const singleLeaf: () => void;
|
|
3
|
-
declare const twoLeaves: () => void;
|
|
4
|
-
declare const descending: () => void;
|
|
5
|
-
declare const ascending: () => void;
|
|
6
|
-
export declare const proof: {
|
|
7
|
-
empty: typeof empty;
|
|
8
|
-
singleLeaf: typeof singleLeaf;
|
|
9
|
-
twoLeaves: typeof twoLeaves;
|
|
10
|
-
descending: typeof descending;
|
|
11
|
-
ascending: typeof ascending;
|
|
12
|
-
};
|
|
13
|
-
export {};
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
2
|
-
import { emptyState, patriciaTrie } from './module.f.js';
|
|
3
|
-
const combine = (a, b) => a * 1000n + b;
|
|
4
|
-
const create = (a, b, s) => {
|
|
5
|
-
const h = combine(a, b);
|
|
6
|
-
return [h, [...s, [a, b, h]]];
|
|
7
|
-
};
|
|
8
|
-
const { push, end } = patriciaTrie(create);
|
|
9
|
-
const leaves = ([, candidates]) => candidates.map(([leaf]) => leaf);
|
|
10
|
-
const runExample = (inputs, expectedLeaves, expectedNodeCounts) => {
|
|
11
|
-
let state = emptyState([]);
|
|
12
|
-
for (let i = 0; i < inputs.length; i++) {
|
|
13
|
-
const x = inputs[i];
|
|
14
|
-
const prevCount = state[0].length;
|
|
15
|
-
state = push([x, x], state);
|
|
16
|
-
const actual = leaves(state);
|
|
17
|
-
assertEq(actual.length, expectedLeaves[i].length);
|
|
18
|
-
for (let j = 0; j < actual.length; j++) {
|
|
19
|
-
assertEq(actual[j], expectedLeaves[i][j]);
|
|
20
|
-
}
|
|
21
|
-
const newNodes = state[0].slice(prevCount);
|
|
22
|
-
assertEq(newNodes.length, expectedNodeCounts[i]);
|
|
23
|
-
for (const [l, r, h] of newNodes) {
|
|
24
|
-
assertEq(h, combine(l, r));
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
const prevCount = state[0].length;
|
|
28
|
-
const [root, finalStorage] = end(state);
|
|
29
|
-
const finalNodes = finalStorage.slice(prevCount);
|
|
30
|
-
assertEq(finalNodes.length, expectedLeaves[expectedLeaves.length - 1].length - 1);
|
|
31
|
-
assert(root !== undefined);
|
|
32
|
-
for (const [l, r, h] of finalNodes) {
|
|
33
|
-
assertEq(h, combine(l, r));
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const empty = () => {
|
|
37
|
-
const [root, storage] = end(emptyState([]));
|
|
38
|
-
assertEq(storage.length, 0);
|
|
39
|
-
assertEq(root, undefined);
|
|
40
|
-
};
|
|
41
|
-
const singleLeaf = () => {
|
|
42
|
-
const state = push([42n, 42n], emptyState([]));
|
|
43
|
-
assertEq(state[0].length, 0);
|
|
44
|
-
assertEq(leaves(state).length, 1);
|
|
45
|
-
assertEq(leaves(state)[0], 42n);
|
|
46
|
-
const [root, finalStorage] = end(state);
|
|
47
|
-
assertEq(finalStorage.length, 0);
|
|
48
|
-
assertEq(root, 42n);
|
|
49
|
-
};
|
|
50
|
-
const twoLeaves = () => {
|
|
51
|
-
const s1 = push([7n, 7n], emptyState([]));
|
|
52
|
-
const prevCount = s1[0].length;
|
|
53
|
-
const s2 = push([3n, 3n], s1);
|
|
54
|
-
assertEq(s2[0].slice(prevCount).length, 0);
|
|
55
|
-
assertEq(leaves(s2).length, 2);
|
|
56
|
-
const prevCount2 = s2[0].length;
|
|
57
|
-
const [root, finalStorage] = end(s2);
|
|
58
|
-
const finalNodes = finalStorage.slice(prevCount2);
|
|
59
|
-
assertEq(finalNodes.length, 1);
|
|
60
|
-
assertEq(finalNodes[0][0], 7n);
|
|
61
|
-
assertEq(finalNodes[0][1], 3n);
|
|
62
|
-
assertEq(finalNodes[0][2], combine(7n, 3n));
|
|
63
|
-
assertEq(root, combine(7n, 3n));
|
|
64
|
-
};
|
|
65
|
-
// example.md — descending
|
|
66
|
-
// merges happen at: step 2 (1), 3 (1), 4 (1), 7 (2), 8 (2), A (1), C (2), F (1)
|
|
67
|
-
const descending = () => runExample([
|
|
68
|
-
249n, 242n, 227n, 200n,
|
|
69
|
-
179n, 166n, 163n, 159n,
|
|
70
|
-
119n, 110n, 89n, 73n,
|
|
71
|
-
39n, 23n, 16n, 14n,
|
|
72
|
-
], [
|
|
73
|
-
[249n],
|
|
74
|
-
[249n, 242n],
|
|
75
|
-
[242n, 227n],
|
|
76
|
-
[227n, 200n],
|
|
77
|
-
[200n, 179n],
|
|
78
|
-
[200n, 179n, 166n],
|
|
79
|
-
[200n, 179n, 166n, 163n],
|
|
80
|
-
[200n, 163n, 159n],
|
|
81
|
-
[159n, 119n],
|
|
82
|
-
[159n, 119n, 110n],
|
|
83
|
-
[159n, 110n, 89n],
|
|
84
|
-
[159n, 110n, 89n, 73n],
|
|
85
|
-
[159n, 73n, 39n],
|
|
86
|
-
[159n, 73n, 39n, 23n],
|
|
87
|
-
[159n, 73n, 39n, 23n, 16n],
|
|
88
|
-
[159n, 73n, 39n, 16n, 14n],
|
|
89
|
-
], [0, 0, 1, 1, 1, 0, 0, 2, 2, 0, 1, 0, 2, 0, 0, 1]);
|
|
90
|
-
// example.md — ascending (same values, reversed)
|
|
91
|
-
// merges happen at: step 3 (2), 4 (1), 6 (1), 8 (3), B (1), C (2)
|
|
92
|
-
const ascending = () => runExample([
|
|
93
|
-
14n, 16n, 23n, 39n,
|
|
94
|
-
73n, 89n, 110n, 119n,
|
|
95
|
-
159n, 163n, 166n, 179n,
|
|
96
|
-
200n, 227n, 242n, 249n,
|
|
97
|
-
], [
|
|
98
|
-
[14n],
|
|
99
|
-
[14n, 16n],
|
|
100
|
-
[14n, 16n, 23n],
|
|
101
|
-
[23n, 39n],
|
|
102
|
-
[39n, 73n],
|
|
103
|
-
[39n, 73n, 89n],
|
|
104
|
-
[39n, 89n, 110n],
|
|
105
|
-
[39n, 89n, 110n, 119n],
|
|
106
|
-
[119n, 159n],
|
|
107
|
-
[119n, 159n, 163n],
|
|
108
|
-
[119n, 159n, 163n, 166n],
|
|
109
|
-
[119n, 159n, 166n, 179n],
|
|
110
|
-
[119n, 179n, 200n],
|
|
111
|
-
[119n, 179n, 200n, 227n],
|
|
112
|
-
[119n, 179n, 200n, 227n, 242n],
|
|
113
|
-
[119n, 179n, 200n, 227n, 242n, 249n],
|
|
114
|
-
], [0, 0, 0, 2, 1, 0, 1, 0, 3, 0, 0, 1, 2, 0, 0, 0]);
|
|
115
|
-
export const proof = {
|
|
116
|
-
empty,
|
|
117
|
-
singleLeaf,
|
|
118
|
-
twoLeaves,
|
|
119
|
-
descending,
|
|
120
|
-
ascending
|
|
121
|
-
};
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Prime field arithmetic over `bigint`: `prime_field(p)` builds a `PrimeField`
|
|
3
|
-
* with negation, addition, subtraction, multiplication, division via modular
|
|
4
|
-
* inverse, and exponentiation; `sqrt` returns a square-root function when
|
|
5
|
-
* `p % 4 === 3`.
|
|
6
|
-
*
|
|
7
|
-
* @module
|
|
8
|
-
*/
|
|
9
|
-
import type { Unary, Reduce } from '../bigint/module.f.ts';
|
|
10
|
-
/**
|
|
11
|
-
* A type representing a prime field and its associated operations.
|
|
12
|
-
*/
|
|
13
|
-
export type PrimeField = {
|
|
14
|
-
readonly p: bigint;
|
|
15
|
-
readonly middle: bigint;
|
|
16
|
-
readonly max: bigint;
|
|
17
|
-
readonly neg: Unary;
|
|
18
|
-
readonly sub: Reduce;
|
|
19
|
-
readonly add: Reduce;
|
|
20
|
-
readonly abs: Unary;
|
|
21
|
-
readonly mul: Reduce;
|
|
22
|
-
readonly reciprocal: Unary;
|
|
23
|
-
readonly div: Reduce;
|
|
24
|
-
readonly pow: Reduce;
|
|
25
|
-
readonly pow2: Unary;
|
|
26
|
-
readonly pow3: Unary;
|
|
27
|
-
/** Reduces an arbitrary `bigint` into `[0, p)`. */
|
|
28
|
-
readonly reduce: Unary;
|
|
29
|
-
/**
|
|
30
|
-
* `true` when `x` is a square modulo `p`, including `0`.
|
|
31
|
-
*
|
|
32
|
-
* Nonzero values are tested with Euler's criterion:
|
|
33
|
-
* `x^((p - 1) / 2) === 1 (mod p)`.
|
|
34
|
-
* For `p === 2n`, both field elements are squares.
|
|
35
|
-
*/
|
|
36
|
-
readonly quadRes: (x: bigint) => boolean;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* Creates a prime field with the specified prime modulus and associated operations.
|
|
40
|
-
*
|
|
41
|
-
* @param p - A prime number to define the field.
|
|
42
|
-
* @returns The prime field object.
|
|
43
|
-
*/
|
|
44
|
-
export declare const prime_field: (p: bigint) => PrimeField;
|
|
45
|
-
/**
|
|
46
|
-
* Computes the square root of a number in a prime field.
|
|
47
|
-
*
|
|
48
|
-
* @throws If the prime modulus `p` does not satisfy `p % 4 == 3`.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
*
|
|
52
|
-
* ```js
|
|
53
|
-
* const field = prime_field(7n);
|
|
54
|
-
* const root = sqrt(field)(4n);
|
|
55
|
-
* if (root !== 2n) { throw root }
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
export declare const sqrt: ({ p, pow, pow2 }: PrimeField) => (a: bigint) => bigint | null;
|
|
59
|
-
/**
|
|
60
|
-
* Modular square root mod `p` (`p ≡ 3 (mod 4)`); uses {@link PrimeField.neg} when `x` is not a residue.
|
|
61
|
-
*/
|
|
62
|
-
export declare const modSqrt: (field: PrimeField) => Unary;
|