functionalscript 0.43.1 → 0.44.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 (1095) hide show
  1. package/README.md +53 -21
  2. package/fjs/asn.1/module.f.d.mts +123 -0
  3. package/fjs/asn.1/module.f.mjs +459 -0
  4. package/fjs/asn.1/proof.f.mjs +309 -0
  5. package/fjs/asn.1/types.d.ts +37 -0
  6. package/fjs/asn.1/types.js +6 -0
  7. package/fjs/asserts/module.f.d.mts +37 -0
  8. package/fjs/asserts/module.f.mjs +49 -0
  9. package/fjs/asserts/proof.f.mjs +19 -0
  10. package/fjs/asserts/types.d.ts +11 -0
  11. package/fjs/asserts/types.js +6 -0
  12. package/fjs/basen/base128/module.f.d.mts +22 -0
  13. package/fjs/basen/base128/module.f.mjs +51 -0
  14. package/fjs/basen/base128/proof.f.d.mts +2 -0
  15. package/fjs/basen/base128/proof.f.mjs +30 -0
  16. package/fjs/basen/base64/module.f.d.mts +14 -0
  17. package/fjs/basen/base64/module.f.mjs +71 -0
  18. package/fjs/basen/base64/proof.f.d.mts +17 -0
  19. package/fjs/basen/base64/proof.f.mjs +147 -0
  20. package/fjs/basen/cbase32/module.f.d.mts +18 -0
  21. package/fjs/basen/cbase32/module.f.mjs +61 -0
  22. package/fjs/basen/cbase32/proof.f.d.mts +8 -0
  23. package/fjs/basen/cbase32/proof.f.mjs +77 -0
  24. package/fjs/basen/module.f.d.mts +30 -0
  25. package/fjs/basen/module.f.mjs +88 -0
  26. package/fjs/basen/proof.f.mjs +69 -0
  27. package/fjs/basen/types.d.ts +14 -0
  28. package/fjs/basen/types.js +6 -0
  29. package/fjs/bnf/data/module.f.d.mts +47 -0
  30. package/fjs/bnf/data/module.f.mjs +188 -0
  31. package/fjs/bnf/data/proof.f.d.mts +13 -0
  32. package/fjs/bnf/data/proof.f.mjs +160 -0
  33. package/fjs/bnf/data/types.d.ts +35 -0
  34. package/fjs/bnf/data/types.js +6 -0
  35. package/fjs/bnf/descent/module.f.d.mts +33 -0
  36. package/fjs/bnf/descent/module.f.mjs +212 -0
  37. package/fjs/bnf/descent/proof.f.d.mts +13 -0
  38. package/fjs/bnf/descent/proof.f.mjs +351 -0
  39. package/fjs/bnf/descent/types.d.ts +71 -0
  40. package/fjs/bnf/descent/types.js +6 -0
  41. package/fjs/bnf/ll1/module.f.d.mts +41 -0
  42. package/fjs/bnf/ll1/module.f.mjs +199 -0
  43. package/fjs/bnf/ll1/proof.f.d.mts +16 -0
  44. package/fjs/bnf/ll1/proof.f.mjs +352 -0
  45. package/fjs/bnf/ll1/types.d.ts +59 -0
  46. package/fjs/bnf/ll1/types.js +6 -0
  47. package/fjs/bnf/module.f.d.mts +164 -0
  48. package/fjs/bnf/module.f.mjs +298 -0
  49. package/fjs/bnf/proof.f.d.mts +17 -0
  50. package/fjs/bnf/proof.f.mjs +89 -0
  51. package/fjs/bnf/testlib.f.d.mts +10 -0
  52. package/fjs/bnf/testlib.f.mjs +196 -0
  53. package/fjs/bnf/token_symbol/module.f.d.mts +35 -0
  54. package/fjs/bnf/token_symbol/module.f.mjs +62 -0
  55. package/fjs/bnf/token_symbol/proof.f.mjs +43 -0
  56. package/fjs/bnf/token_symbol/types.d.ts +27 -0
  57. package/fjs/bnf/token_symbol/types.js +6 -0
  58. package/fjs/bnf/types.d.ts +67 -0
  59. package/fjs/bnf/types.js +6 -0
  60. package/fjs/cas/cli/module.f.d.mts +17 -0
  61. package/fjs/cas/cli/module.f.mjs +73 -0
  62. package/fjs/cas/cli/proof.f.d.mts +18 -0
  63. package/fjs/cas/cli/proof.f.mjs +118 -0
  64. package/fjs/cas/evo/module.f.d.mts +163 -0
  65. package/fjs/cas/evo/module.f.mjs +556 -0
  66. package/fjs/cas/evo/proof.f.d.mts +55 -0
  67. package/fjs/cas/evo/proof.f.mjs +749 -0
  68. package/fjs/cas/evo/types.d.ts +111 -0
  69. package/fjs/cas/evo/types.js +7 -0
  70. package/fjs/cas/module.f.d.mts +68 -0
  71. package/fjs/cas/module.f.mjs +363 -0
  72. package/fjs/cas/proof.f.d.mts +29 -0
  73. package/fjs/cas/proof.f.mjs +371 -0
  74. package/fjs/cas/types.d.ts +35 -0
  75. package/fjs/cas/types.js +6 -0
  76. package/fjs/ci/bun/module.f.d.mts +11 -0
  77. package/fjs/ci/bun/module.f.mjs +20 -0
  78. package/fjs/ci/common/module.f.d.mts +80 -0
  79. package/fjs/ci/common/module.f.mjs +87 -0
  80. package/fjs/ci/common/types.d.ts +27 -0
  81. package/fjs/ci/config/module.f.d.mts +45 -0
  82. package/fjs/ci/config/module.f.mjs +89 -0
  83. package/fjs/ci/deno/module.f.d.mts +16 -0
  84. package/fjs/ci/deno/module.f.mjs +29 -0
  85. package/fjs/ci/deno/proof.f.d.mts +4 -0
  86. package/fjs/ci/deno/proof.f.mjs +26 -0
  87. package/fjs/ci/module.f.d.mts +19 -0
  88. package/fjs/ci/module.f.mjs +89 -0
  89. package/fjs/ci/nix/module.f.d.mts +69 -0
  90. package/fjs/ci/nix/module.f.mjs +136 -0
  91. package/fjs/ci/nix/proof.f.d.mts +28 -0
  92. package/fjs/ci/nix/proof.f.mjs +146 -0
  93. package/fjs/ci/nix/types.d.ts +16 -0
  94. package/fjs/ci/nix/types.js +6 -0
  95. package/fjs/ci/node/module.f.d.mts +48 -0
  96. package/fjs/ci/node/module.f.mjs +139 -0
  97. package/fjs/ci/node/proof.f.mjs +18 -0
  98. package/fjs/ci/proof.f.d.mts +20 -0
  99. package/fjs/ci/proof.f.mjs +219 -0
  100. package/fjs/ci/rust/module.f.d.mts +15 -0
  101. package/fjs/ci/rust/module.f.mjs +108 -0
  102. package/fjs/ci/types.d.ts +9 -0
  103. package/fjs/ci/types.js +6 -0
  104. package/fjs/cli/module.f.d.mts +16 -0
  105. package/fjs/cli/module.f.mjs +51 -0
  106. package/fjs/cli/proof.f.d.mts +16 -0
  107. package/fjs/cli/proof.f.mjs +130 -0
  108. package/fjs/cli/types.d.ts +15 -0
  109. package/fjs/cli/types.js +6 -0
  110. package/fjs/common/monoid/module.f.d.mts +87 -0
  111. package/fjs/common/monoid/module.f.mjs +104 -0
  112. package/fjs/common/monoid/proof.f.d.mts +10 -0
  113. package/fjs/common/monoid/proof.f.mjs +58 -0
  114. package/fjs/common/monoid/types.d.ts +50 -0
  115. package/fjs/common/monoid/types.js +6 -0
  116. package/fjs/crypto/hmac/module.f.d.mts +32 -0
  117. package/fjs/crypto/hmac/module.f.mjs +65 -0
  118. package/fjs/crypto/hmac/proof.f.mjs +34 -0
  119. package/fjs/crypto/pow/module.f.d.mts +43 -0
  120. package/fjs/crypto/pow/module.f.mjs +93 -0
  121. package/fjs/crypto/pow/proof.f.mjs +121 -0
  122. package/fjs/crypto/pow/types.d.ts +19 -0
  123. package/fjs/crypto/pow/types.js +6 -0
  124. package/fjs/crypto/secp/module.f.d.mts +61 -0
  125. package/fjs/crypto/secp/module.f.mjs +204 -0
  126. package/fjs/crypto/secp/proof.f.d.mts +9 -0
  127. package/fjs/crypto/secp/proof.f.mjs +137 -0
  128. package/fjs/crypto/secp/types.d.ts +36 -0
  129. package/fjs/crypto/secp/types.js +6 -0
  130. package/fjs/crypto/sha2/module.f.d.mts +80 -0
  131. package/fjs/crypto/sha2/module.f.mjs +431 -0
  132. package/fjs/crypto/sha2/proof.f.d.mts +32 -0
  133. package/fjs/crypto/sha2/proof.f.mjs +144 -0
  134. package/fjs/crypto/sha2/types.d.ts +57 -0
  135. package/fjs/crypto/sha2/types.js +6 -0
  136. package/fjs/crypto/sign/module.f.d.mts +46 -0
  137. package/fjs/crypto/sign/module.f.mjs +189 -0
  138. package/fjs/crypto/sign/proof.f.d.mts +17 -0
  139. package/fjs/crypto/sign/proof.f.mjs +604 -0
  140. package/fjs/crypto/sign/types.d.ts +13 -0
  141. package/fjs/crypto/sign/types.js +6 -0
  142. package/fjs/crypto/vdf/module.f.d.mts +15 -0
  143. package/fjs/crypto/vdf/module.f.mjs +84 -0
  144. package/fjs/crypto/vdf/proof.f.mjs +106 -0
  145. package/fjs/crypto/vdf/types.d.ts +18 -0
  146. package/fjs/crypto/vdf/types.js +6 -0
  147. package/fjs/dev/module.f.d.mts +56 -0
  148. package/fjs/dev/module.f.mjs +170 -0
  149. package/fjs/dev/package_json/module.f.d.mts +32 -0
  150. package/fjs/dev/package_json/module.f.mjs +37 -0
  151. package/fjs/dev/package_json/proof.f.mjs +32 -0
  152. package/fjs/dev/proof.f.d.mts +13 -0
  153. package/fjs/dev/proof.f.mjs +78 -0
  154. package/fjs/dev/types.d.ts +14 -0
  155. package/fjs/dev/types.js +6 -0
  156. package/fjs/dev/update/module.f.d.mts +19 -0
  157. package/fjs/dev/update/module.f.mjs +36 -0
  158. package/fjs/dev/update/proof.f.d.mts +7 -0
  159. package/fjs/dev/update/proof.f.mjs +36 -0
  160. package/fjs/djs/ast/module.f.d.mts +35 -0
  161. package/fjs/djs/ast/module.f.mjs +82 -0
  162. package/fjs/djs/ast/proof.f.mjs +48 -0
  163. package/fjs/djs/ast/types.d.ts +54 -0
  164. package/fjs/djs/ast/types.js +8 -0
  165. package/fjs/djs/examples/input.f.mjs +4 -0
  166. package/fjs/djs/examples/m.f.mjs +1 -0
  167. package/fjs/djs/module.f.d.mts +17 -0
  168. package/fjs/djs/module.f.mjs +47 -0
  169. package/fjs/djs/parser/module.f.d.mts +75 -0
  170. package/fjs/djs/parser/module.f.mjs +547 -0
  171. package/fjs/djs/parser/proof.f.mjs +543 -0
  172. package/fjs/djs/parser/types.d.ts +11 -0
  173. package/fjs/djs/parser/types.js +7 -0
  174. package/fjs/djs/proof.f.mjs +52 -0
  175. package/fjs/djs/serializer/module.f.d.mts +30 -0
  176. package/fjs/djs/serializer/module.f.mjs +206 -0
  177. package/fjs/djs/serializer/proof.f.mjs +116 -0
  178. package/fjs/djs/tokenizer/module.f.d.mts +65 -0
  179. package/fjs/djs/tokenizer/module.f.mjs +624 -0
  180. package/fjs/djs/tokenizer/proof.f.mjs +980 -0
  181. package/fjs/djs/tokenizer/types.d.ts +20 -0
  182. package/fjs/djs/tokenizer/types.js +7 -0
  183. package/fjs/djs/transpiler/module.f.d.mts +44 -0
  184. package/fjs/djs/transpiler/module.f.mjs +141 -0
  185. package/fjs/djs/transpiler/proof.f.mjs +76 -0
  186. package/fjs/djs/types.d.ts +13 -0
  187. package/fjs/djs/types.js +7 -0
  188. package/fjs/effects/eff/module.f.d.mts +10 -0
  189. package/fjs/effects/eff/module.f.mjs +68 -0
  190. package/fjs/effects/eff/proof.f.d.mts +12 -0
  191. package/fjs/effects/eff/proof.f.mjs +66 -0
  192. package/fjs/effects/eff/types.d.ts +71 -0
  193. package/fjs/effects/eff/types.js +6 -0
  194. package/fjs/effects/list/module.f.d.mts +24 -0
  195. package/fjs/effects/list/module.f.mjs +34 -0
  196. package/fjs/effects/list/types.d.ts +26 -0
  197. package/fjs/effects/list/types.js +6 -0
  198. package/fjs/effects/memory/module.f.d.mts +32 -0
  199. package/fjs/effects/memory/module.f.mjs +44 -0
  200. package/fjs/effects/memory/proof.f.d.mts +12 -0
  201. package/fjs/effects/memory/proof.f.mjs +83 -0
  202. package/fjs/effects/memory/types.d.ts +18 -0
  203. package/fjs/effects/memory/types.js +6 -0
  204. package/fjs/effects/mock/module.f.d.mts +6 -0
  205. package/fjs/effects/mock/module.f.mjs +26 -0
  206. package/fjs/effects/mock/types.d.ts +15 -0
  207. package/fjs/effects/mock/types.js +6 -0
  208. package/fjs/effects/module.d.mts +7 -0
  209. package/fjs/effects/module.f.d.mts +350 -0
  210. package/fjs/effects/module.f.mjs +382 -0
  211. package/fjs/effects/module.mjs +18 -0
  212. package/fjs/effects/node/memory/module.d.mts +24 -0
  213. package/fjs/effects/node/memory/module.mjs +59 -0
  214. package/fjs/effects/node/memory/proof.mjs +43 -0
  215. package/fjs/effects/node/module.d.mts +54 -0
  216. package/fjs/effects/node/module.f.d.mts +172 -0
  217. package/fjs/effects/node/module.f.mjs +354 -0
  218. package/fjs/effects/node/module.mjs +393 -0
  219. package/fjs/effects/node/proof.f.d.mts +76 -0
  220. package/fjs/effects/node/proof.f.mjs +444 -0
  221. package/fjs/effects/node/types.d.ts +203 -0
  222. package/fjs/effects/node/types.js +6 -0
  223. package/fjs/effects/node/virtual/module.f.d.mts +31 -0
  224. package/fjs/effects/node/virtual/module.f.mjs +434 -0
  225. package/fjs/effects/node/virtual/proof.f.d.mts +35 -0
  226. package/fjs/effects/node/virtual/proof.f.mjs +226 -0
  227. package/fjs/effects/node/virtual/types.d.ts +39 -0
  228. package/fjs/effects/node/virtual/types.js +7 -0
  229. package/fjs/effects/proof.f.d.mts +62 -0
  230. package/fjs/effects/proof.f.mjs +231 -0
  231. package/fjs/effects/types.d.ts +115 -0
  232. package/fjs/effects/types.js +6 -0
  233. package/fjs/emergent_testing/all.test.js +2 -2
  234. package/fjs/emergent_testing/example.f.d.mts +16 -0
  235. package/fjs/emergent_testing/example.f.mjs +34 -0
  236. package/fjs/emergent_testing/module.f.d.mts +150 -0
  237. package/fjs/emergent_testing/module.f.mjs +414 -0
  238. package/fjs/emergent_testing/proof.f.d.mts +97 -0
  239. package/fjs/emergent_testing/proof.f.mjs +518 -0
  240. package/fjs/emergent_testing/types.d.ts +53 -0
  241. package/fjs/emergent_testing/types.js +6 -0
  242. package/fjs/fsc/bnf.f.d.mts +3 -0
  243. package/fjs/fsc/bnf.f.mjs +77 -0
  244. package/fjs/fsc/json.f.d.mts +13 -0
  245. package/fjs/fsc/json.f.mjs +124 -0
  246. package/fjs/fsc/module.f.d.mts +14 -0
  247. package/fjs/fsc/module.f.mjs +138 -0
  248. package/fjs/fsc/proof.f.mjs +119 -0
  249. package/fjs/fsm/module.f.d.mts +27 -0
  250. package/fjs/fsm/module.f.mjs +99 -0
  251. package/fjs/fsm/proof.f.mjs +146 -0
  252. package/fjs/js/tokenizer/module.f.d.mts +19 -0
  253. package/fjs/js/tokenizer/module.f.mjs +795 -0
  254. package/fjs/js/tokenizer/proof.f.d.mts +12 -0
  255. package/fjs/js/tokenizer/proof.f.mjs +681 -0
  256. package/fjs/js/tokenizer/types.d.ts +193 -0
  257. package/fjs/js/tokenizer/types.js +6 -0
  258. package/fjs/mcp/cas/module.f.d.mts +156 -0
  259. package/fjs/mcp/cas/module.f.mjs +302 -0
  260. package/fjs/mcp/evo/module.f.d.mts +88 -0
  261. package/fjs/mcp/evo/module.f.mjs +153 -0
  262. package/fjs/mcp/evo/proof.f.d.mts +17 -0
  263. package/fjs/mcp/evo/proof.f.mjs +166 -0
  264. package/fjs/mcp/module.f.d.mts +32 -0
  265. package/fjs/mcp/module.f.mjs +96 -0
  266. package/fjs/mcp/proof.f.d.mts +46 -0
  267. package/fjs/mcp/proof.f.mjs +725 -0
  268. package/fjs/media/html/module.f.d.mts +43 -0
  269. package/fjs/media/html/module.f.mjs +167 -0
  270. package/fjs/media/html/proof.f.mjs +77 -0
  271. package/fjs/media/html/types.d.ts +19 -0
  272. package/fjs/media/html/types.js +6 -0
  273. package/fjs/media/json/module.f.d.mts +48 -0
  274. package/fjs/media/json/module.f.mjs +104 -0
  275. package/fjs/media/json/parser/module.f.d.mts +30 -0
  276. package/fjs/media/json/parser/module.f.mjs +219 -0
  277. package/fjs/media/json/parser/proof.f.d.mts +8 -0
  278. package/fjs/media/json/parser/proof.f.mjs +314 -0
  279. package/fjs/media/json/parser/types.d.ts +34 -0
  280. package/fjs/media/json/parser/types.js +6 -0
  281. package/fjs/media/json/proof.f.mjs +79 -0
  282. package/fjs/media/json/rtti/module.f.d.mts +38 -0
  283. package/fjs/media/json/rtti/module.f.mjs +51 -0
  284. package/fjs/media/json/rtti/proof.f.d.mts +26 -0
  285. package/fjs/media/json/rtti/proof.f.mjs +86 -0
  286. package/fjs/media/json/schema/module.f.d.mts +79 -0
  287. package/fjs/media/json/schema/module.f.mjs +144 -0
  288. package/fjs/media/json/schema/proof.f.d.mts +40 -0
  289. package/fjs/media/json/schema/proof.f.mjs +93 -0
  290. package/fjs/media/json/serializer/module.f.d.mts +27 -0
  291. package/fjs/media/json/serializer/module.f.mjs +131 -0
  292. package/fjs/media/json/serializer/proof.f.mjs +92 -0
  293. package/fjs/media/json/tokenizer/module.f.d.mts +17 -0
  294. package/fjs/media/json/tokenizer/module.f.mjs +77 -0
  295. package/fjs/media/json/tokenizer/proof.f.d.mts +8 -0
  296. package/fjs/media/json/tokenizer/proof.f.mjs +291 -0
  297. package/fjs/media/json/tokenizer/types.d.ts +17 -0
  298. package/fjs/media/json/tokenizer/types.js +6 -0
  299. package/fjs/media/json/types.d.ts +25 -0
  300. package/fjs/media/json/types.js +13 -0
  301. package/fjs/media/module.f.d.mts +116 -0
  302. package/fjs/media/module.f.mjs +152 -0
  303. package/fjs/media/nix/module.f.d.mts +14 -0
  304. package/fjs/media/nix/module.f.mjs +261 -0
  305. package/fjs/media/nix/proof.f.mjs +181 -0
  306. package/fjs/media/nix/types.d.ts +22 -0
  307. package/fjs/media/nix/types.js +6 -0
  308. package/fjs/media/proof.f.d.mts +19 -0
  309. package/fjs/media/proof.f.mjs +159 -0
  310. package/fjs/media/revision/module.f.d.mts +119 -0
  311. package/fjs/media/revision/module.f.mjs +166 -0
  312. package/fjs/media/revision/proof.f.mjs +228 -0
  313. package/fjs/media/revision/types.d.ts +16 -0
  314. package/fjs/media/revision/types.js +8 -0
  315. package/fjs/media/rust/module.f.d.mts +61 -0
  316. package/fjs/media/rust/module.f.mjs +93 -0
  317. package/fjs/media/rust/proof.f.d.mts +17 -0
  318. package/fjs/media/rust/proof.f.mjs +50 -0
  319. package/fjs/media/type/module.f.d.mts +97 -0
  320. package/fjs/media/type/module.f.mjs +281 -0
  321. package/fjs/media/type/proof.f.mjs +285 -0
  322. package/fjs/media/type/types.d.ts +67 -0
  323. package/fjs/media/type/types.js +6 -0
  324. package/fjs/media/types.d.ts +26 -0
  325. package/fjs/media/types.js +7 -0
  326. package/fjs/module.f.d.mts +3 -0
  327. package/fjs/module.f.mjs +60 -0
  328. package/fjs/module.mjs +6 -0
  329. package/fjs/nanvm/module.f.d.mts +54 -0
  330. package/fjs/nanvm/module.f.mjs +240 -0
  331. package/fjs/nanvm/proof.f.d.mts +41 -0
  332. package/fjs/nanvm/proof.f.mjs +173 -0
  333. package/fjs/nanvm/rust/module.f.d.mts +54 -0
  334. package/fjs/nanvm/rust/module.f.mjs +166 -0
  335. package/fjs/nanvm/rust/proof.f.d.mts +21 -0
  336. package/fjs/nanvm/rust/proof.f.mjs +119 -0
  337. package/fjs/nanvm/types.d.ts +105 -0
  338. package/fjs/nanvm/types.js +11 -0
  339. package/fjs/nanvm/update/module.f.d.mts +23 -0
  340. package/fjs/nanvm/update/module.f.mjs +33 -0
  341. package/fjs/nanvm/update/proof.f.d.mts +9 -0
  342. package/fjs/nanvm/update/proof.f.mjs +32 -0
  343. package/fjs/path/module.f.d.mts +55 -0
  344. package/fjs/path/module.f.mjs +96 -0
  345. package/fjs/path/proof.f.mjs +125 -0
  346. package/fjs/proof.f.mjs +48 -0
  347. package/fjs/protocol/json_rpc/module.f.d.mts +127 -0
  348. package/fjs/protocol/json_rpc/module.f.mjs +112 -0
  349. package/fjs/protocol/json_rpc/proof.f.mjs +84 -0
  350. package/fjs/protocol/json_rpc/types.d.ts +30 -0
  351. package/fjs/protocol/json_rpc/types.js +8 -0
  352. package/fjs/protocol/mcp/module.f.d.mts +227 -0
  353. package/fjs/protocol/mcp/module.f.mjs +369 -0
  354. package/fjs/protocol/mcp/proof.f.d.mts +53 -0
  355. package/fjs/protocol/mcp/proof.f.mjs +312 -0
  356. package/fjs/protocol/mcp/stdio/module.f.d.mts +52 -0
  357. package/fjs/protocol/mcp/stdio/module.f.mjs +132 -0
  358. package/fjs/protocol/mcp/stdio/proof.f.d.mts +20 -0
  359. package/fjs/protocol/mcp/stdio/proof.f.mjs +190 -0
  360. package/fjs/protocol/mcp/types.d.ts +59 -0
  361. package/fjs/protocol/mcp/types.js +8 -0
  362. package/fjs/sul/id/module.f.d.mts +37 -0
  363. package/fjs/sul/id/module.f.mjs +143 -0
  364. package/fjs/sul/id/proof.f.mjs +72 -0
  365. package/fjs/sul/id/types.d.ts +8 -0
  366. package/fjs/sul/id/types.js +6 -0
  367. package/fjs/sul/level/hash/module.f.d.mts +37 -0
  368. package/fjs/sul/level/hash/module.f.mjs +61 -0
  369. package/fjs/sul/level/hash/proof.f.d.mts +15 -0
  370. package/fjs/sul/level/hash/proof.f.mjs +131 -0
  371. package/fjs/sul/level/hash/types.d.ts +20 -0
  372. package/fjs/sul/level/hash/types.js +6 -0
  373. package/fjs/sul/level/literal/module.f.d.mts +54 -0
  374. package/fjs/sul/level/literal/module.f.mjs +120 -0
  375. package/fjs/sul/level/literal/proof.f.mjs +788 -0
  376. package/fjs/sul/level/literal/types.d.ts +31 -0
  377. package/fjs/sul/level/literal/types.js +6 -0
  378. package/fjs/sul/module.f.d.mts +25 -0
  379. package/fjs/sul/module.f.mjs +69 -0
  380. package/fjs/sul/proof.f.d.mts +11 -0
  381. package/fjs/sul/proof.f.mjs +62 -0
  382. package/fjs/sul/types.d.ts +19 -0
  383. package/fjs/sul/types.js +6 -0
  384. package/fjs/text/ascii/module.f.d.mts +136 -0
  385. package/fjs/text/ascii/module.f.mjs +224 -0
  386. package/fjs/text/ascii/proof.f.mjs +16 -0
  387. package/fjs/text/code_point/module.f.d.mts +74 -0
  388. package/fjs/text/code_point/module.f.mjs +139 -0
  389. package/fjs/text/code_point/proof.f.mjs +80 -0
  390. package/fjs/text/module.f.d.mts +39 -0
  391. package/fjs/text/module.f.mjs +61 -0
  392. package/fjs/text/proof.f.mjs +48 -0
  393. package/fjs/text/sgr/module.f.d.mts +58 -0
  394. package/fjs/text/sgr/module.f.mjs +99 -0
  395. package/fjs/text/sgr/proof.f.mjs +39 -0
  396. package/fjs/text/sgr/types.d.ts +12 -0
  397. package/fjs/text/sgr/types.js +6 -0
  398. package/fjs/text/types.d.ts +13 -0
  399. package/fjs/text/types.js +6 -0
  400. package/fjs/text/utf16/module.f.d.mts +147 -0
  401. package/fjs/text/utf16/module.f.mjs +350 -0
  402. package/fjs/text/utf16/proof.f.d.mts +11 -0
  403. package/fjs/text/utf16/proof.f.mjs +158 -0
  404. package/fjs/text/utf16/types.d.ts +19 -0
  405. package/fjs/text/utf16/types.js +6 -0
  406. package/fjs/text/utf8/module.f.d.mts +69 -0
  407. package/fjs/text/utf8/module.f.mjs +280 -0
  408. package/fjs/text/utf8/proof.f.mjs +217 -0
  409. package/fjs/text/utf8/types.d.ts +26 -0
  410. package/fjs/text/utf8/types.js +6 -0
  411. package/fjs/types/array/module.f.d.mts +68 -0
  412. package/fjs/types/array/module.f.mjs +101 -0
  413. package/fjs/types/array/proof.f.mjs +98 -0
  414. package/fjs/types/array/types.d.ts +13 -0
  415. package/fjs/types/array/types.js +6 -0
  416. package/fjs/types/bigfloat/module.f.d.mts +14 -0
  417. package/fjs/types/bigfloat/module.f.mjs +99 -0
  418. package/fjs/types/bigfloat/proof.f.mjs +218 -0
  419. package/fjs/types/bigfloat/types.d.ts +6 -0
  420. package/fjs/types/bigfloat/types.js +6 -0
  421. package/fjs/types/bigint/benchmark.d.mts +1 -0
  422. package/fjs/types/bigint/benchmark.mjs +205 -0
  423. package/fjs/types/bigint/module.f.d.mts +176 -0
  424. package/fjs/types/bigint/module.f.mjs +289 -0
  425. package/fjs/types/bigint/proof.f.d.mts +39 -0
  426. package/fjs/types/bigint/proof.f.mjs +443 -0
  427. package/fjs/types/bigint/types.d.ts +14 -0
  428. package/fjs/types/bigint/types.js +6 -0
  429. package/fjs/types/bit_vec/module.f.d.mts +199 -0
  430. package/fjs/types/bit_vec/module.f.mjs +485 -0
  431. package/fjs/types/bit_vec/proof.f.mjs +495 -0
  432. package/fjs/types/bit_vec/types.d.ts +51 -0
  433. package/fjs/types/bit_vec/types.js +6 -0
  434. package/fjs/types/btree/find/module.f.d.mts +15 -0
  435. package/fjs/types/btree/find/module.f.mjs +80 -0
  436. package/fjs/types/btree/find/proof.f.d.mts +4 -0
  437. package/fjs/types/btree/find/proof.f.mjs +121 -0
  438. package/fjs/types/btree/find/types.d.ts +22 -0
  439. package/fjs/types/btree/find/types.js +6 -0
  440. package/fjs/types/btree/module.f.d.mts +10 -0
  441. package/fjs/types/btree/module.f.mjs +39 -0
  442. package/fjs/types/btree/proof.f.d.mts +14 -0
  443. package/fjs/types/btree/proof.f.mjs +85 -0
  444. package/fjs/types/btree/remove/module.f.d.mts +21 -0
  445. package/fjs/types/btree/remove/module.f.mjs +187 -0
  446. package/fjs/types/btree/remove/proof.f.mjs +472 -0
  447. package/fjs/types/btree/set/module.f.d.mts +5 -0
  448. package/fjs/types/btree/set/module.f.mjs +117 -0
  449. package/fjs/types/btree/set/proof.f.mjs +427 -0
  450. package/fjs/types/btree/types/module.f.d.mts +19 -0
  451. package/fjs/types/btree/types/module.f.mjs +19 -0
  452. package/fjs/types/btree/types/types.d.ts +14 -0
  453. package/fjs/types/btree/types/types.js +6 -0
  454. package/fjs/types/byte_set/module.f.d.mts +26 -0
  455. package/fjs/types/byte_set/module.f.mjs +66 -0
  456. package/fjs/types/byte_set/proof.f.d.mts +12 -0
  457. package/fjs/types/byte_set/proof.f.mjs +84 -0
  458. package/fjs/types/byte_set/types.d.ts +6 -0
  459. package/fjs/types/byte_set/types.js +6 -0
  460. package/fjs/types/function/compare/module.f.d.mts +44 -0
  461. package/fjs/types/function/compare/module.f.mjs +71 -0
  462. package/fjs/types/function/compare/proof.f.mjs +50 -0
  463. package/fjs/types/function/compare/types.d.ts +22 -0
  464. package/fjs/types/function/compare/types.js +6 -0
  465. package/fjs/types/function/module.f.d.mts +26 -0
  466. package/fjs/types/function/module.f.mjs +32 -0
  467. package/fjs/types/function/operator/module.f.d.mts +37 -0
  468. package/fjs/types/function/operator/module.f.mjs +55 -0
  469. package/fjs/types/function/operator/proof.f.mjs +76 -0
  470. package/fjs/types/function/operator/types.d.ts +39 -0
  471. package/fjs/types/function/operator/types.js +6 -0
  472. package/fjs/types/function/proof.f.mjs +16 -0
  473. package/fjs/types/function/types.d.ts +16 -0
  474. package/fjs/types/function/types.js +6 -0
  475. package/fjs/types/list/module.f.d.mts +88 -0
  476. package/fjs/types/list/module.f.mjs +309 -0
  477. package/fjs/types/list/proof.f.d.mts +32 -0
  478. package/fjs/types/list/proof.f.mjs +363 -0
  479. package/fjs/types/list/types.d.ts +36 -0
  480. package/fjs/types/list/types.js +6 -0
  481. package/fjs/types/map/module.f.d.mts +13 -0
  482. package/fjs/types/map/module.f.mjs +42 -0
  483. package/fjs/types/map/proof.f.mjs +25 -0
  484. package/fjs/types/nibble_set/module.f.d.mts +30 -0
  485. package/fjs/types/nibble_set/module.f.mjs +43 -0
  486. package/fjs/types/nibble_set/proof.f.mjs +59 -0
  487. package/fjs/types/nibble_set/types.d.ts +9 -0
  488. package/fjs/types/nibble_set/types.js +6 -0
  489. package/fjs/types/nominal/module.f.d.mts +9 -0
  490. package/fjs/types/nominal/module.f.mjs +16 -0
  491. package/fjs/types/nominal/proof.f.d.mts +7 -0
  492. package/fjs/types/nominal/proof.f.mjs +79 -0
  493. package/fjs/types/nominal/types.d.ts +25 -0
  494. package/fjs/types/nominal/types.js +6 -0
  495. package/fjs/types/nullable/module.f.d.mts +38 -0
  496. package/fjs/types/nullable/module.f.mjs +53 -0
  497. package/fjs/types/nullable/proof.f.mjs +34 -0
  498. package/fjs/types/nullable/types.d.ts +6 -0
  499. package/fjs/types/nullable/types.js +6 -0
  500. package/fjs/types/number/module.f.d.mts +23 -0
  501. package/fjs/types/number/module.f.mjs +55 -0
  502. package/fjs/types/number/proof.f.mjs +204 -0
  503. package/fjs/types/object/module.f.d.mts +33 -0
  504. package/fjs/types/object/module.f.mjs +58 -0
  505. package/fjs/types/object/proof.f.d.mts +25 -0
  506. package/fjs/types/object/proof.f.mjs +26 -0
  507. package/fjs/types/object/types.d.ts +50 -0
  508. package/fjs/types/object/types.js +8 -0
  509. package/fjs/types/ordered_map/module.f.d.mts +21 -0
  510. package/fjs/types/ordered_map/module.f.mjs +54 -0
  511. package/fjs/types/ordered_map/proof.f.mjs +88 -0
  512. package/fjs/types/ordered_map/types.d.ts +8 -0
  513. package/fjs/types/ordered_map/types.js +6 -0
  514. package/fjs/types/patricia_trie/module.f.d.mts +19 -0
  515. package/fjs/types/patricia_trie/module.f.mjs +43 -0
  516. package/fjs/types/patricia_trie/proof.f.d.mts +14 -0
  517. package/fjs/types/patricia_trie/proof.f.mjs +148 -0
  518. package/fjs/types/patricia_trie/types.d.ts +34 -0
  519. package/fjs/types/patricia_trie/types.js +6 -0
  520. package/fjs/types/prime_field/module.f.d.mts +42 -0
  521. package/fjs/types/prime_field/module.f.mjs +136 -0
  522. package/fjs/types/prime_field/proof.f.mjs +131 -0
  523. package/fjs/types/prime_field/types.d.ts +38 -0
  524. package/fjs/types/prime_field/types.js +6 -0
  525. package/fjs/types/range/module.f.d.mts +11 -0
  526. package/fjs/types/range/module.f.mjs +13 -0
  527. package/fjs/types/range/proof.f.mjs +10 -0
  528. package/fjs/types/range/types.d.ts +6 -0
  529. package/fjs/types/range/types.js +6 -0
  530. package/fjs/types/range_map/module.f.d.mts +72 -0
  531. package/fjs/types/range_map/module.f.mjs +130 -0
  532. package/fjs/types/range_map/proof.f.d.mts +7 -0
  533. package/fjs/types/range_map/proof.f.mjs +186 -0
  534. package/fjs/types/range_map/types.d.ts +56 -0
  535. package/fjs/types/range_map/types.js +6 -0
  536. package/fjs/types/range_set/module.f.d.mts +5 -0
  537. package/fjs/types/range_set/module.f.mjs +19 -0
  538. package/fjs/types/range_set/proof.f.mjs +26 -0
  539. package/fjs/types/result/module.d.mts +5 -0
  540. package/fjs/types/result/module.f.d.mts +59 -0
  541. package/fjs/types/result/module.f.mjs +67 -0
  542. package/fjs/types/result/module.mjs +22 -0
  543. package/fjs/types/result/proof.f.mjs +41 -0
  544. package/fjs/types/result/types.d.ts +17 -0
  545. package/fjs/types/result/types.js +6 -0
  546. package/fjs/types/rtti/common/module.f.d.mts +86 -0
  547. package/fjs/types/rtti/common/module.f.mjs +183 -0
  548. package/fjs/types/rtti/common/proof.f.d.mts +9 -0
  549. package/fjs/types/rtti/common/proof.f.mjs +64 -0
  550. package/fjs/types/rtti/common/types.d.ts +43 -0
  551. package/fjs/types/rtti/common/types.js +1 -0
  552. package/fjs/types/rtti/module.f.d.mts +76 -0
  553. package/fjs/types/rtti/module.f.mjs +110 -0
  554. package/fjs/types/rtti/parse/module.f.d.mts +9 -0
  555. package/fjs/types/rtti/parse/module.f.mjs +196 -0
  556. package/fjs/types/rtti/parse/proof.f.d.mts +122 -0
  557. package/fjs/types/rtti/parse/proof.f.mjs +363 -0
  558. package/fjs/types/rtti/parse/types.d.ts +12 -0
  559. package/fjs/types/rtti/parse/types.js +1 -0
  560. package/fjs/types/rtti/proof.f.d.mts +8 -0
  561. package/fjs/types/rtti/proof.f.mjs +20 -0
  562. package/fjs/types/rtti/ts/module.f.d.mts +34 -0
  563. package/fjs/types/rtti/ts/module.f.mjs +64 -0
  564. package/fjs/types/rtti/ts/proof.f.mjs +88 -0
  565. package/fjs/types/rtti/ts/types.d.ts +88 -0
  566. package/fjs/types/rtti/ts/types.js +1 -0
  567. package/fjs/types/rtti/types.d.ts +43 -0
  568. package/fjs/types/rtti/types.js +1 -0
  569. package/fjs/types/rtti/validate/module.f.d.mts +6 -0
  570. package/fjs/types/rtti/validate/module.f.mjs +169 -0
  571. package/fjs/types/rtti/validate/proof.f.d.mts +125 -0
  572. package/fjs/types/rtti/validate/proof.f.mjs +437 -0
  573. package/fjs/types/rtti/validate/types.d.ts +6 -0
  574. package/fjs/types/rtti/validate/types.js +1 -0
  575. package/fjs/types/sorted_list/module.f.d.mts +43 -0
  576. package/fjs/types/sorted_list/module.f.mjs +110 -0
  577. package/fjs/types/sorted_list/proof.f.d.mts +5 -0
  578. package/fjs/types/sorted_list/proof.f.mjs +52 -0
  579. package/fjs/types/sorted_list/types.d.ts +15 -0
  580. package/fjs/types/sorted_list/types.js +6 -0
  581. package/fjs/types/sorted_set/module.f.d.mts +24 -0
  582. package/fjs/types/sorted_set/module.f.mjs +56 -0
  583. package/fjs/types/sorted_set/proof.f.d.mts +7 -0
  584. package/fjs/types/sorted_set/proof.f.mjs +77 -0
  585. package/fjs/types/sorted_set/types.d.ts +6 -0
  586. package/fjs/types/sorted_set/types.js +6 -0
  587. package/fjs/types/string/module.f.d.mts +36 -0
  588. package/fjs/types/string/module.f.mjs +58 -0
  589. package/fjs/types/string/proof.f.mjs +76 -0
  590. package/fjs/types/string_set/module.f.d.mts +37 -0
  591. package/fjs/types/string_set/module.f.mjs +53 -0
  592. package/fjs/types/string_set/proof.f.mjs +46 -0
  593. package/fjs/types/string_set/types.d.ts +7 -0
  594. package/fjs/types/string_set/types.js +6 -0
  595. package/fjs/types/ts/module.f.d.mts +20 -0
  596. package/fjs/types/ts/module.f.mjs +51 -0
  597. package/fjs/types/ts/proof.f.mjs +97 -0
  598. package/fjs/types/ts/types.d.ts +16 -0
  599. package/fjs/types/ts/types.js +8 -0
  600. package/fjs/types/uint8array/module.f.d.mts +31 -0
  601. package/fjs/types/uint8array/module.f.mjs +53 -0
  602. package/fjs/types/uint8array/proof.f.d.mts +17 -0
  603. package/fjs/types/uint8array/proof.f.mjs +73 -0
  604. package/fjs/website/module.f.d.mts +8 -0
  605. package/fjs/website/module.f.mjs +24 -0
  606. package/fjs/website/proof.f.mjs +14 -0
  607. package/package.json +12 -10
  608. package/todo/proof.f.d.mts +22 -0
  609. package/todo/proof.f.mjs +59 -0
  610. package/fjs/asn.1/module.f.d.ts +0 -62
  611. package/fjs/asn.1/module.f.js +0 -278
  612. package/fjs/asn.1/proof.f.js +0 -285
  613. package/fjs/asserts/module.f.d.ts +0 -36
  614. package/fjs/asserts/module.f.js +0 -39
  615. package/fjs/asserts/proof.f.js +0 -18
  616. package/fjs/base_n/module.f.d.ts +0 -45
  617. package/fjs/base_n/module.f.js +0 -72
  618. package/fjs/base_n/proof.f.js +0 -73
  619. package/fjs/basen/base128/module.f.d.ts +0 -20
  620. package/fjs/basen/base128/module.f.js +0 -43
  621. package/fjs/basen/base128/proof.f.js +0 -26
  622. package/fjs/basen/base64/module.f.d.ts +0 -9
  623. package/fjs/basen/base64/module.f.js +0 -71
  624. package/fjs/basen/base64/proof.f.d.ts +0 -16
  625. package/fjs/basen/base64/proof.f.js +0 -139
  626. package/fjs/basen/cbase32/module.f.d.ts +0 -11
  627. package/fjs/basen/cbase32/module.f.js +0 -55
  628. package/fjs/basen/cbase32/proof.f.d.ts +0 -7
  629. package/fjs/basen/cbase32/proof.f.js +0 -62
  630. package/fjs/bnf/data/module.f.d.ts +0 -52
  631. package/fjs/bnf/data/module.f.js +0 -143
  632. package/fjs/bnf/data/proof.f.d.ts +0 -8
  633. package/fjs/bnf/data/proof.f.js +0 -169
  634. package/fjs/bnf/descent/module.f.d.ts +0 -87
  635. package/fjs/bnf/descent/module.f.js +0 -149
  636. package/fjs/bnf/descent/proof.f.d.ts +0 -7
  637. package/fjs/bnf/descent/proof.f.js +0 -368
  638. package/fjs/bnf/ll1/module.f.d.ts +0 -72
  639. package/fjs/bnf/ll1/module.f.js +0 -155
  640. package/fjs/bnf/ll1/proof.f.d.ts +0 -10
  641. package/fjs/bnf/ll1/proof.f.js +0 -375
  642. package/fjs/bnf/module.f.d.ts +0 -165
  643. package/fjs/bnf/module.f.js +0 -174
  644. package/fjs/bnf/proof.f.d.ts +0 -12
  645. package/fjs/bnf/proof.f.js +0 -69
  646. package/fjs/bnf/testlib.f.d.ts +0 -3
  647. package/fjs/bnf/testlib.f.js +0 -138
  648. package/fjs/bnf/token_symbol/module.f.d.ts +0 -38
  649. package/fjs/bnf/token_symbol/module.f.js +0 -48
  650. package/fjs/bnf/token_symbol/proof.f.js +0 -37
  651. package/fjs/cas/cli/module.f.d.ts +0 -6
  652. package/fjs/cas/cli/module.f.js +0 -53
  653. package/fjs/cas/cli/proof.f.d.ts +0 -17
  654. package/fjs/cas/cli/proof.f.js +0 -112
  655. package/fjs/cas/evo/module.f.d.ts +0 -223
  656. package/fjs/cas/evo/module.f.js +0 -455
  657. package/fjs/cas/evo/proof.f.d.ts +0 -47
  658. package/fjs/cas/evo/proof.f.js +0 -707
  659. package/fjs/cas/module.f.d.ts +0 -64
  660. package/fjs/cas/module.f.js +0 -255
  661. package/fjs/cas/proof.f.d.ts +0 -18
  662. package/fjs/cas/proof.f.js +0 -305
  663. package/fjs/ci/bun/module.f.d.ts +0 -2
  664. package/fjs/ci/bun/module.f.js +0 -15
  665. package/fjs/ci/common/module.f.d.ts +0 -88
  666. package/fjs/ci/common/module.f.js +0 -63
  667. package/fjs/ci/config/module.f.d.ts +0 -45
  668. package/fjs/ci/config/module.f.js +0 -80
  669. package/fjs/ci/deno/module.f.d.ts +0 -10
  670. package/fjs/ci/deno/module.f.js +0 -28
  671. package/fjs/ci/deno/proof.f.d.ts +0 -5
  672. package/fjs/ci/deno/proof.f.js +0 -26
  673. package/fjs/ci/module.f.d.ts +0 -13
  674. package/fjs/ci/module.f.js +0 -58
  675. package/fjs/ci/nix/module.f.d.ts +0 -61
  676. package/fjs/ci/nix/module.f.js +0 -92
  677. package/fjs/ci/nix/proof.f.d.ts +0 -23
  678. package/fjs/ci/nix/proof.f.js +0 -109
  679. package/fjs/ci/node/module.f.d.ts +0 -28
  680. package/fjs/ci/node/module.f.js +0 -92
  681. package/fjs/ci/node/proof.f.js +0 -17
  682. package/fjs/ci/proof.f.d.ts +0 -18
  683. package/fjs/ci/proof.f.js +0 -182
  684. package/fjs/ci/rust/module.f.d.ts +0 -3
  685. package/fjs/ci/rust/module.f.js +0 -75
  686. package/fjs/cli/module.f.d.ts +0 -11
  687. package/fjs/cli/module.f.js +0 -34
  688. package/fjs/cli/proof.f.d.ts +0 -14
  689. package/fjs/cli/proof.f.js +0 -111
  690. package/fjs/common/monoid/module.f.d.ts +0 -126
  691. package/fjs/common/monoid/module.f.js +0 -88
  692. package/fjs/common/monoid/proof.f.d.ts +0 -9
  693. package/fjs/common/monoid/proof.f.js +0 -48
  694. package/fjs/crypto/hmac/module.f.d.ts +0 -29
  695. package/fjs/crypto/hmac/module.f.js +0 -56
  696. package/fjs/crypto/hmac/proof.f.js +0 -32
  697. package/fjs/crypto/pow/module.f.d.ts +0 -37
  698. package/fjs/crypto/pow/module.f.js +0 -72
  699. package/fjs/crypto/pow/proof.f.js +0 -111
  700. package/fjs/crypto/secp/module.f.d.ts +0 -85
  701. package/fjs/crypto/secp/module.f.js +0 -176
  702. package/fjs/crypto/secp/proof.f.d.ts +0 -8
  703. package/fjs/crypto/secp/proof.f.js +0 -124
  704. package/fjs/crypto/sha2/module.f.d.ts +0 -102
  705. package/fjs/crypto/sha2/module.f.js +0 -266
  706. package/fjs/crypto/sha2/proof.f.d.ts +0 -31
  707. package/fjs/crypto/sha2/proof.f.js +0 -139
  708. package/fjs/crypto/sign/module.f.d.ts +0 -33
  709. package/fjs/crypto/sign/module.f.js +0 -163
  710. package/fjs/crypto/sign/proof.f.d.ts +0 -11
  711. package/fjs/crypto/sign/proof.f.js +0 -562
  712. package/fjs/crypto/vdf/module.f.d.ts +0 -21
  713. package/fjs/crypto/vdf/module.f.js +0 -57
  714. package/fjs/crypto/vdf/proof.f.js +0 -94
  715. package/fjs/dev/module.f.d.ts +0 -57
  716. package/fjs/dev/module.f.js +0 -135
  717. package/fjs/dev/package_json/module.f.d.ts +0 -16
  718. package/fjs/dev/package_json/module.f.js +0 -24
  719. package/fjs/dev/package_json/proof.f.js +0 -28
  720. package/fjs/dev/proof.f.d.ts +0 -13
  721. package/fjs/dev/proof.f.js +0 -77
  722. package/fjs/dev/update/module.f.d.ts +0 -11
  723. package/fjs/dev/update/module.f.js +0 -20
  724. package/fjs/dev/update/proof.f.d.ts +0 -7
  725. package/fjs/dev/update/proof.f.js +0 -35
  726. package/fjs/djs/ast/module.f.d.ts +0 -62
  727. package/fjs/djs/ast/module.f.js +0 -61
  728. package/fjs/djs/ast/proof.f.js +0 -49
  729. package/fjs/djs/examples/input.f.js +0 -4
  730. package/fjs/djs/examples/m.f.js +0 -1
  731. package/fjs/djs/module.f.d.ts +0 -17
  732. package/fjs/djs/module.f.js +0 -22
  733. package/fjs/djs/parser/module.f.d.ts +0 -23
  734. package/fjs/djs/parser/module.f.js +0 -410
  735. package/fjs/djs/parser/proof.f.js +0 -556
  736. package/fjs/djs/proof.f.js +0 -50
  737. package/fjs/djs/serializer/module.f.d.ts +0 -17
  738. package/fjs/djs/serializer/module.f.js +0 -173
  739. package/fjs/djs/serializer/proof.f.js +0 -133
  740. package/fjs/djs/tokenizer/module.f.d.ts +0 -24
  741. package/fjs/djs/tokenizer/module.f.js +0 -472
  742. package/fjs/djs/tokenizer/proof.f.js +0 -1211
  743. package/fjs/djs/transpiler/module.f.d.ts +0 -41
  744. package/fjs/djs/transpiler/module.f.js +0 -88
  745. package/fjs/djs/transpiler/proof.f.js +0 -67
  746. package/fjs/effects/eff/module.f.d.ts +0 -72
  747. package/fjs/effects/eff/module.f.js +0 -46
  748. package/fjs/effects/eff/proof.f.d.ts +0 -11
  749. package/fjs/effects/eff/proof.f.js +0 -58
  750. package/fjs/effects/list/module.f.d.ts +0 -37
  751. package/fjs/effects/list/module.f.js +0 -17
  752. package/fjs/effects/memory/module.f.d.ts +0 -37
  753. package/fjs/effects/memory/module.f.js +0 -24
  754. package/fjs/effects/memory/proof.f.d.ts +0 -6
  755. package/fjs/effects/memory/proof.f.js +0 -50
  756. package/fjs/effects/mock/module.f.d.ts +0 -16
  757. package/fjs/effects/mock/module.f.js +0 -20
  758. package/fjs/effects/module.d.ts +0 -2
  759. package/fjs/effects/module.f.d.ts +0 -408
  760. package/fjs/effects/module.f.js +0 -312
  761. package/fjs/effects/module.js +0 -11
  762. package/fjs/effects/node/memory/module.d.ts +0 -20
  763. package/fjs/effects/node/memory/module.js +0 -44
  764. package/fjs/effects/node/memory/proof.js +0 -29
  765. package/fjs/effects/node/module.d.ts +0 -20
  766. package/fjs/effects/node/module.f.d.ts +0 -300
  767. package/fjs/effects/node/module.f.js +0 -171
  768. package/fjs/effects/node/module.js +0 -305
  769. package/fjs/effects/node/proof.f.d.ts +0 -69
  770. package/fjs/effects/node/proof.f.js +0 -409
  771. package/fjs/effects/node/virtual/module.f.d.ts +0 -49
  772. package/fjs/effects/node/virtual/module.f.js +0 -440
  773. package/fjs/effects/node/virtual/proof.f.d.ts +0 -33
  774. package/fjs/effects/node/virtual/proof.f.js +0 -186
  775. package/fjs/effects/proof.f.d.ts +0 -56
  776. package/fjs/effects/proof.f.js +0 -200
  777. package/fjs/emergent_testing/example.f.d.ts +0 -13
  778. package/fjs/emergent_testing/example.f.js +0 -31
  779. package/fjs/emergent_testing/module.f.d.ts +0 -140
  780. package/fjs/emergent_testing/module.f.js +0 -289
  781. package/fjs/emergent_testing/proof.f.d.ts +0 -67
  782. package/fjs/emergent_testing/proof.f.js +0 -416
  783. package/fjs/fsc/bnf.f.d.ts +0 -2
  784. package/fjs/fsc/bnf.f.js +0 -42
  785. package/fjs/fsc/json.f.d.ts +0 -7
  786. package/fjs/fsc/json.f.js +0 -64
  787. package/fjs/fsc/module.f.d.ts +0 -11
  788. package/fjs/fsc/module.f.js +0 -73
  789. package/fjs/fsc/proof.f.js +0 -104
  790. package/fjs/fsm/module.f.d.ts +0 -17
  791. package/fjs/fsm/module.f.js +0 -55
  792. package/fjs/fsm/proof.f.js +0 -126
  793. package/fjs/js/tokenizer/module.f.d.ts +0 -104
  794. package/fjs/js/tokenizer/module.f.js +0 -547
  795. package/fjs/js/tokenizer/proof.f.d.ts +0 -9
  796. package/fjs/js/tokenizer/proof.f.js +0 -986
  797. package/fjs/mcp/cas/module.f.d.ts +0 -27
  798. package/fjs/mcp/cas/module.f.js +0 -232
  799. package/fjs/mcp/evo/module.f.d.ts +0 -32
  800. package/fjs/mcp/evo/module.f.js +0 -99
  801. package/fjs/mcp/evo/proof.f.d.ts +0 -12
  802. package/fjs/mcp/evo/proof.f.js +0 -147
  803. package/fjs/mcp/module.f.d.ts +0 -56
  804. package/fjs/mcp/module.f.js +0 -69
  805. package/fjs/mcp/proof.f.d.ts +0 -45
  806. package/fjs/mcp/proof.f.js +0 -535
  807. package/fjs/media/html/module.f.d.ts +0 -52
  808. package/fjs/media/html/module.f.js +0 -117
  809. package/fjs/media/html/proof.f.js +0 -65
  810. package/fjs/media/json/module.f.d.ts +0 -64
  811. package/fjs/media/json/module.f.js +0 -109
  812. package/fjs/media/json/parser/module.f.d.ts +0 -21
  813. package/fjs/media/json/parser/module.f.js +0 -194
  814. package/fjs/media/json/parser/proof.f.d.ts +0 -5
  815. package/fjs/media/json/parser/proof.f.js +0 -314
  816. package/fjs/media/json/proof.f.js +0 -98
  817. package/fjs/media/json/schema/module.f.d.ts +0 -78
  818. package/fjs/media/json/schema/module.f.js +0 -96
  819. package/fjs/media/json/schema/proof.f.d.ts +0 -36
  820. package/fjs/media/json/schema/proof.f.js +0 -83
  821. package/fjs/media/json/serializer/module.f.d.ts +0 -28
  822. package/fjs/media/json/serializer/module.f.js +0 -73
  823. package/fjs/media/json/serializer/proof.f.js +0 -94
  824. package/fjs/media/json/tokenizer/module.f.d.ts +0 -15
  825. package/fjs/media/json/tokenizer/module.f.js +0 -63
  826. package/fjs/media/json/tokenizer/proof.f.d.ts +0 -5
  827. package/fjs/media/json/tokenizer/proof.f.js +0 -417
  828. package/fjs/media/module.f.d.ts +0 -119
  829. package/fjs/media/module.f.js +0 -88
  830. package/fjs/media/nix/module.f.d.ts +0 -30
  831. package/fjs/media/nix/module.f.js +0 -166
  832. package/fjs/media/nix/proof.f.js +0 -127
  833. package/fjs/media/proof.f.d.ts +0 -19
  834. package/fjs/media/proof.f.js +0 -127
  835. package/fjs/media/revision/module.f.d.ts +0 -94
  836. package/fjs/media/revision/module.f.js +0 -143
  837. package/fjs/media/revision/proof.f.js +0 -190
  838. package/fjs/media/type/module.f.d.ts +0 -135
  839. package/fjs/media/type/module.f.js +0 -231
  840. package/fjs/media/type/proof.f.js +0 -213
  841. package/fjs/module.f.d.ts +0 -2
  842. package/fjs/module.f.js +0 -50
  843. package/fjs/module.js +0 -4
  844. package/fjs/path/module.f.d.ts +0 -46
  845. package/fjs/path/module.f.js +0 -71
  846. package/fjs/path/proof.f.js +0 -119
  847. package/fjs/proof.f.js +0 -38
  848. package/fjs/protocol/json_rpc/module.f.d.ts +0 -114
  849. package/fjs/protocol/json_rpc/module.f.js +0 -89
  850. package/fjs/protocol/json_rpc/proof.f.js +0 -68
  851. package/fjs/protocol/mcp/module.f.d.ts +0 -239
  852. package/fjs/protocol/mcp/module.f.js +0 -272
  853. package/fjs/protocol/mcp/proof.f.d.ts +0 -34
  854. package/fjs/protocol/mcp/proof.f.js +0 -208
  855. package/fjs/protocol/mcp/stdio/module.f.d.ts +0 -47
  856. package/fjs/protocol/mcp/stdio/module.f.js +0 -78
  857. package/fjs/protocol/mcp/stdio/proof.f.d.ts +0 -13
  858. package/fjs/protocol/mcp/stdio/proof.f.js +0 -143
  859. package/fjs/sul/id/module.f.d.ts +0 -33
  860. package/fjs/sul/id/module.f.js +0 -93
  861. package/fjs/sul/id/proof.f.js +0 -61
  862. package/fjs/sul/level/hash/module.f.d.ts +0 -38
  863. package/fjs/sul/level/hash/module.f.js +0 -43
  864. package/fjs/sul/level/hash/proof.f.d.ts +0 -13
  865. package/fjs/sul/level/hash/proof.f.js +0 -112
  866. package/fjs/sul/level/literal/module.f.d.ts +0 -64
  867. package/fjs/sul/level/literal/module.f.js +0 -88
  868. package/fjs/sul/level/literal/proof.f.js +0 -714
  869. package/fjs/sul/module.f.d.ts +0 -23
  870. package/fjs/sul/module.f.js +0 -46
  871. package/fjs/sul/proof.f.d.ts +0 -9
  872. package/fjs/sul/proof.f.js +0 -47
  873. package/fjs/text/ascii/module.f.d.ts +0 -136
  874. package/fjs/text/ascii/module.f.js +0 -154
  875. package/fjs/text/ascii/proof.f.js +0 -14
  876. package/fjs/text/code_point/module.f.d.ts +0 -65
  877. package/fjs/text/code_point/module.f.js +0 -103
  878. package/fjs/text/code_point/proof.f.js +0 -72
  879. package/fjs/text/module.f.d.ts +0 -40
  880. package/fjs/text/module.f.js +0 -43
  881. package/fjs/text/proof.f.js +0 -44
  882. package/fjs/text/sgr/module.f.d.ts +0 -53
  883. package/fjs/text/sgr/module.f.js +0 -63
  884. package/fjs/text/sgr/proof.f.js +0 -33
  885. package/fjs/text/utf16/module.f.d.ts +0 -161
  886. package/fjs/text/utf16/module.f.js +0 -311
  887. package/fjs/text/utf16/proof.f.d.ts +0 -10
  888. package/fjs/text/utf16/proof.f.js +0 -144
  889. package/fjs/text/utf8/module.f.d.ts +0 -83
  890. package/fjs/text/utf8/module.f.js +0 -247
  891. package/fjs/text/utf8/proof.f.js +0 -217
  892. package/fjs/types/array/module.f.d.ts +0 -49
  893. package/fjs/types/array/module.f.js +0 -42
  894. package/fjs/types/array/proof.f.js +0 -92
  895. package/fjs/types/bigfloat/module.f.d.ts +0 -6
  896. package/fjs/types/bigfloat/module.f.js +0 -69
  897. package/fjs/types/bigfloat/proof.f.js +0 -217
  898. package/fjs/types/bigint/module.f.d.ts +0 -172
  899. package/fjs/types/bigint/module.f.js +0 -251
  900. package/fjs/types/bigint/proof.f.d.ts +0 -37
  901. package/fjs/types/bigint/proof.f.js +0 -400
  902. package/fjs/types/bit_vec/module.f.d.ts +0 -302
  903. package/fjs/types/bit_vec/module.f.js +0 -375
  904. package/fjs/types/bit_vec/proof.f.js +0 -465
  905. package/fjs/types/btree/find/module.f.d.ts +0 -25
  906. package/fjs/types/btree/find/module.f.js +0 -80
  907. package/fjs/types/btree/find/proof.f.d.ts +0 -3
  908. package/fjs/types/btree/find/proof.f.js +0 -108
  909. package/fjs/types/btree/module.f.d.ts +0 -9
  910. package/fjs/types/btree/module.f.js +0 -33
  911. package/fjs/types/btree/proof.f.d.ts +0 -13
  912. package/fjs/types/btree/proof.f.js +0 -64
  913. package/fjs/types/btree/remove/module.f.d.ts +0 -14
  914. package/fjs/types/btree/remove/module.f.js +0 -186
  915. package/fjs/types/btree/remove/proof.f.js +0 -484
  916. package/fjs/types/btree/set/module.f.d.ts +0 -8
  917. package/fjs/types/btree/set/module.f.js +0 -128
  918. package/fjs/types/btree/set/proof.f.js +0 -368
  919. package/fjs/types/btree/types/module.f.d.ts +0 -23
  920. package/fjs/types/btree/types/module.f.js +0 -9
  921. package/fjs/types/byte_set/module.f.d.ts +0 -16
  922. package/fjs/types/byte_set/module.f.js +0 -30
  923. package/fjs/types/byte_set/proof.f.d.ts +0 -11
  924. package/fjs/types/byte_set/proof.f.js +0 -79
  925. package/fjs/types/function/compare/module.f.d.ts +0 -49
  926. package/fjs/types/function/compare/module.f.js +0 -51
  927. package/fjs/types/function/compare/proof.f.js +0 -47
  928. package/fjs/types/function/module.f.d.ts +0 -28
  929. package/fjs/types/function/module.f.js +0 -19
  930. package/fjs/types/function/operator/module.f.d.ts +0 -48
  931. package/fjs/types/function/operator/module.f.js +0 -16
  932. package/fjs/types/function/operator/proof.f.js +0 -53
  933. package/fjs/types/function/proof.f.js +0 -10
  934. package/fjs/types/list/module.f.d.ts +0 -75
  935. package/fjs/types/list/module.f.js +0 -190
  936. package/fjs/types/list/proof.f.d.ts +0 -31
  937. package/fjs/types/list/proof.f.js +0 -330
  938. package/fjs/types/map/module.f.d.ts +0 -2
  939. package/fjs/types/map/module.f.js +0 -22
  940. package/fjs/types/map/proof.f.js +0 -22
  941. package/fjs/types/nibble_set/module.f.d.ts +0 -27
  942. package/fjs/types/nibble_set/module.f.js +0 -25
  943. package/fjs/types/nibble_set/proof.f.js +0 -60
  944. package/fjs/types/nominal/module.f.d.ts +0 -22
  945. package/fjs/types/nominal/module.f.js +0 -13
  946. package/fjs/types/nominal/proof.f.d.ts +0 -4
  947. package/fjs/types/nominal/proof.f.js +0 -48
  948. package/fjs/types/nullable/module.f.d.ts +0 -21
  949. package/fjs/types/nullable/module.f.js +0 -29
  950. package/fjs/types/nullable/proof.f.js +0 -29
  951. package/fjs/types/number/module.f.d.ts +0 -16
  952. package/fjs/types/number/module.f.js +0 -30
  953. package/fjs/types/number/proof.f.js +0 -124
  954. package/fjs/types/object/module.f.d.ts +0 -54
  955. package/fjs/types/object/module.f.js +0 -25
  956. package/fjs/types/object/proof.f.d.ts +0 -4
  957. package/fjs/types/object/proof.f.js +0 -14
  958. package/fjs/types/ordered_map/module.f.d.ts +0 -17
  959. package/fjs/types/ordered_map/module.f.js +0 -22
  960. package/fjs/types/ordered_map/proof.f.js +0 -73
  961. package/fjs/types/patricia_trie/module.f.d.ts +0 -25
  962. package/fjs/types/patricia_trie/module.f.js +0 -35
  963. package/fjs/types/patricia_trie/proof.f.d.ts +0 -13
  964. package/fjs/types/patricia_trie/proof.f.js +0 -121
  965. package/fjs/types/prime_field/module.f.d.ts +0 -62
  966. package/fjs/types/prime_field/module.f.js +0 -112
  967. package/fjs/types/prime_field/proof.f.js +0 -128
  968. package/fjs/types/range/module.f.d.ts +0 -8
  969. package/fjs/types/range/module.f.js +0 -2
  970. package/fjs/types/range/proof.f.js +0 -9
  971. package/fjs/types/range_map/module.f.d.ts +0 -92
  972. package/fjs/types/range_map/module.f.js +0 -82
  973. package/fjs/types/range_map/proof.f.d.ts +0 -6
  974. package/fjs/types/range_map/proof.f.js +0 -151
  975. package/fjs/types/range_set/module.f.d.ts +0 -5
  976. package/fjs/types/range_set/module.f.js +0 -16
  977. package/fjs/types/range_set/proof.f.d.ts +0 -1
  978. package/fjs/types/range_set/proof.f.js +0 -19
  979. package/fjs/types/result/module.d.ts +0 -3
  980. package/fjs/types/result/module.f.d.ts +0 -61
  981. package/fjs/types/result/module.f.js +0 -54
  982. package/fjs/types/result/module.js +0 -19
  983. package/fjs/types/result/proof.f.js +0 -31
  984. package/fjs/types/rtti/common/module.f.d.ts +0 -121
  985. package/fjs/types/rtti/common/module.f.js +0 -94
  986. package/fjs/types/rtti/common/proof.f.d.ts +0 -8
  987. package/fjs/types/rtti/common/proof.f.js +0 -51
  988. package/fjs/types/rtti/module.f.d.ts +0 -75
  989. package/fjs/types/rtti/module.f.js +0 -34
  990. package/fjs/types/rtti/parse/module.f.d.ts +0 -36
  991. package/fjs/types/rtti/parse/module.f.js +0 -114
  992. package/fjs/types/rtti/parse/proof.f.d.ts +0 -115
  993. package/fjs/types/rtti/parse/proof.f.js +0 -334
  994. package/fjs/types/rtti/proof.f.d.ts +0 -5
  995. package/fjs/types/rtti/proof.f.js +0 -16
  996. package/fjs/types/rtti/ts/module.f.d.ts +0 -118
  997. package/fjs/types/rtti/ts/module.f.js +0 -59
  998. package/fjs/types/rtti/ts/proof.f.js +0 -75
  999. package/fjs/types/rtti/validate/module.f.d.ts +0 -4
  1000. package/fjs/types/rtti/validate/module.f.js +0 -74
  1001. package/fjs/types/rtti/validate/proof.f.d.ts +0 -118
  1002. package/fjs/types/rtti/validate/proof.f.js +0 -349
  1003. package/fjs/types/sorted_list/module.f.d.ts +0 -26
  1004. package/fjs/types/sorted_list/module.f.js +0 -51
  1005. package/fjs/types/sorted_list/proof.f.d.ts +0 -4
  1006. package/fjs/types/sorted_list/proof.f.js +0 -46
  1007. package/fjs/types/sorted_set/module.f.d.ts +0 -33
  1008. package/fjs/types/sorted_set/module.f.js +0 -5
  1009. package/fjs/types/sorted_set/proof.f.d.ts +0 -6
  1010. package/fjs/types/sorted_set/proof.f.js +0 -67
  1011. package/fjs/types/string/module.f.d.ts +0 -24
  1012. package/fjs/types/string/module.f.js +0 -35
  1013. package/fjs/types/string/proof.f.js +0 -77
  1014. package/fjs/types/string_set/module.f.d.ts +0 -30
  1015. package/fjs/types/string_set/module.f.js +0 -37
  1016. package/fjs/types/string_set/proof.f.js +0 -43
  1017. package/fjs/types/ts/module.f.d.ts +0 -23
  1018. package/fjs/types/ts/module.f.js +0 -27
  1019. package/fjs/types/ts/proof.f.js +0 -86
  1020. package/fjs/types/uint8array/module.f.d.ts +0 -13
  1021. package/fjs/types/uint8array/module.f.js +0 -34
  1022. package/fjs/types/uint8array/proof.f.d.ts +0 -17
  1023. package/fjs/types/uint8array/proof.f.js +0 -64
  1024. package/fjs/website/module.f.d.ts +0 -3
  1025. package/fjs/website/module.f.js +0 -14
  1026. package/fjs/website/proof.f.js +0 -13
  1027. package/nanvm-lib/tests/proof.f.d.ts +0 -122
  1028. package/nanvm-lib/tests/proof.f.js +0 -330
  1029. package/todo/031-json.f.js +0 -241
  1030. package/todo/proof.f.d.ts +0 -20
  1031. package/todo/proof.f.js +0 -62
  1032. /package/fjs/asn.1/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1033. /package/fjs/asserts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1034. /package/fjs/{base_n/proof.f.d.ts → basen/proof.f.d.mts} +0 -0
  1035. /package/fjs/bnf/token_symbol/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1036. /package/{todo/031-json.f.d.ts → fjs/ci/common/types.js} +0 -0
  1037. /package/fjs/ci/node/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1038. /package/fjs/crypto/hmac/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1039. /package/fjs/crypto/pow/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1040. /package/fjs/crypto/vdf/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1041. /package/fjs/dev/package_json/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1042. /package/fjs/djs/ast/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1043. /package/fjs/djs/examples/{input.f.d.ts → input.f.d.mts} +0 -0
  1044. /package/fjs/djs/examples/{m.f.d.ts → m.f.d.mts} +0 -0
  1045. /package/fjs/djs/parser/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1046. /package/fjs/djs/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1047. /package/fjs/djs/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1048. /package/fjs/djs/tokenizer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1049. /package/fjs/djs/transpiler/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1050. /package/fjs/effects/node/memory/{proof.d.ts → proof.d.mts} +0 -0
  1051. /package/fjs/fsc/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1052. /package/fjs/fsm/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1053. /package/fjs/media/html/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1054. /package/fjs/media/json/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1055. /package/fjs/media/json/serializer/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1056. /package/fjs/media/nix/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1057. /package/fjs/media/revision/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1058. /package/fjs/media/type/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1059. /package/fjs/{module.d.ts → module.d.mts} +0 -0
  1060. /package/fjs/path/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1061. /package/fjs/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1062. /package/fjs/protocol/json_rpc/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1063. /package/fjs/sul/id/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1064. /package/fjs/sul/level/literal/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1065. /package/fjs/text/ascii/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1066. /package/fjs/text/code_point/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1067. /package/fjs/text/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1068. /package/fjs/text/sgr/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1069. /package/fjs/text/utf8/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1070. /package/fjs/types/array/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1071. /package/fjs/types/bigfloat/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1072. /package/fjs/types/bit_vec/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1073. /package/fjs/types/btree/remove/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1074. /package/fjs/types/btree/set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1075. /package/fjs/{basen/base128/proof.f.d.ts → types/function/compare/proof.f.d.mts} +0 -0
  1076. /package/fjs/types/function/operator/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1077. /package/fjs/types/function/{compare/proof.f.d.ts → proof.f.d.mts} +0 -0
  1078. /package/fjs/types/map/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1079. /package/fjs/types/nibble_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1080. /package/fjs/types/nullable/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1081. /package/fjs/types/number/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1082. /package/fjs/types/option/{module.f.d.ts → types.d.ts} +0 -0
  1083. /package/fjs/types/option/{module.f.js → types.js} +0 -0
  1084. /package/fjs/types/ordered_map/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1085. /package/fjs/types/phantom/{module.f.d.ts → types.d.ts} +0 -0
  1086. /package/fjs/types/phantom/{module.f.js → types.js} +0 -0
  1087. /package/fjs/types/prime_field/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1088. /package/fjs/types/{function/proof.f.d.ts → range/proof.f.d.mts} +0 -0
  1089. /package/fjs/types/{range/proof.f.d.ts → range_set/proof.f.d.mts} +0 -0
  1090. /package/fjs/types/result/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1091. /package/fjs/types/rtti/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1092. /package/fjs/types/string/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1093. /package/fjs/types/string_set/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1094. /package/fjs/types/ts/{proof.f.d.ts → proof.f.d.mts} +0 -0
  1095. /package/fjs/website/{proof.f.d.ts → proof.f.d.mts} +0 -0
