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
@@ -9,32 +9,19 @@
9
9
  * scheduling and pass/fail counting.
10
10
  *
11
11
  * @module
12
+ *
13
+ * @import { Effect, Operation } from '../effects/types.ts'
14
+ * @import { LoadModuleOperations, ModuleMap } from '../dev/types.ts'
15
+ * @import { TestFn, TestEntry, TestSet, Path, Reporter, _TestState, _TestAndPath } from './types.ts'
16
+ * @import { All, Await, Env, NodeProgram, NodeProgramOptions, Program, Sandbox, SandboxResult, Test, TestContext, Write, WriteConsoles } from '../effects/node/types.ts'
12
17
  */
13
18
 
14
19
  import { reset, fgGreen, fgRed, bold, csiWrite } from '../text/sgr/module.f.mjs'
15
20
  import { all, awaitIfPromise, sandbox, test } from '../effects/node/module.f.mjs'
16
- /** @import {
17
- All,
18
- Await,
19
- Env,
20
- NodeProgram,
21
- NodeProgramOptions,
22
- Program,
23
- Sandbox,
24
- SandboxResult,
25
- Test,
26
- TestContext,
27
- Write,
28
- WriteConsoles
29
- } from '../effects/node/types.ts' */
30
- import { history, historyStep, pure, step } from '../effects/module.f.mjs'
31
- /** @import { Effect, Operation } from '../effects/types.ts' */
32
- import { eff } from '../effects/eff/module.f.mjs'
21
+ import { history, historyStep, mapStep, pure, step } from '../effects/module.f.mjs'
33
22
  import { loadModuleMap } from '../dev/module.f.mjs'
34
- /** @import { LoadModuleOperations, ModuleMap } from '../dev/types.ts' */
35
23
  import { invert } from '../types/result/module.f.mjs'
36
24
  import { definedEntries } from '../types/object/module.f.mjs'
37
- /** @import { TestFn, TestEntry, TestSet, Path, Reporter, _TestState, _TestAndPath } from './types.ts' */
38
25
 
39
26
  /** @type {(delta: number) => (ts: _TestState) => _TestState} */
40
27
  const addPass = delta => ts =>
@@ -131,27 +118,21 @@ export const registerModule = (ctx, k, v, star) => {
131
118
  const base = fmtImport(k, path)
132
119
  const name = throws ? base : `${base}${star}`
133
120
  return test(ctx, name, throws, (/** @type {TestContext} */ t) =>
134
- eff(awaitIfPromise(fn()))
135
- .step(resolved => {
136
- if (throws) {
137
- return pure(undefined)
138
- }
139
- const sub = collectTests([...path, null], false, resolved)
140
- if (sub.length === 0) {
141
- return pure(undefined)
142
- }
143
- return eff(all(...sub.map(e => registerOne(t, e))))
144
- .step(() => pure(undefined))
145
- .value
146
- })
147
- .value
121
+ step(awaitIfPromise(fn()), resolved => {
122
+ if (throws) {
123
+ return pure(undefined)
124
+ }
125
+ const sub = collectTests([...path, null], false, resolved)
126
+ if (sub.length === 0) {
127
+ return pure(undefined)
128
+ }
129
+ return mapStep(all(...sub.map(e => registerOne(t, e))), () => undefined)
130
+ })
148
131
  )
149
132
  }
150
133
  const tests = collectTests([], false, v)
151
134
  if (tests.length === 0) { return pure(undefined) }
152
- return eff(all(...tests.map(e => registerOne(ctx, e))))
153
- .step(() => pure(undefined))
154
- .value
135
+ return mapStep(all(...tests.map(e => registerOne(ctx, e))), () => undefined)
155
136
  }
156
137
 
157
138
  /** @type {(a: _TestState, b: _TestState) => _TestState} */
@@ -194,13 +175,9 @@ const runModule = ({ result, test }) => (k, v) => ts => {
194
175
  /** @type {(path: Path, throws: boolean, v: unknown) => Effect<O | All, _TestState>} */
195
176
  const walk = (path, throws, v) => {
196
177
  const effects = collectTests(path, throws, v).map(one)
197
- return eff(all(...effects))
198
- .step(states => pure(states.reduce(mergeState, zero)))
199
- .value
178
+ return mapStep(all(...effects), states => states.reduce(mergeState, zero))
200
179
  }
201
- return eff(walk([], false, v))
202
- .step(delta => pure(mergeState(ts, delta)))
203
- .value
180
+ return mapStep(walk([], false, v), delta => mergeState(ts, delta))
204
181
  }
