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.
Files changed (453) hide show
  1. package/fjs/asn.1/proof.f.d.mts +5 -0
  2. package/fjs/asn.1/proof.f.mjs +15 -3
  3. package/fjs/asserts/module.f.d.mts +14 -0
  4. package/fjs/asserts/module.f.mjs +20 -0
  5. package/fjs/asserts/proof.f.d.mts +3 -0
  6. package/fjs/asserts/proof.f.mjs +15 -1
  7. package/fjs/basen/base128/proof.f.d.mts +3 -1
  8. package/fjs/basen/base128/proof.f.mjs +3 -1
  9. package/fjs/basen/base64/module.f.mjs +7 -3
  10. package/fjs/basen/base64/proof.f.d.mts +3 -1
  11. package/fjs/basen/base64/proof.f.mjs +7 -4
  12. package/fjs/basen/cbase32/proof.f.d.mts +3 -1
  13. package/fjs/basen/cbase32/proof.f.mjs +3 -1
  14. package/fjs/bnf/data/proof.f.mjs +0 -1
  15. package/fjs/bnf/descent/module.f.d.mts +17 -2
  16. package/fjs/bnf/descent/module.f.mjs +118 -41
  17. package/fjs/bnf/descent/proof.f.d.mts +1 -0
  18. package/fjs/bnf/descent/proof.f.mjs +77 -1
  19. package/fjs/bnf/descent/types.d.ts +12 -4
  20. package/fjs/bnf/ll1/module.f.d.mts +28 -2
  21. package/fjs/bnf/ll1/module.f.mjs +180 -38
  22. package/fjs/bnf/ll1/proof.f.d.mts +2 -0
  23. package/fjs/bnf/ll1/proof.f.mjs +62 -1
  24. package/fjs/bnf/ll1/types.d.ts +14 -8
  25. package/fjs/bnf/module.f.d.mts +15 -6
  26. package/fjs/bnf/module.f.mjs +52 -11
  27. package/fjs/bnf/proof.f.d.mts +2 -0
  28. package/fjs/bnf/proof.f.mjs +79 -3
  29. package/fjs/bnf/token_symbol/module.f.d.mts +4 -3
  30. package/fjs/bnf/token_symbol/module.f.mjs +7 -6
  31. package/fjs/bnf/token_symbol/proof.f.mjs +5 -2
  32. package/fjs/bnf/token_symbol/types.d.ts +2 -2
  33. package/fjs/bnf/types.d.ts +10 -3
  34. package/fjs/cas/cli/proof.f.d.mts +3 -1
  35. package/fjs/cas/cli/proof.f.mjs +3 -1
  36. package/fjs/cas/evo/module.f.d.mts +7 -13
  37. package/fjs/cas/evo/module.f.mjs +103 -96
  38. package/fjs/cas/evo/proof.f.mjs +6 -3
  39. package/fjs/cas/module.f.mjs +96 -109
  40. package/fjs/ci/common/module.f.d.mts +1 -1
  41. package/fjs/ci/common/module.f.mjs +1 -0
  42. package/fjs/ci/config/module.f.d.mts +2 -2
  43. package/fjs/ci/config/module.f.mjs +2 -2
  44. package/fjs/ci/nix/proof.f.d.mts +2 -0
  45. package/fjs/ci/nix/proof.f.mjs +2 -2
  46. package/fjs/ci/proof.f.d.mts +4 -2
  47. package/fjs/ci/proof.f.mjs +4 -3
  48. package/fjs/cli/proof.f.d.mts +4 -2
  49. package/fjs/cli/proof.f.mjs +4 -2
  50. package/fjs/common/monoid/module.f.d.mts +70 -12
  51. package/fjs/common/monoid/module.f.mjs +177 -14
  52. package/fjs/common/monoid/proof.f.d.mts +12 -1
  53. package/fjs/common/monoid/proof.f.mjs +88 -4
  54. package/fjs/common/monoid/types.d.ts +23 -0
  55. package/fjs/crypto/secp/proof.f.d.mts +3 -1
  56. package/fjs/crypto/secp/proof.f.mjs +3 -1
  57. package/fjs/crypto/sha2/proof.f.d.mts +3 -1
  58. package/fjs/crypto/sha2/proof.f.mjs +3 -1
  59. package/fjs/crypto/vdf/module.f.d.mts +23 -4
  60. package/fjs/crypto/vdf/module.f.mjs +6 -4
  61. package/fjs/dev/module.f.d.mts +5 -2
  62. package/fjs/dev/module.f.mjs +5 -4
  63. package/fjs/dev/package_json/module.f.d.mts +7 -0
  64. package/fjs/dev/package_json/module.f.mjs +10 -7
  65. package/fjs/dev/update/module.f.d.mts +3 -0
  66. package/fjs/dev/update/module.f.mjs +3 -2
  67. package/fjs/dev/update/proof.f.d.mts +3 -0
  68. package/fjs/dev/update/proof.f.mjs +1 -2
  69. package/fjs/djs/parser/module.f.d.mts +3 -0
  70. package/fjs/djs/parser/module.f.mjs +18 -0
  71. package/fjs/djs/parser/proof.f.d.mts +3 -0
  72. package/fjs/djs/parser/proof.f.mjs +13 -1
  73. package/fjs/djs/proof.f.d.mts +3 -0
  74. package/fjs/djs/proof.f.mjs +4 -1
  75. package/fjs/djs/serializer/module.f.mjs +5 -4
  76. package/fjs/djs/tokenizer/module.f.mjs +21 -13
  77. package/fjs/djs/tokenizer/proof.f.d.mts +3 -0
  78. package/fjs/djs/tokenizer/proof.f.mjs +14 -2
  79. package/fjs/djs/transpiler/module.f.d.mts +1 -12
  80. package/fjs/djs/transpiler/module.f.mjs +1 -20
  81. package/fjs/djs/transpiler/types.d.ts +25 -0
  82. package/fjs/effects/eff/module.f.d.mts +10 -0
  83. package/fjs/effects/eff/module.f.mjs +4 -2
  84. package/fjs/effects/eff/proof.f.d.mts +3 -0
  85. package/fjs/effects/eff/proof.f.mjs +4 -1
  86. package/fjs/effects/list/module.f.d.mts +10 -2
  87. package/fjs/effects/list/module.f.mjs +4 -2
  88. package/fjs/effects/memory/module.f.d.mts +4 -2
  89. package/fjs/effects/memory/module.f.mjs +4 -3
  90. package/fjs/effects/memory/proof.f.d.mts +4 -0
  91. package/fjs/effects/memory/proof.f.mjs +5 -2
  92. package/fjs/effects/mock/module.f.d.mts +10 -2
  93. package/fjs/effects/mock/module.f.mjs +4 -2
  94. package/fjs/effects/module.d.mts +8 -0
  95. package/fjs/effects/module.f.d.mts +6 -4
  96. package/fjs/effects/module.f.mjs +6 -5
  97. package/fjs/effects/module.mjs +9 -1
  98. package/fjs/effects/node/memory/module.d.mts +3 -0
  99. package/fjs/effects/node/memory/module.mjs +3 -2
  100. package/fjs/effects/node/memory/proof.d.mts +2 -0
  101. package/fjs/effects/node/memory/proof.mjs +2 -1
  102. package/fjs/effects/node/module.d.mts +5 -0
  103. package/fjs/effects/node/module.f.d.mts +17 -12
  104. package/fjs/effects/node/module.f.mjs +6 -12
  105. package/fjs/effects/node/module.mjs +5 -17
  106. package/fjs/effects/node/virtual/module.f.d.mts +6 -3
  107. package/fjs/effects/node/virtual/module.f.mjs +6 -5
  108. package/fjs/effects/node/virtual/proof.f.d.mts +4 -1
  109. package/fjs/effects/node/virtual/proof.f.mjs +13 -1
  110. package/fjs/effects/proof.f.d.mts +3 -0
  111. package/fjs/effects/proof.f.mjs +4 -1
  112. package/fjs/emergent_testing/all.test.d.mts +8 -0
  113. package/fjs/emergent_testing/all.test.mjs +14 -0
  114. package/fjs/emergent_testing/module.f.d.mts +6 -1
  115. package/fjs/emergent_testing/module.f.mjs +40 -66
  116. package/fjs/emergent_testing/proof.f.mjs +5 -5
  117. package/fjs/fsc/bnf.f.d.mts +3 -0
  118. package/fjs/fsc/bnf.f.mjs +4 -1
  119. package/fjs/fsc/json.f.d.mts +3 -0
  120. package/fjs/fsc/json.f.mjs +4 -1
  121. package/fjs/fsc/module.f.d.mts +9 -0
  122. package/fjs/fsc/module.f.mjs +5 -3
  123. package/fjs/fsm/proof.f.d.mts +3 -0
  124. package/fjs/fsm/proof.f.mjs +4 -1
  125. package/fjs/js/tokenizer/module.f.d.mts +7 -0
  126. package/fjs/js/tokenizer/module.f.mjs +19 -55
  127. package/fjs/mcp/module.f.d.mts +36 -1
  128. package/fjs/mcp/module.f.mjs +9 -7
  129. package/fjs/mcp/proof.f.d.mts +11 -1
  130. package/fjs/mcp/proof.f.mjs +11 -18
  131. package/fjs/media/html/module.f.d.mts +12 -0
  132. package/fjs/media/html/module.f.mjs +6 -4
  133. package/fjs/media/html/proof.f.d.mts +3 -0
  134. package/fjs/media/html/proof.f.mjs +4 -1
  135. package/fjs/media/json/parser/module.f.d.mts +1 -1
  136. package/fjs/media/json/parser/module.f.mjs +25 -8
  137. package/fjs/media/json/parser/types.d.ts +5 -0
  138. package/fjs/media/json/rtti/proof.f.d.mts +3 -0
  139. package/fjs/media/json/rtti/proof.f.mjs +3 -3
  140. package/fjs/media/json/schema/module.f.d.mts +61 -27
  141. package/fjs/media/json/schema/module.f.mjs +228 -63
  142. package/fjs/media/json/schema/proof.f.d.mts +41 -0
  143. package/fjs/media/json/schema/proof.f.mjs +219 -7
  144. package/fjs/media/json/serializer/module.f.d.mts +13 -0
  145. package/fjs/media/json/serializer/module.f.mjs +7 -7
  146. package/fjs/media/json/tokenizer/module.f.d.mts +8 -0
  147. package/fjs/media/json/tokenizer/module.f.mjs +24 -5
  148. package/fjs/media/nix/module.f.d.mts +13 -0
  149. package/fjs/media/nix/module.f.mjs +4 -2
  150. package/fjs/media/nix/proof.f.d.mts +3 -0
  151. package/fjs/media/nix/proof.f.mjs +4 -1
  152. package/fjs/media/revision/module.f.d.mts +5 -0
  153. package/fjs/media/revision/module.f.mjs +8 -11
  154. package/fjs/media/revision/proof.f.d.mts +4 -0
  155. package/fjs/media/revision/proof.f.mjs +5 -2
  156. package/fjs/media/type/module.f.d.mts +28 -11
  157. package/fjs/media/type/module.f.mjs +69 -85
  158. package/fjs/media/type/proof.f.d.mts +16 -0
  159. package/fjs/media/type/proof.f.mjs +44 -4
  160. package/fjs/module.d.mts +5 -0
  161. package/fjs/module.f.d.mts +8 -0
  162. package/fjs/module.f.mjs +4 -2
  163. package/fjs/module.mjs +6 -0
  164. package/fjs/path/module.f.d.mts +8 -0
  165. package/fjs/path/module.f.mjs +4 -2
  166. package/fjs/proof.f.d.mts +4 -0
  167. package/fjs/proof.f.mjs +5 -2
  168. package/fjs/protocol/json_rpc/module.f.d.mts +1 -1
  169. package/fjs/protocol/json_rpc/module.f.mjs +7 -4
  170. package/fjs/protocol/json_rpc/proof.f.d.mts +6 -0
  171. package/fjs/protocol/json_rpc/proof.f.mjs +22 -1
  172. package/fjs/protocol/mcp/proof.f.d.mts +4 -0
  173. package/fjs/protocol/mcp/proof.f.mjs +47 -24
  174. package/fjs/protocol/mcp/stdio/module.f.d.mts +2 -4
  175. package/fjs/protocol/mcp/stdio/module.f.mjs +1 -8
  176. package/fjs/protocol/mcp/stdio/proof.f.d.mts +1 -1
  177. package/fjs/protocol/mcp/stdio/proof.f.mjs +1 -1
  178. package/fjs/protocol/mcp/stdio/types.d.ts +14 -0
  179. package/fjs/sul/id/module.f.d.mts +5 -0
  180. package/fjs/sul/id/module.f.mjs +5 -4
  181. package/fjs/sul/level/hash/module.f.d.mts +4 -1
  182. package/fjs/sul/level/hash/module.f.mjs +4 -3
  183. package/fjs/sul/level/hash/proof.f.d.mts +4 -0
  184. package/fjs/sul/level/hash/proof.f.mjs +5 -2
  185. package/fjs/sul/level/literal/module.f.d.mts +4 -1
  186. package/fjs/sul/level/literal/module.f.mjs +4 -3
  187. package/fjs/sul/level/literal/proof.f.d.mts +3 -0
  188. package/fjs/sul/level/literal/proof.f.mjs +4 -1
  189. package/fjs/sul/module.f.d.mts +5 -3
  190. package/fjs/sul/module.f.mjs +5 -4
  191. package/fjs/sul/proof.f.d.mts +4 -0
  192. package/fjs/sul/proof.f.mjs +5 -2
  193. package/fjs/text/ascii/module.f.d.mts +26 -0
  194. package/fjs/text/ascii/module.f.mjs +49 -1
  195. package/fjs/text/ascii/proof.f.d.mts +10 -0
  196. package/fjs/text/ascii/proof.f.mjs +33 -1
  197. package/fjs/text/code_point/module.f.d.mts +21 -3
  198. package/fjs/text/code_point/module.f.mjs +24 -8
  199. package/fjs/text/code_point/proof.f.d.mts +1 -0
  200. package/fjs/text/code_point/proof.f.mjs +28 -0
  201. package/fjs/text/module.f.d.mts +4 -2
  202. package/fjs/text/module.f.mjs +4 -3
  203. package/fjs/text/proof.f.d.mts +3 -0
  204. package/fjs/text/proof.f.mjs +4 -1
  205. package/fjs/text/sgr/module.f.d.mts +4 -1
  206. package/fjs/text/sgr/module.f.mjs +4 -3
  207. package/fjs/text/sgr/proof.f.d.mts +3 -0
  208. package/fjs/text/sgr/proof.f.mjs +4 -1
  209. package/fjs/text/utf16/module.f.d.mts +5 -1
  210. package/fjs/text/utf16/module.f.mjs +31 -33
  211. package/fjs/text/utf16/proof.f.d.mts +3 -1
  212. package/fjs/text/utf16/proof.f.mjs +18 -1
  213. package/fjs/text/utf8/module.f.d.mts +9 -5
  214. package/fjs/text/utf8/module.f.mjs +16 -18
  215. package/fjs/types/array/module.f.d.mts +2 -1
  216. package/fjs/types/array/module.f.mjs +2 -2
  217. package/fjs/types/bigfloat/module.f.d.mts +21 -1
  218. package/fjs/types/bigfloat/module.f.mjs +33 -7
  219. package/fjs/types/bigfloat/proof.f.d.mts +1 -0
  220. package/fjs/types/bigfloat/proof.f.mjs +46 -0
  221. package/fjs/types/bigint/module.f.d.mts +4 -0
  222. package/fjs/types/bigint/module.f.mjs +4 -3
  223. package/fjs/types/bit_vec/module.f.d.mts +10 -14
  224. package/fjs/types/bit_vec/module.f.mjs +61 -71
  225. package/fjs/types/bit_vec/proof.f.d.mts +6 -0
  226. package/fjs/types/bit_vec/proof.f.mjs +29 -3
  227. package/fjs/types/btree/find/module.f.d.mts +5 -1
  228. package/fjs/types/btree/find/module.f.mjs +5 -5
  229. package/fjs/types/btree/find/proof.f.d.mts +5 -1
  230. package/fjs/types/btree/find/proof.f.mjs +5 -3
  231. package/fjs/types/btree/module.f.d.mts +3 -0
  232. package/fjs/types/btree/module.f.mjs +3 -2
  233. package/fjs/types/btree/proof.f.d.mts +5 -1
  234. package/fjs/types/btree/proof.f.mjs +5 -3
  235. package/fjs/types/btree/remove/module.f.d.mts +11 -0
  236. package/fjs/types/btree/remove/module.f.mjs +9 -9
  237. package/fjs/types/btree/remove/proof.f.d.mts +3 -0
  238. package/fjs/types/btree/remove/proof.f.mjs +4 -1
  239. package/fjs/types/btree/set/module.f.d.mts +9 -0
  240. package/fjs/types/btree/set/module.f.mjs +5 -6
  241. package/fjs/types/btree/set/proof.f.d.mts +3 -0
  242. package/fjs/types/btree/set/proof.f.mjs +4 -1
  243. package/fjs/types/btree/types/module.f.d.mts +2 -1
  244. package/fjs/types/btree/types/module.f.mjs +2 -1
  245. package/fjs/types/byte_set/module.f.d.mts +10 -1
  246. package/fjs/types/byte_set/module.f.mjs +5 -3
  247. package/fjs/types/byte_set/proof.f.d.mts +3 -1
  248. package/fjs/types/byte_set/proof.f.mjs +3 -1
  249. package/fjs/types/function/compare/module.f.d.mts +3 -2
  250. package/fjs/types/function/compare/module.f.mjs +3 -2
  251. package/fjs/types/function/module.f.d.mts +8 -1
  252. package/fjs/types/function/module.f.mjs +8 -1
  253. package/fjs/types/function/operator/module.f.d.mts +2 -1
  254. package/fjs/types/function/operator/module.f.mjs +2 -2
  255. package/fjs/types/list/module.f.d.mts +9 -2
  256. package/fjs/types/list/module.f.mjs +5 -3
  257. package/fjs/types/list/proof.f.d.mts +4 -1
  258. package/fjs/types/list/proof.f.mjs +4 -2
  259. package/fjs/types/nibble_set/module.f.d.mts +2 -1
  260. package/fjs/types/nibble_set/module.f.mjs +2 -2
  261. package/fjs/types/nominal/module.f.d.mts +2 -1
  262. package/fjs/types/nominal/module.f.mjs +2 -1
  263. package/fjs/types/nullable/module.f.d.mts +8 -2
  264. package/fjs/types/nullable/module.f.mjs +4 -2
  265. package/fjs/types/number/module.f.d.mts +4 -0
  266. package/fjs/types/number/module.f.mjs +4 -3
  267. package/fjs/types/object/module.f.d.mts +14 -2
  268. package/fjs/types/object/module.f.mjs +15 -6
  269. package/fjs/types/object/proof.f.d.mts +5 -2
  270. package/fjs/types/object/proof.f.mjs +6 -3
  271. package/fjs/types/object/structurally_same/module.f.d.mts +39 -0
  272. package/fjs/types/object/structurally_same/module.f.mjs +59 -0
  273. package/fjs/types/object/structurally_same/proof.f.d.mts +6 -0
  274. package/fjs/types/object/structurally_same/proof.f.mjs +73 -0
  275. package/fjs/types/ordered_map/module.f.d.mts +5 -0
  276. package/fjs/types/ordered_map/module.f.mjs +5 -4
  277. package/fjs/types/ordered_map/proof.f.d.mts +3 -0
  278. package/fjs/types/ordered_map/proof.f.mjs +4 -1
  279. package/fjs/types/patricia_trie/module.f.d.mts +2 -1
  280. package/fjs/types/patricia_trie/module.f.mjs +2 -2
  281. package/fjs/types/patricia_trie/proof.f.d.mts +3 -0
  282. package/fjs/types/patricia_trie/proof.f.mjs +4 -1
  283. package/fjs/types/prime_field/module.f.d.mts +3 -1
  284. package/fjs/types/prime_field/module.f.mjs +3 -2
  285. package/fjs/types/range/module.f.d.mts +2 -1
  286. package/fjs/types/range/module.f.mjs +2 -2
  287. package/fjs/types/range_map/module.f.d.mts +6 -0
  288. package/fjs/types/range_map/module.f.mjs +6 -9
  289. package/fjs/types/range_map/proof.f.d.mts +5 -1
  290. package/fjs/types/range_map/proof.f.mjs +5 -3
  291. package/fjs/types/range_set/module.f.d.mts +5 -0
  292. package/fjs/types/range_set/module.f.mjs +1 -0
  293. package/fjs/types/range_set/proof.f.d.mts +3 -0
  294. package/fjs/types/range_set/proof.f.mjs +4 -1
  295. package/fjs/types/result/module.d.mts +8 -0
  296. package/fjs/types/result/module.f.d.mts +37 -7
  297. package/fjs/types/result/module.f.mjs +38 -8
  298. package/fjs/types/result/module.mjs +9 -1
  299. package/fjs/types/result/proof.f.d.mts +5 -0
  300. package/fjs/types/result/proof.f.mjs +22 -2
  301. package/fjs/types/rtti/common/module.f.d.mts +35 -2
  302. package/fjs/types/rtti/common/module.f.mjs +9 -7
  303. package/fjs/types/rtti/common/proof.f.d.mts +4 -0
  304. package/fjs/types/rtti/common/proof.f.mjs +5 -2
  305. package/fjs/types/rtti/data/module.f.d.mts +120 -0
  306. package/fjs/types/rtti/data/module.f.mjs +1030 -0
  307. package/fjs/types/rtti/data/proof.f.d.mts +75 -0
  308. package/fjs/types/rtti/data/proof.f.mjs +566 -0
  309. package/fjs/types/rtti/data/types.d.ts +83 -0
  310. package/fjs/types/rtti/module.f.d.mts +12 -5
  311. package/fjs/types/rtti/module.f.mjs +7 -5
  312. package/fjs/types/rtti/parse/module.f.d.mts +38 -0
  313. package/fjs/types/rtti/parse/module.f.mjs +9 -7
  314. package/fjs/types/rtti/parse/proof.f.mjs +18 -38
  315. package/fjs/types/rtti/proof.f.d.mts +3 -1
  316. package/fjs/types/rtti/proof.f.mjs +3 -1
  317. package/fjs/types/rtti/ts/module.f.d.mts +68 -9
  318. package/fjs/types/rtti/ts/module.f.mjs +262 -30
  319. package/fjs/types/rtti/ts/proof.f.d.mts +44 -0
  320. package/fjs/types/rtti/ts/proof.f.mjs +152 -4
  321. package/fjs/types/rtti/ts/types.d.ts +11 -0
  322. package/fjs/types/rtti/types.d.ts +40 -0
  323. package/fjs/types/rtti/validate/module.f.d.mts +36 -1
  324. package/fjs/types/rtti/validate/module.f.mjs +6 -4
  325. package/fjs/types/sorted_list/module.f.d.mts +4 -1
  326. package/fjs/types/sorted_list/module.f.mjs +21 -12
  327. package/fjs/types/sorted_list/proof.f.d.mts +3 -1
  328. package/fjs/types/sorted_list/proof.f.mjs +3 -1
  329. package/fjs/types/sorted_set/module.f.d.mts +31 -1
  330. package/fjs/types/sorted_set/module.f.mjs +4 -2
  331. package/fjs/types/sorted_set/proof.f.d.mts +3 -1
  332. package/fjs/types/sorted_set/proof.f.mjs +3 -1
  333. package/fjs/types/string/module.f.d.mts +4 -0
  334. package/fjs/types/string/module.f.mjs +4 -3
  335. package/fjs/types/string_set/module.f.d.mts +3 -1
  336. package/fjs/types/string_set/module.f.mjs +3 -2
  337. package/fjs/types/ts/module.f.d.mts +2 -0
  338. package/fjs/types/ts/module.f.mjs +3 -3
  339. package/fjs/types/ts/proof.f.d.mts +1 -0
  340. package/fjs/types/ts/proof.f.mjs +5 -0
  341. package/fjs/types/ts/types.d.ts +6 -1
  342. package/fjs/types/uint8array/module.f.d.mts +13 -2
  343. package/fjs/types/uint8array/module.f.mjs +20 -15
  344. package/fjs/website/module.f.d.mts +3 -0
  345. package/fjs/website/module.f.mjs +3 -2
  346. package/package.json +3 -3
  347. package/fjs/asn.1/types.js +0 -6
  348. package/fjs/asserts/types.js +0 -6
  349. package/fjs/basen/types.js +0 -6
  350. package/fjs/bnf/data/types.js +0 -6
  351. package/fjs/bnf/descent/types.js +0 -6
  352. package/fjs/bnf/ll1/types.js +0 -6
  353. package/fjs/bnf/token_symbol/types.js +0 -6
  354. package/fjs/bnf/types.js +0 -6
  355. package/fjs/cas/evo/types.js +0 -7
  356. package/fjs/cas/types.js +0 -6
  357. package/fjs/ci/common/types.js +0 -1
  358. package/fjs/ci/nix/types.js +0 -6
  359. package/fjs/ci/types.js +0 -6
  360. package/fjs/cli/types.js +0 -6
  361. package/fjs/common/monoid/types.js +0 -6
  362. package/fjs/crypto/pow/types.js +0 -6
  363. package/fjs/crypto/secp/types.js +0 -6
  364. package/fjs/crypto/sha2/types.js +0 -6
  365. package/fjs/crypto/sign/types.js +0 -6
  366. package/fjs/crypto/vdf/types.js +0 -6
  367. package/fjs/dev/types.js +0 -6
  368. package/fjs/djs/ast/types.js +0 -8
  369. package/fjs/djs/parser/types.js +0 -7
  370. package/fjs/djs/tokenizer/types.js +0 -7
  371. package/fjs/djs/types.js +0 -7
  372. package/fjs/effects/eff/types.js +0 -6
  373. package/fjs/effects/list/types.js +0 -6
  374. package/fjs/effects/memory/types.js +0 -6
  375. package/fjs/effects/mock/types.js +0 -6
  376. package/fjs/effects/node/types.js +0 -6
  377. package/fjs/effects/node/virtual/types.js +0 -7
  378. package/fjs/effects/types.js +0 -6
  379. package/fjs/emergent_testing/all.test.d.ts +0 -1
  380. package/fjs/emergent_testing/all.test.js +0 -5
  381. package/fjs/emergent_testing/scenarios/all.d.ts +0 -1
  382. package/fjs/emergent_testing/scenarios/all.js +0 -1
  383. package/fjs/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -6
  384. package/fjs/emergent_testing/scenarios/async-subtests.fail.js +0 -9
  385. package/fjs/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -6
  386. package/fjs/emergent_testing/scenarios/async-subtests.pass.js +0 -9
  387. package/fjs/emergent_testing/scenarios/async.fail.d.ts +0 -3
  388. package/fjs/emergent_testing/scenarios/async.fail.js +0 -6
  389. package/fjs/emergent_testing/scenarios/async.pass.d.ts +0 -3
  390. package/fjs/emergent_testing/scenarios/async.pass.js +0 -5
  391. package/fjs/emergent_testing/scenarios/fail.fail.d.ts +0 -3
  392. package/fjs/emergent_testing/scenarios/fail.fail.js +0 -3
  393. package/fjs/emergent_testing/scenarios/return-value.pass.d.ts +0 -3
  394. package/fjs/emergent_testing/scenarios/return-value.pass.js +0 -4
  395. package/fjs/emergent_testing/scenarios/thenable.pass.d.ts +0 -5
  396. package/fjs/emergent_testing/scenarios/thenable.pass.js +0 -11
  397. package/fjs/emergent_testing/scenarios/thenable2.pass.d.ts +0 -5
  398. package/fjs/emergent_testing/scenarios/thenable2.pass.js +0 -3
  399. package/fjs/emergent_testing/scenarios/throw.pass.d.ts +0 -5
  400. package/fjs/emergent_testing/scenarios/throw.pass.js +0 -3
  401. package/fjs/emergent_testing/types.js +0 -6
  402. package/fjs/js/tokenizer/types.js +0 -6
  403. package/fjs/media/html/types.js +0 -6
  404. package/fjs/media/json/parser/types.js +0 -6
  405. package/fjs/media/json/tokenizer/types.js +0 -6
  406. package/fjs/media/json/types.js +0 -13
  407. package/fjs/media/nix/types.js +0 -6
  408. package/fjs/media/revision/types.js +0 -8
  409. package/fjs/media/type/types.js +0 -6
  410. package/fjs/media/types.js +0 -7
  411. package/fjs/nanvm/types.js +0 -11
  412. package/fjs/protocol/json_rpc/types.js +0 -8
  413. package/fjs/protocol/mcp/types.js +0 -8
  414. package/fjs/sul/id/types.js +0 -6
  415. package/fjs/sul/level/hash/types.js +0 -6
  416. package/fjs/sul/level/literal/types.js +0 -6
  417. package/fjs/sul/types.js +0 -6
  418. package/fjs/text/sgr/types.js +0 -6
  419. package/fjs/text/types.js +0 -6
  420. package/fjs/text/utf16/types.js +0 -6
  421. package/fjs/text/utf8/types.js +0 -6
  422. package/fjs/types/array/types.js +0 -6
  423. package/fjs/types/bigfloat/types.js +0 -6
  424. package/fjs/types/bigint/types.js +0 -6
  425. package/fjs/types/bit_vec/types.js +0 -6
  426. package/fjs/types/btree/find/types.js +0 -6
  427. package/fjs/types/btree/types/types.js +0 -6
  428. package/fjs/types/byte_set/types.js +0 -6
  429. package/fjs/types/function/compare/types.js +0 -6
  430. package/fjs/types/function/operator/types.js +0 -6
  431. package/fjs/types/function/types.js +0 -6
  432. package/fjs/types/list/types.js +0 -6
  433. package/fjs/types/nibble_set/types.js +0 -6
  434. package/fjs/types/nominal/types.js +0 -6
  435. package/fjs/types/nullable/types.js +0 -6
  436. package/fjs/types/object/types.js +0 -8
  437. package/fjs/types/option/types.js +0 -6
  438. package/fjs/types/ordered_map/types.js +0 -6
  439. package/fjs/types/patricia_trie/types.js +0 -6
  440. package/fjs/types/phantom/types.js +0 -11
  441. package/fjs/types/prime_field/types.js +0 -6
  442. package/fjs/types/range/types.js +0 -6
  443. package/fjs/types/range_map/types.js +0 -6
  444. package/fjs/types/result/types.js +0 -6
  445. package/fjs/types/rtti/common/types.js +0 -1
  446. package/fjs/types/rtti/parse/types.js +0 -1
  447. package/fjs/types/rtti/ts/types.js +0 -1
  448. package/fjs/types/rtti/types.js +0 -1
  449. package/fjs/types/rtti/validate/types.js +0 -1
  450. package/fjs/types/sorted_list/types.js +0 -6
  451. package/fjs/types/sorted_set/types.js +0 -6
  452. package/fjs/types/string_set/types.js +0 -6
  453. package/fjs/types/ts/types.js +0 -8
