functionalscript 0.44.0 → 0.46.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.
Files changed (571) hide show
  1. package/README.md +5 -3
  2. package/fjs/asn.1/module.f.mjs +8 -1
  3. package/fjs/asn.1/proof.f.d.mts +15 -0
  4. package/fjs/asn.1/proof.f.mjs +31 -3
  5. package/fjs/asserts/module.f.d.mts +14 -0
  6. package/fjs/asserts/module.f.mjs +20 -0
  7. package/fjs/asserts/proof.f.d.mts +3 -0
  8. package/fjs/asserts/proof.f.mjs +15 -1
  9. package/fjs/basen/base128/module.f.mjs +22 -5
  10. package/fjs/basen/base128/proof.f.d.mts +3 -1
  11. package/fjs/basen/base128/proof.f.mjs +3 -1
  12. package/fjs/basen/base64/module.f.mjs +7 -3
  13. package/fjs/basen/base64/proof.f.d.mts +3 -1
  14. package/fjs/basen/base64/proof.f.mjs +7 -4
  15. package/fjs/basen/cbase32/proof.f.d.mts +3 -1
  16. package/fjs/basen/cbase32/proof.f.mjs +3 -1
  17. package/fjs/bnf/data/module.f.d.mts +32 -6
  18. package/fjs/bnf/data/module.f.mjs +112 -7
  19. package/fjs/bnf/data/proof.f.d.mts +2 -0
  20. package/fjs/bnf/data/proof.f.mjs +74 -4
  21. package/fjs/bnf/data/types.d.ts +20 -2
  22. package/fjs/bnf/descent/module.f.d.mts +34 -5
  23. package/fjs/bnf/descent/module.f.mjs +176 -54
  24. package/fjs/bnf/descent/proof.f.d.mts +3 -0
  25. package/fjs/bnf/descent/proof.f.mjs +189 -27
  26. package/fjs/bnf/descent/types.d.ts +24 -18
  27. package/fjs/bnf/ll1/module.f.d.mts +74 -6
  28. package/fjs/bnf/ll1/module.f.mjs +297 -95
  29. package/fjs/bnf/ll1/proof.f.d.mts +17 -2
  30. package/fjs/bnf/ll1/proof.f.mjs +372 -137
  31. package/fjs/bnf/ll1/types.d.ts +25 -27
  32. package/fjs/bnf/matcher/module.f.d.mts +66 -0
  33. package/fjs/bnf/matcher/module.f.mjs +81 -0
  34. package/fjs/bnf/matcher/proof.f.d.mts +10 -0
  35. package/fjs/bnf/matcher/proof.f.mjs +79 -0
  36. package/fjs/bnf/matcher/types.d.ts +54 -0
  37. package/fjs/bnf/module.f.d.mts +15 -6
  38. package/fjs/bnf/module.f.mjs +52 -11
  39. package/fjs/bnf/proof.f.d.mts +2 -0
  40. package/fjs/bnf/proof.f.mjs +79 -3
  41. package/fjs/bnf/testlib.f.d.mts +31 -0
  42. package/fjs/bnf/testlib.f.mjs +80 -0
  43. package/fjs/bnf/token_symbol/module.f.d.mts +4 -3
  44. package/fjs/bnf/token_symbol/module.f.mjs +7 -6
  45. package/fjs/bnf/token_symbol/proof.f.mjs +5 -2
  46. package/fjs/bnf/token_symbol/types.d.ts +2 -2
  47. package/fjs/bnf/types.d.ts +10 -3
  48. package/fjs/cas/cli/module.f.d.mts +1 -1
  49. package/fjs/cas/cli/module.f.mjs +14 -20
  50. package/fjs/cas/cli/proof.f.d.mts +4 -4
  51. package/fjs/cas/cli/proof.f.mjs +47 -34
  52. package/fjs/cas/evo/module.f.d.mts +71 -31
  53. package/fjs/cas/evo/module.f.mjs +223 -138
  54. package/fjs/cas/evo/proof.f.d.mts +10 -1
  55. package/fjs/cas/evo/proof.f.mjs +311 -226
  56. package/fjs/cas/evo/types.d.ts +45 -9
  57. package/fjs/cas/module.f.d.mts +18 -32
  58. package/fjs/cas/module.f.mjs +164 -176
  59. package/fjs/cas/proof.f.d.mts +11 -8
  60. package/fjs/cas/proof.f.mjs +259 -147
  61. package/fjs/cas/types.d.ts +24 -10
  62. package/fjs/ci/common/module.f.d.mts +1 -1
  63. package/fjs/ci/common/module.f.mjs +1 -0
  64. package/fjs/ci/config/module.f.d.mts +3 -3
  65. package/fjs/ci/config/module.f.mjs +3 -3
  66. package/fjs/ci/module.f.d.mts +5 -5
  67. package/fjs/ci/module.f.mjs +8 -7
  68. package/fjs/ci/nix/module.f.d.mts +7 -5
  69. package/fjs/ci/nix/module.f.mjs +13 -12
  70. package/fjs/ci/nix/proof.f.d.mts +2 -0
  71. package/fjs/ci/nix/proof.f.mjs +4 -4
  72. package/fjs/ci/proof.f.d.mts +4 -2
  73. package/fjs/ci/proof.f.mjs +13 -8
  74. package/fjs/cli/module.f.d.mts +4 -6
  75. package/fjs/cli/module.f.mjs +4 -8
  76. package/fjs/cli/proof.f.d.mts +4 -2
  77. package/fjs/cli/proof.f.mjs +21 -18
  78. package/fjs/cli/types.d.ts +2 -3
  79. package/fjs/common/monoid/module.f.d.mts +70 -12
  80. package/fjs/common/monoid/module.f.mjs +177 -14
  81. package/fjs/common/monoid/proof.f.d.mts +12 -1
  82. package/fjs/common/monoid/proof.f.mjs +88 -4
  83. package/fjs/common/monoid/types.d.ts +23 -0
  84. package/fjs/crypto/hmac/module.f.mjs +2 -2
  85. package/fjs/crypto/secp/proof.f.d.mts +3 -1
  86. package/fjs/crypto/secp/proof.f.mjs +3 -1
  87. package/fjs/crypto/sha2/module.f.mjs +3 -1
  88. package/fjs/crypto/sha2/proof.f.d.mts +4 -1
  89. package/fjs/crypto/sha2/proof.f.mjs +27 -1
  90. package/fjs/crypto/sha2/types.d.ts +11 -0
  91. package/fjs/crypto/sign/module.f.mjs +2 -2
  92. package/fjs/crypto/vdf/module.f.d.mts +23 -4
  93. package/fjs/crypto/vdf/module.f.mjs +6 -4
  94. package/fjs/dev/module.f.d.mts +17 -5
  95. package/fjs/dev/module.f.mjs +60 -30
  96. package/fjs/dev/update/module.f.d.mts +11 -3
  97. package/fjs/dev/update/module.f.mjs +16 -11
  98. package/fjs/dev/update/proof.f.d.mts +4 -3
  99. package/fjs/dev/update/proof.f.mjs +11 -7
  100. package/fjs/djs/module.f.d.mts +13 -5
  101. package/fjs/djs/module.f.mjs +31 -16
  102. package/fjs/djs/parser/module.f.d.mts +16 -3
  103. package/fjs/djs/parser/module.f.mjs +135 -16
  104. package/fjs/djs/parser/proof.f.d.mts +8 -1
  105. package/fjs/djs/parser/proof.f.mjs +287 -13
  106. package/fjs/djs/parser/types.d.ts +7 -1
  107. package/fjs/djs/proof.f.d.mts +20 -1
  108. package/fjs/djs/proof.f.mjs +190 -12
  109. package/fjs/djs/serializer/module.f.d.mts +25 -8
  110. package/fjs/djs/serializer/module.f.mjs +66 -19
  111. package/fjs/djs/serializer/proof.f.d.mts +5 -0
  112. package/fjs/djs/serializer/proof.f.mjs +23 -1
  113. package/fjs/djs/tokenizer/module.f.d.mts +17 -5
  114. package/fjs/djs/tokenizer/module.f.mjs +120 -73
  115. package/fjs/djs/tokenizer/proof.f.d.mts +3 -0
  116. package/fjs/djs/tokenizer/proof.f.mjs +86 -67
  117. package/fjs/djs/transpiler/module.f.d.mts +13 -19
  118. package/fjs/djs/transpiler/module.f.mjs +79 -72
  119. package/fjs/djs/transpiler/types.d.ts +29 -0
  120. package/fjs/djs/types.d.ts +7 -1
  121. package/fjs/effects/list/module.f.d.mts +23 -12
  122. package/fjs/effects/list/module.f.mjs +16 -12
  123. package/fjs/effects/list/types.d.ts +27 -7
  124. package/fjs/effects/memory/module.f.d.mts +6 -3
  125. package/fjs/effects/memory/module.f.mjs +7 -7
  126. package/fjs/effects/memory/proof.f.d.mts +4 -0
  127. package/fjs/effects/memory/proof.f.mjs +18 -9
  128. package/fjs/effects/memory/types.d.ts +4 -3
  129. package/fjs/effects/mock/module.f.d.mts +28 -4
  130. package/fjs/effects/mock/module.f.mjs +39 -5
  131. package/fjs/effects/mock/types.d.ts +10 -1
  132. package/fjs/effects/module.d.mts +12 -2
  133. package/fjs/effects/module.f.d.mts +469 -281
  134. package/fjs/effects/module.f.mjs +538 -299
  135. package/fjs/effects/module.mjs +11 -2
  136. package/fjs/effects/node/memory/module.d.mts +7 -2
  137. package/fjs/effects/node/memory/module.mjs +9 -5
  138. package/fjs/effects/node/memory/proof.d.mts +2 -0
  139. package/fjs/effects/node/memory/proof.mjs +12 -5
  140. package/fjs/effects/node/module.d.mts +8 -2
  141. package/fjs/effects/node/module.f.d.mts +183 -43
  142. package/fjs/effects/node/module.f.mjs +260 -62
  143. package/fjs/effects/node/module.mjs +61 -50
  144. package/fjs/effects/node/proof.f.d.mts +28 -2
  145. package/fjs/effects/node/proof.f.mjs +161 -42
  146. package/fjs/effects/node/types.d.ts +106 -18
  147. package/fjs/effects/node/virtual/module.f.d.mts +21 -4
  148. package/fjs/effects/node/virtual/module.f.mjs +113 -70
  149. package/fjs/effects/node/virtual/proof.f.d.mts +31 -2
  150. package/fjs/effects/node/virtual/proof.f.mjs +201 -8
  151. package/fjs/effects/proof.f.d.mts +69 -34
  152. package/fjs/effects/proof.f.mjs +413 -130
  153. package/fjs/effects/types.d.ts +161 -33
  154. package/fjs/emergent_testing/all.test.d.mts +8 -0
  155. package/fjs/emergent_testing/all.test.mjs +14 -0
  156. package/fjs/emergent_testing/module.f.d.mts +22 -10
  157. package/fjs/emergent_testing/module.f.mjs +119 -85
  158. package/fjs/emergent_testing/proof.f.d.mts +21 -7
  159. package/fjs/emergent_testing/proof.f.mjs +169 -35
  160. package/fjs/emergent_testing/types.d.ts +22 -4
  161. package/fjs/fsc/bnf.f.d.mts +3 -0
  162. package/fjs/fsc/bnf.f.mjs +4 -1
  163. package/fjs/fsc/json.f.d.mts +3 -0
  164. package/fjs/fsc/json.f.mjs +4 -1
  165. package/fjs/fsc/module.f.d.mts +9 -0
  166. package/fjs/fsc/module.f.mjs +5 -3
  167. package/fjs/fsm/module.f.d.mts +14 -4
  168. package/fjs/fsm/module.f.mjs +54 -37
  169. package/fjs/fsm/proof.f.d.mts +5 -0
  170. package/fjs/fsm/proof.f.mjs +87 -115
  171. package/fjs/js/keywords/module.f.d.mts +52 -0
  172. package/fjs/js/keywords/module.f.mjs +72 -0
  173. package/fjs/{emergent_testing/scenarios/return-value.pass.d.ts → js/keywords/proof.f.d.mts} +1 -1
  174. package/fjs/js/keywords/proof.f.mjs +13 -0
  175. package/fjs/js/tokenizer/module.f.d.mts +30 -3
  176. package/fjs/js/tokenizer/module.f.mjs +161 -211
  177. package/fjs/js/tokenizer/proof.f.d.mts +1 -0
  178. package/fjs/js/tokenizer/proof.f.mjs +54 -24
  179. package/fjs/js/tokenizer/types.d.ts +33 -24
  180. package/fjs/mcp/cas/module.f.d.mts +1 -6
  181. package/fjs/mcp/cas/module.f.mjs +55 -51
  182. package/fjs/mcp/cas/proof.f.d.mts +15 -0
  183. package/fjs/mcp/cas/proof.f.mjs +174 -0
  184. package/fjs/mcp/evo/module.f.d.mts +19 -10
  185. package/fjs/mcp/evo/module.f.mjs +48 -27
  186. package/fjs/mcp/evo/proof.f.d.mts +6 -1
  187. package/fjs/mcp/evo/proof.f.mjs +115 -31
  188. package/fjs/mcp/module.f.d.mts +39 -4
  189. package/fjs/mcp/module.f.mjs +14 -12
  190. package/fjs/mcp/proof.f.d.mts +13 -1
  191. package/fjs/mcp/proof.f.mjs +120 -61
  192. package/fjs/media/html/module.f.d.mts +12 -0
  193. package/fjs/media/html/module.f.mjs +7 -5
  194. package/fjs/media/html/proof.f.d.mts +3 -0
  195. package/fjs/media/html/proof.f.mjs +4 -1
  196. package/fjs/media/json/extended/module.f.d.mts +82 -0
  197. package/fjs/media/json/extended/module.f.mjs +153 -0
  198. package/fjs/media/json/extended/proof.f.d.mts +42 -0
  199. package/fjs/media/json/extended/proof.f.mjs +127 -0
  200. package/fjs/media/json/extended/types.d.ts +23 -0
  201. package/fjs/media/json/module.f.d.mts +8 -2
  202. package/fjs/media/json/module.f.mjs +43 -41
  203. package/fjs/media/json/number/module.f.d.mts +59 -0
  204. package/fjs/media/json/number/module.f.mjs +136 -0
  205. package/fjs/media/json/number/proof.f.d.mts +24 -0
  206. package/fjs/media/json/number/proof.f.mjs +86 -0
  207. package/fjs/media/json/number/types.d.ts +28 -0
  208. package/fjs/media/json/parser/module.f.d.mts +25 -13
  209. package/fjs/media/json/parser/module.f.mjs +133 -72
  210. package/fjs/media/json/parser/proof.f.d.mts +5 -0
  211. package/fjs/media/json/parser/proof.f.mjs +31 -1
  212. package/fjs/media/json/parser/types.d.ts +38 -14
  213. package/fjs/media/json/rtti/module.f.d.mts +1 -1
  214. package/fjs/media/json/rtti/module.f.mjs +1 -1
  215. package/fjs/media/json/rtti/proof.f.d.mts +3 -0
  216. package/fjs/media/json/rtti/proof.f.mjs +12 -12
  217. package/fjs/media/json/schema/module.f.d.mts +61 -27
  218. package/fjs/media/json/schema/module.f.mjs +218 -63
  219. package/fjs/media/json/schema/proof.f.d.mts +41 -1
  220. package/fjs/media/json/schema/proof.f.mjs +220 -9
  221. package/fjs/media/json/serializer/module.f.d.mts +44 -0
  222. package/fjs/media/json/serializer/module.f.mjs +71 -9
  223. package/fjs/media/json/tokenizer/module.f.d.mts +8 -0
  224. package/fjs/media/json/tokenizer/module.f.mjs +31 -8
  225. package/fjs/media/json/tokenizer/proof.f.d.mts +6 -0
  226. package/fjs/media/json/tokenizer/proof.f.mjs +62 -21
  227. package/fjs/media/json/types.d.ts +36 -10
  228. package/fjs/media/lock/module.f.d.mts +100 -0
  229. package/fjs/media/lock/module.f.mjs +125 -0
  230. package/fjs/media/lock/proof.f.d.mts +33 -0
  231. package/fjs/media/lock/proof.f.mjs +196 -0
  232. package/fjs/media/lock/types.d.ts +15 -0
  233. package/fjs/media/module.f.d.mts +6 -5
  234. package/fjs/media/module.f.mjs +8 -7
  235. package/fjs/media/nix/module.f.d.mts +13 -0
  236. package/fjs/media/nix/module.f.mjs +4 -2
  237. package/fjs/media/nix/proof.f.d.mts +3 -0
  238. package/fjs/media/nix/proof.f.mjs +4 -1
  239. package/fjs/media/note/module.f.d.mts +121 -0
  240. package/fjs/media/note/module.f.mjs +131 -0
  241. package/fjs/media/note/proof.f.d.mts +29 -0
  242. package/fjs/media/note/proof.f.mjs +150 -0
  243. package/fjs/media/note/types.d.ts +10 -0
  244. package/fjs/media/proof.f.d.mts +4 -1
  245. package/fjs/media/proof.f.mjs +40 -21
  246. package/fjs/media/revision/module.f.d.mts +83 -7
  247. package/fjs/media/revision/module.f.mjs +127 -23
  248. package/fjs/media/revision/proof.f.d.mts +14 -0
  249. package/fjs/media/revision/proof.f.mjs +93 -2
  250. package/fjs/media/revision/types.d.ts +34 -5
  251. package/fjs/media/type/module.f.d.mts +53 -18
  252. package/fjs/media/type/module.f.mjs +87 -97
  253. package/fjs/media/type/proof.f.d.mts +17 -0
  254. package/fjs/media/type/proof.f.mjs +73 -13
  255. package/fjs/module.d.mts +5 -0
  256. package/fjs/module.f.d.mts +8 -0
  257. package/fjs/module.f.mjs +33 -10
  258. package/fjs/module.mjs +6 -0
  259. package/fjs/nanvm/proof.f.mjs +3 -3
  260. package/fjs/nanvm/rust/module.f.mjs +1 -1
  261. package/fjs/nanvm/update/module.f.d.mts +4 -4
  262. package/fjs/nanvm/update/module.f.mjs +8 -9
  263. package/fjs/nanvm/update/proof.f.mjs +4 -3
  264. package/fjs/path/module.f.d.mts +8 -0
  265. package/fjs/path/module.f.mjs +4 -2
  266. package/fjs/proof.f.d.mts +7 -3
  267. package/fjs/proof.f.mjs +41 -12
  268. package/fjs/protocol/json_rpc/module.f.d.mts +3 -3
  269. package/fjs/protocol/json_rpc/module.f.mjs +10 -7
  270. package/fjs/protocol/json_rpc/proof.f.d.mts +6 -0
  271. package/fjs/protocol/json_rpc/proof.f.mjs +26 -5
  272. package/fjs/protocol/mcp/module.f.d.mts +10 -13
  273. package/fjs/protocol/mcp/module.f.mjs +74 -58
  274. package/fjs/protocol/mcp/proof.f.d.mts +16 -3
  275. package/fjs/protocol/mcp/proof.f.mjs +224 -69
  276. package/fjs/protocol/mcp/stdio/module.f.d.mts +17 -11
  277. package/fjs/protocol/mcp/stdio/module.f.mjs +39 -33
  278. package/fjs/protocol/mcp/stdio/proof.f.d.mts +5 -3
  279. package/fjs/protocol/mcp/stdio/proof.f.mjs +46 -13
  280. package/fjs/protocol/mcp/stdio/types.d.ts +14 -0
  281. package/fjs/protocol/mcp/types.d.ts +17 -6
  282. package/fjs/sul/id/module.f.d.mts +4 -0
  283. package/fjs/sul/id/module.f.mjs +6 -6
  284. package/fjs/sul/level/hash/module.f.d.mts +4 -1
  285. package/fjs/sul/level/hash/module.f.mjs +6 -4
  286. package/fjs/sul/level/hash/proof.f.d.mts +4 -0
  287. package/fjs/sul/level/hash/proof.f.mjs +7 -4
  288. package/fjs/sul/level/literal/module.f.d.mts +4 -1
  289. package/fjs/sul/level/literal/module.f.mjs +4 -3
  290. package/fjs/sul/level/literal/proof.f.d.mts +3 -0
  291. package/fjs/sul/level/literal/proof.f.mjs +4 -1
  292. package/fjs/sul/module.f.d.mts +5 -3
  293. package/fjs/sul/module.f.mjs +23 -17
  294. package/fjs/sul/proof.f.d.mts +4 -0
  295. package/fjs/sul/proof.f.mjs +5 -2
  296. package/fjs/text/ascii/module.f.d.mts +26 -0
  297. package/fjs/text/ascii/module.f.mjs +49 -1
  298. package/fjs/text/ascii/proof.f.d.mts +10 -0
  299. package/fjs/text/ascii/proof.f.mjs +33 -1
  300. package/fjs/text/code_point/module.f.d.mts +29 -3
  301. package/fjs/text/code_point/module.f.mjs +32 -9
  302. package/fjs/text/code_point/proof.f.d.mts +2 -0
  303. package/fjs/text/code_point/proof.f.mjs +39 -0
  304. package/fjs/text/module.f.d.mts +4 -2
  305. package/fjs/text/module.f.mjs +4 -3
  306. package/fjs/text/proof.f.d.mts +3 -0
  307. package/fjs/text/proof.f.mjs +4 -1
  308. package/fjs/text/sgr/module.f.d.mts +6 -5
  309. package/fjs/text/sgr/module.f.mjs +8 -8
  310. package/fjs/text/sgr/proof.f.d.mts +3 -0
  311. package/fjs/text/sgr/proof.f.mjs +4 -1
  312. package/fjs/text/utf16/module.f.d.mts +5 -1
  313. package/fjs/text/utf16/module.f.mjs +38 -35
  314. package/fjs/text/utf16/proof.f.d.mts +3 -1
  315. package/fjs/text/utf16/proof.f.mjs +19 -2
  316. package/fjs/text/utf8/module.f.d.mts +9 -5
  317. package/fjs/text/utf8/module.f.mjs +20 -20
  318. package/fjs/types/array/module.f.d.mts +2 -1
  319. package/fjs/types/array/module.f.mjs +16 -4
  320. package/fjs/types/bigfloat/module.f.d.mts +21 -1
  321. package/fjs/types/bigfloat/module.f.mjs +33 -7
  322. package/fjs/types/bigfloat/proof.f.d.mts +1 -0
  323. package/fjs/types/bigfloat/proof.f.mjs +46 -0
  324. package/fjs/types/bigint/module.f.d.mts +4 -0
  325. package/fjs/types/bigint/module.f.mjs +4 -3
  326. package/fjs/types/bit_vec/module.f.d.mts +10 -16
  327. package/fjs/types/bit_vec/module.f.mjs +99 -95
  328. package/fjs/types/bit_vec/proof.f.d.mts +6 -0
  329. package/fjs/types/bit_vec/proof.f.mjs +31 -5
  330. package/fjs/types/btree/find/module.f.d.mts +5 -1
  331. package/fjs/types/btree/find/module.f.mjs +5 -5
  332. package/fjs/types/btree/find/proof.f.d.mts +5 -1
  333. package/fjs/types/btree/find/proof.f.mjs +5 -3
  334. package/fjs/types/btree/module.f.d.mts +3 -0
  335. package/fjs/types/btree/module.f.mjs +3 -2
  336. package/fjs/types/btree/proof.f.d.mts +5 -1
  337. package/fjs/types/btree/proof.f.mjs +5 -3
  338. package/fjs/types/btree/remove/module.f.d.mts +11 -0
  339. package/fjs/types/btree/remove/module.f.mjs +10 -10
  340. package/fjs/types/btree/remove/proof.f.d.mts +3 -0
  341. package/fjs/types/btree/remove/proof.f.mjs +4 -1
  342. package/fjs/types/btree/set/module.f.d.mts +9 -0
  343. package/fjs/types/btree/set/module.f.mjs +14 -17
  344. package/fjs/types/btree/set/proof.f.d.mts +3 -0
  345. package/fjs/types/btree/set/proof.f.mjs +16 -1
  346. package/fjs/types/btree/types/module.f.d.mts +2 -1
  347. package/fjs/types/btree/types/module.f.mjs +2 -1
  348. package/fjs/types/byte_set/module.f.d.mts +20 -4
  349. package/fjs/types/byte_set/module.f.mjs +18 -8
  350. package/fjs/types/byte_set/proof.f.d.mts +3 -1
  351. package/fjs/types/byte_set/proof.f.mjs +10 -8
  352. package/fjs/types/function/compare/module.f.d.mts +3 -2
  353. package/fjs/types/function/compare/module.f.mjs +13 -5
  354. package/fjs/types/function/module.f.d.mts +8 -1
  355. package/fjs/types/function/module.f.mjs +8 -1
  356. package/fjs/types/function/operator/module.f.d.mts +2 -1
  357. package/fjs/types/function/operator/module.f.mjs +2 -2
  358. package/fjs/types/list/module.f.d.mts +10 -3
  359. package/fjs/types/list/module.f.mjs +6 -4
  360. package/fjs/types/list/proof.f.d.mts +4 -1
  361. package/fjs/types/list/proof.f.mjs +4 -2
  362. package/fjs/types/nibble_set/module.f.d.mts +2 -1
  363. package/fjs/types/nibble_set/module.f.mjs +2 -2
  364. package/fjs/types/nominal/module.f.d.mts +2 -1
  365. package/fjs/types/nominal/module.f.mjs +2 -1
  366. package/fjs/types/nullable/module.f.d.mts +26 -6
  367. package/fjs/types/nullable/module.f.mjs +25 -6
  368. package/fjs/types/nullable/proof.f.d.mts +4 -0
  369. package/fjs/types/nullable/proof.f.mjs +15 -0
  370. package/fjs/types/number/module.f.d.mts +4 -0
  371. package/fjs/types/number/module.f.mjs +4 -3
  372. package/fjs/types/object/module.f.d.mts +26 -4
  373. package/fjs/types/object/module.f.mjs +26 -7
  374. package/fjs/types/object/proof.f.d.mts +5 -2
  375. package/fjs/types/object/proof.f.mjs +6 -3
  376. package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
  377. package/fjs/types/object/structurally_same/module.f.mjs +59 -0
  378. package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
  379. package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
  380. package/fjs/types/ordered_map/module.f.d.mts +5 -0
  381. package/fjs/types/ordered_map/module.f.mjs +5 -4
  382. package/fjs/types/ordered_map/proof.f.d.mts +3 -0
  383. package/fjs/types/ordered_map/proof.f.mjs +4 -1
  384. package/fjs/types/patricia_trie/module.f.d.mts +2 -1
  385. package/fjs/types/patricia_trie/module.f.mjs +27 -12
  386. package/fjs/types/patricia_trie/proof.f.d.mts +3 -0
  387. package/fjs/types/patricia_trie/proof.f.mjs +4 -1
  388. package/fjs/types/prime_field/module.f.d.mts +3 -1
  389. package/fjs/types/prime_field/module.f.mjs +3 -2
  390. package/fjs/types/range/module.f.d.mts +2 -1
  391. package/fjs/types/range/module.f.mjs +2 -2
  392. package/fjs/types/range_map/module.f.d.mts +6 -0
  393. package/fjs/types/range_map/module.f.mjs +6 -9
  394. package/fjs/types/range_map/proof.f.d.mts +5 -1
  395. package/fjs/types/range_map/proof.f.mjs +5 -3
  396. package/fjs/types/range_set/module.f.d.mts +5 -0
  397. package/fjs/types/range_set/module.f.mjs +1 -0
  398. package/fjs/types/range_set/proof.f.d.mts +3 -0
  399. package/fjs/types/range_set/proof.f.mjs +4 -1
  400. package/fjs/types/result/module.d.mts +8 -0
  401. package/fjs/types/result/module.f.d.mts +37 -7
  402. package/fjs/types/result/module.f.mjs +38 -8
  403. package/fjs/types/result/module.mjs +9 -1
  404. package/fjs/types/result/proof.f.d.mts +5 -0
  405. package/fjs/types/result/proof.f.mjs +22 -2
  406. package/fjs/types/rtti/common/module.f.d.mts +44 -14
  407. package/fjs/types/rtti/common/module.f.mjs +42 -36
  408. package/fjs/types/rtti/common/proof.f.d.mts +4 -0
  409. package/fjs/types/rtti/common/proof.f.mjs +10 -7
  410. package/fjs/types/rtti/data/module.f.d.mts +134 -0
  411. package/fjs/types/rtti/data/module.f.mjs +1053 -0
  412. package/fjs/types/rtti/data/proof.f.d.mts +76 -0
  413. package/fjs/types/rtti/data/proof.f.mjs +589 -0
  414. package/fjs/types/rtti/data/types.d.ts +83 -0
  415. package/fjs/types/rtti/module.f.d.mts +12 -5
  416. package/fjs/types/rtti/module.f.mjs +7 -5
  417. package/fjs/types/rtti/parse/module.f.d.mts +48 -0
  418. package/fjs/types/rtti/parse/module.f.mjs +45 -34
  419. package/fjs/types/rtti/parse/proof.f.d.mts +3 -2
  420. package/fjs/types/rtti/parse/proof.f.mjs +51 -52
  421. package/fjs/types/rtti/proof.f.d.mts +3 -1
  422. package/fjs/types/rtti/proof.f.mjs +6 -2
  423. package/fjs/types/rtti/ts/module.f.d.mts +68 -9
  424. package/fjs/types/rtti/ts/module.f.mjs +258 -30
  425. package/fjs/types/rtti/ts/proof.f.d.mts +44 -0
  426. package/fjs/types/rtti/ts/proof.f.mjs +152 -4
  427. package/fjs/types/rtti/ts/types.d.ts +25 -1
  428. package/fjs/types/rtti/types.d.ts +40 -0
  429. package/fjs/types/sorted_list/module.f.d.mts +4 -1
  430. package/fjs/types/sorted_list/module.f.mjs +21 -12
  431. package/fjs/types/sorted_list/proof.f.d.mts +3 -1
  432. package/fjs/types/sorted_list/proof.f.mjs +3 -1
  433. package/fjs/types/sorted_set/module.f.d.mts +49 -1
  434. package/fjs/types/sorted_set/module.f.mjs +26 -2
  435. package/fjs/types/sorted_set/proof.f.d.mts +4 -1
  436. package/fjs/types/sorted_set/proof.f.mjs +19 -2
  437. package/fjs/types/string/module.f.d.mts +4 -0
  438. package/fjs/types/string/module.f.mjs +4 -3
  439. package/fjs/types/string_set/module.f.d.mts +3 -1
  440. package/fjs/types/string_set/module.f.mjs +3 -2
  441. package/fjs/types/ts/module.f.d.mts +2 -0
  442. package/fjs/types/ts/module.f.mjs +3 -3
  443. package/fjs/types/ts/proof.f.d.mts +1 -0
  444. package/fjs/types/ts/proof.f.mjs +5 -0
  445. package/fjs/types/ts/types.d.ts +6 -1
  446. package/fjs/types/uint8array/module.f.d.mts +13 -2
  447. package/fjs/types/uint8array/module.f.mjs +20 -15
  448. package/fjs/website/module.f.d.mts +5 -2
  449. package/fjs/website/module.f.mjs +6 -8
  450. package/fjs/website/proof.f.mjs +2 -1
  451. package/package.json +3 -3
  452. package/fjs/asn.1/types.js +0 -6
  453. package/fjs/asserts/types.js +0 -6
  454. package/fjs/basen/types.js +0 -6
  455. package/fjs/bnf/data/types.js +0 -6
  456. package/fjs/bnf/descent/types.js +0 -6
  457. package/fjs/bnf/ll1/types.js +0 -6
  458. package/fjs/bnf/token_symbol/types.js +0 -6
  459. package/fjs/bnf/types.js +0 -6
  460. package/fjs/cas/evo/types.js +0 -7
  461. package/fjs/cas/types.js +0 -6
  462. package/fjs/ci/common/types.js +0 -1
  463. package/fjs/ci/nix/types.js +0 -6
  464. package/fjs/ci/types.js +0 -6
  465. package/fjs/cli/types.js +0 -6
  466. package/fjs/common/monoid/types.js +0 -6
  467. package/fjs/crypto/pow/types.js +0 -6
  468. package/fjs/crypto/secp/types.js +0 -6
  469. package/fjs/crypto/sha2/types.js +0 -6
  470. package/fjs/crypto/sign/types.js +0 -6
  471. package/fjs/crypto/vdf/types.js +0 -6
  472. package/fjs/dev/package_json/module.f.d.mts +0 -32
  473. package/fjs/dev/package_json/module.f.mjs +0 -37
  474. package/fjs/dev/package_json/proof.f.d.mts +0 -6
  475. package/fjs/dev/package_json/proof.f.mjs +0 -32
  476. package/fjs/dev/types.js +0 -6
  477. package/fjs/djs/ast/types.js +0 -8
  478. package/fjs/djs/parser/types.js +0 -7
  479. package/fjs/djs/tokenizer/types.js +0 -7
  480. package/fjs/djs/types.js +0 -7
  481. package/fjs/effects/eff/module.f.d.mts +0 -10
  482. package/fjs/effects/eff/module.f.mjs +0 -68
  483. package/fjs/effects/eff/proof.f.d.mts +0 -12
  484. package/fjs/effects/eff/proof.f.mjs +0 -66
  485. package/fjs/effects/eff/types.d.ts +0 -71
  486. package/fjs/effects/eff/types.js +0 -6
  487. package/fjs/effects/list/types.js +0 -6
  488. package/fjs/effects/memory/types.js +0 -6
  489. package/fjs/effects/mock/types.js +0 -6
  490. package/fjs/effects/node/types.js +0 -6
  491. package/fjs/effects/node/virtual/types.js +0 -7
  492. package/fjs/effects/types.js +0 -6
  493. package/fjs/emergent_testing/all.test.d.ts +0 -1
  494. package/fjs/emergent_testing/all.test.js +0 -5
  495. package/fjs/emergent_testing/scenarios/all.d.ts +0 -1
  496. package/fjs/emergent_testing/scenarios/all.js +0 -1
  497. package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
  498. package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
  499. package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
  500. package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
  501. package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
  502. package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
  503. package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
  504. package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
  505. package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
  506. package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
  507. package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
  508. package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
  509. package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
  510. package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
  511. package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
  512. package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
  513. package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
  514. package/fjs/emergent_testing/types.js +0 -6
  515. package/fjs/js/tokenizer/types.js +0 -6
  516. package/fjs/media/html/types.js +0 -6
  517. package/fjs/media/json/parser/types.js +0 -6
  518. package/fjs/media/json/tokenizer/types.js +0 -6
  519. package/fjs/media/json/types.js +0 -13
  520. package/fjs/media/nix/types.js +0 -6
  521. package/fjs/media/revision/types.js +0 -8
  522. package/fjs/media/type/types.js +0 -6
  523. package/fjs/media/types.js +0 -7
  524. package/fjs/nanvm/types.js +0 -11
  525. package/fjs/protocol/json_rpc/types.js +0 -8
  526. package/fjs/protocol/mcp/types.js +0 -8
  527. package/fjs/sul/id/types.js +0 -6
  528. package/fjs/sul/level/hash/types.js +0 -6
  529. package/fjs/sul/level/literal/types.js +0 -6
  530. package/fjs/sul/types.js +0 -6
  531. package/fjs/text/sgr/types.js +0 -6
  532. package/fjs/text/types.js +0 -6
  533. package/fjs/text/utf16/types.js +0 -6
  534. package/fjs/text/utf8/types.js +0 -6
  535. package/fjs/types/array/types.js +0 -6
  536. package/fjs/types/bigfloat/types.js +0 -6
  537. package/fjs/types/bigint/types.js +0 -6
  538. package/fjs/types/bit_vec/types.js +0 -6
  539. package/fjs/types/btree/find/types.js +0 -6
  540. package/fjs/types/btree/types/types.js +0 -6
  541. package/fjs/types/byte_set/types.js +0 -6
  542. package/fjs/types/function/compare/types.js +0 -6
  543. package/fjs/types/function/operator/types.js +0 -6
  544. package/fjs/types/function/types.js +0 -6
  545. package/fjs/types/list/types.js +0 -6
  546. package/fjs/types/nibble_set/types.js +0 -6
  547. package/fjs/types/nominal/types.js +0 -6
  548. package/fjs/types/nullable/types.js +0 -6
  549. package/fjs/types/object/types.js +0 -8
  550. package/fjs/types/option/types.js +0 -6
  551. package/fjs/types/ordered_map/types.js +0 -6
  552. package/fjs/types/patricia_trie/types.js +0 -6
  553. package/fjs/types/phantom/types.js +0 -11
  554. package/fjs/types/prime_field/types.js +0 -6
  555. package/fjs/types/range/types.js +0 -6
  556. package/fjs/types/range_map/types.js +0 -6
  557. package/fjs/types/result/types.js +0 -6
  558. package/fjs/types/rtti/common/types.js +0 -1
  559. package/fjs/types/rtti/parse/types.js +0 -1
  560. package/fjs/types/rtti/ts/types.js +0 -1
  561. package/fjs/types/rtti/types.js +0 -1
  562. package/fjs/types/rtti/validate/module.f.d.mts +0 -6
  563. package/fjs/types/rtti/validate/module.f.mjs +0 -169
  564. package/fjs/types/rtti/validate/proof.f.d.mts +0 -125
  565. package/fjs/types/rtti/validate/proof.f.mjs +0 -437
  566. package/fjs/types/rtti/validate/types.d.ts +0 -6
  567. package/fjs/types/rtti/validate/types.js +0 -1
  568. package/fjs/types/sorted_list/types.js +0 -6
  569. package/fjs/types/sorted_set/types.js +0 -6
  570. package/fjs/types/string_set/types.js +0 -6
  571. package/fjs/types/ts/types.js +0 -8
