functionalscript 0.37.0 → 0.38.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 (500) hide show
  1. package/README.md +1 -1
  2. package/{fs → fjs}/asn.1/proof.f.js +32 -94
  3. package/fjs/asserts/module.f.d.ts +36 -0
  4. package/fjs/asserts/module.f.js +39 -0
  5. package/fjs/asserts/proof.f.d.ts +11 -0
  6. package/fjs/asserts/proof.f.js +18 -0
  7. package/{fs → fjs}/base_n/proof.f.js +12 -36
  8. package/{fs → fjs}/basen/base64/proof.f.d.ts +1 -0
  9. package/{fs → fjs}/basen/base64/proof.f.js +15 -1
  10. package/{fs → fjs}/basen/cbase32/proof.f.js +15 -42
  11. package/fjs/bnf/data/module.f.d.ts +52 -0
  12. package/{fs → fjs}/bnf/data/module.f.js +53 -3
  13. package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
  14. package/{fs → fjs}/bnf/data/proof.f.js +54 -19
  15. package/{fs → fjs}/bnf/descent/module.f.d.ts +4 -14
  16. package/fjs/bnf/descent/module.f.js +124 -0
  17. package/{fs → fjs}/bnf/descent/proof.f.d.ts +1 -0
  18. package/{fs → fjs}/bnf/descent/proof.f.js +55 -24
  19. package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
  20. package/{fs → fjs}/bnf/ll1/module.f.js +7 -5
  21. package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
  22. package/{fs → fjs}/bnf/ll1/proof.f.js +27 -10
  23. package/{fs → fjs}/bnf/module.f.d.ts +19 -5
  24. package/{fs → fjs}/bnf/module.f.js +10 -11
  25. package/fjs/bnf/proof.f.js +69 -0
  26. package/{fs → fjs}/bnf/testlib.f.js +2 -2
  27. package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
  28. package/{fs → fjs}/cas/cli/proof.f.js +29 -66
  29. package/fjs/cas/evo/mcp/module.f.d.ts +19 -0
  30. package/fjs/cas/evo/mcp/module.f.js +56 -0
  31. package/fjs/cas/evo/mcp/proof.f.d.ts +9 -0
  32. package/fjs/cas/evo/mcp/proof.f.js +95 -0
  33. package/fjs/cas/evo/module.f.d.ts +138 -0
  34. package/fjs/cas/evo/module.f.js +309 -0
  35. package/fjs/cas/evo/proof.f.d.ts +32 -0
  36. package/fjs/cas/evo/proof.f.js +453 -0
  37. package/fjs/cas/mcp/module.f.d.ts +49 -0
  38. package/{fs → fjs}/cas/mcp/module.f.js +54 -76
  39. package/{fs → fjs}/cas/mcp/proof.f.d.ts +4 -1
  40. package/{fs → fjs}/cas/mcp/proof.f.js +41 -13
  41. package/{fs → fjs}/cas/module.f.d.ts +10 -0
  42. package/{fs → fjs}/cas/module.f.js +27 -1
  43. package/{fs → fjs}/cas/proof.f.d.ts +4 -0
  44. package/{fs → fjs}/cas/proof.f.js +77 -86
  45. package/{fs → fjs}/ci/config/module.f.d.ts +5 -5
  46. package/{fs → fjs}/ci/config/module.f.js +5 -5
  47. package/{fs → fjs}/ci/proof.f.js +14 -9
  48. package/{fs → fjs}/ci/rust/module.f.js +9 -1
  49. package/{fs → fjs}/cli/proof.f.js +22 -63
  50. package/{fs → fjs}/common/monoid/proof.f.js +4 -9
  51. package/{fs → fjs}/crypto/hmac/proof.f.js +4 -12
  52. package/fjs/crypto/pow/proof.f.js +111 -0
  53. package/{fs → fjs}/crypto/secp/proof.f.js +12 -33
  54. package/{fs → fjs}/crypto/sha2/proof.f.js +18 -49
  55. package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
  56. package/{fs → fjs}/crypto/sign/module.f.js +7 -4
  57. package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
  58. package/{fs → fjs}/crypto/vdf/proof.f.js +22 -63
  59. package/{fs → fjs}/dev/package_json/proof.f.js +7 -7
  60. package/{fs → fjs}/dev/proof.f.js +2 -4
  61. package/{fs → fjs}/djs/ast/proof.f.js +4 -12
  62. package/{fs → fjs}/djs/parser/module.f.d.ts +5 -0
  63. package/{fs → fjs}/djs/parser/module.f.js +20 -0
  64. package/{fs → fjs}/djs/parser/proof.f.js +138 -400
  65. package/{fs → fjs}/djs/proof.f.js +13 -36
  66. package/{fs → fjs}/djs/serializer/proof.f.js +14 -39
  67. package/fjs/djs/tokenizer/module.f.d.ts +24 -0
  68. package/fjs/djs/tokenizer/module.f.js +472 -0
  69. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.d.ts +4 -3
  70. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.js +446 -445
  71. package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
  72. package/{fs → fjs}/djs/transpiler/proof.f.js +29 -30
  73. package/{fs → fjs}/effects/memory/proof.f.js +8 -21
  74. package/{fs → fjs}/effects/node/memory/proof.js +5 -12
  75. package/{fs → fjs}/effects/node/module.d.ts +1 -1
  76. package/{fs → fjs}/effects/node/module.f.d.ts +1 -1
  77. package/{fs → fjs}/effects/node/module.js +3 -3
  78. package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
  79. package/{fs → fjs}/effects/node/proof.f.js +106 -292
  80. package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +1 -0
  81. package/{fs → fjs}/effects/node/virtual/proof.f.js +36 -29
  82. package/{fs → fjs}/effects/proof.f.js +16 -45
  83. package/{fs → fjs}/emergent_testing/proof.f.js +7 -7
  84. package/{fs → fjs}/fsc/proof.f.js +12 -34
  85. package/{fs → fjs}/fsm/proof.f.js +5 -12
  86. package/{fs → fjs}/mcp/module.f.d.ts +7 -0
  87. package/{fs → fjs}/mcp/module.f.js +9 -2
  88. package/{fs → fjs}/mcp/proof.f.js +12 -12
  89. package/{fs → fjs}/mcp/stdio/module.f.d.ts +2 -2
  90. package/{fs → fjs}/mcp/stdio/module.f.js +2 -2
  91. package/{fs → fjs}/media/html/proof.f.js +12 -33
  92. package/{fs → fjs}/media/json/parser/module.f.d.ts +5 -0
  93. package/{fs → fjs}/media/json/parser/module.f.js +14 -0
  94. package/{fs → fjs}/media/json/parser/proof.f.js +39 -114
  95. package/{fs → fjs}/media/json/rpc/module.f.js +1 -1
  96. package/{fs → fjs}/media/json/schema/module.f.d.ts +2 -2
  97. package/{fs → fjs}/media/json/schema/module.f.js +23 -39
  98. package/{fs → fjs}/media/json/schema/proof.f.js +3 -6
  99. package/{fs → fjs}/media/json/serializer/proof.f.js +10 -27
  100. package/{fs → fjs}/media/module.f.d.ts +6 -6
  101. package/{fs → fjs}/media/module.f.js +3 -4
  102. package/{fs → fjs}/media/proof.f.js +5 -4
  103. package/{fs → fjs}/media/revision/module.f.d.ts +31 -4
  104. package/{fs → fjs}/media/revision/module.f.js +35 -23
  105. package/{fs → fjs}/media/revision/proof.f.d.ts +10 -8
  106. package/fjs/media/revision/proof.f.js +140 -0
  107. package/{fs → fjs}/media/type/proof.f.js +2 -6
  108. package/{fs → fjs}/module.f.js +1 -1
  109. package/{fs → fjs}/path/proof.f.js +27 -78
  110. package/{fs → fjs}/proof.f.js +2 -0
  111. package/{fs → fjs}/sul/id/proof.f.js +7 -21
  112. package/{fs → fjs}/sul/level/hash/proof.f.js +5 -5
  113. package/{fs → fjs}/sul/level/literal/proof.f.js +12 -26
  114. package/fjs/text/ascii/proof.f.d.ts +6 -0
  115. package/{fs → fjs}/text/ascii/proof.f.js +4 -14
  116. package/{fs → fjs}/text/code_point/module.f.js +10 -10
  117. package/{fs → fjs}/text/proof.f.js +4 -9
  118. package/{fs → fjs}/text/sgr/proof.f.js +6 -15
  119. package/{fs → fjs}/text/utf16/module.f.js +1 -1
  120. package/{fs → fjs}/text/utf16/proof.f.js +23 -66
  121. package/{fs → fjs}/text/utf8/proof.f.js +56 -125
  122. package/{fs → fjs}/types/array/proof.f.js +18 -52
  123. package/fjs/types/bigfloat/proof.f.js +217 -0
  124. package/{fs → fjs}/types/bigint/proof.f.js +49 -145
  125. package/{fs → fjs}/types/bit_vec/proof.f.js +72 -214
  126. package/{fs → fjs}/types/btree/find/proof.f.js +23 -66
  127. package/{fs → fjs}/types/btree/proof.f.js +5 -12
  128. package/{fs → fjs}/types/btree/remove/proof.f.d.ts +2 -0
  129. package/{fs → fjs}/types/btree/remove/proof.f.js +83 -230
  130. package/{fs → fjs}/types/btree/set/module.f.js +5 -2
  131. package/{fs → fjs}/types/btree/set/proof.f.js +35 -24
  132. package/{fs → fjs}/types/byte_set/proof.f.js +22 -63
  133. package/{fs → fjs}/types/function/compare/proof.f.js +13 -36
  134. package/{fs → fjs}/types/function/operator/proof.f.js +17 -48
  135. package/{fs → fjs}/types/function/proof.f.js +2 -3
  136. package/{fs → fjs}/types/list/proof.f.js +55 -163
  137. package/{fs → fjs}/types/map/proof.f.js +4 -12
  138. package/{fs → fjs}/types/nibble_set/proof.f.js +16 -45
  139. package/{fs → fjs}/types/nominal/proof.f.js +5 -10
  140. package/fjs/types/nullable/proof.f.js +29 -0
  141. package/{fs → fjs}/types/number/proof.f.js +9 -24
  142. package/{fs → fjs}/types/object/proof.f.js +3 -6
  143. package/{fs → fjs}/types/patricia_trie/proof.f.js +21 -21
  144. package/{fs → fjs}/types/prime_field/module.f.js +2 -7
  145. package/{fs → fjs}/types/range/module.f.d.ts +1 -1
  146. package/fjs/types/range/module.f.js +2 -0
  147. package/fjs/types/range/proof.f.js +9 -0
  148. package/{fs → fjs}/types/range_map/proof.f.js +28 -81
  149. package/{fs → fjs}/types/result/proof.f.d.ts +3 -2
  150. package/fjs/types/result/proof.f.js +31 -0
  151. package/{fs → fjs}/types/rtti/common/module.f.d.ts +36 -1
  152. package/{fs → fjs}/types/rtti/common/module.f.js +44 -0
  153. package/fjs/types/rtti/common/proof.f.d.ts +8 -0
  154. package/fjs/types/rtti/common/proof.f.js +51 -0
  155. package/{fs → fjs}/types/rtti/parse/module.f.js +13 -22
  156. package/{fs → fjs}/types/rtti/parse/proof.f.js +7 -18
  157. package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
  158. package/{fs → fjs}/types/rtti/validate/module.f.js +8 -29
  159. package/{fs → fjs}/types/rtti/validate/proof.f.js +4 -9
  160. package/{fs → fjs}/types/sorted_list/proof.f.js +8 -21
  161. package/{fs → fjs}/types/sorted_set/proof.f.js +14 -39
  162. package/fjs/types/string/proof.f.js +77 -0
  163. package/fjs/types/string_set/proof.f.js +43 -0
  164. package/{fs → fjs}/types/ts/proof.f.js +15 -42
  165. package/{fs → fjs}/types/uint8array/module.f.js +7 -7
  166. package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
  167. package/{fs → fjs}/types/uint8array/proof.f.js +7 -7
  168. package/{fs → fjs}/website/proof.f.js +3 -6
  169. package/package.json +6 -6
  170. package/fs/asserts/module.f.d.ts +0 -4
  171. package/fs/asserts/module.f.js +0 -9
  172. package/fs/asserts/proof.f.d.ts +0 -8
  173. package/fs/asserts/proof.f.js +0 -51
  174. package/fs/bnf/data/module.f.d.ts +0 -30
  175. package/fs/bnf/descent/module.f.js +0 -119
  176. package/fs/bnf/proof.f.js +0 -104
  177. package/fs/cas/mcp/module.f.d.ts +0 -36
  178. package/fs/crypto/pow/proof.f.js +0 -161
  179. package/fs/djs/tokenizer/module.f.d.ts +0 -12
  180. package/fs/djs/tokenizer/module.f.js +0 -62
  181. package/fs/djs/tokenizer/proof.f.d.ts +0 -7
  182. package/fs/djs/tokenizer/proof.f.js +0 -543
  183. package/fs/djs/tokenizer-new/module.f.d.ts +0 -3
  184. package/fs/djs/tokenizer-new/module.f.js +0 -155
  185. package/fs/media/revision/proof.f.js +0 -119
  186. package/fs/text/ascii/proof.f.d.ts +0 -4
  187. package/fs/types/bigfloat/proof.f.js +0 -348
  188. package/fs/types/nullable/proof.f.js +0 -50
  189. package/fs/types/range/module.f.js +0 -2
  190. package/fs/types/range/proof.f.js +0 -18
  191. package/fs/types/result/proof.f.js +0 -52
  192. package/fs/types/string/proof.f.js +0 -118
  193. package/fs/types/string_set/proof.f.js +0 -82
  194. /package/{fs → fjs}/asn.1/module.f.d.ts +0 -0
  195. /package/{fs → fjs}/asn.1/module.f.js +0 -0
  196. /package/{fs → fjs}/asn.1/proof.f.d.ts +0 -0
  197. /package/{fs → fjs}/base_n/module.f.d.ts +0 -0
  198. /package/{fs → fjs}/base_n/module.f.js +0 -0
  199. /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
  200. /package/{fs → fjs}/basen/base128/module.f.d.ts +0 -0
  201. /package/{fs → fjs}/basen/base128/module.f.js +0 -0
  202. /package/{fs → fjs}/basen/base128/proof.f.d.ts +0 -0
  203. /package/{fs → fjs}/basen/base128/proof.f.js +0 -0
  204. /package/{fs → fjs}/basen/base64/module.f.d.ts +0 -0
  205. /package/{fs → fjs}/basen/base64/module.f.js +0 -0
  206. /package/{fs → fjs}/basen/cbase32/module.f.d.ts +0 -0
  207. /package/{fs → fjs}/basen/cbase32/module.f.js +0 -0
  208. /package/{fs → fjs}/basen/cbase32/proof.f.d.ts +0 -0
  209. /package/{fs → fjs}/bnf/proof.f.d.ts +0 -0
  210. /package/{fs → fjs}/bnf/testlib.f.d.ts +0 -0
  211. /package/{fs → fjs}/cas/cli/module.f.d.ts +0 -0
  212. /package/{fs → fjs}/cas/cli/module.f.js +0 -0
  213. /package/{fs → fjs}/ci/bun/module.f.d.ts +0 -0
  214. /package/{fs → fjs}/ci/bun/module.f.js +0 -0
  215. /package/{fs → fjs}/ci/common/module.f.d.ts +0 -0
  216. /package/{fs → fjs}/ci/common/module.f.js +0 -0
  217. /package/{fs → fjs}/ci/deno/module.f.d.ts +0 -0
  218. /package/{fs → fjs}/ci/deno/module.f.js +0 -0
  219. /package/{fs → fjs}/ci/module.f.d.ts +0 -0
  220. /package/{fs → fjs}/ci/module.f.js +0 -0
  221. /package/{fs → fjs}/ci/node/module.f.d.ts +0 -0
  222. /package/{fs → fjs}/ci/node/module.f.js +0 -0
  223. /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
  224. /package/{fs → fjs}/ci/playwright/module.f.js +0 -0
  225. /package/{fs → fjs}/ci/proof.f.d.ts +0 -0
  226. /package/{fs → fjs}/ci/rust/module.f.d.ts +0 -0
  227. /package/{fs → fjs}/cli/module.f.d.ts +0 -0
  228. /package/{fs → fjs}/cli/module.f.js +0 -0
  229. /package/{fs → fjs}/cli/proof.f.d.ts +0 -0
  230. /package/{fs → fjs}/common/monoid/module.f.d.ts +0 -0
  231. /package/{fs → fjs}/common/monoid/module.f.js +0 -0
  232. /package/{fs → fjs}/common/monoid/proof.f.d.ts +0 -0
  233. /package/{fs → fjs}/crypto/hmac/module.f.d.ts +0 -0
  234. /package/{fs → fjs}/crypto/hmac/module.f.js +0 -0
  235. /package/{fs → fjs}/crypto/hmac/proof.f.d.ts +0 -0
  236. /package/{fs → fjs}/crypto/pow/module.f.d.ts +0 -0
  237. /package/{fs → fjs}/crypto/pow/module.f.js +0 -0
  238. /package/{fs → fjs}/crypto/pow/proof.f.d.ts +0 -0
  239. /package/{fs → fjs}/crypto/secp/module.f.d.ts +0 -0
  240. /package/{fs → fjs}/crypto/secp/module.f.js +0 -0
  241. /package/{fs → fjs}/crypto/secp/proof.f.d.ts +0 -0
  242. /package/{fs → fjs}/crypto/sha2/module.f.d.ts +0 -0
  243. /package/{fs → fjs}/crypto/sha2/module.f.js +0 -0
  244. /package/{fs → fjs}/crypto/sha2/proof.f.d.ts +0 -0
  245. /package/{fs → fjs}/crypto/sign/proof.f.d.ts +0 -0
  246. /package/{fs → fjs}/crypto/vdf/module.f.d.ts +0 -0
  247. /package/{fs → fjs}/crypto/vdf/module.f.js +0 -0
  248. /package/{fs → fjs}/crypto/vdf/proof.f.d.ts +0 -0
  249. /package/{fs → fjs}/dev/module.f.d.ts +0 -0
  250. /package/{fs → fjs}/dev/module.f.js +0 -0
  251. /package/{fs → fjs}/dev/package_json/module.f.d.ts +0 -0
  252. /package/{fs → fjs}/dev/package_json/module.f.js +0 -0
  253. /package/{fs → fjs}/dev/package_json/proof.f.d.ts +0 -0
  254. /package/{fs → fjs}/dev/proof.f.d.ts +0 -0
  255. /package/{fs → fjs}/djs/ast/module.f.d.ts +0 -0
  256. /package/{fs → fjs}/djs/ast/module.f.js +0 -0
  257. /package/{fs → fjs}/djs/ast/proof.f.d.ts +0 -0
  258. /package/{fs → fjs}/djs/examples/input.f.d.ts +0 -0
  259. /package/{fs → fjs}/djs/examples/input.f.js +0 -0
  260. /package/{fs → fjs}/djs/examples/m.f.d.ts +0 -0
  261. /package/{fs → fjs}/djs/examples/m.f.js +0 -0
  262. /package/{fs → fjs}/djs/module.f.d.ts +0 -0
  263. /package/{fs → fjs}/djs/module.f.js +0 -0
  264. /package/{fs → fjs}/djs/parser/proof.f.d.ts +0 -0
  265. /package/{fs → fjs}/djs/proof.f.d.ts +0 -0
  266. /package/{fs → fjs}/djs/serializer/module.f.d.ts +0 -0
  267. /package/{fs → fjs}/djs/serializer/module.f.js +0 -0
  268. /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
  269. /package/{fs → fjs}/djs/transpiler/module.f.d.ts +0 -0
  270. /package/{fs → fjs}/djs/transpiler/module.f.js +0 -0
  271. /package/{fs → fjs}/effects/list/module.f.d.ts +0 -0
  272. /package/{fs → fjs}/effects/list/module.f.js +0 -0
  273. /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
  274. /package/{fs → fjs}/effects/memory/module.f.js +0 -0
  275. /package/{fs → fjs}/effects/memory/proof.f.d.ts +0 -0
  276. /package/{fs → fjs}/effects/mock/module.f.d.ts +0 -0
  277. /package/{fs → fjs}/effects/mock/module.f.js +0 -0
  278. /package/{fs → fjs}/effects/module.d.ts +0 -0
  279. /package/{fs → fjs}/effects/module.f.d.ts +0 -0
  280. /package/{fs → fjs}/effects/module.f.js +0 -0
  281. /package/{fs → fjs}/effects/module.js +0 -0
  282. /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
  283. /package/{fs → fjs}/effects/node/memory/module.js +0 -0
  284. /package/{fs → fjs}/effects/node/memory/proof.d.ts +0 -0
  285. /package/{fs → fjs}/effects/node/module.f.js +0 -0
  286. /package/{fs → fjs}/effects/node/virtual/module.f.d.ts +0 -0
  287. /package/{fs → fjs}/effects/node/virtual/module.f.js +0 -0
  288. /package/{fs → fjs}/effects/proof.f.d.ts +0 -0
  289. /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
  290. /package/{fs → fjs}/emergent_testing/all.test.js +0 -0
  291. /package/{fs → fjs}/emergent_testing/example.f.d.ts +0 -0
  292. /package/{fs → fjs}/emergent_testing/example.f.js +0 -0
  293. /package/{fs → fjs}/emergent_testing/module.f.d.ts +0 -0
  294. /package/{fs → fjs}/emergent_testing/module.f.js +0 -0
  295. /package/{fs → fjs}/emergent_testing/proof.f.d.ts +0 -0
  296. /package/{fs → fjs}/emergent_testing/scenarios/all.d.ts +0 -0
  297. /package/{fs → fjs}/emergent_testing/scenarios/all.js +0 -0
  298. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -0
  299. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.js +0 -0
  300. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -0
  301. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.js +0 -0
  302. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.d.ts +0 -0
  303. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.js +0 -0
  304. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.d.ts +0 -0
  305. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.js +0 -0
  306. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.d.ts +0 -0
  307. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.js +0 -0
  308. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.d.ts +0 -0
  309. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.js +0 -0
  310. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.d.ts +0 -0
  311. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.js +0 -0
  312. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.d.ts +0 -0
  313. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.js +0 -0
  314. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.d.ts +0 -0
  315. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.js +0 -0
  316. /package/{fs → fjs}/fsc/bnf.f.d.ts +0 -0
  317. /package/{fs → fjs}/fsc/bnf.f.js +0 -0
  318. /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
  319. /package/{fs → fjs}/fsc/json.f.js +0 -0
  320. /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
  321. /package/{fs → fjs}/fsc/module.f.js +0 -0
  322. /package/{fs → fjs}/fsc/proof.f.d.ts +0 -0
  323. /package/{fs → fjs}/fsm/module.f.d.ts +0 -0
  324. /package/{fs → fjs}/fsm/module.f.js +0 -0
  325. /package/{fs → fjs}/fsm/proof.f.d.ts +0 -0
  326. /package/{fs → fjs}/js/tokenizer/module.f.d.ts +0 -0
  327. /package/{fs → fjs}/js/tokenizer/module.f.js +0 -0
  328. /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
  329. /package/{fs → fjs}/js/tokenizer/proof.f.js +0 -0
  330. /package/{fs → fjs}/mcp/proof.f.d.ts +0 -0
  331. /package/{fs → fjs}/mcp/stdio/proof.f.d.ts +0 -0
  332. /package/{fs → fjs}/mcp/stdio/proof.f.js +0 -0
  333. /package/{fs → fjs}/media/html/module.f.d.ts +0 -0
  334. /package/{fs → fjs}/media/html/module.f.js +0 -0
  335. /package/{fs → fjs}/media/html/proof.f.d.ts +0 -0
  336. /package/{fs → fjs}/media/json/module.f.d.ts +0 -0
  337. /package/{fs → fjs}/media/json/module.f.js +0 -0
  338. /package/{fs → fjs}/media/json/parser/proof.f.d.ts +0 -0
  339. /package/{fs → fjs}/media/json/proof.f.d.ts +0 -0
  340. /package/{fs → fjs}/media/json/proof.f.js +0 -0
  341. /package/{fs → fjs}/media/json/rpc/module.f.d.ts +0 -0
  342. /package/{fs → fjs}/media/json/rpc/proof.f.d.ts +0 -0
  343. /package/{fs → fjs}/media/json/rpc/proof.f.js +0 -0
  344. /package/{fs → fjs}/media/json/schema/proof.f.d.ts +0 -0
  345. /package/{fs → fjs}/media/json/serializer/module.f.d.ts +0 -0
  346. /package/{fs → fjs}/media/json/serializer/module.f.js +0 -0
  347. /package/{fs → fjs}/media/json/serializer/proof.f.d.ts +0 -0
  348. /package/{fs → fjs}/media/json/tokenizer/module.f.d.ts +0 -0
  349. /package/{fs → fjs}/media/json/tokenizer/module.f.js +0 -0
  350. /package/{fs → fjs}/media/json/tokenizer/proof.f.d.ts +0 -0
  351. /package/{fs → fjs}/media/json/tokenizer/proof.f.js +0 -0
  352. /package/{fs → fjs}/media/proof.f.d.ts +0 -0
  353. /package/{fs → fjs}/media/type/module.f.d.ts +0 -0
  354. /package/{fs → fjs}/media/type/module.f.js +0 -0
  355. /package/{fs → fjs}/media/type/proof.f.d.ts +0 -0
  356. /package/{fs → fjs}/module.d.ts +0 -0
  357. /package/{fs → fjs}/module.f.d.ts +0 -0
  358. /package/{fs → fjs}/module.js +0 -0
  359. /package/{fs → fjs}/path/module.f.d.ts +0 -0
  360. /package/{fs → fjs}/path/module.f.js +0 -0
  361. /package/{fs → fjs}/path/proof.f.d.ts +0 -0
  362. /package/{fs → fjs}/proof.f.d.ts +0 -0
  363. /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
  364. /package/{fs → fjs}/sul/id/module.f.js +0 -0
  365. /package/{fs → fjs}/sul/id/proof.f.d.ts +0 -0
  366. /package/{fs → fjs}/sul/level/hash/module.f.d.ts +0 -0
  367. /package/{fs → fjs}/sul/level/hash/module.f.js +0 -0
  368. /package/{fs → fjs}/sul/level/hash/proof.f.d.ts +0 -0
  369. /package/{fs → fjs}/sul/level/literal/module.f.d.ts +0 -0
  370. /package/{fs → fjs}/sul/level/literal/module.f.js +0 -0
  371. /package/{fs → fjs}/sul/level/literal/proof.f.d.ts +0 -0
  372. /package/{fs → fjs}/sul/module.f.d.ts +0 -0
  373. /package/{fs → fjs}/sul/module.f.js +0 -0
  374. /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
  375. /package/{fs → fjs}/sul/proof.f.js +0 -0
  376. /package/{fs → fjs}/text/ascii/module.f.d.ts +0 -0
  377. /package/{fs → fjs}/text/ascii/module.f.js +0 -0
  378. /package/{fs → fjs}/text/code_point/module.f.d.ts +0 -0
  379. /package/{fs → fjs}/text/code_point/proof.f.d.ts +0 -0
  380. /package/{fs → fjs}/text/code_point/proof.f.js +0 -0
  381. /package/{fs → fjs}/text/module.f.d.ts +0 -0
  382. /package/{fs → fjs}/text/module.f.js +0 -0
  383. /package/{fs → fjs}/text/proof.f.d.ts +0 -0
  384. /package/{fs → fjs}/text/sgr/module.f.d.ts +0 -0
  385. /package/{fs → fjs}/text/sgr/module.f.js +0 -0
  386. /package/{fs → fjs}/text/sgr/proof.f.d.ts +0 -0
  387. /package/{fs → fjs}/text/utf16/module.f.d.ts +0 -0
  388. /package/{fs → fjs}/text/utf16/proof.f.d.ts +0 -0
  389. /package/{fs → fjs}/text/utf8/module.f.d.ts +0 -0
  390. /package/{fs → fjs}/text/utf8/module.f.js +0 -0
  391. /package/{fs → fjs}/text/utf8/proof.f.d.ts +0 -0
  392. /package/{fs → fjs}/types/array/module.f.d.ts +0 -0
  393. /package/{fs → fjs}/types/array/module.f.js +0 -0
  394. /package/{fs → fjs}/types/array/proof.f.d.ts +0 -0
  395. /package/{fs → fjs}/types/bigfloat/module.f.d.ts +0 -0
  396. /package/{fs → fjs}/types/bigfloat/module.f.js +0 -0
  397. /package/{fs → fjs}/types/bigfloat/proof.f.d.ts +0 -0
  398. /package/{fs → fjs}/types/bigint/module.f.d.ts +0 -0
  399. /package/{fs → fjs}/types/bigint/module.f.js +0 -0
  400. /package/{fs → fjs}/types/bigint/proof.f.d.ts +0 -0
  401. /package/{fs → fjs}/types/bit_vec/module.f.d.ts +0 -0
  402. /package/{fs → fjs}/types/bit_vec/module.f.js +0 -0
  403. /package/{fs → fjs}/types/bit_vec/proof.f.d.ts +0 -0
  404. /package/{fs → fjs}/types/btree/find/module.f.d.ts +0 -0
  405. /package/{fs → fjs}/types/btree/find/module.f.js +0 -0
  406. /package/{fs → fjs}/types/btree/find/proof.f.d.ts +0 -0
  407. /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
  408. /package/{fs → fjs}/types/btree/module.f.js +0 -0
  409. /package/{fs → fjs}/types/btree/proof.f.d.ts +0 -0
  410. /package/{fs → fjs}/types/btree/remove/module.f.d.ts +0 -0
  411. /package/{fs → fjs}/types/btree/remove/module.f.js +0 -0
  412. /package/{fs → fjs}/types/btree/set/module.f.d.ts +0 -0
  413. /package/{fs → fjs}/types/btree/set/proof.f.d.ts +0 -0
  414. /package/{fs → fjs}/types/btree/types/module.f.d.ts +0 -0
  415. /package/{fs → fjs}/types/btree/types/module.f.js +0 -0
  416. /package/{fs → fjs}/types/byte_set/module.f.d.ts +0 -0
  417. /package/{fs → fjs}/types/byte_set/module.f.js +0 -0
  418. /package/{fs → fjs}/types/byte_set/proof.f.d.ts +0 -0
  419. /package/{fs → fjs}/types/function/compare/module.f.d.ts +0 -0
  420. /package/{fs → fjs}/types/function/compare/module.f.js +0 -0
  421. /package/{fs → fjs}/types/function/compare/proof.f.d.ts +0 -0
  422. /package/{fs → fjs}/types/function/module.f.d.ts +0 -0
  423. /package/{fs → fjs}/types/function/module.f.js +0 -0
  424. /package/{fs → fjs}/types/function/operator/module.f.d.ts +0 -0
  425. /package/{fs → fjs}/types/function/operator/module.f.js +0 -0
  426. /package/{fs → fjs}/types/function/operator/proof.f.d.ts +0 -0
  427. /package/{fs → fjs}/types/function/proof.f.d.ts +0 -0
  428. /package/{fs → fjs}/types/list/module.f.d.ts +0 -0
  429. /package/{fs → fjs}/types/list/module.f.js +0 -0
  430. /package/{fs → fjs}/types/list/proof.f.d.ts +0 -0
  431. /package/{fs → fjs}/types/map/module.f.d.ts +0 -0
  432. /package/{fs → fjs}/types/map/module.f.js +0 -0
  433. /package/{fs → fjs}/types/map/proof.f.d.ts +0 -0
  434. /package/{fs → fjs}/types/nibble_set/module.f.d.ts +0 -0
  435. /package/{fs → fjs}/types/nibble_set/module.f.js +0 -0
  436. /package/{fs → fjs}/types/nibble_set/proof.f.d.ts +0 -0
  437. /package/{fs → fjs}/types/nominal/module.f.d.ts +0 -0
  438. /package/{fs → fjs}/types/nominal/module.f.js +0 -0
  439. /package/{fs → fjs}/types/nominal/proof.f.d.ts +0 -0
  440. /package/{fs → fjs}/types/nullable/module.f.d.ts +0 -0
  441. /package/{fs → fjs}/types/nullable/module.f.js +0 -0
  442. /package/{fs → fjs}/types/nullable/proof.f.d.ts +0 -0
  443. /package/{fs → fjs}/types/number/module.f.d.ts +0 -0
  444. /package/{fs → fjs}/types/number/module.f.js +0 -0
  445. /package/{fs → fjs}/types/number/proof.f.d.ts +0 -0
  446. /package/{fs → fjs}/types/object/module.f.d.ts +0 -0
  447. /package/{fs → fjs}/types/object/module.f.js +0 -0
  448. /package/{fs → fjs}/types/object/proof.f.d.ts +0 -0
  449. /package/{fs → fjs}/types/option/module.f.d.ts +0 -0
  450. /package/{fs → fjs}/types/option/module.f.js +0 -0
  451. /package/{fs → fjs}/types/ordered_map/module.f.d.ts +0 -0
  452. /package/{fs → fjs}/types/ordered_map/module.f.js +0 -0
  453. /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
  454. /package/{fs → fjs}/types/ordered_map/proof.f.js +0 -0
  455. /package/{fs → fjs}/types/patricia_trie/module.f.d.ts +0 -0
  456. /package/{fs → fjs}/types/patricia_trie/module.f.js +0 -0
  457. /package/{fs → fjs}/types/patricia_trie/proof.f.d.ts +0 -0
  458. /package/{fs → fjs}/types/phantom/module.f.d.ts +0 -0
  459. /package/{fs → fjs}/types/phantom/module.f.js +0 -0
  460. /package/{fs → fjs}/types/prime_field/module.f.d.ts +0 -0
  461. /package/{fs → fjs}/types/prime_field/proof.f.d.ts +0 -0
  462. /package/{fs → fjs}/types/prime_field/proof.f.js +0 -0
  463. /package/{fs → fjs}/types/range/proof.f.d.ts +0 -0
  464. /package/{fs → fjs}/types/range_map/module.f.d.ts +0 -0
  465. /package/{fs → fjs}/types/range_map/module.f.js +0 -0
  466. /package/{fs → fjs}/types/range_map/proof.f.d.ts +0 -0
  467. /package/{fs → fjs}/types/result/module.d.ts +0 -0
  468. /package/{fs → fjs}/types/result/module.f.d.ts +0 -0
  469. /package/{fs → fjs}/types/result/module.f.js +0 -0
  470. /package/{fs → fjs}/types/result/module.js +0 -0
  471. /package/{fs → fjs}/types/rtti/module.f.d.ts +0 -0
  472. /package/{fs → fjs}/types/rtti/module.f.js +0 -0
  473. /package/{fs → fjs}/types/rtti/parse/module.f.d.ts +0 -0
  474. /package/{fs → fjs}/types/rtti/parse/proof.f.d.ts +0 -0
  475. /package/{fs → fjs}/types/rtti/proof.f.d.ts +0 -0
  476. /package/{fs → fjs}/types/rtti/proof.f.js +0 -0
  477. /package/{fs → fjs}/types/rtti/ts/module.f.js +0 -0
  478. /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
  479. /package/{fs → fjs}/types/rtti/ts/proof.f.js +0 -0
  480. /package/{fs → fjs}/types/rtti/validate/module.f.d.ts +0 -0
  481. /package/{fs → fjs}/types/rtti/validate/proof.f.d.ts +0 -0
  482. /package/{fs → fjs}/types/sorted_list/module.f.d.ts +0 -0
  483. /package/{fs → fjs}/types/sorted_list/module.f.js +0 -0
  484. /package/{fs → fjs}/types/sorted_list/proof.f.d.ts +0 -0
  485. /package/{fs → fjs}/types/sorted_set/module.f.d.ts +0 -0
  486. /package/{fs → fjs}/types/sorted_set/module.f.js +0 -0
  487. /package/{fs → fjs}/types/sorted_set/proof.f.d.ts +0 -0
  488. /package/{fs → fjs}/types/string/module.f.d.ts +0 -0
  489. /package/{fs → fjs}/types/string/module.f.js +0 -0
  490. /package/{fs → fjs}/types/string/proof.f.d.ts +0 -0
  491. /package/{fs → fjs}/types/string_set/module.f.d.ts +0 -0
  492. /package/{fs → fjs}/types/string_set/module.f.js +0 -0
  493. /package/{fs → fjs}/types/string_set/proof.f.d.ts +0 -0
  494. /package/{fs → fjs}/types/ts/module.f.d.ts +0 -0
  495. /package/{fs → fjs}/types/ts/module.f.js +0 -0
  496. /package/{fs → fjs}/types/ts/proof.f.d.ts +0 -0
  497. /package/{fs → fjs}/types/uint8array/module.f.d.ts +0 -0
  498. /package/{fs → fjs}/website/module.f.d.ts +0 -0
  499. /package/{fs → fjs}/website/module.f.js +0 -0
  500. /package/{fs → fjs}/website/proof.f.d.ts +0 -0
