functionalscript 0.36.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 (523) hide show
  1. package/README.md +1 -1
  2. package/{fs → fjs}/asn.1/module.f.js +1 -1
  3. package/{fs → fjs}/asn.1/proof.f.js +32 -94
  4. package/fjs/asserts/module.f.d.ts +36 -0
  5. package/fjs/asserts/module.f.js +39 -0
  6. package/fjs/asserts/proof.f.d.ts +11 -0
  7. package/fjs/asserts/proof.f.js +18 -0
  8. package/{fs → fjs}/base_n/module.f.js +3 -3
  9. package/{fs → fjs}/base_n/proof.f.js +15 -39
  10. package/{fs → fjs/basen}/base128/module.f.d.ts +1 -1
  11. package/{fs → fjs/basen}/base128/module.f.js +1 -1
  12. package/{fs → fjs/basen}/base128/proof.f.js +3 -3
  13. package/{fs → fjs/basen}/base64/module.f.d.ts +2 -2
  14. package/{fs → fjs/basen}/base64/module.f.js +25 -15
  15. package/{fs → fjs/basen}/base64/proof.f.d.ts +2 -0
  16. package/{fs → fjs/basen}/base64/proof.f.js +26 -6
  17. package/{fs → fjs/basen}/cbase32/module.f.d.ts +2 -2
  18. package/{fs → fjs/basen}/cbase32/module.f.js +2 -2
  19. package/{fs → fjs/basen}/cbase32/proof.f.js +16 -43
  20. package/fjs/bnf/data/module.f.d.ts +52 -0
  21. package/{fs → fjs}/bnf/data/module.f.js +56 -6
  22. package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
  23. package/{fs → fjs}/bnf/data/proof.f.js +59 -24
  24. package/{fs → fjs}/bnf/descent/module.f.d.ts +4 -14
  25. package/fjs/bnf/descent/module.f.js +124 -0
  26. package/{fs → fjs}/bnf/descent/proof.f.d.ts +1 -0
  27. package/{fs → fjs}/bnf/descent/proof.f.js +59 -28
  28. package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
  29. package/{fs → fjs}/bnf/ll1/module.f.js +15 -13
  30. package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
  31. package/{fs → fjs}/bnf/ll1/proof.f.js +33 -16
  32. package/{fs → fjs}/bnf/module.f.d.ts +19 -5
  33. package/{fs → fjs}/bnf/module.f.js +14 -15
  34. package/fjs/bnf/proof.f.js +69 -0
  35. package/{fs → fjs}/bnf/testlib.f.js +2 -2
  36. package/{fs → fjs}/cas/cli/module.f.js +7 -7
  37. package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
  38. package/{fs → fjs}/cas/cli/proof.f.js +37 -74
  39. package/fjs/cas/evo/mcp/module.f.d.ts +19 -0
  40. package/fjs/cas/evo/mcp/module.f.js +56 -0
  41. package/fjs/cas/evo/mcp/proof.f.d.ts +9 -0
  42. package/fjs/cas/evo/mcp/proof.f.js +95 -0
  43. package/fjs/cas/evo/module.f.d.ts +138 -0
  44. package/fjs/cas/evo/module.f.js +309 -0
  45. package/fjs/cas/evo/proof.f.d.ts +32 -0
  46. package/fjs/cas/evo/proof.f.js +453 -0
  47. package/fjs/cas/mcp/module.f.d.ts +49 -0
  48. package/fjs/cas/mcp/module.f.js +267 -0
  49. package/{fs → fjs}/cas/mcp/proof.f.d.ts +7 -2
  50. package/{fs → fjs}/cas/mcp/proof.f.js +116 -60
  51. package/{fs → fjs}/cas/module.f.d.ts +10 -0
  52. package/{fs → fjs}/cas/module.f.js +36 -10
  53. package/{fs → fjs}/cas/proof.f.d.ts +8 -2
  54. package/{fs → fjs}/cas/proof.f.js +85 -94
  55. package/{fs → fjs}/ci/bun/module.f.js +2 -2
  56. package/{fs → fjs}/ci/common/module.f.d.ts +2 -2
  57. package/{fs → fjs}/ci/common/module.f.js +4 -4
  58. package/fjs/ci/config/module.f.d.ts +42 -0
  59. package/{fs → fjs}/ci/config/module.f.js +6 -8
  60. package/fjs/ci/deno/module.f.js +20 -0
  61. package/{fs → fjs}/ci/module.f.js +9 -9
  62. package/{fs → fjs}/ci/node/module.f.d.ts +1 -1
  63. package/{fs → fjs}/ci/node/module.f.js +3 -5
  64. package/{fs → fjs}/ci/playwright/module.f.js +3 -3
  65. package/{fs → fjs}/ci/proof.f.js +27 -22
  66. package/{fs → fjs}/ci/rust/module.f.js +11 -3
  67. package/{fs → fjs}/cli/module.f.js +3 -3
  68. package/{fs → fjs}/cli/proof.f.js +25 -66
  69. package/{fs/types → fjs/common}/monoid/module.f.d.ts +1 -1
  70. package/{fs/types → fjs/common}/monoid/proof.f.js +4 -9
  71. package/{fs → fjs}/crypto/hmac/module.f.js +2 -2
  72. package/{fs → fjs}/crypto/hmac/proof.f.js +9 -17
  73. package/{fs → fjs}/crypto/pow/module.f.js +3 -3
  74. package/fjs/crypto/pow/proof.f.js +111 -0
  75. package/{fs → fjs}/crypto/secp/module.f.js +2 -2
  76. package/{fs → fjs}/crypto/secp/proof.f.js +14 -35
  77. package/{fs → fjs}/crypto/sha2/module.f.js +2 -2
  78. package/{fs → fjs}/crypto/sha2/proof.f.js +23 -54
  79. package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
  80. package/{fs → fjs}/crypto/sign/module.f.js +11 -8
  81. package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
  82. package/{fs → fjs}/crypto/vdf/module.f.js +1 -1
  83. package/{fs → fjs}/crypto/vdf/proof.f.js +23 -64
  84. package/{fs → fjs}/dev/module.f.js +6 -6
  85. package/{fs → fjs}/dev/package_json/module.f.js +6 -6
  86. package/{fs → fjs}/dev/package_json/proof.f.js +9 -9
  87. package/{fs → fjs}/dev/proof.f.js +3 -5
  88. package/{fs → fjs}/djs/ast/module.f.js +2 -2
  89. package/{fs → fjs}/djs/ast/proof.f.js +8 -16
  90. package/fjs/djs/examples/m.f.d.ts +2 -0
  91. package/{fs → fjs}/djs/module.f.d.ts +1 -1
  92. package/{fs → fjs}/djs/module.f.js +5 -5
  93. package/{fs → fjs}/djs/parser/module.f.d.ts +5 -0
  94. package/{fs → fjs}/djs/parser/module.f.js +24 -4
  95. package/{fs → fjs}/djs/parser/proof.f.js +145 -407
  96. package/{fs → fjs}/djs/proof.f.js +16 -39
  97. package/{fs → fjs}/djs/serializer/module.f.js +6 -6
  98. package/{fs → fjs}/djs/serializer/proof.f.js +18 -43
  99. package/fjs/djs/tokenizer/module.f.d.ts +24 -0
  100. package/fjs/djs/tokenizer/module.f.js +472 -0
  101. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.d.ts +4 -3
  102. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.js +447 -446
  103. package/{fs → fjs}/djs/transpiler/module.f.d.ts +5 -0
  104. package/{fs → fjs}/djs/transpiler/module.f.js +21 -11
  105. package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
  106. package/fjs/djs/transpiler/proof.f.js +67 -0
  107. package/{fs → fjs}/effects/memory/module.f.js +4 -4
  108. package/{fs → fjs}/effects/memory/proof.f.js +11 -24
  109. package/{fs → fjs}/effects/module.f.js +1 -1
  110. package/{fs → fjs}/effects/node/memory/module.js +2 -2
  111. package/{fs → fjs}/effects/node/memory/proof.js +8 -15
  112. package/{fs → fjs}/effects/node/module.d.ts +1 -1
  113. package/{fs → fjs}/effects/node/module.f.d.ts +1 -1
  114. package/{fs → fjs}/effects/node/module.f.js +7 -7
  115. package/{fs → fjs}/effects/node/module.js +13 -13
  116. package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
  117. package/{fs → fjs}/effects/node/proof.f.js +106 -292
  118. package/{fs → fjs}/effects/node/virtual/module.f.js +7 -7
  119. package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +2 -0
  120. package/{fs → fjs}/effects/node/virtual/proof.f.js +44 -30
  121. package/{fs → fjs}/effects/proof.f.js +18 -47
  122. package/fjs/emergent_testing/all.test.js +4 -0
  123. package/{fs → fjs}/emergent_testing/example.f.d.ts +1 -1
  124. package/{fs → fjs}/emergent_testing/module.f.js +6 -6
  125. package/{fs → fjs}/emergent_testing/proof.f.d.ts +19 -17
  126. package/{fs → fjs}/emergent_testing/proof.f.js +14 -14
  127. package/fjs/emergent_testing/scenarios/all.js +1 -0
  128. package/{fs → fjs}/fsc/bnf.f.js +2 -2
  129. package/{fs → fjs}/fsc/json.f.js +1 -1
  130. package/{fs → fjs}/fsc/module.f.js +7 -7
  131. package/{fs → fjs}/fsc/proof.f.js +16 -38
  132. package/{fs → fjs}/fsm/module.f.js +9 -9
  133. package/{fs → fjs}/fsm/proof.f.js +12 -19
  134. package/{fs → fjs}/js/tokenizer/module.f.js +7 -7
  135. package/{fs → fjs}/js/tokenizer/proof.f.js +5 -5
  136. package/{fs → fjs}/mcp/module.f.d.ts +20 -13
  137. package/{fs → fjs}/mcp/module.f.js +16 -9
  138. package/{fs → fjs}/mcp/proof.f.js +17 -17
  139. package/{fs → fjs}/mcp/stdio/module.f.d.ts +4 -4
  140. package/{fs → fjs}/mcp/stdio/module.f.js +12 -12
  141. package/{fs → fjs}/mcp/stdio/proof.f.js +10 -10
  142. package/{fs → fjs/media}/html/module.f.d.ts +3 -3
  143. package/{fs → fjs/media}/html/module.f.js +9 -9
  144. package/{fs → fjs/media}/html/proof.f.js +12 -33
  145. package/fjs/media/json/module.f.d.ts +50 -0
  146. package/{fs → fjs/media}/json/module.f.js +7 -7
  147. package/{fs → fjs/media}/json/parser/module.f.d.ts +7 -2
  148. package/{fs → fjs/media}/json/parser/module.f.js +21 -7
  149. package/{fs → fjs/media}/json/parser/proof.f.js +45 -120
  150. package/{fs → fjs/media}/json/proof.f.js +4 -4
  151. package/fjs/media/json/rpc/module.f.d.ts +114 -0
  152. package/{fs → fjs/media}/json/rpc/module.f.js +4 -4
  153. package/{fs → fjs/media}/json/rpc/proof.f.js +4 -4
  154. package/fjs/media/json/schema/module.f.d.ts +78 -0
  155. package/{fs → fjs/media}/json/schema/module.f.js +25 -41
  156. package/{fs → fjs/media}/json/schema/proof.f.js +6 -9
  157. package/{fs → fjs/media}/json/serializer/module.f.d.ts +1 -1
  158. package/{fs → fjs/media}/json/serializer/module.f.js +2 -2
  159. package/{fs → fjs/media}/json/serializer/proof.f.js +12 -29
  160. package/{fs → fjs/media}/json/tokenizer/module.f.d.ts +2 -2
  161. package/{fs → fjs/media}/json/tokenizer/module.f.js +4 -4
  162. package/{fs → fjs/media}/json/tokenizer/proof.f.js +5 -5
  163. package/fjs/media/module.f.d.ts +37 -0
  164. package/fjs/media/module.f.js +23 -0
  165. package/fjs/media/proof.f.d.ts +9 -0
  166. package/fjs/media/proof.f.js +58 -0
  167. package/fjs/media/revision/module.f.d.ts +78 -0
  168. package/fjs/media/revision/module.f.js +122 -0
  169. package/fjs/media/revision/proof.f.d.ts +31 -0
  170. package/fjs/media/revision/proof.f.js +140 -0
  171. package/{fs/mime → fjs/media/type}/module.f.d.ts +6 -6
  172. package/{fs/mime → fjs/media/type}/module.f.js +6 -6
  173. package/{fs/mime → fjs/media/type}/proof.f.js +8 -12
  174. package/fjs/module.f.d.ts +2 -0
  175. package/{fs/fjs → fjs}/module.f.js +9 -9
  176. package/fjs/module.js +4 -0
  177. package/{fs → fjs}/path/module.f.js +2 -2
  178. package/{fs → fjs}/path/proof.f.js +27 -78
  179. package/{fs/fjs → fjs}/proof.f.js +6 -4
  180. package/{fs → fjs}/sul/id/module.f.js +9 -9
  181. package/{fs → fjs}/sul/id/proof.f.js +12 -26
  182. package/{fs → fjs}/sul/level/hash/module.f.js +3 -3
  183. package/{fs → fjs}/sul/level/hash/proof.f.js +8 -8
  184. package/{fs → fjs}/sul/level/literal/module.f.js +5 -5
  185. package/{fs → fjs}/sul/level/literal/proof.f.js +15 -29
  186. package/{fs → fjs}/sul/module.f.js +3 -3
  187. package/{fs → fjs}/sul/proof.f.js +3 -3
  188. package/fjs/text/ascii/proof.f.d.ts +6 -0
  189. package/fjs/text/ascii/proof.f.js +14 -0
  190. package/{fs → fjs}/text/code_point/module.f.js +12 -12
  191. package/{fs → fjs}/text/code_point/proof.f.js +1 -1
  192. package/{fs → fjs}/text/module.f.js +5 -5
  193. package/{fs → fjs}/text/proof.f.js +7 -12
  194. package/{fs → fjs}/text/sgr/module.f.js +2 -2
  195. package/{fs → fjs}/text/sgr/proof.f.js +8 -17
  196. package/{fs → fjs}/text/utf16/module.f.js +6 -6
  197. package/{fs → fjs}/text/utf16/proof.f.js +27 -70
  198. package/{fs → fjs}/text/utf8/module.f.js +22 -17
  199. package/{fs → fjs}/text/utf8/proof.f.js +59 -128
  200. package/{fs → fjs}/types/array/module.f.js +1 -1
  201. package/{fs → fjs}/types/array/proof.f.js +21 -55
  202. package/{fs → fjs}/types/bigfloat/module.f.js +1 -1
  203. package/fjs/types/bigfloat/proof.f.js +217 -0
  204. package/{fs → fjs}/types/bigint/module.f.js +2 -2
  205. package/{fs → fjs}/types/bigint/proof.f.js +51 -147
  206. package/{fs → fjs}/types/bit_vec/module.f.js +8 -8
  207. package/{fs → fjs}/types/bit_vec/proof.f.js +76 -218
  208. package/{fs → fjs}/types/btree/find/module.f.js +1 -1
  209. package/fjs/types/btree/find/proof.f.d.ts +3 -0
  210. package/fjs/types/btree/find/proof.f.js +108 -0
  211. package/{fs → fjs}/types/btree/module.f.js +2 -2
  212. package/fjs/types/btree/proof.f.d.ts +13 -0
  213. package/{fs → fjs}/types/btree/proof.f.js +12 -19
  214. package/{fs → fjs}/types/btree/remove/module.f.js +4 -4
  215. package/fjs/types/btree/remove/proof.f.d.ts +9 -0
  216. package/{fs → fjs}/types/btree/remove/proof.f.js +88 -235
  217. package/{fs → fjs}/types/btree/set/module.f.js +8 -5
  218. package/{fs → fjs}/types/btree/set/proof.f.js +39 -28
  219. package/{fs → fjs}/types/byte_set/module.f.js +2 -2
  220. package/fjs/types/byte_set/proof.f.js +79 -0
  221. package/{fs → fjs}/types/function/compare/proof.f.js +14 -37
  222. package/fjs/types/function/operator/proof.f.d.ts +23 -0
  223. package/{fs → fjs}/types/function/operator/proof.f.js +18 -49
  224. package/{fs → fjs}/types/function/proof.f.js +3 -4
  225. package/{fs → fjs}/types/list/module.f.js +2 -2
  226. package/fjs/types/list/proof.f.d.ts +30 -0
  227. package/{fs → fjs}/types/list/proof.f.js +59 -167
  228. package/{fs → fjs}/types/map/proof.f.js +6 -14
  229. package/fjs/types/nibble_set/proof.f.js +60 -0
  230. package/{fs → fjs}/types/nominal/proof.f.js +5 -10
  231. package/{fs → fjs}/types/nullable/module.f.js +2 -2
  232. package/fjs/types/nullable/proof.f.js +29 -0
  233. package/{fs → fjs}/types/number/module.f.js +5 -5
  234. package/{fs → fjs}/types/number/proof.f.js +10 -25
  235. package/{fs → fjs}/types/object/module.f.js +4 -4
  236. package/{fs → fjs}/types/object/proof.f.js +4 -7
  237. package/{fs → fjs}/types/ordered_map/module.f.js +6 -6
  238. package/{fs → fjs}/types/ordered_map/proof.f.js +3 -3
  239. package/fjs/types/patricia_trie/proof.f.d.ts +13 -0
  240. package/{fs → fjs}/types/patricia_trie/proof.f.js +22 -22
  241. package/{fs → fjs}/types/prime_field/module.f.js +3 -8
  242. package/{fs → fjs}/types/prime_field/proof.f.js +2 -2
  243. package/{fs → fjs}/types/range/module.f.d.ts +1 -1
  244. package/fjs/types/range/module.f.js +2 -0
  245. package/fjs/types/range/proof.f.js +9 -0
  246. package/{fs → fjs}/types/range_map/module.f.js +4 -4
  247. package/{fs → fjs}/types/range_map/proof.f.js +35 -88
  248. package/{fs → fjs}/types/result/module.js +1 -1
  249. package/fjs/types/result/proof.f.d.ts +12 -0
  250. package/fjs/types/result/proof.f.js +31 -0
  251. package/{fs → fjs}/types/rtti/common/module.f.d.ts +36 -1
  252. package/{fs → fjs}/types/rtti/common/module.f.js +48 -4
  253. package/fjs/types/rtti/common/proof.f.d.ts +8 -0
  254. package/fjs/types/rtti/common/proof.f.js +51 -0
  255. package/{fs → fjs}/types/rtti/module.f.d.ts +2 -2
  256. package/{fs → fjs}/types/rtti/module.f.js +1 -1
  257. package/{fs → fjs}/types/rtti/parse/module.f.js +16 -25
  258. package/{fs → fjs}/types/rtti/parse/proof.f.js +9 -20
  259. package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
  260. package/{fs → fjs}/types/rtti/ts/module.f.js +1 -1
  261. package/{fs → fjs}/types/rtti/ts/proof.f.js +2 -2
  262. package/{fs → fjs}/types/rtti/validate/module.f.js +11 -32
  263. package/{fs → fjs}/types/rtti/validate/proof.f.js +6 -11
  264. package/{fs → fjs}/types/sorted_list/module.f.js +3 -3
  265. package/{fs → fjs}/types/sorted_list/proof.f.js +14 -27
  266. package/{fs → fjs}/types/sorted_set/module.f.js +1 -1
  267. package/{fs → fjs}/types/sorted_set/proof.f.js +20 -45
  268. package/{fs → fjs}/types/string/module.f.js +4 -4
  269. package/fjs/types/string/proof.f.js +77 -0
  270. package/{fs → fjs}/types/string_set/module.f.js +6 -6
  271. package/fjs/types/string_set/proof.f.js +43 -0
  272. package/{fs → fjs}/types/ts/proof.f.d.ts +18 -18
  273. package/{fs → fjs}/types/ts/proof.f.js +16 -43
  274. package/{fs → fjs}/types/uint8array/module.f.js +10 -10
  275. package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
  276. package/{fs → fjs}/types/uint8array/proof.f.js +11 -11
  277. package/{fs → fjs}/website/module.f.js +3 -3
  278. package/fjs/website/proof.f.js +13 -0
  279. package/package.json +8 -8
  280. package/fs/asserts/module.f.d.ts +0 -4
  281. package/fs/asserts/module.f.js +0 -9
  282. package/fs/asserts/proof.f.d.ts +0 -8
  283. package/fs/asserts/proof.f.js +0 -51
  284. package/fs/bnf/data/module.f.d.ts +0 -30
  285. package/fs/bnf/descent/module.f.js +0 -119
  286. package/fs/bnf/proof.f.js +0 -104
  287. package/fs/cas/mcp/module.f.d.ts +0 -36
  288. package/fs/cas/mcp/module.f.js +0 -249
  289. package/fs/ci/config/module.f.d.ts +0 -43
  290. package/fs/ci/deno/module.f.js +0 -16
  291. package/fs/crypto/pow/proof.f.js +0 -161
  292. package/fs/djs/examples/m.f.d.ts +0 -2
  293. package/fs/djs/tokenizer/module.f.d.ts +0 -12
  294. package/fs/djs/tokenizer/module.f.js +0 -62
  295. package/fs/djs/tokenizer/proof.f.d.ts +0 -7
  296. package/fs/djs/tokenizer/proof.f.js +0 -543
  297. package/fs/djs/tokenizer-new/module.f.d.ts +0 -3
  298. package/fs/djs/tokenizer-new/module.f.js +0 -155
  299. package/fs/djs/transpiler/proof.f.js +0 -68
  300. package/fs/emergent_testing/all.test.js +0 -4
  301. package/fs/emergent_testing/scenarios/all.js +0 -1
  302. package/fs/fjs/module.f.d.ts +0 -2
  303. package/fs/fjs/module.js +0 -4
  304. package/fs/json/module.f.d.ts +0 -50
  305. package/fs/json/rpc/module.f.d.ts +0 -114
  306. package/fs/json/schema/module.f.d.ts +0 -77
  307. package/fs/text/ascii/proof.f.d.ts +0 -4
  308. package/fs/text/ascii/proof.f.js +0 -24
  309. package/fs/types/bigfloat/proof.f.js +0 -348
  310. package/fs/types/btree/find/proof.f.js +0 -151
  311. package/fs/types/btree/proof.f.d.ts +0 -7
  312. package/fs/types/btree/remove/proof.f.d.ts +0 -4
  313. package/fs/types/byte_set/proof.f.js +0 -120
  314. package/fs/types/function/operator/proof.f.d.ts +0 -12
  315. package/fs/types/list/proof.f.d.ts +0 -22
  316. package/fs/types/nibble_set/proof.f.js +0 -89
  317. package/fs/types/nullable/proof.f.js +0 -50
  318. package/fs/types/patricia_trie/proof.f.d.ts +0 -7
  319. package/fs/types/range/module.f.js +0 -2
  320. package/fs/types/range/proof.f.d.ts +0 -1
  321. package/fs/types/range/proof.f.js +0 -18
  322. package/fs/types/result/proof.f.d.ts +0 -6
  323. package/fs/types/result/proof.f.js +0 -52
  324. package/fs/types/string/proof.f.js +0 -118
  325. package/fs/types/string_set/proof.f.js +0 -82
  326. package/fs/website/proof.f.js +0 -16
  327. /package/{fs → fjs}/asn.1/module.f.d.ts +0 -0
  328. /package/{fs → fjs}/asn.1/proof.f.d.ts +0 -0
  329. /package/{fs → fjs}/base_n/module.f.d.ts +0 -0
  330. /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
  331. /package/{fs → fjs/basen}/base128/proof.f.d.ts +0 -0
  332. /package/{fs → fjs/basen}/cbase32/proof.f.d.ts +0 -0
  333. /package/{fs → fjs}/bnf/proof.f.d.ts +0 -0
  334. /package/{fs → fjs}/bnf/testlib.f.d.ts +0 -0
  335. /package/{fs → fjs}/cas/cli/module.f.d.ts +0 -0
  336. /package/{fs → fjs}/ci/bun/module.f.d.ts +0 -0
  337. /package/{fs → fjs}/ci/deno/module.f.d.ts +0 -0
  338. /package/{fs → fjs}/ci/module.f.d.ts +0 -0
  339. /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
  340. /package/{fs → fjs}/ci/proof.f.d.ts +0 -0
  341. /package/{fs → fjs}/ci/rust/module.f.d.ts +0 -0
  342. /package/{fs → fjs}/cli/module.f.d.ts +0 -0
  343. /package/{fs → fjs}/cli/proof.f.d.ts +0 -0
  344. /package/{fs/types → fjs/common}/monoid/module.f.js +0 -0
  345. /package/{fs/types → fjs/common}/monoid/proof.f.d.ts +0 -0
  346. /package/{fs → fjs}/crypto/hmac/module.f.d.ts +0 -0
  347. /package/{fs → fjs}/crypto/hmac/proof.f.d.ts +0 -0
  348. /package/{fs → fjs}/crypto/pow/module.f.d.ts +0 -0
  349. /package/{fs → fjs}/crypto/pow/proof.f.d.ts +0 -0
  350. /package/{fs → fjs}/crypto/secp/module.f.d.ts +0 -0
  351. /package/{fs → fjs}/crypto/secp/proof.f.d.ts +0 -0
  352. /package/{fs → fjs}/crypto/sha2/module.f.d.ts +0 -0
  353. /package/{fs → fjs}/crypto/sha2/proof.f.d.ts +0 -0
  354. /package/{fs → fjs}/crypto/sign/proof.f.d.ts +0 -0
  355. /package/{fs → fjs}/crypto/vdf/module.f.d.ts +0 -0
  356. /package/{fs → fjs}/crypto/vdf/proof.f.d.ts +0 -0
  357. /package/{fs → fjs}/dev/module.f.d.ts +0 -0
  358. /package/{fs → fjs}/dev/package_json/module.f.d.ts +0 -0
  359. /package/{fs → fjs}/dev/package_json/proof.f.d.ts +0 -0
  360. /package/{fs → fjs}/dev/proof.f.d.ts +0 -0
  361. /package/{fs → fjs}/djs/ast/module.f.d.ts +0 -0
  362. /package/{fs → fjs}/djs/ast/proof.f.d.ts +0 -0
  363. /package/{fs → fjs}/djs/examples/input.f.d.ts +0 -0
  364. /package/{fs → fjs}/djs/examples/input.f.js +0 -0
  365. /package/{fs → fjs}/djs/examples/m.f.js +0 -0
  366. /package/{fs → fjs}/djs/parser/proof.f.d.ts +0 -0
  367. /package/{fs → fjs}/djs/proof.f.d.ts +0 -0
  368. /package/{fs → fjs}/djs/serializer/module.f.d.ts +0 -0
  369. /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
  370. /package/{fs → fjs}/effects/list/module.f.d.ts +0 -0
  371. /package/{fs → fjs}/effects/list/module.f.js +0 -0
  372. /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
  373. /package/{fs → fjs}/effects/memory/proof.f.d.ts +0 -0
  374. /package/{fs → fjs}/effects/mock/module.f.d.ts +0 -0
  375. /package/{fs → fjs}/effects/mock/module.f.js +0 -0
  376. /package/{fs → fjs}/effects/module.d.ts +0 -0
  377. /package/{fs → fjs}/effects/module.f.d.ts +0 -0
  378. /package/{fs → fjs}/effects/module.js +0 -0
  379. /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
  380. /package/{fs → fjs}/effects/node/memory/proof.d.ts +0 -0
  381. /package/{fs → fjs}/effects/node/virtual/module.f.d.ts +0 -0
  382. /package/{fs → fjs}/effects/proof.f.d.ts +0 -0
  383. /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
  384. /package/{fs → fjs}/emergent_testing/example.f.js +0 -0
  385. /package/{fs → fjs}/emergent_testing/module.f.d.ts +0 -0
  386. /package/{fs → fjs}/emergent_testing/scenarios/all.d.ts +0 -0
  387. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -0
  388. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.js +0 -0
  389. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -0
  390. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.js +0 -0
  391. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.d.ts +0 -0
  392. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.js +0 -0
  393. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.d.ts +0 -0
  394. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.js +0 -0
  395. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.d.ts +0 -0
  396. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.js +0 -0
  397. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.d.ts +0 -0
  398. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.js +0 -0
  399. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.d.ts +0 -0
  400. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.js +0 -0
  401. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.d.ts +0 -0
  402. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.js +0 -0
  403. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.d.ts +0 -0
  404. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.js +0 -0
  405. /package/{fs → fjs}/fsc/bnf.f.d.ts +0 -0
  406. /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
  407. /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
  408. /package/{fs → fjs}/fsc/proof.f.d.ts +0 -0
  409. /package/{fs → fjs}/fsm/module.f.d.ts +0 -0
  410. /package/{fs → fjs}/fsm/proof.f.d.ts +0 -0
  411. /package/{fs → fjs}/js/tokenizer/module.f.d.ts +0 -0
  412. /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
  413. /package/{fs → fjs}/mcp/proof.f.d.ts +0 -0
  414. /package/{fs → fjs}/mcp/stdio/proof.f.d.ts +0 -0
  415. /package/{fs → fjs/media}/html/proof.f.d.ts +0 -0
  416. /package/{fs → fjs/media}/json/parser/proof.f.d.ts +0 -0
  417. /package/{fs → fjs/media}/json/proof.f.d.ts +0 -0
  418. /package/{fs → fjs/media}/json/rpc/proof.f.d.ts +0 -0
  419. /package/{fs → fjs/media}/json/schema/proof.f.d.ts +0 -0
  420. /package/{fs → fjs/media}/json/serializer/proof.f.d.ts +0 -0
  421. /package/{fs → fjs/media}/json/tokenizer/proof.f.d.ts +0 -0
  422. /package/{fs/mime → fjs/media/type}/proof.f.d.ts +0 -0
  423. /package/{fs/fjs → fjs}/module.d.ts +0 -0
  424. /package/{fs → fjs}/path/module.f.d.ts +0 -0
  425. /package/{fs → fjs}/path/proof.f.d.ts +0 -0
  426. /package/{fs/fjs → fjs}/proof.f.d.ts +0 -0
  427. /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
  428. /package/{fs → fjs}/sul/id/proof.f.d.ts +0 -0
  429. /package/{fs → fjs}/sul/level/hash/module.f.d.ts +0 -0
  430. /package/{fs → fjs}/sul/level/hash/proof.f.d.ts +0 -0
  431. /package/{fs → fjs}/sul/level/literal/module.f.d.ts +0 -0
  432. /package/{fs → fjs}/sul/level/literal/proof.f.d.ts +0 -0
  433. /package/{fs → fjs}/sul/module.f.d.ts +0 -0
  434. /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
  435. /package/{fs → fjs}/text/ascii/module.f.d.ts +0 -0
  436. /package/{fs → fjs}/text/ascii/module.f.js +0 -0
  437. /package/{fs → fjs}/text/code_point/module.f.d.ts +0 -0
  438. /package/{fs → fjs}/text/code_point/proof.f.d.ts +0 -0
  439. /package/{fs → fjs}/text/module.f.d.ts +0 -0
  440. /package/{fs → fjs}/text/proof.f.d.ts +0 -0
  441. /package/{fs → fjs}/text/sgr/module.f.d.ts +0 -0
  442. /package/{fs → fjs}/text/sgr/proof.f.d.ts +0 -0
  443. /package/{fs → fjs}/text/utf16/module.f.d.ts +0 -0
  444. /package/{fs → fjs}/text/utf16/proof.f.d.ts +0 -0
  445. /package/{fs → fjs}/text/utf8/module.f.d.ts +0 -0
  446. /package/{fs → fjs}/text/utf8/proof.f.d.ts +0 -0
  447. /package/{fs → fjs}/types/array/module.f.d.ts +0 -0
  448. /package/{fs → fjs}/types/array/proof.f.d.ts +0 -0
  449. /package/{fs → fjs}/types/bigfloat/module.f.d.ts +0 -0
  450. /package/{fs → fjs}/types/bigfloat/proof.f.d.ts +0 -0
  451. /package/{fs → fjs}/types/bigint/module.f.d.ts +0 -0
  452. /package/{fs → fjs}/types/bigint/proof.f.d.ts +0 -0
  453. /package/{fs → fjs}/types/bit_vec/module.f.d.ts +0 -0
  454. /package/{fs → fjs}/types/bit_vec/proof.f.d.ts +0 -0
  455. /package/{fs → fjs}/types/btree/find/module.f.d.ts +0 -0
  456. /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
  457. /package/{fs → fjs}/types/btree/remove/module.f.d.ts +0 -0
  458. /package/{fs → fjs}/types/btree/set/module.f.d.ts +0 -0
  459. /package/{fs → fjs}/types/btree/set/proof.f.d.ts +0 -0
  460. /package/{fs → fjs}/types/btree/types/module.f.d.ts +0 -0
  461. /package/{fs → fjs}/types/btree/types/module.f.js +0 -0
  462. /package/{fs → fjs}/types/byte_set/module.f.d.ts +0 -0
  463. /package/{fs → fjs}/types/byte_set/proof.f.d.ts +0 -0
  464. /package/{fs → fjs}/types/function/compare/module.f.d.ts +0 -0
  465. /package/{fs → fjs}/types/function/compare/module.f.js +0 -0
  466. /package/{fs/types/btree/find → fjs/types/function/compare}/proof.f.d.ts +0 -0
  467. /package/{fs → fjs}/types/function/module.f.d.ts +0 -0
  468. /package/{fs → fjs}/types/function/module.f.js +0 -0
  469. /package/{fs → fjs}/types/function/operator/module.f.d.ts +0 -0
  470. /package/{fs → fjs}/types/function/operator/module.f.js +0 -0
  471. /package/{fs/types/function/compare → fjs/types/function}/proof.f.d.ts +0 -0
  472. /package/{fs → fjs}/types/list/module.f.d.ts +0 -0
  473. /package/{fs → fjs}/types/map/module.f.d.ts +0 -0
  474. /package/{fs → fjs}/types/map/module.f.js +0 -0
  475. /package/{fs → fjs}/types/map/proof.f.d.ts +0 -0
  476. /package/{fs → fjs}/types/nibble_set/module.f.d.ts +0 -0
  477. /package/{fs → fjs}/types/nibble_set/module.f.js +0 -0
  478. /package/{fs → fjs}/types/nibble_set/proof.f.d.ts +0 -0
  479. /package/{fs → fjs}/types/nominal/module.f.d.ts +0 -0
  480. /package/{fs → fjs}/types/nominal/module.f.js +0 -0
  481. /package/{fs → fjs}/types/nominal/proof.f.d.ts +0 -0
  482. /package/{fs → fjs}/types/nullable/module.f.d.ts +0 -0
  483. /package/{fs → fjs}/types/nullable/proof.f.d.ts +0 -0
  484. /package/{fs → fjs}/types/number/module.f.d.ts +0 -0
  485. /package/{fs → fjs}/types/number/proof.f.d.ts +0 -0
  486. /package/{fs → fjs}/types/object/module.f.d.ts +0 -0
  487. /package/{fs → fjs}/types/object/proof.f.d.ts +0 -0
  488. /package/{fs → fjs}/types/option/module.f.d.ts +0 -0
  489. /package/{fs → fjs}/types/option/module.f.js +0 -0
  490. /package/{fs → fjs}/types/ordered_map/module.f.d.ts +0 -0
  491. /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
  492. /package/{fs → fjs}/types/patricia_trie/module.f.d.ts +0 -0
  493. /package/{fs → fjs}/types/patricia_trie/module.f.js +0 -0
  494. /package/{fs → fjs}/types/phantom/module.f.d.ts +0 -0
  495. /package/{fs → fjs}/types/phantom/module.f.js +0 -0
  496. /package/{fs → fjs}/types/prime_field/module.f.d.ts +0 -0
  497. /package/{fs → fjs}/types/prime_field/proof.f.d.ts +0 -0
  498. /package/{fs/types/function → fjs/types/range}/proof.f.d.ts +0 -0
  499. /package/{fs → fjs}/types/range_map/module.f.d.ts +0 -0
  500. /package/{fs → fjs}/types/range_map/proof.f.d.ts +0 -0
  501. /package/{fs → fjs}/types/result/module.d.ts +0 -0
  502. /package/{fs → fjs}/types/result/module.f.d.ts +0 -0
  503. /package/{fs → fjs}/types/result/module.f.js +0 -0
  504. /package/{fs → fjs}/types/rtti/parse/module.f.d.ts +0 -0
  505. /package/{fs → fjs}/types/rtti/parse/proof.f.d.ts +0 -0
  506. /package/{fs → fjs}/types/rtti/proof.f.d.ts +0 -0
  507. /package/{fs → fjs}/types/rtti/proof.f.js +0 -0
  508. /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
  509. /package/{fs → fjs}/types/rtti/validate/module.f.d.ts +0 -0
  510. /package/{fs → fjs}/types/rtti/validate/proof.f.d.ts +0 -0
  511. /package/{fs → fjs}/types/sorted_list/module.f.d.ts +0 -0
  512. /package/{fs → fjs}/types/sorted_list/proof.f.d.ts +0 -0
  513. /package/{fs → fjs}/types/sorted_set/module.f.d.ts +0 -0
  514. /package/{fs → fjs}/types/sorted_set/proof.f.d.ts +0 -0
  515. /package/{fs → fjs}/types/string/module.f.d.ts +0 -0
  516. /package/{fs → fjs}/types/string/proof.f.d.ts +0 -0
  517. /package/{fs → fjs}/types/string_set/module.f.d.ts +0 -0
  518. /package/{fs → fjs}/types/string_set/proof.f.d.ts +0 -0
  519. /package/{fs → fjs}/types/ts/module.f.d.ts +0 -0
  520. /package/{fs → fjs}/types/ts/module.f.js +0 -0
  521. /package/{fs → fjs}/types/uint8array/module.f.d.ts +0 -0
  522. /package/{fs → fjs}/website/module.f.d.ts +0 -0
  523. /package/{fs → fjs}/website/proof.f.d.ts +0 -0
