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,32 +1,25 @@
1
- import { empty, isVec, uint, vec8 } from "../../types/bit_vec/module.f.js";
1
+ import { empty, isVec, uint, vec, vec8 } from "../../types/bit_vec/module.f.js";
2
2
  import { utf8, utf8ToString } from "../../text/module.f.js";
3
3
  import { decode, pure } from "../module.f.js";
4
4
  import { both, fetch, mkdir, now, readdir, readFile, readUtf8File, rm, sandbox, writeFile, writeUtf8File, rename, readBytes, randomInt, writeFromStream } from "./module.f.js";
5
5
  import { create as memCreate, read as memRead, write as memWrite } from "../memory/module.f.js";
6
- import { empty as listEmpty } from "../list/module.f.js";
6
+ import { empty as listEmpty, nonEmpty as listNonEmpty } from "../list/module.f.js";
7
7
  import { emptyState, virtual } from "./virtual/module.f.js";
8
+ import { assert, assertEq, assertNotNullish } from '../../asserts/module.f.js';
8
9
  export const proof = {
9
10
  map: () => {
10
11
  const e = readFile('hello').step(([k, v]) => {
11
- if (k === 'error') {
12
- throw v;
13
- }
12
+ assert(k !== 'error', v);
14
13
  return pure(uint(v) * 2n);
15
14
  });
16
15
  //
17
16
  let d = decode(e);
18
17
  while (!d.done) {
19
- if (d.command !== 'readFile') {
20
- throw d.command;
21
- }
22
- if (d.payload[0] !== 'hello') {
23
- throw d.payload;
24
- }
18
+ assertEq(d.command, 'readFile');
19
+ assert(d.payload[0] === 'hello', d.payload);
25
20
  d = decode(d.continuation(['ok', vec8(0x15n)]));
26
21
  }
27
- if (d.result !== 0x2an) {
28
- throw d.result;
29
- }
22
+ assertEq(d.result, 0x2an);
30
23
  },
31
24
  fetch: () => {
32
25
  const [_, [t, result]] = virtual({
@@ -35,49 +28,29 @@ export const proof = {
35
28
  'https://example.com/data': vec8(0x2an),
36
29
  },
37
30
  })(fetch('https://example.com/data'));
38
- if (t === 'error') {
39
- throw result;
40
- }
41
- if (!isVec(result)) {
42
- throw result;
43
- }
44
- if (uint(result) !== 0x2an) {
45
- throw result;
46
- }
31
+ assert(t !== 'error', result);
32
+ assert(isVec(result), result);
33
+ assertEq(uint(result), 0x2an, result);
47
34
  },
48
35
  mkdir: {
49
36
  one: () => {
50
37
  const [state, [t, result]] = virtual(emptyState)(mkdir('a'));
51
- if (t === 'error') {
52
- throw result;
53
- }
38
+ assert(t !== 'error', result);
54
39
  const a = state.root.a;
55
- if (a === undefined || Array.isArray(a)) {
56
- throw a;
57
- }
40
+ assert(!(a === undefined || Array.isArray(a)), a);
58
41
  },
59
42
  rec: () => {
60
43
  const [state, [t, result]] = virtual(emptyState)(mkdir('tmp/cache', { recursive: true }));
61
- if (t !== 'ok') {
62
- throw result;
63
- }
44
+ assert(t === 'ok', result);
64
45
  const tmp = state.root.tmp;
65
- if (typeof tmp !== 'object' || Array.isArray(tmp)) {
66
- throw state.root;
67
- }
46
+ assert(!(typeof tmp !== 'object' || Array.isArray(tmp)), state.root);
68
47
  const cache = tmp.cache;
69
- if (typeof cache !== 'object' || Array.isArray(cache)) {
70
- throw tmp;
71
- }
48
+ assert(!(typeof cache !== 'object' || Array.isArray(cache)), tmp);
72
49
  },
73
50
  nonRec: () => {
74
51
  const [state, [t, result]] = virtual(emptyState)(mkdir('tmp/cache'));
75
- if (t !== 'error') {
76
- throw result;
77
- }
78
- if (state.root.tmp !== undefined) {
79
- throw state.root.tmp;
80
- }
52
+ assert(t === 'error', result);
53
+ assertEq(state.root.tmp, undefined);
81
54
  }
82
55
  },
83
56
  readFile: {
@@ -89,42 +62,26 @@ export const proof = {
89
62
  },
90
63
  };
91
64
  const [state, [t, result]] = virtual(initial)(readFile('hello'));
92
- if (t === 'error') {
93
- throw result;
94
- }
95
- if (!isVec(result)) {
96
- throw result;
97
- }
98
- if (uint(result) !== 0x2an) {
99
- throw result;
100
- }
101
- if (state.root.hello === undefined) {
102
- throw state.root;
103
- }
65
+ assert(t !== 'error', result);
66
+ assert(isVec(result), result);
67
+ assertEq(uint(result), 0x2an, result);
68
+ assert(state.root.hello !== undefined, state.root);
104
69
  },
