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,33 +0,0 @@
1
- /**
2
- * @typedef {{
3
- * readonly [k in string]: Unknown
4
- * }} Object
5
- */
6
- /** @typedef {readonly Unknown[]} Array */
7
- /** @typedef {Object|boolean|string|number|null|Array} Unknown */
8
- /** @type {(value: Unknown) => (path: list.List<string>) => (src: Unknown) => Unknown} */
9
- export const setProperty: (value: Unknown) => (path: list.List<string>) => (src: Unknown) => Unknown;
10
- /** @typedef {object.Entry<Unknown>} Entry*/
11
- /** @typedef {(list.List<Entry>)} Entries */
12
- /** @typedef {(entries: Entries) => Entries} MapEntries */
13
- /** @type {(mapEntries: MapEntries) => (value: Unknown) => list.List<string>} */
14
- export const serialize: (mapEntries: MapEntries) => (value: Unknown) => list.List<string>;
15
- /**
16
- * The standard `JSON.stringify` rules determined by
17
- * https://262.ecma-international.org/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
18
- *
19
- * @type {(mapEntries: MapEntries) => (value: Unknown) => string}
20
- */
21
- export const stringify: (mapEntries: MapEntries) => (value: Unknown) => string;
22
- /** @type {(value: string) => Unknown} */
23
- export const parse: (value: string) => Unknown;
24
- /** @type {(value: Unknown) => value is Object} */
25
- export const isObject: (value: Unknown) => value is Object;
26
- export type Object = { readonly [k in string]: Unknown; };
27
- export type Array = readonly Unknown[];
28
- export type Unknown = Object | boolean | string | number | null | Array;
29
- export type Entry = object.Entry<Unknown>;
30
- export type Entries = (list.List<Entry>);
31
- export type MapEntries = (entries: Entries) => Entries;
32
- import * as list from '../types/list/module.f.mjs';
33
- import * as object from '../types/object/module.f.mjs';
@@ -1,89 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as list from '../types/list/module.f.mjs';
3
- const { next, flat, map } = list;
4
- import * as string from '../types/string/module.f.mjs';
5
- const { concat } = string;
6
- import * as object from '../types/object/module.f.mjs';
7
- const { at } = object;
8
- import * as f from '../types/function/module.f.mjs';
9
- const { compose, fn } = f;
10
- const { entries } = Object;
11
- import * as s from './serializer/module.f.mjs';
12
- const { objectWrap, arrayWrap, stringSerialize, numberSerialize, nullSerialize, boolSerialize } = s;
13
- /**
14
- * @typedef {{
15
- * readonly [k in string]: Unknown
16
- * }} Object
17
- */
18
- /** @typedef {readonly Unknown[]} Array */
19
- /** @typedef {Object|boolean|string|number|null|Array} Unknown */
20
- /** @type {(value: Unknown) => (path: list.List<string>) => (src: Unknown) => Unknown} */
21
- export const setProperty = value => {
22
- /** @type {(path: list.List<string>) => (src: Unknown) => Unknown} */
23
- const f = path => src => {
24
- const result = next(path);
25
- if (result === null) {
26
- return value;
27
- }
28
- const srcObject = (src === null || typeof src !== 'object' || src instanceof Array) ? {} : src;
29
- const { first, tail } = result;
30
- return { ...srcObject, [first]: f(tail)(at(first)(srcObject)) };
31
- };
32
- return f;
33
- };
34
- const colon = [':'];
35
- /** @typedef {object.Entry<Unknown>} Entry*/
36
- /** @typedef {(list.List<Entry>)} Entries */
37
- /** @typedef {(entries: Entries) => Entries} MapEntries */
38
- /** @type {(mapEntries: MapEntries) => (value: Unknown) => list.List<string>} */
39
- export const serialize = sort => {
40
- /** @type {(kv: readonly[string, Unknown]) => list.List<string>} */
41
- const propertySerialize = ([k, v]) => flat([
42
- stringSerialize(k),
43
- colon,
44
- f(v)
45
- ]);
46
- const mapPropertySerialize = map(propertySerialize);
47
- /** @type {(object: Object) => list.List<string>} */
48
- const objectSerialize = fn(entries)
49
- .then(sort)
50
- .then(mapPropertySerialize)
51
- .then(objectWrap)
52
- .result;
53
- /** @type {(value: Unknown) => list.List<string>} */
54
- const f = value => {
55
- switch (typeof value) {
56
- case 'boolean': {
57
- return boolSerialize(value);
58
- }
59
- case 'number': {
60
- return numberSerialize(value);
61
- }
62
- case 'string': {
63
- return stringSerialize(value);
64
- }
65
- default: {
66
- if (value === null) {
67
- return nullSerialize;
68
- }
69
- if (value instanceof Array) {
70
- return arraySerialize(value);
71
- }
72
- return objectSerialize(value);
73
- }
74
- }
75
- };
76
- const arraySerialize = compose(map(f))(arrayWrap);
77
- return f;
78
- };
79
- /**
80
- * The standard `JSON.stringify` rules determined by
81
- * https://262.ecma-international.org/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
82
- *
83
- * @type {(mapEntries: MapEntries) => (value: Unknown) => string}
84
- */
85
- export const stringify = sort => compose(serialize(sort))(concat);
86
- /** @type {(value: string) => Unknown} */
87
- export const parse = JSON.parse;
88
- /** @type {(value: Unknown) => value is Object} */
89
- export const isObject = value => typeof value === 'object' && value !== null && !(value instanceof Array);
@@ -1,32 +0,0 @@
1
- /** @type {(tokenList: list.List<Tokenizer.JsonToken>) => result.Result<Json.Unknown, string>} */
2
- export const parse: (tokenList: list.List<Tokenizer.JsonToken>) => result.Result<Json.Unknown, string>;
3
- export type JsonObject = {
4
- readonly kind: "object";
5
- readonly values: map.Map<Json.Unknown>;
6
- readonly key: string;
7
- };
8
- export type JsonArray = {
9
- readonly kind: "array";
10
- readonly values: list.List<Json.Unknown>;
11
- };
12
- export type JsonStackElement = JsonObject | JsonArray;
13
- export type JsonStack = list.List<JsonStackElement>;
14
- export type StateParse = {
15
- readonly status: "" | "[" | "[v" | "[," | "{" | "{k" | "{:" | "{v" | "{,";
16
- readonly top: JsonStackElement | null;
17
- readonly stack: JsonStack;
18
- };
19
- export type StateResult = {
20
- readonly status: "result";
21
- readonly value: Json.Unknown;
22
- };
23
- export type StateError = {
24
- readonly status: "error";
25
- readonly message: string;
26
- };
27
- export type JsonState = StateParse | StateResult | StateError;
28
- import * as list from '../../types/list/module.f.mjs';
29
- import * as Tokenizer from '../tokenizer/module.f.mjs';
30
- import * as result from '../../types/result/module.f.mjs';
31
- import * as Json from '../module.f.mjs';
32
- import * as map from '../../types/map/module.f.mjs';
@@ -1,224 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as result from '../../types/result/module.f.mjs';
3
- import * as list from '../../types/list/module.f.mjs';
4
- const { fold, first, drop, toArray } = list;
5
- import * as Operator from '../../types/function/operator/module.f.mjs';
6
- import * as Tokenizer from '../tokenizer/module.f.mjs';
7
- import * as map from '../../types/map/module.f.mjs';
8
- const { setReplace } = map;
9
- import * as Json from '../module.f.mjs';
10
- import * as o from '../../types/object/module.f.mjs';
11
- const { fromMap } = o;
12
- /**
13
- * @typedef {{
14
- * readonly kind: 'object'
15
- * readonly values: map.Map<Json.Unknown>
16
- * readonly key: string
17
- * }} JsonObject
18
- * */
19
- /**
20
- * @typedef {{
21
- * readonly kind: 'array'
22
- * readonly values: list.List<Json.Unknown>
23
- * }} JsonArray
24
- * */
25
- /**
26
- * @typedef {|
27
- * JsonObject |
28
- * JsonArray
29
- * } JsonStackElement
30
- */
31
- /** @typedef {list.List<JsonStackElement>} JsonStack */
32
- /**
33
- * @typedef {{
34
- * readonly status: '' | '[' | '[v' | '[,' | '{' | '{k' | '{:' | '{v' | '{,'
35
- * readonly top: JsonStackElement | null
36
- * readonly stack: JsonStack
37
- * }} StateParse
38
- */
39
- /**
40
- * @typedef {{
41
- * readonly status: 'result'
42
- * readonly value: Json.Unknown
43
- * }} StateResult
44
- */
45
- /**
46
- * @typedef {{
47
- * readonly status: 'error'
48
- * readonly message: string
49
- * }} StateError
50
- */
51
- /**
52
- * @typedef {|
53
- * StateParse |
54
- * StateResult |
55
- * StateError
56
- * } JsonState
57
- */
58
- /** @type {(obj: JsonObject) => (key: string) => JsonObject} */
59
- const addKeyToObject = obj => key => ({ kind: 'object', values: obj.values, key: key });
60
- /** @type {(obj: JsonObject) => (value: Json.Unknown) => JsonObject} */
61
- const addValueToObject = obj => value => ({ kind: 'object', values: setReplace(obj.key)(value)(obj.values), key: '' });
62
- /** @type {(array: JsonArray) => (value: Json.Unknown) => JsonArray} */
63
- const addToArray = array => value => ({ kind: 'array', values: list.concat(array.values)([value]) });
64
- /** @type {(state: StateParse) => (key: string) => JsonState} */
65
- const pushKey = state => value => {
66
- if (state.top?.kind === 'object') {
67
- return { status: '{k', top: addKeyToObject(state.top)(value), stack: state.stack };
68
- }
69
- return { status: 'error', message: 'error' };
70
- };
71
- /** @type {(state: StateParse) => (value: Json.Unknown) => JsonState} */
72
- const pushValue = state => value => {
73
- if (state.top === null) {
74
- return { status: 'result', value: value };
75
- }
76
- if (state.top.kind === 'array') {
77
- return { status: '[v', top: addToArray(state.top)(value), stack: state.stack };
78
- }
79
- return { status: '{v', top: addValueToObject(state.top)(value), stack: state.stack };
80
- };
81
- /** @type {(state: StateParse) => JsonState} */
82
- const startArray = state => {
83
- const newStack = state.top === null ? null : { first: state.top, tail: state.stack };
84
- return { status: '[', top: { kind: 'array', values: null }, stack: newStack };
85
- };
86
- /** @type {(state: StateParse) => JsonState} */
87
- const endArray = state => {
88
- const array = state.top !== null ? toArray(state.top.values) : null;
89
- /** @type {StateParse} */
90
- const newState = { status: '', top: first(null)(state.stack), stack: drop(1)(state.stack) };
91
- return pushValue(newState)(array);
92
- };
93
- /** @type {(state: StateParse) => JsonState} */
94
- const startObject = state => {
95
- const newStack = state.top === null ? null : { first: state.top, tail: state.stack };
96
- return { status: '{', top: { kind: 'object', values: null, key: '' }, stack: newStack };
97
- };
98
- /** @type {(state: StateParse) => JsonState} */
99
- const endObject = state => {
100
- const obj = state.top?.kind === 'object' ? fromMap(state.top.values) : null;
101
- /** @type {StateParse} */
102
- const newState = { status: '', top: first(null)(state.stack), stack: drop(1)(state.stack) };
103
- return pushValue(newState)(obj);
104
- };
105
- /** @type {(token: Tokenizer.JsonToken) => Json.Unknown} */
106
- const tokenToValue = token => {
107
- switch (token.kind) {
108
- case 'null': return null;
109
- case 'false': return false;
110
- case 'true': return true;
111
- case 'number': return parseFloat(token.value);
112
- case 'string': return token.value;
113
- default: return null;
114
- }
115
- };
116
- /** @type {(token: Tokenizer.JsonToken) => boolean} */
117
- const isValueToken = token => {
118
- switch (token.kind) {
119
- case 'null':
120
- case 'false':
121
- case 'true':
122
- case 'number':
123
- case 'string': return true;
124
- default: return false;
125
- }
126
- };
127
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
128
- const parseValueOp = token => state => {
129
- if (isValueToken(token)) {
130
- return pushValue(state)(tokenToValue(token));
131
- }
132
- if (token.kind === '[') {
133
- return startArray(state);
134
- }
135
- if (token.kind === '{') {
136
- return startObject(state);
137
- }
138
- return { status: 'error', message: 'unexpected token' };
139
- };
140
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
141
- const parseArrayStartOp = token => state => {
142
- if (isValueToken(token)) {
143
- return pushValue(state)(tokenToValue(token));
144
- }
145
- if (token.kind === '[') {
146
- return startArray(state);
147
- }
148
- if (token.kind === ']') {
149
- return endArray(state);
150
- }
151
- if (token.kind === '{') {
152
- return startObject(state);
153
- }
154
- return { status: 'error', message: 'unexpected token' };
155
- };
156
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
157
- const parseArrayValueOp = token => state => {
158
- if (token.kind === ']') {
159
- return endArray(state);
160
- }
161
- if (token.kind === ',') {
162
- return { status: '[,', top: state.top, stack: state.stack };
163
- }
164
- return { status: 'error', message: 'unexpected token' };
165
- };
166
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
167
- const parseObjectStartOp = token => state => {
168
- if (token.kind === 'string') {
169
- return pushKey(state)(token.value);
170
- }
171
- if (token.kind === '}') {
172
- return endObject(state);
173
- }
174
- return { status: 'error', message: 'unexpected token' };
175
- };
176
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
177
- const parseObjectKeyOp = token => state => {
178
- if (token.kind === ':') {
179
- return { status: '{:', top: state.top, stack: state.stack };
180
- }
181
- return { status: 'error', message: 'unexpected token' };
182
- };
183
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
184
- const parseObjectNextOp = token => state => {
185
- if (token.kind === '}') {
186
- return endObject(state);
187
- }
188
- if (token.kind === ',') {
189
- return { status: '{,', top: state.top, stack: state.stack };
190
- }
191
- return { status: 'error', message: 'unexpected token' };
192
- };
193
- /** @type {(token: Tokenizer.JsonToken) => (state: StateParse) => JsonState}} */
194
- const parseObjectCommaOp = token => state => {
195
- if (token.kind === 'string') {
196
- return pushKey(state)(token.value);
197
- }
198
- return { status: 'error', message: 'unexpected token' };
199
- };
200
- /** @type {Operator.Fold<Tokenizer.JsonToken, JsonState>} */
201
- const foldOp = token => state => {
202
- switch (state.status) {
203
- case 'result': return { status: 'error', message: 'unexpected token' };
204
- case 'error': return { status: 'error', message: state.message };
205
- case '': return parseValueOp(token)(state);
206
- case '[': return parseArrayStartOp(token)(state);
207
- case '[v': return parseArrayValueOp(token)(state);
208
- case '[,': return parseValueOp(token)(state);
209
- case '{': return parseObjectStartOp(token)(state);
210
- case '{k': return parseObjectKeyOp(token)(state);
211
- case '{:': return parseValueOp(token)(state);
212
- case '{v': return parseObjectNextOp(token)(state);
213
- case '{,': return parseObjectCommaOp(token)(state);
214
- }
215
- };
216
- /** @type {(tokenList: list.List<Tokenizer.JsonToken>) => result.Result<Json.Unknown, string>} */
217
- export const parse = tokenList => {
218
- const state = fold(foldOp)({ status: '', top: null, stack: null })(tokenList);
219
- switch (state.status) {
220
- case 'result': return result.ok(state.value);
221
- case 'error': return result.error(state.message);
222
- default: return result.error('unexpected end');
223
- }
224
- };
@@ -1,5 +0,0 @@
1
- declare namespace _default {
2
- let valid: (() => void)[];
3
- let invalid: (() => void)[];
4
- }
5
- export default _default;