@@ -1,3 +0,0 @@
1
- export declare const proof: {
2
- sleep: () => Promise<void>;
3
- };
@@ -1,5 +0,0 @@
1
- export const proof = {
2
- sleep: async () => {
3
- await new Promise(resolve => setTimeout(resolve, 10));
4
- }
5
- };
@@ -1,3 +0,0 @@
1
- export declare const proof: {
2
- failing: () => never;
3
- };
@@ -1,3 +0,0 @@
1
- export const proof = {
2
- failing: () => { throw 'intentional failure'; }
3
- };
@@ -1,4 +0,0 @@
1
- const inner = () => { };
2
- export const proof = {
3
- outer: () => ({ inner })
4
- };
@@ -1,5 +0,0 @@
1
- export declare const proof: {
2
- thenableResolves: () => {
3
- then(resolve: (v: undefined) => void): void;
4
- };
5
- };
@@ -1,11 +0,0 @@
1
- // A test that returns a thenable (Promise-like object, not a real Promise).
2
- // Per FunctionalScript convention, thenables are treated as plain values —
3
- // not awaited. Both sandbox (fjs) and registerModule (node/bun/deno)
4
- // must exit 0: the thenable object is walked as a sub-tree whose only key
5
- // `then` is a function with parameters, so no leaf tests are found and the
6
- // test trivially passes.
7
- export const proof = {
8
- thenableResolves: () => ({
9
- then(resolve) { resolve(undefined); }
10
- })
11
- };
@@ -1,5 +0,0 @@
1
- export declare const proof: {
2
- shouldPass: () => {
3
- then: () => string;
4
- };
5
- };
@@ -1,3 +0,0 @@
1
- export const proof = {
2
- shouldPass: () => ({ then: () => 'ok' })
3
- };
@@ -1,5 +0,0 @@
1
- export declare const proof: {
2
- throw: {
3
- a: () => never;
4
- };
5
- };
@@ -1,3 +0,0 @@
1
- export const proof = {
2
- throw: { a: () => { throw 'expected'; } }
3
- };
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for running and reporting FunctionalScript tests.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the JavaScript tokenizer.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for HTML serialization.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Internal state types for the JSON parser.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the JSON tokenizer.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,13 +0,0 @@
1
- /**
2
- * TypeScript counterparts of the JSON data model: `Primitive`, `Unknown`,
3
- * `Object`, and `Array`.
4
- *
5
- * `Unknown` is written by hand rather than derived, so that the recursion
6
- * reads directly, and is then pinned against the rtti schemas in the sibling
7
- * [`./rtti/module.f.mjs`](./rtti/module.f.mjs) with
8
- * `Assert<Equal<Unknown, Ts<typeof unknown>>>`. The pin is what keeps the two
9
- * descriptions of the same data model from drifting apart.
10
- *
11
- * @module
12
- */
13
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for the Nix expression eDSL.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,8 +0,0 @@
1
- /**
2
- * Type-level API for `fjs/media/revision/module.f.mjs`: `LockMap`,
3
- * `Revision`, and `RevisionError`, derived from the module's own rtti
4
- * schemas.
5
- *
6
- * @module
7
- */
8
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for magic-byte MIME type detection.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,7 +0,0 @@
1
- /**
2
- * Type-level API for `fjs/media/module.f.mjs`: the `DialectEntry` registry
3
- * shape `detect` and `dialectEntry` share with every registered dialect.
4
- *
5
- * @module
6
- */
7
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * Type-level API for the shared operator test data.
3
- *
4
- * The data described here is the single source of truth for operator
5
- * behaviour: [`proof.f.mjs`](./proof.f.mjs) runs it against a standard
6
- * JavaScript engine, and [`rust/module.f.mjs`](./rust/module.f.mjs) prints it
7
- * as the Rust tests in [`test/generated.rs`](./test/generated.rs).
8
- *
9
- * @module
10
- */
11
- export {};
@@ -1,8 +0,0 @@
1
- /**
2
- * Type-level API for `fjs/protocol/json_rpc/module.f.mjs`: `Id`, `Request`,
3
- * `RpcError`, and `Response`, derived from the module's own rtti schemas,
4
- * plus the `Handler` / `Handlers` shapes a dispatcher is built from.
5
- *
6
- * @module
7
- */
8
- export {};
@@ -1,8 +0,0 @@
1
- /**
2
- * Type-level API for `fjs/protocol/mcp/module.f.mjs`: the MCP message
3
- * schemas' derived types, plus the `McpHandlers`/`ToolEntry`/`Handle`/
4
- * session-state shapes `mcpStep` is built from.
5
- *
6
- * @module
7
- */
8
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for SUL identifiers.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for hash-level SUL encoding.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for the literal SUL level encoding.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/sul/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for the full SUL streaming encoder.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for ANSI CSI/SGR terminal output helpers.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/text/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for indented text blocks and UTF-8 bit vectors.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for UTF-16 code units and Unicode code points.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for UTF-8 byte-level encoding and decoding.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for JavaScript immutable arrays.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for big-floats built from bigint mantissa and exponent parts.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Operator types specialized to `bigint`.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for bit vectors normalized on the most-significant bit.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for B-tree lookup results and paths.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Shared type definitions for persistent B-tree modules.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for the byte-set module.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Comparison function types.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Common higher-order operator type aliases.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for function composition.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the immutable list data structure.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for compact 4-bit membership tracking.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for nominal typing (branded TypeScript types).
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for nullable (`null`) value handling.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,8 +0,0 @@
1
- /**
2
- * Types for plain-object helpers: the `OptionalMap`/`RequiredMap`/`StringMap`
3
- * record shapes and `Entry<T>`, and the `OneKey`/`SingleProperty`/`NotUnion`
4
- * utility types.
5
- *
6
- * @module
7
- */
8
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Optional tuple-based value representation.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the ordered map data structure.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the streaming Patricia trie.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * Phantom type — attaches a compile-time type annotation `T` to `S` with zero
3
- * runtime representation, analogous to Rust's `PhantomData<T>`.
4
- *
5
- * The phantom field uses a unique symbol key so it is excluded from string index
6
- * signatures (`{ readonly [K in string]: ... }`), making `Phantom<S, T>` valid
7
- * for any `S` regardless of its index signature constraints.
8
- *
9
- * @module
10
- */
11
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for prime field arithmetic over `bigint`.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Range and interval types for numeric boundaries.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for managing and merging range maps.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for representing operations that can succeed or fail.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- import type { Type } from '../types.ts';
2
- import type { Validate } from '../common/types.ts';
3
- /** @import { Container, IsContainer, Validate, ValidateE, Visitor } from '../common/types.ts' */
4
- export { constPrimitiveValidate, prependPath, primitive0Validate, verror, } from '../common/module.f.mjs';
5
- /** @type {<T extends Type>(rtti: T) => Validate<T>} */
6
- export declare const validate: <T extends Type>(rtti: T) => Validate<T>;
@@ -1,169 +0,0 @@
1
- /**
2
- * Runtime validation of unknown values against RTTI schemas.
3
- *
4
- * The main entry point is `validate(rtti)`, which takes a schema `Type` and returns
5
- * a `Validate<T>` function. When called with an unknown value, it returns a `Result`
6
- * that is either `['ok', typedValue]` or `['error', { path, message }]`.
7
- *
8
- * ## Error path
9
- *
10
- * On failure, the error carries a `path` pointing at the offending sub-value:
11
- * each step is the string property name (for structs/records) or the stringified
12
- * index (for tuples/arrays). The path is empty when the failure is at the root.
13
- *
14
- * ## Dispatch strategy
15
- *
16
- * Schema recognition is delegated to `visit` in `../common/module.f.mjs`,
17
- * which routes each `Type` variant to a handler in the `Visitor` record
18
- * defined below. `validate` returns the original value on success — no
19
- * fresh allocation — which is the only behavior that distinguishes it
20
- * from `parse`.
21
- *
22
- * ## Recursion safety
23
- *
24
- * For `array` and `record` schemas, the inner item validator is instantiated lazily —
25
- * only after confirming the container is non-empty. This prevents infinite recursion
26
- * when validating recursive schemas like `const list = () => ['array', list]`.
27
- *
28
- * See `./types.ts` for the `Path`/`Result`/`Validate`/`ValidationError` type-level API.
29
- *
30
- * @module
31
- */
32
- /** @import { Unknown } from '../ts/types.ts' */
33
- /** @import { Info1, Struct, Tag1, Tuple, Type } from '../types.ts' */
34
- import { ok } from '../../result/module.f.mjs'
35
- /** @import { StringMap } from '../../object/types.ts' */
36
- import {
37
- constPrimitiveValidate,
38
- eachEntry,
39
- isArray,
40
- isObject,
41
- orVisit,
42
- primitive0Validate,
43
- verror,
44
- visit,
45
- } from '../common/module.f.mjs'
46
- /** @import { Container, IsContainer, Validate, ValidateE, Visitor } from '../common/types.ts' */
47
-
48
- export {
49
- constPrimitiveValidate,
50
- prependPath,
51
- primitive0Validate,
52
- verror,
53
- } from '../common/module.f.mjs'
54
-
55
- const { entries } = Object
56
-
57
- /** `validate` has nothing to collect from a successful entry — only pass/fail matters. */
58
- const noAccumulate = () => undefined
59
-
60
- /**
61
- * Builds a validator for `array` or `record` schemas.
62
- * The inner item validator is instantiated lazily (only when the container is
63
- * non-empty) to avoid infinite recursion with recursive schemas.
64
- */
65
- const containerValidate =
66
- /**
67
- * @template {Tag1} K
68
- * @param {IsContainer<Container<K>>} isContainer
69
- * @returns {<I extends Type>(item: I) => Validate<Info1<K, I>>}
70
- */
71
- isContainer =>
72
- item => value => {
73
- if (!isContainer(value)) {
74
- return verror('unexpected value')
75
- }
76
- const e = entries(value)
77
- if (e.length === 0) {
78
- return ok(value)
79
- }
80
- // Note: we shouldn't instantiate `itemValidate` until we make sure `entries` is not empty.
81
- // Otherwise, we can get infinite recursion on empty arrays and objects
82
- const itemValidate = validate(item)
83
- const r = eachEntry(e, (_k, v) => itemValidate(v), undefined, noAccumulate)
84
- // `value` is Container<K>, but Ts<Info1<K,I>> = readonly Ts<I>[] | Record<string,Ts<I>>.
85
- // TypeScript can't narrow the container's element types through the validation loop.
86
- return r[0] === 'error' ? r : /** @type {any} */ (ok(value))
87
- }
88
-
89
- const arrayValidate = containerValidate(isArray)
90
-
91
- const recordValidate = containerValidate(isObject)
92
-
93
- /**
94
- * Builds a validator for `Tuple` or `Struct` const schemas.
95
- * Iterates over the schema's entries and validates each corresponding
96
- * element/property of the value.
97
- */
98
- const constContainerValidate =
99
- /**
100
- * @template {Unknown} C
101
- * @param {IsContainer<C>} isContainer
102
- * @param {(value: C, k: string) => Unknown} getItem
103
- * @returns {<T extends Tuple | Struct>(rtti: T) => Validate<T>}
104
- */
105
- (isContainer, getItem) =>
106
- rtti => value => {
107
- if (!isContainer(value)) {
108
- return verror('unexpected value')
109
- }
110
- const r = eachEntry(
111
- Object.entries(rtti),
112
- (k, v) => /** @type {any} */ (validate(v))(getItem(value, k)),
113
- undefined,
114
- noAccumulate,
115
- )
116
- // `value` is C (Unknown container), but Ts<T> for T extends Tuple|Struct is not
117
- // structurally equivalent to C — TypeScript can't narrow element types through the loop.
118
- return r[0] === 'error' ? r : /** @type {any} */ (ok(value))
119
- }
120
-
121
- const tupleValidate = constContainerValidate(
122
- isArray,
123
- (value, k) => value[Number(k)]
124
- )
125
-
126
- const structValidate = constContainerValidate(
127
- isObject,
128
- (value, k) => value[k]
129
- )
130
-
131
- const orValidate =
132
- /**
133
- * @template {readonly Type[]} T
134
- * @param {T} rtti
135
- * @returns {Validate<() => readonly ['or', ...T]>}
136
- */
137
- rtti =>
138
- /** @type {any} */ (orVisit(/** @type {(t: Type) => ValidateE} */ (/** @type {any} */ (validate)))(rtti))
139
-
140
- /**
141
- * Creates a validator function for the given RTTI schema.
142
- *
143
- * @param rtti - A schema `Type`: a `Thunk` for tag-based schemas, or a `Const`
144
- * (primitive literal, tuple, or struct) for exact-value schemas.
145
- * @returns A `Validate<T>` function that checks an unknown value and returns
146
- * `['ok', value]` or `['error', { path, message }]`.
147
- *
148
- * @example
149
- * ```js
150
- * const v = validate(array(number))
151
- * v([1, 2, 3]) // ['ok', [1, 2, 3]]
152
- * v([1, 'two']) // ['error', { path: ['1'], message: 'unexpected value' }]
153
- * v(['a']) // ['error', { path: ['0'], message: 'unexpected value' }]
154
- * ```
155
- */
156
- const validateVisitor = /** @type {any} */ ({
157
- tuple: tupleValidate,
158
- struct: structValidate,
159
- array: arrayValidate,
160
- record: recordValidate,
161
- or: orValidate,
162
- constPrimitive: constPrimitiveValidate,
163
- primitive0: primitive0Validate,
164
- unknown: () => ok,
165
- })
166
-
167
- /** @type {<T extends Type>(rtti: T) => Validate<T>} */
168
- export const validate = rtti =>
169
- /** @type {any} */ (visit(validateVisitor)(rtti))