@@ -28,11 +28,14 @@
28
28
  * See `./types.ts` for the `Path`/`Result`/`Validate`/`ValidationError` type-level API.
29
29
  *
30
30
  * @module
31
+ *
32
+ * @import { Unknown } from '../ts/types.ts'
33
+ * @import { Info1, Struct, Tag1, Tuple, Type } from '../types.ts'
34
+ * @import { StringMap } from '../../object/types.ts'
35
+ * @import { Container, IsContainer, Validate, ValidateE, Visitor } from '../common/types.ts'
31
36
  */
32
- /** @import { Unknown } from '../ts/types.ts' */
33
- /** @import { Info1, Struct, Tag1, Tuple, Type } from '../types.ts' */
37
+
34
38
  import { ok } from '../../result/module.f.mjs'
35
- /** @import { StringMap } from '../../object/types.ts' */
36
39
  import {
37
40
  constPrimitiveValidate,
38
41
  eachEntry,
@@ -43,7 +46,6 @@ import {
43
46
  verror,
44
47
  visit,
45
48
  } from '../common/module.f.mjs'
46
- /** @import { Container, IsContainer, Validate, ValidateE, Visitor } from '../common/types.ts' */
47
49
 
48
50
  export {
49
51
  constPrimitiveValidate,
@@ -2,12 +2,15 @@
2
2
  * Sorted immutable list helpers and merge operations.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Cmp } from '../function/compare/types.ts'
7
+ * @import { List } from '../list/types.ts'
8
+ * @import { ReduceOp, SortedList, _MergeReduce } from './types.ts'
5
9
  */
6
10
  import type { Cmp } from '../function/compare/types.ts';
7
11
  import type { List } from '../list/types.ts';
8
12
  import type { ReduceOp, SortedList, _MergeReduce } from './types.ts';
9
13
  export type _SortedArray<T> = readonly T[];
10
- /** @import { ReduceOp, SortedList, TailReduce, _MergeReduce } from './types.ts' */
11
14
  /** @template T @typedef {readonly T[]} _SortedArray */
12
15
  /**
13
16
  * Two-way sorted-list merge.
@@ -2,14 +2,15 @@
2
2
  * Sorted immutable list helpers and merge operations.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { Cmp } from '../function/compare/types.ts'
7
+ * @import { List } from '../list/types.ts'
8
+ * @import { ReduceOp, SortedList, _MergeReduce } from './types.ts'
5
9
  */
6
10
 
7
11
  import { bsearch } from '../function/compare/module.f.mjs'
8
- /** @import { Cmp } from '../function/compare/types.ts' */
9
12
  import { next } from '../list/module.f.mjs'
10
- /** @import { List } from '../list/types.ts' */
11
13
  import { identity } from '../function/module.f.mjs'
12
- /** @import { ReduceOp, SortedList, TailReduce, _MergeReduce } from './types.ts' */
13
14
 
14
15
  /** @template T @typedef {readonly T[]} _SortedArray */
15
16
 
@@ -53,11 +54,7 @@ export const merge =
53
54
  * @param {Cmp<T>} cmp
54
55
  * @returns {(a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>}
55
56
  */
56
- cmp => {
57
- /** @type {TailReduce<T, null>} */
58
- const tailReduce = mergeTail
59
- return genericMerge({ reduceOp: cmpReduce(cmp), tailReduce })(null)
60
- }
57
+ cmp => genericMerge({ reduceOp: cmpReduce(cmp), tailReduce: keepTail })(null)
61
58
 
62
59
  const cmpReduce =
63
60
  /**
@@ -70,10 +67,22 @@ const cmpReduce =
70
67
  return [sign === 1 ? b : a, sign, null]
71
68
  }
72
69
 
73
- /** @type {() => <T>(tail: List<T>) => List<T>} */
74
- const mergeTail = () => identity
70
+ /**
71
+ * The two tail policies `genericMerge` takes, named for what they do with the
72
+ * list that has not been exhausted yet: `merge` keeps it, because everything
73
+ * still there belongs in the union, and `intersect` drops it, because with one
74
+ * side exhausted nothing remaining can be matched.
75
+ *
76
+ * Both are left to inference deliberately. An explicit
77
+ * `() => <T>(tail: List<T>) => List<T>` compiles here but introduces its own
78
+ * type parameter, which `genericMerge` then collects as an inference candidate
79
+ * alongside `reduceOp`'s; the best common supertype of the two is `unknown`, so
80
+ * `T` widens and both call sites fail to match their declared return type. With
81
+ * no annotation there is no second candidate and `reduceOp` alone fixes `T`.
82
+ */
83
+ const keepTail = () => identity
75
84
 
76
- const tailReduce = () => () => null
85
+ const dropTail = () => () => null
77
86
 
78
87
  const intersectReduce =
79
88
  /**
@@ -92,7 +101,7 @@ export const intersect =
92
101
  * @param {Cmp<T>} cmp
93
102
  * @returns {(a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>}
94
103
  */
95
- cmp => genericMerge({ reduceOp: intersectReduce(cmp), tailReduce })(null)
104
+ cmp => genericMerge({ reduceOp: intersectReduce(cmp), tailReduce: dropTail })(null)
96
105
 
97
106
  export const find =
98
107
  /**
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
  export declare const proof: {
3
5
  sortedMergre: (() => void)[];
4
6
  find: (() => void)[];
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
 
3
5
  import { find, merge } from './module.f.mjs'
4
6
  import { stringify } from '../../media/json/module.f.mjs'
@@ -1,6 +1,36 @@
1
+ /**
2
+ * A sorted set, implemented as a sorted array.
3
+ *
4
+ * @module
5
+ *
6
+ * @note
7
+ *
8
+ * All input arrays must be pre-sorted according to the provided comparison function (`Cmp<T>`).
9
+ * The correctness of these functions depend on this requirement.
10
+ *
11
+ * @example
12
+ *
13
+ * ```js
14
+ * import { union, intersect, has } from './module.f.mjs'
15
+ *
16
+ * const cmp = (a: number) => (b: number) => a < b ? -1 : a > b ? 1 : 0
17
+ *
18
+ * const setA = [1, 3, 5]
19
+ * const setB = [3, 4, 5]
20
+ *
21
+ * const unionSet = union(cmp)(setA)(setB) // [1, 3, 4, 5]
22
+ *
23
+ * const intersectionSet = intersect(cmp)(setA)(setB) // [3, 5]
24
+ *
25
+ * has(cmp)(3)(setA) // true
26
+ * has(cmp)(2)(setA) // false
27
+ * ```
28
+ *
29
+ * @import { Cmp } from '../function/compare/types.ts'
30
+ * @import { SortedSet } from './types.ts'
31
+ */
1
32
  import type { Cmp } from '../function/compare/types.ts';
2
33
  import type { SortedSet } from './types.ts';
3
- /** @import { SortedSet } from './types.ts' */
4
34
  export declare const union: <T>(
5
35
  /**
6
36
  * @template T
@@ -25,11 +25,13 @@
25
25
  * has(cmp)(3)(setA) // true
26
26
  * has(cmp)(2)(setA) // false
27
27
  * ```
28
+ *
29
+ * @import { Cmp } from '../function/compare/types.ts'
30
+ * @import { SortedSet } from './types.ts'
28
31
  */
29
- /** @import { Cmp } from '../function/compare/types.ts' */
32
+
30
33
  import { toArray } from "../list/module.f.mjs"
31
34
  import { merge, intersect as listIntersect, find } from '../sorted_list/module.f.mjs'
32
- /** @import { SortedSet } from './types.ts' */
33
35
 
34
36
  export const union =
35
37
  /**
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
  export declare const proof: {
3
5
  example: () => void;
4
6
  union: (() => void)[];
@@ -1,4 +1,6 @@
1
- /** @import { Unknown } from '../../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../../media/json/types.ts'
3
+ */
2
4
 
3
5
  import { has, intersect, union } from './module.f.mjs'
4
6
  import { stringify } from '../../media/json/module.f.mjs'
@@ -14,6 +14,10 @@
14
14
  * repeat('abc')(3) // 'abcabcabc'
15
15
  * cmp('apple')('banana') // -1
16
16
  * ```
17
+ *
18
+ * @import { List } from '../list/types.ts'
19
+ * @import { Sign } from '../function/compare/types.ts'
20
+ * @import { Reduce } from '../function/operator/types.ts'
17
21
  */
18
22
  import type { List } from '../list/types.ts';
19
23
  import type { Sign } from '../function/compare/types.ts';
@@ -14,14 +14,15 @@
14
14
  * repeat('abc')(3) // 'abcabcabc'
15
15
  * cmp('apple')('banana') // -1
16
16
  * ```
17
+ *
18
+ * @import { List } from '../list/types.ts'
19
+ * @import { Sign } from '../function/compare/types.ts'
20
+ * @import { Reduce } from '../function/operator/types.ts'
17
21
  */
18
22
 
19
- /** @import { List } from '../list/types.ts' */
20
23
  import { reduce as listReduce, repeat as listRepeat } from '../list/module.f.mjs'
21
24
  import { compose } from '../function/module.f.mjs'
22
- /** @import { Sign } from '../function/compare/types.ts' */
23
25
  import { cmp as uCmp } from '../function/compare/module.f.mjs'
24
- /** @import { Reduce } from '../function/operator/types.ts' */
25
26
  import { join as joinOp } from '../function/operator/module.f.mjs'
26
27
  import { fold } from '../../common/monoid/module.f.mjs'
27
28
 
@@ -19,10 +19,12 @@
19
19
  * mySet = remove('banana')(mySet);
20
20
  * if (contains('banana')(mySet)) { throw '4' }
21
21
  * ```
22
+ *
23
+ * @import { List } from '../list/types.ts'
24
+ * @import { StringSet } from './types.ts'
22
25
  */
23
26
  import type { List } from '../list/types.ts';
24
27
  import type { StringSet } from './types.ts';
25
- /** @import { StringSet } from './types.ts' */
26
28
  /** @type {(s: StringSet) => List<string>} */
27
29
  export declare const values: (s: StringSet) => List<string>;
28
30
  /** @type {null} */
@@ -19,6 +19,9 @@
19
19
  * mySet = remove('banana')(mySet);
20
20
  * if (contains('banana')(mySet)) { throw '4' }
21
21
  * ```
22
+ *
23
+ * @import { List } from '../list/types.ts'
24
+ * @import { StringSet } from './types.ts'
22
25
  */
23
26
 
24
27
  import { empty as btEmpty, values as btValues } from '../btree/module.f.mjs'
@@ -26,10 +29,8 @@ import { find, isFound } from '../btree/find/module.f.mjs'
26
29
  import { remove as btreeRemove } from '../btree/remove/module.f.mjs'
27
30
  import { set as btreeSet } from '../btree/set/module.f.mjs'
28
31
  import { cmp } from "../string/module.f.mjs"
29
- /** @import { List } from '../list/types.ts' */
30
32
  import { fold } from '../list/module.f.mjs'
31
33
  import { compose } from '../function/module.f.mjs'
32
- /** @import { StringSet } from './types.ts' */
33
34
 
34
35
  /** @type {(s: StringSet) => List<string>} */
35
36
  export const values = btValues
@@ -4,6 +4,8 @@
4
4
  * primitive literals, and unions as TypeScript type expressions.
5
5
  *
6
6
  * @module
7
+ *
8
+ * @import { Printer } from './types.ts'
7
9
  */
8
10
  import type { Printer } from './types.ts';
9
11
  /**
@@ -4,10 +4,10 @@
4
4
  * primitive literals, and unions as TypeScript type expressions.
5
5
  *
6
6
  * @module
7
+ *
8
+ * @import { Printer } from './types.ts'
7
9
  */
8
10
 
9
- /** @import { Printer } from './types.ts' */
10
-
11
11
  /** @type {(open: string, close: string) => (i: readonly string[]) => string} */
12
12
  const complex = (open, close) => i =>
13
13
  `${open}${i.join(',')}${close}`
@@ -24,7 +24,7 @@ export const printer = (mut = undefined) => {
24
24
  return {
25
25
  tuple: (mut ? complex('[', ']') : complex('readonly[', ']')),
26
26
  struct: fields =>
27
- structX(fields.map(([k, v]) => `${ro}${JSON.stringify(k)}:${v}`)),
27
+ structX(fields.map(([k, v, opt]) => `${ro}${JSON.stringify(k)}${opt === true ? '?' : ''}:${v}`)),
28
28
  array: type => `${ro}(${type})[]`,
29
29
  // `[k:string]?:` is invalid TypeScript — optional keys on an infinite
30
30
  // key set require mapped-type syntax.
@@ -10,6 +10,7 @@ export declare const unionSingle: () => void;
10
10
  export declare const unionMulti: () => void;
11
11
  export declare const printerReadonlyTuple: () => void;
12
12
  export declare const printerReadonlyStruct: () => void;
13
+ export declare const printerOptionalField: () => void;
13
14
  export declare const printerReadonlyArray: () => void;
14
15
  export declare const printerReadonlyRecord: () => void;
15
16
  export declare const printerMutableTuple: () => void;
@@ -64,6 +64,11 @@ export const printerReadonlyStruct = () => {
64
64
  if (r !== '{readonly"x":number,readonly"y":string}') { throw r }
65
65
  }
66
66
 
67
+ export const printerOptionalField = () => {
68
+ const r = ro.struct([['x', 'number', true], ['y', 'string']])
69
+ if (r !== '{readonly"x"?:number,readonly"y":string}') { throw r }
70
+ }
71
+
67
72
  export const printerReadonlyArray = () => {
68
73
  const r = ro.array('string')
69
74
  assertEq(r, 'readonly(string)[]')
@@ -5,12 +5,17 @@
5
5
  * @module
6
6
  */
7
7
  export type Equal<A, B> = (<T>() => T extends A ? 1 : 2) extends (<T>() => T extends B ? 1 : 2) ? true : false;
8
+ /**
9
+ * A `struct` field: the key, its type expression, and — when the third
10
+ * element is `true` — an optional-key marker (`"key"?: type`).
11
+ */
12
+ export type StructField = readonly [string, string, true?];
8
13
  /**
9
14
  * Functions for emitting TypeScript type expression strings.
10
15
  */
11
16
  export type Printer = {
12
17
  readonly tuple: (types: readonly string[]) => string;
13
- readonly struct: (fields: readonly (readonly [string, string])[]) => string;
18
+ readonly struct: (fields: readonly StructField[]) => string;
14
19
  readonly array: (type: string) => string;
15
20
  readonly record: (type: string) => string;
16
21
  };
@@ -8,17 +8,28 @@
8
8
  * (e.g. `fromVec`/`toVec` when reading or writing files).
9
9
  *
10
10
  * @module
11
+ *
12
+ * @import { Vec } from '../bit_vec/types.ts'
13
+ * @import { List } from '../list/types.ts'
11
14
  */
12
15
  import type { Vec } from '../bit_vec/types.ts';
13
16
  import type { List } from '../list/types.ts';
17
+ /**
18
+ * Concatenates a list of `Uint8Array` values into one MSB-first bit vector.
19
+ *
20
+ * Throws if the result would exceed `maxLength`. The bound is not precomputed:
21
+ * `tryU8ListToVec` attempts the real conversion and reports `null` when it does
22
+ * not fit (AGENTS.md §5.6).
23
+ *
24
+ * @type {(input: List<Uint8Array>) => Vec}
25
+ */
26
+ export declare const listToVec: (input: List<Uint8Array>) => Vec;
14
27
  /**
15
28
  * Converts a Uint8Array into an MSB-first bit vector.
16
29
  *
17
30
  * @type {(input: Uint8Array) => Vec}
18
31
  */
19
32
  export declare const toVec: (input: Uint8Array) => Vec;
20
- /** @type {(input: List<Uint8Array>) => Vec} */
21
- export declare const listToVec: (input: List<Uint8Array>) => Vec;
22
33
  /**
23
34
  * Converts an MSB-first bit vector into a Uint8Array.
24
35
  *
@@ -8,36 +8,41 @@
8
8
  * (e.g. `fromVec`/`toVec` when reading or writing files).
9
9
  *
10
10
  * @module
11
+ *
12
+ * @import { Vec } from '../bit_vec/types.ts'
13
+ * @import { List } from '../list/types.ts'
11
14
  */
12
15
 
13
- import { assert, assertNotNullish } from '../../asserts/module.f.mjs'
16
+ import { assertNotNullish } from '../../asserts/module.f.mjs'
14
17
  import { utf8, utf8ToString } from '../../text/module.f.mjs'
15
- import { maxLengthBytes, msb, tryU8ListToVec, u8List, u8ListToVec } from '../bit_vec/module.f.mjs'
16
- /** @import { Vec } from '../bit_vec/types.ts' */
18
+ import { msb, tryU8ListToVec, u8List } from '../bit_vec/module.f.mjs'
17
19
  import { compose } from '../function/module.f.mjs'
18
20
  import { flat, fromArrayLike, iterable, map } from '../list/module.f.mjs'
19
- /** @import { List } from '../list/types.ts' */
20
21
 
21
- const u8ListToVecMsb = u8ListToVec(msb)
22
22
  const tryU8ListToVecMsb = tryU8ListToVec(msb)
23
23
  const u8ListMsb = u8List(msb)
24
24
 
25
+ const m = map(fromArrayLike)
26
+
25
27
  /**
26
- * Converts a Uint8Array into an MSB-first bit vector.
28
+ * Concatenates a list of `Uint8Array` values into one MSB-first bit vector.
27
29
  *
28
- * @type {(input: Uint8Array) => Vec}
30
+ * Throws if the result would exceed `maxLength`. The bound is not precomputed:
31
+ * `tryU8ListToVec` attempts the real conversion and reports `null` when it does
32
+ * not fit (AGENTS.md §5.6).
33
+ *
34
+ * @type {(input: List<Uint8Array>) => Vec}
29
35
  */
30
- export const toVec = input => {
31
- assert(input.length <= maxLengthBytes, "the array is too big")
32
- return u8ListToVecMsb(fromArrayLike(input))
33
- }
34
-
35
- const m = map(fromArrayLike)
36
-
37
- /** @type {(input: List<Uint8Array>) => Vec} */
38
36
  export const listToVec = input =>
39
37
  assertNotNullish(tryU8ListToVecMsb(flat(m(input))), "the array is too big")
40
38
 
39
+ /**
40
+ * Converts a Uint8Array into an MSB-first bit vector.
41
+ *
42
+ * @type {(input: Uint8Array) => Vec}
43
+ */
44
+ export const toVec = input => listToVec([input])
45
+
41
46
  /**
42
47
  * Converts an MSB-first bit vector into a Uint8Array.
43
48
  *
@@ -2,6 +2,9 @@
2
2
  * Static website generation program for project landing content.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { WriteFile } from '../effects/node/types.ts'
7
+ * @import { Effect } from '../effects/types.ts'
5
8
  */
6
9
  import type { WriteFile } from '../effects/node/types.ts';
7
10
  import type { Effect } from '../effects/types.ts';
@@ -2,13 +2,14 @@
2
2
  * Static website generation program for project landing content.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { WriteFile } from '../effects/node/types.ts'
7
+ * @import { Effect } from '../effects/types.ts'
5
8
  */
6
9
 
7
10
  import { htmlUtf8 } from '../media/html/module.f.mjs'
8
11
  import { writeFile } from '../effects/node/module.f.mjs'
9
- /** @import { WriteFile } from '../effects/node/types.ts' */
10
12
  import { pure, step } from '../effects/module.f.mjs'
11
- /** @import { Effect } from '../effects/types.ts' */
12
13
 
13
14
  const html = htmlUtf8()(
14
15
  ['a',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functionalscript",
3
- "version": "0.44.0",
3
+ "version": "0.45.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "**/*.js",
@@ -10,9 +10,9 @@
10
10
  ],
11
11
  "description": "FunctionalScript is a purely functional subset of JavaScript",
12
12
  "scripts": {
13
- "prepack": "tsc --noEmit false --emitDeclarationOnly && tsc --noEmit false --declaration false",
13
+ "prepack": "tsc --noEmit false --emitDeclarationOnly && tsc",
14
14
  "test": "tsc && node ./fjs/module.mjs t",
15
- "cov": "node --test --experimental-test-coverage --test-coverage-include=**/module.f.mjs fjs/emergent_testing/all.test.ts",
15
+ "cov": "node --test --experimental-test-coverage --test-coverage-include=**/module.f.mjs fjs/emergent_testing/all.test.mjs",
16
16
  "start": "node ./fjs/module.mjs",
17
17
  "ci-update": "node ./fjs/module.mjs ci && node ./fjs/module.mjs r ./fjs/nanvm/update/module.f.mjs",
18
18
  "dev-update": "node ./fjs/module.mjs r ./fjs/dev/update/module.f.mjs",
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for ASN.1 BER/DER encoding and decoding over bit vectors.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level assertion helpers.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the shared bit-codec factory.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the serializable BNF intermediate representation (IR).
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the recursive descent matcher backend.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the LL(1) dispatch/matcher backend.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for encoding multi-character token names as single BNF input symbols.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/bnf/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for BNF grammar primitives and helpers.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,7 +0,0 @@
1
- /**
2
- * Type-level API for `fjs/cas/evo/module.f.mjs`: the Evo cache shape and the
3
- * `Evo<O>` API surface it builds.
4
- *
5
- * @module
6
- */
7
- export {};
package/fjs/cas/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for content-addressable storage utilities.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for generated CI Nix flakes.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/ci/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the CI workflow generator.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/cli/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the CLI command dispatch table.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * The `Monoid<T>` algebraic structure.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for Bitcoin-style proof-of-work verification.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for short Weierstrass elliptic-curve arithmetic over a prime field.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the SHA-2 family of hash functions.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Type-level API for signing helpers built on secp256k1 and SHA-256 primitives.
3
- *
4
- * @module
5
- */
6
- export {};
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for the Sloth verifiable delay function.
3
- *
4
- * @module
5
- */
6
- export {};
package/fjs/dev/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Types for indexing modules and loading FunctionalScript files.
3
- *
4
- * @module
5
- */
6
- export {};