@@ -1,170 +1,119 @@
1
1
  import { concat, isProperPrefix, join, normalize, relativize, toPosix } from "./module.f.js";
2
+ import { assertEq } from '../asserts/module.f.js';
2
3
  const normalizeTest = [
3
4
  () => {
4
5
  const norm = normalize("dir/file.json");
5
- if (norm !== "dir/file.json") {
6
- throw norm;
7
- }
6
+ assertEq(norm, "dir/file.json");
8
7
  },
9
8
  () => {
10
9
  const norm = normalize("dir//file.json");
11
- if (norm !== "dir/file.json") {
12
- throw norm;
13
- }
10
+ assertEq(norm, "dir/file.json");
14
11
  },
15
12
  () => {
16
13
  const norm = normalize("../../dir/file.json");
17
- if (norm !== "../../dir/file.json") {
18
- throw norm;
19
- }
14
+ assertEq(norm, "../../dir/file.json");
20
15
  },
21
16
  () => {
22
17
  const norm = normalize("../../dir/../file.json");
23
- if (norm !== "../../file.json") {
24
- throw norm;
25
- }
18
+ assertEq(norm, "../../file.json");
26
19
  },
27
20
  ];
28
21
  const concatTest = [
29
22
  () => {
30
23
  const c = concat("a")("b");
31
- if (c !== "a/b") {
32
- throw c;
33
- }
24
+ assertEq(c, "a/b");
34
25
  },
35
26
  () => {
36
27
  const c = concat("a///b/")("c");
37
- if (c !== "a/b/c") {
38
- throw c;
39
- }
28
+ assertEq(c, "a/b/c");
40
29
  },
41
30
  () => {
42
31
  const c = concat("a/../b/..")("c");
43
- if (c !== "c") {
44
- throw c;
45
- }
32
+ assertEq(c, "c");
46
33
  },
47
34
  ];