205
182
 
206
183
  /** @type {(moduleMap: ModuleMap) => readonly (readonly [string, unknown])[]} */
@@ -220,11 +197,16 @@ const proofEntries = moduleMap =>
220
197
  export const runModuleMap = reporter => moduleMap => {
221
198
  const { summary } = reporter
222
199
  const modules = proofEntries(moduleMap)
223
- return eff(all(...modules.map(([k, v]) => runModule(reporter)(k, v)(zero))))
224
- .step(m => pure(m.reduce(mergeState, zero)))
225
- .step(ts => summary(ts.pass, ts.fail, ts.time))
226
- .step((_, ts) => pure(ts.fail !== 0 ? 1 : 0))
227
- .value
200
+ const total = mapStep(
201
+ all(...modules.map(([k, v]) => runModule(reporter)(k, v)(zero))),
202
+ m => m.reduce(mergeState, zero))
203
+ // The totals are still needed after the summary has been printed, so they
204
+ // are carried forward in a history rather than closed over by a nested
205
+ // continuation.
206
+ const reported = historyStep(
207
+ history(total),
208
+ ts => summary(ts.pass, ts.fail, ts.time))
209
+ return mapStep(reported, ([, ts]) => ts.fail !== 0 ? 1 : 0)
228
210
  }
229
211
 
230
212
  /**
@@ -237,9 +219,7 @@ export const runModuleMap = reporter => moduleMap => {
237
219
  * @returns {Program<O | All | LoadModuleOperations>}
238
220
  */
239
221
  export const testAll = reporter => options =>
240
- eff(loadModuleMap(options.env))
241
- .step(runModuleMap(reporter))
242
- .value
222
+ step(loadModuleMap(options.env), runModuleMap(reporter))
243
223
 
244
224
  /**
245
225
  * Registers all modules in `moduleMap` that export a `proof` property with
@@ -250,9 +230,7 @@ export const testAll = reporter => options =>
250
230
  const registerModuleMap = (ctx, star) => moduleMap => {
251
231
  const modules = proofEntries(moduleMap)
252
232
  if (modules.length === 0) { return pure(undefined) }
253
- return eff(all(...modules.map(([k, v]) => registerModule(ctx, k, v, star))))
254
- .step(() => pure(undefined))
255
- .value
233
+ return mapStep(all(...modules.map(([k, v]) => registerModule(ctx, k, v, star))), () => undefined)
256
234
  }
257
235
 
258
236
  /** @type {(c: string) => boolean} */
@@ -341,9 +319,7 @@ export const ghEscape = s =>
341
319
  * @type {(file: string, path: Path, entry: TestEntry) => Effect<Sandbox, SandboxResult<unknown>>}
342
320
  */
343
321
  export const defaultTest = (file, path, { fn, throws }) =>
344
- eff(sandbox(fn))
345
- .step(r => pure(throws ? { ...r, result: invert(r.result) } : r))
346
- .value
322
+ mapStep(sandbox(fn), r => throws ? { ...r, result: invert(r.result) } : r)
347
323
 
348
324
  /** @type {(file: string, path: Path, color: string, label: string, duration: number) => string} */
349
325
  const fmtResultLine = (file, path, color, label, duration) =>
@@ -375,14 +351,14 @@ export const defaultReporter = options => {
375
351
  ? csiLog(fmtResultLine(file, path, fgGreen, 'ok', duration) + (throws ? ' # EXPECTED TO THROW' : ''))
376
352
  : isGitHub
377
353
  ? csiError(`::error file=${file},line=1,title=${ghEscape(fmtImport(file, path))}::${ghEscape(String(v))}`)
378
- : eff(csiError(fmtResultLine(file, path, fgRed, 'error', duration)))
379
- .step(() => csiError(`${fgRed}${v}${reset}`))
380
- .value,
354
+ : step(
355
+ csiError(fmtResultLine(file, path, fgRed, 'error', duration)),
356
+ () => csiError(`${fgRed}${v}${reset}`)),
381
357
  summary: (pass, fail, time) => {
382
358
  const fgFail = fail === 0 ? fgGreen : fgRed
383
- return eff(csiLog(`${bold}Number of tests: pass: ${fgGreen}${pass}${reset}${bold}, fail: ${fgFail}${fail}${reset}${bold}, total: ${pass + fail}${reset}`))
384
- .step(() => csiLog(`${bold}Time: ${timeFormat(time)}${reset}`))
385
- .value
359
+ return step(
360
+ csiLog(`${bold}Number of tests: pass: ${fgGreen}${pass}${reset}${bold}, fail: ${fgFail}${fail}${reset}${bold}, total: ${pass + fail}${reset}`),
361
+ () => csiLog(`${bold}Time: ${timeFormat(time)}${reset}`))
386
362
  },
387
363
  test: defaultTest,
388
364
  }
