functionalscript 0.2.5 → 0.3.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 (433) hide show
  1. package/.github/workflows/ci.yml +19 -4
  2. package/CHANGELOG.md +9 -0
  3. package/com/cpp/{module.f.mjs → module.f.ts} +65 -44
  4. package/com/cpp/{test.f.mjs → test.f.ts} +1 -1
  5. package/com/cpp/testlib.f.ts +8 -0
  6. package/com/cs/{module.f.mjs → module.f.ts} +47 -38
  7. package/com/cs/{test.f.mjs → test.f.ts} +2 -2
  8. package/com/cs/testlib.f.ts +8 -0
  9. package/com/rust/module.f.ts +287 -0
  10. package/com/rust/{test.f.mjs → test.f.ts} +1 -1
  11. package/com/rust/testlib.f.ts +8 -0
  12. package/com/test/{build.f.mjs → build.f.ts} +47 -45
  13. package/com/test/{build.mjs → build.ts} +7 -6
  14. package/com/types/module.f.ts +62 -0
  15. package/com/types/{testlib.f.mjs → testlib.f.ts} +2 -3
  16. package/commonjs/build/module.f.ts +100 -0
  17. package/commonjs/build/{test.f.mjs → test.f.ts} +21 -17
  18. package/commonjs/module/function/module.f.ts +13 -0
  19. package/commonjs/module/module.f.ts +41 -0
  20. package/commonjs/module.f.ts +7 -0
  21. package/commonjs/{module.mjs → module.ts} +12 -9
  22. package/commonjs/package/dependencies/module.f.ts +22 -0
  23. package/commonjs/package/dependencies/{test.f.mjs → test.f.ts} +1 -1
  24. package/commonjs/package/module.f.ts +31 -0
  25. package/commonjs/package/{test.f.mjs → test.f.ts} +1 -1
  26. package/commonjs/path/{module.f.mjs → module.f.ts} +72 -67
  27. package/commonjs/path/{test.f.mjs → test.f.ts} +25 -19
  28. package/commonjs/{test.mjs → test.ts} +5 -4
  29. package/crypto/prime_field/{module.f.mjs → module.f.ts} +40 -37
  30. package/crypto/prime_field/{test.f.mjs → test.f.ts} +7 -5
  31. package/crypto/secp/{module.f.mjs → module.f.ts} +44 -44
  32. package/crypto/secp/{test.f.mjs → test.f.ts} +16 -11
  33. package/crypto/sha2/{module.f.mjs → module.f.ts} +61 -46
  34. package/crypto/sha2/{test.f.mjs → test.f.ts} +12 -9
  35. package/deno.json +71 -0
  36. package/dev/README.md +8 -0
  37. package/dev/index.ts +3 -0
  38. package/dev/{module.f.mjs → module.f.ts} +0 -2
  39. package/dev/{module.mjs → module.ts} +65 -60
  40. package/dev/test/{module.f.mjs → module.f.ts} +57 -70
  41. package/dev/{test.f.mjs → test.f.ts} +7 -5
  42. package/dev/test.ts +53 -0
  43. package/djs/{module.f.mjs → module.f.ts} +31 -31
  44. package/djs/parser/{module.f.mjs → module.f.ts} +190 -182
  45. package/djs/parser/{test.f.mjs → test.f.ts} +173 -150
  46. package/djs/serializer/module.f.ts +90 -0
  47. package/djs/{test.f.mjs → test.f.ts} +4 -4
  48. package/djs/tokenizer/{module.f.mjs → module.f.ts} +35 -42
  49. package/djs/tokenizer/{test.f.mjs → test.f.ts} +9 -8
  50. package/fsc/{module.f.mjs → module.f.ts} +41 -44
  51. package/fsc/{test.f.mjs → test.f.ts} +8 -6
  52. package/fsm/module.f.ts +107 -0
  53. package/fsm/{test.f.mjs → test.f.ts} +10 -9
  54. package/html/README.md +10 -9
  55. package/html/module.f.ts +108 -0
  56. package/html/{test.f.mjs → test.f.ts} +10 -7
  57. package/issues/README.md +3 -0
  58. package/issues/lang/3110-function.md +25 -1
  59. package/issues/{test.f.mjs → test.f.ts} +3 -2
  60. package/js/tokenizer/module.f.ts +882 -0
  61. package/js/tokenizer/{test.f.mjs → test.f.ts} +11 -10
  62. package/json/module.f.ts +94 -0
  63. package/json/parser/{module.f.mjs → module.f.ts} +113 -109
  64. package/json/parser/{test.f.mjs → test.f.ts} +10 -9
  65. package/json/serializer/module.f.ts +70 -0
  66. package/json/serializer/{test.f.mjs → test.f.ts} +3 -3
  67. package/json/{test.f.mjs → test.f.ts} +3 -3
  68. package/json/tokenizer/{module.f.mjs → module.f.ts} +29 -36
  69. package/json/tokenizer/{test.f.mjs → test.f.ts} +9 -8
  70. package/nanvm-lib/src/extension.rs +15 -4
  71. package/nanvm-lib/src/interface.rs +7 -10
  72. package/nanvm-lib/src/lib.rs +3 -3
  73. package/nanvm-lib/src/naive.rs +10 -3
  74. package/nanvm-lib/src/nanenum.rs +5 -1
  75. package/nanvm-lib/tests/{test.f.mjs → test.f.ts} +7 -6
  76. package/nodejs/version/{main.mjs → main.ts} +1 -1
  77. package/nodejs/version/module.f.ts +42 -0
  78. package/nodejs/version/{test.f.mjs → test.f.ts} +11 -12
  79. package/package.json +9 -9
  80. package/text/ascii/{module.f.mjs → module.f.ts} +10 -8
  81. package/text/ascii/{test.f.mjs → test.f.ts} +4 -4
  82. package/text/module.f.ts +30 -0
  83. package/text/sgr/{module.f.mjs → module.f.ts} +3 -5
  84. package/text/{test.f.mjs → test.f.ts} +5 -4
  85. package/text/utf16/module.f.ts +108 -0
  86. package/text/utf16/{test.f.mjs → test.f.ts} +7 -6
  87. package/text/utf8/{module.f.mjs → module.f.ts} +29 -23
  88. package/text/utf8/{test.f.mjs → test.f.ts} +4 -4
  89. package/tsconfig.json +4 -1
  90. package/types/array/module.f.ts +89 -0
  91. package/types/array/{test.f.mjs → test.f.ts} +3 -3
  92. package/types/bigfloat/{module.f.mjs → module.f.ts} +25 -20
  93. package/types/bigfloat/{test.f.mjs → test.f.ts} +1 -1
  94. package/types/bigint/{module.f.mjs → module.f.ts} +29 -28
  95. package/types/bigint/{test.f.mjs → test.f.ts} +2 -2
  96. package/types/bit_vec/README.md +18 -0
  97. package/types/bit_vec/module.f.ts +185 -0
  98. package/types/bit_vec/test.f.ts +129 -0
  99. package/types/btree/find/module.f.ts +92 -0
  100. package/types/btree/find/{test.f.mjs → test.f.ts} +20 -16
  101. package/types/btree/{module.f.mjs → module.f.ts} +9 -9
  102. package/types/btree/remove/{module.f.mjs → module.f.ts} +43 -53
  103. package/types/btree/remove/{test.f.mjs → test.f.ts} +19 -15
  104. package/types/btree/set/{module.f.mjs → module.f.ts} +17 -20
  105. package/types/btree/set/{test.f.mjs → test.f.ts} +96 -66
  106. package/types/btree/{test.f.mjs → test.f.ts} +34 -26
  107. package/types/btree/types/module.f.ts +27 -0
  108. package/types/byte_set/module.f.ts +70 -0
  109. package/types/byte_set/{test.f.mjs → test.f.ts} +8 -7
  110. package/types/function/compare/module.f.ts +26 -0
  111. package/types/function/compare/{test.f.mjs → test.f.ts} +1 -1
  112. package/types/function/module.f.ts +43 -0
  113. package/types/function/operator/module.f.ts +63 -0
  114. package/types/function/test.f.ts +20 -0
  115. package/types/list/module.f.ts +345 -0
  116. package/types/list/{test.f.mjs → test.f.ts} +30 -24
  117. package/types/map/module.f.ts +65 -0
  118. package/types/map/{test.f.mjs → test.f.ts} +6 -5
  119. package/types/nibble_set/module.f.ts +34 -0
  120. package/types/nibble_set/{test.f.mjs → test.f.ts} +3 -3
  121. package/types/nullable/module.f.ts +9 -0
  122. package/types/nullable/{test.f.mjs → test.f.ts} +2 -2
  123. package/types/number/module.f.ts +16 -0
  124. package/types/number/{test.f.mjs → test.f.ts} +7 -5
  125. package/types/object/module.f.ts +30 -0
  126. package/types/object/{test.f.mjs → test.f.ts} +2 -2
  127. package/types/range/module.f.ts +10 -0
  128. package/types/range/{test.f.mjs → test.f.ts} +1 -1
  129. package/types/range_map/module.f.ts +70 -0
  130. package/types/range_map/{test.f.mjs → test.f.ts} +82 -57
  131. package/types/result/module.f.ts +20 -0
  132. package/types/result/{module.mjs → module.ts} +4 -3
  133. package/types/sorted_list/module.f.ts +83 -0
  134. package/types/sorted_list/{test.f.mjs → test.f.ts} +14 -12
  135. package/types/sorted_set/module.f.ts +36 -0
  136. package/types/sorted_set/{test.f.mjs → test.f.ts} +14 -12
  137. package/types/string/module.f.ts +24 -0
  138. package/types/string/{test.f.mjs → test.f.ts} +2 -2
  139. package/types/string_set/module.f.ts +37 -0
  140. package/types/string_set/{test.f.mjs → test.f.ts} +2 -2
  141. package/com/cpp/testlib.f.mjs +0 -8
  142. package/com/cs/testlib.f.mjs +0 -8
  143. package/com/rust/module.f.mjs +0 -272
  144. package/com/rust/testlib.f.mjs +0 -8
  145. package/com/types/module.f.mjs +0 -67
  146. package/commonjs/build/module.f.mjs +0 -100
  147. package/commonjs/module/function/module.f.mjs +0 -21
  148. package/commonjs/module/module.f.mjs +0 -53
  149. package/commonjs/module.f.mjs +0 -11
  150. package/commonjs/package/dependencies/module.f.mjs +0 -22
  151. package/commonjs/package/module.f.mjs +0 -36
  152. package/dev/index.mjs +0 -3
  153. package/dev/test.mjs +0 -60
  154. package/fsm/module.f.mjs +0 -99
  155. package/html/module.f.mjs +0 -102
  156. package/js/tokenizer/module.f.mjs +0 -872
  157. package/json/module.f.mjs +0 -89
  158. package/json/serializer/module.f.mjs +0 -87
  159. package/jsr.json +0 -66
  160. package/nodejs/version/module.f.mjs +0 -47
  161. package/out/com/cpp/module.f.d.mts +0 -7
  162. package/out/com/cpp/module.f.mjs +0 -130
  163. package/out/com/cpp/test.f.d.mts +0 -2
  164. package/out/com/cpp/test.f.mjs +0 -40
  165. package/out/com/cpp/testlib.f.d.mts +0 -2
  166. package/out/com/cpp/testlib.f.mjs +0 -7
  167. package/out/com/cs/module.f.d.mts +0 -7
  168. package/out/com/cs/module.f.mjs +0 -104
  169. package/out/com/cs/test.f.d.mts +0 -2
  170. package/out/com/cs/test.f.mjs +0 -43
  171. package/out/com/cs/testlib.f.d.mts +0 -2
  172. package/out/com/cs/testlib.f.mjs +0 -7
  173. package/out/com/rust/module.f.d.mts +0 -23
  174. package/out/com/rust/module.f.mjs +0 -224
  175. package/out/com/rust/test.f.d.mts +0 -2
  176. package/out/com/rust/test.f.mjs +0 -123
  177. package/out/com/rust/testlib.f.d.mts +0 -2
  178. package/out/com/rust/testlib.f.mjs +0 -7
  179. package/out/com/test/build.d.mts +0 -1
  180. package/out/com/test/build.f.d.mts +0 -26
  181. package/out/com/test/build.f.mjs +0 -98
  182. package/out/com/test/build.mjs +0 -40
  183. package/out/com/types/module.f.d.mts +0 -23
  184. package/out/com/types/module.f.mjs +0 -51
  185. package/out/com/types/testlib.f.d.mts +0 -44
  186. package/out/com/types/testlib.f.mjs +0 -30
  187. package/out/commonjs/build/module.f.d.mts +0 -20
  188. package/out/commonjs/build/module.f.mjs +0 -107
  189. package/out/commonjs/build/test.f.d.mts +0 -3
  190. package/out/commonjs/build/test.f.mjs +0 -102
  191. package/out/commonjs/module/function/module.f.d.mts +0 -5
  192. package/out/commonjs/module/function/module.f.mjs +0 -15
  193. package/out/commonjs/module/module.f.d.mts +0 -52
  194. package/out/commonjs/module/module.f.mjs +0 -48
  195. package/out/commonjs/module.d.mts +0 -3
  196. package/out/commonjs/module.f.d.mts +0 -2
  197. package/out/commonjs/module.f.mjs +0 -10
  198. package/out/commonjs/module.mjs +0 -26
  199. package/out/commonjs/package/dependencies/module.f.d.mts +0 -6
  200. package/out/commonjs/package/dependencies/module.f.mjs +0 -21
  201. package/out/commonjs/package/dependencies/test.f.d.mts +0 -2
  202. package/out/commonjs/package/dependencies/test.f.mjs +0 -15
  203. package/out/commonjs/package/module.f.d.mts +0 -21
  204. package/out/commonjs/package/module.f.mjs +0 -40
  205. package/out/commonjs/package/test.f.d.mts +0 -2
  206. package/out/commonjs/package/test.f.mjs +0 -27
  207. package/out/commonjs/path/module.f.d.mts +0 -60
  208. package/out/commonjs/path/module.f.mjs +0 -171
  209. package/out/commonjs/path/test.f.d.mts +0 -25
  210. package/out/commonjs/path/test.f.mjs +0 -231
  211. package/out/commonjs/test.d.mts +0 -8
  212. package/out/commonjs/test.mjs +0 -87
  213. package/out/crypto/prime_field/module.f.d.mts +0 -67
  214. package/out/crypto/prime_field/module.f.mjs +0 -110
  215. package/out/crypto/prime_field/test.f.d.mts +0 -13
  216. package/out/crypto/prime_field/test.f.mjs +0 -152
  217. package/out/crypto/secp/module.f.d.mts +0 -110
  218. package/out/crypto/secp/module.f.mjs +0 -173
  219. package/out/crypto/secp/test.f.d.mts +0 -5
  220. package/out/crypto/secp/test.f.mjs +0 -78
  221. package/out/crypto/sha2/module.f.d.mts +0 -15
  222. package/out/crypto/sha2/module.f.mjs +0 -172
  223. package/out/crypto/sha2/test.f.d.mts +0 -10
  224. package/out/crypto/sha2/test.f.mjs +0 -86
  225. package/out/dev/index.d.mts +0 -1
  226. package/out/dev/index.mjs +0 -2
  227. package/out/dev/module.d.mts +0 -26
  228. package/out/dev/module.f.d.mts +0 -1
  229. package/out/dev/module.f.mjs +0 -2
  230. package/out/dev/module.mjs +0 -167
  231. package/out/dev/test/module.f.d.mts +0 -25
  232. package/out/dev/test/module.f.mjs +0 -134
  233. package/out/dev/test.d.mts +0 -3
  234. package/out/dev/test.f.d.mts +0 -9
  235. package/out/dev/test.f.mjs +0 -58
  236. package/out/dev/test.mjs +0 -52
  237. package/out/djs/module.f.d.mts +0 -20
  238. package/out/djs/module.f.mjs +0 -79
  239. package/out/djs/parser/module.f.d.mts +0 -56
  240. package/out/djs/parser/module.f.mjs +0 -448
  241. package/out/djs/parser/test.f.d.mts +0 -13
  242. package/out/djs/parser/test.f.mjs +0 -569
  243. package/out/djs/test.f.d.mts +0 -12
  244. package/out/djs/test.f.mjs +0 -84
  245. package/out/djs/tokenizer/module.f.d.mts +0 -13
  246. package/out/djs/tokenizer/module.f.mjs +0 -91
  247. package/out/djs/tokenizer/test.f.d.mts +0 -7
  248. package/out/djs/tokenizer/test.f.mjs +0 -530
  249. package/out/fsc/module.f.d.mts +0 -7
  250. package/out/fsc/module.f.mjs +0 -105
  251. package/out/fsc/test.f.d.mts +0 -4
  252. package/out/fsc/test.f.mjs +0 -19
  253. package/out/fsm/module.f.d.mts +0 -14
  254. package/out/fsm/module.f.mjs +0 -80
  255. package/out/fsm/test.f.d.mts +0 -5
  256. package/out/fsm/test.f.mjs +0 -138
  257. package/out/html/module.f.d.mts +0 -17
  258. package/out/html/module.f.mjs +0 -80
  259. package/out/html/test.f.d.mts +0 -10
  260. package/out/html/test.f.mjs +0 -45
  261. package/out/issues/test.f.d.mts +0 -16
  262. package/out/issues/test.f.mjs +0 -66
  263. package/out/js/tokenizer/module.f.d.mts +0 -163
  264. package/out/js/tokenizer/module.f.mjs +0 -729
  265. package/out/js/tokenizer/test.f.d.mts +0 -9
  266. package/out/js/tokenizer/test.f.mjs +0 -906
  267. package/out/json/module.f.d.mts +0 -33
  268. package/out/json/module.f.mjs +0 -89
  269. package/out/json/parser/module.f.d.mts +0 -32
  270. package/out/json/parser/module.f.mjs +0 -224
  271. package/out/json/parser/test.f.d.mts +0 -5
  272. package/out/json/parser/test.f.mjs +0 -329
  273. package/out/json/serializer/module.f.d.mts +0 -36
  274. package/out/json/serializer/module.f.mjs +0 -67
  275. package/out/json/serializer/test.f.d.mts +0 -8
  276. package/out/json/serializer/test.f.mjs +0 -87
  277. package/out/json/test.f.d.mts +0 -8
  278. package/out/json/test.f.mjs +0 -61
  279. package/out/json/tokenizer/module.f.d.mts +0 -13
  280. package/out/json/tokenizer/module.f.mjs +0 -78
  281. package/out/json/tokenizer/test.f.d.mts +0 -6
  282. package/out/json/tokenizer/test.f.mjs +0 -420
  283. package/out/nanvm-lib/tests/test.f.d.mts +0 -36
  284. package/out/nanvm-lib/tests/test.f.mjs +0 -87
  285. package/out/nodejs/version/main.d.mts +0 -1
  286. package/out/nodejs/version/main.mjs +0 -3
  287. package/out/nodejs/version/module.f.d.mts +0 -12
  288. package/out/nodejs/version/module.f.mjs +0 -34
  289. package/out/nodejs/version/test.f.d.mts +0 -2
  290. package/out/nodejs/version/test.f.mjs +0 -97
  291. package/out/text/ascii/module.f.d.mts +0 -70
  292. package/out/text/ascii/module.f.mjs +0 -154
  293. package/out/text/ascii/test.f.d.mts +0 -4
  294. package/out/text/ascii/test.f.mjs +0 -14
  295. package/out/text/module.f.d.mts +0 -13
  296. package/out/text/module.f.mjs +0 -19
  297. package/out/text/sgr/module.f.d.mts +0 -12
  298. package/out/text/sgr/module.f.mjs +0 -17
  299. package/out/text/test.f.d.mts +0 -2
  300. package/out/text/test.f.mjs +0 -19
  301. package/out/text/utf16/module.f.d.mts +0 -12
  302. package/out/text/utf16/module.f.mjs +0 -86
  303. package/out/text/utf16/test.f.d.mts +0 -6
  304. package/out/text/utf16/test.f.mjs +0 -145
  305. package/out/text/utf8/module.f.d.mts +0 -10
  306. package/out/text/utf8/module.f.mjs +0 -126
  307. package/out/text/utf8/test.f.d.mts +0 -6
  308. package/out/text/utf8/test.f.mjs +0 -175
  309. package/out/types/array/module.f.d.mts +0 -31
  310. package/out/types/array/module.f.mjs +0 -95
  311. package/out/types/array/test.f.d.mts +0 -10
  312. package/out/types/array/test.f.mjs +0 -116
  313. package/out/types/bigfloat/module.f.d.mts +0 -6
  314. package/out/types/bigfloat/module.f.mjs +0 -77
  315. package/out/types/bigfloat/test.f.d.mts +0 -6
  316. package/out/types/bigfloat/test.f.mjs +0 -349
  317. package/out/types/bigint/module.f.d.mts +0 -29
  318. package/out/types/bigint/module.f.mjs +0 -114
  319. package/out/types/bigint/test.f.d.mts +0 -16
  320. package/out/types/bigint/test.f.mjs +0 -199
  321. package/out/types/bit_vec/module.f.d.mts +0 -72
  322. package/out/types/bit_vec/module.f.mjs +0 -83
  323. package/out/types/bit_vec/test.f.d.mts +0 -9
  324. package/out/types/bit_vec/test.f.mjs +0 -60
  325. package/out/types/btree/find/module.f.d.mts +0 -36
  326. package/out/types/btree/find/module.f.mjs +0 -137
  327. package/out/types/btree/find/test.f.d.mts +0 -2
  328. package/out/types/btree/find/test.f.mjs +0 -156
  329. package/out/types/btree/module.f.d.mts +0 -5
  330. package/out/types/btree/module.f.mjs +0 -34
  331. package/out/types/btree/remove/module.f.d.mts +0 -14
  332. package/out/types/btree/remove/module.f.mjs +0 -209
  333. package/out/types/btree/remove/test.f.d.mts +0 -7
  334. package/out/types/btree/remove/test.f.mjs +0 -638
  335. package/out/types/btree/set/module.f.d.mts +0 -5
  336. package/out/types/btree/set/module.f.mjs +0 -114
  337. package/out/types/btree/set/test.f.d.mts +0 -2
  338. package/out/types/btree/set/test.f.mjs +0 -390
  339. package/out/types/btree/test.f.d.mts +0 -13
  340. package/out/types/btree/test.f.mjs +0 -83
  341. package/out/types/btree/types/module.f.d.mts +0 -14
  342. package/out/types/btree/types/module.f.mjs +0 -50
  343. package/out/types/byte_set/module.f.d.mts +0 -25
  344. package/out/types/byte_set/module.f.mjs +0 -42
  345. package/out/types/byte_set/test.f.d.mts +0 -13
  346. package/out/types/byte_set/test.f.mjs +0 -123
  347. package/out/types/function/compare/module.f.d.mts +0 -23
  348. package/out/types/function/compare/module.f.mjs +0 -22
  349. package/out/types/function/compare/test.f.d.mts +0 -2
  350. package/out/types/function/compare/test.f.mjs +0 -8
  351. package/out/types/function/module.f.d.mts +0 -51
  352. package/out/types/function/module.f.mjs +0 -44
  353. package/out/types/function/operator/module.f.d.mts +0 -60
  354. package/out/types/function/operator/module.f.mjs +0 -60
  355. package/out/types/function/test.f.d.mts +0 -2
  356. package/out/types/function/test.f.mjs +0 -15
  357. package/out/types/list/module.f.d.mts +0 -82
  358. package/out/types/list/module.f.mjs +0 -269
  359. package/out/types/list/test.f.d.mts +0 -38
  360. package/out/types/list/test.f.mjs +0 -401
  361. package/out/types/map/module.f.d.mts +0 -21
  362. package/out/types/map/module.f.mjs +0 -54
  363. package/out/types/map/test.f.d.mts +0 -5
  364. package/out/types/map/test.f.mjs +0 -115
  365. package/out/types/nibble_set/module.f.d.mts +0 -16
  366. package/out/types/nibble_set/module.f.mjs +0 -19
  367. package/out/types/nibble_set/test.f.d.mts +0 -13
  368. package/out/types/nibble_set/test.f.mjs +0 -90
  369. package/out/types/nullable/module.f.d.mts +0 -9
  370. package/out/types/nullable/module.f.mjs +0 -9
  371. package/out/types/nullable/test.f.d.mts +0 -2
  372. package/out/types/nullable/test.f.mjs +0 -12
  373. package/out/types/number/module.f.d.mts +0 -7
  374. package/out/types/number/module.f.mjs +0 -12
  375. package/out/types/number/test.f.d.mts +0 -11
  376. package/out/types/number/test.f.mjs +0 -126
  377. package/out/types/object/module.f.d.mts +0 -22
  378. package/out/types/object/module.f.mjs +0 -27
  379. package/out/types/object/test.f.d.mts +0 -5
  380. package/out/types/object/test.f.mjs +0 -17
  381. package/out/types/range/module.f.d.mts +0 -6
  382. package/out/types/range/module.f.mjs +0 -6
  383. package/out/types/range/test.f.d.mts +0 -2
  384. package/out/types/range/test.f.mjs +0 -18
  385. package/out/types/range_map/module.f.d.mts +0 -19
  386. package/out/types/range_map/module.f.mjs +0 -84
  387. package/out/types/range_map/test.f.d.mts +0 -6
  388. package/out/types/range_map/test.f.mjs +0 -201
  389. package/out/types/result/module.d.mts +0 -7
  390. package/out/types/result/module.f.d.mts +0 -22
  391. package/out/types/result/module.f.mjs +0 -25
  392. package/out/types/result/module.mjs +0 -16
  393. package/out/types/sorted_list/module.f.d.mts +0 -53
  394. package/out/types/sorted_list/module.f.mjs +0 -102
  395. package/out/types/sorted_list/test.f.d.mts +0 -5
  396. package/out/types/sorted_list/test.f.mjs +0 -66
  397. package/out/types/sorted_set/module.f.d.mts +0 -19
  398. package/out/types/sorted_set/module.f.mjs +0 -29
  399. package/out/types/sorted_set/test.f.d.mts +0 -6
  400. package/out/types/sorted_set/test.f.mjs +0 -80
  401. package/out/types/string/module.f.d.mts +0 -9
  402. package/out/types/string/module.f.mjs +0 -17
  403. package/out/types/string/test.f.d.mts +0 -15
  404. package/out/types/string/test.f.mjs +0 -58
  405. package/out/types/string_set/module.f.d.mts +0 -13
  406. package/out/types/string_set/module.f.mjs +0 -29
  407. package/out/types/string_set/test.f.d.mts +0 -5
  408. package/out/types/string_set/test.f.mjs +0 -65
  409. package/text/module.f.mjs +0 -27
  410. package/text/utf16/module.f.mjs +0 -96
  411. package/types/array/module.f.mjs +0 -119
  412. package/types/bit_vec/module.f.mjs +0 -90
  413. package/types/bit_vec/test.f.mjs +0 -41
  414. package/types/btree/find/module.f.mjs +0 -125
  415. package/types/btree/types/module.f.mjs +0 -64
  416. package/types/byte_set/module.f.mjs +0 -61
  417. package/types/function/compare/module.f.mjs +0 -29
  418. package/types/function/module.f.mjs +0 -50
  419. package/types/function/operator/module.f.mjs +0 -78
  420. package/types/function/test.f.mjs +0 -17
  421. package/types/list/module.f.mjs +0 -320
  422. package/types/map/module.f.mjs +0 -67
  423. package/types/nibble_set/module.f.mjs +0 -28
  424. package/types/nullable/module.f.mjs +0 -11
  425. package/types/number/module.f.mjs +0 -16
  426. package/types/object/module.f.mjs +0 -33
  427. package/types/range/module.f.mjs +0 -8
  428. package/types/range_map/module.f.mjs +0 -84
  429. package/types/result/module.f.mjs +0 -28
  430. package/types/sorted_list/module.f.mjs +0 -107
  431. package/types/sorted_set/module.f.mjs +0 -38
  432. package/types/string/module.f.mjs +0 -22
  433. package/types/string_set/module.f.mjs +0 -36