48
35
  const joinTest = [
49
36
  () => {
50
37
  const r = join('a', 'b');
51
- if (r !== 'a/b') {
52
- throw r;
53
- }
38
+ assertEq(r, 'a/b');
54
39
  },
55
40
  () => {
56
41
  const r = join('/abs/root', 'x');
57
- if (r !== '/abs/root/x') {
58
- throw r;
59
- }
42
+ assertEq(r, '/abs/root/x');
60
43
  },
61
44
  () => {
62
45
  const r = join('a', 'b', 'c', 'd');
63
- if (r !== 'a/b/c/d') {
64
- throw r;
65
- }
46
+ assertEq(r, 'a/b/c/d');
66
47
  },
67
48
  () => {
68
49
  const r = join('', 'x');
69
- if (r !== '/x') {
70
- throw r;
71
- }
50
+ assertEq(r, '/x');
72
51
  },
73
52
  () => {
74
53
  const r = join();
75
- if (r !== '') {
76
- throw r;
77
- }
54
+ assertEq(r, '');
78
55
  },
79
56
  () => {
80
57
  const r = join('only');
81
- if (r !== 'only') {
82
- throw r;
83
- }
58
+ assertEq(r, 'only');
84
59
  },
85
60
  ];
86
61
  const relativizeTest = [
87
62
  () => {
88
63
  const r = relativize('/repo', '/repo/fs/a.ts');
89
- if (r !== './fs/a.ts') {
90
- throw r;
91
- }
64
+ assertEq(r, './fs/a.ts');
92
65
  },
93
66
  () => {
94
67
  const r = relativize('/repo', '/other/a.ts');
95
- if (r !== '/other/a.ts') {
96
- throw r;
97
- }
68
+ assertEq(r, '/other/a.ts');
98
69
  },
99
70
  () => {
100
71
  const r = relativize('', './fs/a.ts');
101
- if (r !== './fs/a.ts') {
102
- throw r;
103
- }
72
+ assertEq(r, './fs/a.ts');
104
73
  },
105
74
  ];
