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,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A module for representing and handling operations that can succeed or fail.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { error, ok, unwrap, type Result } from './module.f.ts'
|
|
10
|
-
*
|
|
11
|
-
* const success: Result<number, string> = ok(42)
|
|
12
|
-
* const failure: Result<number, string> = error('Something went wrong')
|
|
13
|
-
*
|
|
14
|
-
* if (unwrap(success) !== 42) { throw 'error' }
|
|
15
|
-
* const [kind, v] = failure
|
|
16
|
-
* if (kind !== 'error') { throw 'error' }
|
|
17
|
-
* // `v` is inferred as `string` here
|
|
18
|
-
* if (v !== 'Something went wrong') { throw 'error' }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Represents a successful result.
|
|
23
|
-
*/
|
|
24
|
-
export type Ok<T> = readonly ['ok', T];
|
|
25
|
-
/**
|
|
26
|
-
* Represents a failed result.
|
|
27
|
-
*/
|
|
28
|
-
export type Error<E> = readonly ['error', E];
|
|
29
|
-
/**
|
|
30
|
-
* Represents a result that can be either successful or failed.
|
|
31
|
-
*/
|
|
32
|
-
export type Result<T, E> = Ok<T> | Error<E>;
|
|
33
|
-
/**
|
|
34
|
-
* Creates a successful result.
|
|
35
|
-
*
|
|
36
|
-
* @param value - The value to wrap.
|
|
37
|
-
* @returns A successful result containing the value.
|
|
38
|
-
*/
|
|
39
|
-
export declare const ok: <T>(value: T) => Ok<T>;
|
|
40
|
-
/**
|
|
41
|
-
* Creates a failed result.
|
|
42
|
-
*
|
|
43
|
-
* @param e - The error to wrap.
|
|
44
|
-
* @returns A failed result containing the error.
|
|
45
|
-
*/
|
|
46
|
-
export declare const error: <E>(e: E) => Error<E>;
|
|
47
|
-
/**
|
|
48
|
-
* Unwraps a result, returning the value if successful or throwing the error if failed.
|
|
49
|
-
*
|
|
50
|
-
* @param param0 - The result to unwrap.
|
|
51
|
-
* @returns The value if the result is successful. Otherwise, throws the error.
|
|
52
|
-
*/
|
|
53
|
-
export declare const unwrap: <T, E>([kind, v]: Result<T, E>) => T;
|
|
54
|
-
/**
|
|
55
|
-
* Swaps the `ok` and `error` cases of a result.
|
|
56
|
-
*/
|
|
57
|
-
export declare const invert: <T, E>([k, v]: Result<T, E>) => Result<E, T>;
|
|
58
|
-
/**
|
|
59
|
-
* Maps the `ok` case of a result, passing an `error` through unchanged.
|
|
60
|
-
*/
|
|
61
|
-
export declare const mapOk: <T, R>(f: (value: T) => R) => <E>(r: Result<T, E>) => Result<R, E>;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A module for representing and handling operations that can succeed or fail.
|
|
3
|
-
*
|
|
4
|
-
* @module
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { error, ok, unwrap, type Result } from './module.f.ts'
|
|
10
|
-
*
|
|
11
|
-
* const success: Result<number, string> = ok(42)
|
|
12
|
-
* const failure: Result<number, string> = error('Something went wrong')
|
|
13
|
-
*
|
|
14
|
-
* if (unwrap(success) !== 42) { throw 'error' }
|
|
15
|
-
* const [kind, v] = failure
|
|
16
|
-
* if (kind !== 'error') { throw 'error' }
|
|
17
|
-
* // `v` is inferred as `string` here
|
|
18
|
-
* if (v !== 'Something went wrong') { throw 'error' }
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
/**
|
|
22
|
-
* Creates a successful result.
|
|
23
|
-
*
|
|
24
|
-
* @param value - The value to wrap.
|
|
25
|
-
* @returns A successful result containing the value.
|
|
26
|
-
*/
|
|
27
|
-
export const ok = (value) => ['ok', value];
|
|
28
|
-
/**
|
|
29
|
-
* Creates a failed result.
|
|
30
|
-
*
|
|
31
|
-
* @param e - The error to wrap.
|
|
32
|
-
* @returns A failed result containing the error.
|
|
33
|
-
*/
|
|
34
|
-
export const error = (e) => ['error', e];
|
|
35
|
-
/**
|
|
36
|
-
* Unwraps a result, returning the value if successful or throwing the error if failed.
|
|
37
|
-
*
|
|
38
|
-
* @param param0 - The result to unwrap.
|
|
39
|
-
* @returns The value if the result is successful. Otherwise, throws the error.
|
|
40
|
-
*/
|
|
41
|
-
export const unwrap = ([kind, v]) => {
|
|
42
|
-
if (kind === 'error') {
|
|
43
|
-
throw v;
|
|
44
|
-
}
|
|
45
|
-
return v;
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Swaps the `ok` and `error` cases of a result.
|
|
49
|
-
*/
|
|
50
|
-
export const invert = ([k, v]) => k === 'ok' ? error(v) : ok(v);
|
|
51
|
-
/**
|
|
52
|
-
* Maps the `ok` case of a result, passing an `error` through unchanged.
|
|
53
|
-
*/
|
|
54
|
-
export const mapOk = (f) => (r) => r[0] === 'ok' ? ok(f(r[1])) : r;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ok, error } from './module.f.js';
|
|
2
|
-
export const tryCatch = f => {
|
|
3
|
-
// Side effect: `try catch` is not allowed in FunctionalScript.
|
|
4
|
-
try {
|
|
5
|
-
return ok(f());
|
|
6
|
-
}
|
|
7
|
-
catch (e) {
|
|
8
|
-
return error(e);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
export const asyncTryCatch = async (f) => {
|
|
12
|
-
// Side effect: `try catch` is not allowed in FunctionalScript.
|
|
13
|
-
try {
|
|
14
|
-
return ok(await f());
|
|
15
|
-
}
|
|
16
|
-
catch (e) {
|
|
17
|
-
return error(e);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { error, ok, unwrap, invert, mapOk } from "./module.f.js";
|
|
2
|
-
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
3
|
-
const example = () => {
|
|
4
|
-
const success = ok(42);
|
|
5
|
-
const failure = error('Something went wrong');
|
|
6
|
-
assertEq(unwrap(success), 42, 'error');
|
|
7
|
-
const [kind, v] = failure;
|
|
8
|
-
assertEq(kind, 'error');
|
|
9
|
-
// `v` is inferred as `string` here
|
|
10
|
-
assertEq(v, 'Something went wrong', 'error');
|
|
11
|
-
};
|
|
12
|
-
const invertTest = () => {
|
|
13
|
-
const [k0, v0] = invert(ok(42));
|
|
14
|
-
assert(!(k0 !== 'error' || v0 !== 42), [k0, v0]);
|
|
15
|
-
const [k1, v1] = invert(error('oops'));
|
|
16
|
-
assert(!(k1 !== 'ok' || v1 !== 'oops'), [k1, v1]);
|
|
17
|
-
};
|
|
18
|
-
const mapOkTest = () => {
|
|
19
|
-
const [k0, v0] = mapOk((n) => n + 1)(ok(41));
|
|
20
|
-
assert(!(k0 !== 'ok' || v0 !== 42), [k0, v0]);
|
|
21
|
-
const [k1, v1] = mapOk((n) => n + 1)(error('oops'));
|
|
22
|
-
assert(!(k1 !== 'error' || v1 !== 'oops'), [k1, v1]);
|
|
23
|
-
};
|
|
24
|
-
export const proof = {
|
|
25
|
-
example,
|
|
26
|
-
invertTest,
|
|
27
|
-
mapOkTest,
|
|
28
|
-
throw: {
|
|
29
|
-
unwrapError: () => unwrap(error('oops')),
|
|
30
|
-
},
|
|
31
|
-
};
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared kernel for RTTI consumers (`validate`, `parse`).
|
|
3
|
-
*
|
|
4
|
-
* Both consumers traverse the same schema shape and produce the same
|
|
5
|
-
* `Result<T, ValidationError>` outcome. Only the per-variant handling differs
|
|
6
|
-
* — `validate` keeps the original value, `parse` constructs a fresh one.
|
|
7
|
-
*
|
|
8
|
-
* This module hosts the parts that do not differ:
|
|
9
|
-
*
|
|
10
|
-
* - The error shape (`ValidationError`, `Path`) and path bookkeeping
|
|
11
|
-
* (`verror`, `prependPath`).
|
|
12
|
-
* - Primitive checks (`primitive0Validate`, `constPrimitiveValidate`).
|
|
13
|
-
* - The `Validate<T>`/`Result<T>` signatures — `parse` uses the same shape.
|
|
14
|
-
* - `visit`: a visitor over the `Type` ADT. Callers supply a `Visitor<R>`
|
|
15
|
-
* with one handler per variant; `visit(v)(rtti)` recognizes `rtti` and
|
|
16
|
-
* calls the matching handler. Both consumers compose their top-level
|
|
17
|
-
* function from a visitor.
|
|
18
|
-
* - `eachEntry`: the container entry loop (array/record/tuple/struct), shared
|
|
19
|
-
* by both consumers' container builders. Callers choose what (if anything)
|
|
20
|
-
* to accumulate, so `validate`'s pure pass/fail check pays no allocation.
|
|
21
|
-
* - `orVisit`: the shared `or` handler — try each variant's recursive walker,
|
|
22
|
-
* return the first match.
|
|
23
|
-
*
|
|
24
|
-
* Keeping the kernel here also removes `parse`'s incidental dependency on
|
|
25
|
-
* `validate` and gives future schema-driven consumers (e.g. the data form
|
|
26
|
-
* sketched in [i143](../../../../issues/README.md)) a stable shared base.
|
|
27
|
-
*
|
|
28
|
-
* @module
|
|
29
|
-
*/
|
|
30
|
-
import type { Primitive, Unknown } from '../ts/module.f.ts';
|
|
31
|
-
import { type Info0, type Primitive0, type Struct, type Tag1, type Tuple, type Type } from '../module.f.ts';
|
|
32
|
-
import { type Error, type Result as CommonResult } from '../../result/module.f.ts';
|
|
33
|
-
import type { Ts } from '../ts/module.f.ts';
|
|
34
|
-
import { type StringMap } from '../../object/module.f.ts';
|
|
35
|
-
/** A path to a sub-value within the validated structure. Each step is an object key or stringified array index. */
|
|
36
|
-
export type Path = readonly string[];
|
|
37
|
-
/** Detailed validation failure: the offending `path` plus a short `message`. */
|
|
38
|
-
export type ValidationError = {
|
|
39
|
-
readonly path: Path;
|
|
40
|
-
readonly message: string;
|
|
41
|
-
};
|
|
42
|
-
/** Validation/parse result: either the typed value or a `ValidationError`. */
|
|
43
|
-
export type Result<T extends Type> = CommonResult<Ts<T>, ValidationError>;
|
|
44
|
-
/** A function that checks an unknown value against schema `T`. Shared by `validate` and `parse`. */
|
|
45
|
-
export type Validate<T extends Type> = (value: Unknown) => Result<T>;
|
|
46
|
-
/** Builds an error result with empty path and the given message. */
|
|
47
|
-
export declare const verror: (message: string) => Error<ValidationError>;
|
|
48
|
-
/** Prepends `key` to the error's path, used to build the path bottom-up. */
|
|
49
|
-
export declare const prependPath: (key: string, [, r]: Error<ValidationError>) => Error<ValidationError>;
|
|
50
|
-
/** Validates a `Tag0` primitive schema using `typeof`. */
|
|
51
|
-
export declare const primitive0Validate: <K extends Primitive0, T extends Info0<K>>(tag: K) => Validate<T>;
|
|
52
|
-
/**
|
|
53
|
-
* Validates a primitive `Const` schema using `Object.is` (SameValue).
|
|
54
|
-
*
|
|
55
|
-
* `Object.is` is used instead of `===` so that:
|
|
56
|
-
* - `NaN` const schemas match `NaN` values (`===` would always fail because `NaN !== NaN`).
|
|
57
|
-
* - `+0` and `-0` are treated as distinct const values.
|
|
58
|
-
*/
|
|
59
|
-
export declare const constPrimitiveValidate: <T extends Primitive>(rtti: T) => Validate<T>;
|
|
60
|
-
/**
|
|
61
|
-
* One handler per `Type` variant. Both `validate` and `parse` provide a
|
|
62
|
-
* `Visitor<R>` where `R` is the per-variant output (e.g. a `Validate` function).
|
|
63
|
-
*/
|
|
64
|
-
export type Visitor<R> = {
|
|
65
|
-
readonly tuple: (rtti: Tuple) => R;
|
|
66
|
-
readonly struct: (rtti: Struct) => R;
|
|
67
|
-
readonly array: (item: Type) => R;
|
|
68
|
-
readonly record: (item: Type) => R;
|
|
69
|
-
readonly or: (variants: readonly Type[]) => R;
|
|
70
|
-
readonly constPrimitive: (p: Primitive) => R;
|
|
71
|
-
readonly primitive0: (tag: Primitive0) => R;
|
|
72
|
-
readonly unknown: () => R;
|
|
73
|
-
};
|
|
74
|
-
/** Type guard narrowing `Unknown` to a specific container type `C`. */
|
|
75
|
-
export type IsContainer<C extends Unknown> = (value: Unknown) => value is C;
|
|
76
|
-
/** Maps a `Tag1` to its runtime container type. */
|
|
77
|
-
export type Container<K extends Tag1> = K extends 'array' ? ReadonlyArray<Unknown> : StringMap<Unknown>;
|
|
78
|
-
/** `IsContainer` guard for arrays, shared by `validate` and `parse`. */
|
|
79
|
-
export declare const isArray: IsContainer<ReadonlyArray<Unknown>>;
|
|
80
|
-
/** `IsContainer` guard for records/structs, shared by `validate` and `parse`. */
|
|
81
|
-
export declare const isObject: IsContainer<StringMap<Unknown>>;
|
|
82
|
-
/**
|
|
83
|
-
* Runs `item` over each `[key, value]` entry, bailing out with the first
|
|
84
|
-
* error, path-prefixed with that entry's key. On success, folds each item's
|
|
85
|
-
* result into `acc` (starting from `init`) with `accumulate` and returns the
|
|
86
|
-
* final accumulator.
|
|
87
|
-
*
|
|
88
|
-
* Shared by `validate` and `parse`'s container builders (array/record/tuple/
|
|
89
|
-
* struct), which differ only in what `item` does with the value and what
|
|
90
|
-
* they accumulate: `validate` has nothing to collect — its entire schema is
|
|
91
|
-
* "did every entry succeed?" — so it passes `undefined`/`(acc) => acc` and
|
|
92
|
-
* pays no allocation per entry; `parse` needs the rebuilt `[key, value]`
|
|
93
|
-
* pairs, so it folds them into a `List` (see its call site) and converts to
|
|
94
|
-
* an array once at the end.
|
|
95
|
-
*/
|
|
96
|
-
export declare const eachEntry: <V, R, A>(entries: ReadonlyArray<readonly [string, V]>, item: (k: string, v: V) => CommonResult<R, ValidationError>, init: A, accumulate: (acc: A, k: string, value: R) => A) => CommonResult<A, ValidationError>;
|
|
97
|
-
/** `Result` with the payload type erased; avoids instantiating `Ts<Type>`. */
|
|
98
|
-
export type ResultE = CommonResult<Unknown, ValidationError>;
|
|
99
|
-
/** A `Validate`-shaped function with the payload type erased. */
|
|
100
|
-
export type ValidateE = (value: Unknown) => ResultE;
|
|
101
|
-
/**
|
|
102
|
-
* First variant in `variants` that `recurse` accepts, else `verror('no match')`.
|
|
103
|
-
*
|
|
104
|
-
* Shared `or` handler for `validate` and `parse`: both try each variant
|
|
105
|
-
* against the value and return the first `'ok'` verbatim, differing only in
|
|
106
|
-
* which recursive function (`validate` or `parse`) walks each variant. `recurse`
|
|
107
|
-
* is typed over the erased `ValidateE` alias — annotating it as `(t: Type) =>
|
|
108
|
-
* Validate<Type>` would itself instantiate `Validate<Type>` and hit TS2589 —
|
|
109
|
-
* so each caller passes its recursive function through one boundary cast.
|
|
110
|
-
*/
|
|
111
|
-
export declare const orVisit: (recurse: (t: Type) => ValidateE) => (variants: readonly Type[]) => (value: Unknown) => ResultE;
|
|
112
|
-
/**
|
|
113
|
-
* Visits a schema `Type` by dispatching to the matching handler in `v`.
|
|
114
|
-
*
|
|
115
|
-
* - `Thunk` schemas are evaluated once to read the `Info` descriptor, then
|
|
116
|
-
* routed by tag (`'const'`, `'array'`, `'record'`, `'unknown'`, `'or'`,
|
|
117
|
-
* or a `Tag0` primitive).
|
|
118
|
-
* - `Const` schemas (primitives, tuples, structs) are routed directly to
|
|
119
|
-
* `tuple`, `struct`, or `constPrimitive`.
|
|
120
|
-
*/
|
|
121
|
-
export declare const visit: <R>(v: Visitor<R>) => (rtti: Type) => R;
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {} from '../module.f.js';
|
|
2
|
-
import { error, ok } from '../../result/module.f.js';
|
|
3
|
-
import { isArray as commonIsArray } from '../../array/module.f.js';
|
|
4
|
-
import { isObject as commonIsObject } from '../../object/module.f.js';
|
|
5
|
-
/** Builds an error result with empty path and the given message. */
|
|
6
|
-
export const verror = (message) => error({ path: [], message });
|
|
7
|
-
/** Prepends `key` to the error's path, used to build the path bottom-up. */
|
|
8
|
-
export const prependPath = (key, [, r]) => error({ path: [key, ...r.path], message: r.message });
|
|
9
|
-
/** Validates a `Tag0` primitive schema using `typeof`. */
|
|
10
|
-
export const primitive0Validate = (tag) => value => typeof value === tag ? ok(value) : verror('unexpected value');
|
|
11
|
-
/**
|
|
12
|
-
* Validates a primitive `Const` schema using `Object.is` (SameValue).
|
|
13
|
-
*
|
|
14
|
-
* `Object.is` is used instead of `===` so that:
|
|
15
|
-
* - `NaN` const schemas match `NaN` values (`===` would always fail because `NaN !== NaN`).
|
|
16
|
-
* - `+0` and `-0` are treated as distinct const values.
|
|
17
|
-
*/
|
|
18
|
-
export const constPrimitiveValidate = (rtti) => value => Object.is(rtti, value)
|
|
19
|
-
? ok(value)
|
|
20
|
-
: verror('unexpected value');
|
|
21
|
-
const visitConst = (v) => (c) => typeof c === 'object' && c !== null
|
|
22
|
-
? (commonIsArray(c) ? v.tuple(c) : v.struct(c))
|
|
23
|
-
: v.constPrimitive(c);
|
|
24
|
-
/** `IsContainer` guard for arrays, shared by `validate` and `parse`. */
|
|
25
|
-
export const isArray = value => commonIsArray(value);
|
|
26
|
-
/** `IsContainer` guard for records/structs, shared by `validate` and `parse`. */
|
|
27
|
-
export const isObject = value => commonIsObject(value);
|
|
28
|
-
/**
|
|
29
|
-
* Runs `item` over each `[key, value]` entry, bailing out with the first
|
|
30
|
-
* error, path-prefixed with that entry's key. On success, folds each item's
|
|
31
|
-
* result into `acc` (starting from `init`) with `accumulate` and returns the
|
|
32
|
-
* final accumulator.
|
|
33
|
-
*
|
|
34
|
-
* Shared by `validate` and `parse`'s container builders (array/record/tuple/
|
|
35
|
-
* struct), which differ only in what `item` does with the value and what
|
|
36
|
-
* they accumulate: `validate` has nothing to collect — its entire schema is
|
|
37
|
-
* "did every entry succeed?" — so it passes `undefined`/`(acc) => acc` and
|
|
38
|
-
* pays no allocation per entry; `parse` needs the rebuilt `[key, value]`
|
|
39
|
-
* pairs, so it folds them into a `List` (see its call site) and converts to
|
|
40
|
-
* an array once at the end.
|
|
41
|
-
*/
|
|
42
|
-
export const eachEntry = (entries, item, init, accumulate) => {
|
|
43
|
-
let acc = init;
|
|
44
|
-
for (const [k, v] of entries) {
|
|
45
|
-
const r = item(k, v);
|
|
46
|
-
if (r[0] === 'error') {
|
|
47
|
-
return prependPath(k, r);
|
|
48
|
-
}
|
|
49
|
-
acc = accumulate(acc, k, r[1]);
|
|
50
|
-
}
|
|
51
|
-
return ok(acc);
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* First variant in `variants` that `recurse` accepts, else `verror('no match')`.
|
|
55
|
-
*
|
|
56
|
-
* Shared `or` handler for `validate` and `parse`: both try each variant
|
|
57
|
-
* against the value and return the first `'ok'` verbatim, differing only in
|
|
58
|
-
* which recursive function (`validate` or `parse`) walks each variant. `recurse`
|
|
59
|
-
* is typed over the erased `ValidateE` alias — annotating it as `(t: Type) =>
|
|
60
|
-
* Validate<Type>` would itself instantiate `Validate<Type>` and hit TS2589 —
|
|
61
|
-
* so each caller passes its recursive function through one boundary cast.
|
|
62
|
-
*/
|
|
63
|
-
export const orVisit = (recurse) => (variants) => (value) => {
|
|
64
|
-
for (const t of variants) {
|
|
65
|
-
const r = recurse(t)(value);
|
|
66
|
-
if (r[0] === 'ok') {
|
|
67
|
-
return r;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return verror('no match');
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Visits a schema `Type` by dispatching to the matching handler in `v`.
|
|
74
|
-
*
|
|
75
|
-
* - `Thunk` schemas are evaluated once to read the `Info` descriptor, then
|
|
76
|
-
* routed by tag (`'const'`, `'array'`, `'record'`, `'unknown'`, `'or'`,
|
|
77
|
-
* or a `Tag0` primitive).
|
|
78
|
-
* - `Const` schemas (primitives, tuples, structs) are routed directly to
|
|
79
|
-
* `tuple`, `struct`, or `constPrimitive`.
|
|
80
|
-
*/
|
|
81
|
-
export const visit = (v) => (rtti) => {
|
|
82
|
-
if (typeof rtti === 'function') {
|
|
83
|
-
const [tag, ...value] = rtti();
|
|
84
|
-
switch (tag) {
|
|
85
|
-
case 'const': return visitConst(v)(value[0]);
|
|
86
|
-
case 'array': return v.array(value[0]);
|
|
87
|
-
case 'record': return v.record(value[0]);
|
|
88
|
-
case 'unknown': return v.unknown();
|
|
89
|
-
case 'or': return v.or(value);
|
|
90
|
-
}
|
|
91
|
-
return v.primitive0(tag);
|
|
92
|
-
}
|
|
93
|
-
return visitConst(v)(rtti);
|
|
94
|
-
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { eachEntry } from './module.f.js';
|
|
2
|
-
import { error, ok } from '../../result/module.f.js';
|
|
3
|
-
import { assert, assertEq } from '../../../asserts/module.f.js';
|
|
4
|
-
const item = (k, v) => v < 0 ? error({ path: [], message: `negative at ${k}` }) : ok(v * 2);
|
|
5
|
-
/** Mirrors `parse`'s accumulate step, kept simple (a small test list, not a `List`). */
|
|
6
|
-
const collect = (acc, k, v) => [...acc, [k, v]];
|
|
7
|
-
export const proof = {
|
|
8
|
-
empty: () => {
|
|
9
|
-
const r = eachEntry([], item, [], collect);
|
|
10
|
-
assert(r[0] === 'ok');
|
|
11
|
-
assertEq(r[1].length, 0);
|
|
12
|
-
},
|
|
13
|
-
allOk: () => {
|
|
14
|
-
const r = eachEntry([['a', 1], ['b', 2]], item, [], collect);
|
|
15
|
-
assert(r[0] === 'ok');
|
|
16
|
-
assertEq(r[1].length, 2);
|
|
17
|
-
assertEq(r[1][0][0], 'a');
|
|
18
|
-
assertEq(r[1][0][1], 2);
|
|
19
|
-
assertEq(r[1][1][0], 'b');
|
|
20
|
-
assertEq(r[1][1][1], 4);
|
|
21
|
-
},
|
|
22
|
-
// Mirrors `validate`'s usage: nothing is collected, only pass/fail matters.
|
|
23
|
-
noAccumulate: () => {
|
|
24
|
-
const r = eachEntry([['a', 1]], item, undefined, () => undefined);
|
|
25
|
-
assert(r[0] === 'ok');
|
|
26
|
-
assertEq(r[1], undefined);
|
|
27
|
-
},
|
|
28
|
-
firstErrorWins: () => {
|
|
29
|
-
const r = eachEntry([['a', -1], ['b', -2]], item, [], collect);
|
|
30
|
-
assert(r[0] === 'error');
|
|
31
|
-
assertEq(r[1].message, 'negative at a');
|
|
32
|
-
},
|
|
33
|
-
shortCircuits: () => {
|
|
34
|
-
let calls = 0;
|
|
35
|
-
const counting = (k, v) => {
|
|
36
|
-
calls++;
|
|
37
|
-
return item(k, v);
|
|
38
|
-
};
|
|
39
|
-
const r = eachEntry([['a', -1], ['b', -2], ['c', -3]], counting, [], collect);
|
|
40
|
-
assert(r[0] === 'error');
|
|
41
|
-
assertEq(calls, 1);
|
|
42
|
-
},
|
|
43
|
-
pathPrefixed: () => {
|
|
44
|
-
const nested = (k, v) => v < 0 ? error({ path: ['inner'], message: 'bad' }) : ok(v);
|
|
45
|
-
const r = eachEntry([['outer', -1]], nested, [], collect);
|
|
46
|
-
assert(r[0] === 'error');
|
|
47
|
-
assertEq(r[1].path.length, 2);
|
|
48
|
-
assertEq(r[1].path[0], 'outer');
|
|
49
|
-
assertEq(r[1].path[1], 'inner');
|
|
50
|
-
},
|
|
51
|
-
};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { type Includes } from '../array/module.f.ts';
|
|
2
|
-
import type { StringMap } from '../object/module.f.ts';
|
|
3
|
-
/** A constant schema: a primitive literal, a struct object, or a tuple. */
|
|
4
|
-
export type Const = null | boolean | number | string | undefined | bigint | {
|
|
5
|
-
readonly [K in string]: Type;
|
|
6
|
-
} | readonly Type[];
|
|
7
|
-
export type ConstObject = Struct | Tuple;
|
|
8
|
-
/** A struct schema: plain object whose values are nested `Type`s. */
|
|
9
|
-
export type Struct = StringMap<Type>;
|
|
10
|
-
/** A tuple schema: readonly array whose elements are nested `Type`s. */
|
|
11
|
-
export type Tuple = readonly Type[];
|
|
12
|
-
declare const primitive0List: readonly ['bigint', 'boolean', 'number', 'string'];
|
|
13
|
-
export type Primitive0 = typeof primitive0List[number];
|
|
14
|
-
export declare const tag0List: readonly ["bigint", "boolean", "number", "string", "unknown"];
|
|
15
|
-
/** Tags for nullary (zero-parameter) type schemas. */
|
|
16
|
-
export type Tag0 = typeof tag0List[number];
|
|
17
|
-
/** Info tuple for a nullary tag: `readonly[tag]`. */
|
|
18
|
-
export type Info0<T extends Tag0> = T extends Tag0 ? readonly [T] : never;
|
|
19
|
-
/** Any schema: a `Const` used directly, or a `Thunk` for tag-based/recursive schemas. */
|
|
20
|
-
export type Type = (() => (readonly ['const', Const] | readonly ['bigint'] | readonly ['boolean'] | readonly ['number'] | readonly ['string'] | readonly ['unknown'] | readonly ['array', Type] | readonly ['record', Type] | readonly ['or', ...readonly Type[]])) | Const;
|
|
21
|
-
/** The type of a nullary thunk for `Tag0`. */
|
|
22
|
-
type Type0<T extends Tag0> = () => Info0<T>;
|
|
23
|
-
/** Schema type for `boolean`. */
|
|
24
|
-
export type Boolean = Type0<'boolean'>;
|
|
25
|
-
/** Schema that validates `boolean` values. */
|
|
26
|
-
export declare const boolean: Boolean;
|
|
27
|
-
/** Schema type for `number`. */
|
|
28
|
-
export type Number = Type0<'number'>;
|
|
29
|
-
/** Schema that validates `number` values. */
|
|
30
|
-
export declare const number: Number;
|
|
31
|
-
/** Schema type for `string`. */
|
|
32
|
-
export type String = Type0<'string'>;
|
|
33
|
-
/** Schema that validates `string` values. */
|
|
34
|
-
export declare const string: String;
|
|
35
|
-
/** Schema type for `bigint`. */
|
|
36
|
-
export type Bigint = Type0<'bigint'>;
|
|
37
|
-
/** Schema that validates `bigint` values. */
|
|
38
|
-
export declare const bigint: Bigint;
|
|
39
|
-
/** Schema type for any DJS value (`Primitive | UnknownRecord | UnknownArray`). */
|
|
40
|
-
export type Unknown = Type0<'unknown'>;
|
|
41
|
-
/** Schema that validates any DJS-compatible value. */
|
|
42
|
-
export declare const unknown: Unknown;
|
|
43
|
-
declare const tag1List: readonly ['array', 'record'];
|
|
44
|
-
export declare const isTag1: Includes<string, typeof tag1List>;
|
|
45
|
-
/** Tags for unary (one-parameter) type schemas. */
|
|
46
|
-
export type Tag1 = typeof tag1List[number];
|
|
47
|
-
/** Info tuple for a unary tag: `readonly[tag, innerType]`. */
|
|
48
|
-
export type Info1<K extends Tag1, T extends Type> = K extends Tag1 ? readonly [K, T] : never;
|
|
49
|
-
/** The type of a unary thunk for `Tag1` with inner type `T`. */
|
|
50
|
-
export type Type1<K extends Tag1, T extends Type> = () => Info1<K, T>;
|
|
51
|
-
type MakeType1<K extends Tag1> = <T extends Type>(t: T) => Type1<K, T>;
|
|
52
|
-
/** Schema type for a readonly array with element type `T`. */
|
|
53
|
-
export type Array<T extends Type> = Type1<'array', T>;
|
|
54
|
-
/** Constructs a schema that validates `readonly Ts<T>[]`. */
|
|
55
|
-
export declare const array: MakeType1<'array'>;
|
|
56
|
-
/** Schema type for a record (index signature) with value type `T`. */
|
|
57
|
-
export type Record<T extends Type> = Type1<'record', T>;
|
|
58
|
-
/** Constructs a schema that validates `{ readonly[K in string]: Ts<T> }`. */
|
|
59
|
-
export declare const record: MakeType1<'record'>;
|
|
60
|
-
/** Schema type for a union of types `T`. */
|
|
61
|
-
export type Or<T extends readonly Type[]> = () => readonly ['or', ...T];
|
|
62
|
-
/**
|
|
63
|
-
* Constructs a schema that validates a value matching any of the given schemas.
|
|
64
|
-
*
|
|
65
|
-
* `or` is intentionally a lazy, allocation-free constructor: it captures its
|
|
66
|
-
* arguments in a thunk and does no flattening, deduplication, subset analysis,
|
|
67
|
-
* or canonical-form work. All such algebra lives on the serializable data form
|
|
68
|
-
* — see `issues/143-rtti-data.md`.
|
|
69
|
-
*/
|
|
70
|
-
export declare const or: <T extends readonly Type[]>(...types: T) => Or<T>;
|
|
71
|
-
/** Constructs a schema that validates a value matching `T` or `undefined`. */
|
|
72
|
-
export declare const option: <T extends Type>(t: T) => Or<readonly [T, undefined]>;
|
|
73
|
-
/** Schema that never matches any value — the empty union, corresponding to TypeScript's `never`. */
|
|
74
|
-
export declare const never: Or<readonly []>;
|
|
75
|
-
export {};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { includes } from '../array/module.f.js';
|
|
2
|
-
const primitive0List = ['bigint', 'boolean', 'number', 'string'];
|
|
3
|
-
export const tag0List = [...primitive0List, 'unknown'];
|
|
4
|
-
const type0 = (tag) => () => [tag];
|
|
5
|
-
/** Schema that validates `boolean` values. */
|
|
6
|
-
export const boolean = type0('boolean');
|
|
7
|
-
/** Schema that validates `number` values. */
|
|
8
|
-
export const number = type0('number');
|
|
9
|
-
/** Schema that validates `string` values. */
|
|
10
|
-
export const string = type0('string');
|
|
11
|
-
/** Schema that validates `bigint` values. */
|
|
12
|
-
export const bigint = type0('bigint');
|
|
13
|
-
/** Schema that validates any DJS-compatible value. */
|
|
14
|
-
export const unknown = type0('unknown');
|
|
15
|
-
const tag1List = ['array', 'record'];
|
|
16
|
-
export const isTag1 = includes(tag1List);
|
|
17
|
-
const type1 = (key) => t => () => [key, t];
|
|
18
|
-
/** Constructs a schema that validates `readonly Ts<T>[]`. */
|
|
19
|
-
export const array = type1('array');
|
|
20
|
-
/** Constructs a schema that validates `{ readonly[K in string]: Ts<T> }`. */
|
|
21
|
-
export const record = type1('record');
|
|
22
|
-
/**
|
|
23
|
-
* Constructs a schema that validates a value matching any of the given schemas.
|
|
24
|
-
*
|
|
25
|
-
* `or` is intentionally a lazy, allocation-free constructor: it captures its
|
|
26
|
-
* arguments in a thunk and does no flattening, deduplication, subset analysis,
|
|
27
|
-
* or canonical-form work. All such algebra lives on the serializable data form
|
|
28
|
-
* — see `issues/143-rtti-data.md`.
|
|
29
|
-
*/
|
|
30
|
-
export const or = (...types) => () => ['or', ...types];
|
|
31
|
-
/** Constructs a schema that validates a value matching `T` or `undefined`. */
|
|
32
|
-
export const option = (t) => or(t, undefined);
|
|
33
|
-
/** Schema that never matches any value — the empty union, corresponding to TypeScript's `never`. */
|
|
34
|
-
export const never = or();
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Runtime deserialization of unknown values against RTTI schemas.
|
|
3
|
-
*
|
|
4
|
-
* The main entry point is `parse(rtti)`, which takes a schema `Type` and returns
|
|
5
|
-
* a `Parse<T>` function. When called with an unknown value, it returns a `Result`
|
|
6
|
-
* that is either `['ok', newValue]` or `['error', { path, message }]`.
|
|
7
|
-
*
|
|
8
|
-
* Unlike `validate`, which checks an existing value in-place and returns it
|
|
9
|
-
* unchanged on success, `parse` always returns a freshly constructed value that
|
|
10
|
-
* contains only the fields/elements declared by the schema. This makes both
|
|
11
|
-
* structs and tuples effectively closed at runtime, matching the TypeScript
|
|
12
|
-
* type produced by `Ts<T>`:
|
|
13
|
-
*
|
|
14
|
-
* - Tuples: the result has exactly the schema's length; extra elements are dropped.
|
|
15
|
-
* - Structs: the result contains only the schema's keys; extra properties are dropped.
|
|
16
|
-
* - Arrays/records: every element/value is itself parsed, so a fresh container is
|
|
17
|
-
* always returned even if the inner type is a primitive.
|
|
18
|
-
*
|
|
19
|
-
* This also provides forward compatibility with extended serialization formats:
|
|
20
|
-
* a schema-based parser keeps working when newer versions of the format add
|
|
21
|
-
* extra fields or tuple elements.
|
|
22
|
-
*
|
|
23
|
-
* The error shape, path bookkeeping, primitive checks, and schema
|
|
24
|
-
* recognition (`visit`) are shared with `validate` through
|
|
25
|
-
* `../common/module.f.ts`; only container construction differs.
|
|
26
|
-
*
|
|
27
|
-
* @module
|
|
28
|
-
*/
|
|
29
|
-
import { type Type } from '../module.f.ts';
|
|
30
|
-
import { type Result as CommonValidateResult, type Validate } from '../common/module.f.ts';
|
|
31
|
-
export { type Path, type ValidationError } from '../common/module.f.ts';
|
|
32
|
-
/** Parse result: either the freshly constructed typed value or a `ValidationError`. */
|
|
33
|
-
export type Result<T extends Type> = CommonValidateResult<T>;
|
|
34
|
-
/** A function that parses an unknown value into the schema `T`. */
|
|
35
|
-
export type Parse<T extends Type> = Validate<T>;
|
|
36
|
-
export declare const parse: <T extends Type>(rtti: T) => Parse<T>;
|