105
70
  nested: () => {
106
71
  const [_, [tag, result]] = virtual({
107
72
  ...emptyState,
108
73
  root: { tmp: { cache: [vec8(0x15n)] } }
109
74
  })(readFile('tmp/cache'));
110
- if (tag === 'error') {
111
- throw result;
112
- }
113
- if (uint(result) !== 0x15n) {
114
- throw result;
115
- }
75
+ assert(tag !== 'error', result);
76
+ assertEq(uint(result), 0x15n, result);
116
77
  },
117
78
  noSuchFile: () => {
118
79
  const [_, [t, result]] = virtual(emptyState)(readFile('hello'));
119
- if (t !== 'error') {
120
- throw result;
121
- }
80
+ assert(t === 'error', result);
122
81
  },
123
82
  nestedPath: () => {
124
83
  const [_, [t, result]] = virtual(emptyState)(readFile('tmp/cache'));
125
- if (t !== 'error') {
126
- throw result;
127
- }
84
+ assert(t === 'error', result);
128
85
  if (result.code !== 'ENOENT') {
129
86
  throw result;
130
87
  }
@@ -138,12 +95,8 @@ export const proof = {
138
95
  },
139
96
  };
140
97
  const [_, [t, result]] = virtual(initial)(readFile('smallFile'));
141
- if (t === 'error') {
142
- throw result;
143
- }
144
- if (!isVec(result)) {
145
- throw result;
146
- }
98
+ assert(t !== 'error', result);
99
+ assert(isVec(result), result);
147
100
  }
148
101
  },
149
102
  readUtf8File: {
@@ -152,18 +105,12 @@ export const proof = {
152
105
  ...emptyState,
153
106
  root: { hello: [utf8('Hello, world!')] },
154
107
  })(readUtf8File('hello'));
155
- if (t !== 'ok') {
156
- throw result;
157
- }
158
- if (result !== 'Hello, world!') {
159
- throw result;
160
- }
108
+ assert(t === 'ok', result);
109
+ assertEq(result, 'Hello, world!');
161
110
  },
162
111
  noSuchFile: () => {
163
112
  const [_, [t, result]] = virtual(emptyState)(readUtf8File('hello'));
164
- if (t !== 'error') {
165
- throw result;
166
- }
113
+ assert(t === 'error', result);
167
114
  },
168
115
  },
169
116
  readdir: {
@@ -177,9 +124,7 @@ export const proof = {
177
124
  },
178
125
  },
179
126
  })(readdir('', { recursive: true }));
180
- if (t !== 'ok') {
181
- throw result;
182
- }
127
+ assert(t === 'ok', result);
183
128
  const file = result.find(x => x.name === 'file');
184
129
  if (file === undefined || file.parentPath !== '' || !file.isFile) {
185
130
  throw `file: ${file}`;
@@ -199,63 +144,35 @@ export const proof = {
199
144
  },
200
145
  },
201
146
  })(readdir('', {}));
202
- if (t !== 'ok') {
203
- throw result;
204
- }
205
- if (result.length !== 2) {
206
- throw result;
207
- }
208
- const file = result.find(x => x.name === 'file');
209
- if (file === undefined) {
210
- throw file;
211
- }
212
- const dir = result.find(x => x.name === 'dir');
213
- if (dir === undefined) {
214
- throw dir;
215
- }
147
+ assert(t === 'ok', result);
148
+ assertEq(result.length, 2, result);
149
+ assertNotNullish(result.find(x => x.name === 'file'));
150
+ assertNotNullish(result.find(x => x.name === 'dir'));
216
151
  },