@@ -407,8 +383,6 @@ export const main =
407
383
  export const register = o => {
408
384
  const star = o.inlineTestContext ? ' ...' : ''
409
385
  const ctx = o.engine === 'bun' ? o.bunTestContext : o.testContext
410
- return eff(loadModuleMap(o.env))
411
- .step(registerModuleMap(ctx, star))
412
- .step(() => pure(0))
413
- .value
386
+ const registered = step(loadModuleMap(o.env), registerModuleMap(ctx, star))
387
+ return mapStep(registered, () => 0)
414
388
  }
@@ -11,9 +11,9 @@ import { log } from '../effects/node/module.f.mjs'
11
11
  import { defaultNodeProgramOptions, emptyState, virtual } from '../effects/node/virtual/module.f.mjs'
12
12
  import { assert, assertEq } from '../asserts/module.f.mjs'
13
13
  import {
14
- testAll, defaultReporter, fmtPath, fmtTerm, fmtImport, ghEscape, isInteger, isIdentifier,
14
+ testAll, fmtPath, fmtTerm, fmtImport, ghEscape, isInteger, isIdentifier,
15
15
  registerModule, parseTestSet,
16
- defaultTest,
16
+ defaultTest, main,
17
17
  } from './module.f.mjs'
18
18
  import { run as mockRun } from '../effects/mock/module.f.mjs'
19
19
  import { shouldLoad } from '../dev/module.f.mjs'
@@ -79,13 +79,13 @@ const run = (dir, initCwd = '.') => {
79
79
  return [parseEvents(finalState.stdout), exitCode]
80
80
  }
81
81
 
82
- // Runs the real `defaultReporter` and returns its captured stdout/stderr so the
83
- // terminal and GitHub output formats can be asserted directly.
82
+ // Runs the `fjs t` entry point (`main`) and returns its captured stdout/stderr
83
+ // so the terminal and GitHub output formats can be asserted directly.
84
84
  /** @type {(dir: Record<string, JsModule>, github?: boolean) => readonly [string, string, number]} */
85
85
  const runMain = (dir, github = false) => {
86
86
  const state = { ...emptyState, root: dir }
87
87
  const opts = options('.', github)
88
- const [finalState, exitCode] = virtual(state)(testAll(defaultReporter(opts))(opts))
88
+ const [finalState, exitCode] = virtual(state)(main(opts))
89
89
  return [finalState.stdout, finalState.stderr, exitCode]
90
90
  }
91
91
 
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import { Rule } from '../bnf/types.ts'
3
+ */
1
4
  import type { Rule } from '../bnf/types.ts';
2
5
  /** @type {Rule} */
3
6
  export declare const wsModule: Rule;
package/fjs/fsc/bnf.f.mjs CHANGED
@@ -1,5 +1,8 @@
1
+ /**
2
+ * @import { Rule } from '../bnf/types.ts'
3
+ */
4
+
1
5
  import { range, remove, set, option } from '../bnf/module.f.mjs'
2
- /** @import { Rule } from '../bnf/types.ts' */
3
6
  import { digit, json, unicode, ws0, ws1, wsNoNewLine0 } from './json.f.mjs'
4
7
 
5
8
  /** @type {Rule} */
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import { Rule, TerminalRange } from '../bnf/types.ts'
3
+ */
1
4
  import type { Rule, TerminalRange } from '../bnf/types.ts';
2
5
  /** @type {Rule} */
3
6
  export declare const wsNoNewLine0: Rule;
@@ -1,5 +1,8 @@
1
+ /**
2
+ * @import { Rule, TerminalRange } from '../bnf/types.ts'
3
+ */
4
+
1
5
  import { join0Plus, rangeEncode, range, remove, repeat0Plus, set, option } from '../bnf/module.f.mjs'
2
- /** @import { Rule, TerminalRange } from '../bnf/types.ts' */
3
6
 
4
7
  // space
5
8
 
@@ -1,3 +1,12 @@
1
+ /**
2
+ * FunctionalScript command utilities for compile workflows.
3
+ *
4
+ * @module
5
+ *
6
+ * @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts'
7
+ * @import { List } from '../types/list/types.ts'
8
+ * @import { Range } from '../types/range/types.ts'
9
+ */
1
10
  import type { RangeMapArray } from '../types/range_map/types.ts';