@@ -1,30 +1,30 @@
1
- import { assertEq } from "../../../asserts/module.f.js";
2
- import { awaitIfPromise, fetch, rm, writeFile, readFile, readdir, import_, rename, readBytes } from "../module.f.js";
3
- import { maxLengthBytes, vec, vec8 } from "../../../types/bit_vec/module.f.js";
4
- import { emptyState, virtual } from "./module.f.js";
1
+ import { assert, assertEq } from '../../../asserts/module.f.js';
2
+ import { access, awaitIfPromise, fetch, rm, writeFile, readFile, readdir, import_, rename, readBytes, writeBytes } from '../module.f.js';
3
+ import { maxLengthBytes, vec, vec8 } from '../../../types/bit_vec/module.f.js';
4
+ import { emptyState, virtual } from './module.f.js';
5
5
  export const proof = {
6
6
  rm: {
7
7
  success: () => {
8
8
  const root = { 'a.txt': [vec8(0x42n)] };
9
9
  const [, result] = virtual({ ...emptyState, root })(rm('a.txt'));
10
- assertEq(result[0], 'ok');
10
+ assert(result[0] === 'ok');
11
11
  },
12
12
  notFound: () => {
13
13
  const [, result] = virtual(emptyState)(rm('notexist.txt'));
14
- assertEq(result[0], 'error');
14
+ assert(result[0] === 'error');
15
15
  },
16
16
  isDirectory: () => {
17
17
  const inner = {};
18
18
  const root = { 'mydir': inner };
19
19
  const [, result] = virtual({ ...emptyState, root })(rm('mydir'));
20
- assertEq(result[0], 'error');
20
+ assert(result[0] === 'error');
21
21
  },
22
22
  },
23
23
  writeFileOnDirectory: () => {
24
24
  const inner = {};
25
25
  const root = { 'mydir': inner };
26
26
  const [, result] = virtual({ ...emptyState, root })(writeFile('mydir', vec8(0x42n)));
27
- assertEq(result[0], 'error');
27
+ assert(result[0] === 'error');
28
28
  },
29
29
  readdirRecursive: () => {
30
30
  const file = [vec8(0x42n)];
@@ -32,12 +32,19 @@ export const proof = {
32
32
  const outer = { 'sub': sub };
33
33
  const root = { 'mydir': outer };
34
34
  const [, result] = virtual({ ...emptyState, root })(readdir('mydir', { recursive: true }));
35
- assertEq(result[0], 'ok');
36
- if (result[0] !== 'ok') {
37
- throw result;
38
- }
35
+ assert(result[0] === 'ok');
36
+ assert(result[0] === 'ok', result);
39
37
  assertEq(result[1].length, 2);
40
38
  },
39
+ accessNestedPathThroughFile: () => {
40
+ // 'a/b/c' where 'a' is a file: the operation wrapper's "not a directory"
41
+ // fallback passes the full remaining path through unchanged, covering the
42
+ // path.length !== 1 branch of the access op (only path.length === 0 was
43
+ // otherwise exercised).
44
+ const root = { 'a': [vec8(0x42n)] };
45
+ const [, result] = virtual({ ...emptyState, root })(access('a/b/c'));
46
+ assert(result[0] === 'error');
47
+ },
41
48
  readFileIntoDir: () => {
42
49
  // 'a/b' where both 'a' and 'b' are directories
43
50
  // hits path.length === 0 in operation's f and path.length !== 1 in readFile op
@@ -45,7 +52,7 @@ export const proof = {
45
52
  const outer = { 'b': inner };
46
53
  const root = { 'a': outer };
47
54
  const [, result] = virtual({ ...emptyState, root })(readFile('a/b'));
48
- assertEq(result[0], 'error');
55
+ assert(result[0] === 'error');
49
56
  },
50
57
  awaitNonPromise: () => {
51
58
  // a non-promise value passes through the virtual `await` handler as-is
@@ -55,19 +62,19 @@ export const proof = {
55
62
  fetchNotFound: () => {
56
63
  // covers the `result === undefined` branch of the `fetch` handler
57
64
  const [, result] = virtual(emptyState)(fetch('https://example.com/missing'));
58
- assertEq(result[0], 'error');
65
+ assert(result[0] === 'error');
59
66
  },
60
67
  importNestedPath: () => {
61
68
  // import_ on a path whose parent does not exist covers the
62
69
  // path.length !== 1 branch of the import_ op
63
70
  const [, result] = virtual(emptyState)(import_('a/b'));
64
- assertEq(result[0], 'error');
71
+ assert(result[0] === 'error');
65
72
  },
66
73
  importNonModule: () => {
67
74
  // import_ on a Vec (not a JsModule) covers typeof entry !== 'function' branch
68
75
  const root = { 'module.f.ts': [vec8(0x42n)] };
69
76
  const [, result] = virtual({ ...emptyState, root })(import_('module.f.ts'));
70
- assertEq(result[0], 'error');
77
+ assert(result[0] === 'error');
71
78
  },
72
79
  throw: {
73
80
  readFileOnJsModule: () => {
@@ -80,37 +87,37 @@ export const proof = {
80
87
  // rename('a', 'a') should succeed as a no-op, not reject
81
88
  const root = { 'a': [vec8(0x42n)] };
82
89
  const [, result] = virtual({ ...emptyState, root })(rename('a', 'a'));
83
- assertEq(result[0], 'ok');
90
+ assert(result[0] === 'ok');
84
91
  },
85
92
  renameIntoOwnSubtree: () => {
86
93
  // rename('a', 'a/b') should fail (dst inside src's subtree)
87
94
  const root = { 'a': { 'b': [vec8(0x42n)] } };
88
95
  const [, result] = virtual({ ...emptyState, root })(rename('a', 'a/b'));
89
- assertEq(result[0], 'error');
96
+ assert(result[0] === 'error');
90
97
  },
91
98
  renameOntoOwnAncestor: () => {
92
99
  // rename('a/b', 'a') should fail (src inside dst's subtree)
93
100
  const root = { 'a': { 'b': [vec8(0x42n)] } };
94
101
  const [, result] = virtual({ ...emptyState, root })(rename('a/b', 'a'));
95
- assertEq(result[0], 'error');
102
+ assert(result[0] === 'error');
96
103
  },
97
104
  renameNonEmptyDirOverEmptyDir: () => {
98
105
  // rename a directory onto an empty directory should succeed
99
106
  const root = { 'src': { 'file': [vec8(0x42n)] }, 'dst': {} };
100
107
  const [, result] = virtual({ ...emptyState, root })(rename('src', 'dst'));
101
- assertEq(result[0], 'ok');
108
+ assert(result[0] === 'ok');
102
109
  },
103
110
  renameEmptyDirOverNonEmptyDir: () => {
104
111
  // rename an empty directory onto a non-empty directory should fail
105
112
  const root = { 'src': {}, 'dst': { 'file': [vec8(0x42n)] } };
106
113
  const [, result] = virtual({ ...emptyState, root })(rename('src', 'dst'));
107
- assertEq(result[0], 'error');
114
+ assert(result[0] === 'error');
108
115
  },
109
116
  renameFileOntoDirectory: () => {
110
117
  // rename a file to a path that is already an existing directory should fail
111
118
  const root = { 'myfile': [vec8(0x42n)], 'mydir': {} };
112
119
  const [, result] = virtual({ ...emptyState, root })(rename('myfile', 'mydir'));
113
- assertEq(result[0], 'error');
120
+ assert(result[0] === 'error');
114
121
  },
115
122
  readFileTooLarge: () => {
116
123
  // a file stored as two max-size chunks exceeds the limit; readFile must return an error
@@ -118,37 +125,37 @@ export const proof = {
118
125
  const chunk1 = vec(1n)(1n);
119
126
  const root = { 'big': [chunk0, chunk1] };
120
127
  const [, result] = virtual({ ...emptyState, root })(readFile('big'));
121
- assertEq(result[0], 'error');
128
+ assert(result[0] === 'error');
122
129
  },
123
130
  readBytesNegativeSize: () => {
124
131
  // readBytes with negative size should fail
125
132
  const root = { 'file': [vec8(0x42n)] };
126
133
  const [, result] = virtual({ ...emptyState, root })(readBytes('file', 0, -1));
127
- assertEq(result[0], 'error');
134
+ assert(result[0] === 'error');
128
135
  },
129
136
  readBytesZeroSize: () => {
130
137
  // readBytes with zero size should succeed and return empty vec
131
138
  const root = { 'file': [vec8(0x42n)] };
132
139
  const [, result] = virtual({ ...emptyState, root })(readBytes('file', 0, 0));
133
- assertEq(result[0], 'ok');
140
+ assert(result[0] === 'ok');
134
141
  },
135
142
  readBytesNegativeOffset: () => {
136
143
  // readBytes with negative offset should fail
137
144
  const root = { 'file': [vec8(0x42n)] };
138
145
  const [, result] = virtual({ ...emptyState, root })(readBytes('file', -1, 1));
139
- assertEq(result[0], 'error');
146
+ assert(result[0] === 'error');
140
147
  },
141
148
  readBytesFractionalSize: () => {
142
149
  // readBytes with fractional size should fail rather than throw RangeError
143
150
  const root = { 'file': [vec8(0x42n)] };
144
151
  const [, result] = virtual({ ...emptyState, root })(readBytes('file', 0, 1.5));
145
- assertEq(result[0], 'error');
152
+ assert(result[0] === 'error');
146
153
  },
147
154
  readBytesFractionalOffset: () => {
148
155
  // readBytes with fractional offset should fail rather than throw RangeError
149
156
  const root = { 'file': [vec8(0x42n)] };
150
157
  const [, result] = virtual({ ...emptyState, root })(readBytes('file', 0.5, 1));
151
- assertEq(result[0], 'error');
158
+ assert(result[0] === 'error');
152
159
  },
153
160
  readBytesAcrossChunkBoundary: () => {
154
161
  // Two 128 KiB chunks; read 2 bytes spanning the boundary (last byte of chunk 0, first of chunk 1).
@@ -157,7 +164,14 @@ export const proof = {
157
164
  const chunk1 = vec(maxLengthBytes * 8n)(0xbbn);
158
165
  const root = { 'big': [chunk0, chunk1] };
159
166
  const [, result] = virtual({ ...emptyState, root })(readBytes('big', chunkSize - 1, 2));
160
- assertEq(result[0], 'ok');
167
+ assert(result[0] === 'ok');
168
+ },
169
+ writeBytesWrongOffset: () => {
170
+ // writeBytes is append-only; an offset that doesn't match the current
171
+ // file size must fail rather than silently create a hole.
172
+ const root = { 'file': [vec8(0x42n)] };
173
+ const [, result] = virtual({ ...emptyState, root })(writeBytes('file', 5, vec8(0x43n)));
174
+ assert(result[0] === 'error');
161
175
  },
162
176
  largeFileReadBytes: () => {
163
177
  // A file stored as two 128 KiB chunks is larger than maxLengthBytes.
@@ -167,6 +181,6 @@ export const proof = {
167
181
  const chunk1 = vec(maxLengthBytes * 8n)(0xffn);
168
182
  const root = { 'large': [chunk0, chunk1] };
169
183
  const [, result] = virtual({ ...emptyState, root })(readBytes('large', chunkSize, 1));
170
- assertEq(result[0], 'ok');
184
+ assert(result[0] === 'ok');
171
185
  },
172
186
  };
@@ -1,13 +1,10 @@
1
- import { decode, do_, foldStep, forEachStep, lazy, match, okStep, pure } from "./module.f.js";
2
- import { error, ok } from "../types/result/module.f.js";
1
+ import { decode, do_, foldStep, forEachStep, lazy, match, okStep, pure } from './module.f.js';
2
+ import { error, ok } from '../types/result/module.f.js';
3
+ import { assert, assertEq } from '../asserts/module.f.js';
3
4
  const assertPure = (e, expected) => {
4
5
  const d = decode(e);
5
- if (!d.done) {
6
- throw e.value;
7
- }
8
- if (d.result !== expected) {
9
- throw d.result;
10
- }
6
+ assert(d.done, e.value);
7
+ assertEq(d.result, expected);
11
8
  };
12
9
  const next = match({ add: (a, b) => a + b });
13
10
  export const proof = {
@@ -19,13 +16,9 @@ export const proof = {
19
16
  // The thunk runs only when the effect is decoded, not when `lazy` is called.
20
17
  let evaluated = false;
21
18
  const e = lazy(() => { evaluated = true; return 7; });
22
- if (evaluated) {
23
- throw 'lazy must not evaluate eagerly';
24
- }
19
+ assert(!(evaluated), 'lazy must not evaluate eagerly');
25
20
  assertPure(e, 7);
26
- if (!evaluated) {
27
- throw 'decode must force the thunk';
28
- }
21
+ assert(evaluated, 'decode must force the thunk');
29
22
  },
30
23
  step: () => {
31
24
  const e = lazy(() => 5).step(v => pure(v * 2));
@@ -60,56 +53,34 @@ export const proof = {
60
53
  ok: () => {
61
54
  const e = pure(ok(5)).step(okStep((v) => pure(ok(v * 2))));
62
55
  const d = decode(e);
63
- if (!d.done || d.result[0] !== 'ok' || d.result[1] !== 10) {
64
- throw e.value;
65
- }
56
+ assert(!(!d.done || d.result[0] !== 'ok' || d.result[1] !== 10), e.value);
66
57
  },
67
58
  error: () => {
68
59
  const e = pure(error('oops')).step(okStep(v => pure(ok(v * 2))));
69
60
  const d = decode(e);
70
- if (!d.done || d.result[0] !== 'error' || d.result[1] !== 'oops') {
71
- throw e.value;
72
- }
61
+ assert(!(!d.done || d.result[0] !== 'error' || d.result[1] !== 'oops'), e.value);
73
62
  },
74
63
  },
75
64
  decode: () => {
76
65
  const d = decode(do_('add')(2, 3));
77
- if (d.done) {
78
- throw d;
79
- }
80
- if (d.command !== 'add') {
81
- throw d.command;
82
- }
83
- if (d.payload[0] !== 2 || d.payload[1] !== 3) {
84
- throw d.payload;
85
- }
66
+ assert(!(d.done), d);
67
+ assertEq(d.command, 'add');
68
+ assert(!(d.payload[0] !== 2 || d.payload[1] !== 3), d.payload);
86
69
  assertPure(d.continuation(5), 5);
87
70
  },
88
71
  match: {
89
72
  done: () => {
90
73
  const r = next(pure(7));
91
- if (r[0] !== 'done') {
92
- throw r;
93
- }
94
- if (r[1] !== 7) {
95
- throw r[1];
96
- }
74
+ assert(r[0] === 'done', r);
75
+ assertEq(r[1], 7);
97
76
  },
98
77
  cont: () => {
99
78
  const r = next(do_('add')(2, 3));
100
- if (r[0] !== 'cont') {
101
- throw r;
102
- }
103
- if (r[1] !== 5) {
104
- throw r[1];
105
- }
79
+ assert(r[0] === 'cont', r);
80
+ assertEq(r[1], 5);
106
81
  const r2 = next(r[2](r[1]));
107
- if (r2[0] !== 'done') {
108
- throw r2;
109
- }
110
- if (r2[1] !== 5) {
111
- throw r2[1];
112
- }
82
+ assert(r2[0] === 'done', r2);
83
+ assertEq(r2[1], 5);
113
84
  },
114
85
  },
115
86
  };
@@ -0,0 +1,4 @@
1
+ import { runEffect } from '../effects/node/module.js';
2
+ import { register } from './module.f.js';
3
+ // we need `await` for Playwright.
4
+ await runEffect(register);
@@ -6,7 +6,7 @@ export declare const proof: {
6
6
  addTest: () => void;
7
7
  mulTest: (() => void)[];
8
8
  throw: {
9
- todo: () => never;
9
+ todo: typeof todo;
10
10
  divByZero: () => bigint;
11
11
  };
12
12
  generateSqrTests: () => (() => void)[];
@@ -10,12 +10,12 @@
10
10
  *
11
11
  * @module
12
12
  */
13
- import { reset, fgGreen, fgRed, bold, csiWrite } from "../text/sgr/module.f.js";
14
- import { all, awaitIfPromise, sandbox, test } from "../effects/node/module.f.js";
15
- import { pure } from "../effects/module.f.js";
16
- import { loadModuleMap, shouldLoad } from "../dev/module.f.js";
17
- import { invert } from "../types/result/module.f.js";
18
- import { definedEntries } from "../types/object/module.f.js";
13
+ import { reset, fgGreen, fgRed, bold, csiWrite } from '../text/sgr/module.f.js';
14
+ import { all, awaitIfPromise, sandbox, test } from '../effects/node/module.f.js';
15
+ import { pure } from '../effects/module.f.js';
16
+ import { loadModuleMap, shouldLoad } from '../dev/module.f.js';
17
+ import { invert } from '../types/result/module.f.js';
18
+ import { definedEntries } from '../types/object/module.f.js';
19
19
  const addPass = (delta) => (ts) => ({ ...ts, time: ts.time + delta, pass: ts.pass + 1 });
20
20
  const addFail = (delta) => (ts) => ({ ...ts, time: ts.time + delta, fail: ts.fail + 1 });
21
21
  const timeFormat = (a) => {
@@ -27,24 +27,25 @@ export declare const helpers: {
27
27
  functionWithParamsReturnsEmpty: () => void;
28
28
  };
29
29
  };
30
+ declare const defaultReporterExpectedToThrow: () => void;
30
31
  export declare const proof: {
31
- flat: () => void;
32
- nested: () => void;
33
- throwKey: () => void;
34
- throwKeyFail: () => void;
35
- mixedPassFail: () => void;
36
- returnValueSubTree: () => void;
37
- arrayKeys: () => void;
38
- nonTestFilesSkipped: () => void;
39
- multipleFiles: () => void;
40
- throwByFunctionName: () => void;
41
- namedExports: () => void;
42
- defaultReporterOutput: () => void;
43
- defaultReporterOutputLargeDuration: () => void;
44
- defaultReporterFailOutput: () => void;
45
- githubReporterOutput: () => void;
46
- registerSuffixes: () => void;
47
- defaultReporterExpectedToThrow: () => void;
32
+ flat: typeof flat;
33
+ nested: typeof nested;
34
+ throwKey: typeof throwKey;
35
+ throwKeyFail: typeof throwKeyFail;
36
+ mixedPassFail: typeof mixedPassFail;
37
+ returnValueSubTree: typeof returnValueSubTree;
38
+ arrayKeys: typeof arrayKeys;
39
+ nonTestFilesSkipped: typeof nonTestFilesSkipped;
40
+ multipleFiles: typeof multipleFiles;
41
+ throwByFunctionName: typeof throwByFunctionName;
42
+ namedExports: typeof namedExports;
43
+ defaultReporterOutput: typeof defaultReporterOutput;
44
+ defaultReporterOutputLargeDuration: typeof defaultReporterOutputLargeDuration;
45
+ defaultReporterFailOutput: typeof defaultReporterFailOutput;
46
+ githubReporterOutput: typeof githubReporterOutput;
47
+ registerSuffixes: typeof registerSuffixes;
48
+ defaultReporterExpectedToThrow: typeof defaultReporterExpectedToThrow;
48
49
  helpers: {
49
50
  isInteger: () => void;
50
51
  isIdentifier: () => void;
@@ -59,3 +60,4 @@ export declare const proof: {
59
60
  };
60
61
  };
61
62
  };
63
+ export {};
@@ -1,10 +1,10 @@
1
- import { log } from "../effects/node/module.f.js";
2
- import { defaultNodeProgramOptions, emptyState } from "../effects/node/virtual/module.f.js";
3
- import { virtual } from "../effects/node/virtual/module.f.js";
4
- import { assert, assertEq } from "../asserts/module.f.js";
5
- import { testAll, defaultReporter, fmtPath, fmtTerm, fmtImport, ghEscape, isInteger, isIdentifier, registerModule, parseTestSet, defaultTest, } from "./module.f.js";
6
- import { run as mockRun } from "../effects/mock/module.f.js";
7
- import { shouldLoad } from "../dev/module.f.js";
1
+ import { log } from '../effects/node/module.f.js';
2
+ import { defaultNodeProgramOptions, emptyState } from '../effects/node/virtual/module.f.js';
3
+ import { virtual } from '../effects/node/virtual/module.f.js';
4
+ import { assert, assertEq } from '../asserts/module.f.js';
5
+ import { testAll, defaultReporter, fmtPath, fmtTerm, fmtImport, ghEscape, isInteger, isIdentifier, registerModule, parseTestSet, defaultTest, } from './module.f.js';
6
+ import { run as mockRun } from '../effects/mock/module.f.js';
7
+ import { shouldLoad } from '../dev/module.f.js';
8
8
  const writeEvent = (event) => log(JSON.stringify(event));
9
9
  const parseEvents = (stdout) => stdout === '' ? [] : stdout.trimEnd().split('\n').map(line => JSON.parse(line));
10
10
  const makeReporter = () => ({
@@ -42,7 +42,7 @@ export const flat = () => {
42
42
  const [e0, e1, e2] = events;
43
43
  assert(e0[0] === 'result' && e0[2][0] === 'a');
44
44
  assert(e1[0] === 'result' && e1[2][0] === 'b');
45
- assertEq(e2[0], 'summary');
45
+ assert(e2[0] === 'summary');
46
46
  const [, pass, fail] = e2;
47
47
  assertEq(pass, 2);
48
48
  assertEq(fail, 0);
@@ -56,7 +56,7 @@ export const nested = () => {
56
56
  const [e0, e1, e2] = events;
57
57
  assert(e0[0] === 'result' && e0[2][1] === 'add');
58
58
  assert(e1[0] === 'result' && e1[2][1] === 'sub');
59
- assertEq(e2[0], 'summary');
59
+ assert(e2[0] === 'summary');
60
60
  const [, pass, fail] = e2;
61
61
  assertEq(pass, 2);
62
62
  assertEq(fail, 0);
@@ -69,7 +69,7 @@ export const throwKey = () => {
69
69
  assertEq(exit, 0);
70
70
  const [e0, e1] = events;
71
71
  assert(e0[0] === 'result' && e0[2][0] === 'throw' && e0[2][1] === 'a');
72
- assertEq(e1[0], 'summary');
72
+ assert(e1[0] === 'summary');
73
73
  const [, pass, fail] = e1;
74
74
  assertEq(pass, 1);
75
75
  assertEq(fail, 0);
@@ -81,7 +81,7 @@ export const throwKeyFail = () => {
81
81
  });
82
82
  assertEq(exit, 1);
83
83
  const [e0, e1] = events;
84
- assertEq(e0[0], 'result');
84
+ assert(e0[0] === 'result');
85
85
  const [, pass, fail] = e1;
86
86
  assertEq(pass, 0);
87
87
  assertEq(fail, 1);
@@ -93,7 +93,7 @@ export const mixedPassFail = () => {
93
93
  });
94
94
  assertEq(exit, 1);
95
95
  const summary = events[events.length - 1];
96
- assertEq(summary[0], 'summary');
96
+ assert(summary[0] === 'summary');
97
97
  const [, pass, fail] = summary;
98
98
  assertEq(pass, 1);
99
99
  assertEq(fail, 1);
@@ -245,12 +245,12 @@ export const registerSuffixes = () => {
245
245
  // Node (star = ''): no suffixes
246
246
  const [nodeNames] = runner([])(registerModule(noopCtx, './a.f.ts', proof, ''));
247
247
  assertEq(nodeNames.length, 2);
248
- assertEq(nodeNames[0], 'import("./a.f.ts").proof.ok()');
248
+ assert(nodeNames[0] === 'import("./a.f.ts").proof.ok()');
249
249
  assertEq(nodeNames[1], 'import("./a.f.ts").proof.throw.a()');
250
250
  // Bun/Playwright (star = ' ...'): ... on normal tests, path shows throw for throw-tests
251
251
  const [inlineNames] = runner([])(registerModule(noopCtx, './a.f.ts', proof, ' ...'));
252
252
  assertEq(inlineNames.length, 2);
253
- assertEq(inlineNames[0], 'import("./a.f.ts").proof.ok() ...');
253
+ assert(inlineNames[0] === 'import("./a.f.ts").proof.ok() ...');
254
254
  assertEq(inlineNames[1], 'import("./a.f.ts").proof.throw.a()');
255
255
  };
256
256
  // direct unit tests for the pure path-format helpers
@@ -0,0 +1 @@
1
+ import '../all.test.js';
@@ -1,5 +1,5 @@
1
- import { range, remove, set, option } from "../bnf/module.f.js";
2
- import { digit, json, unicode, ws0, ws1, wsNoNewLine0 } from "./json.f.js";
1
+ import { range, remove, set, option } from '../bnf/module.f.js';
2
+ import { digit, json, unicode, ws0, ws1, wsNoNewLine0 } from './json.f.js';
3
3
  export const wsModule = () => [ws0, module];
4
4
  const module = () => ({
5
5
  json: [json, ws0],
@@ -1,4 +1,4 @@
1
- import { join0Plus, rangeEncode, range, remove, repeat0Plus, set, option } from "../bnf/module.f.js";
1
+ import { join0Plus, rangeEncode, range, remove, repeat0Plus, set, option } from '../bnf/module.f.js';
2
2
  // space
3
3
  const wsNoNewLineItem = set(' \t\r');
4
4
  export const wsNoNewLine0 = repeat0Plus(wsNoNewLineItem);
@@ -3,13 +3,13 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { strictEqual } from "../types/function/operator/module.f.js";
7
- import { merge as rangeMapMerge, fromRange, get, } from "../types/range_map/module.f.js";
8
- import { reduce as listReduce, toArray, map } from "../types/list/module.f.js";
9
- import { range as asciiRange } from "../text/ascii/module.f.js";
10
- import { fn } from "../types/function/module.f.js";
11
- import { one } from "../types/range/module.f.js";
12
- import { assertEq } from "../asserts/module.f.js";
6
+ import { strictEqual } from '../types/function/operator/module.f.js';
7
+ import { merge as rangeMapMerge, fromRange, get, } from '../types/range_map/module.f.js';
8
+ import { reduce as listReduce, toArray, map } from '../types/list/module.f.js';
9
+ import { range as asciiRange } from '../text/ascii/module.f.js';
10
+ import { fn } from '../types/function/module.f.js';
11
+ import { one } from '../types/range/module.f.js';
12
+ import { assertEq } from '../asserts/module.f.js';
13
13
  const fromCharCode = String.fromCharCode;
14
14
  const unexpectedSymbol = codePoint => [[`unexpected symbol ${codePoint}`], unexpectedSymbol];
15
15
  const def = () => unexpectedSymbol;
@@ -1,7 +1,7 @@
1
- import { init, terminal } from "./module.f.js";
2
- import { one } from "../text/ascii/module.f.js";
3
- import { stringify } from "../json/module.f.js";
4
- import { assertEq } from "../asserts/module.f.js";
1
+ import { init, terminal } from './module.f.js';
2
+ import { one } from '../text/ascii/module.f.js';
3
+ import { stringify } from '../media/json/module.f.js';
4
+ import { assertEq } from '../asserts/module.f.js';
5
5
  const s = stringify(i => i);
6
6
  const f = v => {
7
7
  const n = one(v);
@@ -15,24 +15,18 @@ Object.getOwnPropertyDescriptor({ [name]: () => undefined }, name).value;
15
15
  export const proof = {
16
16
  a: () => {
17
17
  const x = f('1');
18
- if (x !== '["1"]') {
19
- throw x;
20
- }
18
+ assertEq(x, '["1"]');
21
19
  },
22
20
  b: () => {
23
21
  // exercises toInit: terminal returns empty output and loops back to init
24
22
  const result = init(terminal);
25
- if (result[0].length !== 0) {
26
- throw result[0];
27
- }
23
+ assertEq(result[0].length, 0, result[0]);
28
24
  },
29
25
  c: () => {
30
26
  // exercises unexpectedSymbol: next state after a token returns an error message
31
27
  const next = init(one('1'))[1];
32
28
  const result = next(42);
33
- if (result[0][0] !== 'unexpected symbol 42') {
34
- throw result[0][0];
35
- }
29
+ assertEq(result[0][0], 'unexpected symbol 42');
36
30
  },
37
31
  fn: () => {
38
32
  const o = {
@@ -40,58 +34,42 @@ export const proof = {
40
34
  };
41
35
  const f = o["hello world!"];
42
36
  const { name } = f;
43
- if (name !== "hello world!") {
44
- throw name;
45
- }
37
+ assertEq(name, "hello world!");
46
38
  //
47
39
  const f1 = { ["boring"]: () => undefined }["boring"];
48
- if (f1.name !== "boring") {
49
- throw f1.name;
50
- }
40
+ assertEq(f1.name, "boring");
51
41
  //
52
42
  const x = fn(() => undefined, "hello").name;
53
- if (x !== "") {
54
- throw x;
55
- }
43
+ assertEq(x, "");
56
44
  //
57
45
  const m = withName("boring2").name;
58
- if (m !== "boring2") {
59
- throw m;
60
- }
46
+ assertEq(m, "boring2");
61
47
  //
62
48
  const a = function x() { return undefined; };
63
- if (a.name !== "x") {
64
- throw a.name;
65
- }
49
+ assertEq(a.name, "x");
66
50
  },
67
51
  //
68
52
  f1: () => {
69
53
  const m1 = () => undefined;
70
- if (m1.name !== "m1") {
71
- throw m1.name;
72
- }
54
+ assertEq(m1.name, "m1");
73
55
  },
74
56
  //
75
57
  f2: () => {
76
58
  const m11 = (() => undefined);
77
- if (m11.name !== "m11") {
78
- throw m11.name;
79
- }
59
+ assertEq(m11.name, "m11");
80
60
  },
81
61
  //
82
62
  f3: () => {
83
63
  const m2 = true ? () => undefined : () => undefined;
84
64
  // for `bun` it is `m2`:
85
- // if (m2.name !== "") { throw m2.name }
65
+ // assertEq(m2.name, "")
86
66
  // see also https://github.com/oven-sh/bun/issues/20398
87
67
  },
88
68
  f4: () => {
89
69
  const id = (i) => i;
90
70
  const f = id(() => undefined);
91
71
  // for `bun` it is `m2`:
92
- if (f.name !== "") {
93
- throw f.name;
94
- }
72
+ assertEq(f.name, "");
95
73
  },
96
74
  chars: {
97
75
  whitespace: () => {
@@ -3,15 +3,15 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { equal, isEmpty, fold, toArray, scan, foldScan, empty as emptyList } from "../types/list/module.f.js";
7
- import { toRangeMap, union as byteSetUnion, one, empty, range } from "../types/byte_set/module.f.js";
8
- import { intersect, union as sortedSetUnion } from "../types/sorted_set/module.f.js";
9
- import { merge, get as rangeMapGet } from "../types/range_map/module.f.js";
10
- import { strictEqual } from "../types/function/operator/module.f.js";
11
- import { stringify } from "../json/module.f.js";
12
- import { identity } from "../types/function/module.f.js";
13
- import { stringToList } from "../text/utf16/module.f.js";
14
- import { cmp } from "../types/string/module.f.js";
6
+ import { equal, isEmpty, fold, toArray, scan, foldScan, empty as emptyList } from '../types/list/module.f.js';
7
+ import { toRangeMap, union as byteSetUnion, one, empty, range } from '../types/byte_set/module.f.js';
8
+ import { intersect, union as sortedSetUnion } from '../types/sorted_set/module.f.js';
9
+ import { merge, get as rangeMapGet } from '../types/range_map/module.f.js';
10
+ import { strictEqual } from '../types/function/operator/module.f.js';
11
+ import { stringify } from '../media/json/module.f.js';
12
+ import { identity } from '../types/function/module.f.js';
13
+ import { stringToList } from '../text/utf16/module.f.js';
14
+ import { cmp } from '../types/string/module.f.js';
15
15
  const stringifyIdentity = stringify(identity);
16
16
  export const toRange = s => {
17
17
  const [b, e] = toArray(stringToList(s));