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
@@ -31,12 +31,52 @@ const offset = 24
31
31
 
32
32
  const mask = (1 << offset) - 1
33
33
 
34
- const isValid = contains(0, mask)
34
+ /**
35
+ * How many stored endpoint codes one 24-bit half holds: `2 ** 24`.
36
+ */
37
+ const terminalSize = mask + 1
38
+
39
+ /**
40
+ * The logical end-of-input symbol.
41
+ *
42
+ * `-1` is outside the non-negative physical-symbol domain, so no alphabet
43
+ * adapter can produce it and no ordinary symbol has to be reserved for it.
44
+ * Parser backends synthesize it exactly once, after the physical input.
45
+ */
46
+ export const eofSymbol = -1
47
+
48
+ /**
49
+ * The largest ordinary symbol, `2 ** 24 - 2`: the semantic domain is
50
+ * `[-1] | [0, 2 ** 24 - 2]`, exactly `2 ** 24` terminals, one per stored code.
51
+ */
52
+ const maxSymbol = mask - 1
53
+
54
+ const isValid = contains(eofSymbol, maxSymbol)
55
+
56
+ /**
57
+ * Semantic terminal to its stored 24-bit endpoint code. Branchless: EOF wraps
58
+ * to `2 ** 24 - 1` (the top of the stored space) and every ordinary symbol
59
+ * keeps its own value as its code.
60
+ *
61
+ * @type {(value: number) => number}
62
+ */
63
+ const encodeTerminal = value => (value + terminalSize) & mask
64
+
65
+ /**
66
+ * The inverse of `encodeTerminal`, also branchless.
67
+ *
68
+ * Stored codes are an implementation representation, not semantic terminal
69
+ * ordering — `2 ** 24 - 1` is the largest code but the smallest terminal — so
70
+ * range operations that care about ordering must compare decoded values.
71
+ *
72
+ * @type {(value: number) => number}
73
+ */
74
+ const decodeTerminal = value => ((value + 1) & mask) - 1
35
75
 
36
76
  /** @type {(a: number, b: number) => TerminalRange} */
37
77
  export const rangeEncode = (a, b) => {
38
78
  assert(isValid(a) && isValid(b) && a <= b)
39
- return Number((BigInt(a) << BigInt(offset)) | BigInt(b))
79
+ return Number((BigInt(encodeTerminal(a)) << BigInt(offset)) | BigInt(encodeTerminal(b)))
40
80
  }
41
81
 
42
82
  /**
@@ -47,20 +87,21 @@ export const rangeEncode = (a, b) => {
47
87
  export const oneEncode = a => rangeEncode(a, a)
48
88
 
49
89
  /**
50
- * End-of-file marker: `mask`, the single largest value the 24-bit symbol
51
- * space can hold (the top of `fullRange`). Deliberately outside Unicode
52
- * (`unicodeRange` tops out at `0x10FFFF`) so it can never collide with a
53
- * real code point.
90
+ * End-of-file marker: the singleton range of {@link eofSymbol}. Deliberately
91
+ * outside the ordinary symbol domain and so outside Unicode — so it can
92
+ * never collide with a real code point.
54
93
  *
55
94
  * @type {TerminalRange}
56
95
  */
57
- export const eof = oneEncode(mask)
96
+ export const eof = oneEncode(eofSymbol)
58
97
 
59
98
  /**
60
- * Full 24-bit symbol range packed into a single {@link TerminalRange}.
99
+ * Every ordinary symbol packed into a single {@link TerminalRange}. EOF is not
100
+ * one of them, so complements over this range never include it.
101
+ *
61
102
  * @type {TerminalRange}
62
103
  */
63
- export const fullRange = 0x000000_FFFFFF
104
+ export const fullRange = rangeEncode(0, maxSymbol)
64
105
 
65
106
  /**
66
107
  * Unicode scalar value range packed into a single {@link TerminalRange}.
@@ -74,12 +115,12 @@ export const unicodeRange = 0x000000_10FFFF
74
115
  export const unicodeMax = codePointListToString([0x10FFFF])
75
116
 
76
117
  /**
77
- * Decodes a packed range into `[start, end]` symbols.
118
+ * Decodes a packed range into `[start, end]` semantic symbols.
78
119
  *
79
120
  * @type {(r: number) => Tuple<2, number>}
80
121
  */
81
122
  export const rangeDecode = r =>
82
- [Number(BigInt(r) >> BigInt(offset)), r & mask]
123
+ [decodeTerminal(Number(BigInt(r) >> BigInt(offset))), decodeTerminal(r & mask)]
83
124
 
84
125
  const mapOneEncode = map(oneEncode)
85
126
 