@@ -1,438 +1,461 @@
1
- import * as parser from './module.f.mjs'
2
- import * as tokenizer from '../tokenizer/module.f.mjs'
3
- import * as list from '../../types/list/module.f.mjs'
1
+ import * as parser from './module.f.ts'
2
+ import * as tokenizer from '../tokenizer/module.f.ts'
3
+ import * as list from '../../types/list/module.f.ts'
4
4
  const { toArray } = list
5
- import * as djs from '../module.f.mjs'
6
- import * as o from '../../types/object/module.f.mjs'
5
+ import * as o from '../../types/object/module.f.ts'
7
6
  const { sort } = o
8
- import * as encoding from '../../text/utf16/module.f.mjs'
7
+ import * as encoding from '../../text/utf16/module.f.ts'
8
+ import * as djsSerializer from '../serializer/module.f.ts'
9
+ const { djsModuleStringify } = djsSerializer
9
10
 
10
- /** @type {(s: string) => readonly tokenizer.DjsToken[]} */
11
- const tokenizeString = s => toArray(tokenizer.tokenize(encoding.stringToList(s)))
11
+ const tokenizeString
12
+ : (s: string) => readonly tokenizer.DjsToken[]
13
+ = s => toArray(tokenizer.tokenize(encoding.stringToList(s)))
12
14
 
