functionalscript 0.43.0 → 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.d.mts +42 -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 -222
- package/fjs/cas/evo/module.f.js +0 -454
- package/fjs/cas/evo/proof.f.d.ts +0 -43
- package/fjs/cas/evo/proof.f.js +0 -653
- 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 -86
- package/fjs/media/revision/module.f.js +0 -131
- package/fjs/media/revision/proof.f.d.ts +0 -31
- package/fjs/media/revision/proof.f.js +0 -140
- 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/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,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proofs for generated CI flakes.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/** @import { NixJob } from './types.ts' */
|
|
8
|
+
|
|
9
|
+
import { assert, assertEq } from '../../asserts/module.f.mjs'
|
|
10
|
+
import { step } from '../../effects/module.f.mjs'
|
|
11
|
+
import { readUtf8File } from '../../effects/node/module.f.mjs'
|
|
12
|
+
import { emptyState, virtual } from '../../effects/node/virtual/module.f.mjs'
|
|
13
|
+
import { nixpkgs } from '../config/module.f.mjs'
|
|
14
|
+
import { nodeNixJobs } from '../node/module.f.mjs'
|
|
15
|
+
import {
|
|
16
|
+
flakePath,
|
|
17
|
+
flakeText,
|
|
18
|
+
generatedDirectory,
|
|
19
|
+
nixDevelop,
|
|
20
|
+
nixDevelopAll,
|
|
21
|
+
nixFlakes,
|
|
22
|
+
nixInstall,
|
|
23
|
+
} from './module.f.mjs'
|
|
24
|
+
|
|
25
|
+
const { commit } = nixpkgs
|
|
26
|
+
|
|
27
|
+
/** @type {NixJob} */
|
|
28
|
+
const plain = {
|
|
29
|
+
id: 'node24',
|
|
30
|
+
system: 'aarch64-linux',
|
|
31
|
+
packages: ['nodejs_24'],
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** @type {NixJob} */
|
|
35
|
+
const withShellHook = {
|
|
36
|
+
...plain,
|
|
37
|
+
id: 'node22',
|
|
38
|
+
packages: ['nodejs_22'],
|
|
39
|
+
shellHook: `export NPM_CONFIG_PREFIX="$HOME/.npm-global"`,
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const plainFlake = `{
|
|
43
|
+
inputs.nixpkgs.url = "github:NixOS/nixpkgs/${commit}";
|
|
44
|
+
outputs = { nixpkgs, ... }: {
|
|
45
|
+
devShells.aarch64-linux.default = let
|
|
46
|
+
pkgs = import nixpkgs {
|
|
47
|
+
system = "aarch64-linux";
|
|
48
|
+
};
|
|
49
|
+
in
|
|
50
|
+
pkgs.mkShell {
|
|
51
|
+
packages = [ pkgs.nodejs_24 ];
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
`
|
|
56
|
+
|
|
57
|
+
const shellHookFlake = `{
|
|
58
|
+
inputs.nixpkgs.url = "github:NixOS/nixpkgs/${commit}";
|
|
59
|
+
outputs = { nixpkgs, ... }: {
|
|
60
|
+
devShells.aarch64-linux.default = let
|
|
61
|
+
pkgs = import nixpkgs {
|
|
62
|
+
system = "aarch64-linux";
|
|
63
|
+
};
|
|
64
|
+
in
|
|
65
|
+
pkgs.mkShell {
|
|
66
|
+
packages = [ pkgs.nodejs_22 ];
|
|
67
|
+
shellHook = ''
|
|
68
|
+
export NPM_CONFIG_PREFIX="$HOME/.npm-global"
|
|
69
|
+
'';
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
`
|
|
74
|
+
|
|
75
|
+
/** @type {(jobs: readonly NixJob[], id: string) => string} */
|
|
76
|
+
const generated = (jobs, id) => {
|
|
77
|
+
const written = step(
|
|
78
|
+
nixFlakes(jobs),
|
|
79
|
+
() => readUtf8File(`${generatedDirectory}/${id}/flake.nix`))
|
|
80
|
+
const [, [tag, result]] = virtual(emptyState)(written)
|
|
81
|
+
assert(tag === 'ok', result)
|
|
82
|
+
return result
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export const proof = {
|
|
86
|
+
flakeText: {
|
|
87
|
+
plain: () => assertEq(flakeText(plain), plainFlake),
|
|
88
|
+
shellHook: () => assertEq(flakeText(withShellHook), shellHookFlake),
|
|
89
|
+
},
|
|
90
|
+
nixFlakes: {
|
|
91
|
+
write: () => assertEq(generated([plain], plain.id), plainFlake),
|
|
92
|
+
every: () => {
|
|
93
|
+
for (const job of nodeNixJobs) {
|
|
94
|
+
assertEq(generated(nodeNixJobs, job.id), flakeText(job))
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
nodeShellHook: () => {
|
|
98
|
+
const [node22] = nodeNixJobs
|
|
99
|
+
assert(node22.shellHook !== undefined, 'expected a Node 22 shell hook')
|
|
100
|
+
assert(
|
|
101
|
+
generated(nodeNixJobs, node22.id).includes('$HOME/.npm-global'),
|
|
102
|
+
'expected the Node 22 global installation prefix')
|
|
103
|
+
},
|
|
104
|
+
packages: () => {
|
|
105
|
+
for (const { id, packages } of nodeNixJobs) {
|
|
106
|
+
assertEq(packages.length, 1)
|
|
107
|
+
assertEq(packages[0], `nodejs_${id.slice('node'.length)}`)
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
// Job data only ever reaches quotable positions, so an unusual package
|
|
111
|
+
// name is escaped rather than rejected.
|
|
112
|
+
quotedPackage: () => assert(
|
|
113
|
+
flakeText({ ...plain, packages: ['not an identifier'] })
|
|
114
|
+
.includes('pkgs."not an identifier"'),
|
|
115
|
+
'expected a quoted attribute name'),
|
|
116
|
+
multiplePackages: () => assert(
|
|
117
|
+
flakeText({ ...plain, packages: ['nodejs_24', 'git'] })
|
|
118
|
+
.includes('[ pkgs.nodejs_24 pkgs.git ]'),
|
|
119
|
+
'expected both packages in the shell'),
|
|
120
|
+
},
|
|
121
|
+
workflow: {
|
|
122
|
+
// The path a workflow passes to `nix develop` must be the directory the
|
|
123
|
+
// generator wrote the flake into.
|
|
124
|
+
flakePath: () => assertEq(flakePath(plain.id), `./${generatedDirectory}/node24`),
|
|
125
|
+
nixDevelop: () => assertEq(
|
|
126
|
+
nixDevelop(plain.id, 'node --version'),
|
|
127
|
+
'nix develop ./nix/generated/node24 --command node --version'),
|
|
128
|
+
nixDevelopAll: {
|
|
129
|
+
sequence: () => assertEq(
|
|
130
|
+
nixDevelopAll(plain.id, ['npm ci', 'node --test']),
|
|
131
|
+
`nix develop ./nix/generated/node24 --command bash -euo pipefail -c 'npm ci && node --test'`),
|
|
132
|
+
// A command carrying its own quote must not end the outer one: the
|
|
133
|
+
// shell has to see the script back exactly as it was written.
|
|
134
|
+
quote: () => assertEq(
|
|
135
|
+
nixDevelopAll(plain.id, [`printf '%s' 'a b'`]),
|
|
136
|
+
`nix develop ./nix/generated/node24 --command bash -euo pipefail -c 'printf '\\''%s'\\'' '\\''a b'\\'''`),
|
|
137
|
+
},
|
|
138
|
+
nixInstall: () => {
|
|
139
|
+
assertEq(nixInstall.type, 'install')
|
|
140
|
+
assert(
|
|
141
|
+
nixInstall.type === 'install'
|
|
142
|
+
&& nixInstall.step.uses?.startsWith('cachix/install-nix-action@') === true,
|
|
143
|
+
'expected the pinned Nix installer action')
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for generated CI Nix flakes.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
/** A CI job's development environment, one generated flake each. */
|
|
7
|
+
export type NixJob = {
|
|
8
|
+
/** Generated directory name under `nix/generated`, matching the CI job id. */
|
|
9
|
+
readonly id: string;
|
|
10
|
+
/** Nix system of the job's runner, e.g. `aarch64-linux`. */
|
|
11
|
+
readonly system: string;
|
|
12
|
+
/** Nixpkgs attribute names made available in the job's shell. */
|
|
13
|
+
readonly packages: readonly string[];
|
|
14
|
+
/** Job-local shell initialization, when the job needs one. */
|
|
15
|
+
readonly shellHook?: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI step builders for Node.js: setup-node installation, platform smoke tests,
|
|
3
|
+
* per-version canonical jobs.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Job, Jobs, MetaStep, Step } from '../common/types.ts'
|
|
8
|
+
* @import { NixJob } from '../nix/types.ts'
|
|
9
|
+
*/
|
|
10
|
+
import type { Job, Jobs, MetaStep } from '../common/types.ts';
|
|
11
|
+
import type { NixJob } from '../nix/types.ts';
|
|
12
|
+
/** @type {(v: string) => string} */
|
|
13
|
+
export declare const major: (v: string) => string;
|
|
14
|
+
/** @type {(version: string) => (extra: readonly MetaStep[]) => readonly MetaStep[]} */
|
|
15
|
+
export declare const basicNode: (version: string) => (extra: readonly MetaStep[]) => readonly MetaStep[];
|
|
16
|
+
/** @type {(version: string) => readonly MetaStep[]} */
|
|
17
|
+
export declare const platformNodeSteps: (version: string) => readonly MetaStep[];
|
|
18
|
+
/** @type {(version: string) => Jobs} */
|
|
19
|
+
export declare const nodeVersionJobs: (version: string) => Jobs;
|
|
20
|
+
export declare const nixSystem: 'aarch64-linux';
|
|
21
|
+
/** Generated development environments for the canonical Node jobs.
|
|
22
|
+
*
|
|
23
|
+
* @type {readonly NixJob[]}
|
|
24
|
+
*/
|
|
25
|
+
export declare const nodeNixJobs: readonly NixJob[];
|
|
26
|
+
/**
|
|
27
|
+
* Version-check steps for the canonical Node jobs' generated flakes, one per
|
|
28
|
+
* job. Collected into the shared temporary `nix-flakes` job in
|
|
29
|
+
* `fjs/ci/module.f.mjs`.
|
|
30
|
+
*
|
|
31
|
+
* @type {readonly MetaStep[]}
|
|
32
|
+
*/
|
|
33
|
+
export declare const nodeNixVersionSteps: readonly MetaStep[];
|
|
34
|
+
/**
|
|
35
|
+
* Temporary job that instantiates every generated flake.
|
|
36
|
+
*
|
|
37
|
+
* Nothing else in CI evaluates the generated files, so a broken flake — or one
|
|
38
|
+
* whose snapshot moved to a different Node — would only surface once a real job
|
|
39
|
+
* started using it. It deliberately stays separate from the canonical Node jobs:
|
|
40
|
+
* those keep their current `setup-node` runtime until they are migrated one at a
|
|
41
|
+
* time. When the last one migrates and this job goes away, each migrated job
|
|
42
|
+
* must check its own Node version inside the `nix develop` invocation, or the
|
|
43
|
+
* guarantee is lost.
|
|
44
|
+
*
|
|
45
|
+
* @type {Job}
|
|
46
|
+
*/
|
|
47
|
+
export declare const nodeNixFlakeJob: Job;
|
|
48
|
+
export declare const nodeMainSteps: (version: string) => readonly MetaStep[];
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI step builders for Node.js: setup-node installation, platform smoke tests,
|
|
3
|
+
* per-version canonical jobs.
|
|
4
|
+
*
|
|
5
|
+
* @module
|
|
6
|
+
*
|
|
7
|
+
* @import { Job, Jobs, MetaStep, Step } from '../common/types.ts'
|
|
8
|
+
* @import { NixJob } from '../nix/types.ts'
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { node } from '../config/module.f.mjs'
|
|
12
|
+
import { install, test, ubuntuArm, uses } from '../common/module.f.mjs'
|
|
13
|
+
import { nixInstall, nixVersionCheckStep } from '../nix/module.f.mjs'
|
|
14
|
+
|
|
15
|
+
/** @type {(v: string) => string} */
|
|
16
|
+
export const major = v => v.split('.')[0]
|
|
17
|
+
|
|
18
|
+
/** @type {(version: string) => string} */
|
|
19
|
+
const jobId = version => `node${major(version)}`
|
|
20
|
+
|
|
21
|
+
/** @type {(v: string) => Step} */
|
|
22
|
+
const installNode = v =>
|
|
23
|
+
uses('actions/setup-node', { 'node-version': v })
|
|
24
|
+
|
|
25
|
+
/** @type {(v: string) => readonly MetaStep[]} */
|
|
26
|
+
const nodeInstall = v => [
|
|
27
|
+
install(installNode(v)),
|
|
28
|
+
test({ run: 'npm ci' }),
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
/** @type {(version: string) => (extra: readonly MetaStep[]) => readonly MetaStep[]} */
|
|
32
|
+
export const basicNode = version => extra => [
|
|
33
|
+
...nodeInstall(version),
|
|
34
|
+
...extra,
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
/** @type {(version: string) => MetaStep} */
|
|
38
|
+
const fjsGlobalInstall = version =>
|
|
39
|
+
install({ run: `npm install -g functionalscript@${version}` })
|
|
40
|
+
|
|
41
|
+
/** @type {(version: string) => readonly MetaStep[]} */
|
|
42
|
+
export const platformNodeSteps = version => [
|
|
43
|
+
...nodeInstall(node.default),
|
|
44
|
+
fjsGlobalInstall(version),
|
|
45
|
+
test({ run: 'fjs test' }),
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
/** @type {(version: string) => readonly MetaStep[]} */
|
|
49
|
+
const node22Steps = version => [
|
|
50
|
+
...nodeInstall(node.node22),
|
|
51
|
+
fjsGlobalInstall(version),
|
|
52
|
+
test({ run: 'fjs test' }),
|
|
53
|
+
test({ run: 'node --test' }),
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
/** @type {readonly MetaStep[]} */
|
|
57
|
+
const node24Steps = [
|
|
58
|
+
...nodeInstall(node.node24),
|
|
59
|
+
test({ run: 'node --test' }),
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
/** @type {readonly MetaStep[]} */
|
|
63
|
+
const node26Steps = [
|
|
64
|
+
...nodeInstall(node.default),
|
|
65
|
+
test({ run: 'npm run ci-update' }),
|
|
66
|
+
test({ run: 'git add -A && git diff --cached --exit-code' }),
|
|
67
|
+
test({ run: 'npx tsc' }),
|
|
68
|
+
test({ run: 'npm run cov' }),
|
|
69
|
+
test({ run: 'npm pack' }),
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
/** @type {(steps: readonly MetaStep[]) => Job} */
|
|
73
|
+
const nodeJob = steps => ubuntuArm(steps)
|
|
74
|
+
|
|
75
|
+
/** @type {(version: string) => Jobs} */
|
|
76
|
+
export const nodeVersionJobs = version => ({
|
|
77
|
+
[jobId(node.node22)]: nodeJob(node22Steps(version)),
|
|
78
|
+
[jobId(node.node24)]: nodeJob(node24Steps),
|
|
79
|
+
[jobId(node.default)]: nodeJob(node26Steps),
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
// The canonical Node jobs run on the Ubuntu ARM runner.
|
|
83
|
+
export const nixSystem = /** @type {const} */ ('aarch64-linux')
|
|
84
|
+
|
|
85
|
+
// Keeps `npm install -g functionalscript` writable and puts the installed `fjs`
|
|
86
|
+
// on `PATH` for the rest of the same `nix develop` invocation.
|
|
87
|
+
const npmGlobalShellHook = /** @type {const} */ (`export NPM_CONFIG_PREFIX="$HOME/.npm-global"
|
|
88
|
+
export PATH="$NPM_CONFIG_PREFIX/bin:$PATH"
|
|
89
|
+
mkdir -p "$NPM_CONFIG_PREFIX"`)
|
|
90
|
+
|
|
91
|
+
// Versions of the canonical Node jobs, in job order.
|
|
92
|
+
const nixVersions = /** @type {const} */ ([node.node22, node.node24, node.default])
|
|
93
|
+
|
|
94
|
+
/** @type {(version: string) => NixJob} */
|
|
95
|
+
const nixJob = version => ({
|
|
96
|
+
id: jobId(version),
|
|
97
|
+
system: nixSystem,
|
|
98
|
+
packages: [`nodejs_${major(version)}`],
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
/** Generated development environments for the canonical Node jobs.
|
|
102
|
+
*
|
|
103
|
+
* @type {readonly NixJob[]}
|
|
104
|
+
*/
|
|
105
|
+
export const nodeNixJobs = [
|
|
106
|
+
{ ...nixJob(node.node22), shellHook: npmGlobalShellHook },
|
|
107
|
+
nixJob(node.node24),
|
|
108
|
+
nixJob(node.default),
|
|
109
|
+
]
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Version-check steps for the canonical Node jobs' generated flakes, one per
|
|
113
|
+
* job. Collected into the shared temporary `nix-flakes` job in
|
|
114
|
+
* `fjs/ci/module.f.mjs`.
|
|
115
|
+
*
|
|
116
|
+
* @type {readonly MetaStep[]}
|
|
117
|
+
*/
|
|
118
|
+
export const nodeNixVersionSteps =
|
|
119
|
+
nixVersions.map(version => nixVersionCheckStep(jobId(version), version))
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Temporary job that instantiates every generated flake.
|
|
123
|
+
*
|
|
124
|
+
* Nothing else in CI evaluates the generated files, so a broken flake — or one
|
|
125
|
+
* whose snapshot moved to a different Node — would only surface once a real job
|
|
126
|
+
* started using it. It deliberately stays separate from the canonical Node jobs:
|
|
127
|
+
* those keep their current `setup-node` runtime until they are migrated one at a
|
|
128
|
+
* time. When the last one migrates and this job goes away, each migrated job
|
|
129
|
+
* must check its own Node version inside the `nix develop` invocation, or the
|
|
130
|
+
* guarantee is lost.
|
|
131
|
+
*
|
|
132
|
+
* @type {Job}
|
|
133
|
+
*/
|
|
134
|
+
export const nodeNixFlakeJob = ubuntuArm([
|
|
135
|
+
nixInstall,
|
|
136
|
+
...nodeNixVersionSteps,
|
|
137
|
+
])
|
|
138
|
+
|
|
139
|
+
export const nodeMainSteps = platformNodeSteps
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { basicNode } from './module.f.mjs'
|
|
2
|
+
import { test } from '../common/module.f.mjs'
|
|
3
|
+
import { assertEq } from '../../asserts/module.f.mjs'
|
|
4
|
+
|
|
5
|
+
export const proof = {
|
|
6
|
+
basicNode: () => {
|
|
7
|
+
const extra = [test({ run: 'echo extra' })]
|
|
8
|
+
const steps = basicNode('22.0.0')(extra)
|
|
9
|
+
assertEq(steps.length, 3)
|
|
10
|
+
const [setupNode, npmCi, extraStep] = steps
|
|
11
|
+
assertEq(setupNode.type, 'install')
|
|
12
|
+
assertEq(setupNode.type === 'install' ? setupNode.step.uses : undefined, 'actions/setup-node@v7.0.0')
|
|
13
|
+
assertEq(setupNode.type === 'install' ? setupNode.step.with?.['node-version'] : undefined, '22.0.0')
|
|
14
|
+
assertEq(npmCi.type, 'test')
|
|
15
|
+
assertEq(npmCi.type === 'test' ? npmCi.step.run : undefined, 'npm ci')
|
|
16
|
+
assertEq(extraStep, extra[0])
|
|
17
|
+
},
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** @import { MetaStep, Os, GitHubAction } from './common/types.ts' */
|
|
2
|
+
/** @import { Dir, State } from '../effects/node/virtual/types.ts' */
|
|
3
|
+
export declare const proof: {
|
|
4
|
+
matrixShape: () => void;
|
|
5
|
+
rust: () => void;
|
|
6
|
+
noRust: () => void;
|
|
7
|
+
extra: {
|
|
8
|
+
allOs: () => void;
|
|
9
|
+
osSpecific: () => void;
|
|
10
|
+
};
|
|
11
|
+
defaultSetup: {
|
|
12
|
+
functionalscriptPackage: () => void;
|
|
13
|
+
otherPackage: () => void;
|
|
14
|
+
configuredPackageVersion: () => void;
|
|
15
|
+
missingPackageJson: () => void;
|
|
16
|
+
};
|
|
17
|
+
nixFlakes: () => void;
|
|
18
|
+
nixFlakeJob: () => void;
|
|
19
|
+
ubuntu: () => void;
|
|
20
|
+
};
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/** @import { MetaStep, Os, GitHubAction } from './common/types.ts' */
|
|
2
|
+
/** @import { Dir, State } from '../effects/node/virtual/types.ts' */
|
|
3
|
+
|
|
4
|
+
import { ci, main } from './module.f.mjs'
|
|
5
|
+
import { functionalscript, node } from './config/module.f.mjs'
|
|
6
|
+
import { nodeNixJobs } from './node/module.f.mjs'
|
|
7
|
+
import { utf8, utf8ToString } from '../text/module.f.mjs'
|
|
8
|
+
import { empty as emptyVec } from '../types/bit_vec/module.f.mjs'
|
|
9
|
+
import { test, ubuntu, parseGitHubAction } from './common/module.f.mjs'
|
|
10
|
+
import { assert, assertEq } from '../asserts/module.f.mjs'
|
|
11
|
+
import { emptyState, virtual } from '../effects/node/virtual/module.f.mjs'
|
|
12
|
+
import { unwrap } from '../types/result/module.f.mjs'
|
|
13
|
+
import { definedValues } from '../types/object/module.f.mjs'
|
|
14
|
+
|
|
15
|
+
import { parse as jsonParse } from '../media/json/module.f.mjs'
|
|
16
|
+
|
|
17
|
+
/** @type {(cmd: string) => (gha: GitHubAction) => boolean} */
|
|
18
|
+
const hasRun = cmd => gha =>
|
|
19
|
+
definedValues(gha.jobs).some(job => job.steps.some(step => step.run?.includes(cmd)))
|
|
20
|
+
|
|
21
|
+
/** @type {(jobId: string, cmd: string) => (gha: GitHubAction) => boolean} */
|
|
22
|
+
const hasRunInJob = (jobId, cmd) => gha =>
|
|
23
|
+
gha.jobs[jobId]?.steps.some(step => step.run?.includes(cmd)) ?? false
|
|
24
|
+
|
|
25
|
+
/** @type {(jobId: string, cmd: string) => (gha: GitHubAction) => boolean} */
|
|
26
|
+
const hasExactRunInJob = (jobId, cmd) => gha =>
|
|
27
|
+
gha.jobs[jobId]?.steps.some(step => step.run === cmd) ?? false
|
|
28
|
+
|
|
29
|
+
const makeState = (/** @type {boolean} */ rust, /** @type {string | undefined} */ packageJson) => ({
|
|
30
|
+
...emptyState,
|
|
31
|
+
root: {
|
|
32
|
+
'.github': { workflows: {} },
|
|
33
|
+
...(packageJson !== undefined ? { 'package.json': [utf8(packageJson)] } : {}),
|
|
34
|
+
...(rust ? { 'Cargo.toml': [emptyVec] } : {}),
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
/** @type {(dir: Dir, name: string) => Dir} */
|
|
39
|
+
const subDir = (dir, name) => {
|
|
40
|
+
const entity = dir[name]
|
|
41
|
+
assert(typeof entity === 'object' && !Array.isArray(entity), entity)
|
|
42
|
+
return /** @type {Dir} */ (entity)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** @type {(dir: Dir, name: string) => string} */
|
|
46
|
+
const text = (dir, name) => {
|
|
47
|
+
const file = dir[name]
|
|
48
|
+
assert(!(!Array.isArray(file) || file.length === 0), file)
|
|
49
|
+
return utf8ToString(file[0])
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** @type {(dir: Dir, names: readonly string[]) => Dir} */
|
|
53
|
+
const path = (dir, names) => names.reduce(subDir, dir)
|
|
54
|
+
|
|
55
|
+
/** @type {(state: State) => GitHubAction} */
|
|
56
|
+
const workflow = state => {
|
|
57
|
+
const workflows = path(state.root, ['.github', 'workflows'])
|
|
58
|
+
return unwrap(parseGitHubAction(unwrap(jsonParse(text(workflows, 'ci.yml')))))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** @type {(state: State, id: string) => string} */
|
|
62
|
+
const flake = (state, id) =>
|
|
63
|
+
text(path(state.root, ['nix', 'generated', id]), 'flake.nix')
|
|
64
|
+
|
|
65
|
+
/** @type {(rust: boolean, nodeExtra?: (o: Os) => readonly MetaStep[]) => GitHubAction} */
|
|
66
|
+
const run = (rust, nodeExtra = () => []) => {
|
|
67
|
+
const [state, result] = virtual(makeState(rust, undefined))(ci({ nodeExtra }))
|
|
68
|
+
assertEq(result, 0)
|
|
69
|
+
return workflow(state)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** @type {(packageJson?: string) => GitHubAction} */
|
|
73
|
+
const runDefault = packageJson => {
|
|
74
|
+
const [state, result] = virtual(makeState(false, packageJson))(main())
|
|
75
|
+
assertEq(result, 0)
|
|
76
|
+
return workflow(state)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export const proof = {
|
|
80
|
+
matrixShape: () => {
|
|
81
|
+
const gha = run(true)
|
|
82
|
+
assertEq(Object.keys(gha.jobs).length, 13, 'expected 13 CI jobs')
|
|
83
|
+
assertEq(gha.permissions.contents, 'read', 'expected read-only contents permission')
|
|
84
|
+
assertEq(Object.keys(gha.permissions).length, 1, 'expected least-privilege workflow permissions')
|
|
85
|
+
assert(hasRunInJob('ubuntu-intel', 'cargo test --target i686-unknown-linux-gnu')(gha), 'expected Ubuntu Intel i686 check')
|
|
86
|
+
assert(hasRunInJob('ubuntu-intel', 'cargo test --target i686-unknown-linux-gnu --release')(gha), 'expected Ubuntu Intel i686 release check')
|
|
87
|
+
assert(hasRunInJob('ubuntu-intel', 'cargo clippy --target i686-unknown-linux-gnu -- -D warnings')(gha), 'expected Ubuntu Intel i686 lint')
|
|
88
|
+
assert(hasRunInJob('ubuntu-intel', 'cargo clippy --target i686-unknown-linux-gnu --release -- -D warnings')(gha), 'expected Ubuntu Intel i686 release lint')
|
|
89
|
+
assert(hasRunInJob('ubuntu-arm', 'cargo test --release')(gha), 'expected native platform Rust release check')
|
|
90
|
+
assert(hasRunInJob('ubuntu-arm', 'cargo clippy -- -D warnings')(gha), 'expected native platform Rust lint')
|
|
91
|
+
assert(hasRunInJob('ubuntu-arm', 'cargo clippy --release -- -D warnings')(gha), 'expected native platform Rust release lint')
|
|
92
|
+
assert(hasRunInJob('wasm', 'cargo test --target wasm32-wasip1 --release')(gha), 'expected target-specific WASM release check')
|
|
93
|
+
assert(hasRunInJob('wasm', 'cargo clippy --target wasm32-wasip1 -- -D warnings')(gha), 'expected target-specific WASM Rust lint')
|
|
94
|
+
assert(hasRunInJob('wasm', 'cargo clippy --target wasm32-wasip1 --release -- -D warnings')(gha), 'expected target-specific WASM release lint')
|
|
95
|
+
// Wasmtime 47 removed wasi-threads: the threads target must run under
|
|
96
|
+
// Wasmer only, while Clippy (no runner) stays.
|
|
97
|
+
assert(hasRunInJob('wasm', 'cargo test --target wasm32-wasip1-threads --config .cargo/config.wasmer.toml')(gha), 'expected Wasmer WASM threads check')
|
|
98
|
+
assert(hasRunInJob('wasm', 'cargo clippy --target wasm32-wasip1-threads -- -D warnings')(gha), 'expected WASM threads lint')
|
|
99
|
+
assert(!hasExactRunInJob('wasm', 'cargo test --target wasm32-wasip1-threads')(gha), 'unexpected Wasmtime WASM threads check')
|
|
100
|
+
assert(!hasExactRunInJob('wasm', 'cargo test --target wasm32-wasip1-threads --release')(gha), 'unexpected Wasmtime WASM threads release check')
|
|
101
|
+
assert(hasRunInJob('node22', 'fjs test')(gha), 'expected Node 22 FunctionalScript smoke test')
|
|
102
|
+
assert(hasRunInJob('node26', 'npm pack')(gha), 'expected Node 26 package check')
|
|
103
|
+
assert(hasRunInJob('node26', 'npm run ci-update')(gha), 'expected Node 26 workflow regeneration')
|
|
104
|
+
assert(hasRunInJob('node26', 'git add -A && git diff --cached --exit-code')(gha), 'expected Node 26 generated-file drift check')
|
|
105
|
+
assert(!hasRun('npm publish --dry-run')(gha), 'unexpected npm publish dry-run')
|
|
106
|
+
for (const id of /** @type {const} */ ([
|
|
107
|
+
'ubuntu-intel',
|
|
108
|
+
'ubuntu-arm',
|
|
109
|
+
'macos-intel',
|
|
110
|
+
'macos-arm',
|
|
111
|
+
'windows-intel',
|
|
112
|
+
'windows-arm',
|
|
113
|
+
'node22',
|
|
114
|
+
'node24',
|
|
115
|
+
'node26',
|
|
116
|
+
])) {
|
|
117
|
+
assert(hasRunInJob(id, 'npm ci')(gha), `expected npm ci in ${id}`)
|
|
118
|
+
}
|
|
119
|
+
assert(!hasRunInJob('deno', 'npm ci')(gha), 'unexpected npm ci in deno job')
|
|
120
|
+
assert(!hasRunInJob('bun', 'npm ci')(gha), 'unexpected npm ci in bun job')
|
|
121
|
+
},
|
|
122
|
+
rust: () => {
|
|
123
|
+
assert(hasRun('cargo')(run(true)), 'expected Rust steps')
|
|
124
|
+
},
|
|
125
|
+
noRust: () => {
|
|
126
|
+
assert(!hasRun('cargo')(run(false)), 'unexpected Rust steps')
|
|
127
|
+
},
|
|
128
|
+
extra: {
|
|
129
|
+
allOs: () => {
|
|
130
|
+
const cmd = 'echo hello'
|
|
131
|
+
const gha = run(false, () => [test({ run: cmd })])
|
|
132
|
+
for (const o of /** @type {const} */ (['ubuntu', 'macos', 'windows'])) {
|
|
133
|
+
for (const a of /** @type {const} */ (['intel', 'arm'])) {
|
|
134
|
+
assert(hasRunInJob(`${o}-${a}`, cmd)(gha), `missing extra step in ${o}-${a}`)
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
osSpecific: () => {
|
|
139
|
+
const gha = run(false, o => o === 'ubuntu' ? [test({ run: 'echo ubuntu-only' })] : [])
|
|
140
|
+
for (const a of /** @type {const} */ (['intel', 'arm'])) {
|
|
141
|
+
assert(hasRunInJob(`ubuntu-${a}`, 'echo ubuntu-only')(gha), `missing step in ubuntu-${a}`)
|
|
142
|
+
assert(!hasRunInJob(`macos-${a}`, 'echo ubuntu-only')(gha), `unexpected step in macos-${a}`)
|
|
143
|
+
assert(!hasRunInJob(`windows-${a}`, 'echo ubuntu-only')(gha), `unexpected step in windows-${a}`)
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
defaultSetup: {
|
|
148
|
+
functionalscriptPackage: () => {
|
|
149
|
+
const gha = runDefault('{"name":"functionalscript"}')
|
|
150
|
+
assert(hasRun('fjs test')(gha), 'expected fjs self-test')
|
|
151
|
+
assert(hasRun(`deno run -A --minimum-dependency-age=0 npm:functionalscript@${functionalscript} test`)(gha), 'expected deno self-test')
|
|
152
|
+
assert(hasRun(`bunx functionalscript@${functionalscript} test`)(gha), 'expected bun self-test')
|
|
153
|
+
},
|
|
154
|
+
otherPackage: () => {
|
|
155
|
+
const gha = runDefault('{"name":"other-package"}')
|
|
156
|
+
assert(hasRun(`deno run -A --minimum-dependency-age=0 npm:functionalscript@${functionalscript} test`)(gha), 'expected canonical deno self-test')
|
|
157
|
+
assert(hasRun(`bunx functionalscript@${functionalscript} test`)(gha), 'expected canonical bun self-test')
|
|
158
|
+
},
|
|
159
|
+
configuredPackageVersion: () => {
|
|
160
|
+
const gha = runDefault('{"name":"other-package","version":"1.2.3"}')
|
|
161
|
+
assert(hasRun(`npm install -g functionalscript@${functionalscript}`)(gha), 'expected configured-version platform install')
|
|
162
|
+
assert(hasRun(`deno install -g -A --minimum-dependency-age=0 npm:functionalscript@${functionalscript}`)(gha), 'expected configured-version deno install cache')
|
|
163
|
+
assert(hasRun('deno install --frozen')(gha), 'expected deno lock install')
|
|
164
|
+
assert(hasRun(`deno run -A --minimum-dependency-age=0 npm:functionalscript@${functionalscript} test`)(gha), 'expected configured-version deno install')
|
|
165
|
+
assert(hasRun('deno task cov')(gha), 'expected deno coverage task')
|
|
166
|
+
assert(hasRun(`bun install -g functionalscript@${functionalscript}`)(gha), 'expected configured-version bun cache')
|
|
167
|
+
assert(hasRun('bun install --frozen-lockfile')(gha), 'expected bun lock install')
|
|
168
|
+
assert(hasRun(`bunx functionalscript@${functionalscript} test`)(gha), 'expected configured-version bun install')
|
|
169
|
+
},
|
|
170
|
+
missingPackageJson: () => {
|
|
171
|
+
const gha = runDefault()
|
|
172
|
+
assert(hasRun(`npm install -g functionalscript@${functionalscript}`)(gha), 'expected configured-version install')
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
nixFlakes: () => {
|
|
176
|
+
const [state, result] = virtual(makeState(false, undefined))(main())
|
|
177
|
+
assertEq(result, 0)
|
|
178
|
+
for (const { id, packages } of nodeNixJobs) {
|
|
179
|
+
const [nodePackage] = packages
|
|
180
|
+
assert(
|
|
181
|
+
flake(state, id).includes(`pkgs.${nodePackage}`),
|
|
182
|
+
`expected ${nodePackage} in the ${id} flake`)
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
nixFlakeJob: () => {
|
|
186
|
+
const gha = run(false)
|
|
187
|
+
const job = gha.jobs['nix-flakes']
|
|
188
|
+
assert(job !== undefined, 'expected the temporary flake job')
|
|
189
|
+
assert(
|
|
190
|
+
job.steps.some(step => step.uses?.startsWith('cachix/install-nix-action@') === true),
|
|
191
|
+
'expected a pinned Nix installer')
|
|
192
|
+
// Exactly one check per unmigrated flake: none goes unchecked, and no
|
|
193
|
+
// check outlives the flake it was written for. A migrated job checks its
|
|
194
|
+
// own flake by running through it, so it is not covered here.
|
|
195
|
+
assertEq(job.steps.filter(step => step.run !== undefined).length, nodeNixJobs.length)
|
|
196
|
+
for (const { id } of nodeNixJobs) {
|
|
197
|
+
assert(
|
|
198
|
+
hasRunInJob('nix-flakes', `nix develop ./nix/generated/${id} --command node --version`)(gha),
|
|
199
|
+
`expected the ${id} flake to be instantiated`)
|
|
200
|
+
}
|
|
201
|
+
// Since the flakes no longer assert their own version, this job is the
|
|
202
|
+
// only place the Nix runtime is tied to the version `setup-node` installs.
|
|
203
|
+
for (const version of [node.node22, node.node24, node.default]) {
|
|
204
|
+
assert(
|
|
205
|
+
hasRunInJob('nix-flakes', `= v${version}`)(gha),
|
|
206
|
+
`expected the flake job to check Node ${version}`)
|
|
207
|
+
}
|
|
208
|
+
// The canonical Node jobs keep their current runtime setup until they
|
|
209
|
+
// are migrated one at a time.
|
|
210
|
+
for (const { id } of nodeNixJobs) {
|
|
211
|
+
assert(!hasRunInJob(id, 'nix develop')(gha), `unexpected nix develop in ${id}`)
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
ubuntu: () => {
|
|
215
|
+
const job = ubuntu([test({ run: 'echo hi' })])
|
|
216
|
+
assert(job['runs-on'] !== undefined, 'expected runs-on')
|
|
217
|
+
assert(job.steps.length > 0, 'expected steps')
|
|
218
|
+
},
|
|
219
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CI step builder for the Rust crate: platform compatibility jobs run native
|
|
3
|
+
* tests and Clippy, Intel jobs also run 32-bit target tests and Clippy, and the
|
|
4
|
+
* canonical WASM job installs Wasmtime and Wasmer before exercising every WASM
|
|
5
|
+
* target.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*
|
|
9
|
+
* @import { Architecture, MetaStep, Os } from '../common/types.ts'
|
|
10
|
+
*/
|
|
11
|
+
import type { Architecture, MetaStep, Os } from '../common/types.ts';
|
|
12
|
+
/** @type {(v: Os, a: Architecture) => readonly MetaStep[]} */
|
|
13
|
+
export declare const rustPlatformSteps: (v: Os, a: Architecture) => readonly MetaStep[];
|
|
14
|
+
/** @type {readonly MetaStep[]} */
|
|
15
|
+
export declare const rustWasmSteps: readonly MetaStep[];
|