@@ -1,707 +0,0 @@
1
- import { assert, assertEq } from '../../asserts/module.f.js';
2
- import { pure } from '../../effects/module.f.js';
3
- import { fileCas } from '../module.f.js';
4
- import { sha256 } from '../../crypto/sha2/module.f.js';
5
- import { emptyState, virtual } from '../../effects/node/virtual/module.f.js';
6
- import { vec, vec8 } from '../../types/bit_vec/module.f.js';
7
- import { cBase32ToVec, vecToCBase32 } from '../../basen/cbase32/module.f.js';
8
- import { unwrap } from '../../types/nullable/module.f.js';
9
- import { ok, error } from '../../types/result/module.f.js';
10
- import { nonEmpty, empty as elEmpty } from '../../effects/list/module.f.js';
11
- import { tryUtf8 } from '../../text/module.f.js';
12
- import { dialect as revisionDialect } from '../../media/revision/module.f.js';
13
- import { buildCache, decodeRevisionBlob, initEvo, evo, emptyCache, syncRevision, } from './module.f.js';
14
- const home = '.';
15
- // A `Cas<never>` whose `write` always fails — used to reach `addRevision`'s
16
- // store-write-failure branch, which real `fileCas` has no easy way to trigger.
17
- const writeFailingCas = {
18
- read: () => elEmpty(),
19
- write: () => pure(error('boom')),
20
- list: () => pure([]),
21
- };
22
- // A `Cas<never>` whose `read` yields an error item that is *not* a missing
23
- // shard — what a permission error, a mid-stream I/O failure, or a blob too
24
- // large for `collectRead` to buffer looks like to a caller.
25
- const readFailingCas = {
26
- read: () => nonEmpty(error('boom'), elEmpty()),
27
- write: () => pure(error('write not supported')),
28
- list: () => pure([]),
29
- };
30
- // A `Cas<never>` backed by a fixed set of (hash, content) entries, returned
31
- // from `list()` in exactly the given order — used to control the order
32
- // `buildCache` sees hashes in, independent of any real filesystem's
33
- // (hash-lexical, not causal) directory-listing order.
34
- const fixedCas = (entries) => ({
35
- read: hash => {
36
- const found = entries.find(([h]) => vecToCBase32(h) === vecToCBase32(hash));
37
- return found === undefined
38
- ? nonEmpty(error('not found'), elEmpty())
39
- : nonEmpty(ok(found[1]), elEmpty());
40
- },
41
- write: () => pure(error('write not supported')),
42
- list: () => pure(entries.map(([h]) => h)),
43
- });
44
- export const proof = {
45
- buildCacheEmptyStoreYieldsEmptyCache: () => {
46
- const c = fileCas(sha256)(home);
47
- const [, cache] = virtual(emptyState)(buildCache(c));
48
- assertEq(JSON.stringify(cache), JSON.stringify(emptyCache));
49
- },
50
- buildCacheSkipsNonRevisionBlob: () => {
51
- const c = fileCas(sha256)(home);
52
- const content = vec8(0x41n); // 'A' — valid UTF-8, not revision JSON
53
- const [state1] = virtual(emptyState)(c.write(nonEmpty(ok(content), elEmpty())));
54
- const [, cache] = virtual(state1)(buildCache(c));
55
- assertEq(Object.keys(cache.bySubject).length, 0);
56
- },
57
- decodeRevisionBlobMissingHashIsNull: () => {
58
- const c = fileCas(sha256)(home);
59
- const [, revision] = virtual(emptyState)(decodeRevisionBlob(c)(vec8(0x99n)));
60
- assertEq(revision, null);
61
- },
62
- decodeRevisionBlobNonUtf8IsNull: () => {
63
- const c = fileCas(sha256)(home);
64
- const oddVec = vec(5n)(21n); // not a whole number of bytes
65
- const [state1, w] = virtual(emptyState)(c.write(nonEmpty(ok(oddVec), elEmpty())));
66
- assert(w[0] === 'ok', ['expected write ok', w]);
67
- const [, revision] = virtual(state1)(decodeRevisionBlob(c)(w[1]));
68
- assertEq(revision, null);
69
- },
70
- decodeRevisionBlobInvalidJsonIsNull: () => {
71
- const c = fileCas(sha256)(home);
72
- const content = vec8(0x7bn); // '{' alone: valid UTF-8, not parseable JSON
73
- const [state1, w] = virtual(emptyState)(c.write(nonEmpty(ok(content), elEmpty())));
74
- assert(w[0] === 'ok', ['expected write ok', w]);
75
- const [, revision] = virtual(state1)(decodeRevisionBlob(c)(w[1]));
76
- assertEq(revision, null);
77
- },
78
- decodeRevisionBlobValidRevisionRoundTrips: () => {
79
- const c = fileCas(sha256)(home);
80
- const subjectHash = vecToCBase32(vec8(0x11n));
81
- const text = `{"dialect":"${revisionDialect}","subject":"${subjectHash}","parents":[],"snapshot":"${subjectHash}","generation":0}`;
82
- const bytes = tryUtf8(text);
83
- assert(bytes !== null, 'expected the sample revision text to encode as UTF-8');
84
- const [state1, w] = virtual(emptyState)(c.write(nonEmpty(ok(bytes), elEmpty())));
85
- assert(w[0] === 'ok', ['expected write ok', w]);
86
- const [, revision] = virtual(state1)(decodeRevisionBlob(c)(w[1]));
87
- assert(revision !== null, 'expected a decoded revision');
88
- assertEq(revision?.subject, subjectHash);
89
- },
90
- buildCacheIncludesScannedRevision: () => {
91
- // Unlike the `add`-driven tests below (which fold one revision at a
92
- // time), this seeds a `vnd.fjs.revision` blob directly into the store
93
- // and scans it with `buildCache`, covering the "found a revision"
94
- // branch of the full-store fold.
95
- const c = fileCas(sha256)(home);
96
- const subjectHash = vecToCBase32(vec8(0x12n));
97
- const text = `{"dialect":"${revisionDialect}","subject":"${subjectHash}","parents":[],"snapshot":"${subjectHash}","generation":0}`;
98
- const bytes = tryUtf8(text);
99
- assert(bytes !== null, 'expected the sample revision text to encode as UTF-8');
100
- const [state1, w] = virtual(emptyState)(fileCas(sha256)(home).write(nonEmpty(ok(bytes), elEmpty())));
101
- assert(w[0] === 'ok', ['expected write ok', w]);
102
- const [, cache] = virtual(state1)(buildCache(c));
103
- assertEq(cache.bySubject[subjectHash]?.hashes.length, 1);
104
- assertEq(cache.bySubject[subjectHash]?.hashes[0], vecToCBase32(w[1]));
105
- },
106
- // Regression: `cas.list()` enumerates a real store by hash-sharded path,
107
- // not revision ancestry, so a child's hash can sort (and therefore be
108
- // scanned) before its parent's. `buildCache` must still end up with only
109
- // the child as a head — the whole point of tracking `hashes`/`parents`
110
- // as separate sets (see the module doc) rather than an incremental head
111
- // list.
112
- buildCacheOrderIndependentWhenChildScannedBeforeParent: () => {
113
- const rootHash = vec8(0xaan);
114
- const childHash = vec8(0xbbn);
115
- const rootCBase32 = vecToCBase32(rootHash);
116
- const childCBase32 = vecToCBase32(childHash);
117
- const snapshotHash = vecToCBase32(vec8(0xccn));
118
- const rootText = `{"dialect":"${revisionDialect}","subject":"doc","parents":[],"snapshot":"${snapshotHash}","generation":0}`;
119
- const childText = `{"dialect":"${revisionDialect}","subject":"doc","parents":["${rootCBase32}"],"snapshot":"${snapshotHash}","generation":1}`;
120
- const rootBytes = tryUtf8(rootText);
121
- const childBytes = tryUtf8(childText);
122
- assert(rootBytes !== null && childBytes !== null, 'expected sample revisions to encode as UTF-8');
123
- const cas = fixedCas([[childHash, childBytes], [rootHash, rootBytes]]);
124
- const [state0, cacheKey] = virtual(emptyState)(initEvo(cas));
125
- const [, heads] = virtual(state0)(evo(cas)(cacheKey).head('doc'));
126
- assertEq(heads.length, 1);
127
- assertEq(heads[0], childCBase32);
128
- },
129
- // Regression: `cBase32ToVec` accepts more than one spelling of the same
130
- // hash (case, and the `i`/`l`/`o` alphabet aliases). A parent reference
131
- // recorded in a non-canonical spelling must still demote the parent from
132
- // the head set — `headsOf` compares hash strings directly, so caching
133
- // the parent verbatim (instead of its canonical `vecToCBase32` spelling)
134
- // would leave the parent listed as a head alongside its child.
135
- buildCacheCanonicalizesNonCanonicalParentHashes: () => {
136
- const rootHash = vec8(0xffn);
137
- const rootCanonical = vecToCBase32(rootHash); // "zy" — has letters to uppercase
138
- const rootNonCanonical = rootCanonical.toUpperCase();
139
- assert(rootNonCanonical !== rootCanonical, 'expected the sample hash to contain letters');
140
- const childHash = vec8(0xeen);
141
- const snapshotHash = vecToCBase32(vec8(0xddn));
142
- const rootText = `{"dialect":"${revisionDialect}","subject":"doc","parents":[],"snapshot":"${snapshotHash}","generation":0}`;
143
- const childText = `{"dialect":"${revisionDialect}","subject":"doc","parents":["${rootNonCanonical}"],"snapshot":"${snapshotHash}","generation":1}`;
144
- const rootBytes = tryUtf8(rootText);
145
- const childBytes = tryUtf8(childText);
146
- assert(rootBytes !== null && childBytes !== null, 'expected sample revisions to encode as UTF-8');
147
- const cas = fixedCas([[rootHash, rootBytes], [childHash, childBytes]]);
148
- const [state0, cacheKey] = virtual(emptyState)(initEvo(cas));
149
- const [, heads] = virtual(state0)(evo(cas)(cacheKey).head('doc'));
150
- assertEq(heads.length, 1);
151
- assertEq(heads[0], vecToCBase32(childHash));
152
- },
153
- // Two concurrent children of one root: both become heads, the root stops
154
- // being one. Exercises addRevisionToCache's fold across a first insert
155
- // (no prior heads for the subject), a removal (a parent leaving the head
156
- // set), and a keep (an unrelated existing head surviving the fold).
157
- addRevisionBuildsHeadsAcrossChainAndFork: () => {
158
- const c = fileCas(sha256)(home);
159
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
160
- const e = evo(c)(cacheKey);
161
- const snapshotHash = vecToCBase32(vec8(0x22n));
162
- const rev0 = { parents: [], subject: 'doc', snapshot: snapshotHash };
163
- const [state1, rev0Result] = virtual(state0)(e.add(rev0));
164
- assert(rev0Result[0] === 'ok', ['expected rev0 ok', rev0Result]);
165
- const rev0Hash = rev0Result[1];
166
- // rev1 inherits rev0's snapshot; rev2 states a different one — so the
167
- // two concurrent children are genuinely distinct blobs (both children
168
- // of rev0, same generation), not one deduplicated revision.
169
- const rev1 = { parents: [rev0Hash], subject: 'doc' };
170
- const [state2, rev1Result] = virtual(state1)(e.add(rev1));
171
- assert(rev1Result[0] === 'ok', ['expected rev1 ok', rev1Result]);
172
- const rev1Hash = rev1Result[1];
173
- const rev2 = { parents: [rev0Hash], subject: 'doc', snapshot: vecToCBase32(vec8(0x23n)) };
174
- const [state3, rev2Result] = virtual(state2)(e.add(rev2));
175
- assert(rev2Result[0] === 'ok', ['expected rev2 ok', rev2Result]);
176
- const rev2Hash = rev2Result[1];
177
- const [state4, heads] = virtual(state3)(e.head('doc'));
178
- assertEq(heads.length, 2);
179
- assert(heads.includes(rev1Hash), ['expected rev1 to remain a head', heads]);
180
- assert(heads.includes(rev2Hash), ['expected rev2 to be a head', heads]);
181
- assert(!heads.includes(rev0Hash), ['expected rev0 to no longer be a head', heads]);
182
- const [, subjects] = virtual(state4)(e.list());
183
- assertEq(subjects.length, 1);
184
- assertEq(subjects[0], 'doc');
185
- },
186
- // `list()` and `list(true)` partition subjects by the archived flags of
187
- // their current heads: a lone root revision carrying `archived: true`
188
- // makes its subject archived, one without it leaves the subject active,
189
- // and neither subject appears in the other's result.
190
- listPartitionsSubjectsByHeadArchivedFlag: () => {
191
- const c = fileCas(sha256)(home);
192
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
193
- const e = evo(c)(cacheKey);
194
- const [state1, live] = virtual(state0)(e.add({ parents: [], subject: 'live', snapshot: vecToCBase32(vec8(0x40n)) }));
195
- assert(live[0] === 'ok', ['expected the active add to succeed', live]);
196
- const [state2, gone] = virtual(state1)(e.add({ parents: [], subject: 'gone', snapshot: vecToCBase32(vec8(0x41n)), archived: true }));
197
- assert(gone[0] === 'ok', ['expected the archived add to succeed', gone]);
198
- const [state3, active] = virtual(state2)(e.list());
199
- assertEq(active.length, 1);
200
- assertEq(active[0], 'live');
201
- const [, archived] = virtual(state3)(e.list(true));
202
- assertEq(archived.length, 1);
203
- assertEq(archived[0], 'gone');
204
- },
205
- // Concurrent heads can disagree about `archived`. One unarchived head
206
- // keeps the whole subject active — there is still a head left to build on
207
- // — so the subject stays out of the archived-only result.
208
- listTreatsDisagreeingHeadsAsActive: () => {
209
- const c = fileCas(sha256)(home);
210
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
211
- const e = evo(c)(cacheKey);
212
- const [state1, root] = virtual(state0)(e.add({ parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x42n)) }));
213
- assert(root[0] === 'ok', ['expected root ok', root]);
214
- // The two children differ only in `archived`, which is enough to make
215
- // them distinct blobs, hence two concurrent heads of one root.
216
- const [state2, kept] = virtual(state1)(e.add({ parents: [root[1]], subject: 'doc' }));
217
- assert(kept[0] === 'ok', ['expected the unarchived child ok', kept]);
218
- const [state3, dropped] = virtual(state2)(e.add({ parents: [root[1]], subject: 'doc', archived: true }));
219
- assert(dropped[0] === 'ok', ['expected the archived child ok', dropped]);
220
- const [state4, heads] = virtual(state3)(e.head('doc'));
221
- assertEq(heads.length, 2);
222
- const [state5, active] = virtual(state4)(e.list());
223
- assertEq(active.length, 1);
224
- assertEq(active[0], 'doc');
225
- const [, archived] = virtual(state5)(e.list(true));
226
- assertEq(archived.length, 0);
227
- },
228
- // `archived` is a property of a revision, not of a subject: a subject
229
- // archived at one revision is active again as soon as an unarchived child
230
- // demotes that revision out of the head set.
231
- listIgnoresArchivedRevisionsThatAreNoLongerHeads: () => {
232
- const c = fileCas(sha256)(home);
233
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
234
- const e = evo(c)(cacheKey);
235
- const [state1, root] = virtual(state0)(e.add({ parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x45n)), archived: true }));
236
- assert(root[0] === 'ok', ['expected the archived root ok', root]);
237
- const [state2, revived] = virtual(state1)(e.add({ parents: [root[1]], subject: 'doc' }));
238
- assert(revived[0] === 'ok', ['expected the unarchived child ok', revived]);
239
- const [state3, active] = virtual(state2)(e.list());
240
- assertEq(active.length, 1);
241
- assertEq(active[0], 'doc');
242
- const [, archived] = virtual(state3)(e.list(true));
243
- assertEq(archived.length, 0);
244
- },
245
- // A subject can end up with no current head at all, and a status is a
246
- // statement about heads — so such a subject is neither active nor
247
- // archived and belongs to neither result. Nothing verifies that a stored
248
- // blob actually hashes to the key it sits under, so a hand-crafted or
249
- // corrupt store can present a revision naming its own hash as its parent;
250
- // `fixedCas` reproduces exactly that, which a real `fileCas` cannot.
251
- listExcludesSubjectWithNoCurrentHeads: () => {
252
- const selfHash = vec8(0x43n);
253
- const snapshotHash = vecToCBase32(vec8(0x44n));
254
- const text = `{"dialect":"${revisionDialect}","subject":"doc","parents":["${vecToCBase32(selfHash)}"],"snapshot":"${snapshotHash}","generation":1}`;
255
- const bytes = tryUtf8(text);
256
- assert(bytes !== null, 'expected the sample revision text to encode as UTF-8');
257
- const cas = fixedCas([[selfHash, bytes]]);
258
- const [state0, cacheKey] = virtual(emptyState)(initEvo(cas));
259
- const e = evo(cas)(cacheKey);
260
- const [state1, heads] = virtual(state0)(e.head('doc'));
261
- assertEq(heads.length, 0);
262
- const [state2, active] = virtual(state1)(e.list());
263
- assertEq(active.length, 0);
264
- const [, archived] = virtual(state2)(e.list(true));
265
- assertEq(archived.length, 0);
266
- },
267
- // Adding the exact same revision twice yields the same (deduplicated)
268
- // content hash and must not duplicate the head entry.
269
- addRevisionIdempotentOnDuplicateContent: () => {
270
- const c = fileCas(sha256)(home);
271
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
272
- const e = evo(c)(cacheKey);
273
- const input = { parents: [], subject: 'x', snapshot: vecToCBase32(vec8(0x33n)) };
274
- const [state1, r1] = virtual(state0)(e.add(input));
275
- assert(r1[0] === 'ok', ['expected first add ok', r1]);
276
- const [state2, r2] = virtual(state1)(e.add(input));
277
- assert(r2[0] === 'ok', ['expected second add ok', r2]);
278
- assertEq(r1[1], r2[1]);
279
- const [, heads] = virtual(state2)(e.head('x'));
280
- assertEq(heads.length, 1);
281
- },
282
- // Two `add` calls describing the same logical revision but spelling the
283
- // parent reference differently (canonical vs. an accepted uppercase
284
- // alias) must serialize identically and dedupe to one head — otherwise
285
- // `addRevision` itself would be the source of the very spelling drift
286
- // `canonicalHash` exists to prevent.
287
- addRevisionCanonicalizesParentSpellingBeforeSerializing: () => {
288
- const c = fileCas(sha256)(home);
289
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
290
- const e = evo(c)(cacheKey);
291
- const root = { parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x2en)) };
292
- const [state1, rootResult] = virtual(state0)(e.add(root));
293
- assert(rootResult[0] === 'ok', ['expected root ok', rootResult]);
294
- const rootHash = rootResult[1];
295
- assert(rootHash !== rootHash.toUpperCase(), 'expected the sample hash to contain letters');
296
- const child1 = { parents: [rootHash], subject: 'doc' };
297
- const [state2, child1Result] = virtual(state1)(e.add(child1));
298
- assert(child1Result[0] === 'ok', ['expected child1 ok', child1Result]);
299
- const child2 = { parents: [rootHash.toUpperCase()], subject: 'doc' };
300
- const [state3, child2Result] = virtual(state2)(e.add(child2));
301
- assert(child2Result[0] === 'ok', ['expected child2 ok', child2Result]);
302
- assertEq(child1Result[1], child2Result[1]);
303
- const [, heads] = virtual(state3)(e.head('doc'));
304
- assertEq(heads.length, 1);
305
- assertEq(heads[0], child1Result[1]);
306
- },
307
- // `subject` omitted with exactly one parent is inherited from that
308
- // parent's own `subject`.
309
- addRevisionResolvesSubjectFromSingleParent: () => {
310
- const c = fileCas(sha256)(home);
311
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
312
- const e = evo(c)(cacheKey);
313
- const root = { parents: [], subject: 'inherit-me', snapshot: vecToCBase32(vec8(0x44n)) };
314
- const [state1, rootResult] = virtual(state0)(e.add(root));
315
- assert(rootResult[0] === 'ok', ['expected root ok', rootResult]);
316
- const rootHash = rootResult[1];
317
- const child = { parents: [rootHash] };
318
- const [state2, childResult] = virtual(state1)(e.add(child));
319
- assert(childResult[0] === 'ok', ['expected child ok', childResult]);
320
- const childHash = childResult[1];
321
- const [, heads] = virtual(state2)(e.head('inherit-me'));
322
- assertEq(heads.length, 1);
323
- assertEq(heads[0], childHash);
324
- },
325
- // `add` writes both inference-derived fields explicitly: a root gets
326
- // `generation` 0 and, with no input `snapshot`, its `subject` (a hash) as
327
- // the snapshot reference; a single-parent child with no input `snapshot`
328
- // inherits the parent's stored snapshot and gets `generation` 1.
329
- addComputesGenerationAndResolvesSnapshot: () => {
330
- const c = fileCas(sha256)(home);
331
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
332
- const e = evo(c)(cacheKey);
333
- const subjectHash = vecToCBase32(vec8(0x71n));
334
- const [state1, rootResult] = virtual(state0)(e.add({ parents: [], subject: subjectHash }));
335
- assert(rootResult[0] === 'ok', ['expected root ok', rootResult]);
336
- const rootHashVec = unwrap(cBase32ToVec(rootResult[1]));
337
- const [state2, root] = virtual(state1)(decodeRevisionBlob(c)(rootHashVec));
338
- assert(root !== null, 'expected the stored root to decode');
339
- assertEq(root?.generation, 0);
340
- assertEq(root?.snapshot, subjectHash);
341
- const [state3, childResult] = virtual(state2)(e.add({ parents: [rootResult[1]], subject: subjectHash }));
342
- assert(childResult[0] === 'ok', ['expected child ok', childResult]);
343
- const childHashVec = unwrap(cBase32ToVec(childResult[1]));
344
- const [, child] = virtual(state3)(decodeRevisionBlob(c)(childHashVec));
345
- assert(child !== null, 'expected the stored child to decode');
346
- assertEq(child?.generation, 1);
347
- assertEq(child?.snapshot, subjectHash);
348
- },
349
- // A merge takes `1 + max(parents' generations)`: a parent at generation 2
350
- // and one at generation 1 yield generation 3.
351
- addComputesMergeGenerationFromMaxOfParents: () => {
352
- const c = fileCas(sha256)(home);
353
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
354
- const e = evo(c)(cacheKey);
355
- const snap = vecToCBase32(vec8(0x72n));
356
- // Mainline chain: root(gen0) → a(gen1) → b(gen2).
357
- const [state1, root] = virtual(state0)(e.add({ parents: [], subject: 'm', snapshot: snap }));
358
- assert(root[0] === 'ok', ['expected root ok', root]);
359
- const [state2, a] = virtual(state1)(e.add({ parents: [root[1]], subject: 'm', snapshot: snap }));
360
- assert(a[0] === 'ok', ['expected a ok', a]);
361
- const [state3, b] = virtual(state2)(e.add({ parents: [a[1]], subject: 'm', snapshot: snap }));
362
- assert(b[0] === 'ok', ['expected b ok', b]);
363
- // Side branch off root: c(gen1).
364
- const [state4, cRev] = virtual(state3)(e.add({ parents: [root[1]], subject: 'm', snapshot: snap }));
365
- assert(cRev[0] === 'ok', ['expected c ok', cRev]);
366
- // Merge of b(gen2) and c(gen1) → gen3.
367
- const [state5, merge] = virtual(state4)(e.add({ parents: [b[1], cRev[1]], subject: 'm', snapshot: snap }));
368
- assert(merge[0] === 'ok', ['expected merge ok', merge]);
369
- const mergeHashVec = unwrap(cBase32ToVec(merge[1]));
370
- const [, mergeRev] = virtual(state5)(decodeRevisionBlob(c)(mergeHashVec));
371
- assert(mergeRev !== null, 'expected the stored merge to decode');
372
- assertEq(mergeRev?.generation, 3);
373
- },
374
- // `generation` is an input field only so a value read back by
375
- // `revision` round-trips into `add` unchanged: `add` never reads it, and
376
- // supplying a wrong one must not reach the stored blob — the revision is
377
- // byte-identical to the same `add` without it.
378
- addIgnoresSuppliedGeneration: () => {
379
- const c = fileCas(sha256)(home);
380
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
381
- const e = evo(c)(cacheKey);
382
- const subjectHash = vecToCBase32(vec8(0x73n));
383
- const [state1, claimed] = virtual(state0)(e.add({ parents: [], subject: subjectHash, generation: 42 }));
384
- assert(claimed[0] === 'ok', ['expected add ok', claimed]);
385
- const [state2, plain] = virtual(state1)(e.add({ parents: [], subject: subjectHash }));
386
- assert(plain[0] === 'ok', ['expected add ok', plain]);
387
- assertEq(claimed[1], plain[1]);
388
- const [, revision] = virtual(state2)(e.revision(claimed[1]));
389
- assert(revision[0] === 'ok', ['expected revision ok', revision]);
390
- assertEq(revision[1].generation, 0);
391
- },
392
- addRevisionSubjectRequiredForZeroParents: () => {
393
- const c = fileCas(sha256)(home);
394
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
395
- const e = evo(c)(cacheKey);
396
- const [, result] = virtual(state0)(e.add({ parents: [] }));
397
- assertEq(result[0], 'error');
398
- assert(result[0] === 'error' && result[1].includes('subject is required'), ['unexpected message', result]);
399
- },
400
- // Zero parents and no input `snapshot`: `resolveSnapshot` falls back to
401
- // `subject` as the reference, which must itself be a hash. A subject with
402
- // characters outside the cbase32 alphabet ('not-a-hash!') therefore has
403
- // nothing to resolve the snapshot to and is an error — the format requires
404
- // an explicit `snapshot`.
405
- addRevisionNonHashSubjectWithoutSnapshotIsError: () => {
406
- const c = fileCas(sha256)(home);
407
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
408
- const e = evo(c)(cacheKey);
409
- const [, result] = virtual(state0)(e.add({ parents: [], subject: 'not-a-hash!' }));
410
- assertEq(result[0], 'error');
411
- assert(result[0] === 'error' && result[1].includes('subject must be a valid hash'), ['unexpected message', result]);
412
- },
413
- addRevisionInvalidParentHashIsError: () => {
414
- const c = fileCas(sha256)(home);
415
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
416
- const e = evo(c)(cacheKey);
417
- const [, result] = virtual(state0)(e.add({ parents: ['not a valid cbase32!'] }));
418
- assertEq(result[0], 'error');
419
- assert(result[0] === 'error' && result[1].includes('invalid parent hash'), ['unexpected message', result]);
420
- },
421
- addRevisionParentNotARevisionIsError: () => {
422
- const c = fileCas(sha256)(home);
423
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
424
- const e = evo(c)(cacheKey);
425
- const missingParent = vecToCBase32(vec8(0x55n));
426
- const [, result] = virtual(state0)(e.add({ parents: [missingParent] }));
427
- assertEq(result[0], 'error');
428
- assert(result[0] === 'error' && result[1].includes('parent is not a revision blob'), ['unexpected message', result]);
429
- },
430
- // An explicit `subject` must not bypass parent validation: a missing
431
- // parent is still an error even though `subject` alone would otherwise
432
- // resolve without looking at any parent.
433
- addRevisionValidatesParentsEvenWithExplicitSubject: () => {
434
- const c = fileCas(sha256)(home);
435
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
436
- const e = evo(c)(cacheKey);
437
- const missingParent = vecToCBase32(vec8(0x66n));
438
- const [, result] = virtual(state0)(e.add({ parents: [missingParent], subject: 'doc' }));
439
- assertEq(result[0], 'error');
440
- assert(result[0] === 'error' && result[1].includes('parent is not a revision blob'), ['unexpected message', result]);
441
- },
442
- // A revision models one step in the evolution of a single subject: a
443
- // parent that actually belongs to a *different* subject must be
444
- // rejected, even though it exists and is a valid revision — otherwise
445
- // the new revision would silently graft onto an unrelated object's
446
- // history, and head demotion (scoped to the child's own subject) would
447
- // never remove the parent from its real subject's head set.
448
- addRevisionRejectsCrossSubjectParent: () => {
449
- const c = fileCas(sha256)(home);
450
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
451
- const e = evo(c)(cacheKey);
452
- const rootA = { parents: [], subject: 'A', snapshot: vecToCBase32(vec8(0x67n)) };
453
- const [state1, rootAResult] = virtual(state0)(e.add(rootA));
454
- assert(rootAResult[0] === 'ok', ['expected rootA ok', rootAResult]);
455
- const [, result] = virtual(state1)(e.add({ parents: [rootAResult[1]], subject: 'B' }));
456
- assertEq(result[0], 'error');
457
- assert(result[0] === 'error' && result[1].includes('different subject'), ['unexpected message', result]);
458
- },
459
- // With multiple parents, a failure on an earlier one short-circuits the
460
- // fold — the second (here, a well-formed but nonexistent) parent is
461
- // never even looked up.
462
- addRevisionShortCircuitsOnFirstInvalidParentAmongMultiple: () => {
463
- const c = fileCas(sha256)(home);
464
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
465
- const e = evo(c)(cacheKey);
466
- const missingParent = vecToCBase32(vec8(0x99n));
467
- const [, result] = virtual(state0)(e.add({ parents: ['not a valid cbase32!', missingParent], subject: 'doc' }));
468
- assertEq(result[0], 'error');
469
- assert(result[0] === 'error' && result[1].includes('invalid parent hash'), ['unexpected message', result]);
470
- },
471
- // Two *valid* parents without an explicit `snapshot` cannot resolve one
472
- // (no single parent snapshot to inherit) — a distinct failure from a
473
- // missing/invalid parent, reported by `resolveSnapshot` at the write
474
- // boundary now that the format requires an explicit `snapshot`.
475
- addRevisionInvalidReferencesIsError: () => {
476
- const c = fileCas(sha256)(home);
477
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
478
- const e = evo(c)(cacheKey);
479
- const rootA = { parents: [], subject: 'merge', snapshot: vecToCBase32(vec8(0x77n)) };
480
- const [state1, rootAResult] = virtual(state0)(e.add(rootA));
481
- assert(rootAResult[0] === 'ok', ['expected rootA ok', rootAResult]);
482
- const rootB = { parents: [], subject: 'merge', snapshot: vecToCBase32(vec8(0x88n)) };
483
- const [state2, rootBResult] = virtual(state1)(e.add(rootB));
484
- assert(rootBResult[0] === 'ok', ['expected rootB ok', rootBResult]);
485
- const [, result] = virtual(state2)(e.add({ parents: [rootAResult[1], rootBResult[1]], subject: 'merge' }));
486
- assertEq(result[0], 'error');
487
- assert(result[0] === 'error' && !result[1].includes('parent is not a revision blob'), ['unexpected message', result]);
488
- },
489
- addRevisionTooLargeToEncodeIsError: () => {
490
- const c = fileCas(sha256)(home);
491
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
492
- const e = evo(c)(cacheKey);
493
- const hugeSubject = 'x'.repeat(200_000);
494
- const input = { parents: [], subject: hugeSubject, snapshot: vecToCBase32(vec8(0x88n)) };
495
- const [, result] = virtual(state0)(e.add(input));
496
- assertEq(result[0], 'error');
497
- assert(result[0] === 'error' && result[1] === 'revision too large to encode', ['unexpected message', result]);
498
- },
499
- addRevisionWriteFailureIsError: () => {
500
- const [, cacheKey] = virtual(emptyState)(initEvo(writeFailingCas));
501
- const e = evo(writeFailingCas)(cacheKey);
502
- const [, result] = virtual(emptyState)(e.add({ parents: [], subject: vecToCBase32(vec8(0x99n)) }));
503
- assertEq(result[0], 'error');
504
- assert(result[0] === 'error' && result[1] === 'failed to write revision to CAS', ['unexpected message', result]);
505
- },
506
- // Every way `revision` can fail is its own message, not one `null`: an
507
- // undecodable hash, a hash the store has nothing under, a read that failed
508
- // for any other reason, and a blob that is not a revision.
509
- // `decodeRevisionBlob` collapses all but the first (it exists to scan
510
- // stores of arbitrary content); this read keeps them apart.
511
- revisionInvalidHashIsError: () => {
512
- const c = fileCas(sha256)(home);
513
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
514
- const e = evo(c)(cacheKey);
515
- const [, result] = virtual(state0)(e.revision('not a valid cbase32!'));
516
- assertEq(result[0], 'error');
517
- assert(result[0] === 'error' && result[1].includes('invalid hash'), ['unexpected message', result]);
518
- },
519
- revisionMissingHashIsError: () => {
520
- const c = fileCas(sha256)(home);
521
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
522
- const e = evo(c)(cacheKey);
523
- const [, result] = virtual(state0)(e.revision(vecToCBase32(vec8(0x9an))));
524
- assertEq(result[0], 'error');
525
- assert(result[0] === 'error' && result[1].includes('revision not found'), ['unexpected message', result]);
526
- },
527
- // Regression: a read failure that is not a missing shard — a permission or
528
- // mid-stream I/O error, or a blob too large to buffer into one `Vec` —
529
- // must not be reported as "not found". The blob may well be there; saying
530
- // it is absent would be a false answer, not merely a vague one.
531
- revisionReadFailureIsNotReportedAsMissing: () => {
532
- const [state0, cacheKey] = virtual(emptyState)(initEvo(readFailingCas));
533
- const e = evo(readFailingCas)(cacheKey);
534
- const [, result] = virtual(state0)(e.revision(vecToCBase32(vec8(0x9bn))));
535
- assertEq(result[0], 'error');
536
- assert(result[0] === 'error' && result[1].includes('failed to read revision'), ['unexpected message', result]);
537
- },
538
- revisionNonRevisionBlobIsError: () => {
539
- const c = fileCas(sha256)(home);
540
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
541
- const e = evo(c)(cacheKey);
542
- const content = vec8(0x41n); // 'A' — valid UTF-8, not revision JSON
543
- const [state1, w] = virtual(state0)(c.write(nonEmpty(ok(content), elEmpty())));
544
- assert(w[0] === 'ok', ['expected write ok', w]);
545
- const [, result] = virtual(state1)(e.revision(vecToCBase32(w[1])));
546
- assertEq(result[0], 'error');
547
- assert(result[0] === 'error' && result[1].includes('not a revision blob'), ['unexpected message', result]);
548
- },
549
- // A blob written by somebody else can spell its references in any accepted
550
- // cbase32 alias (case, `i`/`l`/`o`). What `revision` returns is
551
- // canonicalized, so a client can compare it against `head` output
552
- // directly instead of knowing about cbase32 aliasing.
553
- revisionCanonicalizesReferenceSpellings: () => {
554
- const c = fileCas(sha256)(home);
555
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
556
- const e = evo(c)(cacheKey);
557
- const parentCanonical = vecToCBase32(vec8(0xffn));
558
- const snapshotCanonical = vecToCBase32(vec8(0xfen));
559
- const parentAlias = parentCanonical.toUpperCase();
560
- const snapshotAlias = snapshotCanonical.toUpperCase();
561
- assert(parentAlias !== parentCanonical && snapshotAlias !== snapshotCanonical, 'expected the sample hashes to contain letters');
562
- const text = `{"dialect":"${revisionDialect}","subject":"doc","parents":["${parentAlias}"],"snapshot":"${snapshotAlias}","generation":1}`;
563
- const bytes = tryUtf8(text);
564
- assert(bytes !== null, 'expected the sample revision text to encode as UTF-8');
565
- const [state1, w] = virtual(state0)(c.write(nonEmpty(ok(bytes), elEmpty())));
566
- assert(w[0] === 'ok', ['expected write ok', w]);
567
- const [, result] = virtual(state1)(e.revision(vecToCBase32(w[1])));
568
- assert(result[0] === 'ok', ['expected revision ok', result]);
569
- assertEq(result[1].parents.length, 1);
570
- assertEq(result[1].parents[0], parentCanonical);
571
- assertEq(result[1].snapshot, snapshotCanonical);
572
- assertEq(result[1].subject, 'doc');
573
- assertEq(result[1].archived, undefined);
574
- },
575
- // What you add is what you get back: every field of a stored revision
576
- // comes back in the same `RevisionData` shape `add` takes, so the value
577
- // can be added again unchanged — same content, same hash.
578
- revisionRoundTripsThroughAdd: () => {
579
- const c = fileCas(sha256)(home);
580
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
581
- const e = evo(c)(cacheKey);
582
- const subjectHash = vecToCBase32(vec8(0x74n));
583
- const [state1, root] = virtual(state0)(e.add({ parents: [], subject: subjectHash }));
584
- assert(root[0] === 'ok', ['expected root ok', root]);
585
- const [state2, child] = virtual(state1)(e.add({ parents: [root[1]], archived: true }));
586
- assert(child[0] === 'ok', ['expected child ok', child]);
587
- const [state3, result] = virtual(state2)(e.revision(child[1]));
588
- assert(result[0] === 'ok', ['expected revision ok', result]);
589
- assertEq(result[1].subject, subjectHash);
590
- assertEq(result[1].snapshot, subjectHash);
591
- assertEq(result[1].generation, 1);
592
- assertEq(result[1].archived, true);
593
- assertEq(result[1].parents.length, 1);
594
- assertEq(result[1].parents[0], root[1]);
595
- const [, readded] = virtual(state3)(e.add(result[1]));
596
- assert(readded[0] === 'ok', ['expected re-add ok', readded]);
597
- assertEq(readded[1], child[1]);
598
- },
599
- revisionLockRoundTripsAndCanonicalizes: () => {
600
- const c = fileCas(sha256)(home);
601
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
602
- const e = evo(c)(cacheKey);
603
- const canonical = vecToCBase32(vec8(0xffn));
604
- const alias = canonical.toUpperCase();
605
- const [state1, added] = virtual(state0)(e.add({
606
- parents: [], subject: 'doc', snapshot: canonical,
607
- lock: { dependency: alias },
608
- }));
609
- assert(added[0] === 'ok', ['expected add ok', added]);
610
- const [, result] = virtual(state1)(e.revision(added[1]));
611
- assert(result[0] === 'ok', ['expected revision ok', result]);
612
- assertEq(result[1].lock?.dependency, canonical);
613
- },
614
- revisionAbsentAndEmptyLocksRemainDistinct: () => {
615
- const c = fileCas(sha256)(home);
616
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
617
- const e = evo(c)(cacheKey);
618
- const snapshot = vecToCBase32(vec8(0x42n));
619
- const [state1, absent] = virtual(state0)(e.add({ parents: [], subject: 'absent', snapshot }));
620
- assert(absent[0] === 'ok', ['expected add ok', absent]);
621
- const [state2, empty] = virtual(state1)(e.add({ parents: [], subject: 'empty', snapshot, lock: {} }));
622
- assert(empty[0] === 'ok', ['expected add ok', empty]);
623
- const [state3, absentRead] = virtual(state2)(e.revision(absent[1]));
624
- assert(absentRead[0] === 'ok', ['expected revision ok', absentRead]);
625
- const [, emptyRead] = virtual(state3)(e.revision(empty[1]));
626
- assert(emptyRead[0] === 'ok', ['expected revision ok', emptyRead]);
627
- assertEq(absentRead[1].lock, undefined);
628
- assertEq(Object.keys(emptyRead[1].lock ?? {}).length, 0);
629
- },
630
- revisionInvalidLockValueIsRejected: () => {
631
- const c = fileCas(sha256)(home);
632
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
633
- const e = evo(c)(cacheKey);
634
- const [, result] = virtual(state0)(e.add({
635
- parents: [], subject: 'doc', snapshot: vecToCBase32(vec8(0x42n)),
636
- lock: { dependency: 'not a hash!' },
637
- }));
638
- assertEq(result[0], 'error');
639
- },
640
- equivalentLockOrdersReuseOneCasAddress: () => {
641
- const c = fileCas(sha256)(home);
642
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
643
- const e = evo(c)(cacheKey);
644
- const a = vecToCBase32(vec8(0x1an));
645
- const b = vecToCBase32(vec8(0x2bn));
646
- const snapshot = vecToCBase32(vec8(0x3cn));
647
- const [state1, first] = virtual(state0)(e.add({ parents: [], subject: 'doc', snapshot, lock: { '2': b, '10': a } }));
648
- assert(first[0] === 'ok', ['expected add ok', first]);
649
- const [, second] = virtual(state1)(e.add({ lock: { '10': a, '2': b }, snapshot, subject: 'doc', parents: [] }));
650
- assert(second[0] === 'ok', ['expected add ok', second]);
651
- assertEq(second[1], first[1]);
652
- },
653
- // A raw CAS write (e.g. `cas_add`) of valid revision content is folded
654
- // into the cache exactly as `addRevision` would, without going through
655
- // `evo.add` — this is what keeps `cas_add` and `evo_add` writes to the
656
- // same store consistent (see `fjs/mcp`).
657
- syncRevisionFoldsValidRevisionIntoCache: () => {
658
- const c = fileCas(sha256)(home);
659
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
660
- const subjectHash = vecToCBase32(vec8(0x13n));
661
- const text = `{"dialect":"${revisionDialect}","subject":"${subjectHash}","parents":[],"snapshot":"${subjectHash}","generation":0}`;
662
- const bytes = tryUtf8(text);
663
- assert(bytes !== null, 'expected sample revision to encode as UTF-8');
664
- const hashVec = vec8(0x14n);
665
- const [state1] = virtual(state0)(syncRevision(cacheKey)(hashVec)(bytes));
666
- const [, heads] = virtual(state1)(evo(c)(cacheKey).head(subjectHash));
667
- assertEq(heads.length, 1);
668
- assertEq(heads[0], vecToCBase32(hashVec));
669
- },
670
- syncRevisionIgnoresNonRevisionContent: () => {
671
- const c = fileCas(sha256)(home);
672
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
673
- const [state1] = virtual(state0)(syncRevision(cacheKey)(vec8(0x15n))(vec8(0x41n)));
674
- const [, subjects] = virtual(state1)(evo(c)(cacheKey).list());
675
- assertEq(subjects.length, 0);
676
- },
677
- evoHeadUnknownSubjectIsEmpty: () => {
678
- const c = fileCas(sha256)(home);
679
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
680
- const e = evo(c)(cacheKey);
681
- const [, heads] = virtual(state0)(e.head('nope'));
682
- assertEq(heads.length, 0);
683
- },
684
- // Regression: subjects are arbitrary caller-supplied strings, so one can
685
- // collide with an inherited `Object.prototype` name. Plain bracket
686
- // indexing on the `bySubject` map would return the inherited value
687
- // (e.g. the `toString` function) instead of "no entry yet", crashing on
688
- // `.hashes` — the cache must use an own-property lookup instead.
689
- evoHeadUnknownPrototypeNamedSubjectIsEmpty: () => {
690
- const c = fileCas(sha256)(home);
691
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
692
- const e = evo(c)(cacheKey);
693
- const [, heads] = virtual(state0)(e.head('constructor'));
694
- assertEq(heads.length, 0);
695
- },
696
- evoAddAndHeadHandlePrototypeNamedSubject: () => {
697
- const c = fileCas(sha256)(home);
698
- const [state0, cacheKey] = virtual(emptyState)(initEvo(c));
699
- const e = evo(c)(cacheKey);
700
- const input = { parents: [], subject: 'toString', snapshot: vecToCBase32(vec8(0x16n)) };
701
- const [state1, result] = virtual(state0)(e.add(input));
702
- assert(result[0] === 'ok', ['expected add ok', result]);
703
- const [, heads] = virtual(state1)(e.head('toString'));
704
- assertEq(heads.length, 1);
705
- assertEq(heads[0], result[1]);
706
- },
707
- };