13
- const stringify = djs.stringify(sort)
15
+ const stringifyDjsModule = djsModuleStringify(sort)
14
16
 
15
17
  export default {
16
18
  valid: [
17
19
  () => {
18
20
  const tokenList = tokenizeString('export default null')
19
21
  const obj = parser.parse(tokenList)
20
- const result = stringify(obj)
21
- if (result !== '["ok",[[],[null]]]') { throw result }
22
+ if (obj[0] !== 'ok') { throw obj }
23
+ const result = stringifyDjsModule(obj[1])
24
+ if (result !== 'export default null') { throw result }
22
25
  },
23
26
  () => {
24
27
  const tokenList = tokenizeString('export default true')
25
28
  const obj = parser.parse(tokenList)
26
- const result = stringify(obj)
27
- if (result !== '["ok",[[],[true]]]') { throw result }
29
+ if (obj[0] !== 'ok') { throw obj }
30
+ const result = stringifyDjsModule(obj[1])
31
+ if (result !== 'export default true') { throw result }
28
32
  },
29
33
  () => {
30
34
  const tokenList = tokenizeString('export default false')
31
35
  const obj = parser.parse(tokenList)
32
- const result = stringify(obj)
33
- if (result !== '["ok",[[],[false]]]') { throw result }
36
+ if (obj[0] !== 'ok') { throw obj }
37
+ const result = stringifyDjsModule(obj[1])
38
+ if (result !== 'export default false') { throw result }
34
39
  },
35
40
  () => {
36
41
  const tokenList = tokenizeString('export default undefined')
37
42
  const obj = parser.parse(tokenList)
38
- const result = stringify(obj)
39
- if (result !== '["ok",[[],[undefined]]]') { throw result }
43
+ if (obj[0] !== 'ok') { throw obj }
44
+ const result = stringifyDjsModule(obj[1])
45
+ if (result !== 'export default undefined') { throw result }
40
46
  },
41
47
  () => {
42
48
  const tokenList = tokenizeString('export default 0.1')
43
49
  const obj = parser.parse(tokenList)
44
- const result = stringify(obj)
45
- if (result !== '["ok",[[],[0.1]]]') { throw result }
50
+ if (obj[0] !== 'ok') { throw obj }
51
+ const result = stringifyDjsModule(obj[1])
52
+ if (result !== 'export default 0.1') { throw result }
46
53
  },
47
54
  () => {
48
55
  const tokenList = tokenizeString('export default 1.1e+2')
49
56
  const obj = parser.parse(tokenList)
50
- const result = stringify(obj)
51
- if (result !== '["ok",[[],[110]]]') { throw result }
57
+ if (obj[0] !== 'ok') { throw obj }
58
+ const result = stringifyDjsModule(obj[1])
59
+ if (result !== 'export default 110') { throw result }
52
60
  },
53
61
  () => {
54
62
  const tokenList = tokenizeString('export default "abc"')
55
63
  const obj = parser.parse(tokenList)
56
- const result = stringify(obj)
57
- if (result !== '["ok",[[],["abc"]]]') { throw result }
64
+ if (obj[0] !== 'ok') { throw obj }
65
+ const result = stringifyDjsModule(obj[1])
66
+ if (result !== 'export default "abc"') { throw result }
58
67
  },
59
68
  () => {
60
69
  const tokenList = tokenizeString('export default []')
61
70
  const obj = parser.parse(tokenList)
62
- const result = stringify(obj)
63
- if (result !== '["ok",[[],[["array",[]]]]]') { throw result }
71
+ if (obj[0] !== 'ok') { throw obj }
72
+ const result = stringifyDjsModule(obj[1])
73
+ if (result !== 'export default []') { throw result }
64
74
  },
65
75
  () => {
66
76
  const tokenList = tokenizeString('export default [1]')
67
77
  const obj = parser.parse(tokenList)
68
- const result = stringify(obj)
69
- if (result !== '["ok",[[],[["array",[1]]]]]') { throw result }
78
+ if (obj[0] !== 'ok') { throw obj }
79
+ const result = stringifyDjsModule(obj[1])
80
+ if (result !== 'export default [1]') { throw result }
70
81
  },
71
82
  () => {
72
83
  const tokenList = tokenizeString('export default [[]]')
73
84
  const obj = parser.parse(tokenList)
74
- const result = stringify(obj)
75
- if (result !== '["ok",[[],[["array",[["array",[]]]]]]]') { throw result }
85
+ if (obj[0] !== 'ok') { throw obj }
86
+ const result = stringifyDjsModule(obj[1])
87
+ if (result !== 'export default [[]]') { throw result }
76
88
  },
77
89
  () => {
78
90
  const tokenList = tokenizeString('export default [0,[1,[2,[]]],3]')
79
91
  const obj = parser.parse(tokenList)
80
- const result = stringify(obj)
81
- if (result !== '["ok",[[],[["array",[0,["array",[1,["array",[2,["array",[]]]]]],3]]]]]') { throw result }
92
+ if (obj[0] !== 'ok') { throw obj }
93
+ const result = stringifyDjsModule(obj[1])
94
+ if (result !== 'export default [0,[1,[2,[]]],3]') { throw result }
82
95
  },
83
96
  () => {
84
97
  const tokenList = tokenizeString('export default {}')
85
98
  const obj = parser.parse(tokenList)
86
- const result = stringify(obj)
87
- if (result !== '["ok",[[],[{}]]]') { throw result }
99
+ if (obj[0] !== 'ok') { throw obj }
100
+ const result = stringifyDjsModule(obj[1])
101
+ if (result !== 'export default {}') { throw result }
88
102
  },
89
103
  () => {
90
104
  const tokenList = tokenizeString('export default [{}]')
91
105
  const obj = parser.parse(tokenList)
92
- const result = stringify(obj)
93
- if (result !== '["ok",[[],[["array",[{}]]]]]') { throw result }
106
+ if (obj[0] !== 'ok') { throw obj }
107
+ const result = stringifyDjsModule(obj[1])
108
+ if (result !== 'export default [{}]') { throw result }
94
109
  },
95
110
  () => {
96
111
  const tokenList = tokenizeString('export default {"a":true,"b":false,"c":null,"d":undefined}')
97
112
  const obj = parser.parse(tokenList)
98
- const result = stringify(obj)
99
- if (result !== '["ok",[[],[{"a":true,"b":false,"c":null,"d":undefined}]]]') { throw result }
113
+ if (obj[0] !== 'ok') { throw obj }
114
+ const result = stringifyDjsModule(obj[1])
115
+ if (result !== 'export default {"a":true,"b":false,"c":null,"d":undefined}') { throw result }
100
116
  },
101
117
  () => {
102
118
  const tokenList = tokenizeString('export default {"a":{"b":{"c":["d"]}}}')
103
119
  const obj = parser.parse(tokenList)
104
- const result = stringify(obj)
105
- if (result !== '["ok",[[],[{"a":{"b":{"c":["array",["d"]]}}}]]]') { throw result }
120
+ if (obj[0] !== 'ok') { throw obj }
121
+ const result = stringifyDjsModule(obj[1])
122
+ if (result !== 'export default {"a":{"b":{"c":["d"]}}}') { throw result }
106
123
  },
107
124
  () => {
108
125
  const tokenList = tokenizeString('export default 1234567890n')
109
126
  const obj = parser.parse(tokenList)
110
- const result = stringify(obj)
111
- if (result !== '["ok",[[],[1234567890n]]]') { throw result }
127
+ if (obj[0] !== 'ok') { throw obj }
128
+ const result = stringifyDjsModule(obj[1])
129
+ if (result !== 'export default 1234567890n') { throw result }
112
130
  },
113
131
  () => {
114
132
  const tokenList = tokenizeString('export default [1234567890n]')
115
133
  const obj = parser.parse(tokenList)
116
- const result = stringify(obj)
117
- if (result !== '["ok",[[],[["array",[1234567890n]]]]]') { throw result }
134
+ if (obj[0] !== 'ok') { throw obj }
135
+ const result = stringifyDjsModule(obj[1])
136
+ if (result !== 'export default [1234567890n]') { throw result }
118
137
  }
119
138
  ],
120
139
  invalid: [
121
140
  () => {
122
141
  const tokenList = tokenizeString('export default')
123
142
  const obj = parser.parse(tokenList)
124
- const result = stringify(obj)
125
- if (result !== '["error","unexpected end"]') { throw result }
143
+ if (obj[0] !== 'error') { throw obj }
144
+ if (obj[1] !== 'unexpected end') { throw obj }
126
145
  },
127
146
  () => {
128
147
  const tokenList = tokenizeString('export default "123')
129
148
  const obj = parser.parse(tokenList)
130
- const result = stringify(obj)
131
- if (result !== '["error","unexpected token"]') { throw result }
149
+ if (obj[0] !== 'error') { throw obj }
150
+ if (obj[1] !== 'unexpected token') { throw obj }
132
151
  },
133
152
  () => {
134
153
  const tokenList = tokenizeString('export default [,]')
135
154
  const obj = parser.parse(tokenList)
136
- const result = stringify(obj)
137
- if (result !== '["error","unexpected token"]') { throw result }
155
+ if (obj[0] !== 'error') { throw obj }
156
+ if (obj[1] !== 'unexpected token') { throw obj }
138
157
  },
139
158
  () => {
140
159
  const tokenList = tokenizeString('export default [1 2]')
141
160
  const obj = parser.parse(tokenList)
142
- const result = stringify(obj)
143
- if (result !== '["error","unexpected token"]') { throw result }
161
+ if (obj[0] !== 'error') { throw obj }
162
+ if (obj[1] !== 'unexpected token') { throw obj }
144
163
  },
145
164
  () => {
146
165
  const tokenList = tokenizeString('export default [1,,2]')
147
166
  const obj = parser.parse(tokenList)
148
- const result = stringify(obj)
149
- if (result !== '["error","unexpected token"]') { throw result }
167
+ if (obj[0] !== 'error') { throw obj }
168
+ if (obj[1] !== 'unexpected token') { throw obj }
150
169
  },
151
170
  () => {
152
171
  const tokenList = tokenizeString('export default []]')
153
172
  const obj = parser.parse(tokenList)
154
- const result = stringify(obj)
155
- if (result !== '["error","unexpected token"]') { throw result }
173
+ if (obj[0] !== 'error') { throw obj }
174
+ if (obj[1] !== 'unexpected token') { throw obj }
156
175
  },
157
176
  () => {
158
177
  const tokenList = tokenizeString('export default ["a"')
159
178
  const obj = parser.parse(tokenList)
160
- const result = stringify(obj)
161
- if (result !== '["error","unexpected end"]') { throw result }
179
+ if (obj[0] !== 'error') { throw obj }
180
+ if (obj[1] !== 'unexpected end') { throw obj }
162
181
  },
163
182
  () => {
164
183
  const tokenList = tokenizeString('export default [1,]')
165
184
  const obj = parser.parse(tokenList)
166
- const result = stringify(obj)
167
- if (result !== '["error","unexpected token"]') { throw result }
185
+ if (obj[0] !== 'error') { throw obj }
186
+ if (obj[1] !== 'unexpected token') { throw obj }
168
187
  },
169
188
  () => {
170
189
  const tokenList = tokenizeString('export default [,1]')
171
190
  const obj = parser.parse(tokenList)
172
- const result = stringify(obj)
173
- if (result !== '["error","unexpected token"]') { throw result }
191
+ if (obj[0] !== 'error') { throw obj }
192
+ if (obj[1] !== 'unexpected token') { throw obj }
174
193
  },
175
194
  () => {
176
195
  const tokenList = tokenizeString('export default [:]')
177
196
  const obj = parser.parse(tokenList)
178
- const result = stringify(obj)
179
- if (result !== '["error","unexpected token"]') { throw result }
197
+ if (obj[0] !== 'error') { throw obj }
198
+ if (obj[1] !== 'unexpected token') { throw obj }
180
199
  },
181
200
  () => {
182
201
  const tokenList = tokenizeString('export default ]')
183
202
  const obj = parser.parse(tokenList)
184
- const result = stringify(obj)
185
- if (result !== '["error","unexpected token"]') { throw result }
203
+ if (obj[0] !== 'error') { throw obj }
204
+ if (obj[1] !== 'unexpected token') { throw obj }
186
205
  },
187
206
  () => {
188
207
  const tokenList = tokenizeString('export default {,}')
189
208
  const obj = parser.parse(tokenList)
190
- const result = stringify(obj)
191
- if (result !== '["error","unexpected token"]') { throw result }
209
+ if (obj[0] !== 'error') { throw obj }
210
+ if (obj[1] !== 'unexpected token') { throw obj }
192
211
  },
193
212
  () => {
194
213
  const tokenList = tokenizeString('export default {1:2}')
195
214
  const obj = parser.parse(tokenList)
196
- const result = stringify(obj)
197
- if (result !== '["error","unexpected token"]') { throw result }
215
+ if (obj[0] !== 'error') { throw obj }
216
+ if (obj[1] !== 'unexpected token') { throw obj }
198
217
  },
199
218
  () => {
200
219
  const tokenList = tokenizeString('export default {"1"2}')
201
220
  const obj = parser.parse(tokenList)
202
- const result = stringify(obj)
203
- if (result !== '["error","unexpected token"]') { throw result }
221
+ if (obj[0] !== 'error') { throw obj }
222
+ if (obj[1] !== 'unexpected token') { throw obj }
204
223
  },
205
224
  () => {
206
225
  const tokenList = tokenizeString('export default {"1"::2}')
207
226
  const obj = parser.parse(tokenList)
208
- const result = stringify(obj)
209
- if (result !== '["error","unexpected token"]') { throw result }
227
+ if (obj[0] !== 'error') { throw obj }
228
+ if (obj[1] !== 'unexpected token') { throw obj }
210
229
  },
211
230
  () => {
212
231
  const tokenList = tokenizeString('export default {"1":2,,"3":4')
213
232
  const obj = parser.parse(tokenList)
214
- const result = stringify(obj)
215
- if (result !== '["error","unexpected token"]') { throw result }
233
+ if (obj[0] !== 'error') { throw obj }
234
+ if (obj[1] !== 'unexpected token') { throw obj }
216
235
  },
217
236
  () => {
218
237
  const tokenList = tokenizeString('export default {}}')
219
238
  const obj = parser.parse(tokenList)
220
- const result = stringify(obj)
221
- if (result !== '["error","unexpected token"]') { throw result }
239
+ if (obj[0] !== 'error') { throw obj }
240
+ if (obj[1] !== 'unexpected token') { throw obj }
222
241
  },
223
242
  () => {
224
243
  const tokenList = tokenizeString('export default {"1":2')
225
244
  const obj = parser.parse(tokenList)
226
- const result = stringify(obj)
227
- if (result !== '["error","unexpected end"]') { throw result }
245
+ if (obj[0] !== 'error') { throw obj }
246
+ if (obj[1] !== 'unexpected end') { throw obj }
228
247
  },
229
248
  () => {
230
249
  const tokenList = tokenizeString('export default {"1":2,}')
231
250
  const obj = parser.parse(tokenList)
232
- const result = stringify(obj)
233
- if (result !== '["error","unexpected token"]') { throw result }
251
+ if (obj[0] !== 'error') { throw obj }
252
+ if (obj[1] !== 'unexpected token') { throw obj }
234
253
  },
235
254
  () => {
236
255
  const tokenList = tokenizeString('export default {,"1":2}')
237
256
  const obj = parser.parse(tokenList)
238
- const result = stringify(obj)
239
- if (result !== '["error","unexpected token"]') { throw result }
257
+ if (obj[0] !== 'error') { throw obj }
258
+ if (obj[1] !== 'unexpected token') { throw obj }
240
259
  },
241
260
  () => {
242
261
  const tokenList = tokenizeString('export default }')
243
262
  const obj = parser.parse(tokenList)
244
- const result = stringify(obj)
245
- if (result !== '["error","unexpected token"]') { throw result }
263
+ if (obj[0] !== 'error') { throw obj }
264
+ if (obj[1] !== 'unexpected token') { throw obj }
246
265
  },
247
266
  () => {
248
267
  const tokenList = tokenizeString('export default [{]}')
249
268
  const obj = parser.parse(tokenList)
250
- const result = stringify(obj)
251
- if (result !== '["error","unexpected token"]') { throw result }
269
+ if (obj[0] !== 'error') { throw obj }
270
+ if (obj[1] !== 'unexpected token') { throw obj }
252
271
  },
253
272
  () => {
254
273
  const tokenList = tokenizeString('export default {[}]')
255
274
  const obj = parser.parse(tokenList)
256
- const result = stringify(obj)
257
- if (result !== '["error","unexpected token"]') { throw result }
275
+ if (obj[0] !== 'error') { throw obj }
276
+ if (obj[1] !== 'unexpected token') { throw obj }
258
277
  },
259
278
  () => {
260
279
  const tokenList = tokenizeString('export default 10-5')
261
280
  const obj = parser.parse(tokenList)
262
- const result = stringify(obj)
263
- if (result !== '["error","unexpected token"]') { throw result }
281
+ if (obj[0] !== 'error') { throw obj }
282
+ if (obj[1] !== 'unexpected token') { throw obj }
264
283
  },
265
284
  ],
266
285
  validWhiteSpaces:[
267
286
  () => {
268
287
  const tokenList = tokenizeString(' export default [ 0 , 1 , 2 ] ')
269
288
  const obj = parser.parse(tokenList)
270
- const result = stringify(obj)
271
- if (result !== '["ok",[[],[["array",[0,1,2]]]]]') { throw result }
289
+ if (obj[0] !== 'ok') { throw obj }
290
+ const result = stringifyDjsModule(obj[1])
291
+ if (result !== 'export default [0,1,2]') { throw result }
272
292
  },
273
293
  () => {
274
294
  const tokenList = tokenizeString(' export default { "a" : 0 , "b" : 1 } ')
275
295
  const obj = parser.parse(tokenList)
276
- const result = stringify(obj)
277
- if (result !== '["ok",[[],[{"a":0,"b":1}]]]') { throw result }
296
+ if (obj[0] !== 'ok') { throw obj }
297
+ const result = stringifyDjsModule(obj[1])
298
+ if (result !== 'export default {"a":0,"b":1}') { throw result }
278
299
  },
279
300
  () => {
280
301
  const tokenList = tokenizeString('\nexport\ndefault\n[\n0\n,\n1\n,\n2\n]\n')
281
302
  const obj = parser.parse(tokenList)
282
- const result = stringify(obj)
283
- if (result !== '["ok",[[],[["array",[0,1,2]]]]]') { throw result }
303
+ if (obj[0] !== 'ok') { throw obj }
304
+ const result = stringifyDjsModule(obj[1])
305
+ if (result !== 'export default [0,1,2]') { throw result }
284
306
  },
285
307
  () => {
286
308
  const tokenList = tokenizeString('\rexport\rdefault\r{\r"a"\r:\r0\r,\r"b"\r:\r1\r}\r')
287
309
  const obj = parser.parse(tokenList)
288
- const result = stringify(obj)
289
- if (result !== '["ok",[[],[{"a":0,"b":1}]]]') { throw result }
290
- },
291
- ],
292
- validModule:[
293
- () => {
294
- const tokenList = tokenizeString('export default null')
295
- const obj = parser.parse(tokenList)
296
- const result = stringify(obj)
297
- if (result !== '["ok",[[],[null]]]') { throw result }
310
+ if (obj[0] !== 'ok') { throw obj }
311
+ const result = stringifyDjsModule(obj[1])
312
+ if (result !== 'export default {"a":0,"b":1}') { throw result }
298
313
  },
299
314
  ],
300
315
  invalidModule:[
301
316
  () => {
302
317
  const tokenList = tokenizeString('null')
303
318
  const obj = parser.parse(tokenList)
304
- const result = stringify(obj)
305
- if (result !== '["error","unexpected token"]') { throw result }
319
+ if (obj[0] !== 'error') { throw obj }
320
+ if (obj[1] !== 'unexpected token') { throw obj }
306
321
  },
307
322
  () => {
308
323
  const tokenList = tokenizeString('module=null')
309
324
  const obj = parser.parse(tokenList)
310
- const result = stringify(obj)
311
- if (result !== '["error","unexpected token"]') { throw result }
325
+ if (obj[0] !== 'error') { throw obj }
326
+ if (obj[1] !== 'unexpected token') { throw obj }
312
327
  },
313
328
  () => {
314
329
  const tokenList = tokenizeString('export null')
315
330
  const obj = parser.parse(tokenList)
316
- const result = stringify(obj)
317
- if (result !== '["error","unexpected token"]') { throw result }
331
+ if (obj[0] !== 'error') { throw obj }
332
+ if (obj[1] !== 'unexpected token') { throw obj }
318
333
  },
319
334
  () => {
320
335
  const tokenList = tokenizeString('export default = null')
321
336
  const obj = parser.parse(tokenList)
322
- const result = stringify(obj)
323
- if (result !== '["error","unexpected token"]') { throw result }
337
+ if (obj[0] !== 'error') { throw obj }
338
+ if (obj[1] !== 'unexpected token') { throw obj }
324
339
  },
325
340
  ],
326
341
  validWithConst:[
327
342
  () => {
328
343
  const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default 3')
329
344
  const obj = parser.parse(tokenList)
330
- const result = stringify(obj)
331
- if (result !== '["ok",[[],[1,2,3]]]') { throw result }
345
+ if (obj[0] !== 'ok') { throw obj }
346
+ const result = stringifyDjsModule(obj[1])
347
+ if (result !== 'const c0 = 1\nconst c1 = 2\nexport default 3') { throw result }
332
348
  },
333
349
  () => {
334
350
  const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default b')
335
351
  const obj = parser.parse(tokenList)
336
- const result = stringify(obj)
337
- if (result !== '["ok",[[],[1,2,["cref",1]]]]') { throw result }
352
+ if (obj[0] !== 'ok') { throw obj }
353
+ const result = stringifyDjsModule(obj[1])
354
+ if (result !== 'const c0 = 1\nconst c1 = 2\nexport default c1') { throw result }
338
355
  },
339
356
  () => {
340
357
  const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default [b,a,b]')
341
358
  const obj = parser.parse(tokenList)
342
- const result = stringify(obj)
343
- if (result !== '["ok",[[],[1,2,["array",[["cref",1],["cref",0],["cref",1]]]]]]') { throw result }
359
+ if (obj[0] !== 'ok') { throw obj }
360
+ const result = stringifyDjsModule(obj[1])
361
+ if (result !== 'const c0 = 1\nconst c1 = 2\nexport default [c1,c0,c1]') { throw result }
344
362
  },
345
363
  () => {
346
364
  const tokenList = tokenizeString('const a = 1 \n const b = 2 \n export default {"1st":b,"2nd":a,"3rd":b}')
347
365
  const obj = parser.parse(tokenList)
348
- const result = stringify(obj)
349
- if (result !== '["ok",[[],[1,2,{"1st":["cref",1],"2nd":["cref",0],"3rd":["cref",1]}]]]') { throw result }
366
+ if (obj[0] !== 'ok') { throw obj }
367
+ const result = stringifyDjsModule(obj[1])
368
+ if (result !== 'const c0 = 1\nconst c1 = 2\nexport default {"1st":c1,"2nd":c0,"3rd":c1}') { throw result }
350
369
  },
351
370
  ],
352
371
  invalidWithConst:[
353
372
  () => {
354
373
  const tokenList = tokenizeString('const a = 1 const b = 2 export default 3')
355
374
  const obj = parser.parse(tokenList)
356
- const result = stringify(obj)
357
- if (result !== '["error","unexpected token"]') { throw result }
375
+ if (obj[0] !== 'error') { throw obj }
376
+ if (obj[1] !== 'unexpected token') { throw obj }
358
377
  },
359
378
  () => {
360
379
  const tokenList = tokenizeString('const = 1 \n const b = 2 \n export default 3')
361
380
  const obj = parser.parse(tokenList)
362
- const result = stringify(obj)
363
- if (result !== '["error","unexpected token"]') { throw result }
381
+ if (obj[0] !== 'error') { throw obj }
382
+ if (obj[1] !== 'unexpected token') { throw obj }
364
383
  },
365
384
  () => {
366
385
  const tokenList = tokenizeString('const a = 1 \n const a = 2 \n export default 3')
367
386
  const obj = parser.parse(tokenList)
368
- const result = stringify(obj)
369
- if (result !== '["error","duplicate id"]') { throw result }
387
+ if (obj[0] !== 'error') { throw obj }
388
+ if (obj[1] !== 'duplicate id') { throw obj }
370
389
  },
371
390
  ],
372
391
  validWithArgs:[
373
392
  () => {
374
393
  const tokenList = tokenizeString('import a from "test/test.f.mjs" \n export default a')
375
394
  const obj = parser.parse(tokenList)
376
- const result = stringify(obj)
377
- if (result !== '["ok",[["test/test.f.mjs"],[["aref",0]]]]') { throw result }
395
+ if (obj[0] !== 'ok') { throw obj }
396
+ const result = stringifyDjsModule(obj[1])
397
+ if (result !== 'import a0 from "test/test.f.mjs"\nexport default a0') { throw result }
378
398
  },
379
399
  () => {
380
400
  const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import b from "second/test.f.mjs" \n export default [b, a, b]')
381
401
  const obj = parser.parse(tokenList)
382
- const result = stringify(obj)
383
- if (result !== '["ok",[["first/test.f.mjs","second/test.f.mjs"],[["array",[["aref",1],["aref",0],["aref",1]]]]]]') { throw result }
402
+ if (obj[0] !== 'ok') { throw obj }
403
+ const result = stringifyDjsModule(obj[1])
404
+ if (result !== 'import a0 from "first/test.f.mjs"\nimport a1 from "second/test.f.mjs"\nexport default [a1,a0,a1]') { throw result }
384
405
  },
385
406
  () => {
386
407
  const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const b = null \n export default [b, a, b]')
387
408
  const obj = parser.parse(tokenList)
388
- const result = stringify(obj)
389
- if (result !== '["ok",[["test/test.f.mjs"],[null,["array",[["cref",0],["aref",0],["cref",0]]]]]]') { throw result }
409
+ if (obj[0] !== 'ok') { throw obj }
410
+ const result = stringifyDjsModule(obj[1])
411
+ if (result !== 'import a0 from "test/test.f.mjs"\nconst c0 = null\nexport default [c0,a0,c0]') { throw result }
390
412
  },
391
413
  ],
392
414
  invalidWithArgs:[
393
415
  () => {
394
416
  const tokenList = tokenizeString('import a from "test/test.f.mjs" export default a')
395
417
  const obj = parser.parse(tokenList)
396
- const result = stringify(obj)
397
- if (result !== '["error","unexpected token"]') { throw result }
418
+ if (obj[0] !== 'error') { throw obj }
419
+ if (obj[1] !== 'unexpected token') { throw obj }
398
420
  },
399
421
  () => {
400
422
  const tokenList = tokenizeString('import a from \n export default a')
401
423
  const obj = parser.parse(tokenList)
402
- const result = stringify(obj)
403
- if (result !== '["error","unexpected token"]') { throw result }
424
+ if (obj[0] !== 'error') { throw obj }
425
+ if (obj[1] !== 'unexpected token') { throw obj }
404
426
  },
405
427
  () => {
406
428
  const tokenList = tokenizeString('import a "test/test.f.mjs" \n export default a')
407
429
  const obj = parser.parse(tokenList)
408
- const result = stringify(obj)
409
- if (result !== '["error","unexpected token"]') { throw result }
430
+ if (obj[0] !== 'error') { throw obj }
431
+ if (obj[1] !== 'unexpected token') { throw obj }
410
432
  },
411
433
  () => {
412
434
  const tokenList = tokenizeString('import from "test/test.f.mjs" \n export default a')
413
435
  const obj = parser.parse(tokenList)
414
- const result = stringify(obj)
415
- if (result !== '["error","unexpected token"]') { throw result }
436
+ if (obj[0] !== 'error') { throw obj }
437
+ if (obj[1] !== 'unexpected token') { throw obj }
416
438
  },
417
439
  () => {
418
440
  const tokenList = tokenizeString('import a from "first/test.f.mjs" \n import a from "second/test.f.mjs" \n export default [b, a, b]')
419
441
  const obj = parser.parse(tokenList)
420
- const result = stringify(obj)
421
- if (result !== '["error","duplicate id"]') { throw result }
442
+ if (obj[0] !== 'error') { throw obj }
443
+ if (obj[1] !== 'duplicate id') { throw obj }
422
444
  },
423
445
  () => {
424
446
  const tokenList = tokenizeString('import a from "test/test.f.mjs" \n const a = null \n export default null')
425
447
  const obj = parser.parse(tokenList)
426
- const result = stringify(obj)
427
- if (result !== '["error","duplicate id"]') { throw result }
448
+ if (obj[0] !== 'error') { throw obj }
449
+ if (obj[1] !== 'duplicate id') { throw obj }
428
450
  },
429
451
  ],
430
452
  comments: [
431
453
  () => {
432
454
  const tokenList = tokenizeString('export //comment \n default /* comment */ null //comment')
433
455
  const obj = parser.parse(tokenList)
434
- const result = stringify(obj)
435
- if (result !== '["ok",[[],[null]]]') { throw result }
456
+ if (obj[0] !== 'ok') { throw obj }
457
+ const result = stringifyDjsModule(obj[1])
458
+ if (result !== 'export default null') { throw result }
436
459
  },
437
460
  ]
438
- }
461
+ }