217
152
  nested: () => {
218
153
  const [_, [t, result]] = virtual({
219
154
  ...emptyState,
220
155
  root: { tmp: { cache: [vec8(0x15n)] } }
221
156
  })(readdir('tmp', { recursive: true }));
222
- if (t !== 'ok') {
223
- throw result;
224
- }
225
- if (result.length !== 1) {
226
- throw result;
227
- }
157
+ assert(t === 'ok', result);
158
+ assertEq(result.length, 1, result);
228
159
  const [r0] = result;
229
- if (r0.name !== 'cache') {
230
- throw r0;
231
- }
232
- if (r0.parentPath !== 'tmp') {
233
- throw r0;
234
- }
160
+ assertEq(r0.name, 'cache', r0);
161
+ assertEq(r0.parentPath, 'tmp', r0);
235
162
  },
236
163
  noSuchDir: () => {
237
164
  const [_, [t, result]] = virtual(emptyState)(readdir('tmp', { recursive: true }));
238
- if (t !== 'error') {
239
- throw result;
240
- }
241
- if (result !== 'invalid path') {
242
- throw result;
243
- }
165
+ assert(t === 'error', result);
166
+ assertEq(result, 'invalid path');
244
167
  },
245
168
  },
246
169
  writeFile: {
247
170
  one: () => {
248
171
  const [state, [t, result]] = virtual(emptyState)(writeFile('hello', vec8(0x2an)));
249
- if (t !== 'ok') {
250
- throw result;
251
- }
172
+ assert(t === 'ok', result);
252
173
  const file = state.root.hello;
253
- if (!Array.isArray(file)) {
254
- throw file;
255
- }
256
- if (uint(file[0]) !== 0x2an) {
257
- throw file;
258
- }
174
+ assert(Array.isArray(file), file);
175
+ assertEq(uint(file[0]), 0x2an, file);
259
176
  },
260
177
  overwrite: () => {
261
178
  const [state, [t, result]] = virtual({
@@ -264,28 +181,16 @@ export const proof = {
264
181
  hello: [vec8(0x15n)],
265
182
  },
266
183
  })(writeFile('hello', vec8(0x2an)));
267
- if (t !== 'ok') {
268
- throw result;
269
- }
184
+ assert(t === 'ok', result);
270
185
  const file = state.root.hello;
271
- if (!Array.isArray(file)) {
272
- throw file;
273
- }
274
- if (uint(file[0]) !== 0x2an) {
275
- throw file;
276
- }
186
+ assert(Array.isArray(file), file);
187
+ assertEq(uint(file[0]), 0x2an, file);
277
188
  },
278
189
  nestedPath: () => {
279
190
  const [state, [t, result]] = virtual(emptyState)(writeFile('tmp/cache', vec8(0x2an)));
280
- if (t !== 'error') {
281
- throw result;
282
- }
283
- if (result !== 'invalid file') {
284
- throw result;
285
- }
286
- if (state.root.tmp !== undefined) {
287
- throw state.root;
288
- }
191
+ assert(t === 'error', result);
192
+ assertEq(result, 'invalid file');
193
+ assertEq(state.root.tmp, undefined, state.root);
289
194
  },
290
195
  directory: () => {
291
196
  const [state, [t, result]] = virtual({
@@ -294,30 +199,18 @@ export const proof = {
294
199
  tmp: {},
295
200
  },
296
201
  })(writeFile('tmp', vec8(0x2an)));
297
- if (t !== 'error') {
298
- throw result;
299
- }
300
- if (result !== 'invalid file') {
301
- throw result;
302
- }
202
+ assert(t === 'error', result);
203
+ assertEq(result, 'invalid file');
303
204
  const tmp = state.root.tmp;
304
- if (tmp === undefined || Array.isArray(tmp)) {
305
- throw tmp;
306
- }
205
+ assert(!(tmp === undefined || Array.isArray(tmp)), tmp);
307
206
  },
308
207
  },
309
208
  writeUtf8File: () => {
310
209
  const [state, [t, result]] = virtual(emptyState)(writeUtf8File('hello', 'Hello, world!'));
311
- if (t !== 'ok') {
312
- throw result;
313
- }
210
+ assert(t === 'ok', result);
314
211
  const file = state.root.hello;
315
- if (!Array.isArray(file)) {
316
- throw file;
317
- }
318
- if (utf8ToString(file[0]) !== 'Hello, world!') {
319
- throw file;
320
- }
212
+ assert(Array.isArray(file), file);
213
+ assertEq(utf8ToString(file[0]), 'Hello, world!', file);
321
214
  },
