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,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `vnd.fjs.revision` — one step in the evolution of a mutable object on top
|
|
3
|
-
* of an immutable content-addressable store.
|
|
4
|
-
*
|
|
5
|
-
* A revision BLOB links back to its parent revision(s) (a DAG, not just a
|
|
6
|
-
* chain, so concurrent edits can merge) and carries the full materialized
|
|
7
|
-
* content of that step — never an incremental diff (see the versioning rule
|
|
8
|
-
* in the README). This module is the pure format only: the rtti schema, the
|
|
9
|
-
* `dialect` tag, and decode/validate. No store access, no effects — head
|
|
10
|
-
* resolution, materialization, and reverse indexes are a separate, deferred
|
|
11
|
-
* concern.
|
|
12
|
-
*
|
|
13
|
-
* See `README.md` for the full spec.
|
|
14
|
-
*
|
|
15
|
-
* @module
|
|
16
|
-
*/
|
|
17
|
-
import { array, number, option, record, string } from '../../types/rtti/module.f.js';
|
|
18
|
-
import { validate as rttiValidate } from '../../types/rtti/validate/module.f.js';
|
|
19
|
-
import { parse as parseJson } from '../json/module.f.js';
|
|
20
|
-
import { cBase32ToVec } from '../../basen/cbase32/module.f.js';
|
|
21
|
-
import { error, ok } from '../../types/result/module.f.js';
|
|
22
|
-
import { dialectEntry } from '../module.f.js';
|
|
23
|
-
import { definedEntries, sort } from '../../types/object/module.f.js';
|
|
24
|
-
import { stringify } from '../json/module.f.js';
|
|
25
|
-
/**
|
|
26
|
-
* Format tag: names the dialect of this BLOB. The media type it is served
|
|
27
|
-
* with is derived mechanically: `application/` + `dialect` + `+json`.
|
|
28
|
-
*/
|
|
29
|
-
export const dialect = 'vnd.fjs.revision';
|
|
30
|
-
/** The media type derived from {@link dialect}: `application/vnd.fjs.revision+json`. */
|
|
31
|
-
export const mediaType = `application/${dialect}+json`;
|
|
32
|
-
/**
|
|
33
|
-
* rtti schema for the snapshot-reference type: a cbase32 CAS hash string.
|
|
34
|
-
*
|
|
35
|
-
* This is `string` at the rtti (structural) level — rtti schemas can't
|
|
36
|
-
* express string-content refinements — so cbase32 decodability, and the
|
|
37
|
-
* rejection of `https://` bridge URLs and any other location-addressed
|
|
38
|
-
* reference form, is enforced by {@link isHash} / {@link validate} below,
|
|
39
|
-
* not by this schema on its own.
|
|
40
|
-
*/
|
|
41
|
-
export const hash = string;
|
|
42
|
-
/** Structural schema for a Stage 1 flat lock map. */
|
|
43
|
-
const lock = record(string);
|
|
44
|
-
/**
|
|
45
|
-
* rtti schema for a `revision` BLOB. See the README for the full semantics of
|
|
46
|
-
* each field; `dialect` is the type discriminant, matched here as an exact
|
|
47
|
-
* literal so structural validation alone rejects any other dialect's blob.
|
|
48
|
-
*/
|
|
49
|
-
export const revisionSchema = {
|
|
50
|
-
dialect,
|
|
51
|
-
subject: string,
|
|
52
|
-
parents: array(hash),
|
|
53
|
-
snapshot: hash,
|
|
54
|
-
generation: number,
|
|
55
|
-
archived: option(true),
|
|
56
|
-
lock: option(lock),
|
|
57
|
-
};
|
|
58
|
-
/** Serializes a revision canonically, recursively sorting every object's property names. */
|
|
59
|
-
export const encodeText = stringify(sort);
|
|
60
|
-
/** Structural-only validator: checks the shape, not the hash / generation semantics. */
|
|
61
|
-
const validateShape = rttiValidate(revisionSchema);
|
|
62
|
-
/** True when `s` decodes as a cbase32 CAS hash (rejects `https://` and any other non-cbase32 string). */
|
|
63
|
-
export const isHash = (s) => cBase32ToVec(s) !== null;
|
|
64
|
-
/**
|
|
65
|
-
* Checks the semantic refinements the structural schema can't express on an
|
|
66
|
-
* already shape-valid revision: every `parents` entry and the `snapshot` must
|
|
67
|
-
* decode as a cbase32 hash ({@link isHash}), and `generation` must be a
|
|
68
|
-
* non-negative *safe* integer. `subject` is not checked — it is an identity
|
|
69
|
-
* string, never a snapshot reference, so any string is valid.
|
|
70
|
-
*
|
|
71
|
-
* `generation` uses `Number.isSafeInteger`, not `Number.isInteger`: a value at
|
|
72
|
-
* or above `2 ** 53` passes `isInteger` but is no longer uniquely
|
|
73
|
-
* representable, so `1 + max(parents' generations)` — how a writer derives the
|
|
74
|
-
* next generation — can round back to the parent's value and fail to advance.
|
|
75
|
-
* Rejecting unsafe integers keeps stored generations exact.
|
|
76
|
-
*
|
|
77
|
-
* Both `snapshot` and `generation` are required by the schema, so no absence
|
|
78
|
-
* ever has to be resolved here: a revision states its content and its
|
|
79
|
-
* generation explicitly, and is fully interpretable in isolation (see the
|
|
80
|
-
* README). The former snapshot-resolution algorithm (subject-as-fallback,
|
|
81
|
-
* single-parent inheritance, multi-parent rejection) is gone.
|
|
82
|
-
*
|
|
83
|
-
* Exported separately from {@link validate} for callers that assemble a
|
|
84
|
-
* `Revision` themselves from already-typed fields (e.g. `fjs/cas/evo`'s
|
|
85
|
-
* `addRevision`): the shape is then guaranteed by TypeScript already, so only
|
|
86
|
-
* these semantic (string-only error) checks are worth re-running — routing
|
|
87
|
-
* through the combined structural-plus-semantic `validate` would add an
|
|
88
|
-
* unreachable structural-error branch on the caller's side.
|
|
89
|
-
*/
|
|
90
|
-
export const checkReferences = (r) => {
|
|
91
|
-
for (const p of r.parents) {
|
|
92
|
-
if (!isHash(p)) {
|
|
93
|
-
return error(`parent is not a valid hash: ${p}`);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
if (!isHash(r.snapshot)) {
|
|
97
|
-
return error(`snapshot is not a valid hash: ${r.snapshot}`);
|
|
98
|
-
}
|
|
99
|
-
for (const [subject, snapshot] of definedEntries(r.lock ?? {})) {
|
|
100
|
-
if (!isHash(snapshot)) {
|
|
101
|
-
return error(`lock value for ${subject} is not a valid hash: ${snapshot}`);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (!Number.isSafeInteger(r.generation) || r.generation < 0) {
|
|
105
|
-
return error(`generation must be a non-negative safe integer: ${r.generation}`);
|
|
106
|
-
}
|
|
107
|
-
return ok(r);
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Validates an already-parsed JSON value as a `revision` BLOB: structural
|
|
111
|
-
* (rtti) validation followed by the hash / generation semantic checks.
|
|
112
|
-
*/
|
|
113
|
-
export const validate = (value) => {
|
|
114
|
-
const [t, v] = validateShape(value);
|
|
115
|
-
if (t === 'error') {
|
|
116
|
-
return error(v);
|
|
117
|
-
}
|
|
118
|
-
return checkReferences(v);
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* Decodes `text` as a `revision` BLOB: JSON-parses it, then validates it per
|
|
122
|
-
* {@link validate}. Detection is semantic, not syntactic — any JSON that
|
|
123
|
-
* satisfies the schema is a revision, regardless of key order or whitespace.
|
|
124
|
-
*/
|
|
125
|
-
export const decodeText = (text) => {
|
|
126
|
-
const [t, v] = parseJson(text);
|
|
127
|
-
if (t === 'error') {
|
|
128
|
-
return error(v);
|
|
129
|
-
}
|
|
130
|
-
return validate(v);
|
|
131
|
-
};
|
|
132
|
-
/** {@link checkReferences} as the `boolean` refinement a {@link DialectEntry} takes. */
|
|
133
|
-
const isValidRevision = (r) => {
|
|
134
|
-
const [tag] = checkReferences(r);
|
|
135
|
-
return tag === 'ok';
|
|
136
|
-
};
|
|
137
|
-
/**
|
|
138
|
-
* This dialect as a registry entry for `fjs/media`'s `detect`. It carries the
|
|
139
|
-
* semantic checks too, so a blob is detected as `vnd.fjs.revision` exactly when
|
|
140
|
-
* {@link decodeText} would accept it — a structurally valid revision whose
|
|
141
|
-
* `snapshot` is not a cbase32 hash is not one.
|
|
142
|
-
*/
|
|
143
|
-
export const revisionDialect = dialectEntry(revisionSchema, isValidRevision);
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { assert, assertEq } from '../../asserts/module.f.js';
|
|
2
|
-
import { dialect, mediaType, isHash, validate, decodeText, encodeText } from './module.f.js';
|
|
3
|
-
// Valid cbase32 hashes (round-tripped in fjs/basen/cbase32/proof.f.ts): single
|
|
4
|
-
// cbase32 symbols, cheap to write inline here.
|
|
5
|
-
const h1 = '8';
|
|
6
|
-
const h2 = 'r';
|
|
7
|
-
// `I` is accepted as an alias spelling of canonical cBase32 `1`.
|
|
8
|
-
const alias = 'I';
|
|
9
|
-
const _lockMapAllowsMissingSubjects = {};
|
|
10
|
-
// A shape-valid revision: every required field present (`snapshot` and
|
|
11
|
-
// `generation` included), with `extra` overriding or adding fields per test.
|
|
12
|
-
const revisionOf = (extra) => ({
|
|
13
|
-
dialect,
|
|
14
|
-
subject: h1,
|
|
15
|
-
parents: [],
|
|
16
|
-
snapshot: h2,
|
|
17
|
-
generation: 0,
|
|
18
|
-
...extra,
|
|
19
|
-
});
|
|
20
|
-
export const proof = {
|
|
21
|
-
dialectAndMediaType: () => {
|
|
22
|
-
assertEq(dialect, 'vnd.fjs.revision');
|
|
23
|
-
assertEq(mediaType, 'application/vnd.fjs.revision+json');
|
|
24
|
-
},
|
|
25
|
-
isHash: {
|
|
26
|
-
validHash: () => assert(isHash(h1)),
|
|
27
|
-
httpsRejected: () => assert(!isHash('https://example.com/blob/abc')),
|
|
28
|
-
arbitraryStringRejected: () => assert(!isHash('not-a-hash!')),
|
|
29
|
-
},
|
|
30
|
-
validate: {
|
|
31
|
-
// A fully explicit revision validates.
|
|
32
|
-
allFieldsPresent: () => {
|
|
33
|
-
const [t] = validate(revisionOf({}));
|
|
34
|
-
assertEq(t, 'ok');
|
|
35
|
-
},
|
|
36
|
-
// `subject` is a pure identity string, never a snapshot reference: a
|
|
37
|
-
// zero-parent revision whose `subject` is not a hash is now valid,
|
|
38
|
-
// because `snapshot` is always stated explicitly.
|
|
39
|
-
nonHashSubjectAccepted: () => {
|
|
40
|
-
const r = validate(revisionOf({ subject: 'my-config' }));
|
|
41
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
42
|
-
assertEq(r[1].subject, 'my-config');
|
|
43
|
-
},
|
|
44
|
-
// A merge revision (more than one parent) is valid like any other —
|
|
45
|
-
// there is no "multiple parents without snapshot" case left, because
|
|
46
|
-
// `snapshot` is required.
|
|
47
|
-
multiParentAccepted: () => {
|
|
48
|
-
const r = validate(revisionOf({ subject: 'my-config', parents: [h1, h2], snapshot: h2 }));
|
|
49
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
50
|
-
assertEq(r[1].snapshot, h2);
|
|
51
|
-
},
|
|
52
|
-
// `snapshot` is required: absent is a shape error.
|
|
53
|
-
missingSnapshotRejected: () => {
|
|
54
|
-
const [t] = validate({ dialect, subject: h1, parents: [], generation: 0 });
|
|
55
|
-
assertEq(t, 'error');
|
|
56
|
-
},
|
|
57
|
-
// `snapshot` must decode as a hash — `https://` bridge URLs rejected.
|
|
58
|
-
nonHashSnapshotRejected: () => {
|
|
59
|
-
const [t] = validate(revisionOf({ snapshot: 'https://example.com/x' }));
|
|
60
|
-
assertEq(t, 'error');
|
|
61
|
-
},
|
|
62
|
-
// `generation` is required: absent is a shape error.
|
|
63
|
-
missingGenerationRejected: () => {
|
|
64
|
-
const [t] = validate({ dialect, subject: h1, parents: [], snapshot: h2 });
|
|
65
|
-
assertEq(t, 'error');
|
|
66
|
-
},
|
|
67
|
-
// `generation` must be an integer: a fractional value is rejected.
|
|
68
|
-
nonIntegerGenerationRejected: () => {
|
|
69
|
-
const [t] = validate(revisionOf({ generation: 1.5 }));
|
|
70
|
-
assertEq(t, 'error');
|
|
71
|
-
},
|
|
72
|
-
// `generation` must be non-negative.
|
|
73
|
-
negativeGenerationRejected: () => {
|
|
74
|
-
const [t] = validate(revisionOf({ generation: -1 }));
|
|
75
|
-
assertEq(t, 'error');
|
|
76
|
-
},
|
|
77
|
-
// `generation` must be a *safe* integer: at `2 ** 53` and above the
|
|
78
|
-
// value is no longer uniquely representable, so `1 + max(...)` could
|
|
79
|
-
// fail to advance — such a blob is rejected (`Number.isInteger` would
|
|
80
|
-
// accept it; `Number.isSafeInteger` does not).
|
|
81
|
-
unsafeIntegerGenerationRejected: () => {
|
|
82
|
-
const [t] = validate(revisionOf({ generation: 2 ** 53 }));
|
|
83
|
-
assertEq(t, 'error');
|
|
84
|
-
},
|
|
85
|
-
// A positive integer generation is accepted.
|
|
86
|
-
positiveGenerationAccepted: () => {
|
|
87
|
-
const r = validate(revisionOf({ parents: [h1], generation: 3 }));
|
|
88
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
89
|
-
assertEq(r[1].generation, 3);
|
|
90
|
-
},
|
|
91
|
-
// `https://` bridge URLs are rejected wherever a hash is required.
|
|
92
|
-
httpsRejectedInParents: () => {
|
|
93
|
-
const [t] = validate(revisionOf({ parents: ['https://example.com/x'] }));
|
|
94
|
-
assertEq(t, 'error');
|
|
95
|
-
},
|
|
96
|
-
// `archived` follows the presence-only `option(true)` idiom.
|
|
97
|
-
archivedAccepted: () => {
|
|
98
|
-
const [t] = validate(revisionOf({ archived: true }));
|
|
99
|
-
assertEq(t, 'ok');
|
|
100
|
-
},
|
|
101
|
-
lockAbsentAccepted: () => {
|
|
102
|
-
const r = validate(revisionOf({}));
|
|
103
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
104
|
-
assertEq(r[1].lock, undefined);
|
|
105
|
-
},
|
|
106
|
-
emptyLockAccepted: () => {
|
|
107
|
-
const r = validate(revisionOf({ lock: {} }));
|
|
108
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
109
|
-
assertEq(Object.keys(r[1].lock ?? {}).length, 0);
|
|
110
|
-
},
|
|
111
|
-
validLockAccepted: () => {
|
|
112
|
-
const [t] = validate(revisionOf({ lock: { dependency: h1 } }));
|
|
113
|
-
assertEq(t, 'ok');
|
|
114
|
-
},
|
|
115
|
-
malformedLockRejected: () => {
|
|
116
|
-
const [t] = validate(revisionOf({ lock: { dependency: 1 } }));
|
|
117
|
-
assertEq(t, 'error');
|
|
118
|
-
},
|
|
119
|
-
invalidHashLockRejected: () => {
|
|
120
|
-
const [t] = validate(revisionOf({ lock: { dependency: 'https://example.com/x' } }));
|
|
121
|
-
assertEq(t, 'error');
|
|
122
|
-
},
|
|
123
|
-
aliasHashLockAccepted: () => {
|
|
124
|
-
const [t] = validate(revisionOf({ lock: { dependency: alias } }));
|
|
125
|
-
assertEq(t, 'ok');
|
|
126
|
-
},
|
|
127
|
-
// Wrong dialect tag: structural validation rejects it outright.
|
|
128
|
-
wrongDialectRejected: () => {
|
|
129
|
-
const [t] = validate({ dialect: 'vnd.fjs.other', subject: h1, parents: [], snapshot: h2, generation: 0 });
|
|
130
|
-
assertEq(t, 'error');
|
|
131
|
-
},
|
|
132
|
-
// Missing required fields: rejected.
|
|
133
|
-
missingSubjectRejected: () => {
|
|
134
|
-
const [t] = validate({ dialect, parents: [], snapshot: h2, generation: 0 });
|
|
135
|
-
assertEq(t, 'error');
|
|
136
|
-
},
|
|
137
|
-
// rtti structs are open: extra fields don't break validation — the
|
|
138
|
-
// additive forward-compatibility path the versioning rule relies on.
|
|
139
|
-
extraFieldsAccepted: () => {
|
|
140
|
-
const [t] = validate(revisionOf({ future: 'field' }));
|
|
141
|
-
assertEq(t, 'ok');
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
decodeText: {
|
|
145
|
-
validJson: () => {
|
|
146
|
-
const r = decodeText(JSON.stringify(revisionOf({})));
|
|
147
|
-
assert(r[0] === 'ok', ['expected ok', r]);
|
|
148
|
-
assertEq(r[1].subject, h1);
|
|
149
|
-
},
|
|
150
|
-
// Key order carries no meaning: detection parses the JSON and
|
|
151
|
-
// validates the parsed value, so `dialect` need not be first.
|
|
152
|
-
keyOrderIndependent: () => {
|
|
153
|
-
const text = `{"generation":0,"snapshot":"${h2}","parents":[],"subject":"${h1}","dialect":"${dialect}"}`;
|
|
154
|
-
const [t] = decodeText(text);
|
|
155
|
-
assertEq(t, 'ok');
|
|
156
|
-
},
|
|
157
|
-
malformedJsonRejected: () => {
|
|
158
|
-
const [t] = decodeText('{not json');
|
|
159
|
-
assertEq(t, 'error');
|
|
160
|
-
},
|
|
161
|
-
// Ordinary JSON that isn't a revision at all falls through as an error
|
|
162
|
-
// here — `fjs/media`'s composed detector is what falls back to the
|
|
163
|
-
// ordinary detector; this module only reports validity.
|
|
164
|
-
ordinaryJsonRejected: () => {
|
|
165
|
-
const [t] = decodeText('{"hello":"world"}');
|
|
166
|
-
assertEq(t, 'error');
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
encodeText: {
|
|
170
|
-
recursivelySortsObjectsLexicographically: () => {
|
|
171
|
-
const revision = revisionOf({ lock: { '2': h2, '10': h1 } });
|
|
172
|
-
const decoded = validate(revision);
|
|
173
|
-
assert(decoded[0] === 'ok', ['expected ok', decoded]);
|
|
174
|
-
assertEq(encodeText(decoded[1]), `{"dialect":"${dialect}","generation":0,"lock":{"10":"${h1}","2":"${h2}"},"parents":[],"snapshot":"${h2}","subject":"${h1}"}`);
|
|
175
|
-
},
|
|
176
|
-
preservesArrayOrder: () => {
|
|
177
|
-
const decoded = validate(revisionOf({ parents: [h2, h1] }));
|
|
178
|
-
assert(decoded[0] === 'ok', ['expected ok', decoded]);
|
|
179
|
-
assert(encodeText(decoded[1]).includes(`"parents":["${h2}","${h1}"]`));
|
|
180
|
-
},
|
|
181
|
-
parsedEquivalentSourcesConverge: () => {
|
|
182
|
-
const a = decodeText(` { "subject":"${h1}", "snapshot":"${h2}", "parents":[], "generation":0, "dialect":"${dialect}" } `);
|
|
183
|
-
const b = decodeText(`{"dialect":"${dialect}","generation":0,"parents":[],"snapshot":"${h2}","subject":"${h1}"}`);
|
|
184
|
-
assert(a[0] === 'ok', ['expected ok', a]);
|
|
185
|
-
assert(b[0] === 'ok', ['expected ok', b]);
|
|
186
|
-
assertEq(encodeText(a[1]), encodeText(b[1]));
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
};
|
|
190
|
-
void _lockMapAllowsMissingSubjects;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Magic-byte MIME type detection.
|
|
3
|
-
*
|
|
4
|
-
* `detect` is a pure table lookup over the leading bytes of a `Vec`: it returns a
|
|
5
|
-
* MIME type string for the container formats whose signatures it knows, or `null`
|
|
6
|
-
* for anything else — text, unknown binary, or a `Vec` too short to match.
|
|
7
|
-
*
|
|
8
|
-
* Beside it, `detectStream` is the **streaming counterpart**: a byte-accepting
|
|
9
|
-
* state machine (length × magic-byte eliminator × UTF-8 validity DFA) that derives
|
|
10
|
-
* `{ length, mime_type, type }` by folding a CAS read stream in O(1) space, without
|
|
11
|
-
* ever buffering the blob into a single `maxLength`-bounded `Vec`. See the README
|
|
12
|
-
* for the factored design.
|
|
13
|
-
*
|
|
14
|
-
* The CAS store is type-agnostic and keeps raw bytes only, so type is never
|
|
15
|
-
* stored; it is recovered on read by sniffing the content. Callers decide what
|
|
16
|
-
* `null` means: the CAS MCP adapter falls back to a plain text result.
|
|
17
|
-
*
|
|
18
|
-
* ## Recognised signatures
|
|
19
|
-
*
|
|
20
|
-
* | MIME type | Leading bytes |
|
|
21
|
-
* |-------------------|----------------------------------------|
|
|
22
|
-
* | `image/png` | `89 50 4E 47 0D 0A 1A 0A` |
|
|
23
|
-
* | `image/jpeg` | `FF D8 FF` |
|
|
24
|
-
* | `image/gif` | `47 49 46 38 37 61` / `…39 61` (`"GIF87a"` / `"GIF89a"`) |
|
|
25
|
-
* | `image/webp` | `52 49 46 46 .. .. .. .. 57 45 42 50` (`"RIFF"…"WEBP"`) |
|
|
26
|
-
* | `application/pdf` | `25 50 44 46 2D` (`"%PDF-"`) |
|
|
27
|
-
* | `application/zip` | `50 4B 03 04` / `05 06` / `07 08` (`"PK"` entry, empty, or spanned) |
|
|
28
|
-
*
|
|
29
|
-
* WebP is the one signature with a gap: the four-byte little-endian file size
|
|
30
|
-
* sits between the `RIFF` and `WEBP` markers, so it is matched as a prefix plus
|
|
31
|
-
* a second marker at byte offset 8 rather than a single contiguous run.
|
|
32
|
-
*
|
|
33
|
-
* @module
|
|
34
|
-
*/
|
|
35
|
-
import { type Vec } from '../../types/bit_vec/module.f.ts';
|
|
36
|
-
import type { Nullable } from '../../types/nullable/module.f.ts';
|
|
37
|
-
import { type Effect, type Operation } from '../../effects/module.f.ts';
|
|
38
|
-
import type { List } from '../../effects/list/module.f.ts';
|
|
39
|
-
import type { IoResult } from '../../effects/node/module.f.ts';
|
|
40
|
-
import { type Utf8State } from '../../text/utf8/module.f.ts';
|
|
41
|
-
/**
|
|
42
|
-
* Detects the MIME type of `bytes` from its leading magic-byte signature.
|
|
43
|
-
*
|
|
44
|
-
* @returns the MIME type string for a recognized format, or `null` when the
|
|
45
|
-
* leading bytes match no known signature (including any `Vec` shorter than
|
|
46
|
-
* the signature it might otherwise match).
|
|
47
|
-
*/
|
|
48
|
-
export declare const detect: (bytes: Vec) => Nullable<string>;
|
|
49
|
-
/**
|
|
50
|
-
* A magic-byte signature as a byte pattern. `null` entries are wildcards (the
|
|
51
|
-
* four little-endian size bytes of WebP, between its `RIFF` and `WEBP` markers).
|
|
52
|
-
*/
|
|
53
|
-
type Signature = {
|
|
54
|
-
readonly pattern: readonly Nullable<number>[];
|
|
55
|
-
readonly mime: string;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* `A_magic`: signature elimination. `scan` holds the byte offset and the still-viable
|
|
59
|
-
* signatures; a fully matched signature absorbs into `matched`, an empty viable set
|
|
60
|
-
* into `dead`. Settles within 12 bytes — `matched`/`dead` are absorbing.
|
|
61
|
-
*/
|
|
62
|
-
type MagicState = {
|
|
63
|
-
readonly tag: 'scan';
|
|
64
|
-
readonly pos: number;
|
|
65
|
-
readonly viable: readonly Signature[];
|
|
66
|
-
} | {
|
|
67
|
-
readonly tag: 'matched';
|
|
68
|
-
readonly mime: string;
|
|
69
|
-
} | {
|
|
70
|
-
readonly tag: 'dead';
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* `A_utf8`: a streaming UTF-8 validity-and-text check riding the shared
|
|
74
|
-
* `utf8ByteToCodePointOp` decoder. `st` is the decoder's mid-sequence state;
|
|
75
|
-
* `valid` is `false` once an illegal byte, surrogate, or out-of-range code point
|
|
76
|
-
* is seen — `valid: false` is absorbing. A non-null `st` at EOF (a truncated
|
|
77
|
-
* multi-byte sequence) is invalid. `text` is the orthogonal text-ness verdict: it
|
|
78
|
-
* is `false` once a non-text (control) code point is decoded, even though that
|
|
79
|
-
* code point is perfectly well-formed UTF-8 — `text: false` is absorbing too.
|
|
80
|
-
* Keeping the two distinct lets a valid-but-control blob (e.g. NUL) decode
|
|
81
|
-
* cleanly yet still classify as binary.
|
|
82
|
-
*/
|
|
83
|
-
type Utf8Detect = {
|
|
84
|
-
readonly st: Utf8State;
|
|
85
|
-
readonly valid: boolean;
|
|
86
|
-
readonly text: boolean;
|
|
87
|
-
};
|
|
88
|
-
/**
|
|
89
|
-
* The product state: running bit length × magic eliminator × UTF-8 validator.
|
|
90
|
-
* The factors never read each other; they meet only in {@link finish}.
|
|
91
|
-
*/
|
|
92
|
-
export type DetectState = {
|
|
93
|
-
readonly length: bigint;
|
|
94
|
-
readonly magic: MagicState;
|
|
95
|
-
readonly utf8: Utf8Detect;
|
|
96
|
-
};
|
|
97
|
-
/** The initial detector state `q₀`. */
|
|
98
|
-
export declare const detectInit: DetectState;
|
|
99
|
-
/**
|
|
100
|
-
* Folds one `Vec` chunk into the detector state (`δ` over a whole chunk). Length
|
|
101
|
-
* always advances by the chunk's bit length; per-byte iteration stops as soon as
|
|
102
|
-
* the verdict is fixed (see {@link isSettled}), so large blobs — including large
|
|
103
|
-
* magic-matched ones — cost ≈ length counting.
|
|
104
|
-
*/
|
|
105
|
-
export declare const push: (s: DetectState) => (chunk: Vec) => DetectState;
|
|
106
|
-
/** The metadata read off the detector at end-of-stream. */
|
|
107
|
-
export type DetectMeta = {
|
|
108
|
-
readonly length: bigint;
|
|
109
|
-
readonly mime_type: string;
|
|
110
|
-
readonly type: 'text' | 'base64';
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Reads the answer off the final state (`λ`). Reproduces the three-way result of
|
|
114
|
-
* the pure path: magic hit → `base64` + detected mime; else whole-blob-valid UTF-8
|
|
115
|
-
* that is also all-text (byte-aligned, no invalidity, no control bytes) → `text` +
|
|
116
|
-
* `text/plain`; else → `base64` + `application/octet-stream`. A valid-but-control
|
|
117
|
-
* blob (NUL, other controls) is well-formed UTF-8 yet falls through to the binary
|
|
118
|
-
* branch.
|
|
119
|
-
*/
|
|
120
|
-
export declare const finish: (s: DetectState) => DetectMeta;
|
|
121
|
-
/**
|
|
122
|
-
* Classifies a whole `Vec` with the same state machine as {@link detectStream}.
|
|
123
|
-
* The single-buffer counterpart for callers that already hold the bytes (the
|
|
124
|
-
* `cas_get` `content: true` path materializes the blob anyway): both paths read
|
|
125
|
-
* the three-way `{ length, mime_type, type }` verdict from one machine instead of
|
|
126
|
-
* re-deriving it from `detect` + a separate UTF-8 check.
|
|
127
|
-
*/
|
|
128
|
-
export declare const detectVec: (bytes: Vec) => DetectMeta;
|
|
129
|
-
/**
|
|
130
|
-
* Folds a CAS read stream through {@link push} and reads {@link finish} at EOF,
|
|
131
|
-
* deriving `cas_get` metadata without ever materializing the blob. A read `error`
|
|
132
|
-
* item short-circuits into the `IoResult` error.
|
|
133
|
-
*/
|
|
134
|
-
export declare const detectStream: <O extends Operation>(stream: List<O, IoResult<Vec>>) => Effect<O, IoResult<DetectMeta>>;
|
|
135
|
-
export {};
|