functionalscript 0.1.609 → 0.2.1

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 (393) hide show
  1. package/com/cpp/module.f.mjs +20 -25
  2. package/com/cpp/testlib.f.mjs +3 -4
  3. package/com/cs/module.f.mjs +18 -23
  4. package/com/cs/testlib.f.mjs +3 -5
  5. package/com/rust/module.f.mjs +25 -30
  6. package/com/rust/testlib.f.mjs +3 -5
  7. package/com/test/build.f.mjs +2 -2
  8. package/com/test/build.mjs +4 -4
  9. package/com/types/module.f.mjs +5 -12
  10. package/commonjs/build/module.f.mjs +23 -28
  11. package/commonjs/build/test.f.mjs +4 -4
  12. package/commonjs/module/function/module.f.mjs +0 -2
  13. package/commonjs/module/module.f.mjs +2 -9
  14. package/commonjs/module.f.mjs +0 -2
  15. package/commonjs/module.mjs +2 -7
  16. package/commonjs/package/dependencies/module.f.mjs +5 -10
  17. package/commonjs/package/dependencies/test.f.mjs +1 -1
  18. package/commonjs/package/module.f.mjs +6 -13
  19. package/commonjs/package/test.f.mjs +1 -1
  20. package/commonjs/path/module.f.mjs +12 -23
  21. package/commonjs/path/test.f.mjs +11 -11
  22. package/commonjs/test.mjs +1 -1
  23. package/dev/module.f.mjs +1 -4
  24. package/dev/module.mjs +1 -1
  25. package/dev/test/module.f.mjs +4 -6
  26. package/djs/module.f.mjs +12 -19
  27. package/djs/parser/module.f.mjs +18 -24
  28. package/djs/parser/test.f.mjs +9 -9
  29. package/djs/test.f.mjs +4 -4
  30. package/djs/tokenizer/module.f.mjs +18 -23
  31. package/djs/tokenizer/test.f.mjs +6 -6
  32. package/fsc/module.f.mjs +17 -24
  33. package/fsc/test.f.mjs +3 -3
  34. package/fsm/module.f.mjs +27 -38
  35. package/fsm/test.f.mjs +8 -8
  36. package/html/module.f.mjs +14 -23
  37. package/html/test.f.mjs +4 -4
  38. package/js/tokenizer/module.f.mjs +55 -62
  39. package/js/tokenizer/test.f.mjs +6 -6
  40. package/json/module.f.mjs +18 -31
  41. package/json/parser/module.f.mjs +9 -14
  42. package/json/parser/test.f.mjs +7 -7
  43. package/json/serializer/module.f.mjs +14 -29
  44. package/json/serializer/test.f.mjs +2 -2
  45. package/json/test.f.mjs +3 -3
  46. package/json/tokenizer/module.f.mjs +14 -19
  47. package/json/tokenizer/test.f.mjs +6 -6
  48. package/jsr.json +59 -59
  49. package/nodejs/version/main.mjs +1 -1
  50. package/nodejs/version/module.f.mjs +2 -7
  51. package/nodejs/version/test.f.mjs +3 -3
  52. package/out/com/cpp/module.f.d.mts +4 -0
  53. package/out/com/cpp/module.f.mjs +123 -0
  54. package/out/com/cpp/test.f.mjs +40 -0
  55. package/out/com/cpp/testlib.f.mjs +7 -0
  56. package/out/com/cs/module.f.d.mts +4 -0
  57. package/out/com/cs/module.f.mjs +95 -0
  58. package/out/com/cs/test.f.mjs +43 -0
  59. package/out/com/cs/testlib.f.mjs +7 -0
  60. package/{com → out/com}/rust/module.f.d.mts +3 -7
  61. package/out/com/rust/module.f.mjs +213 -0
  62. package/out/com/rust/test.f.mjs +123 -0
  63. package/out/com/rust/testlib.f.mjs +7 -0
  64. package/{com → out/com}/test/build.f.d.mts +2 -2
  65. package/out/com/test/build.f.mjs +98 -0
  66. package/out/com/test/build.mjs +40 -0
  67. package/{com → out/com}/types/module.f.d.mts +5 -10
  68. package/out/com/types/module.f.mjs +51 -0
  69. package/out/com/types/testlib.f.mjs +30 -0
  70. package/out/commonjs/build/module.f.d.mts +20 -0
  71. package/out/commonjs/build/module.f.mjs +107 -0
  72. package/out/commonjs/build/test.f.mjs +102 -0
  73. package/{commonjs → out/commonjs}/module/function/module.f.d.mts +0 -2
  74. package/out/commonjs/module/function/module.f.mjs +15 -0
  75. package/{commonjs → out/commonjs}/module/module.f.d.mts +16 -21
  76. package/out/commonjs/module/module.f.mjs +48 -0
  77. package/out/commonjs/module.d.mts +3 -0
  78. package/{commonjs → out/commonjs}/module.f.d.mts +0 -2
  79. package/out/commonjs/module.f.mjs +10 -0
  80. package/out/commonjs/module.mjs +26 -0
  81. package/out/commonjs/package/dependencies/module.f.d.mts +6 -0
  82. package/out/commonjs/package/dependencies/module.f.mjs +21 -0
  83. package/out/commonjs/package/dependencies/test.f.mjs +15 -0
  84. package/out/commonjs/package/module.f.d.mts +21 -0
  85. package/out/commonjs/package/module.f.mjs +40 -0
  86. package/out/commonjs/package/test.f.mjs +27 -0
  87. package/{commonjs → out/commonjs}/path/module.f.d.mts +25 -32
  88. package/out/commonjs/path/module.f.mjs +171 -0
  89. package/out/commonjs/path/test.f.mjs +231 -0
  90. package/out/commonjs/test.mjs +87 -0
  91. package/out/dev/index.mjs +2 -0
  92. package/out/dev/module.f.d.mts +1 -0
  93. package/out/dev/module.f.mjs +2 -0
  94. package/out/dev/module.mjs +167 -0
  95. package/{dev → out/dev}/test/module.f.d.mts +2 -3
  96. package/out/dev/test/module.f.mjs +134 -0
  97. package/out/dev/test.f.mjs +58 -0
  98. package/out/dev/test.mjs +52 -0
  99. package/{djs → out/djs}/module.f.d.mts +13 -18
  100. package/out/djs/module.f.mjs +75 -0
  101. package/{djs → out/djs}/parser/module.f.d.mts +11 -15
  102. package/out/djs/parser/module.f.mjs +432 -0
  103. package/out/djs/parser/test.f.mjs +535 -0
  104. package/out/djs/test.f.mjs +84 -0
  105. package/out/djs/tokenizer/module.f.d.mts +13 -0
  106. package/out/djs/tokenizer/module.f.mjs +87 -0
  107. package/out/djs/tokenizer/test.f.mjs +480 -0
  108. package/out/fsc/module.f.d.mts +7 -0
  109. package/out/fsc/module.f.mjs +105 -0
  110. package/out/fsc/test.f.mjs +19 -0
  111. package/out/fsm/module.f.d.mts +14 -0
  112. package/out/fsm/module.f.mjs +80 -0
  113. package/out/fsm/test.f.mjs +138 -0
  114. package/out/html/module.f.d.mts +15 -0
  115. package/out/html/module.f.mjs +94 -0
  116. package/out/html/test.f.mjs +45 -0
  117. package/out/issues/test.f.mjs +66 -0
  118. package/{js → out/js}/tokenizer/module.f.d.mts +10 -15
  119. package/out/js/tokenizer/module.f.mjs +686 -0
  120. package/out/js/tokenizer/test.f.mjs +844 -0
  121. package/out/json/module.f.d.mts +33 -0
  122. package/out/json/module.f.mjs +89 -0
  123. package/{json → out/json}/parser/module.f.d.mts +9 -13
  124. package/out/json/parser/module.f.mjs +224 -0
  125. package/out/json/parser/test.f.mjs +321 -0
  126. package/out/json/serializer/module.f.d.mts +36 -0
  127. package/out/json/serializer/module.f.mjs +67 -0
  128. package/out/json/serializer/test.f.mjs +87 -0
  129. package/out/json/test.f.mjs +61 -0
  130. package/out/json/tokenizer/module.f.d.mts +13 -0
  131. package/out/json/tokenizer/module.f.mjs +78 -0
  132. package/out/json/tokenizer/test.f.mjs +420 -0
  133. package/out/nanvm-lib/tests/test.f.mjs +87 -0
  134. package/out/nodejs/version/main.mjs +3 -0
  135. package/{nodejs → out/nodejs}/version/module.f.d.mts +4 -9
  136. package/out/nodejs/version/module.f.mjs +34 -0
  137. package/out/nodejs/version/test.f.mjs +97 -0
  138. package/{prime_field → out/prime_field}/module.f.d.mts +20 -23
  139. package/out/prime_field/module.f.mjs +87 -0
  140. package/out/prime_field/test.f.mjs +145 -0
  141. package/{secp → out/secp}/module.f.d.mts +27 -28
  142. package/out/secp/module.f.mjs +113 -0
  143. package/out/secp/test.f.mjs +63 -0
  144. package/out/sha2/module.f.d.mts +15 -0
  145. package/out/sha2/module.f.mjs +172 -0
  146. package/out/sha2/test.f.mjs +86 -0
  147. package/out/text/ascii/module.f.d.mts +70 -0
  148. package/out/text/ascii/module.f.mjs +154 -0
  149. package/out/text/ascii/test.f.mjs +14 -0
  150. package/out/text/module.f.d.mts +13 -0
  151. package/out/text/module.f.mjs +19 -0
  152. package/out/text/sgr/module.f.d.mts +12 -0
  153. package/out/text/sgr/module.f.mjs +17 -0
  154. package/out/text/test.f.mjs +19 -0
  155. package/out/text/utf16/module.f.d.mts +12 -0
  156. package/out/text/utf16/module.f.mjs +86 -0
  157. package/out/text/utf16/test.f.mjs +145 -0
  158. package/out/text/utf8/module.f.d.mts +10 -0
  159. package/out/text/utf8/module.f.mjs +126 -0
  160. package/out/text/utf8/test.f.mjs +175 -0
  161. package/{types → out/types}/array/module.f.d.mts +14 -24
  162. package/out/types/array/module.f.mjs +95 -0
  163. package/out/types/array/test.f.mjs +116 -0
  164. package/out/types/bigfloat/module.f.d.mts +6 -0
  165. package/out/types/bigfloat/module.f.mjs +77 -0
  166. package/out/types/bigfloat/test.f.mjs +349 -0
  167. package/out/types/bigint/module.f.d.mts +29 -0
  168. package/{types/bigint/module.f.d.mts → out/types/bigint/module.f.mjs} +64 -27
  169. package/out/types/bigint/test.f.mjs +192 -0
  170. package/{types → out/types}/btree/find/module.f.d.mts +20 -26
  171. package/out/types/btree/find/module.f.mjs +137 -0
  172. package/out/types/btree/find/test.f.mjs +156 -0
  173. package/out/types/btree/module.f.d.mts +5 -0
  174. package/out/types/btree/module.f.mjs +34 -0
  175. package/{types → out/types}/btree/remove/module.f.d.mts +7 -12
  176. package/out/types/btree/remove/module.f.mjs +209 -0
  177. package/out/types/btree/remove/test.f.mjs +638 -0
  178. package/{types → out/types}/btree/set/module.f.d.mts +3 -7
  179. package/out/types/btree/set/module.f.mjs +114 -0
  180. package/out/types/btree/set/test.f.mjs +390 -0
  181. package/out/types/btree/test.f.mjs +83 -0
  182. package/{types → out/types}/btree/types/module.f.d.mts +0 -2
  183. package/out/types/btree/types/module.f.mjs +50 -0
  184. package/out/types/byte_set/module.f.d.mts +25 -0
  185. package/out/types/byte_set/module.f.mjs +42 -0
  186. package/out/types/byte_set/test.f.mjs +123 -0
  187. package/{types → out/types}/function/compare/module.f.d.mts +9 -15
  188. package/out/types/function/compare/module.f.mjs +22 -0
  189. package/out/types/function/compare/test.f.mjs +8 -0
  190. package/{types → out/types}/function/module.f.d.mts +20 -27
  191. package/out/types/function/module.f.mjs +44 -0
  192. package/{types → out/types}/function/operator/module.f.d.mts +28 -43
  193. package/out/types/function/operator/module.f.mjs +60 -0
  194. package/out/types/function/test.f.mjs +15 -0
  195. package/out/types/list/module.f.d.mts +82 -0
  196. package/out/types/list/module.f.mjs +269 -0
  197. package/out/types/list/test.f.mjs +401 -0
  198. package/out/types/map/module.f.d.mts +21 -0
  199. package/out/types/map/module.f.mjs +54 -0
  200. package/out/types/map/test.f.mjs +115 -0
  201. package/out/types/nibble_set/module.f.d.mts +16 -0
  202. package/out/types/nibble_set/module.f.mjs +19 -0
  203. package/out/types/nibble_set/test.f.mjs +90 -0
  204. package/out/types/nullable/module.f.d.mts +9 -0
  205. package/out/types/nullable/module.f.mjs +9 -0
  206. package/out/types/nullable/test.f.mjs +12 -0
  207. package/out/types/number/module.f.d.mts +7 -0
  208. package/out/types/number/module.f.mjs +12 -0
  209. package/out/types/number/test.f.mjs +126 -0
  210. package/out/types/object/module.f.d.mts +22 -0
  211. package/out/types/object/module.f.mjs +27 -0
  212. package/out/types/object/test.f.mjs +17 -0
  213. package/out/types/range/module.f.d.mts +6 -0
  214. package/out/types/range/module.f.mjs +6 -0
  215. package/out/types/range/test.f.mjs +18 -0
  216. package/{types → out/types}/range_map/module.f.d.mts +9 -15
  217. package/out/types/range_map/module.f.mjs +84 -0
  218. package/out/types/range_map/test.f.mjs +201 -0
  219. package/out/types/result/module.d.mts +7 -0
  220. package/{types → out/types}/result/module.f.d.mts +6 -12
  221. package/out/types/result/module.f.mjs +25 -0
  222. package/out/types/result/module.mjs +16 -0
  223. package/{types → out/types}/sorted_list/module.f.d.mts +22 -28
  224. package/out/types/sorted_list/module.f.mjs +102 -0
  225. package/out/types/sorted_list/test.f.mjs +66 -0
  226. package/{types → out/types}/sorted_set/module.f.d.mts +6 -12
  227. package/out/types/sorted_set/module.f.mjs +29 -0
  228. package/out/types/sorted_set/test.f.mjs +80 -0
  229. package/out/types/string/module.f.d.mts +9 -0
  230. package/out/types/string/module.f.mjs +17 -0
  231. package/out/types/string/test.f.mjs +58 -0
  232. package/out/types/string_set/module.f.d.mts +13 -0
  233. package/out/types/string_set/module.f.mjs +29 -0
  234. package/out/types/string_set/test.f.mjs +65 -0
  235. package/package.json +5 -4
  236. package/prime_field/module.f.mjs +9 -12
  237. package/prime_field/test.f.mjs +1 -1
  238. package/secp/module.f.mjs +38 -39
  239. package/secp/test.f.mjs +4 -4
  240. package/sha2/module.f.mjs +7 -20
  241. package/sha2/test.f.mjs +4 -4
  242. package/text/ascii/module.f.mjs +5 -10
  243. package/text/ascii/test.f.mjs +3 -3
  244. package/text/module.f.mjs +7 -14
  245. package/text/sgr/module.f.mjs +2 -4
  246. package/text/test.f.mjs +3 -3
  247. package/text/utf16/module.f.mjs +17 -28
  248. package/text/utf16/test.f.mjs +5 -5
  249. package/text/utf8/module.f.mjs +9 -16
  250. package/text/utf8/test.f.mjs +4 -4
  251. package/tsconfig.json +2 -2
  252. package/types/array/module.f.mjs +8 -25
  253. package/types/array/test.f.mjs +3 -3
  254. package/types/bigfloat/module.f.mjs +3 -10
  255. package/types/bigfloat/test.f.mjs +1 -1
  256. package/types/bigint/module.f.mjs +11 -30
  257. package/types/bigint/test.f.mjs +1 -1
  258. package/types/btree/find/module.f.mjs +8 -17
  259. package/types/btree/find/test.f.mjs +7 -7
  260. package/types/btree/module.f.mjs +6 -11
  261. package/types/btree/remove/module.f.mjs +10 -17
  262. package/types/btree/remove/test.f.mjs +5 -5
  263. package/types/btree/set/module.f.mjs +4 -9
  264. package/types/btree/set/test.f.mjs +4 -4
  265. package/types/btree/test.f.mjs +9 -9
  266. package/types/btree/types/module.f.mjs +0 -2
  267. package/types/byte_set/module.f.mjs +14 -39
  268. package/types/byte_set/test.f.mjs +5 -5
  269. package/types/function/compare/module.f.mjs +3 -12
  270. package/types/function/compare/test.f.mjs +1 -1
  271. package/types/function/module.f.mjs +4 -15
  272. package/types/function/operator/module.f.mjs +14 -41
  273. package/types/function/test.f.mjs +1 -1
  274. package/types/list/module.f.mjs +45 -114
  275. package/types/list/test.f.mjs +10 -10
  276. package/types/map/module.f.mjs +15 -30
  277. package/types/map/test.f.mjs +2 -2
  278. package/types/nibble_set/module.f.mjs +7 -24
  279. package/types/nibble_set/test.f.mjs +2 -2
  280. package/types/nullable/module.f.mjs +2 -9
  281. package/types/nullable/test.f.mjs +1 -1
  282. package/types/number/module.f.mjs +8 -19
  283. package/types/number/test.f.mjs +1 -1
  284. package/types/object/module.f.mjs +9 -20
  285. package/types/object/test.f.mjs +1 -1
  286. package/types/range/module.f.mjs +2 -9
  287. package/types/range/test.f.mjs +1 -1
  288. package/types/range_map/module.f.mjs +9 -18
  289. package/types/range_map/test.f.mjs +32 -32
  290. package/types/result/module.f.mjs +3 -12
  291. package/types/result/module.mjs +2 -2
  292. package/types/sorted_list/module.f.mjs +10 -19
  293. package/types/sorted_list/test.f.mjs +7 -7
  294. package/types/sorted_set/module.f.mjs +7 -16
  295. package/types/sorted_set/test.f.mjs +7 -7
  296. package/types/string/module.f.mjs +10 -21
  297. package/types/string/test.f.mjs +2 -2
  298. package/types/string_set/module.f.mjs +12 -27
  299. package/types/string_set/test.f.mjs +1 -1
  300. package/com/cpp/module.f.d.mts +0 -8
  301. package/com/cs/module.f.d.mts +0 -8
  302. package/commonjs/build/module.f.d.mts +0 -24
  303. package/commonjs/module.d.mts +0 -7
  304. package/commonjs/package/dependencies/module.f.d.mts +0 -10
  305. package/commonjs/package/module.f.d.mts +0 -27
  306. package/dev/module.f.d.mts +0 -4
  307. package/djs/tokenizer/module.f.d.mts +0 -17
  308. package/fsc/module.f.d.mts +0 -12
  309. package/fsm/module.f.d.mts +0 -21
  310. package/html/module.f.d.mts +0 -20
  311. package/json/module.f.d.mts +0 -41
  312. package/json/serializer/module.f.d.mts +0 -45
  313. package/json/tokenizer/module.f.d.mts +0 -17
  314. package/sha2/module.f.d.mts +0 -23
  315. package/text/ascii/module.f.d.mts +0 -73
  316. package/text/module.f.d.mts +0 -18
  317. package/text/sgr/module.f.d.mts +0 -14
  318. package/text/utf16/module.f.d.mts +0 -19
  319. package/text/utf8/module.f.d.mts +0 -15
  320. package/types/bigfloat/module.f.d.mts +0 -11
  321. package/types/btree/module.f.d.mts +0 -9
  322. package/types/byte_set/module.f.d.mts +0 -38
  323. package/types/list/module.f.d.mts +0 -117
  324. package/types/map/module.f.d.mts +0 -30
  325. package/types/nibble_set/module.f.d.mts +0 -26
  326. package/types/nullable/module.f.d.mts +0 -14
  327. package/types/number/module.f.d.mts +0 -13
  328. package/types/object/module.f.d.mts +0 -29
  329. package/types/range/module.f.d.mts +0 -11
  330. package/types/result/module.d.mts +0 -7
  331. package/types/string/module.f.d.mts +0 -15
  332. package/types/string_set/module.f.d.mts +0 -21
  333. /package/{com → out/com}/cpp/test.f.d.mts +0 -0
  334. /package/{com → out/com}/cpp/testlib.f.d.mts +0 -0
  335. /package/{com → out/com}/cs/test.f.d.mts +0 -0
  336. /package/{com → out/com}/cs/testlib.f.d.mts +0 -0
  337. /package/{com → out/com}/rust/test.f.d.mts +0 -0
  338. /package/{com → out/com}/rust/testlib.f.d.mts +0 -0
  339. /package/{com → out/com}/test/build.d.mts +0 -0
  340. /package/{com → out/com}/types/testlib.f.d.mts +0 -0
  341. /package/{commonjs → out/commonjs}/build/test.f.d.mts +0 -0
  342. /package/{commonjs → out/commonjs}/package/dependencies/test.f.d.mts +0 -0
  343. /package/{commonjs → out/commonjs}/package/test.f.d.mts +0 -0
  344. /package/{commonjs → out/commonjs}/path/test.f.d.mts +0 -0
  345. /package/{commonjs → out/commonjs}/test.d.mts +0 -0
  346. /package/{dev → out/dev}/index.d.mts +0 -0
  347. /package/{dev → out/dev}/module.d.mts +0 -0
  348. /package/{dev → out/dev}/test.d.mts +0 -0
  349. /package/{dev → out/dev}/test.f.d.mts +0 -0
  350. /package/{djs → out/djs}/parser/test.f.d.mts +0 -0
  351. /package/{djs → out/djs}/test.f.d.mts +0 -0
  352. /package/{djs → out/djs}/tokenizer/test.f.d.mts +0 -0
  353. /package/{fsc → out/fsc}/test.f.d.mts +0 -0
  354. /package/{fsm → out/fsm}/test.f.d.mts +0 -0
  355. /package/{html → out/html}/test.f.d.mts +0 -0
  356. /package/{issues → out/issues}/test.f.d.mts +0 -0
  357. /package/{js → out/js}/tokenizer/test.f.d.mts +0 -0
  358. /package/{json → out/json}/parser/test.f.d.mts +0 -0
  359. /package/{json → out/json}/serializer/test.f.d.mts +0 -0
  360. /package/{json → out/json}/test.f.d.mts +0 -0
  361. /package/{json → out/json}/tokenizer/test.f.d.mts +0 -0
  362. /package/{nanvm-lib → out/nanvm-lib}/tests/test.f.d.mts +0 -0
  363. /package/{nodejs → out/nodejs}/version/main.d.mts +0 -0
  364. /package/{nodejs → out/nodejs}/version/test.f.d.mts +0 -0
  365. /package/{prime_field → out/prime_field}/test.f.d.mts +0 -0
  366. /package/{secp → out/secp}/test.f.d.mts +0 -0
  367. /package/{sha2 → out/sha2}/test.f.d.mts +0 -0
  368. /package/{text → out/text}/ascii/test.f.d.mts +0 -0
  369. /package/{text → out/text}/test.f.d.mts +0 -0
  370. /package/{text → out/text}/utf16/test.f.d.mts +0 -0
  371. /package/{text → out/text}/utf8/test.f.d.mts +0 -0
  372. /package/{types → out/types}/array/test.f.d.mts +0 -0
  373. /package/{types → out/types}/bigfloat/test.f.d.mts +0 -0
  374. /package/{types → out/types}/bigint/test.f.d.mts +0 -0
  375. /package/{types → out/types}/btree/find/test.f.d.mts +0 -0
  376. /package/{types → out/types}/btree/remove/test.f.d.mts +0 -0
  377. /package/{types → out/types}/btree/set/test.f.d.mts +0 -0
  378. /package/{types → out/types}/btree/test.f.d.mts +0 -0
  379. /package/{types → out/types}/byte_set/test.f.d.mts +0 -0
  380. /package/{types → out/types}/function/compare/test.f.d.mts +0 -0
  381. /package/{types → out/types}/function/test.f.d.mts +0 -0
  382. /package/{types → out/types}/list/test.f.d.mts +0 -0
  383. /package/{types → out/types}/map/test.f.d.mts +0 -0
  384. /package/{types → out/types}/nibble_set/test.f.d.mts +0 -0
  385. /package/{types → out/types}/nullable/test.f.d.mts +0 -0
  386. /package/{types → out/types}/number/test.f.d.mts +0 -0
  387. /package/{types → out/types}/object/test.f.d.mts +0 -0
  388. /package/{types → out/types}/range/test.f.d.mts +0 -0
  389. /package/{types → out/types}/range_map/test.f.d.mts +0 -0
  390. /package/{types → out/types}/sorted_list/test.f.d.mts +0 -0
  391. /package/{types → out/types}/sorted_set/test.f.d.mts +0 -0
  392. /package/{types → out/types}/string/test.f.d.mts +0 -0
  393. /package/{types → out/types}/string_set/test.f.d.mts +0 -0