106
75
  const toPosixTest = [
107
76
  () => {
108
77
  const p = toPosix('a\\b\\c');
109
- if (p !== 'a/b/c') {
110
- throw p;
111
- }
78
+ assertEq(p, 'a/b/c');
112
79
  },
113
80
  () => {
114
81
  const p = toPosix('a/b/c');
115
- if (p !== 'a/b/c') {
116
- throw p;
117
- }
82
+ assertEq(p, 'a/b/c');
118
83
  },
119
84
  () => {
120
85
  const p = toPosix('C:\\Users\\x');
121
- if (p !== 'C:/Users/x') {
122
- throw p;
123
- }
86
+ assertEq(p, 'C:/Users/x');
124
87
  },
125
88
  () => {
126
89
  const p = toPosix('');
127
- if (p !== '') {
128
- throw p;
129
- }
90
+ assertEq(p, '');
130
91
  },
131
92
  ];
132
93
  const isProperPrefixTest = [
133
94
  () => {
134
95
  const r = isProperPrefix(['a', 'b'], ['a', 'b', 'c']);
135
- if (r !== true) {
136
- throw r;
137
- }
96
+ assertEq(r, true);
138
97
  },
139
98
  () => {
140
99
  const r = isProperPrefix(['a', 'b'], ['a', 'b']);
141
- if (r !== false) {
142
- throw r;
143
- }
100
+ assertEq(r, false);
144
101
  },
145
102
  () => {
146
103
  const r = isProperPrefix(['a', 'x'], ['a', 'b', 'c']);
147
- if (r !== false) {
148
- throw r;
149
- }
104
+ assertEq(r, false);
150
105
  },
151
106
  () => {
152
107
  const r = isProperPrefix(['a', 'b', 'c'], ['a', 'b']);
153
- if (r !== false) {
154
- throw r;
155
- }
108
+ assertEq(r, false);
156
109
  },
157
110
  () => {
158
111
  const r = isProperPrefix([], ['a']);
159
- if (r !== true) {
160
- throw r;
161
- }
112
+ assertEq(r, true);
162
113
  },
163
114
  () => {
164
115
  const r = isProperPrefix([], []);
165
- if (r !== false) {
166
- throw r;
167
- }
116
+ assertEq(r, false);
168
117
  },
169
118
  ];
