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
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UTF-16 utilities: convert between strings, UTF-16 code units, and Unicode
|
|
3
|
+
* code points, including surrogate-pair encoding/decoding via streaming
|
|
4
|
+
* `stateScan` operations.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
import type { List, Thunk } from '../../types/list/types.ts';
|
|
9
|
+
export type _Utf16State = number | null;
|
|
10
|
+
import type { CodePoint, U16 } from './types.ts';
|
|
11
|
+
/**
|
|
12
|
+
* Converts a UTF-16 sequence to its corresponding Unicode code points.
|
|
13
|
+
*
|
|
14
|
+
* This function handles:
|
|
15
|
+
* 1. Single U16 values in the Basic Multilingual Plane (BMP) [0x0000–0xFFFF].
|
|
16
|
+
* 2. Surrogate pairs representing code points in the Supplementary Plane [0x10000–0x10FFFF].
|
|
17
|
+
* 3. Invalid input sequences by applying an error mask to the resulting code point.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const exampleUtf16: List<U16> = [
|
|
23
|
+
* 0x0041, // 'A' (BMP, single U16)
|
|
24
|
+
* 0xD83D, 0xDE00, // 😀 (Emoji, surrogate pair)
|
|
25
|
+
* 0xD800, // Unpaired high surrogate
|
|
26
|
+
* 0xDC00, // Unpaired low surrogate
|
|
27
|
+
* ]
|
|
28
|
+
*
|
|
29
|
+
* const codePoints = toCodePointList(exampleUtf16)
|
|
30
|
+
* codePoints.forEach((codePoint) => {
|
|
31
|
+
* if (codePoint & errorMask) {
|
|
32
|
+
* console.log(`Invalid sequence detected: ${codePoint.toString(16).toUpperCase()}`)
|
|
33
|
+
* } else {
|
|
34
|
+
* console.log(`Code Point: U+${codePoint.toString(16).toUpperCase()}`)
|
|
35
|
+
* }
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @type {(input: List<CodePoint>) => Thunk<U16>}
|
|
40
|
+
*/
|
|
41
|
+
export declare const fromCodePointList: (input: List<CodePoint>) => Thunk<U16>;
|
|
42
|
+
/**
|
|
43
|
+
* Converts a list of UTF-16 code units to a list of Unicode code points (CodePoint).
|
|
44
|
+
* This function processes each UTF-16 code unit, decoding them into their corresponding Unicode code points.
|
|
45
|
+
* The input list of `U16` values may represent characters in the Basic Multilingual Plane (BMP) or supplementary planes,
|
|
46
|
+
* with surrogate pairs handled correctly. The function also handles EOF (`null`).
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
*
|
|
50
|
+
* ```ts
|
|
51
|
+
* const utf16List: List<U16> = [0x0041, 0xD83D, 0xDE00] // 'A' and 😀 (surrogate pair)
|
|
52
|
+
* const codePoints = toCodePointList(utf16List)
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @type {(input: List<U16>) => List<CodePoint>}
|
|
56
|
+
*/
|
|
57
|
+
export declare const toCodePointList: (input: List<U16>) => List<CodePoint>;
|
|
58
|
+
/**
|
|
59
|
+
* Converts a string to a list of UTF-16 code units (U16).
|
|
60
|
+
*
|
|
61
|
+
* This function processes each character in the input string and converts it to its corresponding UTF-16 code unit(s).
|
|
62
|
+
* Characters in the Basic Multilingual Plane (BMP) will produce a single `U16`, while supplementary plane characters
|
|
63
|
+
* (those requiring surrogate pairs) will produce two `U16` values.
|
|
64
|
+
* @param {string} s - The input string to convert to UTF-16 code units.
|
|
65
|
+
* @returns {List<U16>} A list of UTF-16 code units (`U16`) representing the string.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
*
|
|
69
|
+
* ```js
|
|
70
|
+
* const inputString = "Hello, 😀"
|
|
71
|
+
* const utf16List = stringToList(inputString)
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare const stringToList: (s: string) => List<U16>;
|
|
75
|
+
/**
|
|
76
|
+
* Converts a string to a list of Unicode code points (CodePoint).
|
|
77
|
+
* This function first converts the string to a list of UTF-16 code units (U16) using `stringToList`,
|
|
78
|
+
* then it converts the UTF-16 code units to Unicode code points using `toCodePointList`. This is useful for handling
|
|
79
|
+
* Unicode characters, including supplementary characters represented by surrogate pairs in UTF-16.
|
|
80
|
+
*
|
|
81
|
+
* @param {string} input - The input string to convert.
|
|
82
|
+
* @returns {List<CodePoint>} A list of Unicode code points (`CodePoint`) corresponding to the characters in the string.
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
*
|
|
86
|
+
* ```js
|
|
87
|
+
* const inputString = "Hello, 😀"
|
|
88
|
+
* const codePoints = stringToCodePointList(inputString)
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export declare const stringToCodePointList: (input: string) => List<CodePoint>;
|
|
92
|
+
/**
|
|
93
|
+
* Converts a list of UTF-16 code units (U16) to a string.
|
|
94
|
+
* This function takes a list of `U16` values (UTF-16 code units) and reconstructs the original string by mapping
|
|
95
|
+
* each code unit back to its character using `String.fromCharCode`. The resulting characters are concatenated
|
|
96
|
+
* to form the final string.
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
*
|
|
100
|
+
* ```ts
|
|
101
|
+
* const utf16List: List<U16> = [0x0041, 0x0042, 0x0043] // 'ABC'
|
|
102
|
+
* const outputString = listToString(utf16List)
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @type {(input: List<U16>) => string}
|
|
106
|
+
*/
|
|
107
|
+
export declare const listToString: (input: List<U16>) => string;
|
|
108
|
+
/**
|
|
109
|
+
* Converts a list of Unicode code points (CodePoint) to a string.
|
|
110
|
+
* This function first converts the list of Unicode code points to a list of UTF-16 code units using `fromCodePointList`,
|
|
111
|
+
* then it uses `listToString` to reconstruct the string from the UTF-16 code units.
|
|
112
|
+
*
|
|
113
|
+
* @param {List<CodePoint>} input - A list of Unicode code points (`CodePoint`).
|
|
114
|
+
* @returns {string} A string representing the characters encoded by the input code points.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
*
|
|
118
|
+
* ```ts
|
|
119
|
+
* const codePoints: List<CodePoint> = [0x48, 0x65, 0x6C, 0x6C, 0x6F]
|
|
120
|
+
* const outputString = codePointListToString(codePoints)
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare const codePointListToString: (input: List<CodePoint>) => string;
|
|
124
|
+
/**
|
|
125
|
+
* Converts a single Unicode code point to a string — the scalar counterpart of
|
|
126
|
+
* {@link codePointListToString}, for callers that hold one code point rather
|
|
127
|
+
* than a list of them and would otherwise wrap it in a single-element list.
|
|
128
|
+
*
|
|
129
|
+
* Input outside the assignable range — a surrogate, a value above
|
|
130
|
+
* `0x10FFFF`, or a negative one — is truncated to its low 16 bits and encoded
|
|
131
|
+
* as that code unit, rather than rejected. This matches
|
|
132
|
+
* {@link codePointListToString}, which reports malformed input through the
|
|
133
|
+
* decoder's `errorMask` on the way *in* rather than through a failure on the
|
|
134
|
+
* way out.
|
|
135
|
+
*
|
|
136
|
+
* @param {CodePoint} codePoint - A Unicode code point (`CodePoint`).
|
|
137
|
+
* @returns {string} The one- or two-code-unit string encoding it.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
*
|
|
141
|
+
* ```ts
|
|
142
|
+
* codePointToString(0x48) // 'H'
|
|
143
|
+
* codePointToString(0x1F600) // the 😀 surrogate pair
|
|
144
|
+
* codePointToString(0x110000) // '\u0000' — out of range, low 16 bits kept
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare const codePointToString: (codePoint: CodePoint) => string;
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UTF-16 utilities: convert between strings, UTF-16 code units, and Unicode
|
|
3
|
+
* code points, including surrogate-pair encoding/decoding via streaming
|
|
4
|
+
* `stateScan` operations.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
map,
|
|
11
|
+
reduce,
|
|
12
|
+
flatMap,
|
|
13
|
+
empty,
|
|
14
|
+
} from '../../types/list/module.f.mjs'
|
|
15
|
+
/** @import { List, Result, Thunk } from '../../types/list/types.ts' */
|
|
16
|
+
|
|
17
|
+
import { concat } from '../../types/function/operator/module.f.mjs'
|
|
18
|
+
/** @import { StateScan } from '../../types/function/operator/types.ts' */
|
|
19
|
+
|
|
20
|
+
import { contains } from '../../types/range/module.f.mjs'
|
|
21
|
+
|
|
22
|
+
import { fn } from '../../types/function/module.f.mjs'
|
|
23
|
+
|
|
24
|
+
import {
|
|
25
|
+
decoder,
|
|
26
|
+
errorMask,
|
|
27
|
+
isBmpCodePoint,
|
|
28
|
+
isHighSurrogate,
|
|
29
|
+
isLowSurrogate,
|
|
30
|
+
isSupplementaryPlane,
|
|
31
|
+
} from '../code_point/module.f.mjs'
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Optional Utf16State - represents the state of utf16 decoding operation or null.
|
|
35
|
+
* - number is used an unsigned integer.
|
|
36
|
+
*
|
|
37
|
+
* @typedef {number | null} _Utf16State
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/** @import { CodePoint, U16 } from './types.ts' */
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The BMP / surrogate / supplementary-plane predicates used below live in
|
|
44
|
+
* `code_point`, the shared Unicode contract; see that module for their ranges.
|
|
45
|
+
*
|
|
46
|
+
* Converts a Unicode code point to its corresponding UTF-16 representation.
|
|
47
|
+
*
|
|
48
|
+
* This function handles:
|
|
49
|
+
* 1. Code points in the Basic Multilingual Plane (BMP) [0x0000–0xFFFF],
|
|
50
|
+
* which map directly to a single 16-bit value (U16).
|
|
51
|
+
* 2. Supplementary Plane code points [0x10000–0x10FFFF],
|
|
52
|
+
* which are represented as surrogate pairs in UTF-16.
|
|
53
|
+
*
|
|
54
|
+
* @param {CodePoint} codePoint - A valid Unicode code point.
|
|
55
|
+
* @returns {readonly U16[]} A list of 16-bit unsigned integers (U16) representing the UTF-16 encoding
|
|
56
|
+
* of the input code point. If the code point is in the BMP range, a single U16
|
|
57
|
+
* value is returned. For code points in the supplementary planes, two U16
|
|
58
|
+
* values (a high and a low surrogate) are returned.
|
|
59
|
+
* @example
|
|
60
|
+
*
|
|
61
|
+
* ```ts
|
|
62
|
+
* const exampleCodePoints: List<CodePoint> = [
|
|
63
|
+
* 0x0041, // 'A' (BMP, single U16)
|
|
64
|
+
* 0x1F600, // 😀 (Emoji, supplementary plane, surrogate pair)
|
|
65
|
+
* 0xD7FF, // Last code point in the low BMP range
|
|
66
|
+
* 0xE000, // First code point in the high BMP range
|
|
67
|
+
* 0x10FFFF, // Maximum valid code point in Unicode
|
|
68
|
+
* 0x110000, // Invalid code point (outside Unicode range)
|
|
69
|
+
* ]
|
|
70
|
+
* exampleCodePoints.forEach((codePoint) => {
|
|
71
|
+
* const utf16Result = codePointToUtf16(codePoint)
|
|
72
|
+
* console.log(`Code Point: U+${codePoint.toString(16).toUpperCase()}`)
|
|
73
|
+
* console.log(`UTF-16: ${utf16Result.map(u16 => u16.toString(16).toUpperCase()).join(' ')}`)
|
|
74
|
+
* })
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
const codePointToUtf16 = codePoint => {
|
|
78
|
+
if (isBmpCodePoint(codePoint)) { return [codePoint] }
|
|
79
|
+
if (isSupplementaryPlane(codePoint)) {
|
|
80
|
+
const n = codePoint - 0x1_0000
|
|
81
|
+
const high = (n >> 10) + 0xd800
|
|
82
|
+
const low = (n & 0b0011_1111_1111) + 0xdc00
|
|
83
|
+
return [high, low]
|
|
84
|
+
}
|
|
85
|
+
return [codePoint & 0xffff]
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Converts a UTF-16 sequence to its corresponding Unicode code points.
|
|
91
|
+
*
|
|
92
|
+
* This function handles:
|
|
93
|
+
* 1. Single U16 values in the Basic Multilingual Plane (BMP) [0x0000–0xFFFF].
|
|
94
|
+
* 2. Surrogate pairs representing code points in the Supplementary Plane [0x10000–0x10FFFF].
|
|
95
|
+
* 3. Invalid input sequences by applying an error mask to the resulting code point.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
*
|
|
99
|
+
* ```ts
|
|
100
|
+
* const exampleUtf16: List<U16> = [
|
|
101
|
+
* 0x0041, // 'A' (BMP, single U16)
|
|
102
|
+
* 0xD83D, 0xDE00, // 😀 (Emoji, surrogate pair)
|
|
103
|
+
* 0xD800, // Unpaired high surrogate
|
|
104
|
+
* 0xDC00, // Unpaired low surrogate
|
|
105
|
+
* ]
|
|
106
|
+
*
|
|
107
|
+
* const codePoints = toCodePointList(exampleUtf16)
|
|
108
|
+
* codePoints.forEach((codePoint) => {
|
|
109
|
+
* if (codePoint & errorMask) {
|
|
110
|
+
* console.log(`Invalid sequence detected: ${codePoint.toString(16).toUpperCase()}`)
|
|
111
|
+
* } else {
|
|
112
|
+
* console.log(`Code Point: U+${codePoint.toString(16).toUpperCase()}`)
|
|
113
|
+
* }
|
|
114
|
+
* })
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
* @type {(input: List<CodePoint>) => Thunk<U16>}
|
|
118
|
+
*/
|
|
119
|
+
export const fromCodePointList
|
|
120
|
+
= flatMap(codePointToUtf16)
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Validates whether a given 16-bit unsigned integer (U16) falls within the valid range for UTF-16 code units.
|
|
124
|
+
*
|
|
125
|
+
* UTF-16 uses 16-bit code units to encode characters. The valid range for these code units is [0x0000, 0xFFFF].
|
|
126
|
+
* This function is used to verify that a number is within this range.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
*
|
|
130
|
+
* ```ts
|
|
131
|
+
* const validU16 = u16(0x0041) // true: U+0041 ('A')
|
|
132
|
+
* const invalidU16 = u16(0x110000) // false: Value is outside the valid range
|
|
133
|
+
* const edgeCaseLow = u16(0x0000) // true: Minimum valid value for UTF-16
|
|
134
|
+
* const edgeCaseHigh = u16(0xFFFF) // true: Maximum valid value for UTF-16
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* @type {(i: U16) => boolean}
|
|
138
|
+
*/
|
|
139
|
+
const u16 = contains(0x0000, 0xFFFF)
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* A stateful operation that converts a UTF-16 word (U16) to a list of Unicode code points (CodePoint),
|
|
144
|
+
* while maintaining the state of surrogate pair decoding.
|
|
145
|
+
*
|
|
146
|
+
* This operation processes UTF-16 code units and decodes them into Unicode code points. It handles:
|
|
147
|
+
* 1. BMP code points (single U16).
|
|
148
|
+
* 2. Surrogate pairs (two U16s representing a single code point in the supplementary planes).
|
|
149
|
+
* 3. Invalid or malformed code units.
|
|
150
|
+
*
|
|
151
|
+
* It also manages the internal state, which is necessary to handle surrogate pairs. If the state is null,
|
|
152
|
+
* it expects a valid BMP code point or a high surrogate. If the state is not null, it processes a low surrogate
|
|
153
|
+
* and combines the pair into a single supplementary code point.
|
|
154
|
+
*
|
|
155
|
+
* @param state - The current state of the UTF-16 decoding operation.
|
|
156
|
+
* This can be either `null` (no state) or the previous high surrogate value.
|
|
157
|
+
* @param word - The current UTF-16 word (U16) to process.
|
|
158
|
+
* @returns A tuple where the first element is a list of decoded Unicode code points (`CodePoint`), and
|
|
159
|
+
* the second element is the updated state. If the word is invalid, an error code `0xffffffff` is returned.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
*
|
|
163
|
+
* ```ts
|
|
164
|
+
* const state: Utf16State = null;
|
|
165
|
+
* const word: U16 = 0xD83D; // High surrogate for 😀 emoji
|
|
166
|
+
* const [decodedCodePoints, newState] = utf16ByteToCodePointOp(word, state);
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
*
|
|
171
|
+
* ```ts
|
|
172
|
+
* const state: Utf16State = 0xD83D; // High surrogate already stored
|
|
173
|
+
* const word: U16 = 0xDC00; // Low surrogate for 😀 emoji
|
|
174
|
+
* const [decodedCodePoints, newState] = utf16ByteToCodePointOp(word, state);
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* @type {StateScan<U16, _Utf16State, List<CodePoint>>}
|
|
178
|
+
*/
|
|
179
|
+
const utf16ByteToCodePointOp = (word, state) => {
|
|
180
|
+
if (!u16(word)) {
|
|
181
|
+
return [[0xffffffff], state]
|
|
182
|
+
}
|
|
183
|
+
if (state === null) {
|
|
184
|
+
if (isBmpCodePoint(word)) { return [[word], null] }
|
|
185
|
+
if (isHighSurrogate(word)) { return [[], word] }
|
|
186
|
+
return [[word | errorMask], null]
|
|
187
|
+
}
|
|
188
|
+
if (isLowSurrogate(word)) {
|
|
189
|
+
const high = state - 0xd800
|
|
190
|
+
const low = word - 0xdc00
|
|
191
|
+
return [[(high << 10) + low + 0x10000], null]
|
|
192
|
+
}
|
|
193
|
+
if (isBmpCodePoint(word)) { return [[state | errorMask, word], null] }
|
|
194
|
+
if (isHighSurrogate(word)) { return [[state | errorMask], word] }
|
|
195
|
+
return [[state | errorMask, word | errorMask], null]
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Handles the EOF (end-of-file) condition during UTF-16 decoding.
|
|
201
|
+
*
|
|
202
|
+
* If there is no pending state (`state === null`), it simply returns an empty list
|
|
203
|
+
* of code points, indicating no further input to process. If there is a pending state,
|
|
204
|
+
* it is treated as an unpaired surrogate, and the `errorMask` is applied to flag
|
|
205
|
+
* the invalid sequence.
|
|
206
|
+
*
|
|
207
|
+
* @param {_Utf16State} state - The current UTF-16 decoding state. This can be:
|
|
208
|
+
* - `null`: No pending surrogate to process.
|
|
209
|
+
* - A high surrogate (0xD800–0xDBFF) left from an earlier input, waiting for a low surrogate.
|
|
210
|
+
* @returns {readonly[List<CodePoint>, _Utf16State]} A tuple:
|
|
211
|
+
* - The first element is a list of code points. If there’s a pending state, it is returned
|
|
212
|
+
* with the `errorMask` applied.
|
|
213
|
+
* - The second element is the next state, which will always be `null` because EOF means no
|
|
214
|
+
* further processing.
|
|
215
|
+
*
|
|
216
|
+
* @example
|
|
217
|
+
*
|
|
218
|
+
* ```js
|
|
219
|
+
* const eofState = utf16EofToCodePointOp(0xD800) // Unpaired high surrogate
|
|
220
|
+
* const validState = utf16EofToCodePointOp(null) // No pending state
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
const utf16EofToCodePointOp = state =>
|
|
224
|
+
[state === null ? empty : [state | errorMask], null]
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Converts a list of UTF-16 code units to a list of Unicode code points (CodePoint).
|
|
229
|
+
* This function processes each UTF-16 code unit, decoding them into their corresponding Unicode code points.
|
|
230
|
+
* The input list of `U16` values may represent characters in the Basic Multilingual Plane (BMP) or supplementary planes,
|
|
231
|
+
* with surrogate pairs handled correctly. The function also handles EOF (`null`).
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
*
|
|
235
|
+
* ```ts
|
|
236
|
+
* const utf16List: List<U16> = [0x0041, 0xD83D, 0xDE00] // 'A' and 😀 (surrogate pair)
|
|
237
|
+
* const codePoints = toCodePointList(utf16List)
|
|
238
|
+
* ```
|
|
239
|
+
*
|
|
240
|
+
* @type {(input: List<U16>) => List<CodePoint>}
|
|
241
|
+
*/
|
|
242
|
+
export const toCodePointList =
|
|
243
|
+
decoder(utf16ByteToCodePointOp, utf16EofToCodePointOp)
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Converts a string to a list of UTF-16 code units (U16).
|
|
247
|
+
*
|
|
248
|
+
* This function processes each character in the input string and converts it to its corresponding UTF-16 code unit(s).
|
|
249
|
+
* Characters in the Basic Multilingual Plane (BMP) will produce a single `U16`, while supplementary plane characters
|
|
250
|
+
* (those requiring surrogate pairs) will produce two `U16` values.
|
|
251
|
+
* @param {string} s - The input string to convert to UTF-16 code units.
|
|
252
|
+
* @returns {List<U16>} A list of UTF-16 code units (`U16`) representing the string.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
*
|
|
256
|
+
* ```js
|
|
257
|
+
* const inputString = "Hello, 😀"
|
|
258
|
+
* const utf16List = stringToList(inputString)
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
export const stringToList = s => {
|
|
262
|
+
/** @type {(i: number) => Result<number>} */
|
|
263
|
+
const at = i => {
|
|
264
|
+
const first = s.charCodeAt(i)
|
|
265
|
+
return isNaN(first) ? empty : { first, tail: () => at(i + 1) }
|
|
266
|
+
}
|
|
267
|
+
return at(0)
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Converts a string to a list of Unicode code points (CodePoint).
|
|
272
|
+
* This function first converts the string to a list of UTF-16 code units (U16) using `stringToList`,
|
|
273
|
+
* then it converts the UTF-16 code units to Unicode code points using `toCodePointList`. This is useful for handling
|
|
274
|
+
* Unicode characters, including supplementary characters represented by surrogate pairs in UTF-16.
|
|
275
|
+
*
|
|
276
|
+
* @param {string} input - The input string to convert.
|
|
277
|
+
* @returns {List<CodePoint>} A list of Unicode code points (`CodePoint`) corresponding to the characters in the string.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
*
|
|
281
|
+
* ```js
|
|
282
|
+
* const inputString = "Hello, 😀"
|
|
283
|
+
* const codePoints = stringToCodePointList(inputString)
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
export const stringToCodePointList = input =>
|
|
287
|
+
toCodePointList(stringToList(input))
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Converts a list of UTF-16 code units (U16) to a string.
|
|
291
|
+
* This function takes a list of `U16` values (UTF-16 code units) and reconstructs the original string by mapping
|
|
292
|
+
* each code unit back to its character using `String.fromCharCode`. The resulting characters are concatenated
|
|
293
|
+
* to form the final string.
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
*
|
|
297
|
+
* ```ts
|
|
298
|
+
* const utf16List: List<U16> = [0x0041, 0x0042, 0x0043] // 'ABC'
|
|
299
|
+
* const outputString = listToString(utf16List)
|
|
300
|
+
* ```
|
|
301
|
+
*
|
|
302
|
+
* @type {(input: List<U16>) => string}
|
|
303
|
+
*/
|
|
304
|
+
export const listToString = fn(map(String.fromCharCode))
|
|
305
|
+
.map(reduce(concat)(''))
|
|
306
|
+
.result
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Converts a list of Unicode code points (CodePoint) to a string.
|
|
310
|
+
* This function first converts the list of Unicode code points to a list of UTF-16 code units using `fromCodePointList`,
|
|
311
|
+
* then it uses `listToString` to reconstruct the string from the UTF-16 code units.
|
|
312
|
+
*
|
|
313
|
+
* @param {List<CodePoint>} input - A list of Unicode code points (`CodePoint`).
|
|
314
|
+
* @returns {string} A string representing the characters encoded by the input code points.
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
*
|
|
318
|
+
* ```ts
|
|
319
|
+
* const codePoints: List<CodePoint> = [0x48, 0x65, 0x6C, 0x6C, 0x6F]
|
|
320
|
+
* const outputString = codePointListToString(codePoints)
|
|
321
|
+
* ```
|
|
322
|
+
*/
|
|
323
|
+
export const codePointListToString = input =>
|
|
324
|
+
listToString(fromCodePointList(input))
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Converts a single Unicode code point to a string — the scalar counterpart of
|
|
328
|
+
* {@link codePointListToString}, for callers that hold one code point rather
|
|
329
|
+
* than a list of them and would otherwise wrap it in a single-element list.
|
|
330
|
+
*
|
|
331
|
+
* Input outside the assignable range — a surrogate, a value above
|
|
332
|
+
* `0x10FFFF`, or a negative one — is truncated to its low 16 bits and encoded
|
|
333
|
+
* as that code unit, rather than rejected. This matches
|
|
334
|
+
* {@link codePointListToString}, which reports malformed input through the
|
|
335
|
+
* decoder's `errorMask` on the way *in* rather than through a failure on the
|
|
336
|
+
* way out.
|
|
337
|
+
*
|
|
338
|
+
* @param {CodePoint} codePoint - A Unicode code point (`CodePoint`).
|
|
339
|
+
* @returns {string} The one- or two-code-unit string encoding it.
|
|
340
|
+
*
|
|
341
|
+
* @example
|
|
342
|
+
*
|
|
343
|
+
* ```ts
|
|
344
|
+
* codePointToString(0x48) // 'H'
|
|
345
|
+
* codePointToString(0x1F600) // the 😀 surrogate pair
|
|
346
|
+
* codePointToString(0x110000) // '\u0000' — out of range, low 16 bits kept
|
|
347
|
+
* ```
|
|
348
|
+
*/
|
|
349
|
+
export const codePointToString = codePoint =>
|
|
350
|
+
String.fromCharCode(...codePointToUtf16(codePoint))
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @import { Unknown } from '../../media/json/types.ts' */
|
|
2
|
+
export declare const proof: {
|
|
3
|
+
toCodePointList: (() => void)[];
|
|
4
|
+
fromCodePointList: (() => void)[];
|
|
5
|
+
string: (() => void)[];
|
|
6
|
+
stringToList: (() => void)[];
|
|
7
|
+
listToString: (() => void)[];
|
|
8
|
+
stringToCodePointList: (() => void)[];
|
|
9
|
+
codePointListToString: (() => void)[];
|
|
10
|
+
codePointToString: (() => void)[];
|
|
11
|
+
};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/** @import { Unknown } from '../../media/json/types.ts' */
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
toCodePointList,
|
|
5
|
+
fromCodePointList,
|
|
6
|
+
stringToList,
|
|
7
|
+
listToString,
|
|
8
|
+
stringToCodePointList,
|
|
9
|
+
codePointListToString,
|
|
10
|
+
codePointToString
|
|
11
|
+
} from './module.f.mjs'
|
|
12
|
+
import { stringify as jsonStringify } from '../../media/json/module.f.mjs'
|
|
13
|
+
import { sort } from '../../types/object/module.f.mjs'
|
|
14
|
+
import { toArray } from '../../types/list/module.f.mjs'
|
|
15
|
+
import { assertEq } from '../../asserts/module.f.mjs'
|
|
16
|
+
|
|
17
|
+
/** @type {(a: readonly Unknown[]) => string} */
|
|
18
|
+
const stringify = a =>
|
|
19
|
+
jsonStringify(sort)(a)
|
|
20
|
+
|
|
21
|
+
export const proof = {
|
|
22
|
+
toCodePointList: [
|
|
23
|
+
() => {
|
|
24
|
+
const result = stringify(toArray(toCodePointList([-1, 65536])))
|
|
25
|
+
assertEq(result, '[4294967295,4294967295]')
|
|
26
|
+
},
|
|
27
|
+
() => {
|
|
28
|
+
const result = stringify(toArray(toCodePointList([0, 36, 8364, 55295, 57344, 65535])))
|
|
29
|
+
assertEq(result, '[0,36,8364,55295,57344,65535]')
|
|
30
|
+
},
|
|
31
|
+
() => {
|
|
32
|
+
const result = stringify(toArray(toCodePointList([56320, 57343])))
|
|
33
|
+
assertEq(result, '[-2147427328,-2147426305]')
|
|
34
|
+
},
|
|
35
|
+
() => {
|
|
36
|
+
const result = stringify(toArray(toCodePointList([55296, 56320, 55297, 56375, 55378, 57186, 56319, 57343])))
|
|
37
|
+
assertEq(result, '[65536,66615,150370,1114111]')
|
|
38
|
+
},
|
|
39
|
+
() => {
|
|
40
|
+
const result = stringify(toArray(toCodePointList([55296, 55296])))
|
|
41
|
+
assertEq(result, '[-2147428352,-2147428352]')
|
|
42
|
+
},
|
|
43
|
+
() => {
|
|
44
|
+
const result = stringify(toArray(toCodePointList([55296, 0])))
|
|
45
|
+
assertEq(result, '[-2147428352,0]')
|
|
46
|
+
},
|
|
47
|
+
() => {
|
|
48
|
+
const result = stringify(toArray(toCodePointList([56320])))
|
|
49
|
+
assertEq(result, '[-2147427328]')
|
|
50
|
+
},
|
|
51
|
+
() => {
|
|
52
|
+
const result = stringify(toArray(toCodePointList([56320, 0])))
|
|
53
|
+
assertEq(result, '[-2147427328,0]')
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
fromCodePointList: [
|
|
57
|
+
() => {
|
|
58
|
+
const result = stringify(toArray(fromCodePointList([0])))
|
|
59
|
+
assertEq(result, '[0]')
|
|
60
|
+
},
|
|
61
|
+
() => {
|
|
62
|
+
const result = stringify(toArray(fromCodePointList([0x24])))
|
|
63
|
+
assertEq(result, '[36]')
|
|
64
|
+
},
|
|
65
|
+
() => {
|
|
66
|
+
const result = stringify(toArray(fromCodePointList([0x20AC])))
|
|
67
|
+
assertEq(result, '[8364]')
|
|
68
|
+
},
|
|
69
|
+
() => {
|
|
70
|
+
const result = stringify(toArray(fromCodePointList([0xd7ff])))
|
|
71
|
+
assertEq(result, '[55295]')
|
|
72
|
+
},
|
|
73
|
+
() => {
|
|
74
|
+
const result = stringify(toArray(fromCodePointList([0xe000])))
|
|
75
|
+
assertEq(result, '[57344]')
|
|
76
|
+
},
|
|
77
|
+
() => {
|
|
78
|
+
const result = stringify(toArray(fromCodePointList([0xffff])))
|
|
79
|
+
assertEq(result, '[65535]')
|
|
80
|
+
},
|
|
81
|
+
() => {
|
|
82
|
+
const result = stringify(toArray(fromCodePointList([0x10000])))
|
|
83
|
+
assertEq(result, '[55296,56320]')
|
|
84
|
+
},
|
|
85
|
+
() => {
|
|
86
|
+
const result = stringify(toArray(fromCodePointList([0x10437])))
|
|
87
|
+
assertEq(result, '[55297,56375]')
|
|
88
|
+
},
|
|
89
|
+
() => {
|
|
90
|
+
const result = stringify(toArray(fromCodePointList([0x24B62])))
|
|
91
|
+
assertEq(result, '[55378,57186]')
|
|
92
|
+
},
|
|
93
|
+
() => {
|
|
94
|
+
const result = stringify(toArray(fromCodePointList([0x10ffff])))
|
|
95
|
+
assertEq(result, '[56319,57343]')
|
|
96
|
+
},
|
|
97
|
+
() => {
|
|
98
|
+
const result = stringify(toArray(fromCodePointList([-1, 0xd800, 0xdfff, 0x110000])))
|
|
99
|
+
assertEq(result, '[65535,55296,57343,0]')
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
string: [
|
|
103
|
+
() => {
|
|
104
|
+
const utf16List = stringToList("Hello world!😂🚜🚲")
|
|
105
|
+
const result = listToString(utf16List)
|
|
106
|
+
assertEq(result, "Hello world!😂🚜🚲")
|
|
107
|
+
},
|
|
108
|
+
() => {
|
|
109
|
+
const cpList = stringToCodePointList("Hello world!😂🚜🚲")
|
|
110
|
+
const result = codePointListToString(cpList)
|
|
111
|
+
assertEq(result, "Hello world!😂🚜🚲")
|
|
112
|
+
},
|
|
113
|
+
() => {
|
|
114
|
+
const a = stringToList("Hello world!😂🚜🚲")
|
|
115
|
+
const b = toCodePointList(a)
|
|
116
|
+
const c = fromCodePointList(b)
|
|
117
|
+
const result = listToString(c)
|
|
118
|
+
assertEq(result, "Hello world!😂🚜🚲")
|
|
119
|
+
}
|
|
120
|
+
],
|
|
121
|
+
stringToList: [
|
|
122
|
+
() => {
|
|
123
|
+
const inputString = "Hello, i like js"
|
|
124
|
+
const utf16List = stringToList(inputString)
|
|
125
|
+
},
|
|
126
|
+
() => {
|
|
127
|
+
const inputString = "😇🤬🫥😑🫠"
|
|
128
|
+
const utf16List = stringToList(inputString)
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
listToString: [
|
|
132
|
+
() => {
|
|
133
|
+
const utf16List = [0x0041, 0x0042, 0x0043]
|
|
134
|
+
const outputString = listToString(utf16List)
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
stringToCodePointList: [
|
|
138
|
+
() => {
|
|
139
|
+
const inputString = "Hello, 😀"
|
|
140
|
+
const codePoints = stringToCodePointList(inputString)
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
codePointListToString: [
|
|
144
|
+
() => {
|
|
145
|
+
const codePoints = [0x48, 0x65, 0x6C, 0x6C, 0x6F]
|
|
146
|
+
const outputString = codePointListToString(codePoints)
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
codePointToString: [
|
|
150
|
+
() => { assertEq(codePointToString(0x48), 'H') },
|
|
151
|
+
// supplementary plane: one code point, two code units
|
|
152
|
+
() => { assertEq(codePointToString(0x1f600), '😀') },
|
|
153
|
+
// a surrogate is not a code point; it round-trips as its own code unit
|
|
154
|
+
() => { assertEq(codePointToString(0xd800), '\ud800') },
|
|
155
|
+
// above the maximum code point, the low 16 bits are kept
|
|
156
|
+
() => { assertEq(codePointToString(0x110000), '\u0000') },
|
|
157
|
+
]
|
|
158
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for UTF-16 code units and Unicode code points.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Represent an unsigned UTF16, used to store one word UTF-16 (code unit).
|
|
8
|
+
*/
|
|
9
|
+
export type U16 = number;
|
|
10
|
+
/**
|
|
11
|
+
* [0, 0x10_FFFF]: 16+5 = 21 bits
|
|
12
|
+
*
|
|
13
|
+
* 121_0000_0000: 16+16+9 = 41 bits
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Represent an Unicode code point.
|
|
17
|
+
* Has range: from 0x0000 to 0x10_FFFF (21 bits).
|
|
18
|
+
*/
|
|
19
|
+
export type CodePoint = number;
|