@@ -0,0 +1,321 @@
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';
4
+ const { toArray } = list;
5
+ import * as json from '../module.f.mjs';
6
+ import * as o from '../../types/object/module.f.mjs';
7
+ const { sort } = o;
8
+ import * as encoding from '../../text/utf16/module.f.mjs';
9
+ /** @type {(s: string) => readonly tokenizer.JsonToken[]} */
10
+ const tokenizeString = s => toArray(tokenizer.tokenize(encoding.stringToList(s)));
11
+ const stringify = json.stringify(sort);
12
+ export default {
13
+ valid: [
14
+ () => {
15
+ const tokenList = tokenizeString('null');
16
+ const obj = parser.parse(tokenList);
17
+ const result = stringify(obj);
18
+ if (result !== '["ok",null]') {
19
+ throw result;
20
+ }
21
+ },
22
+ () => {
23
+ const tokenList = tokenizeString('true');
24
+ const obj = parser.parse(tokenList);
25
+ const result = stringify(obj);
26
+ if (result !== '["ok",true]') {
27
+ throw result;
28
+ }
29
+ },
30
+ () => {
31
+ const tokenList = tokenizeString('false');
32
+ const obj = parser.parse(tokenList);
33
+ const result = stringify(obj);
34
+ if (result !== '["ok",false]') {
35
+ throw result;
36
+ }
37
+ },
38
+ () => {
39
+ const tokenList = tokenizeString('0.1');
40
+ const obj = parser.parse(tokenList);
41
+ const result = stringify(obj);
42
+ if (result !== '["ok",0.1]') {
43
+ throw result;
44
+ }
45
+ },
46
+ () => {
47
+ const tokenList = tokenizeString('1.1e+2');
48
+ const obj = parser.parse(tokenList);
49
+ const result = stringify(obj);
50
+ if (result !== '["ok",110]') {
51
+ throw result;
52
+ }
53
+ },
54
+ () => {
55
+ const tokenList = tokenizeString('"abc"');
56
+ const obj = parser.parse(tokenList);
57
+ const result = stringify(obj);
58
+ if (result !== '["ok","abc"]') {
59
+ throw result;
60
+ }
61
+ },
62
+ () => {
63
+ const tokenList = tokenizeString('[]');
64
+ const obj = parser.parse(tokenList);
65
+ const result = stringify(obj);
66
+ if (result !== '["ok",[]]') {
67
+ throw result;
68
+ }
69
+ },
70
+ () => {
71
+ const tokenList = tokenizeString('[1]');
72
+ const obj = parser.parse(tokenList);
73
+ const result = stringify(obj);
74
+ if (result !== '["ok",[1]]') {
75
+ throw result;
76
+ }
77
+ },
78
+ () => {
79
+ const tokenList = tokenizeString('[[]]');
80
+ const obj = parser.parse(tokenList);
81
+ const result = stringify(obj);
82
+ if (result !== '["ok",[[]]]') {
83
+ throw result;
84
+ }
85
+ },
86
+ () => {
87
+ const tokenList = tokenizeString('[0,[1,[2,[]]],3]');
88
+ const obj = parser.parse(tokenList);
89
+ const result = stringify(obj);
90
+ if (result !== '["ok",[0,[1,[2,[]]],3]]') {
91
+ throw result;
92
+ }
93
+ },
94
+ () => {
95
+ const tokenList = tokenizeString('{}');
96
+ const obj = parser.parse(tokenList);
97
+ const result = stringify(obj);
98
+ if (result !== '["ok",{}]') {
99
+ throw result;
100
+ }
101
+ },
102
+ () => {
103
+ const tokenList = tokenizeString('[{}]');
104
+ const obj = parser.parse(tokenList);
105
+ const result = stringify(obj);
106
+ if (result !== '["ok",[{}]]') {
107
+ throw result;
108
+ }
109
+ },
110
+ () => {
111
+ const tokenList = tokenizeString('{"a":true,"b":false,"c":null}');
112
+ const obj = parser.parse(tokenList);
113
+ const result = stringify(obj);
114
+ if (result !== '["ok",{"a":true,"b":false,"c":null}]') {
115
+ throw result;
116
+ }
117
+ },
118
+ () => {
119
+ const tokenList = tokenizeString('{"a":{"b":{"c":["d"]}}}');
120
+ const obj = parser.parse(tokenList);
121
+ const result = stringify(obj);
122
+ if (result !== '["ok",{"a":{"b":{"c":["d"]}}}]') {
123
+ throw result;
124
+ }
125
+ }
126
+ ],
127
+ invalid: [
128
+ () => {
129
+ const tokenList = tokenizeString('');
130
+ const obj = parser.parse(tokenList);
131
+ const result = stringify(obj);
132
+ if (result !== '["error","unexpected end"]') {
133
+ throw result;
134
+ }
135
+ },
136
+ () => {
137
+ const tokenList = tokenizeString('"123');
138
+ const obj = parser.parse(tokenList);
139
+ const result = stringify(obj);
140
+ if (result !== '["error","unexpected token"]') {
141
+ throw result;
142
+ }
143
+ },
144
+ () => {
145
+ const tokenList = tokenizeString('[,]');
146
+ const obj = parser.parse(tokenList);
147
+ const result = stringify(obj);
148
+ if (result !== '["error","unexpected token"]') {
149
+ throw result;
150
+ }
151
+ },
152
+ () => {
153
+ const tokenList = tokenizeString('[1 2]');
154
+ const obj = parser.parse(tokenList);
155
+ const result = stringify(obj);
156
+ if (result !== '["error","unexpected token"]') {
157
+ throw result;
158
+ }
159
+ },
160
+ () => {
161
+ const tokenList = tokenizeString('[1,,2]');
162
+ const obj = parser.parse(tokenList);
163
+ const result = stringify(obj);
164
+ if (result !== '["error","unexpected token"]') {
165
+ throw result;
166
+ }
167
+ },
168
+ () => {
169
+ const tokenList = tokenizeString('[]]');
170
+ const obj = parser.parse(tokenList);
171
+ const result = stringify(obj);
172
+ if (result !== '["error","unexpected token"]') {
173
+ throw result;
174
+ }
175
+ },
176
+ () => {
177
+ const tokenList = tokenizeString('["a"');
178
+ const obj = parser.parse(tokenList);
179
+ const result = stringify(obj);
180
+ if (result !== '["error","unexpected end"]') {
181
+ throw result;
182
+ }
183
+ },
184
+ () => {
185
+ const tokenList = tokenizeString('[1,]');
186
+ const obj = parser.parse(tokenList);
187
+ const result = stringify(obj);
188
+ if (result !== '["error","unexpected token"]') {
189
+ throw result;
190
+ }
191
+ },
192
+ () => {
193
+ const tokenList = tokenizeString('[,1]');
194
+ const obj = parser.parse(tokenList);
195
+ const result = stringify(obj);
196
+ if (result !== '["error","unexpected token"]') {
197
+ throw result;
198
+ }
199
+ },
200
+ () => {
201
+ const tokenList = tokenizeString('[:]');
202
+ const obj = parser.parse(tokenList);
203
+ const result = stringify(obj);
204
+ if (result !== '["error","unexpected token"]') {
205
+ throw result;
206
+ }
207
+ },
208
+ () => {
209
+ const tokenList = tokenizeString(']');
210
+ const obj = parser.parse(tokenList);
211
+ const result = stringify(obj);
212
+ if (result !== '["error","unexpected token"]') {
213
+ throw result;
214
+ }
215
+ },
216
+ () => {
217
+ const tokenList = tokenizeString('{,}');
218
+ const obj = parser.parse(tokenList);
219
+ const result = stringify(obj);
220
+ if (result !== '["error","unexpected token"]') {
221
+ throw result;
222
+ }
223
+ },
224
+ () => {
225
+ const tokenList = tokenizeString('{1:2}');
226
+ const obj = parser.parse(tokenList);
227
+ const result = stringify(obj);
228
+ if (result !== '["error","unexpected token"]') {
229
+ throw result;
230
+ }
231
+ },
232
+ () => {
233
+ const tokenList = tokenizeString('{"1"2}');
234
+ const obj = parser.parse(tokenList);
235
+ const result = stringify(obj);
236
+ if (result !== '["error","unexpected token"]') {
237
+ throw result;
238
+ }
239
+ },
240
+ () => {
241
+ const tokenList = tokenizeString('{"1"::2}');
242
+ const obj = parser.parse(tokenList);
243
+ const result = stringify(obj);
244
+ if (result !== '["error","unexpected token"]') {
245
+ throw result;
246
+ }
247
+ },
248
+ () => {
249
+ const tokenList = tokenizeString('{"1":2,,"3":4');
250
+ const obj = parser.parse(tokenList);
251
+ const result = stringify(obj);
252
+ if (result !== '["error","unexpected token"]') {
253
+ throw result;
254
+ }
255
+ },
256
+ () => {
257
+ const tokenList = tokenizeString('{}}');
258
+ const obj = parser.parse(tokenList);
259
+ const result = stringify(obj);
260
+ if (result !== '["error","unexpected token"]') {
261
+ throw result;
262
+ }
263
+ },
264
+ () => {
265
+ const tokenList = tokenizeString('{"1":2');
266
+ const obj = parser.parse(tokenList);
267
+ const result = stringify(obj);
268
+ if (result !== '["error","unexpected end"]') {
269
+ throw result;
270
+ }
271
+ },
272
+ () => {
273
+ const tokenList = tokenizeString('{"1":2,}');
274
+ const obj = parser.parse(tokenList);
275
+ const result = stringify(obj);
276
+ if (result !== '["error","unexpected token"]') {
277
+ throw result;
278
+ }
279
+ },
280
+ () => {
281
+ const tokenList = tokenizeString('{,"1":2}');
282
+ const obj = parser.parse(tokenList);
283
+ const result = stringify(obj);
284
+ if (result !== '["error","unexpected token"]') {
285
+ throw result;
286
+ }
287
+ },
288
+ () => {
289
+ const tokenList = tokenizeString('}');
290
+ const obj = parser.parse(tokenList);
291
+ const result = stringify(obj);
292
+ if (result !== '["error","unexpected token"]') {
293
+ throw result;
294
+ }
295
+ },
296
+ () => {
297
+ const tokenList = tokenizeString('[{]}');
298
+ const obj = parser.parse(tokenList);
299
+ const result = stringify(obj);
300
+ if (result !== '["error","unexpected token"]') {
301
+ throw result;
302
+ }
303
+ },
304
+ () => {
305
+ const tokenList = tokenizeString('{[}]');
306
+ const obj = parser.parse(tokenList);
307
+ const result = stringify(obj);
308
+ if (result !== '["error","unexpected token"]') {
309
+ throw result;
310
+ }
311
+ },
312
+ () => {
313
+ const tokenList = tokenizeString('10-5');
314
+ const obj = parser.parse(tokenList);
315
+ const result = stringify(obj);
316
+ if (result !== '["error","unexpected token"]') {
317
+ throw result;
318
+ }
319
+ },
320
+ ]
321
+ };
@@ -0,0 +1,36 @@
1
+ /** @type {(_: string) => list.List<string>} */
2
+ export const stringSerialize: (_: string) => list.List<string>;
3
+ /** @type {(_: number) => list.List<string>} */
4
+ export const numberSerialize: (_: number) => list.List<string>;
5
+ export const nullSerialize: string[];
6
+ /** @type {(_: boolean) => list.List<string>} */
7
+ export const boolSerialize: (_: boolean) => list.List<string>;
8
+ export const objectWrap: (input: list.List<list.List<string>>) => list.List<string>;
9
+ export const arrayWrap: (input: list.List<list.List<string>>) => list.List<string>;
10
+ /**
11
+ * <T>
12
+ */
13
+ export type Obj<T> = { readonly [k in string]: Unknown<T>; };
14
+ /**
15
+ * <T>
16
+ */
17
+ export type Arr<T> = readonly Unknown<T>[];
18
+ export type Primitive = boolean | string | number | null;
19
+ /**
20
+ * <T>
21
+ */
22
+ export type Unknown<T> = Arr<T> | Obj<T> | null | T;
23
+ /**
24
+ * <T>
25
+ */
26
+ export type Entry<T> = O.Entry<Unknown<T>>;
27
+ /**
28
+ * <T>
29
+ */
30
+ export type Entries<T> = (list.List<Entry<T>>);
31
+ /**
32
+ * <T>
33
+ */
34
+ export type MapEntries<T> = (entries: Entries<T>) => Entries<T>;
35
+ import * as list from '../../types/list/module.f.mjs';
36
+ import * as O from '../../types/object/module.f.mjs';
@@ -0,0 +1,67 @@
1
+ // @ts-self-types="./module.f.d.mts"
2
+ import * as list from '../../types/list/module.f.mjs';
3
+ const { flat, reduce, empty } = list;
4
+ import * as O from '../../types/object/module.f.mjs';
5
+ import * as Operator from '../../types/function/operator/module.f.mjs';
6
+ /**
7
+ * @template T
8
+ * @typedef {{
9
+ * readonly [k in string]: Unknown<T>
10
+ * }} Obj<T>
11
+ */
12
+ /**
13
+ * @template T
14
+ * @typedef {readonly Unknown<T>[]} Arr<T>
15
+ */
16
+ /**
17
+ * @typedef {|
18
+ * boolean |
19
+ * string |
20
+ * number |
21
+ * null
22
+ * } Primitive
23
+ */
24
+ /**
25
+ * @template T
26
+ * @typedef {|
27
+ * Arr<T>|
28
+ * Obj<T>|
29
+ * null|
30
+ * T
31
+ * } Unknown<T>
32
+ */
33
+ const jsonStringify = JSON.stringify;
34
+ /** @type {(_: string) => list.List<string>} */
35
+ export const stringSerialize = input => [jsonStringify(input)];
36
+ /** @type {(_: number) => list.List<string>} */
37
+ export const numberSerialize = input => [jsonStringify(input)];
38
+ export const nullSerialize = ['null'];
39
+ const trueSerialize = ['true'];
40
+ const falseSerialize = ['false'];
41
+ /** @type {(_: boolean) => list.List<string>} */
42
+ export const boolSerialize = value => value ? trueSerialize : falseSerialize;
43
+ const comma = [','];
44
+ /** @type {Operator.Reduce<list.List<string>>} */
45
+ const joinOp = b => prior => flat([prior, comma, b]);
46
+ /** @type {(input: list.List<list.List<string>>) => list.List<string>} */
47
+ const join = reduce(joinOp)(empty);
48
+ /** @type {(open: string) => (close: string) => (input: list.List<list.List<string>>) => list.List<string>} */
49
+ const wrap = open => close => {
50
+ const seqOpen = [open];
51
+ const seqClose = [close];
52
+ return input => flat([seqOpen, join(input), seqClose]);
53
+ };
54
+ export const objectWrap = wrap('{')('}');
55
+ export const arrayWrap = wrap('[')(']');
56
+ /**
57
+ * @template T
58
+ * @typedef {O.Entry<Unknown<T>>} Entry<T>
59
+ */
60
+ /**
61
+ * @template T
62
+ * @typedef {(list.List<Entry<T>>)} Entries<T>
63
+ */
64
+ /**
65
+ * @template T
66
+ * @typedef {(entries: Entries<T>) => Entries<T>} MapEntries<T>
67
+ */
@@ -0,0 +1,87 @@
1
+ import * as _ from './module.f.mjs';
2
+ import * as list from '../../types/list/module.f.mjs';
3
+ const { toArray } = list;
4
+ export default {
5
+ arrayWrap: [
6
+ () => {
7
+ const result = JSON.stringify(toArray(_.arrayWrap(null)));
8
+ if (result !== '["[","]"]') {
9
+ throw result;
10
+ }
11
+ },
12
+ () => {
13
+ const result = JSON.stringify(toArray(_.arrayWrap([['a', 'b']])));
14
+ if (result !== '["[","a","b","]"]') {
15
+ throw result;
16
+ }
17
+ },
18
+ () => {
19
+ const result = JSON.stringify(toArray(_.arrayWrap([['a'], ['b']])));
20
+ if (result !== '["[","a",",","b","]"]') {
21
+ throw result;
22
+ }
23
+ }
24
+ ],
25
+ objectWrap: [
26
+ () => {
27
+ const result = JSON.stringify(toArray(_.objectWrap(null)));
28
+ if (result !== '["{","}"]') {
29
+ throw result;
30
+ }
31
+ },
32
+ () => {
33
+ const result = JSON.stringify(toArray(_.objectWrap([['a', 'b']])));
34
+ if (result !== '["{","a","b","}"]') {
35
+ throw result;
36
+ }
37
+ },
38
+ () => {
39
+ const result = JSON.stringify(toArray(_.objectWrap([['a'], ['b']])));
40
+ if (result !== '["{","a",",","b","}"]') {
41
+ throw result;
42
+ }
43
+ }
44
+ ],
45
+ stringSerialize: [
46
+ () => {
47
+ const result = JSON.stringify(toArray(_.stringSerialize('abc')));
48
+ if (result !== '["\\"abc\\""]') {
49
+ throw result;
50
+ }
51
+ },
52
+ () => {
53
+ const result = JSON.stringify(toArray(_.stringSerialize('123')));
54
+ if (result !== '["\\"123\\""]') {
55
+ throw result;
56
+ }
57
+ }
58
+ ],
59
+ numberSerialize: [
60
+ () => {
61
+ const result = JSON.stringify(toArray(_.numberSerialize(123)));
62
+ if (result !== '["123"]') {
63
+ throw result;
64
+ }
65
+ },
66
+ () => {
67
+ const result = JSON.stringify(toArray(_.numberSerialize(10e20)));
68
+ if (result !== '["1e+21"]') {
69
+ throw result;
70
+ }
71
+ }
72
+ ],
73
+ boolSerialize: [
74
+ () => {
75
+ const result = JSON.stringify(toArray(_.boolSerialize(false)));
76
+ if (result !== '["false"]') {
77
+ throw result;
78
+ }
79
+ },
80
+ () => {
81
+ const result = JSON.stringify(toArray(_.boolSerialize(true)));
82
+ if (result !== '["true"]') {
83
+ throw result;
84
+ }
85
+ }
86
+ ]
87
+ };
@@ -0,0 +1,61 @@
1
+ import * as json from './module.f.mjs';
2
+ import * as o from '../types/object/module.f.mjs';
3
+ const { sort } = o;
4
+ import * as f from '../types/function/module.f.mjs';
5
+ const { identity } = f;
6
+ export default {
7
+ setProperty: () => {
8
+ if (json.setProperty("Hello")([])({}) !== "Hello") {
9
+ throw 'error';
10
+ }
11
+ },
12
+ stringify: [
13
+ {
14
+ sort: () => {
15
+ const r = json.setProperty("Hello")(['a'])({});
16
+ const x = json.stringify(sort)(r);
17
+ if (x !== '{"a":"Hello"}') {
18
+ throw x;
19
+ }
20
+ },
21
+ identity: () => {
22
+ const x = json.stringify(identity)(json.setProperty("Hello")(['a'])({}));
23
+ if (x !== '{"a":"Hello"}') {
24
+ throw x;
25
+ }
26
+ },
27
+ },
28
+ {
29
+ sort: () => {
30
+ const x = json.stringify(sort)(json.setProperty("Hello")(['a'])({ c: [], b: 12 }));
31
+ if (x !== '{"a":"Hello","b":12,"c":[]}') {
32
+ throw x;
33
+ }
34
+ },
35
+ identity: () => {
36
+ const x = json.stringify(identity)(json.setProperty("Hello")(['a'])({ c: [], b: 12 }));
37
+ if (x !== '{"c":[],"b":12,"a":"Hello"}') {
38
+ throw x;
39
+ }
40
+ },
41
+ },
42
+ {
43
+ sort: () => {
44
+ const _0 = { a: { y: [24] }, c: [], b: 12 };
45
+ const _1 = json.setProperty("Hello")(['a', 'x'])(_0);
46
+ const _2 = json.stringify(sort)(_1);
47
+ if (_2 !== '{"a":{"x":"Hello","y":[24]},"b":12,"c":[]}') {
48
+ throw _2;
49
+ }
50
+ },
51
+ identity: () => {
52
+ const _0 = { a: { y: [24] }, c: [], b: 12 };
53
+ const _1 = json.setProperty("Hello")(['a', 'x'])(_0);
54
+ const _2 = json.stringify(identity)(_1);
55
+ if (_2 !== '{"a":{"y":[24],"x":"Hello"},"c":[],"b":12}') {
56
+ throw _2;
57
+ }
58
+ }
59
+ }
60
+ ]
61
+ };
@@ -0,0 +1,13 @@
1
+ /** @type {(input: list.List<number>) => list.List<JsonToken>} */
2
+ export const tokenize: (input: list.List<number>) => list.List<JsonToken>;
3
+ export type JsonToken = {
4
+ readonly kind: "true" | "false" | "null";
5
+ } | {
6
+ readonly kind: "{" | "}" | ":" | "," | "[" | "]";
7
+ } | jsTokenizer.StringToken | jsTokenizer.NumberToken | jsTokenizer.ErrorToken;
8
+ export type ScanState = {
9
+ readonly kind: "def" | "-";
10
+ };
11
+ export type ScanInput = jsTokenizer.JsToken | null;
12
+ import * as list from '../../types/list/module.f.mjs';
13
+ import * as jsTokenizer from '../../js/tokenizer/module.f.mjs';
@@ -0,0 +1,78 @@
1
+ // @ts-self-types="./module.f.d.mts"
2
+ import * as Operator from '../../types/function/operator/module.f.mjs';
3
+ import * as list from '../../types/list/module.f.mjs';
4
+ const { empty, flat, stateScan } = list;
5
+ import * as bf from '../../types/bigfloat/module.f.mjs';
6
+ const { multiply } = bf;
7
+ import * as jsTokenizer from '../../js/tokenizer/module.f.mjs';
8
+ /**
9
+ * @typedef {|
10
+ * {readonly kind: 'true' | 'false' | 'null' } |
11
+ * {readonly kind: '{' | '}' | ':' | ',' | '[' | ']' } |
12
+ * jsTokenizer.StringToken |
13
+ * jsTokenizer.NumberToken |
14
+ * jsTokenizer.ErrorToken
15
+ * } JsonToken
16
+ */
17
+ /**
18
+ * @typedef {|
19
+ * {readonly kind: 'def' | '-' }
20
+ * } ScanState
21
+ */
22
+ /**
23
+ * @typedef {|
24
+ * jsTokenizer.JsToken | null
25
+ * } ScanInput
26
+ */
27
+ /** @type {(input: jsTokenizer.JsToken) => list.List<JsonToken>} */
28
+ const mapToken = input => {
29
+ switch (input.kind) {
30
+ case '{':
31
+ case '}':
32
+ case ':':
33
+ case ',':
34
+ case '[':
35
+ case ']':
36
+ case 'true':
37
+ case 'false':
38
+ case 'null':
39
+ case 'string':
40
+ case 'number':
41
+ case 'error': return [input];
42
+ case 'ws':
43
+ case 'nl': return empty;
44
+ default: return [{ kind: 'error', message: 'invalid token' }];
45
+ }
46
+ };
47
+ /** @type {(input: ScanInput) => readonly [list.List<JsonToken>, ScanState]} */
48
+ const parseDefaultState = input => {
49
+ if (input === null)
50
+ return [empty, { kind: 'def' }];
51
+ switch (input.kind) {
52
+ case '-': return [empty, { kind: '-' }];
53
+ default: return [mapToken(input), { kind: 'def' }];
54
+ }
55
+ };
56
+ /** @type {(input: ScanInput) => readonly [list.List<JsonToken>, ScanState]} */
57
+ const parseMinusState = input => {
58
+ if (input === null)
59
+ return [[{ kind: 'error', message: 'invalid token' }], { kind: 'def' }];
60
+ switch (input.kind) {
61
+ case '-': return [[{ kind: 'error', message: 'invalid token' }], { kind: '-' }];
62
+ case 'number': return [[{ kind: 'number', bf: multiply(input.bf)(-1n), value: `-${input.value}` }], { kind: 'def' }];
63
+ default: return [{ first: { kind: 'error', message: 'invalid token' }, tail: mapToken(input) }, { kind: 'def' }];
64
+ }
65
+ };
66
+ /** @type {Operator.StateScan<ScanInput, ScanState, list.List<JsonToken>>} */
67
+ const scanToken = state => input => {
68
+ switch (state.kind) {
69
+ case '-': return parseMinusState(input);
70
+ default: return parseDefaultState(input);
71
+ }
72
+ };
73
+ /** @type {(input: list.List<number>) => list.List<JsonToken>} */
74
+ export const tokenize = input => {
75
+ /** @type {list.List<ScanInput>} */
76
+ const jsTokens = jsTokenizer.tokenize(input);
77
+ return flat(stateScan(scanToken)({ kind: 'def' })(list.concat(jsTokens)([null])));
78
+ };