2
11
  export type _Result = readonly [readonly string[], _ToResult];
3
12
  export type _ToResult = (codePoint: number) => _Result;
@@ -2,16 +2,18 @@
2
2
  * FunctionalScript command utilities for compile workflows.
3
3
  *
4
4
  * @module
5
+ *
6
+ * @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts'
7
+ * @import { List } from '../types/list/types.ts'
8
+ * @import { Range } from '../types/range/types.ts'
5
9
  */
10
+
6
11
  import { strictEqual } from '../types/function/operator/module.f.mjs'
7
12
  import { merge as rangeMapMerge, fromRange, get } from '../types/range_map/module.f.mjs'
8
- /** @import { RangeMapArray, RangeMerge } from '../types/range_map/types.ts' */
9
13
  import { reduce as listReduce, toArray, map } from '../types/list/module.f.mjs'
10
- /** @import { List } from '../types/list/types.ts' */
11
14
  import { range as asciiRange } from '../text/ascii/module.f.mjs'
12
15
  import { flip, fn } from '../types/function/module.f.mjs'
13
16
  import { one } from '../types/range/module.f.mjs'
14
- /** @import { Range } from '../types/range/types.ts' */
15
17
  import { assertEq } from '../asserts/module.f.mjs'
16
18
 
17
19
  const fromCharCode = String.fromCharCode
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import { Grammar } from './module.f.mjs'
3
+ */
1
4
  export declare const proof: {
2
5
  dfa: () => void;
3
6
  run: (() => void)[];
@@ -1,4 +1,7 @@
1
- /** @import { Grammar } from './module.f.mjs' */
1
+ /**
2
+ * @import { Grammar } from './module.f.mjs'
3
+ */
4
+
2
5
  import { dfa, run, toRange, toUnion } from './module.f.mjs'
3
6
  import { union } from '../types/byte_set/module.f.mjs'
4
7
  import { sort, fromEntries } from '../types/object/module.f.mjs'
@@ -4,6 +4,13 @@
4
4
  * and numeric literals (including `BigFloat`).
5
5
  *
6
6
  * @module
7
+ *
8
+ * @import { Scan, StateScan } from '../../types/function/operator/types.ts'
9
+ * @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts'
10
+ * @import { List } from '../../types/list/types.ts'
11
+ * @import { Entry } from '../../types/ordered_map/types.ts'
12
+ * @import { Range as NumberRange } from '../../types/range/types.ts'
13
+ * @import { StringToken, NumberToken, BigIntToken, ErrorToken, WhitespaceToken, NewLineToken, IdToken, CommentToken, EofToken, JsToken, TokenMetadata, JsTokenWithMetadata, _TokenizerStateWithMetadata, _TokenizerState, _ErrorMessage, _InitialState, _ParseIdState, _ParseWhitespaceState, _ParseNewLineState, _ParseStringState, _ParseEscapeCharState, _ParseOperatorState, _ParseCommentState, _ParseUnicodeCharState, _ParseNumberState, _ParseNumberBuffer, _InvalidNumberState, _EofState, _CharCodeOrEof, _ToToken, _CreateToToken, _RangeFunc, _RangeMapToToken, } from './types.ts'
7
14
  */
8
15
  import type { List } from '../../types/list/types.ts';
9
16
  import type { JsToken, JsTokenWithMetadata } from './types.ts';
@@ -4,17 +4,19 @@
4
4
  * and numeric literals (including `BigFloat`).
5
5
  *
6
6
  * @module
7
+ *
8
+ * @import { Scan, StateScan } from '../../types/function/operator/types.ts'
9
+ * @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts'
10
+ * @import { List } from '../../types/list/types.ts'
11
+ * @import { Entry } from '../../types/ordered_map/types.ts'
12
+ * @import { Range as NumberRange } from '../../types/range/types.ts'
13
+ * @import { StringToken, NumberToken, BigIntToken, ErrorToken, WhitespaceToken, NewLineToken, IdToken, CommentToken, EofToken, JsToken, TokenMetadata, JsTokenWithMetadata, _TokenizerStateWithMetadata, _TokenizerState, _ErrorMessage, _InitialState, _ParseIdState, _ParseWhitespaceState, _ParseNewLineState, _ParseStringState, _ParseEscapeCharState, _ParseOperatorState, _ParseCommentState, _ParseUnicodeCharState, _ParseNumberState, _ParseNumberBuffer, _InvalidNumberState, _EofState, _CharCodeOrEof, _ToToken, _CreateToToken, _RangeFunc, _RangeMapToToken, } from './types.ts'
7
14
  */
8
15
 
9
- /** @import { Scan, StateScan } from '../../types/function/operator/types.ts' */
10
16
  import { strictEqual } from '../../types/function/operator/module.f.mjs'
11
- /** @import { RangeMapArray, RangeMerge } from '../../types/range_map/types.ts' */
12
17
  import { merge, fromRange, get } from '../../types/range_map/module.f.mjs'
13
- /** @import { List } from '../../types/list/types.ts' */
14
18
  import { empty, stateScan, flat, toArray, reduce as listReduce, scan, map as listMap } from '../../types/list/module.f.mjs'
15
19
  import { at, fromEntries } from '../../types/ordered_map/module.f.mjs'
16
- /** @import { Entry } from '../../types/ordered_map/types.ts' */
17
- /** @import { Range as NumberRange } from '../../types/range/types.ts' */
18
20
  import { one } from '../../types/range/module.f.mjs'
19
21
  import {
20
22
  range,
@@ -51,8 +53,9 @@ import {
51
53
  digit0,
52
54
  colon,
53
55
  //
56
+ hexDigitValue,
57
+ //
54
58
  latinCapitalLetterRange,
55
- latinCapitalLetterA,
56
59
  latinCapitalLetterE,
57
60
  //
58
61
  leftSquareBracket,
@@ -61,7 +64,6 @@ import {
61
64
  lowLine,
62
65
  //
63
66
  latinSmallLetterRange,
64
- latinSmallLetterA,
65
67
  latinSmallLetterB,
66
68
  latinSmallLetterE,
67
69
  latinSmallLetterF,
@@ -75,41 +77,6 @@ import {
75
77
  dollarSign
76
78
  } from '../../text/ascii/module.f.mjs'
77
79
  import { todo, assertEq } from '../../asserts/module.f.mjs'
78
- /** @import {
79
- StringToken,
80
- NumberToken,
81
- BigIntToken,
82
- ErrorToken,
83
- WhitespaceToken,
84
- NewLineToken,
85
- IdToken,
86
- CommentToken,
87
- EofToken,
88
- JsToken,
89
- TokenMetadata,
90
- JsTokenWithMetadata,
91
- _TokenizerStateWithMetadata,
92
- _TokenizerState,
93
- _ErrorMessage,
94
- _InitialState,
95
- _ParseIdState,
96
- _ParseWhitespaceState,
97
- _ParseNewLineState,
98
- _ParseStringState,
99
- _ParseEscapeCharState,
100
- _ParseOperatorState,
101
- _ParseCommentState,
102
- _ParseUnicodeCharState,
103
- _ParseNumberState,
104
- _ParseNumberBuffer,
105
- _InvalidNumberState,
106
- _EofState,
107
- _CharCodeOrEof,
108
- _ToToken,
109
- _CreateToToken,
110
- _RangeFunc,
111
- _RangeMapToToken,
112
- } from './types.ts' */
113
80
 
114
81
  const { fromCharCode } = String
115
82
 
@@ -150,9 +117,6 @@ const rangeSetTerminalForNumber = [
150
117
  one(tilde),
151
118
  ]
152
119
 
153
- const rangeSmallAF = range('af')
154
- const rangeCapitalAF = range('AF')
155
-
156
120
  const rangeIdStart = [
157
121
  latinSmallLetterRange,
158
122
  latinCapitalLetterRange,
@@ -596,22 +560,22 @@ const parseUnicodeCharDefault = state => input => {
596
560
  return [{ first: { kind: 'error', message: 'invalid hex value' }, tail: next[0] }, next[1]]
597
561
  }
598
562
 
599
- /** @type {(offset: number) => _CreateToToken<_ParseUnicodeCharState>} */
600
- const parseUnicodeCharHex = offset => state => input => {
601
- const hexValue = input - offset
563
+ /**
564
+ * `hexDigitValue` classifies the code point and decodes it in one step, so this
565
+ * state needs no range-map dispatch: a `null` value is exactly the non-hex
566
+ * input the default handler rejects.
567
+ *
568
+ * @type {(state: _ParseUnicodeCharState) => (input: number) => readonly [List<JsToken>, _TokenizerState]}
569
+ */
570
+ const parseUnicodeCharStateOp = state => input => {
571
+ const hexValue = hexDigitValue(input)
572
+ if (hexValue === null) { return parseUnicodeCharDefault(state)(input) }
602
573
  const newUnicode = state.unicode | (hexValue << (3 - state.hexIndex) * 4)
603
574
  return [empty, state.hexIndex === 3 ?
604
575
  { kind: 'string', value: appendChar(state.value)(newUnicode) } :
605
576
  { kind: 'unicodeChar', value: state.value, unicode: newUnicode, hexIndex: state.hexIndex + 1 }]
606
577
  }
607
578
 
608
- /** @type {(state: _ParseUnicodeCharState) => (input: number) => readonly [List<JsToken>, _TokenizerState]} */
609
- const parseUnicodeCharStateOp = create(parseUnicodeCharDefault)([
610
- rangeFunc(digitRange)(parseUnicodeCharHex(digit0)),
611
- rangeFunc(rangeSmallAF)(parseUnicodeCharHex(latinSmallLetterA - 10)),
612
- rangeFunc(rangeCapitalAF)(parseUnicodeCharHex(latinCapitalLetterA - 10))
613
- ])
614
-
615
579
  /** @type {(s: string) => JsToken} */
616
580
  const idToToken = s => at(s)(keywordMap) ?? { kind: 'id', value: s }
617
581
 
@@ -1,3 +1,39 @@
1
+ /**
2
+ * The FJS MCP server: the composition root the `fjs mcp` / `m` CLI command
3
+ * runs. Session configuration (`McpConfig`), the top-level entry point
4
+ * (`casMcpServer`, wiring `mcpStep` + `stdioTransport` from
5
+ * `fjs/protocol/mcp/`), and the composed tool registry — nothing CAS- or
6
+ * Evo-specific lives here, it only knows about tool *registries*, not what is
7
+ * in them, so a future non-CAS tool set can land as a new sibling of
8
+ * `fjs/mcp/cas/` and `fjs/mcp/evo/` without touching either of them.
9
+ *
10
+ * ## Tools
11
+ *
12
+ * | Tool | args | action | result |
13
+ * |----------------|------------------------------------------------|------------------|--------------------------------------|
14
+ * | `cas_add` | `{ content, type? }` | `c.write(...)` | hash (cBase32) |
15
+ * | `cas_get` | `{ hash, content?: boolean }` | `c.read(key)` | JSON `{length,mimeType,type[,uri][,text\|blob]}` |
16
+ * | `cas_list` | `{}` | `c.list()` | hashes, one per line |
17
+ * | `evo_list` | `{ archived? }` | `e.list(...)` | subjects, as a JSON array of strings |
18
+ * | `evo_head` | `{ subject }` | `e.head(...)` | head hashes, one per line |
19
+ * | `evo_revision` | `{ hash }` | `e.revision(...)`| the revision, as JSON |
20
+ * | `evo_add` | `{ parents, snapshot?, subject?, archived? }` | `e.add(...)` | hash (cBase32) |
21
+ *
22
+ * `cas_add`/`cas_get`/`cas_list` are `fjs/mcp/cas` — see that module for tool
23
+ * documentation (input encoding, output shape, error convention). `evo_*` is
24
+ * `fjs/mcp/evo`. Both tool sets run in one process, sharing one `~/.cas/`
25
+ * store and one in-memory Evo cache scanned once at startup (`initEvo`).
26
+ *
27
+ * @module
28
+ *
29
+ * @import { Effect } from '../effects/types.ts'
30
+ * @import { MemOp } from '../effects/memory/types.ts'
31
+ * @import { Read, Write } from '../effects/node/types.ts'
32
+ * @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts'
33
+ * @import { FileCasOperation } from '../cas/types.ts'
34
+ * @import { Cache } from '../cas/evo/types.ts'
35
+ * @import { Key } from '../effects/memory/types.ts'
36
+ */
1
37
  import type { Effect } from '../effects/types.ts';
2
38
  import type { MemOp } from '../effects/memory/types.ts';
3
39
  import type { Read, Write } from '../effects/node/types.ts';
@@ -5,7 +41,6 @@ import type { McpConfig, McpHandlers } from '../protocol/mcp/types.ts';
5
41
  import type { FileCasOperation } from '../cas/types.ts';
6
42
  import type { Cache } from '../cas/evo/types.ts';
7
43
  import type { Key } from '../effects/memory/types.ts';
8
- /** @import { Key } from '../effects/memory/types.ts' */
9
44
  /**
10
45
  * MCP handlers for `FileCas` (`fjs/mcp/cas`) plus the Evo API (`fjs/mcp/evo`)
11
46
  * layered on it, bound to `home` and an already-built Evo cache slot (see
@@ -25,25 +25,27 @@
25
25
  * store and one in-memory Evo cache scanned once at startup (`initEvo`).
26
26
  *
27
27
  * @module
28
+ *
29
+ * @import { Effect } from '../effects/types.ts'
30
+ * @import { MemOp } from '../effects/memory/types.ts'
31
+ * @import { Read, Write } from '../effects/node/types.ts'
32
+ * @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts'
33
+ * @import { FileCasOperation } from '../cas/types.ts'
34
+ * @import { Cache } from '../cas/evo/types.ts'
35
+ * @import { Key } from '../effects/memory/types.ts'
28
36
  */
37
+
29
38
  import { step } from '../effects/module.f.mjs'
30
- /** @import { Effect } from '../effects/types.ts' */
31
39
  import { create } from '../effects/memory/module.f.mjs'
32
- /** @import { MemOp } from '../effects/memory/types.ts' */
33
- /** @import { Read, Write } from '../effects/node/types.ts' */
34
40
  import { stdioTransport } from '../protocol/mcp/stdio/module.f.mjs'
35
41
  import {
36
42
  mcpStep, uninitializedState, fromRegistry,
37
43
  } from '../protocol/mcp/module.f.mjs'
38
- /** @import { McpConfig, McpHandlers } from '../protocol/mcp/types.ts' */
39
44
  import { fileCas } from '../cas/module.f.mjs'
40
- /** @import { FileCasOperation } from '../cas/types.ts' */
41
45
  import { initEvo, evo } from '../cas/evo/module.f.mjs'
42
- /** @import { Cache } from '../cas/evo/types.ts' */
43
46
  import { sha256 } from '../crypto/sha2/module.f.mjs'
44
47
  import { casToolRegistry } from './cas/module.f.mjs'
45
48
  import { evoToolRegistry } from './evo/module.f.mjs'
46
- /** @import { Key } from '../effects/memory/types.ts' */
47
49
 
48
50
  // ── Handlers ────────────────────────────────────────────────────────────────────
49
51
 
@@ -1,4 +1,14 @@
1
- /** @import { Unknown } from '../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../media/json/types.ts'
3
+ * @import { Effect, Operation } from '../effects/types.ts'
4
+ * @import { Response } from '../protocol/json_rpc/types.ts'
5
+ * @import { Vec } from '../types/bit_vec/types.ts'
6
+ * @import { FileCasOperation } from '../cas/types.ts'
7
+ * @import { List } from '../effects/list/types.ts'
8
+ * @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts'
9
+ * @import { IoResult, Mkdir, Now, RandomInt, ReadBytes, Rename, } from '../effects/node/types.ts'
10
+ * @import { Dir } from '../effects/node/virtual/types.ts'
11
+ */
2
12
  export declare const proof: {
3
13
  getMetaLargeMultiChunkBlobNoError: () => void;
4
14
  getMetaLargeMultiChunkUtf8Symbols: () => void;
@@ -1,40 +1,33 @@
1
- /** @import { Unknown } from '../media/json/types.ts' */
1
+ /**
2
+ * @import { Unknown } from '../media/json/types.ts'
3
+ * @import { Effect, Operation } from '../effects/types.ts'
4
+ * @import { Response } from '../protocol/json_rpc/types.ts'
5
+ * @import { Vec } from '../types/bit_vec/types.ts'
6
+ * @import { FileCasOperation } from '../cas/types.ts'
7
+ * @import { List } from '../effects/list/types.ts'
8
+ * @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts'
9
+ * @import { IoResult, Mkdir, Now, RandomInt, ReadBytes, Rename, } from '../effects/node/types.ts'
10
+ * @import { Dir } from '../effects/node/virtual/types.ts'
11
+ */
2
12
 
3
13
  import { assert, assertEq } from '../asserts/module.f.mjs'
4
14
  import { pure, step } from '../effects/module.f.mjs'
5
- /** @import { Effect, Operation } from '../effects/types.ts' */
6
15
  import { create } from '../effects/memory/module.f.mjs'
7
16
  import { parse as parseJson } from '../media/json/module.f.mjs'
8
17
  import { number as rttiNumber, option, string as rttiString } from '../types/rtti/module.f.mjs'
9
18
  import { parse as rttiParse } from '../types/rtti/parse/module.f.mjs'
10
- /** @import { Response } from '../protocol/json_rpc/types.ts' */
11
- /** @import { Vec } from '../types/bit_vec/types.ts' */
12
19
  import { msb, u8ListToVec, vec8, repeat, length, maxLengthBytes } from '../types/bit_vec/module.f.mjs'
13
20
  import { vecToCBase32 } from '../basen/cbase32/module.f.mjs'
14
21
  import { encode as base64Encode } from '../basen/base64/module.f.mjs'
15
22
  import { utf8 } from '../text/module.f.mjs'
16
23
  import { fileCas } from '../cas/module.f.mjs'
17
- /** @import { FileCasOperation } from '../cas/types.ts' */
18
24
  import { dialect as revisionDialect, mediaType as revisionMediaType } from '../media/revision/module.f.mjs'
19
25
  import { sha256 } from '../crypto/sha2/module.f.mjs'
20
26
  import { nonEmpty, empty as elEmpty } from '../effects/list/module.f.mjs'
21
- /** @import { List } from '../effects/list/types.ts' */
22
27
  import {
23
28
  mcpStep, uninitializedState,
24
29
  } from '../protocol/mcp/module.f.mjs'
25
- /** @import { McpSessionState, ToolsCallResult } from '../protocol/mcp/types.ts' */
26
- /**
27
- * @import {
28
- * IoResult,
29
- * Mkdir,
30
- * Now,
31
- * RandomInt,
32
- * ReadBytes,
33
- * Rename,
34
- * } from '../effects/node/types.ts'
35
- */
36
30
  import { emptyState, virtual } from '../effects/node/virtual/module.f.mjs'
37
- /** @import { Dir } from '../effects/node/virtual/types.ts' */
38
31
  import { casConfig, casMcpHandlers } from './module.f.mjs'
39
32
  import { ok as resultOk, unwrap } from '../types/result/module.f.mjs'
40
33
  import { stdioTransport } from '../protocol/mcp/stdio/module.f.mjs'
@@ -1,3 +1,15 @@
1
+ /**
2
+ * HTML serialization helpers: `Element`/`Attributes` builders, void-tag
3
+ * handling, attribute/text escaping, and a UTF-8 emitter for full documents.
4
+ * See `./types.ts` for the `Element`/`Node` type-level API.
5
+ *
6
+ * @module
7
+ *
8
+ * @import { List } from '../../types/list/types.ts'
9
+ * @import { Entry, StringMap } from '../../types/object/types.ts'
10
+ * @import { Vec } from '../../types/bit_vec/types.ts'
11
+ * @import { Element, Node } from './types.ts'
12
+ */
1
13
  import type { List } from '../../types/list/types.ts';
2
14
  import type { StringMap } from '../../types/object/types.ts';
3
15
  import type { Vec } from '../../types/bit_vec/types.ts';
@@ -4,19 +4,21 @@
4
4
  * See `./types.ts` for the `Element`/`Node` type-level API.
5
5
  *
6
6
  * @module
7
+ *
8
+ * @import { List } from '../../types/list/types.ts'
9
+ * @import { Entry, StringMap } from '../../types/object/types.ts'
10
+ * @import { Vec } from '../../types/bit_vec/types.ts'
11
+ * @import { Element, Node } from './types.ts'
7
12
  */
8
- /** @import { List } from '../../types/list/types.ts' */
13
+
9
14
  import { map, flatMap, flat, concat as listConcat } from '../../types/list/module.f.mjs'
10
15
  import { concat, concat as stringConcat } from '../../types/string/module.f.mjs'
11
16
  import { definedEntries } from '../../types/object/module.f.mjs'
12
- /** @import { Entry, StringMap } from '../../types/object/types.ts' */
13
17
  import { compose } from '../../types/function/module.f.mjs'
14
18
  import { stringToList } from '../../text/utf16/module.f.mjs'
15
19
  import { includes } from '../../types/array/module.f.mjs'
16
- /** @import { Vec } from '../../types/bit_vec/types.ts' */
17
20
  import { utf8 } from '../../text/module.f.mjs'
18
21
  import { quotationMark, ampersand, lessThanSign, greaterThanSign } from '../../text/ascii/module.f.mjs'
19
- /** @import { Element, Node } from './types.ts' */
20
22
 
21
23
  const { fromCharCode } = String
22
24
 
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import { Element } from './types.ts'
3
+ */
1
4
  export declare const proof: {
2
5
  empty: () => void;
3
6
  empty2: () => void;