322
215
  rm: {
323
216
  one: () => {
@@ -325,52 +218,32 @@ export const proof = {
325
218
  ...emptyState,
326
219
  root: { hello: [vec8(0x2an)] },
327
220
  })(rm('hello'));
328
- if (t !== 'ok') {
329
- throw result;
330
- }
331
- if (state.root.hello !== undefined) {
332
- throw state.root;
333
- }
221
+ assert(t === 'ok', result);
222
+ assertEq(state.root.hello, undefined, state.root);
334
223
  },
335
224
  nested: () => {
336
225
  const [state, [t, result]] = virtual({
337
226
  ...emptyState,
338
227
  root: { tmp: { cache: [vec8(0x15n)] } },
339
228
  })(rm('tmp/cache'));
340
- if (t !== 'ok') {
341
- throw result;
342
- }
229
+ assert(t === 'ok', result);
343
230
  const tmp = state.root.tmp;
344
- if (typeof tmp !== 'object' || Array.isArray(tmp)) {
345
- throw state.root;
346
- }
347
- if (tmp.cache !== undefined) {
348
- throw tmp;
349
- }
231
+ assert(!(typeof tmp !== 'object' || Array.isArray(tmp)), state.root);
232
+ assertEq(tmp.cache, undefined, tmp);
350
233
  },
351
234
  noSuchFile: () => {
352
235
  const [_, [t, result]] = virtual(emptyState)(rm('hello'));
353
- if (t !== 'error') {
354
- throw result;
355
- }
356
- if (result !== 'no such file') {
357
- throw result;
358
- }
236
+ assert(t === 'error', result);
237
+ assertEq(result, 'no such file');
359
238
  },
360
239
  isDirectory: () => {
361
240
  const [state, [t, result]] = virtual({
362
241
  ...emptyState,
363
242
  root: { tmp: {} },
364
243
  })(rm('tmp'));
365
- if (t !== 'error') {
366
- throw result;
367
- }
368
- if (result !== 'invalid path') {
369
- throw result;
370
- }
371
- if (state.root.tmp === undefined) {
372
- throw state.root;
373
- }
244
+ assert(t === 'error', result);
245
+ assertEq(result, 'invalid path');
246
+ assert(state.root.tmp !== undefined, state.root);
374
247
  },
375
248
  },
376
249
  both: () => {
@@ -381,24 +254,14 @@ export const proof = {
381
254
  b: [vec8(0x15n)],
382
255
  },
383
256
  })(both(readFile('a'))(readFile('b')));
384
- if (results[0][0] !== 'ok') {
385
- throw results[0];
386
- }
387
- if (results[1][0] !== 'ok') {
388
- throw results[1];
389
- }
390
- if (uint(results[0][1]) !== 0x2an) {
391
- throw results[0][1];
392
- }
393
- if (uint(results[1][1]) !== 0x15n) {
394
- throw results[1][1];
395
- }
257
+ assert(results[0][0] === 'ok', results[0]);
258
+ assert(results[1][0] === 'ok', results[1]);
259
+ assertEq(uint(results[0][1]), 0x2an, results[0][1]);
260
+ assertEq(uint(results[1][1]), 0x15n, results[1][1]);
396
261
  },
397
262
  now: () => {
398
263
  const [_, result] = virtual({ ...emptyState, epochNs: 1_000_000 })(now());
399
- if (result !== 1_000_000) {
400
- throw result;
401
- }
264
+ assertEq(result, 1_000_000);
402
265
  },
