functionalscript 0.2.6 → 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 (428) hide show
  1. package/.github/workflows/ci.yml +19 -4
  2. package/CHANGELOG.md +5 -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/module.f.ts +108 -0
  55. package/html/{test.f.mjs → test.f.ts} +10 -7
  56. package/issues/lang/3110-function.md +25 -1
  57. package/issues/{test.f.mjs → test.f.ts} +3 -2
  58. package/js/tokenizer/module.f.ts +882 -0
  59. package/js/tokenizer/{test.f.mjs → test.f.ts} +11 -10
  60. package/json/module.f.ts +94 -0
  61. package/json/parser/{module.f.mjs → module.f.ts} +113 -109
  62. package/json/parser/{test.f.mjs → test.f.ts} +10 -9
  63. package/json/serializer/module.f.ts +70 -0
  64. package/json/serializer/{test.f.mjs → test.f.ts} +3 -3
  65. package/json/{test.f.mjs → test.f.ts} +3 -3
  66. package/json/tokenizer/{module.f.mjs → module.f.ts} +29 -36
  67. package/json/tokenizer/{test.f.mjs → test.f.ts} +9 -8
  68. package/nanvm-lib/src/extension.rs +15 -4
  69. package/nanvm-lib/src/interface.rs +7 -10
  70. package/nanvm-lib/src/lib.rs +3 -3
  71. package/nanvm-lib/src/naive.rs +10 -3
  72. package/nanvm-lib/src/nanenum.rs +5 -1
  73. package/nanvm-lib/tests/{test.f.mjs → test.f.ts} +7 -6
  74. package/nodejs/version/{main.mjs → main.ts} +1 -1
  75. package/nodejs/version/module.f.ts +42 -0
  76. package/nodejs/version/{test.f.mjs → test.f.ts} +11 -12
  77. package/package.json +9 -9
  78. package/text/ascii/{module.f.mjs → module.f.ts} +10 -8
  79. package/text/ascii/{test.f.mjs → test.f.ts} +4 -4
  80. package/text/module.f.ts +30 -0
  81. package/text/sgr/{module.f.mjs → module.f.ts} +3 -5
  82. package/text/{test.f.mjs → test.f.ts} +5 -4
  83. package/text/utf16/module.f.ts +108 -0
  84. package/text/utf16/{test.f.mjs → test.f.ts} +7 -6
  85. package/text/utf8/{module.f.mjs → module.f.ts} +29 -23
  86. package/text/utf8/{test.f.mjs → test.f.ts} +4 -4
  87. package/tsconfig.json +4 -1
  88. package/types/array/module.f.ts +89 -0
  89. package/types/array/{test.f.mjs → test.f.ts} +3 -3
  90. package/types/bigfloat/{module.f.mjs → module.f.ts} +25 -20
  91. package/types/bigfloat/{test.f.mjs → test.f.ts} +1 -1
  92. package/types/bigint/{module.f.mjs → module.f.ts} +29 -28
  93. package/types/bigint/{test.f.mjs → test.f.ts} +2 -2
  94. package/types/bit_vec/{module.f.mjs → module.f.ts} +16 -37
  95. package/types/bit_vec/{test.f.mjs → test.f.ts} +1 -1
  96. package/types/btree/find/module.f.ts +92 -0
  97. package/types/btree/find/{test.f.mjs → test.f.ts} +20 -16
  98. package/types/btree/{module.f.mjs → module.f.ts} +9 -9
  99. package/types/btree/remove/{module.f.mjs → module.f.ts} +43 -53
  100. package/types/btree/remove/{test.f.mjs → test.f.ts} +19 -15
  101. package/types/btree/set/{module.f.mjs → module.f.ts} +17 -20
  102. package/types/btree/set/{test.f.mjs → test.f.ts} +96 -66
  103. package/types/btree/{test.f.mjs → test.f.ts} +34 -26
  104. package/types/btree/types/module.f.ts +27 -0
  105. package/types/byte_set/module.f.ts +70 -0
  106. package/types/byte_set/{test.f.mjs → test.f.ts} +8 -7
  107. package/types/function/compare/module.f.ts +26 -0
  108. package/types/function/compare/{test.f.mjs → test.f.ts} +1 -1
  109. package/types/function/module.f.ts +43 -0
  110. package/types/function/operator/module.f.ts +63 -0
  111. package/types/function/test.f.ts +20 -0
  112. package/types/list/module.f.ts +345 -0
  113. package/types/list/{test.f.mjs → test.f.ts} +30 -24
  114. package/types/map/module.f.ts +65 -0
  115. package/types/map/{test.f.mjs → test.f.ts} +6 -5
  116. package/types/nibble_set/module.f.ts +34 -0
  117. package/types/nibble_set/{test.f.mjs → test.f.ts} +3 -3
  118. package/types/nullable/module.f.ts +9 -0
  119. package/types/nullable/{test.f.mjs → test.f.ts} +2 -2
  120. package/types/number/module.f.ts +16 -0
  121. package/types/number/{test.f.mjs → test.f.ts} +7 -5
  122. package/types/object/module.f.ts +30 -0
  123. package/types/object/{test.f.mjs → test.f.ts} +2 -2
  124. package/types/range/module.f.ts +10 -0
  125. package/types/range/{test.f.mjs → test.f.ts} +1 -1
  126. package/types/range_map/module.f.ts +70 -0
  127. package/types/range_map/{test.f.mjs → test.f.ts} +82 -57
  128. package/types/result/module.f.ts +20 -0
  129. package/types/result/{module.mjs → module.ts} +4 -3
  130. package/types/sorted_list/module.f.ts +83 -0
  131. package/types/sorted_list/{test.f.mjs → test.f.ts} +14 -12
  132. package/types/sorted_set/module.f.ts +36 -0
  133. package/types/sorted_set/{test.f.mjs → test.f.ts} +14 -12
  134. package/types/string/module.f.ts +24 -0
  135. package/types/string/{test.f.mjs → test.f.ts} +2 -2
  136. package/types/string_set/module.f.ts +37 -0
  137. package/types/string_set/{test.f.mjs → test.f.ts} +2 -2
  138. package/com/cpp/testlib.f.mjs +0 -8
  139. package/com/cs/testlib.f.mjs +0 -8
  140. package/com/rust/module.f.mjs +0 -272
  141. package/com/rust/testlib.f.mjs +0 -8
  142. package/com/types/module.f.mjs +0 -67
  143. package/commonjs/build/module.f.mjs +0 -100
  144. package/commonjs/module/function/module.f.mjs +0 -21
  145. package/commonjs/module/module.f.mjs +0 -53
  146. package/commonjs/module.f.mjs +0 -11
  147. package/commonjs/package/dependencies/module.f.mjs +0 -22
  148. package/commonjs/package/module.f.mjs +0 -36
  149. package/dev/index.mjs +0 -3
  150. package/dev/test.mjs +0 -60
  151. package/fsm/module.f.mjs +0 -99
  152. package/html/module.f.mjs +0 -102
  153. package/js/tokenizer/module.f.mjs +0 -872
  154. package/json/module.f.mjs +0 -89
  155. package/json/serializer/module.f.mjs +0 -87
  156. package/jsr.json +0 -66
  157. package/nodejs/version/module.f.mjs +0 -47
  158. package/out/com/cpp/module.f.d.mts +0 -7
  159. package/out/com/cpp/module.f.mjs +0 -130
  160. package/out/com/cpp/test.f.d.mts +0 -2
  161. package/out/com/cpp/test.f.mjs +0 -40
  162. package/out/com/cpp/testlib.f.d.mts +0 -2
  163. package/out/com/cpp/testlib.f.mjs +0 -7
  164. package/out/com/cs/module.f.d.mts +0 -7
  165. package/out/com/cs/module.f.mjs +0 -104
  166. package/out/com/cs/test.f.d.mts +0 -2
  167. package/out/com/cs/test.f.mjs +0 -43
  168. package/out/com/cs/testlib.f.d.mts +0 -2
  169. package/out/com/cs/testlib.f.mjs +0 -7
  170. package/out/com/rust/module.f.d.mts +0 -23
  171. package/out/com/rust/module.f.mjs +0 -224
  172. package/out/com/rust/test.f.d.mts +0 -2
  173. package/out/com/rust/test.f.mjs +0 -123
  174. package/out/com/rust/testlib.f.d.mts +0 -2
  175. package/out/com/rust/testlib.f.mjs +0 -7
  176. package/out/com/test/build.d.mts +0 -1
  177. package/out/com/test/build.f.d.mts +0 -26
  178. package/out/com/test/build.f.mjs +0 -98
  179. package/out/com/test/build.mjs +0 -40
  180. package/out/com/types/module.f.d.mts +0 -23
  181. package/out/com/types/module.f.mjs +0 -51
  182. package/out/com/types/testlib.f.d.mts +0 -44
  183. package/out/com/types/testlib.f.mjs +0 -30
  184. package/out/commonjs/build/module.f.d.mts +0 -20
  185. package/out/commonjs/build/module.f.mjs +0 -107
  186. package/out/commonjs/build/test.f.d.mts +0 -3
  187. package/out/commonjs/build/test.f.mjs +0 -102
  188. package/out/commonjs/module/function/module.f.d.mts +0 -5
  189. package/out/commonjs/module/function/module.f.mjs +0 -15
  190. package/out/commonjs/module/module.f.d.mts +0 -52
  191. package/out/commonjs/module/module.f.mjs +0 -48
  192. package/out/commonjs/module.d.mts +0 -3
  193. package/out/commonjs/module.f.d.mts +0 -2
  194. package/out/commonjs/module.f.mjs +0 -10
  195. package/out/commonjs/module.mjs +0 -26
  196. package/out/commonjs/package/dependencies/module.f.d.mts +0 -6
  197. package/out/commonjs/package/dependencies/module.f.mjs +0 -21
  198. package/out/commonjs/package/dependencies/test.f.d.mts +0 -2
  199. package/out/commonjs/package/dependencies/test.f.mjs +0 -15
  200. package/out/commonjs/package/module.f.d.mts +0 -21
  201. package/out/commonjs/package/module.f.mjs +0 -40
  202. package/out/commonjs/package/test.f.d.mts +0 -2
  203. package/out/commonjs/package/test.f.mjs +0 -27
  204. package/out/commonjs/path/module.f.d.mts +0 -60
  205. package/out/commonjs/path/module.f.mjs +0 -171
  206. package/out/commonjs/path/test.f.d.mts +0 -25
  207. package/out/commonjs/path/test.f.mjs +0 -231
  208. package/out/commonjs/test.d.mts +0 -8
  209. package/out/commonjs/test.mjs +0 -87
  210. package/out/crypto/prime_field/module.f.d.mts +0 -67
  211. package/out/crypto/prime_field/module.f.mjs +0 -110
  212. package/out/crypto/prime_field/test.f.d.mts +0 -13
  213. package/out/crypto/prime_field/test.f.mjs +0 -152
  214. package/out/crypto/secp/module.f.d.mts +0 -110
  215. package/out/crypto/secp/module.f.mjs +0 -173
  216. package/out/crypto/secp/test.f.d.mts +0 -5
  217. package/out/crypto/secp/test.f.mjs +0 -78
  218. package/out/crypto/sha2/module.f.d.mts +0 -15
  219. package/out/crypto/sha2/module.f.mjs +0 -172
  220. package/out/crypto/sha2/test.f.d.mts +0 -10
  221. package/out/crypto/sha2/test.f.mjs +0 -86
  222. package/out/dev/index.d.mts +0 -1
  223. package/out/dev/index.mjs +0 -2
  224. package/out/dev/module.d.mts +0 -26
  225. package/out/dev/module.f.d.mts +0 -1
  226. package/out/dev/module.f.mjs +0 -2
  227. package/out/dev/module.mjs +0 -167
  228. package/out/dev/test/module.f.d.mts +0 -25
  229. package/out/dev/test/module.f.mjs +0 -134
  230. package/out/dev/test.d.mts +0 -3
  231. package/out/dev/test.f.d.mts +0 -9
  232. package/out/dev/test.f.mjs +0 -58
  233. package/out/dev/test.mjs +0 -52
  234. package/out/djs/module.f.d.mts +0 -20
  235. package/out/djs/module.f.mjs +0 -79
  236. package/out/djs/parser/module.f.d.mts +0 -56
  237. package/out/djs/parser/module.f.mjs +0 -448
  238. package/out/djs/parser/test.f.d.mts +0 -13
  239. package/out/djs/parser/test.f.mjs +0 -569
  240. package/out/djs/test.f.d.mts +0 -12
  241. package/out/djs/test.f.mjs +0 -84
  242. package/out/djs/tokenizer/module.f.d.mts +0 -13
  243. package/out/djs/tokenizer/module.f.mjs +0 -91
  244. package/out/djs/tokenizer/test.f.d.mts +0 -7
  245. package/out/djs/tokenizer/test.f.mjs +0 -530
  246. package/out/fsc/module.f.d.mts +0 -7
  247. package/out/fsc/module.f.mjs +0 -105
  248. package/out/fsc/test.f.d.mts +0 -4
  249. package/out/fsc/test.f.mjs +0 -19
  250. package/out/fsm/module.f.d.mts +0 -14
  251. package/out/fsm/module.f.mjs +0 -80
  252. package/out/fsm/test.f.d.mts +0 -5
  253. package/out/fsm/test.f.mjs +0 -138
  254. package/out/html/module.f.d.mts +0 -17
  255. package/out/html/module.f.mjs +0 -80
  256. package/out/html/test.f.d.mts +0 -10
  257. package/out/html/test.f.mjs +0 -45
  258. package/out/issues/test.f.d.mts +0 -16
  259. package/out/issues/test.f.mjs +0 -66
  260. package/out/js/tokenizer/module.f.d.mts +0 -163
  261. package/out/js/tokenizer/module.f.mjs +0 -729
  262. package/out/js/tokenizer/test.f.d.mts +0 -9
  263. package/out/js/tokenizer/test.f.mjs +0 -906
  264. package/out/json/module.f.d.mts +0 -33
  265. package/out/json/module.f.mjs +0 -89
  266. package/out/json/parser/module.f.d.mts +0 -32
  267. package/out/json/parser/module.f.mjs +0 -224
  268. package/out/json/parser/test.f.d.mts +0 -5
  269. package/out/json/parser/test.f.mjs +0 -329
  270. package/out/json/serializer/module.f.d.mts +0 -36
  271. package/out/json/serializer/module.f.mjs +0 -67
  272. package/out/json/serializer/test.f.d.mts +0 -8
  273. package/out/json/serializer/test.f.mjs +0 -87
  274. package/out/json/test.f.d.mts +0 -8
  275. package/out/json/test.f.mjs +0 -61
  276. package/out/json/tokenizer/module.f.d.mts +0 -13
  277. package/out/json/tokenizer/module.f.mjs +0 -78
  278. package/out/json/tokenizer/test.f.d.mts +0 -6
  279. package/out/json/tokenizer/test.f.mjs +0 -420
  280. package/out/nanvm-lib/tests/test.f.d.mts +0 -36
  281. package/out/nanvm-lib/tests/test.f.mjs +0 -87
  282. package/out/nodejs/version/main.d.mts +0 -1
  283. package/out/nodejs/version/main.mjs +0 -3
  284. package/out/nodejs/version/module.f.d.mts +0 -12
  285. package/out/nodejs/version/module.f.mjs +0 -34
  286. package/out/nodejs/version/test.f.d.mts +0 -2
  287. package/out/nodejs/version/test.f.mjs +0 -97
  288. package/out/text/ascii/module.f.d.mts +0 -70
  289. package/out/text/ascii/module.f.mjs +0 -154
  290. package/out/text/ascii/test.f.d.mts +0 -4
  291. package/out/text/ascii/test.f.mjs +0 -14
  292. package/out/text/module.f.d.mts +0 -13
  293. package/out/text/module.f.mjs +0 -19
  294. package/out/text/sgr/module.f.d.mts +0 -12
  295. package/out/text/sgr/module.f.mjs +0 -17
  296. package/out/text/test.f.d.mts +0 -2
  297. package/out/text/test.f.mjs +0 -19
  298. package/out/text/utf16/module.f.d.mts +0 -12
  299. package/out/text/utf16/module.f.mjs +0 -86
  300. package/out/text/utf16/test.f.d.mts +0 -6
  301. package/out/text/utf16/test.f.mjs +0 -145
  302. package/out/text/utf8/module.f.d.mts +0 -10
  303. package/out/text/utf8/module.f.mjs +0 -126
  304. package/out/text/utf8/test.f.d.mts +0 -6
  305. package/out/text/utf8/test.f.mjs +0 -175
  306. package/out/types/array/module.f.d.mts +0 -31
  307. package/out/types/array/module.f.mjs +0 -95
  308. package/out/types/array/test.f.d.mts +0 -10
  309. package/out/types/array/test.f.mjs +0 -116
  310. package/out/types/bigfloat/module.f.d.mts +0 -6
  311. package/out/types/bigfloat/module.f.mjs +0 -77
  312. package/out/types/bigfloat/test.f.d.mts +0 -6
  313. package/out/types/bigfloat/test.f.mjs +0 -349
  314. package/out/types/bigint/module.f.d.mts +0 -29
  315. package/out/types/bigint/module.f.mjs +0 -114
  316. package/out/types/bigint/test.f.d.mts +0 -16
  317. package/out/types/bigint/test.f.mjs +0 -199
  318. package/out/types/bit_vec/module.f.d.mts +0 -158
  319. package/out/types/bit_vec/module.f.mjs +0 -194
  320. package/out/types/bit_vec/test.f.d.mts +0 -23
  321. package/out/types/bit_vec/test.f.mjs +0 -210
  322. package/out/types/btree/find/module.f.d.mts +0 -36
  323. package/out/types/btree/find/module.f.mjs +0 -137
  324. package/out/types/btree/find/test.f.d.mts +0 -2
  325. package/out/types/btree/find/test.f.mjs +0 -156
  326. package/out/types/btree/module.f.d.mts +0 -5
  327. package/out/types/btree/module.f.mjs +0 -34
  328. package/out/types/btree/remove/module.f.d.mts +0 -14
  329. package/out/types/btree/remove/module.f.mjs +0 -209
  330. package/out/types/btree/remove/test.f.d.mts +0 -7
  331. package/out/types/btree/remove/test.f.mjs +0 -638
  332. package/out/types/btree/set/module.f.d.mts +0 -5
  333. package/out/types/btree/set/module.f.mjs +0 -114
  334. package/out/types/btree/set/test.f.d.mts +0 -2
  335. package/out/types/btree/set/test.f.mjs +0 -390
  336. package/out/types/btree/test.f.d.mts +0 -13
  337. package/out/types/btree/test.f.mjs +0 -83
  338. package/out/types/btree/types/module.f.d.mts +0 -14
  339. package/out/types/btree/types/module.f.mjs +0 -50
  340. package/out/types/byte_set/module.f.d.mts +0 -25
  341. package/out/types/byte_set/module.f.mjs +0 -42
  342. package/out/types/byte_set/test.f.d.mts +0 -13
  343. package/out/types/byte_set/test.f.mjs +0 -123
  344. package/out/types/function/compare/module.f.d.mts +0 -23
  345. package/out/types/function/compare/module.f.mjs +0 -22
  346. package/out/types/function/compare/test.f.d.mts +0 -2
  347. package/out/types/function/compare/test.f.mjs +0 -8
  348. package/out/types/function/module.f.d.mts +0 -51
  349. package/out/types/function/module.f.mjs +0 -44
  350. package/out/types/function/operator/module.f.d.mts +0 -60
  351. package/out/types/function/operator/module.f.mjs +0 -60
  352. package/out/types/function/test.f.d.mts +0 -2
  353. package/out/types/function/test.f.mjs +0 -15
  354. package/out/types/list/module.f.d.mts +0 -82
  355. package/out/types/list/module.f.mjs +0 -269
  356. package/out/types/list/test.f.d.mts +0 -38
  357. package/out/types/list/test.f.mjs +0 -401
  358. package/out/types/map/module.f.d.mts +0 -21
  359. package/out/types/map/module.f.mjs +0 -54
  360. package/out/types/map/test.f.d.mts +0 -5
  361. package/out/types/map/test.f.mjs +0 -115
  362. package/out/types/nibble_set/module.f.d.mts +0 -16
  363. package/out/types/nibble_set/module.f.mjs +0 -19
  364. package/out/types/nibble_set/test.f.d.mts +0 -13
  365. package/out/types/nibble_set/test.f.mjs +0 -90
  366. package/out/types/nullable/module.f.d.mts +0 -9
  367. package/out/types/nullable/module.f.mjs +0 -9
  368. package/out/types/nullable/test.f.d.mts +0 -2
  369. package/out/types/nullable/test.f.mjs +0 -12
  370. package/out/types/number/module.f.d.mts +0 -7
  371. package/out/types/number/module.f.mjs +0 -12
  372. package/out/types/number/test.f.d.mts +0 -11
  373. package/out/types/number/test.f.mjs +0 -126
  374. package/out/types/object/module.f.d.mts +0 -22
  375. package/out/types/object/module.f.mjs +0 -27
  376. package/out/types/object/test.f.d.mts +0 -5
  377. package/out/types/object/test.f.mjs +0 -17
  378. package/out/types/range/module.f.d.mts +0 -6
  379. package/out/types/range/module.f.mjs +0 -6
  380. package/out/types/range/test.f.d.mts +0 -2
  381. package/out/types/range/test.f.mjs +0 -18
  382. package/out/types/range_map/module.f.d.mts +0 -19
  383. package/out/types/range_map/module.f.mjs +0 -84
  384. package/out/types/range_map/test.f.d.mts +0 -6
  385. package/out/types/range_map/test.f.mjs +0 -201
  386. package/out/types/result/module.d.mts +0 -7
  387. package/out/types/result/module.f.d.mts +0 -22
  388. package/out/types/result/module.f.mjs +0 -25
  389. package/out/types/result/module.mjs +0 -16
  390. package/out/types/sorted_list/module.f.d.mts +0 -53
  391. package/out/types/sorted_list/module.f.mjs +0 -102
  392. package/out/types/sorted_list/test.f.d.mts +0 -5
  393. package/out/types/sorted_list/test.f.mjs +0 -66
  394. package/out/types/sorted_set/module.f.d.mts +0 -19
  395. package/out/types/sorted_set/module.f.mjs +0 -29
  396. package/out/types/sorted_set/test.f.d.mts +0 -6
  397. package/out/types/sorted_set/test.f.mjs +0 -80
  398. package/out/types/string/module.f.d.mts +0 -9
  399. package/out/types/string/module.f.mjs +0 -17
  400. package/out/types/string/test.f.d.mts +0 -15
  401. package/out/types/string/test.f.mjs +0 -58
  402. package/out/types/string_set/module.f.d.mts +0 -13
  403. package/out/types/string_set/module.f.mjs +0 -29
  404. package/out/types/string_set/test.f.d.mts +0 -5
  405. package/out/types/string_set/test.f.mjs +0 -65
  406. package/text/module.f.mjs +0 -27
  407. package/text/utf16/module.f.mjs +0 -96
  408. package/types/array/module.f.mjs +0 -119
  409. package/types/btree/find/module.f.mjs +0 -125
  410. package/types/btree/types/module.f.mjs +0 -64
  411. package/types/byte_set/module.f.mjs +0 -61
  412. package/types/function/compare/module.f.mjs +0 -29
  413. package/types/function/module.f.mjs +0 -50
  414. package/types/function/operator/module.f.mjs +0 -78
  415. package/types/function/test.f.mjs +0 -17
  416. package/types/list/module.f.mjs +0 -320
  417. package/types/map/module.f.mjs +0 -67
  418. package/types/nibble_set/module.f.mjs +0 -28
  419. package/types/nullable/module.f.mjs +0 -11
  420. package/types/number/module.f.mjs +0 -16
  421. package/types/object/module.f.mjs +0 -33
  422. package/types/range/module.f.mjs +0 -8
  423. package/types/range_map/module.f.mjs +0 -84
  424. package/types/result/module.f.mjs +0 -28
  425. package/types/sorted_list/module.f.mjs +0 -107
  426. package/types/sorted_set/module.f.mjs +0 -38
  427. package/types/string/module.f.mjs +0 -22
  428. package/types/string_set/module.f.mjs +0 -36
