functionalscript 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/README.md +1 -1
  2. package/{fs → fjs}/asn.1/proof.f.js +32 -94
  3. package/fjs/asserts/module.f.d.ts +36 -0
  4. package/fjs/asserts/module.f.js +39 -0
  5. package/fjs/asserts/proof.f.d.ts +11 -0
  6. package/fjs/asserts/proof.f.js +18 -0
  7. package/{fs → fjs}/base_n/proof.f.js +12 -36
  8. package/{fs → fjs}/basen/base64/proof.f.d.ts +1 -0
  9. package/{fs → fjs}/basen/base64/proof.f.js +15 -1
  10. package/{fs → fjs}/basen/cbase32/proof.f.js +15 -42
  11. package/fjs/bnf/data/module.f.d.ts +52 -0
  12. package/{fs → fjs}/bnf/data/module.f.js +53 -3
  13. package/{fs → fjs}/bnf/data/proof.f.d.ts +1 -0
  14. package/{fs → fjs}/bnf/data/proof.f.js +54 -19
  15. package/{fs → fjs}/bnf/descent/module.f.d.ts +4 -14
  16. package/fjs/bnf/descent/module.f.js +124 -0
  17. package/{fs → fjs}/bnf/descent/proof.f.d.ts +1 -0
  18. package/{fs → fjs}/bnf/descent/proof.f.js +55 -24
  19. package/{fs → fjs}/bnf/ll1/module.f.d.ts +4 -4
  20. package/{fs → fjs}/bnf/ll1/module.f.js +7 -5
  21. package/{fs → fjs}/bnf/ll1/proof.f.d.ts +1 -0
  22. package/{fs → fjs}/bnf/ll1/proof.f.js +27 -10
  23. package/{fs → fjs}/bnf/module.f.d.ts +19 -5
  24. package/{fs → fjs}/bnf/module.f.js +10 -11
  25. package/fjs/bnf/proof.f.js +69 -0
  26. package/{fs → fjs}/bnf/testlib.f.js +2 -2
  27. package/{fs → fjs}/cas/cli/proof.f.d.ts +4 -1
  28. package/{fs → fjs}/cas/cli/proof.f.js +29 -66
  29. package/fjs/cas/evo/mcp/module.f.d.ts +19 -0
  30. package/fjs/cas/evo/mcp/module.f.js +56 -0
  31. package/fjs/cas/evo/mcp/proof.f.d.ts +9 -0
  32. package/fjs/cas/evo/mcp/proof.f.js +95 -0
  33. package/fjs/cas/evo/module.f.d.ts +138 -0
  34. package/fjs/cas/evo/module.f.js +309 -0
  35. package/fjs/cas/evo/proof.f.d.ts +32 -0
  36. package/fjs/cas/evo/proof.f.js +453 -0
  37. package/fjs/cas/mcp/module.f.d.ts +49 -0
  38. package/{fs → fjs}/cas/mcp/module.f.js +54 -76
  39. package/{fs → fjs}/cas/mcp/proof.f.d.ts +4 -1
  40. package/{fs → fjs}/cas/mcp/proof.f.js +41 -13
  41. package/{fs → fjs}/cas/module.f.d.ts +10 -0
  42. package/{fs → fjs}/cas/module.f.js +27 -1
  43. package/{fs → fjs}/cas/proof.f.d.ts +4 -0
  44. package/{fs → fjs}/cas/proof.f.js +77 -86
  45. package/{fs → fjs}/ci/config/module.f.d.ts +5 -5
  46. package/{fs → fjs}/ci/config/module.f.js +5 -5
  47. package/{fs → fjs}/ci/proof.f.js +14 -9
  48. package/{fs → fjs}/ci/rust/module.f.js +9 -1
  49. package/{fs → fjs}/cli/proof.f.js +22 -63
  50. package/{fs → fjs}/common/monoid/proof.f.js +4 -9
  51. package/{fs → fjs}/crypto/hmac/proof.f.js +4 -12
  52. package/fjs/crypto/pow/proof.f.js +111 -0
  53. package/{fs → fjs}/crypto/secp/proof.f.js +12 -33
  54. package/{fs → fjs}/crypto/sha2/proof.f.js +18 -49
  55. package/{fs → fjs}/crypto/sign/module.f.d.ts +0 -5
  56. package/{fs → fjs}/crypto/sign/module.f.js +7 -4
  57. package/{fs → fjs}/crypto/sign/proof.f.js +36 -105
  58. package/{fs → fjs}/crypto/vdf/proof.f.js +22 -63
  59. package/{fs → fjs}/dev/package_json/proof.f.js +7 -7
  60. package/{fs → fjs}/dev/proof.f.js +2 -4
  61. package/{fs → fjs}/djs/ast/proof.f.js +4 -12
  62. package/{fs → fjs}/djs/parser/module.f.d.ts +5 -0
  63. package/{fs → fjs}/djs/parser/module.f.js +20 -0
  64. package/{fs → fjs}/djs/parser/proof.f.js +138 -400
  65. package/{fs → fjs}/djs/proof.f.js +13 -36
  66. package/{fs → fjs}/djs/serializer/proof.f.js +14 -39
  67. package/fjs/djs/tokenizer/module.f.d.ts +24 -0
  68. package/fjs/djs/tokenizer/module.f.js +472 -0
  69. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.d.ts +4 -3
  70. package/{fs/djs/tokenizer-new → fjs/djs/tokenizer}/proof.f.js +446 -445
  71. package/{fs → fjs}/djs/transpiler/proof.f.d.ts +3 -0
  72. package/{fs → fjs}/djs/transpiler/proof.f.js +29 -30
  73. package/{fs → fjs}/effects/memory/proof.f.js +8 -21
  74. package/{fs → fjs}/effects/node/memory/proof.js +5 -12
  75. package/{fs → fjs}/effects/node/module.d.ts +1 -1
  76. package/{fs → fjs}/effects/node/module.f.d.ts +1 -1
  77. package/{fs → fjs}/effects/node/module.js +3 -3
  78. package/{fs → fjs}/effects/node/proof.f.d.ts +1 -0
  79. package/{fs → fjs}/effects/node/proof.f.js +106 -292
  80. package/{fs → fjs}/effects/node/virtual/proof.f.d.ts +1 -0
  81. package/{fs → fjs}/effects/node/virtual/proof.f.js +36 -29
  82. package/{fs → fjs}/effects/proof.f.js +16 -45
  83. package/{fs → fjs}/emergent_testing/proof.f.js +7 -7
  84. package/{fs → fjs}/fsc/proof.f.js +12 -34
  85. package/{fs → fjs}/fsm/proof.f.js +5 -12
  86. package/{fs → fjs}/mcp/module.f.d.ts +7 -0
  87. package/{fs → fjs}/mcp/module.f.js +9 -2
  88. package/{fs → fjs}/mcp/proof.f.js +12 -12
  89. package/{fs → fjs}/mcp/stdio/module.f.d.ts +2 -2
  90. package/{fs → fjs}/mcp/stdio/module.f.js +2 -2
  91. package/{fs → fjs}/media/html/proof.f.js +12 -33
  92. package/{fs → fjs}/media/json/parser/module.f.d.ts +5 -0
  93. package/{fs → fjs}/media/json/parser/module.f.js +14 -0
  94. package/{fs → fjs}/media/json/parser/proof.f.js +39 -114
  95. package/{fs → fjs}/media/json/rpc/module.f.js +1 -1
  96. package/{fs → fjs}/media/json/schema/module.f.d.ts +2 -2
  97. package/{fs → fjs}/media/json/schema/module.f.js +23 -39
  98. package/{fs → fjs}/media/json/schema/proof.f.js +3 -6
  99. package/{fs → fjs}/media/json/serializer/proof.f.js +10 -27
  100. package/{fs → fjs}/media/module.f.d.ts +6 -6
  101. package/{fs → fjs}/media/module.f.js +3 -4
  102. package/{fs → fjs}/media/proof.f.js +5 -4
  103. package/{fs → fjs}/media/revision/module.f.d.ts +31 -4
  104. package/{fs → fjs}/media/revision/module.f.js +35 -23
  105. package/{fs → fjs}/media/revision/proof.f.d.ts +10 -8
  106. package/fjs/media/revision/proof.f.js +140 -0
  107. package/{fs → fjs}/media/type/proof.f.js +2 -6
  108. package/{fs → fjs}/module.f.js +1 -1
  109. package/{fs → fjs}/path/proof.f.js +27 -78
  110. package/{fs → fjs}/proof.f.js +2 -0
  111. package/{fs → fjs}/sul/id/proof.f.js +7 -21
  112. package/{fs → fjs}/sul/level/hash/proof.f.js +5 -5
  113. package/{fs → fjs}/sul/level/literal/proof.f.js +12 -26
  114. package/fjs/text/ascii/proof.f.d.ts +6 -0
  115. package/{fs → fjs}/text/ascii/proof.f.js +4 -14
  116. package/{fs → fjs}/text/code_point/module.f.js +10 -10
  117. package/{fs → fjs}/text/proof.f.js +4 -9
  118. package/{fs → fjs}/text/sgr/proof.f.js +6 -15
  119. package/{fs → fjs}/text/utf16/module.f.js +1 -1
  120. package/{fs → fjs}/text/utf16/proof.f.js +23 -66
  121. package/{fs → fjs}/text/utf8/proof.f.js +56 -125
  122. package/{fs → fjs}/types/array/proof.f.js +18 -52
  123. package/fjs/types/bigfloat/proof.f.js +217 -0
  124. package/{fs → fjs}/types/bigint/proof.f.js +49 -145
  125. package/{fs → fjs}/types/bit_vec/proof.f.js +72 -214
  126. package/{fs → fjs}/types/btree/find/proof.f.js +23 -66
  127. package/{fs → fjs}/types/btree/proof.f.js +5 -12
  128. package/{fs → fjs}/types/btree/remove/proof.f.d.ts +2 -0
  129. package/{fs → fjs}/types/btree/remove/proof.f.js +83 -230
  130. package/{fs → fjs}/types/btree/set/module.f.js +5 -2
  131. package/{fs → fjs}/types/btree/set/proof.f.js +35 -24
  132. package/{fs → fjs}/types/byte_set/proof.f.js +22 -63
  133. package/{fs → fjs}/types/function/compare/proof.f.js +13 -36
  134. package/{fs → fjs}/types/function/operator/proof.f.js +17 -48
  135. package/{fs → fjs}/types/function/proof.f.js +2 -3
  136. package/{fs → fjs}/types/list/proof.f.js +55 -163
  137. package/{fs → fjs}/types/map/proof.f.js +4 -12
  138. package/{fs → fjs}/types/nibble_set/proof.f.js +16 -45
  139. package/{fs → fjs}/types/nominal/proof.f.js +5 -10
  140. package/fjs/types/nullable/proof.f.js +29 -0
  141. package/{fs → fjs}/types/number/proof.f.js +9 -24
  142. package/{fs → fjs}/types/object/proof.f.js +3 -6
  143. package/{fs → fjs}/types/patricia_trie/proof.f.js +21 -21
  144. package/{fs → fjs}/types/prime_field/module.f.js +2 -7
  145. package/{fs → fjs}/types/range/module.f.d.ts +1 -1
  146. package/fjs/types/range/module.f.js +2 -0
  147. package/fjs/types/range/proof.f.js +9 -0
  148. package/{fs → fjs}/types/range_map/proof.f.js +28 -81
  149. package/{fs → fjs}/types/result/proof.f.d.ts +3 -2
  150. package/fjs/types/result/proof.f.js +31 -0
  151. package/{fs → fjs}/types/rtti/common/module.f.d.ts +36 -1
  152. package/{fs → fjs}/types/rtti/common/module.f.js +44 -0
  153. package/fjs/types/rtti/common/proof.f.d.ts +8 -0
  154. package/fjs/types/rtti/common/proof.f.js +51 -0
  155. package/{fs → fjs}/types/rtti/parse/module.f.js +13 -22
  156. package/{fs → fjs}/types/rtti/parse/proof.f.js +7 -18
  157. package/{fs → fjs}/types/rtti/ts/module.f.d.ts +10 -4
  158. package/{fs → fjs}/types/rtti/validate/module.f.js +8 -29
  159. package/{fs → fjs}/types/rtti/validate/proof.f.js +4 -9
  160. package/{fs → fjs}/types/sorted_list/proof.f.js +8 -21
  161. package/{fs → fjs}/types/sorted_set/proof.f.js +14 -39
  162. package/fjs/types/string/proof.f.js +77 -0
  163. package/fjs/types/string_set/proof.f.js +43 -0
  164. package/{fs → fjs}/types/ts/proof.f.js +15 -42
  165. package/{fs → fjs}/types/uint8array/module.f.js +7 -7
  166. package/{fs → fjs}/types/uint8array/proof.f.d.ts +4 -1
  167. package/{fs → fjs}/types/uint8array/proof.f.js +7 -7
  168. package/{fs → fjs}/website/proof.f.js +3 -6
  169. package/package.json +6 -6
  170. package/fs/asserts/module.f.d.ts +0 -4
  171. package/fs/asserts/module.f.js +0 -9
  172. package/fs/asserts/proof.f.d.ts +0 -8
  173. package/fs/asserts/proof.f.js +0 -51
  174. package/fs/bnf/data/module.f.d.ts +0 -30
  175. package/fs/bnf/descent/module.f.js +0 -119
  176. package/fs/bnf/proof.f.js +0 -104
  177. package/fs/cas/mcp/module.f.d.ts +0 -36
  178. package/fs/crypto/pow/proof.f.js +0 -161
  179. package/fs/djs/tokenizer/module.f.d.ts +0 -12
  180. package/fs/djs/tokenizer/module.f.js +0 -62
  181. package/fs/djs/tokenizer/proof.f.d.ts +0 -7
  182. package/fs/djs/tokenizer/proof.f.js +0 -543
  183. package/fs/djs/tokenizer-new/module.f.d.ts +0 -3
  184. package/fs/djs/tokenizer-new/module.f.js +0 -155
  185. package/fs/media/revision/proof.f.js +0 -119
  186. package/fs/text/ascii/proof.f.d.ts +0 -4
  187. package/fs/types/bigfloat/proof.f.js +0 -348
  188. package/fs/types/nullable/proof.f.js +0 -50
  189. package/fs/types/range/module.f.js +0 -2
  190. package/fs/types/range/proof.f.js +0 -18
  191. package/fs/types/result/proof.f.js +0 -52
  192. package/fs/types/string/proof.f.js +0 -118
  193. package/fs/types/string_set/proof.f.js +0 -82
  194. /package/{fs → fjs}/asn.1/module.f.d.ts +0 -0
  195. /package/{fs → fjs}/asn.1/module.f.js +0 -0
  196. /package/{fs → fjs}/asn.1/proof.f.d.ts +0 -0
  197. /package/{fs → fjs}/base_n/module.f.d.ts +0 -0
  198. /package/{fs → fjs}/base_n/module.f.js +0 -0
  199. /package/{fs → fjs}/base_n/proof.f.d.ts +0 -0
  200. /package/{fs → fjs}/basen/base128/module.f.d.ts +0 -0
  201. /package/{fs → fjs}/basen/base128/module.f.js +0 -0
  202. /package/{fs → fjs}/basen/base128/proof.f.d.ts +0 -0
  203. /package/{fs → fjs}/basen/base128/proof.f.js +0 -0
  204. /package/{fs → fjs}/basen/base64/module.f.d.ts +0 -0
  205. /package/{fs → fjs}/basen/base64/module.f.js +0 -0
  206. /package/{fs → fjs}/basen/cbase32/module.f.d.ts +0 -0
  207. /package/{fs → fjs}/basen/cbase32/module.f.js +0 -0
  208. /package/{fs → fjs}/basen/cbase32/proof.f.d.ts +0 -0
  209. /package/{fs → fjs}/bnf/proof.f.d.ts +0 -0
  210. /package/{fs → fjs}/bnf/testlib.f.d.ts +0 -0
  211. /package/{fs → fjs}/cas/cli/module.f.d.ts +0 -0
  212. /package/{fs → fjs}/cas/cli/module.f.js +0 -0
  213. /package/{fs → fjs}/ci/bun/module.f.d.ts +0 -0
  214. /package/{fs → fjs}/ci/bun/module.f.js +0 -0
  215. /package/{fs → fjs}/ci/common/module.f.d.ts +0 -0
  216. /package/{fs → fjs}/ci/common/module.f.js +0 -0
  217. /package/{fs → fjs}/ci/deno/module.f.d.ts +0 -0
  218. /package/{fs → fjs}/ci/deno/module.f.js +0 -0
  219. /package/{fs → fjs}/ci/module.f.d.ts +0 -0
  220. /package/{fs → fjs}/ci/module.f.js +0 -0
  221. /package/{fs → fjs}/ci/node/module.f.d.ts +0 -0
  222. /package/{fs → fjs}/ci/node/module.f.js +0 -0
  223. /package/{fs → fjs}/ci/playwright/module.f.d.ts +0 -0
  224. /package/{fs → fjs}/ci/playwright/module.f.js +0 -0
  225. /package/{fs → fjs}/ci/proof.f.d.ts +0 -0
  226. /package/{fs → fjs}/ci/rust/module.f.d.ts +0 -0
  227. /package/{fs → fjs}/cli/module.f.d.ts +0 -0
  228. /package/{fs → fjs}/cli/module.f.js +0 -0
  229. /package/{fs → fjs}/cli/proof.f.d.ts +0 -0
  230. /package/{fs → fjs}/common/monoid/module.f.d.ts +0 -0
  231. /package/{fs → fjs}/common/monoid/module.f.js +0 -0
  232. /package/{fs → fjs}/common/monoid/proof.f.d.ts +0 -0
  233. /package/{fs → fjs}/crypto/hmac/module.f.d.ts +0 -0
  234. /package/{fs → fjs}/crypto/hmac/module.f.js +0 -0
  235. /package/{fs → fjs}/crypto/hmac/proof.f.d.ts +0 -0
  236. /package/{fs → fjs}/crypto/pow/module.f.d.ts +0 -0
  237. /package/{fs → fjs}/crypto/pow/module.f.js +0 -0
  238. /package/{fs → fjs}/crypto/pow/proof.f.d.ts +0 -0
  239. /package/{fs → fjs}/crypto/secp/module.f.d.ts +0 -0
  240. /package/{fs → fjs}/crypto/secp/module.f.js +0 -0
  241. /package/{fs → fjs}/crypto/secp/proof.f.d.ts +0 -0
  242. /package/{fs → fjs}/crypto/sha2/module.f.d.ts +0 -0
  243. /package/{fs → fjs}/crypto/sha2/module.f.js +0 -0
  244. /package/{fs → fjs}/crypto/sha2/proof.f.d.ts +0 -0
  245. /package/{fs → fjs}/crypto/sign/proof.f.d.ts +0 -0
  246. /package/{fs → fjs}/crypto/vdf/module.f.d.ts +0 -0
  247. /package/{fs → fjs}/crypto/vdf/module.f.js +0 -0
  248. /package/{fs → fjs}/crypto/vdf/proof.f.d.ts +0 -0
  249. /package/{fs → fjs}/dev/module.f.d.ts +0 -0
  250. /package/{fs → fjs}/dev/module.f.js +0 -0
  251. /package/{fs → fjs}/dev/package_json/module.f.d.ts +0 -0
  252. /package/{fs → fjs}/dev/package_json/module.f.js +0 -0
  253. /package/{fs → fjs}/dev/package_json/proof.f.d.ts +0 -0
  254. /package/{fs → fjs}/dev/proof.f.d.ts +0 -0
  255. /package/{fs → fjs}/djs/ast/module.f.d.ts +0 -0
  256. /package/{fs → fjs}/djs/ast/module.f.js +0 -0
  257. /package/{fs → fjs}/djs/ast/proof.f.d.ts +0 -0
  258. /package/{fs → fjs}/djs/examples/input.f.d.ts +0 -0
  259. /package/{fs → fjs}/djs/examples/input.f.js +0 -0
  260. /package/{fs → fjs}/djs/examples/m.f.d.ts +0 -0
  261. /package/{fs → fjs}/djs/examples/m.f.js +0 -0
  262. /package/{fs → fjs}/djs/module.f.d.ts +0 -0
  263. /package/{fs → fjs}/djs/module.f.js +0 -0
  264. /package/{fs → fjs}/djs/parser/proof.f.d.ts +0 -0
  265. /package/{fs → fjs}/djs/proof.f.d.ts +0 -0
  266. /package/{fs → fjs}/djs/serializer/module.f.d.ts +0 -0
  267. /package/{fs → fjs}/djs/serializer/module.f.js +0 -0
  268. /package/{fs → fjs}/djs/serializer/proof.f.d.ts +0 -0
  269. /package/{fs → fjs}/djs/transpiler/module.f.d.ts +0 -0
  270. /package/{fs → fjs}/djs/transpiler/module.f.js +0 -0
  271. /package/{fs → fjs}/effects/list/module.f.d.ts +0 -0
  272. /package/{fs → fjs}/effects/list/module.f.js +0 -0
  273. /package/{fs → fjs}/effects/memory/module.f.d.ts +0 -0
  274. /package/{fs → fjs}/effects/memory/module.f.js +0 -0
  275. /package/{fs → fjs}/effects/memory/proof.f.d.ts +0 -0
  276. /package/{fs → fjs}/effects/mock/module.f.d.ts +0 -0
  277. /package/{fs → fjs}/effects/mock/module.f.js +0 -0
  278. /package/{fs → fjs}/effects/module.d.ts +0 -0
  279. /package/{fs → fjs}/effects/module.f.d.ts +0 -0
  280. /package/{fs → fjs}/effects/module.f.js +0 -0
  281. /package/{fs → fjs}/effects/module.js +0 -0
  282. /package/{fs → fjs}/effects/node/memory/module.d.ts +0 -0
  283. /package/{fs → fjs}/effects/node/memory/module.js +0 -0
  284. /package/{fs → fjs}/effects/node/memory/proof.d.ts +0 -0
  285. /package/{fs → fjs}/effects/node/module.f.js +0 -0
  286. /package/{fs → fjs}/effects/node/virtual/module.f.d.ts +0 -0
  287. /package/{fs → fjs}/effects/node/virtual/module.f.js +0 -0
  288. /package/{fs → fjs}/effects/proof.f.d.ts +0 -0
  289. /package/{fs → fjs}/emergent_testing/all.test.d.ts +0 -0
  290. /package/{fs → fjs}/emergent_testing/all.test.js +0 -0
  291. /package/{fs → fjs}/emergent_testing/example.f.d.ts +0 -0
  292. /package/{fs → fjs}/emergent_testing/example.f.js +0 -0
  293. /package/{fs → fjs}/emergent_testing/module.f.d.ts +0 -0
  294. /package/{fs → fjs}/emergent_testing/module.f.js +0 -0
  295. /package/{fs → fjs}/emergent_testing/proof.f.d.ts +0 -0
  296. /package/{fs → fjs}/emergent_testing/scenarios/all.d.ts +0 -0
  297. /package/{fs → fjs}/emergent_testing/scenarios/all.js +0 -0
  298. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.d.ts +0 -0
  299. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.fail.js +0 -0
  300. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.d.ts +0 -0
  301. /package/{fs → fjs}/emergent_testing/scenarios/async-subtests.pass.js +0 -0
  302. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.d.ts +0 -0
  303. /package/{fs → fjs}/emergent_testing/scenarios/async.fail.js +0 -0
  304. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.d.ts +0 -0
  305. /package/{fs → fjs}/emergent_testing/scenarios/async.pass.js +0 -0
  306. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.d.ts +0 -0
  307. /package/{fs → fjs}/emergent_testing/scenarios/fail.fail.js +0 -0
  308. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.d.ts +0 -0
  309. /package/{fs → fjs}/emergent_testing/scenarios/return-value.pass.js +0 -0
  310. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.d.ts +0 -0
  311. /package/{fs → fjs}/emergent_testing/scenarios/thenable.pass.js +0 -0
  312. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.d.ts +0 -0
  313. /package/{fs → fjs}/emergent_testing/scenarios/thenable2.pass.js +0 -0
  314. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.d.ts +0 -0
  315. /package/{fs → fjs}/emergent_testing/scenarios/throw.pass.js +0 -0
  316. /package/{fs → fjs}/fsc/bnf.f.d.ts +0 -0
  317. /package/{fs → fjs}/fsc/bnf.f.js +0 -0
  318. /package/{fs → fjs}/fsc/json.f.d.ts +0 -0
  319. /package/{fs → fjs}/fsc/json.f.js +0 -0
  320. /package/{fs → fjs}/fsc/module.f.d.ts +0 -0
  321. /package/{fs → fjs}/fsc/module.f.js +0 -0
  322. /package/{fs → fjs}/fsc/proof.f.d.ts +0 -0
  323. /package/{fs → fjs}/fsm/module.f.d.ts +0 -0
  324. /package/{fs → fjs}/fsm/module.f.js +0 -0
  325. /package/{fs → fjs}/fsm/proof.f.d.ts +0 -0
  326. /package/{fs → fjs}/js/tokenizer/module.f.d.ts +0 -0
  327. /package/{fs → fjs}/js/tokenizer/module.f.js +0 -0
  328. /package/{fs → fjs}/js/tokenizer/proof.f.d.ts +0 -0
  329. /package/{fs → fjs}/js/tokenizer/proof.f.js +0 -0
  330. /package/{fs → fjs}/mcp/proof.f.d.ts +0 -0
  331. /package/{fs → fjs}/mcp/stdio/proof.f.d.ts +0 -0
  332. /package/{fs → fjs}/mcp/stdio/proof.f.js +0 -0
  333. /package/{fs → fjs}/media/html/module.f.d.ts +0 -0
  334. /package/{fs → fjs}/media/html/module.f.js +0 -0
  335. /package/{fs → fjs}/media/html/proof.f.d.ts +0 -0
  336. /package/{fs → fjs}/media/json/module.f.d.ts +0 -0
  337. /package/{fs → fjs}/media/json/module.f.js +0 -0
  338. /package/{fs → fjs}/media/json/parser/proof.f.d.ts +0 -0
  339. /package/{fs → fjs}/media/json/proof.f.d.ts +0 -0
  340. /package/{fs → fjs}/media/json/proof.f.js +0 -0
  341. /package/{fs → fjs}/media/json/rpc/module.f.d.ts +0 -0
  342. /package/{fs → fjs}/media/json/rpc/proof.f.d.ts +0 -0
  343. /package/{fs → fjs}/media/json/rpc/proof.f.js +0 -0
  344. /package/{fs → fjs}/media/json/schema/proof.f.d.ts +0 -0
  345. /package/{fs → fjs}/media/json/serializer/module.f.d.ts +0 -0
  346. /package/{fs → fjs}/media/json/serializer/module.f.js +0 -0
  347. /package/{fs → fjs}/media/json/serializer/proof.f.d.ts +0 -0
  348. /package/{fs → fjs}/media/json/tokenizer/module.f.d.ts +0 -0
  349. /package/{fs → fjs}/media/json/tokenizer/module.f.js +0 -0
  350. /package/{fs → fjs}/media/json/tokenizer/proof.f.d.ts +0 -0
  351. /package/{fs → fjs}/media/json/tokenizer/proof.f.js +0 -0
  352. /package/{fs → fjs}/media/proof.f.d.ts +0 -0
  353. /package/{fs → fjs}/media/type/module.f.d.ts +0 -0
  354. /package/{fs → fjs}/media/type/module.f.js +0 -0
  355. /package/{fs → fjs}/media/type/proof.f.d.ts +0 -0
  356. /package/{fs → fjs}/module.d.ts +0 -0
  357. /package/{fs → fjs}/module.f.d.ts +0 -0
  358. /package/{fs → fjs}/module.js +0 -0
  359. /package/{fs → fjs}/path/module.f.d.ts +0 -0
  360. /package/{fs → fjs}/path/module.f.js +0 -0
  361. /package/{fs → fjs}/path/proof.f.d.ts +0 -0
  362. /package/{fs → fjs}/proof.f.d.ts +0 -0
  363. /package/{fs → fjs}/sul/id/module.f.d.ts +0 -0
  364. /package/{fs → fjs}/sul/id/module.f.js +0 -0
  365. /package/{fs → fjs}/sul/id/proof.f.d.ts +0 -0
  366. /package/{fs → fjs}/sul/level/hash/module.f.d.ts +0 -0
  367. /package/{fs → fjs}/sul/level/hash/module.f.js +0 -0
  368. /package/{fs → fjs}/sul/level/hash/proof.f.d.ts +0 -0
  369. /package/{fs → fjs}/sul/level/literal/module.f.d.ts +0 -0
  370. /package/{fs → fjs}/sul/level/literal/module.f.js +0 -0
  371. /package/{fs → fjs}/sul/level/literal/proof.f.d.ts +0 -0
  372. /package/{fs → fjs}/sul/module.f.d.ts +0 -0
  373. /package/{fs → fjs}/sul/module.f.js +0 -0
  374. /package/{fs → fjs}/sul/proof.f.d.ts +0 -0
  375. /package/{fs → fjs}/sul/proof.f.js +0 -0
  376. /package/{fs → fjs}/text/ascii/module.f.d.ts +0 -0
  377. /package/{fs → fjs}/text/ascii/module.f.js +0 -0
  378. /package/{fs → fjs}/text/code_point/module.f.d.ts +0 -0
  379. /package/{fs → fjs}/text/code_point/proof.f.d.ts +0 -0
  380. /package/{fs → fjs}/text/code_point/proof.f.js +0 -0
  381. /package/{fs → fjs}/text/module.f.d.ts +0 -0
  382. /package/{fs → fjs}/text/module.f.js +0 -0
  383. /package/{fs → fjs}/text/proof.f.d.ts +0 -0
  384. /package/{fs → fjs}/text/sgr/module.f.d.ts +0 -0
  385. /package/{fs → fjs}/text/sgr/module.f.js +0 -0
  386. /package/{fs → fjs}/text/sgr/proof.f.d.ts +0 -0
  387. /package/{fs → fjs}/text/utf16/module.f.d.ts +0 -0
  388. /package/{fs → fjs}/text/utf16/proof.f.d.ts +0 -0
  389. /package/{fs → fjs}/text/utf8/module.f.d.ts +0 -0
  390. /package/{fs → fjs}/text/utf8/module.f.js +0 -0
  391. /package/{fs → fjs}/text/utf8/proof.f.d.ts +0 -0
  392. /package/{fs → fjs}/types/array/module.f.d.ts +0 -0
  393. /package/{fs → fjs}/types/array/module.f.js +0 -0
  394. /package/{fs → fjs}/types/array/proof.f.d.ts +0 -0
  395. /package/{fs → fjs}/types/bigfloat/module.f.d.ts +0 -0
  396. /package/{fs → fjs}/types/bigfloat/module.f.js +0 -0
  397. /package/{fs → fjs}/types/bigfloat/proof.f.d.ts +0 -0
  398. /package/{fs → fjs}/types/bigint/module.f.d.ts +0 -0
  399. /package/{fs → fjs}/types/bigint/module.f.js +0 -0
  400. /package/{fs → fjs}/types/bigint/proof.f.d.ts +0 -0
  401. /package/{fs → fjs}/types/bit_vec/module.f.d.ts +0 -0
  402. /package/{fs → fjs}/types/bit_vec/module.f.js +0 -0
  403. /package/{fs → fjs}/types/bit_vec/proof.f.d.ts +0 -0
  404. /package/{fs → fjs}/types/btree/find/module.f.d.ts +0 -0
  405. /package/{fs → fjs}/types/btree/find/module.f.js +0 -0
  406. /package/{fs → fjs}/types/btree/find/proof.f.d.ts +0 -0
  407. /package/{fs → fjs}/types/btree/module.f.d.ts +0 -0
  408. /package/{fs → fjs}/types/btree/module.f.js +0 -0
  409. /package/{fs → fjs}/types/btree/proof.f.d.ts +0 -0
  410. /package/{fs → fjs}/types/btree/remove/module.f.d.ts +0 -0
  411. /package/{fs → fjs}/types/btree/remove/module.f.js +0 -0
  412. /package/{fs → fjs}/types/btree/set/module.f.d.ts +0 -0
  413. /package/{fs → fjs}/types/btree/set/proof.f.d.ts +0 -0
  414. /package/{fs → fjs}/types/btree/types/module.f.d.ts +0 -0
  415. /package/{fs → fjs}/types/btree/types/module.f.js +0 -0
  416. /package/{fs → fjs}/types/byte_set/module.f.d.ts +0 -0
  417. /package/{fs → fjs}/types/byte_set/module.f.js +0 -0
  418. /package/{fs → fjs}/types/byte_set/proof.f.d.ts +0 -0
  419. /package/{fs → fjs}/types/function/compare/module.f.d.ts +0 -0
  420. /package/{fs → fjs}/types/function/compare/module.f.js +0 -0
  421. /package/{fs → fjs}/types/function/compare/proof.f.d.ts +0 -0
  422. /package/{fs → fjs}/types/function/module.f.d.ts +0 -0
  423. /package/{fs → fjs}/types/function/module.f.js +0 -0
  424. /package/{fs → fjs}/types/function/operator/module.f.d.ts +0 -0
  425. /package/{fs → fjs}/types/function/operator/module.f.js +0 -0
  426. /package/{fs → fjs}/types/function/operator/proof.f.d.ts +0 -0
  427. /package/{fs → fjs}/types/function/proof.f.d.ts +0 -0
  428. /package/{fs → fjs}/types/list/module.f.d.ts +0 -0
  429. /package/{fs → fjs}/types/list/module.f.js +0 -0
  430. /package/{fs → fjs}/types/list/proof.f.d.ts +0 -0
  431. /package/{fs → fjs}/types/map/module.f.d.ts +0 -0
  432. /package/{fs → fjs}/types/map/module.f.js +0 -0
  433. /package/{fs → fjs}/types/map/proof.f.d.ts +0 -0
  434. /package/{fs → fjs}/types/nibble_set/module.f.d.ts +0 -0
  435. /package/{fs → fjs}/types/nibble_set/module.f.js +0 -0
  436. /package/{fs → fjs}/types/nibble_set/proof.f.d.ts +0 -0
  437. /package/{fs → fjs}/types/nominal/module.f.d.ts +0 -0
  438. /package/{fs → fjs}/types/nominal/module.f.js +0 -0
  439. /package/{fs → fjs}/types/nominal/proof.f.d.ts +0 -0
  440. /package/{fs → fjs}/types/nullable/module.f.d.ts +0 -0
  441. /package/{fs → fjs}/types/nullable/module.f.js +0 -0
  442. /package/{fs → fjs}/types/nullable/proof.f.d.ts +0 -0
  443. /package/{fs → fjs}/types/number/module.f.d.ts +0 -0
  444. /package/{fs → fjs}/types/number/module.f.js +0 -0
  445. /package/{fs → fjs}/types/number/proof.f.d.ts +0 -0
  446. /package/{fs → fjs}/types/object/module.f.d.ts +0 -0
  447. /package/{fs → fjs}/types/object/module.f.js +0 -0
  448. /package/{fs → fjs}/types/object/proof.f.d.ts +0 -0
  449. /package/{fs → fjs}/types/option/module.f.d.ts +0 -0
  450. /package/{fs → fjs}/types/option/module.f.js +0 -0
  451. /package/{fs → fjs}/types/ordered_map/module.f.d.ts +0 -0
  452. /package/{fs → fjs}/types/ordered_map/module.f.js +0 -0
  453. /package/{fs → fjs}/types/ordered_map/proof.f.d.ts +0 -0
  454. /package/{fs → fjs}/types/ordered_map/proof.f.js +0 -0
  455. /package/{fs → fjs}/types/patricia_trie/module.f.d.ts +0 -0
  456. /package/{fs → fjs}/types/patricia_trie/module.f.js +0 -0
  457. /package/{fs → fjs}/types/patricia_trie/proof.f.d.ts +0 -0
  458. /package/{fs → fjs}/types/phantom/module.f.d.ts +0 -0
  459. /package/{fs → fjs}/types/phantom/module.f.js +0 -0
  460. /package/{fs → fjs}/types/prime_field/module.f.d.ts +0 -0
  461. /package/{fs → fjs}/types/prime_field/proof.f.d.ts +0 -0
  462. /package/{fs → fjs}/types/prime_field/proof.f.js +0 -0
  463. /package/{fs → fjs}/types/range/proof.f.d.ts +0 -0
  464. /package/{fs → fjs}/types/range_map/module.f.d.ts +0 -0
  465. /package/{fs → fjs}/types/range_map/module.f.js +0 -0
  466. /package/{fs → fjs}/types/range_map/proof.f.d.ts +0 -0
  467. /package/{fs → fjs}/types/result/module.d.ts +0 -0
  468. /package/{fs → fjs}/types/result/module.f.d.ts +0 -0
  469. /package/{fs → fjs}/types/result/module.f.js +0 -0
  470. /package/{fs → fjs}/types/result/module.js +0 -0
  471. /package/{fs → fjs}/types/rtti/module.f.d.ts +0 -0
  472. /package/{fs → fjs}/types/rtti/module.f.js +0 -0
  473. /package/{fs → fjs}/types/rtti/parse/module.f.d.ts +0 -0
  474. /package/{fs → fjs}/types/rtti/parse/proof.f.d.ts +0 -0
  475. /package/{fs → fjs}/types/rtti/proof.f.d.ts +0 -0
  476. /package/{fs → fjs}/types/rtti/proof.f.js +0 -0
  477. /package/{fs → fjs}/types/rtti/ts/module.f.js +0 -0
  478. /package/{fs → fjs}/types/rtti/ts/proof.f.d.ts +0 -0
  479. /package/{fs → fjs}/types/rtti/ts/proof.f.js +0 -0
  480. /package/{fs → fjs}/types/rtti/validate/module.f.d.ts +0 -0
  481. /package/{fs → fjs}/types/rtti/validate/proof.f.d.ts +0 -0
  482. /package/{fs → fjs}/types/sorted_list/module.f.d.ts +0 -0
  483. /package/{fs → fjs}/types/sorted_list/module.f.js +0 -0
  484. /package/{fs → fjs}/types/sorted_list/proof.f.d.ts +0 -0
  485. /package/{fs → fjs}/types/sorted_set/module.f.d.ts +0 -0
  486. /package/{fs → fjs}/types/sorted_set/module.f.js +0 -0
  487. /package/{fs → fjs}/types/sorted_set/proof.f.d.ts +0 -0
  488. /package/{fs → fjs}/types/string/module.f.d.ts +0 -0
  489. /package/{fs → fjs}/types/string/module.f.js +0 -0
  490. /package/{fs → fjs}/types/string/proof.f.d.ts +0 -0
  491. /package/{fs → fjs}/types/string_set/module.f.d.ts +0 -0
  492. /package/{fs → fjs}/types/string_set/module.f.js +0 -0
  493. /package/{fs → fjs}/types/string_set/proof.f.d.ts +0 -0
  494. /package/{fs → fjs}/types/ts/module.f.d.ts +0 -0
  495. /package/{fs → fjs}/types/ts/module.f.js +0 -0
  496. /package/{fs → fjs}/types/ts/proof.f.d.ts +0 -0
  497. /package/{fs → fjs}/types/uint8array/module.f.d.ts +0 -0
  498. /package/{fs → fjs}/website/module.f.d.ts +0 -0
  499. /package/{fs → fjs}/website/module.f.js +0 -0
  500. /package/{fs → fjs}/website/proof.f.d.ts +0 -0