403
266
  sandbox: {
404
267
  // Virtual `sandbox` is now a pass-through: the function is expected
@@ -406,41 +269,27 @@ export const proof = {
406
269
  // (and `duration`) instead of the runner measuring.
407
270
  ok: () => {
408
271
  const [_, { result, duration }] = virtual(emptyState)(sandbox(() => ({ result: ['ok', 42], duration: 0 })));
409
- if (result[0] !== 'ok') {
410
- throw result;
411
- }
412
- if (result[1] !== 42) {
413
- throw result[1];
414
- }
415
- if (duration !== 0) {
416
- throw duration;
417
- }
272
+ assert(result[0] === 'ok', result);
273
+ assertEq(result[1], 42);
274
+ assertEq(duration, 0);
418
275
  },
419
276
  error: () => {
420
277
  const err = new Error('fail');
421
278
  const [_, { result }] = virtual(emptyState)(sandbox(() => ({ result: ['error', err], duration: 0 })));
422
- if (result[0] !== 'error') {
423
- throw result;
424
- }
425
- if (result[1] !== err) {
426
- throw result[1];
427
- }
279
+ assert(result[0] === 'error', result);
280
+ assertEq(result[1], err);
428
281
  },
429
282
  },
430
283
  memory: {
431
284
  createAndRead: () => {
432
285
  const effect = memCreate(42).step(key => memRead(key));
433
286
  const [_, value] = virtual(emptyState)(effect);
434
- if (value !== 42) {
435
- throw value;
436
- }
287
+ assertEq(value, 42);
437
288
  },
438
289
  createAndWrite: () => {
439
290
  const effect = memCreate(1).step(key => memWrite(key, 99).step(() => memRead(key)));
440
291
  const [_, value] = virtual(emptyState)(effect);
441
- if (value !== 99) {
442
- throw value;
443
- }
292
+ assertEq(value, 99);
444
293
  },
445
294
  },
446
295
  rename: {
@@ -449,52 +298,32 @@ export const proof = {
449
298
  ...emptyState,
450
299
  root: { src: [vec8(0x2an)], dst: [vec8(0x15n)] },
451
300
  })(rename('src', 'dst'));
452
- if (t !== 'ok') {
453
- throw result;
454
- }
455
- if (state.root.src !== undefined) {
456
- throw state.root;
457
- }
458
- if (!Array.isArray(state.root.dst)) {
459
- throw state.root;
460
- }
461
- if (uint(state.root.dst[0]) !== 0x2an) {
462
- throw state.root;
463
- }
301
+ assert(t === 'ok', result);
302
+ assertEq(state.root.src, undefined, state.root);
303
+ assert(Array.isArray(state.root.dst), state.root);
304
+ assertEq(uint(state.root.dst[0]), 0x2an, state.root);
464
305
  },
465
306
  nestedRename: () => {
466
307
  const [state, [t, result]] = virtual({
467
308
  ...emptyState,
468
309
  root: { tmp: { src: [vec8(0x2an)] } },
469
310
  })(rename('tmp/src', 'tmp/dst'));
470
- if (t !== 'ok') {
471
- throw result;
472
- }
311
+ assert(t === 'ok', result);
473
312
  const tmp = state.root.tmp;
474
- if (typeof tmp !== 'object' || Array.isArray(tmp)) {
475
- throw state.root;
476
- }
477
- if (tmp.src !== undefined) {
478
- throw tmp;
479
- }
313
+ assert(!(typeof tmp !== 'object' || Array.isArray(tmp)), state.root);
314
+ assertEq(tmp.src, undefined, tmp);
480
315
  },
481
316
  dirOverFile: () => {
482
317
  const [state, [t, result]] = virtual({
483
318
  ...emptyState,
484
319
  root: { src: {}, dst: [vec8(0x15n)] },
485
320
  })(rename('src', 'dst'));
486
- if (t !== 'error') {
487
- throw result;
488
- }
489
- if (!Array.isArray(state.root.dst)) {
490
- throw state.root;
491
- }
321
+ assert(t === 'error', result);
322
+ assert(Array.isArray(state.root.dst), state.root);
492
323
  },
493
324
  missingSource: () => {
494
325
  const [_, [t, result]] = virtual(emptyState)(rename('missing', 'dst'));
495
- if (t !== 'error') {
496
- throw result;
497
- }
326
+ assert(t === 'error', result);
498
327
  },
499
328
  },
500
329
  readBytes: {
@@ -503,55 +332,37 @@ export const proof = {
503
332
  ...emptyState,
504
333
  root: { file: [vec8(0xabn)] },
505
334
  })(readBytes('file', 0, 1));
506
- if (t !== 'ok') {
507
- throw result;
508
- }
509
- if (!isVec(result)) {
510
- throw result;
511
- }
335
+ assert(t === 'ok', result);
336
+ assert(isVec(result), result);
512
337
  },
513
338
  withOffset: () => {
514
339
  const [_, [t, result]] = virtual({
515
340
  ...emptyState,
516
341
  root: { file: [vec8(0xabn), vec8(0xcdn)] },
517
342
  })(readBytes('file', 1, 1));
518
- if (t !== 'ok') {
519
- throw result;
520
- }
521
- if (!isVec(result)) {
522
- throw result;
523
- }
343
+ assert(t === 'ok', result);
344
+ assert(isVec(result), result);
524
345
  },