170
119
  export const proof = { normalizeTest, concatTest, joinTest, relativizeTest, toPosixTest, isProperPrefixTest };
@@ -25,6 +25,8 @@ export const proof = {
25
25
  mcp: () => {
26
26
  // stdin is empty in the virtual environment, so the server sees EOF
27
27
  // immediately and shuts down cleanly, exercising the `mcp` handler.
28
+ // The store is empty too, so `casMcpServer`'s Evo cache scan
29
+ // (`initEvo`) also runs and finds nothing.
28
30
  const [, code] = run({})(['mcp']);
29
31
  assertEq(code, 0);
30
32
  },
@@ -28,9 +28,7 @@ export const proof = {
28
28
  inline_is_raw: () => assert(isRaw(compress(level3Id(0x00n), level3Id(0x00n)))),
29
29
  // Non-commutativity: argument order is preserved in concatenation
30
30
  non_commutative: () => {
31
- if (compress(level3Id(0n), level3Id(1n)) === compress(level3Id(1n), level3Id(0n))) {
32
- throw compress(level3Id(0n), level3Id(1n));
33
- }
31
+ assert(compress(level3Id(0n), level3Id(1n)) !== compress(level3Id(1n), level3Id(0n)), compress(level3Id(0n), level3Id(1n)));
34
32
  },
35
33
  // Overflow: two 127-bit raw payloads sum to 254 bits, exceeding the 253-bit inline limit
36
34
  overflow_is_hash: () => assert(isHash(overflowHash)),
@@ -38,38 +36,26 @@ export const proof = {
38
36
  hash_left_is_hash: () => assert(isHash(compress(overflowHash, level3Id(0n)))),
39
37
  hash_right_is_hash: () => assert(isHash(compress(level3Id(0n), overflowHash))),
40
38
  hash_non_commutative: () => {
41
- if (compress(overflowHash, level3Id(0n)) === compress(level3Id(0n), overflowHash)) {
42
- throw compress(overflowHash, level3Id(0n));
43
- }
39
+ assert(compress(overflowHash, level3Id(0n)) !== compress(level3Id(0n), overflowHash), compress(overflowHash, level3Id(0n)));
44
40
  },
45
41
  // High-bit sensitivity: prefix bit of `a` is included in the SHA2 upper half
46
42
  hash_merge_a_high_bits: () => {
47
- if (compress(hashId(0n), hashId(0n)) === compress(level3Id(0n), hashId(0n))) {
48
- throw compress(hashId(0n), hashId(0n));
49
- }
43
+ assert(compress(hashId(0n), hashId(0n)) !== compress(level3Id(0n), hashId(0n)), compress(hashId(0n), hashId(0n)));
50
44
  },
51
45
  // High-bit sensitivity: prefix bit of `b` is included in the SHA2 lower half
52
46
  hash_merge_b_high_bits: () => {
53
- if (compress(hashId(0n), hashId(0n)) === compress(hashId(0n), level3Id(0n))) {
54
- throw compress(hashId(0n), hashId(0n));
55
- }
47
+ assert(compress(hashId(0n), hashId(0n)) !== compress(hashId(0n), level3Id(0n)), compress(hashId(0n), hashId(0n)));
56
48
  },
57
49
  // Shift correctness: changing a bit in `a` (upper 256 bits of SHA2 input) changes result
58
50
  hash_merge_a_sensitivity: () => {
59
- if (compress(hFF, hFF) === compress(hFE, hFF)) {
60
- throw compress(hFF, hFF);
61
- }
51
+ assert(compress(hFF, hFF) !== compress(hFE, hFF), compress(hFF, hFF));
62
52
  },
63
53
  // Shift correctness: changing a bit in `b` (lower 256 bits of SHA2 input) changes result
64
54
  hash_merge_b_sensitivity: () => {
65
- if (compress(hFF, hFF) === compress(hFF, hFE)) {
66
- throw compress(hFF, hFF);
67
- }
55
+ assert(compress(hFF, hFF) !== compress(hFF, hFE), compress(hFF, hFF));
68
56
  },
69
57
  // Shift correctness: same bit-flip in `a` vs `b` lands at different SHA2 input positions
70
58
  hash_merge_shift: () => {
71
- if (compress(hFE, hFF) === compress(hFF, hFE)) {
72
- throw compress(hFE, hFF);
73
- }
59
+ assert(compress(hFE, hFF) !== compress(hFF, hFE), compress(hFE, hFF));
74
60
  },
75
61
  };
@@ -42,9 +42,9 @@ export const proof = {
42
42
  // All symbols before the terminator return undefined
43
43
  intermediate_undefined: () => {
44
44
  const [r0, st0] = enc(s1, initial);
45
- assert(r0 === undefined);
45
+ assertEq(r0, undefined);
46
46
  const [r1, st1] = enc(s0, st0);
47
- assert(r1 === undefined);
47
+ assertEq(r1, undefined);
48
48
  const [r2] = enc(s1, st1);
49
49
  assert(r2 !== undefined);
50
50
  },
@@ -100,13 +100,13 @@ export const proof = {
100
100
  // Trie-internal merges have isSymbol=false; only the terminal merge has isSymbol=true
101
101
  isSymbol_terminal_only: () => {
102
102
  const [, storage] = runWord([s1, s0, s0]);
103
- assert(storage[0][3] === false); // Patricia trie merge
104
- assert(storage[1][3] === true); // terminal compress(root, t)
103
+ assertEq(storage[0][3], false); // Patricia trie merge
104
+ assertEq(storage[1][3], true); // terminal compress(root, t)
105
105
  },
106
106
  // Single-step word: no trie merges, exactly one isSymbol=true
107
107
  isSymbol_min_word: () => {
108
108
  const [, storage] = runWord([s0, s0]);
109
109
  assertEq(storage.length, 1);
110
- assert(storage[0][3] === true);
110
+ assertEq(storage[0][3], true);
111
111
  },
112
112
  };
@@ -1,4 +1,5 @@
1
1
  import { chunkList, msb, vec } from '../../../types/bit_vec/module.f.js';
2
+ import { assert, assertEq } from '../../../asserts/module.f.js';
2
3
  import { map, stateScan, toArray } from '../../../types/list/module.f.js';
3
4
  import { emptyEncodeState, emptyPipelineState, level, literal1ToVec, literal2ToVec, literal3ToVec, pipelineStep, symbolToString, wordEqual, wordToString } from './module.f.js';
4
5
  const tests = (n) => {
@@ -18,33 +19,24 @@ const tests = (n) => {
18
19
  }
19
20
  // encode
20
21
  const a = toArray(stateScan(push)(emptyEncodeState)(word));
21
- if (!a.slice(0, -1).every(i => i === undefined)) {
22
- throw a;
23
- }
22
+ assert(a.slice(0, -1).every(i => i === undefined), a);
24
23
  const x = a.at(-1);
25
- if (x !== expected) {
26
- throw x;
27
- }
24
+ assertEq(x, expected);
28
25
  }
29
26
  };
30
27
  };
31
28
  const l = (f) => (l, e) => {
32
29
  const result = f(l);
33
- if (result !== e) {
34
- throw [result, e];
35
- }
30
+ assertEq(result, e, [result, e]);
36
31
  };
37
32
  const vecToBits = (v) => map((b) => msb.front(1n)(b))(chunkList(msb)(1n)(v));
38
33
  const w = (symbol, expected) => {
39
34
  const result = literal3ToVec(symbol);
40
- if (result !== expected)
41
- throw [result, expected];
35
+ assertEq(result, expected, [result, expected]);
42
36
  const a = toArray(stateScan(pipelineStep)(emptyPipelineState)(vecToBits(expected)));
43
- if (!a.slice(0, -1).every(o => o === undefined))
44
- throw a;
37
+ assert(a.slice(0, -1).every(o => o === undefined), a);
45
38
  const out = a.at(-1);
46
- if (out !== symbol)
47
- throw out;
39
+ assertEq(out, symbol);
48
40
  };
49
41
  export const proof = {
50
42
  x2: () => {
@@ -688,9 +680,7 @@ export const proof = {
688
680
  },
689
681
  wordToString: () => {
690
682
  const result = wordToString([0n, 1n, 0xabn]);
691
- if (result !== '0,1,ab') {
692
- throw result;
693
- }
683
+ assertEq(result, '0,1,ab');
694
684
  },
695
685
  pipeline: () => {
696
686
  // 4 L1 [0,0] words → 2 L2 [0,0] words → L3 [0,0] word → symbol 0
@@ -698,14 +688,12 @@ export const proof = {
698
688
  let s = emptyPipelineState;
699
689
  for (let i = 0; i < 7; i++) {
700
690
  const [out, next] = pipelineStep(0n, s);
701
- if (out !== undefined)
702
- throw out;
691
+ assertEq(out, undefined);
703
692
  s = next;
704
693
  }
705
694
  // 8th zero emits L3 symbol 0
706
695
  const [out0, s2] = pipelineStep(0n, s);
707
- if (out0 !== 0n)
708
- throw out0;
696
+ assertEq(out0, 0n);
709
697
  // state resets after emit: second batch of 8 zeros also emits 0
710
698
  let s3 = s2;
711
699
  for (let i = 0; i < 7; i++) {
@@ -713,8 +701,7 @@ export const proof = {
713
701
  s3 = next;
714
702
  }
715
703
  const [out1] = pipelineStep(0n, s3);
716
- if (out1 !== 0n)
717
- throw out1;
704
+ assertEq(out1, 0n);
718
705
  // 8 ones emit a different symbol than 8 zeros
719
706
  let s4 = emptyPipelineState;
720
707
  for (let i = 0; i < 7; i++) {
@@ -722,7 +709,6 @@ export const proof = {
722
709
  s4 = next;
723
710
  }
724
711
  const [out2] = pipelineStep(1n, s4);
725
- if (out2 === 0n)
726
- throw out2;
712
+ assert(out2 !== 0n, out2);
727
713
  }
728
714
  };
@@ -0,0 +1,6 @@
1
+ export declare const proof: {
2
+ range: () => void;
3
+ throw: {
4
+ oneThrowsOnEmpty: () => number;
5
+ };
6
+ };
@@ -1,24 +1,14 @@
1
1
  import { one, range } from './module.f.js';
2
2
  import { stringify as jsonStringify } from '../../media/json/module.f.js';
3
3
  import { sort } from '../../types/object/module.f.js';
4
+ import { assertEq } from '../../asserts/module.f.js';
4
5
  const stringify = jsonStringify(sort);
5
6
  export const proof = {
6
7
  range: () => {
7
8
  const r = stringify(range("A"));
8
- if (r !== '[65,65]') {
9
- throw r;
10
- }
9
+ assertEq(r, '[65,65]');
11
10
  },
12
- oneThrowsOnEmpty: () => {
13
- let threw = false;
14
- try {
15
- one('');
16
- }
17
- catch (_) {
18
- threw = true;
19
- }
20
- if (!threw) {
21
- throw 'expected throw';
22
- }
11
+ throw: {
12
+ oneThrowsOnEmpty: () => one(''),
23
13
  },
24
14
  };
@@ -48,18 +48,18 @@ const maxCodePoint = 0x10_ffff;
48
48
  * Checks whether the 16-bit word (U16) is a high surrogate.
49
49
  * Range: 0xD800 - 0xDBFF.
50
50
  */
51
- export const isHighSurrogate = contains([surrogateMin, lowSurrogateMin - 1]);
51
+ export const isHighSurrogate = contains(surrogateMin, lowSurrogateMin - 1);
52
52
  /**
53
53
  * Checks whether the 16-bit word (U16) is a low surrogate.
54
54
  * Range: 0xDC00 - 0xDFFF.
55
55
  */
56
- export const isLowSurrogate = contains([lowSurrogateMin, surrogateMax]);
56
+ export const isLowSurrogate = contains(lowSurrogateMin, surrogateMax);
57
57
  /**
58
58
  * Ranges of code points for the lower (Low) and higher (High) parts of the BMP
59
59
  * (Basic Multilingual Plane), i.e. the BMP with the surrogate block removed.
60
60
  */
61
- const lowBmp = contains([0x0000, surrogateMin - 1]);
62
- const highBmp = contains([surrogateMax + 1, bmpMax]);
61
+ const lowBmp = contains(0x0000, surrogateMin - 1);
62
+ const highBmp = contains(surrogateMax + 1, bmpMax);
63
63
  /**
64
64
  * Checks whether the code point is in the BMP range.
65
65
  * BMP is the main Unicode plane that covers code points 0x0000 - 0xFFFF, except
@@ -70,13 +70,13 @@ export const isBmpCodePoint = (codePoint) => lowBmp(codePoint) || highBmp(codePo
70
70
  * Checks whether the code point belongs to a supplementary (additional) Unicode
71
71
  * plane. Supplementary planes cover code points from 0x010000 to 0x10FFFF.
72
72
  */
73
- export const isSupplementaryPlane = contains([bmpMax + 1, maxCodePoint]);
73
+ export const isSupplementaryPlane = contains(bmpMax + 1, maxCodePoint);
74
74
  /**
75
75
  * The full assignable code-point range and the surrogate block, used to gate
76
76
  * overall validity below.
77
77
  */
78
- const validRange = contains([0, maxCodePoint]);
79
- const isSurrogate = contains([surrogateMin, surrogateMax]);
78
+ const validRange = contains(0, maxCodePoint);
79
+ const isSurrogate = contains(surrogateMin, surrogateMax);
80
80
  /**
81
81
  * Checks whether the code point is a valid scalar value: within the assignable
82
82
  * Unicode range (0x0000 - 0x10FFFF) and not a surrogate.
@@ -89,9 +89,9 @@ export const isValidCodePoint = (c) => validRange(c) && !isSurrogate(c);
89
89
  * contiguous run; the whitespace block 0x0009 - 0x000D (TAB, LF, VT, FF, CR) is
90
90
  * the only control range legitimate in text.
91
91
  */
92
- const c0Control = contains([0x00, 0x1f]);
93
- const delAndC1Control = contains([0x7f, 0x9f]);
94
- const textWhitespace = contains([0x09, 0x0d]);
92
+ const c0Control = contains(0x00, 0x1f);
93
+ const delAndC1Control = contains(0x7f, 0x9f);
94
+ const textWhitespace = contains(0x09, 0x0d);
95
95
  /**
96
96
  * Checks whether the code point is a *text* code point — distinct from
97
97
  * {@link isValidCodePoint}, which gates well-formedness for decoding. A code
@@ -1,4 +1,4 @@
1
- import { assert, assertEq } from '../asserts/module.f.js';
1
+ import { assertEq, assertNotNullish } from '../asserts/module.f.js';
2
2
  import { flat, utf8, utf8ToString, tryUtf8 } from './module.f.js';
3
3
  import { join } from '../types/string/module.f.js';
4
4
  import { empty, maxLengthBytes } from '../types/bit_vec/module.f.js';
@@ -15,20 +15,15 @@ export const proof = {
15
15
  'e',
16
16
  ];
17
17
  const result = join('\n')(flat(':')(text));
18
- if (result !== 'a\nb\n:c\n::d\ne') {
19
- throw result;
20
- }
18
+ assertEq(result, 'a\nb\n:c\n::d\ne');
21
19
  },
22
20
  encoding: () => {
23
21
  const v = utf8('Hello world!');
24
22
  const r = utf8ToString(v);
25
- if (r !== 'Hello world!') {
26
- throw r;
27
- }
23
+ assertEq(r, 'Hello world!');
28
24
  },
29
25
  tryUtf8RoundTrip: () => {
30
- const v = tryUtf8('Hello world!');
31
- assert(v !== null);
26
+ const v = assertNotNullish(tryUtf8('Hello world!'));
32
27
  assertEq(v, utf8('Hello world!'));
33
28
  assertEq(utf8ToString(v), 'Hello world!');
34
29
  },
@@ -1,42 +1,33 @@
1
1
  import { fgRed, reset, createConsoleText, backspace, csiWrite } from './module.f.js';
2
2
  import { virtual, emptyState, defaultNodeProgramOptions } from '../../effects/node/virtual/module.f.js';
3
+ import { assert, assertEq } from '../../asserts/module.f.js';
3
4
  const makeOptions = (isTTY) => ({ ...defaultNodeProgramOptions, std: { stdout: { isTTY }, stderr: { isTTY } } });
4
5
  export const proof = [
5
6
  () => {
6
- if (fgRed !== '\x1b[31m') {
7
- throw new Error('Test failed: sgr(0)');
8
- }
7
+ assertEq(fgRed, '\x1b[31m', new Error('Test failed: sgr(0)'));
9
8
  },
10
9
  () => {
11
10
  const output = [];
12
11
  const stdout = { write: (s) => { output.push(s); } };
13
12
  const writer1 = createConsoleText(stdout);
14
13
  const writer2 = writer1('hello');
15
- if (output[0] !== 'hello') {
16
- throw output[0];
17
- }
14
+ assert(output[0] === 'hello');
18
15
  // replacing 'hello' (len=5) with 'hi' (len=2): suffixLength=3
19
16
  writer2('hi');
20
17
  const expected = backspace.repeat(5) + 'hi' + ' '.repeat(3) + backspace.repeat(3);
21
- if (output[1] !== expected) {
22
- throw output[1];
23
- }
18
+ assertEq(output[1], expected);
24
19
  },
25
20
  () => {
26
21
  // csiWrite with isTTY=false strips ANSI SGR sequences
27
22
  const writeFn = csiWrite(makeOptions(false))('stdout');
28
23
  const [state] = virtual(emptyState)(writeFn(fgRed + 'hello' + reset));
29
- if (state.stdout !== 'hello') {
30
- throw ['expected ANSI stripped', state.stdout];
31
- }
24
+ assertEq(state.stdout, 'hello', ['expected ANSI stripped', state.stdout]);
32
25
  },
33
26
  () => {
34
27
  // csiWrite with isTTY=true preserves ANSI SGR sequences
35
28
  const writeFn = csiWrite(makeOptions(true))('stdout');
36
29
  const [state] = virtual(emptyState)(writeFn(fgRed + 'hello' + reset));
37
30
  const expected = fgRed + 'hello' + reset;
38
- if (state.stdout !== expected) {
39
- throw ['expected ANSI preserved', state.stdout];
40
- }
31
+ assertEq(state.stdout, expected, ['expected ANSI preserved', state.stdout]);
41
32
  },
42
33
  ];
@@ -107,7 +107,7 @@ export const fromCodePointList = flatMap(codePointToUtf16);
107
107
  * const edgeCaseHigh = u16(0xFFFF) // true: Maximum valid value for UTF-16
108
108
  * ```
109
109
  */
110
- const u16 = contains([0x0000, 0xFFFF]);
110
+ const u16 = contains(0x0000, 0xFFFF);
111
111
  /**
112
112
  * A stateful operation that converts a UTF-16 word (U16) to a list of Unicode code points (CodePoint),
113
113
  * while maintaining the state of surrogate pair decoding.