@@ -1,155 +0,0 @@
1
- /**
2
- * Experimental DJS parser implementation.
3
- *
4
- * @module
5
- */
6
- import { descentParser } from "../../bnf/descent/module.f.js";
7
- import { eof, join0Plus, max, none, not, notSet, oneEncode, option, range, remove, repeat, repeat0Plus, repeat1Plus, set, unicodeRange } from "../../bnf/module.f.js";
8
- import { todo } from "../../asserts/module.f.js";
9
- export const parse = (input) => {
10
- const m = descentParser(jsGrammar());
11
- return todo();
12
- };
13
- export const jsGrammar = () => {
14
- const onenine = range('19');
15
- const digit = range('09');
16
- const string = [
17
- '"',
18
- repeat0Plus({
19
- ...remove(range(` ${max}`), set('"\\')),
20
- escape: [
21
- '\\',
22
- {
23
- ...set('"\\bfnrt'),
24
- solidus: '/',
25
- u: [
26
- 'u',
27
- ...repeat(4)({
28
- digit,
29
- AF: range('AF'),
30
- af: range('af'),
31
- })
32
- ],
33
- }
34
- ],
35
- }),
36
- '"'
37
- ];
38
- const digits0 = repeat0Plus(digit);
39
- const digits = [digit, digits0];
40
- const number = [
41
- {
42
- 0: '0',
43
- onenine: [onenine, digits0],
44
- },
45
- option({
46
- bigint: 'n',
47
- frac: [
48
- option(['.', digits]),
49
- option([set('Ee'), option(set('+-')), digits])
50
- ]
51
- })
52
- ];
53
- const ws = set(' \t');
54
- const newLine = set('\n\r');
55
- const idStart = {
56
- smallLetter: range('az'),
57
- bigLetter: range('AZ'),
58
- lowLine: '_',
59
- dollarSign: '$'
60
- };
61
- const idChar = {
62
- ...idStart,
63
- digit
64
- };
65
- const id = [idStart, repeat0Plus(idChar)];
66
- const operator = {
67
- '.': '.',
68
- '=>': '=>',
69
- '===': '===',
70
- '==': '==',
71
- '=': '=',
72
- '!==': '!==',
73
- '!=': '!=',
74
- '!': '!',
75
- '>>>=': '>>>=',
76
- '>>>': '>>>',
77
- '>>=': '>>=',
78
- '>>': '>>',
79
- '>=': '>=',
80
- '>': '>',
81
- '<<<<=': '<<<=',
82
- '<<<': '<<<',
83
- '<<=': '<<=',
84
- '<<': '<<',
85
- '<=': '<=',
86
- '<': '<',
87
- '+=': '+=',
88
- '++': '++',
89
- '+': '+',
90
- '-=': '-=',
91
- '--': '--',
92
- '-': '-',
93
- '**=': '**=',
94
- '**': '**',
95
- '*=': '*=',
96
- '*': '*',
97
- '/=': '/=',
98
- '/': '/',
99
- '%=': '%=',
100
- '%': '%',
101
- '&&=': '&&=',
102
- '&&': '&&',
103
- '&=': '&=',
104
- '&': '&',
105
- '||=': '||=',
106
- '||': '||',
107
- '|=': '|=',
108
- '|': '|',
109
- '^=': '^=',
110
- '^': '^',
111
- '~': '~',
112
- '??=': '??=',
113
- '??': '??',
114
- '?.': '?.',
115
- '?': '?',
116
- '[': '[',
117
- ']': ']',
118
- '{': '{',
119
- '}': '}',
120
- '(': '(',
121
- ')': ')',
122
- ',': ',',
123
- ':': ':'
124
- };
125
- const commentEnd = {
126
- ...newLine,
127
- eof
128
- };
129
- const comment = ['/', {
130
- // TODO: investigate why `not(commentEnd)` instead of `remove(unicodeRange, newLine)` fail tests.
131
- // TODO: should it be `repeat0Plus(not(commentEnd))` instead of `option(remove(unicodeRange, newLine))`.
132
- oneline: ['/', option(remove(unicodeRange, newLine)), commentEnd],
133
- multiline: [
134
- '*',
135
- repeat0Plus({
136
- na: notSet('*'),
137
- a: ['*', notSet('/')]
138
- }),
139
- '*/'
140
- ]
141
- }
142
- ];
143
- const token = {
144
- number,
145
- string,
146
- id,
147
- comment,
148
- operator,
149
- ws,
150
- newLine,
151
- eof
152
- };
153
- const tokens = repeat0Plus(token);
154
- return tokens;
155
- };
@@ -1,119 +0,0 @@
1
- import { assert, assertEq } from '../../asserts/module.f.js';
2
- import { dialect, mediaType, isHash, validate, decodeText } from './module.f.js';
3
- // Valid cbase32 hashes (round-tripped in fs/basen/cbase32/proof.f.ts): single
4
- // cbase32 symbols, cheap to write inline here.
5
- const h1 = '8';
6
- const h2 = 'r';
7
- const revisionOf = (extra) => ({
8
- dialect,
9
- subject: h1,
10
- parents: [],
11
- ...extra,
12
- });
13
- export const proof = {
14
- dialectAndMediaType: () => {
15
- assertEq(dialect, 'vnd.fjs.revision');
16
- assertEq(mediaType, 'application/vnd.fjs.revision+json');
17
- },
18
- isHash: {
19
- validHash: () => assert(isHash(h1)),
20
- httpsRejected: () => assert(!isHash('https://example.com/blob/abc')),
21
- arbitraryStringRejected: () => assert(!isHash('not-a-hash!')),
22
- },
23
- validate: {
24
- // Zero parents, no `snapshot`: `subject` is the fallback snapshot
25
- // reference and must itself be a hash.
26
- firstRevisionFallsBackToSubjectHash: () => {
27
- const [t] = validate(revisionOf({}));
28
- assertEq(t, 'ok');
29
- },
30
- // Zero parents, no `snapshot`, `subject` is not a hash: invalid.
31
- firstRevisionRejectsNonHashSubject: () => {
32
- const [t] = validate(revisionOf({ subject: 'my-config' }));
33
- assertEq(t, 'error');
34
- },
35
- // `snapshot` present: `subject` may be an arbitrary string.
36
- explicitSnapshotAllowsArbitrarySubject: () => {
37
- const [t] = validate(revisionOf({ subject: 'my-config', snapshot: h2 }));
38
- assertEq(t, 'ok');
39
- },
40
- // Exactly one parent, no `snapshot`: the parent's snapshot is inherited,
41
- // and `subject` may be an arbitrary string.
42
- singleParentInheritsSnapshot: () => {
43
- const [t] = validate(revisionOf({ subject: 'my-config', parents: [h2] }));
44
- assertEq(t, 'ok');
45
- },
46
- // More than one parent with no `snapshot`: invalid — no single parent
47
- // snapshot to inherit, and falling back to `subject` would silently
48
- // lose the merge result.
49
- multiParentWithoutSnapshotRejected: () => {
50
- const [t] = validate(revisionOf({ subject: 'my-config', parents: [h1, h2] }));
51
- assertEq(t, 'error');
52
- },
53
- // A merge revision with an explicit `snapshot` is valid.
54
- multiParentWithSnapshotAccepted: () => {
55
- const [t, v] = validate(revisionOf({ subject: 'my-config', parents: [h1, h2], snapshot: h2 }));
56
- assertEq(t, 'ok');
57
- assertEq(v.snapshot, h2);
58
- },
59
- // `https://` bridge URLs are rejected wherever a hash is required.
60
- httpsRejectedInParents: () => {
61
- const [t] = validate(revisionOf({ subject: 'my-config', parents: ['https://example.com/x'], snapshot: h2 }));
62
- assertEq(t, 'error');
63
- },
64
- httpsRejectedInSnapshot: () => {
65
- const [t] = validate(revisionOf({ subject: 'my-config', snapshot: 'https://example.com/x' }));
66
- assertEq(t, 'error');
67
- },
68
- httpsRejectedAsFallbackSubject: () => {
69
- const [t] = validate(revisionOf({ subject: 'https://example.com/x' }));
70
- assertEq(t, 'error');
71
- },
72
- // `archived` follows the presence-only `option(true)` idiom.
73
- archivedAccepted: () => {
74
- const [t] = validate(revisionOf({ archived: true }));
75
- assertEq(t, 'ok');
76
- },
77
- // Wrong dialect tag: structural validation rejects it outright.
78
- wrongDialectRejected: () => {
79
- const [t] = validate({ dialect: 'vnd.fjs.other', subject: h1, parents: [] });
80
- assertEq(t, 'error');
81
- },
82
- // Missing required fields: rejected.
83
- missingSubjectRejected: () => {
84
- const [t] = validate({ dialect, parents: [] });
85
- assertEq(t, 'error');
86
- },
87
- // rtti structs are open: extra fields don't break validation — the
88
- // additive forward-compatibility path the versioning rule relies on.
89
- extraFieldsAccepted: () => {
90
- const [t] = validate(revisionOf({ future: 'field' }));
91
- assertEq(t, 'ok');
92
- },
93
- },
94
- decodeText: {
95
- validJson: () => {
96
- const [t, v] = decodeText(JSON.stringify(revisionOf({ generation: 0 })));
97
- assertEq(t, 'ok');
98
- assertEq(v.subject, h1);
99
- },
100
- // Key order carries no meaning: detection parses the JSON and
101
- // validates the parsed value, so `dialect` need not be first.
102
- keyOrderIndependent: () => {
103
- const text = `{"parents":[],"subject":"${h1}","dialect":"${dialect}"}`;
104
- const [t] = decodeText(text);
105
- assertEq(t, 'ok');
106
- },
107
- malformedJsonRejected: () => {
108
- const [t] = decodeText('{not json');
109
- assertEq(t, 'error');
110
- },
111
- // Ordinary JSON that isn't a revision at all falls through as an error
112
- // here — `fs/media`'s composed detector is what falls back to the
113
- // ordinary detector; this module only reports validity.
114
- ordinaryJsonRejected: () => {
115
- const [t] = decodeText('{"hello":"world"}');
116
- assertEq(t, 'error');
117
- },
118
- },
119
- };
@@ -1,4 +0,0 @@
1
- export declare const proof: {
2
- range: () => void;
3
- oneThrowsOnEmpty: () => void;
4
- };
@@ -1,348 +0,0 @@
1
- import { decToBin } from './module.f.js';
2
- export const proof = {
3
- decToBin: [
4
- () => {
5
- const result = decToBin([0n, 0]);
6
- if (result[0] !== 0n) {
7
- throw result[0].toString(2);
8
- }
9
- if (result[1] !== 0) {
10
- throw result[1];
11
- }
12
- },
13
- () => {
14
- const result = decToBin([0n, 10]);
15
- if (result[0] !== 0n) {
16
- throw result[0].toString(2);
17
- }
18
- if (result[1] !== 0) {
19
- throw result[1];
20
- }
21
- },
22
- () => {
23
- const result = decToBin([0n, -10]);
24
- if (result[0] !== 0n) {
25
- throw result[0].toString(2);
26
- }
27
- if (result[1] !== 0) {
28
- throw result[1];
29
- }
30
- },
31
- () => {
32
- const result = decToBin([1n, 0]);
33
- if (result[0] !== 4503599627370496n) {
34
- throw result[0].toString(2);
35
- }
36
- if (result[1] !== -52) {
37
- throw result[1];
38
- }
39
- },
40
- () => {
41
- const result = decToBin([1n, 1]);
42
- if (result[0] !== 5629499534213120n) {
43
- throw result[0].toString(2);
44
- }
45
- if (result[1] !== -49) {
46
- throw result[1];
47
- }
48
- },
49
- () => {
50
- const result = decToBin([1000n, -2]);
51
- if (result[0] !== 5629499534213120n) {
52
- throw result[0].toString(2);
53
- }
54
- if (result[1] !== -49) {
55
- throw result[1];
56
- }
57
- },
58
- () => {
59
- const result = decToBin([1n, -1]);
60
- if (result[0] !== 7205759403792794n) {
61
- throw result[0].toString(2);
62
- } //+1
63
- if (result[1] !== -56) {
64
- throw result[1];
65
- }
66
- },
67
- () => {
68
- const result = decToBin([-1n, 0]);
69
- if (result[0] !== -4503599627370496n) {
70
- throw result[0].toString(2);
71
- }
72
- if (result[1] !== -52) {
73
- throw result[1];
74
- }
75
- },
76
- () => {
77
- const result = decToBin([-1n, 1]);
78
- if (result[0] !== -5629499534213120n) {
79
- throw result[0].toString(2);
80
- }
81
- if (result[1] !== -49) {
82
- throw result[1];
83
- }
84
- },
85
- () => {
86
- const result = decToBin([-1000n, -2]);
87
- if (result[0] !== -5629499534213120n) {
88
- throw result[0].toString(2);
89
- }
90
- if (result[1] !== -49) {
91
- throw result[1];
92
- }
93
- },
94
- () => {
95
- const result = decToBin([-1n, -1]);
96
- if (result[0] !== -7205759403792794n) {
97
- throw result[0].toString(2);
98
- } //+1
99
- if (result[1] !== -56) {
100
- throw result[1];
101
- }
102
- },
103
- () => {
104
- const result = decToBin([9007199254740993n, 0]); //54bits (...0.1)
105
- if (result[0] !== 4503599627370496n) {
106
- throw result[0].toString(2);
107
- }
108
- if (result[1] !== 1) {
109
- throw result[1];
110
- }
111
- },
112
- () => {
113
- const result = decToBin([-9007199254740995n, 0]); //54bits (...1.1)
114
- if (result[0] !== -4503599627370498n) {
115
- throw result[0].toString(2);
116
- }
117
- if (result[1] !== 1) {
118
- throw result[1];
119
- }
120
- },
121
- () => {
122
- const result = decToBin([-9007199254740993n, 0]); //54bits (...0.1)
123
- if (result[0] !== -4503599627370496n) {
124
- throw result[0].toString(2);
125
- }
126
- if (result[1] !== 1) {
127
- throw result[1];
128
- }
129
- },
130
- () => {
131
- const result = decToBin([-9007199254740995n, 0]); //54bits (...1.1)
132
- if (result[0] !== -4503599627370498n) {
133
- throw result[0].toString(2);
134
- }
135
- if (result[1] !== 1) {
136
- throw result[1];
137
- }
138
- },
139
- () => {
140
- const result = decToBin([18014398509481985n, 0]); //55bits (...0.01)
141
- if (result[0] !== 4503599627370496n) {
142
- throw result[0].toString(2);
143
- }
144
- if (result[1] !== 2) {
145
- throw result[1];
146
- }
147
- },
148
- () => {
149
- const result = decToBin([18014398509481986n, 0]); //55bits (...0.10)
150
- if (result[0] !== 4503599627370496n) {
151
- throw result[0].toString(2);
152
- }
153
- if (result[1] !== 2) {
154
- throw result[1];
155
- }
156
- },
157
- () => {
158
- const result = decToBin([18014398509481990n, 0]); //55bits (...1.10)
159
- if (result[0] !== 4503599627370498n) {
160
- throw result[0].toString(2);
161
- }
162
- if (result[1] !== 2) {
163
- throw result[1];
164
- }
165
- },
166
- () => {
167
- const result = decToBin([18014398509481987n, 0]); //55bits (0.11)
168
- if (result[0] !== 4503599627370497n) {
169
- throw result[0].toString(2);
170
- }
171
- if (result[1] !== 2) {
172
- throw result[1];
173
- }
174
- },
175
- ],
176
- roundingPositive: [
177
- () => {
178
- const result = decToBin([288230376151711745n, -1]);
179
- // reminder = 0
180
- // m = 11001100110011001100110011001100110011001100110011001.101
181
- // rounding up
182
- if (result[0] !== 7205759403792794n) {
183
- throw result[0].toString(2);
184
- }
185
- if (result[1] !== 2) {
186
- throw result[1];
187
- }
188
- },
189
- () => {
190
- const result = decToBin([288230376151711760n, -1]);
191
- // reminder = 0
192
- // m = 11001100110011001100110011001100110011001100110011010.000
193
- // rounding down
194
- if (result[0] !== 7205759403792794n) {
195
- throw result[0].toString(2);
196
- }
197
- if (result[1] !== 2) {
198
- throw result[1];
199
- }
200
- },
201
- () => {
202
- const result = decToBin([288230376151711780n, -1]);
203
- // reminder = 0
204
- // m = 11001100110011001100110011001100110011001100110011010.100
205
- // rounding down (to even)
206
- if (result[0] !== 7205759403792794n) {
207
- throw result[0].toString(2);
208
- }
209
- if (result[1] !== 2) {
210
- throw result[1];
211
- }
212
- },
213
- () => {
214
- const result = decToBin([288230376151711781n, -1]);
215
- // reminder = 1
216
- // m = 11001100110011001100110011001100110011001100110011010.100
217
- // rounding up
218
- if (result[0] !== 7205759403792795n) {
219
- throw result[0].toString(2);
220
- }
221
- if (result[1] !== 2) {
222
- throw result[1];
223
- }
224
- },
225
- () => {
226
- const result = decToBin([288230376151711785n, -1]);
227
- // reminder = 0
228
- // m = 11001100110011001100110011001100110011001100110011010.101
229
- // rounding up
230
- if (result[0] !== 7205759403792795n) {
231
- throw result[0].toString(2);
232
- }
233
- if (result[1] !== 2) {
234
- throw result[1];
235
- }
236
- },
237
- () => {
238
- const result = decToBin([288230376151711805n, -1]);
239
- // reminder = 0
240
- // m = 11001100110011001100110011001100110011001100110011011.001
241
- // rounding down
242
- if (result[0] !== 7205759403792795n) {
243
- throw result[0].toString(2);
244
- }
245
- if (result[1] !== 2) {
246
- throw result[1];
247
- }
248
- },
249
- () => {
250
- const result = decToBin([288230376151711820n, -1]);
251
- // reminder = 0
252
- // m = 11001100110011001100110011001100110011001100110011011.100
253
- // rounding up (to even)
254
- if (result[0] !== 7205759403792796n) {
255
- throw result[0].toString(2);
256
- }
257
- if (result[1] !== 2) {
258
- throw result[1];
259
- }
260
- }
261
- ],
262
- roundingNegative: [
263
- () => {
264
- const result = decToBin([-288230376151711745n, -1]);
265
- // reminder = 0
266
- // m = -11001100110011001100110011001100110011001100110011001.101
267
- // rounding down
268
- if (result[0] !== -7205759403792794n) {
269
- throw result[0].toString(2);
270
- }
271
- if (result[1] !== 2) {
272
- throw result[1];
273
- }
274
- },
275
- () => {
276
- const result = decToBin([-288230376151711760n, -1]);
277
- // reminder = 0
278
- // m = -11001100110011001100110011001100110011001100110011010.000
279
- // rounding up
280
- if (result[0] !== -7205759403792794n) {
281
- throw result[0].toString(2);
282
- }
283
- if (result[1] !== 2) {
284
- throw result[1];
285
- }
286
- },
287
- () => {
288
- const result = decToBin([-288230376151711780n, -1]);
289
- // reminder = 0
290
- // m = -11001100110011001100110011001100110011001100110011010.100
291
- // rounding up (to even)
292
- if (result[0] !== -7205759403792794n) {
293
- throw result[0].toString(2);
294
- }
295
- if (result[1] !== 2) {
296
- throw result[1];
297
- }
298
- },
299
- () => {
300
- const result = decToBin([-288230376151711781n, -1]);
301
- // reminder = 1
302
- // m = -11001100110011001100110011001100110011001100110011010.100
303
- // rounding down
304
- if (result[0] !== -7205759403792795n) {
305
- throw result[0].toString(2);
306
- }
307
- if (result[1] !== 2) {
308
- throw result[1];
309
- }
310
- },
311
- () => {
312
- const result = decToBin([-288230376151711785n, -1]);
313
- // reminder = 0
314
- // m = -11001100110011001100110011001100110011001100110011010.101
315
- // rounding down
316
- if (result[0] !== -7205759403792795n) {
317
- throw result[0].toString(2);
318
- }
319
- if (result[1] !== 2) {
320
- throw result[1];
321
- }
322
- },
323
- () => {
324
- const result = decToBin([-288230376151711805n, -1]);
325
- // reminder = 0
326
- // m = -11001100110011001100110011001100110011001100110011011.001
327
- // rounding up
328
- if (result[0] !== -7205759403792795n) {
329
- throw result[0].toString(2);
330
- }
331
- if (result[1] !== 2) {
332
- throw result[1];
333
- }
334
- },
335
- () => {
336
- const result = decToBin([-288230376151711820n, -1]);
337
- // reminder = 0
338
- // m = -11001100110011001100110011001100110011001100110011011.100
339
- // rounding down (to even)
340
- if (result[0] !== -7205759403792796n) {
341
- throw result[0].toString(2);
342
- }
343
- if (result[1] !== 2) {
344
- throw result[1];
345
- }
346
- }
347
- ]
348
- };
@@ -1,50 +0,0 @@
1
- import { fromUndefined, map, match, toOption } from './module.f.js';
2
- export const proof = [
3
- () => {
4
- const optionSq = map((v) => v * v);
5
- const sq3 = optionSq(3);
6
- if (sq3 !== 9) {
7
- throw sq3;
8
- }
9
- const sqNull = optionSq(null);
10
- if (sqNull !== null) {
11
- throw sqNull;
12
- }
13
- },
14
- () => {
15
- const opt1 = toOption(5);
16
- if (opt1.length !== 1 || opt1[0] !== 5) {
17
- throw opt1;
18
- }
19
- const opt2 = toOption(null);
20
- if (opt2.length !== 0) {
21
- throw opt2;
22
- }
23
- },
24
- () => {
25
- const double = match((v) => v * 2)(() => -1);
26
- if (double(3) !== 6) {
27
- throw double(3);
28
- }
29
- if (double(null) !== -1) {
30
- throw double(null);
31
- }
32
- },
33
- () => {
34
- if (fromUndefined(undefined) !== null) {
35
- throw 0;
36
- }
37
- if (fromUndefined(5) !== 5) {
38
- throw 1;
39
- }
40
- if (fromUndefined(0) !== 0) {
41
- throw 2;
42
- }
43
- if (fromUndefined(null) !== null) {
44
- throw 3;
45
- }
46
- if (fromUndefined('') !== '') {
47
- throw 4;
48
- }
49
- },
50
- ];
@@ -1,2 +0,0 @@
1
- export const contains = ([b, e]) => i => b <= i && i <= e;
2
- export const one = a => [a, a];
@@ -1,18 +0,0 @@
1
- import { contains } from './module.f.js';
2
- export const proof = () => {
3
- if (!contains([0, 5])(1)) {
4
- throw 1;
5
- }
6
- if (!contains([0, 5])(0)) {
7
- throw 0;
8
- }
9
- if (!contains([0, 5])(5)) {
10
- throw 5;
11
- }
12
- if (contains([0, 5])(-1)) {
13
- throw -1;
14
- }
15
- if (contains([0, 5])(6)) {
16
- throw 6;
17
- }
18
- };