525
346
  oversizeChunk: () => {
526
347
  const [_, [t, result]] = virtual({
527
348
  ...emptyState,
528
349
  root: { file: [vec8(0x2an)] },
529
350
  })(readBytes('file', 0, Number(2n ** 32n)));
530
- if (t !== 'error') {
531
- throw result;
532
- }
351
+ assert(t === 'error', result);
533
352
  },
534
353
  missingFile: () => {
535
354
  const [_, [t, result]] = virtual(emptyState)(readBytes('missing', 0, 4));
536
- if (t !== 'error') {
537
- throw result;
538
- }
355
+ assert(t === 'error', result);
539
356
  },
540
357
  },
541
358
  randomInt: {
542
359
  increments: () => {
543
360
  const [state1, r1] = virtual(emptyState)(randomInt());
544
- if (r1 !== 0) {
545
- throw r1;
546
- }
361
+ assertEq(r1, 0);
547
362
  const [state2, r2] = virtual(state1)(randomInt());
548
- if (r2 !== 1) {
549
- throw r2;
550
- }
363
+ assertEq(r2, 1);
551
364
  const [_, r3] = virtual(state2)(randomInt());
552
- if (r3 !== 2) {
553
- throw r3;
554
- }
365
+ assertEq(r3, 2);
555
366
  },
556
367
  },
557
368
  writeFromStream: {
@@ -562,13 +373,16 @@ export const proof = {
562
373
  ...emptyState,
563
374
  root: { hello: [vec8(0x2an)] },
564
375
  })(writeFromStream('hello', listEmpty()));
565
- if (t !== 'error') {
566
- throw result;
567
- }
376
+ assert(t === 'error', result);
568
377
  const file = state.root.hello;
569
- if (!Array.isArray(file) || uint(file[0]) !== 0x2an) {
570
- throw file;
571
- }
378
+ assert(!(!Array.isArray(file) || uint(file[0]) !== 0x2an), file);
379
+ },
380
+ invalidBufferSize: () => {
381
+ // A chunk whose bit length isn't a multiple of 8 trips the
382
+ // byte-alignment guard before `writeBytes` is ever called.
383
+ const [_, [t, result]] = virtual(emptyState)(writeFromStream('hello', listNonEmpty(['ok', vec(4n)(10n)], listEmpty())));
384
+ assert(t === 'error', result);
385
+ assertEq(result, 'invalid buffer size');
572
386
  },
573
387
  },
574
388
  };
@@ -3,13 +3,13 @@
3
3
  *
4
4
  * @module
5
5
  */
6
- import { todo } from "../../../asserts/module.f.js";
7
- import { isProperPrefix, join, parse } from "../../../path/module.f.js";
8
- import { utf8ToString } from "../../../text/module.f.js";
9
- import { empty, length, maxLengthBytes, msb, vec } from "../../../types/bit_vec/module.f.js";
10
- import { error, ok } from "../../../types/result/module.f.js";
11
- import { run } from "../../mock/module.f.js";
12
- import { asBase, asNominal } from "../../memory/module.f.js";
6
+ import { todo } from '../../../asserts/module.f.js';
7
+ import { isProperPrefix, join, parse } from '../../../path/module.f.js';
8
+ import { utf8ToString } from '../../../text/module.f.js';
9
+ import { empty, length, maxLengthBytes, msb, vec } from '../../../types/bit_vec/module.f.js';
10
+ import { error, ok } from '../../../types/result/module.f.js';
11
+ import { run } from '../../mock/module.f.js';
12
+ import { asBase, asNominal } from '../../memory/module.f.js';
13
13
  export const emptyState = {
14
14
  stdout: '',
15
15
  stderr: '',
@@ -6,6 +6,7 @@ export declare const proof: {
6
6
  };
7
7
  writeFileOnDirectory: () => void;
8
8
  readdirRecursive: () => void;
9
+ accessNestedPathThroughFile: () => void;
9
10
  readFileIntoDir: () => void;
10
11
  awaitNonPromise: () => void;
11
12
  fetchNotFound: () => void;
@@ -27,5 +28,6 @@ export declare const proof: {
27
28
  readBytesFractionalSize: () => void;
28
29
  readBytesFractionalOffset: () => void;
29
30
  readBytesAcrossChunkBoundary: () => void;
31
+ writeBytesWrongOffset: () => void;
30
32
  largeFileReadBytes: () => void;
31
33
  };