functionalscript 0.44.0 → 0.45.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/fjs/asn.1/proof.f.d.mts +5 -0
- package/fjs/asn.1/proof.f.mjs +15 -3
- package/fjs/asserts/module.f.d.mts +14 -0
- package/fjs/asserts/module.f.mjs +20 -0
- package/fjs/asserts/proof.f.d.mts +3 -0
- package/fjs/asserts/proof.f.mjs +15 -1
- package/fjs/basen/base128/proof.f.d.mts +3 -1
- package/fjs/basen/base128/proof.f.mjs +3 -1
- package/fjs/basen/base64/module.f.mjs +7 -3
- package/fjs/basen/base64/proof.f.d.mts +3 -1
- package/fjs/basen/base64/proof.f.mjs +7 -4
- package/fjs/basen/cbase32/proof.f.d.mts +3 -1
- package/fjs/basen/cbase32/proof.f.mjs +3 -1
- package/fjs/bnf/data/proof.f.mjs +0 -1
- package/fjs/bnf/descent/module.f.d.mts +17 -2
- package/fjs/bnf/descent/module.f.mjs +118 -41
- package/fjs/bnf/descent/proof.f.d.mts +1 -0
- package/fjs/bnf/descent/proof.f.mjs +77 -1
- package/fjs/bnf/descent/types.d.ts +12 -4
- package/fjs/bnf/ll1/module.f.d.mts +28 -2
- package/fjs/bnf/ll1/module.f.mjs +180 -38
- package/fjs/bnf/ll1/proof.f.d.mts +2 -0
- package/fjs/bnf/ll1/proof.f.mjs +62 -1
- package/fjs/bnf/ll1/types.d.ts +14 -8
- package/fjs/bnf/module.f.d.mts +15 -6
- package/fjs/bnf/module.f.mjs +52 -11
- package/fjs/bnf/proof.f.d.mts +2 -0
- package/fjs/bnf/proof.f.mjs +79 -3
- package/fjs/bnf/token_symbol/module.f.d.mts +4 -3
- package/fjs/bnf/token_symbol/module.f.mjs +7 -6
- package/fjs/bnf/token_symbol/proof.f.mjs +5 -2
- package/fjs/bnf/token_symbol/types.d.ts +2 -2
- package/fjs/bnf/types.d.ts +10 -3
- package/fjs/cas/cli/proof.f.d.mts +3 -1
- package/fjs/cas/cli/proof.f.mjs +3 -1
- package/fjs/cas/evo/module.f.d.mts +7 -13
- package/fjs/cas/evo/module.f.mjs +103 -96
- package/fjs/cas/evo/proof.f.mjs +6 -3
- package/fjs/cas/module.f.mjs +96 -109
- package/fjs/ci/common/module.f.d.mts +1 -1
- package/fjs/ci/common/module.f.mjs +1 -0
- package/fjs/ci/config/module.f.d.mts +2 -2
- package/fjs/ci/config/module.f.mjs +2 -2
- package/fjs/ci/nix/proof.f.d.mts +2 -0
- package/fjs/ci/nix/proof.f.mjs +2 -2
- package/fjs/ci/proof.f.d.mts +4 -2
- package/fjs/ci/proof.f.mjs +4 -3
- package/fjs/cli/proof.f.d.mts +4 -2
- package/fjs/cli/proof.f.mjs +4 -2
- package/fjs/common/monoid/module.f.d.mts +70 -12
- package/fjs/common/monoid/module.f.mjs +177 -14
- package/fjs/common/monoid/proof.f.d.mts +12 -1
- package/fjs/common/monoid/proof.f.mjs +88 -4
- package/fjs/common/monoid/types.d.ts +23 -0
- package/fjs/crypto/secp/proof.f.d.mts +3 -1
- package/fjs/crypto/secp/proof.f.mjs +3 -1
- package/fjs/crypto/sha2/proof.f.d.mts +3 -1
- package/fjs/crypto/sha2/proof.f.mjs +3 -1
- package/fjs/crypto/vdf/module.f.d.mts +23 -4
- package/fjs/crypto/vdf/module.f.mjs +6 -4
- package/fjs/dev/module.f.d.mts +5 -2
- package/fjs/dev/module.f.mjs +5 -4
- package/fjs/dev/package_json/module.f.d.mts +7 -0
- package/fjs/dev/package_json/module.f.mjs +10 -7
- package/fjs/dev/update/module.f.d.mts +3 -0
- package/fjs/dev/update/module.f.mjs +3 -2
- package/fjs/dev/update/proof.f.d.mts +3 -0
- package/fjs/dev/update/proof.f.mjs +1 -2
- package/fjs/djs/parser/module.f.d.mts +3 -0
- package/fjs/djs/parser/module.f.mjs +18 -0
- package/fjs/djs/parser/proof.f.d.mts +3 -0
- package/fjs/djs/parser/proof.f.mjs +13 -1
- package/fjs/djs/proof.f.d.mts +3 -0
- package/fjs/djs/proof.f.mjs +4 -1
- package/fjs/djs/serializer/module.f.mjs +5 -4
- package/fjs/djs/tokenizer/module.f.mjs +21 -13
- package/fjs/djs/tokenizer/proof.f.d.mts +3 -0
- package/fjs/djs/tokenizer/proof.f.mjs +14 -2
- package/fjs/djs/transpiler/module.f.d.mts +1 -12
- package/fjs/djs/transpiler/module.f.mjs +1 -20
- package/fjs/djs/transpiler/types.d.ts +25 -0
- package/fjs/effects/eff/module.f.d.mts +10 -0
- package/fjs/effects/eff/module.f.mjs +4 -2
- package/fjs/effects/eff/proof.f.d.mts +3 -0
- package/fjs/effects/eff/proof.f.mjs +4 -1
- package/fjs/effects/list/module.f.d.mts +10 -2
- package/fjs/effects/list/module.f.mjs +4 -2
- package/fjs/effects/memory/module.f.d.mts +4 -2
- package/fjs/effects/memory/module.f.mjs +4 -3
- package/fjs/effects/memory/proof.f.d.mts +4 -0
- package/fjs/effects/memory/proof.f.mjs +5 -2
- package/fjs/effects/mock/module.f.d.mts +10 -2
- package/fjs/effects/mock/module.f.mjs +4 -2
- package/fjs/effects/module.d.mts +8 -0
- package/fjs/effects/module.f.d.mts +6 -4
- package/fjs/effects/module.f.mjs +6 -5
- package/fjs/effects/module.mjs +9 -1
- package/fjs/effects/node/memory/module.d.mts +3 -0
- package/fjs/effects/node/memory/module.mjs +3 -2
- package/fjs/effects/node/memory/proof.d.mts +2 -0
- package/fjs/effects/node/memory/proof.mjs +2 -1
- package/fjs/effects/node/module.d.mts +5 -0
- package/fjs/effects/node/module.f.d.mts +17 -12
- package/fjs/effects/node/module.f.mjs +6 -12
- package/fjs/effects/node/module.mjs +5 -17
- package/fjs/effects/node/virtual/module.f.d.mts +6 -3
- package/fjs/effects/node/virtual/module.f.mjs +6 -5
- package/fjs/effects/node/virtual/proof.f.d.mts +4 -1
- package/fjs/effects/node/virtual/proof.f.mjs +13 -1
- package/fjs/effects/proof.f.d.mts +3 -0
- package/fjs/effects/proof.f.mjs +4 -1
- package/fjs/emergent_testing/all.test.d.mts +8 -0
- package/fjs/emergent_testing/all.test.mjs +14 -0
- package/fjs/emergent_testing/module.f.d.mts +6 -1
- package/fjs/emergent_testing/module.f.mjs +40 -66
- package/fjs/emergent_testing/proof.f.mjs +5 -5
- package/fjs/fsc/bnf.f.d.mts +3 -0
- package/fjs/fsc/bnf.f.mjs +4 -1
- package/fjs/fsc/json.f.d.mts +3 -0
- package/fjs/fsc/json.f.mjs +4 -1
- package/fjs/fsc/module.f.d.mts +9 -0
- package/fjs/fsc/module.f.mjs +5 -3
- package/fjs/fsm/proof.f.d.mts +3 -0
- package/fjs/fsm/proof.f.mjs +4 -1
- package/fjs/js/tokenizer/module.f.d.mts +7 -0
- package/fjs/js/tokenizer/module.f.mjs +19 -55
- package/fjs/mcp/module.f.d.mts +36 -1
- package/fjs/mcp/module.f.mjs +9 -7
- package/fjs/mcp/proof.f.d.mts +11 -1
- package/fjs/mcp/proof.f.mjs +11 -18
- package/fjs/media/html/module.f.d.mts +12 -0
- package/fjs/media/html/module.f.mjs +6 -4
- package/fjs/media/html/proof.f.d.mts +3 -0
- package/fjs/media/html/proof.f.mjs +4 -1
- package/fjs/media/json/parser/module.f.d.mts +1 -1
- package/fjs/media/json/parser/module.f.mjs +25 -8
- package/fjs/media/json/parser/types.d.ts +5 -0
- package/fjs/media/json/rtti/proof.f.d.mts +3 -0
- package/fjs/media/json/rtti/proof.f.mjs +3 -3
- package/fjs/media/json/schema/module.f.d.mts +61 -27
- package/fjs/media/json/schema/module.f.mjs +228 -63
- package/fjs/media/json/schema/proof.f.d.mts +41 -0
- package/fjs/media/json/schema/proof.f.mjs +219 -7
- package/fjs/media/json/serializer/module.f.d.mts +13 -0
- package/fjs/media/json/serializer/module.f.mjs +7 -7
- package/fjs/media/json/tokenizer/module.f.d.mts +8 -0
- package/fjs/media/json/tokenizer/module.f.mjs +24 -5
- package/fjs/media/nix/module.f.d.mts +13 -0
- package/fjs/media/nix/module.f.mjs +4 -2
- package/fjs/media/nix/proof.f.d.mts +3 -0
- package/fjs/media/nix/proof.f.mjs +4 -1
- package/fjs/media/revision/module.f.d.mts +5 -0
- package/fjs/media/revision/module.f.mjs +8 -11
- package/fjs/media/revision/proof.f.d.mts +4 -0
- package/fjs/media/revision/proof.f.mjs +5 -2
- package/fjs/media/type/module.f.d.mts +28 -11
- package/fjs/media/type/module.f.mjs +69 -85
- package/fjs/media/type/proof.f.d.mts +16 -0
- package/fjs/media/type/proof.f.mjs +44 -4
- package/fjs/module.d.mts +5 -0
- package/fjs/module.f.d.mts +8 -0
- package/fjs/module.f.mjs +4 -2
- package/fjs/module.mjs +6 -0
- package/fjs/path/module.f.d.mts +8 -0
- package/fjs/path/module.f.mjs +4 -2
- package/fjs/proof.f.d.mts +4 -0
- package/fjs/proof.f.mjs +5 -2
- package/fjs/protocol/json_rpc/module.f.d.mts +1 -1
- package/fjs/protocol/json_rpc/module.f.mjs +7 -4
- package/fjs/protocol/json_rpc/proof.f.d.mts +6 -0
- package/fjs/protocol/json_rpc/proof.f.mjs +22 -1
- package/fjs/protocol/mcp/proof.f.d.mts +4 -0
- package/fjs/protocol/mcp/proof.f.mjs +47 -24
- package/fjs/protocol/mcp/stdio/module.f.d.mts +2 -4
- package/fjs/protocol/mcp/stdio/module.f.mjs +1 -8
- package/fjs/protocol/mcp/stdio/proof.f.d.mts +1 -1
- package/fjs/protocol/mcp/stdio/proof.f.mjs +1 -1
- package/fjs/protocol/mcp/stdio/types.d.ts +14 -0
- package/fjs/sul/id/module.f.d.mts +5 -0
- package/fjs/sul/id/module.f.mjs +5 -4
- package/fjs/sul/level/hash/module.f.d.mts +4 -1
- package/fjs/sul/level/hash/module.f.mjs +4 -3
- package/fjs/sul/level/hash/proof.f.d.mts +4 -0
- package/fjs/sul/level/hash/proof.f.mjs +5 -2
- package/fjs/sul/level/literal/module.f.d.mts +4 -1
- package/fjs/sul/level/literal/module.f.mjs +4 -3
- package/fjs/sul/level/literal/proof.f.d.mts +3 -0
- package/fjs/sul/level/literal/proof.f.mjs +4 -1
- package/fjs/sul/module.f.d.mts +5 -3
- package/fjs/sul/module.f.mjs +5 -4
- package/fjs/sul/proof.f.d.mts +4 -0
- package/fjs/sul/proof.f.mjs +5 -2
- package/fjs/text/ascii/module.f.d.mts +26 -0
- package/fjs/text/ascii/module.f.mjs +49 -1
- package/fjs/text/ascii/proof.f.d.mts +10 -0
- package/fjs/text/ascii/proof.f.mjs +33 -1
- package/fjs/text/code_point/module.f.d.mts +21 -3
- package/fjs/text/code_point/module.f.mjs +24 -8
- package/fjs/text/code_point/proof.f.d.mts +1 -0
- package/fjs/text/code_point/proof.f.mjs +28 -0
- package/fjs/text/module.f.d.mts +4 -2
- package/fjs/text/module.f.mjs +4 -3
- package/fjs/text/proof.f.d.mts +3 -0
- package/fjs/text/proof.f.mjs +4 -1
- package/fjs/text/sgr/module.f.d.mts +4 -1
- package/fjs/text/sgr/module.f.mjs +4 -3
- package/fjs/text/sgr/proof.f.d.mts +3 -0
- package/fjs/text/sgr/proof.f.mjs +4 -1
- package/fjs/text/utf16/module.f.d.mts +5 -1
- package/fjs/text/utf16/module.f.mjs +31 -33
- package/fjs/text/utf16/proof.f.d.mts +3 -1
- package/fjs/text/utf16/proof.f.mjs +18 -1
- package/fjs/text/utf8/module.f.d.mts +9 -5
- package/fjs/text/utf8/module.f.mjs +16 -18
- package/fjs/types/array/module.f.d.mts +2 -1
- package/fjs/types/array/module.f.mjs +2 -2
- package/fjs/types/bigfloat/module.f.d.mts +21 -1
- package/fjs/types/bigfloat/module.f.mjs +33 -7
- package/fjs/types/bigfloat/proof.f.d.mts +1 -0
- package/fjs/types/bigfloat/proof.f.mjs +46 -0
- package/fjs/types/bigint/module.f.d.mts +4 -0
- package/fjs/types/bigint/module.f.mjs +4 -3
- package/fjs/types/bit_vec/module.f.d.mts +10 -14
- package/fjs/types/bit_vec/module.f.mjs +61 -71
- package/fjs/types/bit_vec/proof.f.d.mts +6 -0
- package/fjs/types/bit_vec/proof.f.mjs +29 -3
- package/fjs/types/btree/find/module.f.d.mts +5 -1
- package/fjs/types/btree/find/module.f.mjs +5 -5
- package/fjs/types/btree/find/proof.f.d.mts +5 -1
- package/fjs/types/btree/find/proof.f.mjs +5 -3
- package/fjs/types/btree/module.f.d.mts +3 -0
- package/fjs/types/btree/module.f.mjs +3 -2
- package/fjs/types/btree/proof.f.d.mts +5 -1
- package/fjs/types/btree/proof.f.mjs +5 -3
- package/fjs/types/btree/remove/module.f.d.mts +11 -0
- package/fjs/types/btree/remove/module.f.mjs +9 -9
- package/fjs/types/btree/remove/proof.f.d.mts +3 -0
- package/fjs/types/btree/remove/proof.f.mjs +4 -1
- package/fjs/types/btree/set/module.f.d.mts +9 -0
- package/fjs/types/btree/set/module.f.mjs +5 -6
- package/fjs/types/btree/set/proof.f.d.mts +3 -0
- package/fjs/types/btree/set/proof.f.mjs +4 -1
- package/fjs/types/btree/types/module.f.d.mts +2 -1
- package/fjs/types/btree/types/module.f.mjs +2 -1
- package/fjs/types/byte_set/module.f.d.mts +10 -1
- package/fjs/types/byte_set/module.f.mjs +5 -3
- package/fjs/types/byte_set/proof.f.d.mts +3 -1
- package/fjs/types/byte_set/proof.f.mjs +3 -1
- package/fjs/types/function/compare/module.f.d.mts +3 -2
- package/fjs/types/function/compare/module.f.mjs +3 -2
- package/fjs/types/function/module.f.d.mts +8 -1
- package/fjs/types/function/module.f.mjs +8 -1
- package/fjs/types/function/operator/module.f.d.mts +2 -1
- package/fjs/types/function/operator/module.f.mjs +2 -2
- package/fjs/types/list/module.f.d.mts +9 -2
- package/fjs/types/list/module.f.mjs +5 -3
- package/fjs/types/list/proof.f.d.mts +4 -1
- package/fjs/types/list/proof.f.mjs +4 -2
- package/fjs/types/nibble_set/module.f.d.mts +2 -1
- package/fjs/types/nibble_set/module.f.mjs +2 -2
- package/fjs/types/nominal/module.f.d.mts +2 -1
- package/fjs/types/nominal/module.f.mjs +2 -1
- package/fjs/types/nullable/module.f.d.mts +8 -2
- package/fjs/types/nullable/module.f.mjs +4 -2
- package/fjs/types/number/module.f.d.mts +4 -0
- package/fjs/types/number/module.f.mjs +4 -3
- package/fjs/types/object/module.f.d.mts +14 -2
- package/fjs/types/object/module.f.mjs +15 -6
- package/fjs/types/object/proof.f.d.mts +5 -2
- package/fjs/types/object/proof.f.mjs +6 -3
- package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
- package/fjs/types/object/structurally_same/module.f.mjs +59 -0
- package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
- package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
- package/fjs/types/ordered_map/module.f.d.mts +5 -0
- package/fjs/types/ordered_map/module.f.mjs +5 -4
- package/fjs/types/ordered_map/proof.f.d.mts +3 -0
- package/fjs/types/ordered_map/proof.f.mjs +4 -1
- package/fjs/types/patricia_trie/module.f.d.mts +2 -1
- package/fjs/types/patricia_trie/module.f.mjs +2 -2
- package/fjs/types/patricia_trie/proof.f.d.mts +3 -0
- package/fjs/types/patricia_trie/proof.f.mjs +4 -1
- package/fjs/types/prime_field/module.f.d.mts +3 -1
- package/fjs/types/prime_field/module.f.mjs +3 -2
- package/fjs/types/range/module.f.d.mts +2 -1
- package/fjs/types/range/module.f.mjs +2 -2
- package/fjs/types/range_map/module.f.d.mts +6 -0
- package/fjs/types/range_map/module.f.mjs +6 -9
- package/fjs/types/range_map/proof.f.d.mts +5 -1
- package/fjs/types/range_map/proof.f.mjs +5 -3
- package/fjs/types/range_set/module.f.d.mts +5 -0
- package/fjs/types/range_set/module.f.mjs +1 -0
- package/fjs/types/range_set/proof.f.d.mts +3 -0
- package/fjs/types/range_set/proof.f.mjs +4 -1
- package/fjs/types/result/module.d.mts +8 -0
- package/fjs/types/result/module.f.d.mts +37 -7
- package/fjs/types/result/module.f.mjs +38 -8
- package/fjs/types/result/module.mjs +9 -1
- package/fjs/types/result/proof.f.d.mts +5 -0
- package/fjs/types/result/proof.f.mjs +22 -2
- package/fjs/types/rtti/common/module.f.d.mts +35 -2
- package/fjs/types/rtti/common/module.f.mjs +9 -7
- package/fjs/types/rtti/common/proof.f.d.mts +4 -0
- package/fjs/types/rtti/common/proof.f.mjs +5 -2
- package/fjs/types/rtti/data/module.f.d.mts +120 -0
- package/fjs/types/rtti/data/module.f.mjs +1030 -0
- package/fjs/types/rtti/data/proof.f.d.mts +75 -0
- package/fjs/types/rtti/data/proof.f.mjs +566 -0
- package/fjs/types/rtti/data/types.d.ts +83 -0
- package/fjs/types/rtti/module.f.d.mts +12 -5
- package/fjs/types/rtti/module.f.mjs +7 -5
- package/fjs/types/rtti/parse/module.f.d.mts +38 -0
- package/fjs/types/rtti/parse/module.f.mjs +9 -7
- package/fjs/types/rtti/parse/proof.f.mjs +18 -38
- package/fjs/types/rtti/proof.f.d.mts +3 -1
- package/fjs/types/rtti/proof.f.mjs +3 -1
- package/fjs/types/rtti/ts/module.f.d.mts +68 -9
- package/fjs/types/rtti/ts/module.f.mjs +262 -30
- package/fjs/types/rtti/ts/proof.f.d.mts +44 -0
- package/fjs/types/rtti/ts/proof.f.mjs +152 -4
- package/fjs/types/rtti/ts/types.d.ts +11 -0
- package/fjs/types/rtti/types.d.ts +40 -0
- package/fjs/types/rtti/validate/module.f.d.mts +36 -1
- package/fjs/types/rtti/validate/module.f.mjs +6 -4
- package/fjs/types/sorted_list/module.f.d.mts +4 -1
- package/fjs/types/sorted_list/module.f.mjs +21 -12
- package/fjs/types/sorted_list/proof.f.d.mts +3 -1
- package/fjs/types/sorted_list/proof.f.mjs +3 -1
- package/fjs/types/sorted_set/module.f.d.mts +31 -1
- package/fjs/types/sorted_set/module.f.mjs +4 -2
- package/fjs/types/sorted_set/proof.f.d.mts +3 -1
- package/fjs/types/sorted_set/proof.f.mjs +3 -1
- package/fjs/types/string/module.f.d.mts +4 -0
- package/fjs/types/string/module.f.mjs +4 -3
- package/fjs/types/string_set/module.f.d.mts +3 -1
- package/fjs/types/string_set/module.f.mjs +3 -2
- package/fjs/types/ts/module.f.d.mts +2 -0
- package/fjs/types/ts/module.f.mjs +3 -3
- package/fjs/types/ts/proof.f.d.mts +1 -0
- package/fjs/types/ts/proof.f.mjs +5 -0
- package/fjs/types/ts/types.d.ts +6 -1
- package/fjs/types/uint8array/module.f.d.mts +13 -2
- package/fjs/types/uint8array/module.f.mjs +20 -15
- package/fjs/website/module.f.d.mts +3 -0
- package/fjs/website/module.f.mjs +3 -2
- package/package.json +3 -3
- package/fjs/asn.1/types.js +0 -6
- package/fjs/asserts/types.js +0 -6
- package/fjs/basen/types.js +0 -6
- package/fjs/bnf/data/types.js +0 -6
- package/fjs/bnf/descent/types.js +0 -6
- package/fjs/bnf/ll1/types.js +0 -6
- package/fjs/bnf/token_symbol/types.js +0 -6
- package/fjs/bnf/types.js +0 -6
- package/fjs/cas/evo/types.js +0 -7
- package/fjs/cas/types.js +0 -6
- package/fjs/ci/common/types.js +0 -1
- package/fjs/ci/nix/types.js +0 -6
- package/fjs/ci/types.js +0 -6
- package/fjs/cli/types.js +0 -6
- package/fjs/common/monoid/types.js +0 -6
- package/fjs/crypto/pow/types.js +0 -6
- package/fjs/crypto/secp/types.js +0 -6
- package/fjs/crypto/sha2/types.js +0 -6
- package/fjs/crypto/sign/types.js +0 -6
- package/fjs/crypto/vdf/types.js +0 -6
- package/fjs/dev/types.js +0 -6
- package/fjs/djs/ast/types.js +0 -8
- package/fjs/djs/parser/types.js +0 -7
- package/fjs/djs/tokenizer/types.js +0 -7
- package/fjs/djs/types.js +0 -7
- package/fjs/effects/eff/types.js +0 -6
- package/fjs/effects/list/types.js +0 -6
- package/fjs/effects/memory/types.js +0 -6
- package/fjs/effects/mock/types.js +0 -6
- package/fjs/effects/node/types.js +0 -6
- package/fjs/effects/node/virtual/types.js +0 -7
- package/fjs/effects/types.js +0 -6
- package/fjs/emergent_testing/all.test.d.ts +0 -1
- package/fjs/emergent_testing/all.test.js +0 -5
- package/fjs/emergent_testing/scenarios/all.d.ts +0 -1
- package/fjs/emergent_testing/scenarios/all.js +0 -1
- package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
- package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
- package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
- package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
- package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
- package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.d.ts +0 -3
- package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
- package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
- package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
- package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
- package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
- package/fjs/emergent_testing/types.js +0 -6
- package/fjs/js/tokenizer/types.js +0 -6
- package/fjs/media/html/types.js +0 -6
- package/fjs/media/json/parser/types.js +0 -6
- package/fjs/media/json/tokenizer/types.js +0 -6
- package/fjs/media/json/types.js +0 -13
- package/fjs/media/nix/types.js +0 -6
- package/fjs/media/revision/types.js +0 -8
- package/fjs/media/type/types.js +0 -6
- package/fjs/media/types.js +0 -7
- package/fjs/nanvm/types.js +0 -11
- package/fjs/protocol/json_rpc/types.js +0 -8
- package/fjs/protocol/mcp/types.js +0 -8
- package/fjs/sul/id/types.js +0 -6
- package/fjs/sul/level/hash/types.js +0 -6
- package/fjs/sul/level/literal/types.js +0 -6
- package/fjs/sul/types.js +0 -6
- package/fjs/text/sgr/types.js +0 -6
- package/fjs/text/types.js +0 -6
- package/fjs/text/utf16/types.js +0 -6
- package/fjs/text/utf8/types.js +0 -6
- package/fjs/types/array/types.js +0 -6
- package/fjs/types/bigfloat/types.js +0 -6
- package/fjs/types/bigint/types.js +0 -6
- package/fjs/types/bit_vec/types.js +0 -6
- package/fjs/types/btree/find/types.js +0 -6
- package/fjs/types/btree/types/types.js +0 -6
- package/fjs/types/byte_set/types.js +0 -6
- package/fjs/types/function/compare/types.js +0 -6
- package/fjs/types/function/operator/types.js +0 -6
- package/fjs/types/function/types.js +0 -6
- package/fjs/types/list/types.js +0 -6
- package/fjs/types/nibble_set/types.js +0 -6
- package/fjs/types/nominal/types.js +0 -6
- package/fjs/types/nullable/types.js +0 -6
- package/fjs/types/object/types.js +0 -8
- package/fjs/types/option/types.js +0 -6
- package/fjs/types/ordered_map/types.js +0 -6
- package/fjs/types/patricia_trie/types.js +0 -6
- package/fjs/types/phantom/types.js +0 -11
- package/fjs/types/prime_field/types.js +0 -6
- package/fjs/types/range/types.js +0 -6
- package/fjs/types/range_map/types.js +0 -6
- package/fjs/types/result/types.js +0 -6
- package/fjs/types/rtti/common/types.js +0 -1
- package/fjs/types/rtti/parse/types.js +0 -1
- package/fjs/types/rtti/ts/types.js +0 -1
- package/fjs/types/rtti/types.js +0 -1
- package/fjs/types/rtti/validate/types.js +0 -1
- package/fjs/types/sorted_list/types.js +0 -6
- package/fjs/types/sorted_set/types.js +0 -6
- package/fjs/types/string_set/types.js +0 -6
- package/fjs/types/ts/types.js +0 -8
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @import { List } from '../../../types/list/types.ts'
|
|
9
9
|
* @import { Fold } from '../../../types/function/operator/types.ts'
|
|
10
10
|
* @import { JsonToken } from '../tokenizer/types.ts'
|
|
11
|
-
* @import { _JsonObject, _JsonArray, _StateParse, _JsonState, _JsonStack } from './types.ts'
|
|
11
|
+
* @import { _JsonObject, _JsonArray, _StateParse, _JsonState, _JsonStack, _ValueToken } from './types.ts'
|
|
12
12
|
*/
|
|
13
13
|
import type { Unknown } from '../types.ts';
|
|
14
14
|
import type { Result } from '../../../types/result/types.ts';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @import { List } from '../../../types/list/types.ts'
|
|
9
9
|
* @import { Fold } from '../../../types/function/operator/types.ts'
|
|
10
10
|
* @import { JsonToken } from '../tokenizer/types.ts'
|
|
11
|
-
* @import { _JsonObject, _JsonArray, _StateParse, _JsonState, _JsonStack } from './types.ts'
|
|
11
|
+
* @import { _JsonObject, _JsonArray, _StateParse, _JsonState, _JsonStack, _ValueToken } from './types.ts'
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import { error, ok } from '../../../types/result/module.f.mjs'
|
|
@@ -63,9 +63,14 @@ const popStack = stack => {
|
|
|
63
63
|
: { status: '', top: ne.first, stack: ne.tail }
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* `endArray` only ever runs while parsing the array `startArray` opened
|
|
68
|
+
* (status `'['`/`'[v'`), so `state.top` is always that array here.
|
|
69
|
+
*
|
|
70
|
+
* @type {(state: _StateParse) => _JsonState}
|
|
71
|
+
*/
|
|
67
72
|
const endArray = state => {
|
|
68
|
-
const array =
|
|
73
|
+
const array = toArray(/** @type {_JsonArray} */ (state.top).values)
|
|
69
74
|
const newState = popStack(state.stack)
|
|
70
75
|
return pushValue(newState)(array)
|
|
71
76
|
}
|
|
@@ -76,14 +81,24 @@ const startObject = state => {
|
|
|
76
81
|
return { status: '{', top: { kind: 'object', values: null, key: '' }, stack: newStack }
|
|
77
82
|
}
|
|
78
83
|
|
|
79
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* `endObject` only ever runs while parsing the object `startObject` opened
|
|
86
|
+
* (status `'{'`/`'{v'`), so `state.top` is always that object here.
|
|
87
|
+
*
|
|
88
|
+
* @type {(state: _StateParse) => _JsonState}
|
|
89
|
+
*/
|
|
80
90
|
const endObject = state => {
|
|
81
|
-
const obj =
|
|
91
|
+
const obj = fromMap(/** @type {_JsonObject} */ (state.top).values)
|
|
82
92
|
const newState = popStack(state.stack)
|
|
83
93
|
return pushValue(newState)(obj)
|
|
84
94
|
}
|
|
85
95
|
|
|
86
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Only ever called on a token `isValueToken` has already confirmed carries a
|
|
98
|
+
* value, so the switch covers every `_ValueToken` case with no fallback arm.
|
|
99
|
+
*
|
|
100
|
+
* @type {(token: _ValueToken) => Unknown}
|
|
101
|
+
*/
|
|
87
102
|
const tokenToValue = token => {
|
|
88
103
|
switch (token.kind) {
|
|
89
104
|
case 'null': return null
|
|
@@ -91,11 +106,13 @@ const tokenToValue = token => {
|
|
|
91
106
|
case 'true': return true
|
|
92
107
|
case 'number': return parseFloat(token.value)
|
|
93
108
|
case 'string': return token.value
|
|
94
|
-
default: return null
|
|
95
109
|
}
|
|
96
110
|
}
|
|
97
111
|
|
|
98
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* @param {JsonToken} token
|
|
114
|
+
* @returns {token is _ValueToken}
|
|
115
|
+
*/
|
|
99
116
|
const isValueToken = token => {
|
|
100
117
|
switch (token.kind) {
|
|
101
118
|
case 'null':
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
import type { Unknown } from '../types.ts';
|
|
7
7
|
import type { OrderedMap } from '../../../types/ordered_map/types.ts';
|
|
8
8
|
import type { List } from '../../../types/list/types.ts';
|
|
9
|
+
import type { JsonToken } from '../tokenizer/types.ts';
|
|
10
|
+
/** JSON tokens that carry a directly-usable value. */
|
|
11
|
+
export type _ValueToken = Extract<JsonToken, {
|
|
12
|
+
readonly kind: 'null' | 'false' | 'true' | 'string' | 'number';
|
|
13
|
+
}>;
|
|
9
14
|
export type _JsonObject = {
|
|
10
15
|
readonly kind: 'object';
|
|
11
16
|
readonly values: OrderedMap<Unknown>;
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
* Proof for the JSON rtti schemas.
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
|
+
*
|
|
6
|
+
* @import { ValidateE } from '../../../types/rtti/common/types.ts'
|
|
7
|
+
* @import { Unknown } from '../../../types/rtti/ts/types.ts'
|
|
5
8
|
*/
|
|
6
9
|
|
|
7
10
|
import { assertEq } from '../../../asserts/module.f.mjs'
|
|
8
11
|
import { validate } from '../../../types/rtti/validate/module.f.mjs'
|
|
9
12
|
import { primitive, unknown, object, array } from './module.f.mjs'
|
|
10
13
|
|
|
11
|
-
/** @import { ValidateE } from '../../../types/rtti/common/types.ts' */
|
|
12
|
-
/** @import { Unknown } from '../../../types/rtti/ts/types.ts' */
|
|
13
|
-
|
|
14
14
|
// Reduces a validation to its `ok`/`error` tag: these schemas are about what is
|
|
15
15
|
// accepted, not about the payload, which validation returns unchanged. The
|
|
16
16
|
// erased `ValidateE` keeps the shared helper from re-instantiating each
|
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Converts an rtti schema to a JSON Schema (draft 2020-12) object.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
4
|
+
* {@link toJsonSchema} routes through the serializable RTTI data form
|
|
5
|
+
* (`fjs/types/rtti/data`): `thunk RTTI → toData → dataToJsonSchema`. The data
|
|
6
|
+
* form is a finite graph, so recursive schemas — which the thunk graph
|
|
7
|
+
* represents as self-referencing functions with no leaves — terminate:
|
|
8
|
+
* every named rule is emitted exactly once under `$defs` and every graph
|
|
9
|
+
* edge becomes a local `$ref`.
|
|
10
|
+
*
|
|
11
|
+
* Graph discovery, canonical identity, and definition naming belong to the
|
|
12
|
+
* RTTI data layer; this module only translates the finite graph, so the
|
|
13
|
+
* output is deterministic for equal canonical data: `anyOf` members follow
|
|
14
|
+
* the data form's kind order (`null`, `undefined`, booleans, numbers,
|
|
15
|
+
* strings, bigints, arrays, objects), and `properties`/`required` follow
|
|
16
|
+
* its sorted key order.
|
|
6
17
|
*
|
|
7
18
|
* @module
|
|
8
19
|
*
|
|
9
|
-
* @import {
|
|
10
|
-
* @import {
|
|
11
|
-
* @import { Primitive } from '../../../djs/types.ts'
|
|
20
|
+
* @import { Type as RttiType } from '../../../types/rtti/types.ts'
|
|
21
|
+
* @import { ArraySet, Data, KindSet, Node, ObjectSet, RuleSet, UnionSet } from '../../../types/rtti/data/types.ts'
|
|
12
22
|
* @import { Ts } from '../../../types/rtti/ts/types.ts'
|
|
13
23
|
* @import { Phantom } from '../../../types/phantom/types.ts'
|
|
14
24
|
*/
|
|
15
25
|
import type { Type as RttiType } from '../../../types/rtti/types.ts';
|
|
26
|
+
import type { Data } from '../../../types/rtti/data/types.ts';
|
|
16
27
|
import type { Ts } from '../../../types/rtti/ts/types.ts';
|
|
17
28
|
import type { Phantom } from '../../../types/phantom/types.ts';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
readonly const: import("../../../types/rtti/types.ts").Or<readonly [() => readonly ['or', typeof import("../rtti/module.f.mjs").primitive, typeof import("../rtti/module.f.mjs").object, typeof import("../rtti/module.f.mjs").array], undefined]>;
|
|
21
|
-
readonly not: import("../../../types/rtti/types.ts").Or<readonly [Phantom<() => readonly ['const', /*elided*/ any], _UnknownConst>, undefined]>;
|
|
22
|
-
readonly anyOf: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<() => readonly ['const', any], _UnknownConst>>, undefined]>;
|
|
23
|
-
readonly items: import("../../../types/rtti/types.ts").Or<[Phantom<() => readonly ['const', any], _UnknownConst>, false, undefined]>;
|
|
24
|
-
readonly prefixItems: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<() => readonly ['const', any], _UnknownConst>>, undefined]>;
|
|
25
|
-
readonly properties: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"record", Phantom<() => readonly ['const', any], _UnknownConst>>, undefined]>;
|
|
26
|
-
readonly required: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", import("../../../types/rtti/types.ts")._Type0<"string">>, undefined]>;
|
|
27
|
-
readonly additionalProperties: import("../../../types/rtti/types.ts").Or<readonly [Phantom<() => readonly ['const', any], _UnknownConst>, undefined]>;
|
|
28
|
-
}];
|
|
29
|
+
/** @type {() => readonly ['const', typeof unknownConst]} */
|
|
30
|
+
declare const unknownThunk: () => readonly ['const', typeof unknownConst];
|
|
29
31
|
/**
|
|
30
32
|
* rtti schema for a JSON Schema (draft 2020-12) document.
|
|
31
33
|
* @type {Phantom<typeof unknownThunk, _UnknownConst>}
|
|
@@ -35,43 +37,75 @@ export type Unknown = Ts<typeof unknown>;
|
|
|
35
37
|
/** A JSON Schema (draft 2020-12) document — the subset of keywords that `toJsonSchema` emits. */
|
|
36
38
|
/** @typedef {Ts<typeof unknown>} Unknown */
|
|
37
39
|
declare const unknownConst: {
|
|
40
|
+
readonly $schema: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts")._Type0<"string">, undefined]>;
|
|
41
|
+
readonly $ref: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts")._Type0<"string">, undefined]>;
|
|
42
|
+
readonly $defs: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"record", Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>>, undefined]>;
|
|
38
43
|
readonly type: import("../../../types/rtti/types.ts").Or<["boolean", "number", "string", "integer", "array", "object", undefined]>;
|
|
39
44
|
readonly const: import("../../../types/rtti/types.ts").Or<readonly [() => readonly ['or', typeof import("../rtti/module.f.mjs").primitive, typeof import("../rtti/module.f.mjs").object, typeof import("../rtti/module.f.mjs").array], undefined]>;
|
|
40
|
-
readonly not: import("../../../types/rtti/types.ts").Or<readonly [Phantom<typeof
|
|
41
|
-
readonly anyOf: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<typeof
|
|
42
|
-
readonly items: import("../../../types/rtti/types.ts").Or<[Phantom<typeof
|
|
43
|
-
readonly prefixItems: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<typeof
|
|
44
|
-
readonly
|
|
45
|
+
readonly not: import("../../../types/rtti/types.ts").Or<readonly [Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>, undefined]>;
|
|
46
|
+
readonly anyOf: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>>, undefined]>;
|
|
47
|
+
readonly items: import("../../../types/rtti/types.ts").Or<[Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>, false, undefined]>;
|
|
48
|
+
readonly prefixItems: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>>, undefined]>;
|
|
49
|
+
readonly minItems: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts")._Type0<"number">, undefined]>;
|
|
50
|
+
readonly properties: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"record", Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>>, undefined]>;
|
|
45
51
|
readonly required: import("../../../types/rtti/types.ts").Or<readonly [import("../../../types/rtti/types.ts").Type1<"array", import("../../../types/rtti/types.ts")._Type0<"string">>, undefined]>;
|
|
46
|
-
readonly additionalProperties: import("../../../types/rtti/types.ts").Or<readonly [Phantom<typeof
|
|
52
|
+
readonly additionalProperties: import("../../../types/rtti/types.ts").Or<readonly [Phantom<() => readonly ['const', typeof unknownConst], _UnknownConst>, undefined]>;
|
|
47
53
|
};
|
|
48
54
|
export type _UnknownConst = {
|
|
55
|
+
readonly $schema?: Ts<typeof unknownConst.$schema>;
|
|
56
|
+
readonly $ref?: Ts<typeof unknownConst.$ref>;
|
|
57
|
+
readonly $defs?: Ts<typeof unknownConst.$defs>;
|
|
49
58
|
readonly type?: Ts<typeof unknownConst.type>;
|
|
50
59
|
readonly const?: Ts<typeof unknownConst.const>;
|
|
51
60
|
readonly not?: Ts<typeof unknownConst.not>;
|
|
52
61
|
readonly anyOf?: Ts<typeof unknownConst.anyOf>;
|
|
53
62
|
readonly items?: Ts<typeof unknownConst.items>;
|
|
54
63
|
readonly prefixItems?: Ts<typeof unknownConst.prefixItems>;
|
|
64
|
+
readonly minItems?: Ts<typeof unknownConst.minItems>;
|
|
55
65
|
readonly properties?: Ts<typeof unknownConst.properties>;
|
|
56
66
|
readonly required?: Ts<typeof unknownConst.required>;
|
|
57
67
|
readonly additionalProperties?: Ts<typeof unknownConst.additionalProperties>;
|
|
58
68
|
};
|
|
59
69
|
/**
|
|
60
|
-
* Converts
|
|
70
|
+
* Converts a serializable RTTI {@link Data} (from `toData`) to a JSON Schema
|
|
71
|
+
* (draft 2020-12) object.
|
|
72
|
+
*
|
|
73
|
+
* Every named rule is emitted exactly once under `$defs` and each reference
|
|
74
|
+
* becomes a local `$ref` — self- and mutual recursion terminate, and the
|
|
75
|
+
* root itself is a `$ref` when the entry is a named definition. Definition
|
|
76
|
+
* names come from the data form (deterministic for equal canonical data)
|
|
77
|
+
* and are JSON Pointer-escaped, then percent-encoded, for the `$ref`
|
|
78
|
+
* fragment. A reference naming a missing definition panics.
|
|
79
|
+
*
|
|
80
|
+
* @type {(data: Data) => Unknown}
|
|
81
|
+
*/
|
|
82
|
+
export declare const dataToJsonSchema: (data: Data) => Unknown;
|
|
83
|
+
/**
|
|
84
|
+
* Converts an rtti `Type` to a JSON Schema (draft 2020-12) object, through
|
|
85
|
+
* the canonical data form: `toData` first, then {@link dataToJsonSchema}.
|
|
61
86
|
*
|
|
62
87
|
* | rtti | JSON Schema |
|
|
63
88
|
* |-----------------------------------------------|-------------------------------------------------------------------------------------|
|
|
64
89
|
* | `boolean` / `number` / `string` | `{ "type": "..." }` |
|
|
65
90
|
* | `bigint` | `{ "type": "integer" }` (lossy; JSON integers are IEEE-754 doubles) |
|
|
66
91
|
* | `unknown` | `{}` (always-true schema) |
|
|
67
|
-
* |
|
|
92
|
+
* | `never` / `or()` | `{ "not": {} }` (no JSON value satisfies this) |
|
|
93
|
+
* | primitive const (`42`, `'x'`, `null`) | `{ "const": <value> }` |
|
|
94
|
+
* | `or(true, false)` | `{ "type": "boolean" }` (the union normalizes to the whole kind) |
|
|
68
95
|
* | `bigint` const | `{ "const": Number(value) }` (lossy for \|value\| > MAX_SAFE_INTEGER) |
|
|
69
|
-
* | `undefined` const | `{ "not": {} }`
|
|
96
|
+
* | `undefined` const | `{ "not": {} }` |
|
|
70
97
|
* | struct `{ a: T, … }` | `{ "type": "object", "properties": { "a": …T… }, "required": [non-optional keys] }` |
|
|
71
|
-
* | tuple `[A, B]` | `{ "type": "array", "prefixItems": […A…, …B…], "items": false }`
|
|
98
|
+
* | tuple `[A, B]` | `{ "type": "array", "prefixItems": […A…, …B…], "minItems": 2, "items": false }` |
|
|
72
99
|
* | `array(T)` | `{ "type": "array", "items": …T… }` |
|
|
73
100
|
* | `record(T)` | `{ "type": "object", "additionalProperties": …T… }` |
|
|
74
|
-
* | `or(...types)` | `{ "anyOf": […each…] }
|
|
101
|
+
* | `or(...types)` | `{ "anyOf": […each…] }`, normalized and in canonical kind order |
|
|
102
|
+
* | recursive schema | `{ "$ref": "#/$defs/<name>", "$defs": { "<name>": … } }` |
|
|
103
|
+
*
|
|
104
|
+
* The union rows follow the data form's normalization: operands are merged
|
|
105
|
+
* kind-wise, literals covered by their whole kind are absorbed
|
|
106
|
+
* (`or(42, number)` is all numbers), subsumed patterns are dropped, and
|
|
107
|
+
* duplicates collapse — so structurally different but equivalent thunk
|
|
108
|
+
* schemas produce the same JSON Schema.
|
|
75
109
|
*
|
|
76
110
|
* @type {(rtti: RttiType) => Unknown}
|
|
77
111
|
*/
|