@@ -1,171 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as list from '../../types/list/module.f.mjs';
3
- const { next, fold, reverse, first, flat, toArray, filterMap, isEmpty, concat } = list;
4
- import * as string from '../../types/string/module.f.mjs';
5
- const { join } = string;
6
- import * as Package from '../package/module.f.mjs';
7
- import * as Module from '../module/module.f.mjs';
8
- /** @typedef {readonly string[]} Items */
9
- /**
10
- * @typedef {{
11
- * readonly external: boolean
12
- * readonly dir: boolean
13
- * readonly items: Items
14
- * }} LocalPath
15
- */
16
- /** @type {(path: string) => readonly string[]} */
17
- const split = path => path.split('/');
18
- /** @typedef {readonly[list.List<string>] | null} OptionList */
19
- /** @type {(items: string) => (prior: OptionList) => OptionList} */
20
- const normItemsOp = first => prior => {
21
- if (prior === null) {
22
- return null;
23
- }
24
- const tail = prior[0];
25
- switch (first) {
26
- case '':
27
- case '.': {
28
- return prior;
29
- }
30
- case '..': {
31
- const result = next(tail);
32
- if (result === null) {
33
- return null;
34
- }
35
- return [result.tail];
36
- }
37
- default: {
38
- return [{ first, tail }];
39
- }
40
- }
41
- };
42
- /** @type {(items: list.List<string>) => OptionList} */
43
- const normItems = items => {
44
- const result = fold(normItemsOp)([list.empty])(items);
45
- return result === null ? result : [reverse(result[0])];
46
- };
47
- const firstNull = first(null);
48
- /** @type {(local: string) => (path: string) => LocalPath|null} */
49
- export const parseLocal = local => {
50
- /** @type {(path: string) => readonly[boolean, boolean, list.List<string>]} */
51
- const fSeq = path => {
52
- const pathSeq = split(path);
53
- const dir = [null, '', '.', '..'].includes(pathSeq[pathSeq.length - 1]);
54
- return /** @type {readonly (string|null)[]} */ (['.', '..']).includes(firstNull(pathSeq)) ?
55
- [false, dir, flat([split(local), pathSeq])] :
56
- [true, dir, pathSeq];
57
- };
58
- // /** @type {(path: string) => LocalPath|null} */
59
- return path => {
60
- const [external, dir, items] = fSeq(path);
61
- const n = normItems(items);
62
- if (n === null) {
63
- return null;
64
- }
65
- return {
66
- external,
67
- dir,
68
- items: toArray(n[0])
69
- };
70
- };
71
- };
72
- /** @typedef {readonly[string, list.List<string>]} IdPath */
73
- /** @type {(prior: readonly[string|null, list.List<string>]) => list.Thunk<IdPath>} */
74
- const variants = prior => () => {
75
- const [a, b] = prior;
76
- const r = next(b);
77
- if (r === list.empty) {
78
- return list.empty;
79
- }
80
- const { first, tail } = r;
81
- /** @type {IdPath} */
82
- const n = [a === null ? first : `${a}/${first}`, tail];
83
- return { first: n, tail: variants(n) };
84
- };
85
- /** @type {(d: (local: string) => string|null) => (p: IdPath) => IdPath|null} */
86
- const mapDependency = d => ([external, internal]) => {
87
- const id = d(external);
88
- return id === null ? null : [id, internal];
89
- };
90
- /**
91
- * @typedef {{
92
- * readonly package: string,
93
- * readonly items: Items,
94
- * readonly dir: boolean,
95
- * }} Path
96
- */
97
- /**
98
- * @type {(d: (local: string) => string|null) =>
99
- * (dir: boolean) =>
100
- * (items: list.List<string>) =>
101
- * Path|null}
102
- */
103
- export const parseGlobal = dependencies => {
104
- const fMap = filterMap(mapDependency(dependencies));
105
- return dir => items => {
106
- const v = variants([null, items]);
107
- const r = firstNull(fMap(v));
108
- if (r === null) {
109
- return null;
110
- }
111
- return { package: r[0], items: toArray(r[1]), dir };
112
- };
113
- };
114
- /**
115
- * @type {(packageId: string) =>
116
- * (dependencies: (local: string) => string|null) =>
117
- * (local: string) =>
118
- * (path: string) =>
119
- * Path|null }
120
- */
121
- export const parse = packageId => dependencies => {
122
- const pg = parseGlobal(dependencies);
123
- return local => path => {
124
- const parsed = parseLocal(local)(path);
125
- if (parsed === null) {
126
- return null;
127
- }
128
- const { external, dir, items } = parsed;
129
- if (!external) {
130
- return { package: packageId, items, dir };
131
- }
132
- return pg(dir)(items);
133
- };
134
- };
135
- /**
136
- * @typedef {{
137
- * readonly id: Module.Id
138
- * readonly source: string
139
- * }} FoundResult
140
- */
141
- /** @typedef {FoundResult| null} Result */
142
- /**
143
- * @type {(packageGet: Package.Get) =>
144
- * (moduleId: Module.Id) =>
145
- * (path: string) =>
146
- * Result
147
- * }
148
- */
149
- export const parseAndFind = packageGet => moduleId => path => {
150
- const currentPack = packageGet(moduleId.package);
151
- if (currentPack === null) {
152
- return null;
153
- }
154
- const p = parse(moduleId.package)(currentPack.dependency)(moduleId.path.join('/'))(path);
155
- if (p === null) {
156
- return null;
157
- }
158
- const pack = packageGet(p.package);
159
- if (pack === null) {
160
- return null;
161
- }
162
- /** @type {(file: string) => FoundResult | null } */
163
- const tryFile = file => {
164
- const source = pack.file(file);
165
- return source === null ? null : { id: { package: p.package, path: file.split('/') }, source };
166
- };
167
- const file = p.items.join('/');
168
- const indexJs = join('/')(concat(p.items)(['index.js']));
169
- const fileList = p.dir || isEmpty(p.items) ? [indexJs] : [file, `${file}.js`, indexJs];
170
- return firstNull(filterMap(tryFile)(fileList));
171
- };
@@ -1,25 +0,0 @@
1
- declare const _default: {
2
- 0: () => void;
3
- 1: () => void;
4
- 2: () => void;
5
- 3: () => void;
6
- 4: () => void;
7
- 5: () => void;
8
- 6: () => void;
9
- 7: () => void;
10
- 8: {
11
- 0: () => void;
12
- 1: () => void;
13
- 2: () => void;
14
- 3: () => void;
15
- 4: () => void;
16
- 5: () => void;
17
- 6: () => void;
18
- 7: () => void;
19
- };
20
- 9: () => void;
21
- 10: () => void;
22
- 11: () => void;
23
- 12: () => void;
24
- };
25
- export default _default;
@@ -1,231 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- import * as dev from '../../dev/module.f.mjs';
3
- const { todo } = dev;
4
- import * as json from '../../json/module.f.mjs';
5
- import * as f from '../../types/function/module.f.mjs';
6
- const { identity } = f;
7
- import * as object from '../../types/object/module.f.mjs';
8
- const { at } = object;
9
- import * as Package from '../package/module.f.mjs';
10
- /** @type {<T>(o: object.Map<T>) => (s: string) => T|null} */
11
- const i = o => s => at(s)(o);
12
- /** @type {(g: json.Unknown) => string} */
13
- const stringify = json.stringify(identity);
14
- export default {
15
- 0: () => {
16
- const result = _.parseLocal('')('./a');
17
- if (stringify(result) !== '{"external":false,"dir":false,"items":["a"]}') {
18
- throw result;
19
- }
20
- },
21
- 1: () => {
22
- const result = _.parseLocal('')('./a/');
23
- if (stringify(result) !== '{"external":false,"dir":true,"items":["a"]}') {
24
- throw result;
25
- }
26
- },
27
- 2: () => {
28
- const result = _.parseLocal('')('..');
29
- if (result !== null) {
30
- throw result;
31
- }
32
- },
33
- 3: () => {
34
- const result = _.parseLocal('a')('');
35
- if (stringify(result) !== '{"external":true,"dir":true,"items":[]}') {
36
- throw result;
37
- }
38
- },
39
- 4: () => {
40
- const result = _.parseLocal('')('./a/b/.././c');
41
- if (stringify(result) !== '{"external":false,"dir":false,"items":["a","c"]}') {
42
- throw result;
43
- }
44
- },
45
- 5: () => {
46
- const result = _.parseLocal('x/r')('./a/b/.././c');
47
- if (stringify(result) !== '{"external":false,"dir":false,"items":["x","r","a","c"]}') {
48
- throw result;
49
- }
50
- },
51
- 6: () => {
52
- const result = _.parseLocal('a')('a/b/.././c');
53
- if (stringify(result) !== '{"external":true,"dir":false,"items":["a","c"]}') {
54
- throw result;
55
- }
56
- },
57
- 7: () => {
58
- const result = _.parseLocal('')('./x/..');
59
- if (stringify(result) !== '{"external":false,"dir":true,"items":[]}') {
60
- throw result;
61
- }
62
- },
63
- 8: {
64
- 0: () => { if (_.parseGlobal(() => null)(false)(['a', 'b']) !== null) {
65
- throw 'error';
66
- } },
67
- 1: () => { if (_.parseGlobal(() => null)(false)(['b']) !== null) {
68
- throw 'error';
69
- } },
70
- 2: () => { if (_.parseGlobal(i({ b: 'x' }))(false)(['d']) !== null) {
71
- throw 'error';
72
- } },
73
- 3: () => {
74
- const result = stringify(_.parseGlobal(i({ b: 'x' }))(false)(['b']));
75
- if (result !== '{"package":"x","items":[],"dir":false}') {
76
- throw result;
77
- }
78
- },
79
- 4: () => { if (_.parseGlobal(i({ 'b/r': 'x' }))(false)(['b']) !== null) {
80
- throw 'error';
81
- } },
82
- 5: () => {
83
- const result = stringify(_.parseGlobal(i({ 'b/r': 'x' }))(false)(['b', 'r']));
84
- if (result !== '{"package":"x","items":[],"dir":false}') {
85
- throw result;
86
- }
87
- },
88
- 6: () => {
89
- const result = stringify(_.parseGlobal(i({ 'b/r': 'x' }))(false)(['b', 'r', 'd', 't']));
90
- if (result !== '{"package":"x","items":["d","t"],"dir":false}') {
91
- throw result;
92
- }
93
- },
94
- 7: () => {
95
- const result = stringify(_.parseGlobal(i({ 'b/r': 'x' }))(true)(['b', 'r', 'd', 't']));
96
- if (result !== '{"package":"x","items":["d","t"],"dir":true}') {
97
- throw result;
98
- }
99
- },
100
- },
101
- 9: () => {
102
- /** @type {object.Map<Package.Package>} */
103
- const packages = {
104
- '': {
105
- dependency: () => todo(),
106
- file: i({ 'a/c': 'return "a/c"' }),
107
- }
108
- };
109
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('../c'));
110
- if (result !== '{"id":{"package":"","path":["a","c"]},"source":"return \\"a/c\\""}') {
111
- throw result;
112
- }
113
- },
114
- 10: () => {
115
- /** @type {object.Map<Package.Package>} */
116
- const packages = {
117
- '': {
118
- dependency: x => {
119
- const path = `node_modules/${x}`;
120
- return at(path)(packages) !== null ? path : null;
121
- },
122
- file: i({
123
- 'index.js': 'return "index.js"',
124
- 'x/index.js': 'return "x/index.js"',
125
- 'x.js': 'return "x.js"',
126
- })
127
- },
128
- 'node_modules/z': {
129
- dependency: () => todo(),
130
- file: i({ 'a/c/index.js': 'return "a/c"' }),
131
- }
132
- };
133
- {
134
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('z/a/c'));
135
- if (result !== '{"id":{"package":"node_modules/z","path":["a","c","index.js"]},"source":"return \\"a/c\\""}') {
136
- throw result;
137
- }
138
- }
139
- {
140
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('../..'));
141
- if (result !== '{"id":{"package":"","path":["index.js"]},"source":"return \\"index.js\\""}') {
142
- throw result;
143
- }
144
- }
145
- {
146
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: [] })('./x'));
147
- if (result !== '{"id":{"package":"","path":["x.js"]},"source":"return \\"x.js\\""}') {
148
- throw result;
149
- }
150
- }
151
- {
152
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: [] })('./x.js'));
153
- if (result !== '{"id":{"package":"","path":["x.js"]},"source":"return \\"x.js\\""}') {
154
- throw result;
155
- }
156
- }
157
- {
158
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: [] })('./x/'));
159
- if (result !== '{"id":{"package":"","path":["x","index.js"]},"source":"return \\"x/index.js\\""}') {
160
- throw result;
161
- }
162
- }
163
- {
164
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['x', 'a'] })('../'));
165
- if (result !== '{"id":{"package":"","path":["x","index.js"]},"source":"return \\"x/index.js\\""}') {
166
- throw result;
167
- }
168
- }
169
- {
170
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['x', 'a'] })('..'));
171
- if (result !== '{"id":{"package":"","path":["x","index.js"]},"source":"return \\"x/index.js\\""}') {
172
- throw result;
173
- }
174
- }
175
- },
176
- 11: () => {
177
- /** @type {object.Map<Package.Package>} */
178
- const packages = {
179
- '': {
180
- dependency: x => {
181
- const path = `node_modules/${x}`;
182
- return at(path)(packages) !== null ? path : null;
183
- },
184
- file: todo
185
- },
186
- 'node_modules/z/a': {
187
- dependency: () => todo(),
188
- file: i({
189
- 'c/index.js': 'return "c/index.js"',
190
- 'c.js': 'return "c.js"'
191
- }),
192
- }
193
- };
194
- {
195
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('z/a/c'));
196
- if (result !== '{"id":{"package":"node_modules/z/a","path":["c.js"]},"source":"return \\"c.js\\""}') {
197
- throw result;
198
- }
199
- }
200
- {
201
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('z/a/c/'));
202
- if (result !== '{"id":{"package":"node_modules/z/a","path":["c","index.js"]},"source":"return \\"c/index.js\\""}') {
203
- throw result;
204
- }
205
- }
206
- },
207
- 12: () => {
208
- /** @type {object.Map<Package.Package>} */
209
- const packages = {
210
- '': {
211
- dependency: x => {
212
- const path = `node_modules/${x}`;
213
- return at(path)(packages) !== null ? path : null;
214
- },
215
- file: todo
216
- },
217
- 'node_modules/z/a/c': {
218
- dependency: () => todo(),
219
- file: i({
220
- '': 'throw',
221
- '.js': 'throw',
222
- 'index.js': 'return "a/c"'
223
- }),
224
- }
225
- };
226
- const result = stringify(_.parseAndFind(i(packages))({ package: '', path: ['a', 'b'] })('z/a/c'));
227
- if (result !== '{"id":{"package":"node_modules/z/a/c","path":["index.js"]},"source":"return \\"a/c\\""}') {
228
- throw result;
229
- }
230
- }
231
- };
@@ -1,8 +0,0 @@
1
- declare namespace _default {
2
- function ok(): void;
3
- function compilationError(): void;
4
- function compilationErrorStrict(): void;
5
- function runtimeError(): void;
6
- function test(): void;
7
- }
8
- export default _default;
@@ -1,87 +0,0 @@
1
- import * as _ from './module.mjs';
2
- import * as Run from './module/function/module.f.mjs';
3
- export default {
4
- ok: () => {
5
- const source = 'module.exports = "Hello world!"';
6
- const m = _.compile(source);
7
- if (m[0] !== 'ok') {
8
- throw m;
9
- }
10
- const [result] = m[1](() => { throw 0; })(null);
11
- if (result[0] !== 'ok') {
12
- throw result;
13
- }
14
- if (result[1] !== 'Hello world!') {
15
- throw result;
16
- }
17
- },
18
- compilationError: () => {
19
- const source = '+';
20
- const m = _.compile(source);
21
- if (m[0] !== 'error') {
22
- throw m;
23
- }
24
- },
25
- compilationErrorStrict: () => {
26
- const source = 'const x = 04';
27
- const m = _.compile(source);
28
- if (m[0] !== 'error') {
29
- throw m;
30
- }
31
- },
32
- runtimeError: () => {
33
- const source = 'a = 5';
34
- const m = _.compile(source);
35
- if (m[0] !== 'ok') {
36
- throw m;
37
- }
38
- const [result] = m[1](() => { throw 0; })(null);
39
- if (result[0] !== 'error') {
40
- throw result;
41
- }
42
- },
43
- test: () => {
44
- const depSource = 'module.exports = 137';
45
- const d = _.compile(depSource);
46
- if (d[0] !== 'ok') {
47
- throw d;
48
- }
49
- /** @type {Run.Require<number>} */
50
- const req = path => prior => {
51
- if (path !== 'm') {
52
- throw path;
53
- }
54
- return d[1](req)(prior + 1);
55
- };
56
- let info = 0;
57
- {
58
- const source = 'module.exports = require("m") + 42';
59
- const m = _.compile(source);
60
- if (m[0] !== 'ok') {
61
- throw m;
62
- }
63
- const [result, newInfo] = m[1](req)(info);
64
- if (result[0] !== 'ok') {
65
- throw result;
66
- }
67
- if (result[1] !== 179) {
68
- throw result;
69
- }
70
- info = newInfo;
71
- }
72
- {
73
- const source = 'module.exports = require("x") + 42';
74
- const m = _.compile(source);
75
- if (m[0] !== 'ok') {
76
- throw m;
77
- }
78
- const [result, infox] = m[1](req)(info);
79
- if (result[0] !== 'error') {
80
- throw result;
81
- }
82
- if (infox !== 1) {
83
- throw info;
84
- }
85
- }
86
- }
87
- };
@@ -1,67 +0,0 @@
1
- /** @typedef {Operator.Reduce<bigint>} Reduce */
2
- /** @typedef {Operator.Unary<bigint, bigint>} Unary*/
3
- /**
4
- * A type representing a prime field and its associated operations.
5
- *
6
- * @typedef {{
7
- * readonly p: bigint
8
- * readonly middle: bigint
9
- * readonly max: bigint
10
- * readonly neg: Unary
11
- * readonly sub: Reduce
12
- * readonly add: Reduce
13
- * readonly abs: Unary
14
- * readonly mul: Reduce
15
- * readonly reciprocal: Unary
16
- * readonly div: Reduce
17
- * readonly pow: Reduce
18
- * readonly pow2: Unary
19
- * readonly pow3: Unary
20
- * }} PrimeField
21
- */
22
- /**
23
- * Creates a prime field with the specified prime modulus and associated operations.
24
- *
25
- * @param p - A prime number to define the field.
26
- * @returns The prime field object.
27
- *
28
- * @type {(p: bigint) => PrimeField}
29
- */
30
- export const prime_field: (p: bigint) => PrimeField;
31
- /**
32
- * Computes the square root of a number in a prime field.
33
- *
34
- * @throws If the prime modulus `p` does not satisfy `p % 4 == 3`.
35
- *
36
- * @example
37
- *
38
- * ```js
39
- * const field = prime_field(7n);
40
- * const root = sqrt(field)(4n);
41
- * if (root !== 2n) { throw root }
42
- * ```
43
- *
44
- * @type {(f: PrimeField) => (a: bigint) => bigint|null}
45
- */
46
- export const sqrt: (f: PrimeField) => (a: bigint) => bigint | null;
47
- export type Reduce = Operator.Reduce<bigint>;
48
- export type Unary = Operator.Unary<bigint, bigint>;
49
- /**
50
- * A type representing a prime field and its associated operations.
51
- */
52
- export type PrimeField = {
53
- readonly p: bigint;
54
- readonly middle: bigint;
55
- readonly max: bigint;
56
- readonly neg: Unary;
57
- readonly sub: Reduce;
58
- readonly add: Reduce;
59
- readonly abs: Unary;
60
- readonly mul: Reduce;
61
- readonly reciprocal: Unary;
62
- readonly div: Reduce;
63
- readonly pow: Reduce;
64
- readonly pow2: Unary;
65
- readonly pow3: Unary;
66
- };
67
- import * as Operator from '../../types/function/operator/module.f.mjs';