@@ -9,6 +9,8 @@ export declare const proof: {
9
9
  rangeEncodeInvalid: (() => void)[];
10
10
  rangeInvalid: (() => void)[];
11
11
  };
12
+ terminal: (() => void)[];
13
+ complement: (() => void)[];
12
14
  str: (() => void)[];
13
15
  set: () => void;
14
16
  commaJoin0Plus: () => void;
@@ -4,8 +4,18 @@
4
4
  * @import { Rule } from './types.ts'
5
5
  */
6
6
 
7
- import { assert, assertEq } from '../asserts/module.f.mjs'
8
7
  import {
8
+ assert,
9
+ assertEq,
10
+ assertStructurallySame,
11
+ } from '../asserts/module.f.mjs'
12
+ import {
13
+ eof,
14
+ eofSymbol,
15
+ fullRange,
16
+ not,
17
+ notSet,
18
+ rangeDecode,
9
19
  rangeEncode,
10
20
  str,
11
21
  set,
@@ -15,8 +25,14 @@ import {
15
25
  oneEncode,
16
26
  repeat1Plus,
17
27
  } from './module.f.mjs'
28
+ import { definedValues } from '../types/object/module.f.mjs'
18
29
  import { classic, deterministic } from './testlib.f.mjs'
19
30
 
31
+ // The last ordinary symbol, `2 ** 24 - 2`. Written out because the range codec
32
+ // is what these tests check: deriving it from the codec would move both sides
33
+ // of every assertion together.
34
+ const maxSymbol = 0xFFFFFE
35
+
20
36
  export const proof = {
21
37
  test: () => {
22
38
  classic()
@@ -24,8 +40,14 @@ export const proof = {
24
40
  },
25
41
  throw: {
26
42
  rangeEncodeInvalid: [
27
- () => { rangeEncode(-1, 0) },
28
- () => { rangeEncode(0, -1) },
43
+ // one below `eofSymbol`, the smallest semantic terminal
44
+ () => { rangeEncode(-2, 0) },
45
+ () => { rangeEncode(0, -2) },
46
+ // one above the largest ordinary symbol: `2 ** 24 - 1` is EOF's
47
+ // stored code, not a terminal of its own
48
+ () => { rangeEncode(0, maxSymbol + 1) },
49
+ // semantic ordering, so EOF is below every ordinary symbol
50
+ () => { rangeEncode(0, eofSymbol) },
29
51
  () => { rangeEncode(5, 3) },
30
52
  ],
31
53
  rangeInvalid: [
@@ -33,6 +55,60 @@ export const proof = {
33
55
  () => { range('abc') },
34
56
  ],
35
57
  },
58
+ terminal: [
59
+ () => {
60
+ // EOF is the singleton `[-1, -1]` and keeps the stored code
61
+ // `2 ** 24 - 1` at both endpoints.
62
+ assertEq(eof, 0xFFFFFF_FFFFFF)
63
+ const [a, b] = rangeDecode(eof)
64
+ assertEq(a, eofSymbol)
65
+ assertEq(b, eofSymbol)
66
+ },
67
+ () => {
68
+ // `fullRange` holds the ordinary symbols only.
69
+ const [a, b] = rangeDecode(fullRange)
70
+ assertEq(a, 0)
71
+ assertEq(b, maxSymbol)
72
+ },
73
+ () => {
74
+ // Round trips over the whole semantic domain: EOF, the ordinary
75
+ // minimum, an ordinary symbol, and the ordinary maximum.
76
+ for (const v of [eofSymbol, 0, 0x10FFFF, maxSymbol]) {
77
+ const [a, b] = rangeDecode(oneEncode(v))
78
+ assertEq(a, v)
79
+ assertEq(b, v)
80
+ }
81
+ },
82
+ () => {
83
+ // Ordinary symbols keep their own value as their stored code, so a
84
+ // packed literal still reads as its endpoints.
85
+ assertEq(oneEncode(0x20), 0x000020_000020)
86
+ const [a, b] = rangeDecode(0x000030_000039)
87
+ assertEq(a, 0x30)
88
+ assertEq(b, 0x39)
89
+ },
90
+ () => {
91
+ // A range may span EOF and ordinary symbols; the endpoints are
92
+ // ordered semantically, not by stored code.
93
+ const [a, b] = rangeDecode(rangeEncode(eofSymbol, maxSymbol))
94
+ assertEq(a, eofSymbol)
95
+ assertEq(b, maxSymbol)
96
+ },
97
+ ],
98
+ complement: [
99
+ () => {
100
+ // The complement of nothing over `fullRange` is `fullRange`: EOF is
101
+ // not an ordinary symbol, so no complement can produce it.
102
+ const r = definedValues(not({}))
103
+ assertEq(r.length, 1)
104
+ assertEq(r[0], fullRange)
105
+ },
106
+ () => {
107
+ const r = definedValues(notSet('a'))
108
+ const decoded = r.map(rangeDecode)
109
+ assertStructurallySame(decoded, [[0, 0x60], [0x62, maxSymbol]])
110
+ },
111
+ ],
36
112
  str: [
37
113
  () => {
38
114
  const result = str('a')
@@ -4,7 +4,8 @@
4
4
  * A parser built on top of a tokenizer consumes one input symbol per token, so
5
5
  * multi-character operators (`>>>=`) and keywords (`instanceof`) each need a
6
6
  * symbol of their own. Names are registered as one fixed alphabet and get a
7
- * symbol from their position in it, above the Unicode range and below `eof`.
7
+ * symbol from their position in it, above the Unicode range and up to the last
8
+ * ordinary symbol.
8
9
  *
9
10
  * See `./types.ts` for the `Encoding<T>` type-level API.
10
11
  *
@@ -14,8 +15,8 @@
14
15
  */
15
16
  import type { Encoding } from './types.ts';
16
17
  /**
17
- * How many names one encoding holds: every symbol from {@link start} up to but
18
- * not including `eof` (`0xFFFFFF`, the top of the 24-bit symbol space).
18
+ * How many names one encoding holds: every symbol from {@link start} up to and
19
+ * including the last ordinary symbol (`0xFFFFFE`, the top of `fullRange`).
19
20
  *
20
21
  * @type {number}
21
22
  */
@@ -4,7 +4,8 @@
4
4
  * A parser built on top of a tokenizer consumes one input symbol per token, so
5
5
  * multi-character operators (`>>>=`) and keywords (`instanceof`) each need a
6
6
  * symbol of their own. Names are registered as one fixed alphabet and get a
7
- * symbol from their position in it, above the Unicode range and below `eof`.
7
+ * symbol from their position in it, above the Unicode range and up to the last
8
+ * ordinary symbol.
8
9
  *
9
10
  * See `./types.ts` for the `Encoding<T>` type-level API.
10
11
  *
@@ -15,11 +16,11 @@
15
16
 
16
17
  import { assert } from '../../asserts/module.f.mjs'
17
18
  import { fromUndefined } from '../../types/nullable/module.f.mjs'
18
- import { eof, rangeDecode, unicodeRange } from '../module.f.mjs'
19
+ import { fullRange, rangeDecode, unicodeRange } from '../module.f.mjs'
19
20
 
20
21
  const [, unicodeLast] = rangeDecode(unicodeRange)
21
22
 
22
- const [eofSymbol] = rangeDecode(eof)
23
+ const [, lastOrdinary] = rangeDecode(fullRange)
23
24
 
24
25
  /**
25
26
  * The symbol of the first registered name: `0x110000`, one past the last
@@ -29,12 +30,12 @@ const [eofSymbol] = rangeDecode(eof)
29
30
  const start = unicodeLast + 1
30
31
 
31
32
  /**
32
- * How many names one encoding holds: every symbol from {@link start} up to but
33
- * not including `eof` (`0xFFFFFF`, the top of the 24-bit symbol space).
33
+ * How many names one encoding holds: every symbol from {@link start} up to and
34
+ * including the last ordinary symbol (`0xFFFFFE`, the top of `fullRange`).
34
35
  *
35
36
  * @type {number}
36
37
  */
37
- export const capacity = eofSymbol - start
38
+ export const capacity = lastOrdinary - start + 1
38
39
 
39
40
  /**
40
41
  * Builds an encoding over the complete list of token names.
@@ -1,4 +1,5 @@
1
1
  import { assertEq } from '../../asserts/module.f.mjs'
2
+ import { eofSymbol } from '../module.f.mjs'
2
3
  import { capacity, encoding } from './module.f.mjs'
3
4
 
4
5
  const names = /** @type {const} */ (['>>', '>>>=', 'instanceof'])
@@ -17,10 +18,12 @@ export const proof = {
17
18
  },
18
19
  () => {
19
20
  const { decode } = encoding(names)
20
- // past the end of the alphabet, a code point, and `eof`
21
+ // past the end of the alphabet, a code point, the last ordinary
22
+ // symbol, and `eof`
21
23
  assertEq(decode(0x110003), null)
22
24
  assertEq(decode(0x10FFFF), null)
23
- assertEq(decode(0xFFFFFF), null)
25
+ assertEq(decode(0xFFFFFE), null)
26
+ assertEq(decode(eofSymbol), null)
24
27
  },
25
28
  ],
26
29
  roundTrip: () => {
@@ -20,8 +20,8 @@ export type Encoding<T extends string> = {
20
20
  readonly encode: (name: T) => number;
21
21
  /**
22
22
  * The name a symbol stands for, or `null` when the symbol belongs to no
23
- * registered name — a code point, `eof`, or a symbol past the end of the
24
- * alphabet.
23
+ * registered name — a code point, the `eof` symbol, or a symbol past the
24
+ * end of the alphabet.
25
25
  */
26
26
  readonly decode: (symbol: number) => Nullable<T>;
27
27
  };
@@ -5,11 +5,18 @@
5
5
  */
6
6
  import type { StringMap } from '../types/object/types.ts';
7
7
  /**
8
- * A range of symbols. Two 24-bit numbers are stored in one JS number (48 bits).
8
+ * A range of symbols. Two 24-bit endpoint codes are stored in one JS number
9
+ * (48 bits).
9
10
  *
10
11
  * For example: 0xBBBBBB_EEEEEE
11
- * - 0xBBBBBB is the first symbol (24 bits)
12
- * - 0xEEEEEE is the last symbol (24 bits)
12
+ * - 0xBBBBBB is the first endpoint's stored code (24 bits)
13
+ * - 0xEEEEEE is the last endpoint's stored code (24 bits)
14
+ *
15
+ * A stored code is not the semantic terminal value: the semantic domain is
16
+ * `[-1] | [0, 2 ** 24 - 2]` — EOF plus every ordinary symbol — and EOF's code
17
+ * is `0xFFFFFF`, the top of the stored space. `rangeEncode` / `rangeDecode` in
18
+ * `./module.f.mjs` convert between the two, and everything that compares
19
+ * terminals compares decoded values.
13
20
  *
14
21
  * 24 bits per half, not 26 (the most `float64`'s 52-bit safe-integer mantissa
15
22
  * could fit two of): 24 is divisible by 4, so each half is exactly 6 hex
@@ -1,4 +1,6 @@
1
- /** @import { NodeProgramOptions } from '../../effects/node/types.ts' */
1
+ /**
2
+ * @import { NodeProgramOptions } from '../../effects/node/types.ts'
3
+ */
2
4
  export declare const proof: {
3
5
  mainAdd: () => void;
4
6
  mainAddGetBig: () => void;
@@ -1,4 +1,6 @@
1
- /** @import { NodeProgramOptions } from '../../effects/node/types.ts' */
1
+ /**
2
+ * @import { NodeProgramOptions } from '../../effects/node/types.ts'
3
+ */
2
4
 
3
5
  import { commands } from './module.f.mjs'
4
6
  import { computeSync, sha256 } from '../../crypto/sha2/module.f.mjs'
@@ -111,19 +111,13 @@ export declare const syncRevision: (cacheKey: Key<Cache>) => (hash: Vec) => (val
111
111
  /**
112
112
  * Adds a new revision to `cas` and folds it into the cache at `cacheKey`.
113
113
  *
114
- * Steps: resolve and validate every parent ({@link resolveParents}), resolve
115
- * `subject` from them ({@link resolveSubject}) and check every parent
116
- * actually belongs to it ({@link validateParentSubjects}), resolve `snapshot`
117
- * ({@link resolveSnapshot}) and compute `generation`
118
- * ({@link computeGeneration}), assemble a `Revision` and check its hash /
119
- * generation semantics (`fjs/media/revision` `checkReferences` the same rule
120
- * a reader applies; the shape itself is already guaranteed by this function's
121
- * own field types), encode and write it to `cas`, then fold the new revision
122
- * into the cache. Every failure — an invalid or missing parent, a
123
- * cross-subject parent, an unresolvable subject or snapshot, an invalid
124
- * revision, a blob too large to encode, or a store write failure — is
125
- * reported as `error(message)` rather than thrown, so a caller (e.g. an MCP
126
- * tool handler) can surface it without a `throw`/`catch`.
114
+ * Steps: resolve and validate every parent ({@link resolveParents}), derive
115
+ * the revision to store from them ({@link buildRevision}), then encode it,
116
+ * write it to `cas`, and fold it into the cache. Every failure — an invalid
117
+ * or missing parent, a cross-subject parent, an unresolvable subject or
118
+ * snapshot, an invalid revision, a blob too large to encode, or a store write
119
+ * failure is reported as `error(message)` rather than thrown, so a caller
120
+ * (e.g. an MCP tool handler) can surface it without a `throw`/`catch`.
127
121
  *
128
122
  * `input.generation` is ignored: it exists on {@link RevisionData} only so a
129
123
  * value read back by {@link readRevision} round-trips into `add` unchanged,