functionalscript 0.2.6 → 0.3.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 (428) hide show
  1. package/.github/workflows/ci.yml +20 -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} +66 -61
  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,3 +1,4 @@
1
+ import { existsSync } from 'node:fs'
1
2
  import { readdir, writeFile, readFile } from 'node:fs/promises'
2
3
 
3
4
  /**
@@ -20,73 +21,74 @@ import { readdir, writeFile, readFile } from 'node:fs/promises'
20
21
  * }} FsPromises
21
22
  */
22
23
 
23
- /**
24
- * @typedef {{
25
- * readonly default?: unknown
26
- * }} Module
27
- */
24
+ type Module = {
25
+ readonly default?: unknown
26
+ }
28
27
 
29
28
  /** @typedef {(name: string) => unknown} Require */
30
29
 
31
- /**
32
- * @typedef {{
33
- * readonly[k in string]: unknown
34
- * }} UnknownMap
35
- */
30
+ type UnknownMap = {
31
+ readonly[k in string]: unknown
32
+ }
36
33
 
37
- /**
38
- * @template T
39
- * @typedef {readonly[string, T]} Entry
40
- */
34
+ type Entry<T> = readonly[string, T]
41
35
 
42
- /** @type {(a: Entry<unknown>, b: Entry<unknown>) => number} */
43
- const cmp = ([a], [b]) => a < b ? -1 : a > b ? 1 : 0
36
+ const cmp
37
+ : (a: Entry<unknown>, b: Entry<unknown>) => number
38
+ = ([a], [b]) => a < b ? -1 : a > b ? 1 : 0
44
39
 
45
- /**
46
- * @typedef {{
47
- * [k in string]: Module
48
- * }} MutableModuleMap
49
- */
40
+ type MutableModuleMap = {
41
+ [k in string]: Module
42
+ }
50
43
 
51
- /**
52
- * @typedef {{
53
- * readonly[k in string]: Module
54
- * }} ModuleMap
55
- */
44
+ type ModuleMap = {
45
+ readonly[k in string]: Module
46
+ }
56
47
 
57
- /** @type {(v: readonly string[]) => (dif: number) => readonly string[]} */
58
- const remove_tail = v => dif => v.slice(0, v.length - dif)
48
+ const remove_tail
49
+ : (v: readonly string[]) => (dif: number) => readonly string[]
50
+ = v => dif => v.slice(0, v.length - dif)
59
51
 
60
- /** @type {any} */
61
- const self = globalThis
52
+ const self: any = globalThis
62
53
 
63
- /** @type {(code: number) => never} */
64
- export const exit = self.Deno ? self.Deno.exit : process.exit
54
+ export const exit
55
+ : (code: number) => never
56
+ = self.Deno ? self.Deno.exit : process.exit
65
57
 
66
- /** @type {(v: string) => string|undefined} */
67
- export const env =
68
- self.Deno ? self.Deno.env.get :
58
+ export const env
59
+ : (v: string) => string|undefined
60
+ = self.Deno ? self.Deno.env.get :
69
61
  a => {
70
62
  const r = Object.getOwnPropertyDescriptor(process.env, a)
71
- return r === void 0 ? void 0 :
63
+ return r === undefined ? undefined :
72
64
  typeof r.get === 'function' ? r.get() :
73
65
  r.value
74
66
  }
75
67
 
76
68
  export const loadModuleMap = async () => {
77
- /** @type {() => Promise<UnknownMap>} */
78
- const load = async () => {
79
- /** @type {(readonly[string, unknown])[]} */
80
- const map = []
81
- /** @type {(path: string) => Promise<void>} */
82
- const f = async p => {
69
+ const load
70
+ : () => Promise<UnknownMap>
71
+ = async () => {
72
+ const map
73
+ : (readonly[string, unknown])[]
74
+ = []
75
+ /** @type {} */
76
+ const f
77
+ : (path: string) => Promise<void>
78
+ = async p => {
83
79
  for (const i of await readdir(p, { withFileTypes: true })) {
84
80
  const { name } = i
85
81
  if (!name.startsWith('.')) {
86
82
  const file = `${p}/${name}`
87
83
  if (i.isDirectory()) {
88
84
  await f(file)
89
- } else if (name.endsWith('.f.mjs') || name.endsWith('.f.js')) {
85
+ continue
86
+ }
87
+ if (name.endsWith('.f.mjs') ||
88
+ name.endsWith('.f.js') ||
89
+ (name.endsWith('.f.ts') && !existsSync(file.substring(0, file.length - 3) + '.js'))
90
+ ) {
91
+ console.log(file)
90
92
  const source = await import(`../${file}`)
91
93
  map.push([file, source.default])
92
94
  }
@@ -100,12 +102,15 @@ export const loadModuleMap = async () => {
100
102
 
101
103
  const map = await load()
102
104
 
103
- /** @type {() => ModuleMap} */
104
- const build = () => {
105
- /** @type {MutableModuleMap} */
106
- const d = {}
107
- /** @type {(base: readonly string[]) => (k: string) => readonly[string, Module]} */
108
- const getModule = base => k => {
105
+ const build
106
+ : () => ModuleMap
107
+ = () => {
108
+ const d
109
+ : MutableModuleMap
110
+ = {}
111
+ const getModule
112
+ : (base: readonly string[]) => (k: string) => readonly[string, Module]
113
+ = base => k => {
109
114
  const relativePath = k.split('/')
110
115
  const dif = relativePath.filter(v => v === '..').length
111
116
  const path = [remove_tail(base)(dif), relativePath.filter(v => !['..', '.'].includes(v))]
@@ -136,14 +141,13 @@ export const loadModuleMap = async () => {
136
141
  return build()
137
142
  }
138
143
 
139
- /**
140
- * @typedef {{
141
- * readonly[k in string]: string | FolderMap
142
- * }} FolderMap
143
- */
144
+ type FolderMap = {
145
+ readonly[k in string]: string | FolderMap
146
+ }
144
147
 
145
- /** @type {(m: FolderMap) => (s: readonly string[]) => FolderMap } */
146
- const folderMapAdd = m => s => {
148
+ const folderMapAdd
149
+ : (m: FolderMap) => (s: readonly string[]) => FolderMap
150
+ = m => s => {
147
151
  const [first, ...rest] = s
148
152
  const firstResult = m[first]
149
153
  return typeof firstResult === 'string'
@@ -158,8 +162,9 @@ const folderMapAdd = m => s => {
158
162
 
159
163
  const indent = ' '
160
164
 
161
- /** @type {(i: string) => (p: string) => (m: FolderMap) => readonly[string,string]} */
162
- const codeAdd = i => p => m => {
165
+ const codeAdd
166
+ : (i: string) => (p: string) => (m: FolderMap) => readonly[string,string]
167
+ = i => p => m => {
163
168
  let result = ''
164
169
  let im = ''
165
170
  for (const [k, v] of Object.entries(m)) {
@@ -179,11 +184,11 @@ const codeAdd = i => p => m => {
179
184
  }
180
185
 
181
186
  export const index = async () => {
182
- const jj = './jsr.json'
183
- const n = '/module.f.mjs'
187
+ const jj = './deno.json'
188
+ const n = '/module.f.ts'
184
189
  const jsr_json = JSON.parse(await readFile(jj, { encoding: 'utf8' }))
185
190
  const list = Object.keys(await loadModuleMap()).filter(v => v.endsWith(n))
186
- const exportsA = list.filter(v => !v.startsWith('./out')).map(v => [v.replace(n, ''), `./out/${v.substring(2)}`])
191
+ const exportsA = list.filter(v => !v.startsWith('./out')).map(v => [v.replace(n, ''), `./${v.substring(2)}`])
187
192
  const exports = Object.fromEntries(exportsA)
188
193
  await writeFile(
189
194
  jj,
@@ -1,75 +1,58 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as list from '../../types/list/module.f.mjs'
1
+ import * as list from '../../types/list/module.f.ts'
3
2
  const { fold } = list
4
- import * as sgr from '../../text/sgr/module.f.mjs'
3
+ import * as sgr from '../../text/sgr/module.f.ts'
5
4
  const { reset, fgGreen, fgRed, bold } = sgr.codes
6
- import * as Result from '../../types/result/module.f.mjs'
5
+ import * as Result from '../../types/result/module.f.ts'
7
6
 
8
- /**
9
- * @typedef {{
10
- * readonly[k in string]?: Module
11
- * }} DependencyMap
12
- */
7
+ type DependencyMap = {
8
+ readonly[k in string]?: Module
9
+ }
13
10
 
14
- /**
15
- * @typedef {{
16
- * readonly default?: unknown
17
- * }} Module
18
- */
11
+ type Module = {
12
+ readonly default?: unknown
13
+ }
19
14
 
20
- /**
21
- * @typedef {{
22
- * readonly[k in string]: Module
23
- * }} ModuleMap
24
- */
15
+ type ModuleMap = {
16
+ readonly[k in string]: Module
17
+ }
25
18
 
26
- /**
27
- * @template T
28
- * @typedef {(v: string) => (state: T) => T} Log
29
- */
19
+ type Log<T> = (v: string) => (state: T) => T
30
20
 
31
- /**
32
- * @template T
33
- * @typedef {<R>(f: () => R) => (state: T) => readonly[R, number, T]} Measure
34
- */
21
+ type Measure<T> = <R>(f: () => R) => (state: T) => readonly[R, number, T]
35
22
 
36
- /**
37
- * @template T
38
- * @typedef {{
39
- * readonly moduleMap: ModuleMap,
40
- * readonly log: Log<T>,
41
- * readonly error: Log<T>,
42
- * readonly measure: Measure<T>,
43
- * readonly state: T,
44
- * readonly tryCatch: <R>(f: () => R) => Result.Result<R, unknown>,
45
- * readonly env: (n: string) => string|undefined
46
- * }} Input
47
- */
23
+ type Input<T> = {
24
+ readonly moduleMap: ModuleMap,
25
+ readonly log: Log<T>,
26
+ readonly error: Log<T>,
27
+ readonly measure: Measure<T>,
28
+ readonly state: T,
29
+ readonly tryCatch: <R>(f: () => R) => Result.Result<R, unknown>,
30
+ readonly env: (n: string) => string|undefined
31
+ }
48
32
 
49
- /** @type {(s: string) => boolean} */
50
- const isTest = s => s.endsWith('test.f.mjs') || s.endsWith('test.f.js')
33
+ const isTest
34
+ : (s: string) => boolean
35
+ = s => s.endsWith('test.f.mjs') || s.endsWith('test.f.js') || s.endsWith('test.f.ts')
51
36
 
52
- /**
53
- * @typedef {{
54
- * readonly time: number,
55
- * readonly pass: number,
56
- * readonly fail: number,
57
- * }} TestState
58
- */
37
+ type TestState = {
38
+ readonly time: number,
39
+ readonly pass: number,
40
+ readonly fail: number,
41
+ }
59
42
 
60
- /** @type {(time: number) => (testState: TestState) => TestState} */
61
- const addPass = delta => ts => ({ ...ts, time: ts.time + delta, pass: ts.pass + 1 })
43
+ const addPass
44
+ : (time: number) => (testState: TestState) => TestState
45
+ = delta => ts => ({ ...ts, time: ts.time + delta, pass: ts.pass + 1 })
62
46
 
63
- /** @type {(time: number) => (testState: TestState) => TestState} */
64
- const addFail = delta => ts => ({ ...ts, time: ts.time + delta, fail: ts.fail + 1 })
47
+ const addFail
48
+ : (time: number) => (testState: TestState) => TestState
49
+ = delta => ts => ({ ...ts, time: ts.time + delta, fail: ts.fail + 1 })
65
50
 
66
- /**
67
- * @template T
68
- * @typedef {readonly[TestState, T]} FullState
69
- */
51
+ type FullState<T> = readonly[TestState, T]
70
52
 
71
- /** @type {(a: number) => string} */
72
- const timeFormat = a => {
53
+ const timeFormat
54
+ : (a: number) => string
55
+ = a => {
73
56
  const y = Math.round(a * 10_000).toString()
74
57
  const yl = 5 - y.length
75
58
  const x = '0'.repeat(yl > 0 ? yl : 0) + y
@@ -79,20 +62,22 @@ const timeFormat = a => {
79
62
  return `${b}.${e} ms`
80
63
  }
81
64
 
82
- /** @type {<T>(input: Input<T>) => readonly[number, T]} */
83
- export default input => {
65
+ export default <T>(input: Input<T>): readonly[number, T] => {
84
66
  let { moduleMap, log, error, measure, tryCatch, env, state } = input
85
67
  const isGitHub = env('GITHUB_ACTION') !== void 0
86
- /** @typedef {input extends Input<infer T> ? T : never} T */
87
- /** @type {(k: readonly[string, Module]) => (fs: FullState<T>) => FullState<T>} */
88
- const f = ([k, v]) => {
89
- /** @type {(i: string) => (v: unknown) => (fs: FullState<T>) => FullState<T>} */
90
- const test = i => v => ([ts, state]) => {
68
+ // type T = input extends Input<infer T> ? T : never
69
+ /** @type {} */
70
+ const f
71
+ : (k: readonly[string, Module]) => (fs: FullState<T>) => FullState<T>
72
+ = ([k, v]) => {
73
+ const test
74
+ : (i: string) => (v: unknown) => (fs: FullState<T>) => FullState<T>
75
+ = i => v => ([ts, state]) => {
91
76
  const next = test(`${i}| `)
92
77
  switch (typeof v) {
93
78
  case 'function': {
94
79
  if (v.length === 0) {
95
- const [[s, r], delta, state0] = measure(() => tryCatch(/** @type {() => unknown} */(v)))(state)
80
+ const [[s, r], delta, state0] = measure(() => tryCatch(v as () => unknown))(state)
96
81
  state = state0
97
82
  if (s === 'error') {
98
83
  ts = addFail(delta)(ts)
@@ -114,8 +99,9 @@ export default input => {
114
99
  }
115
100
  case 'object': {
116
101
  if (v !== null) {
117
- /** @type {(k: readonly[string|number, unknown]) => (fs: FullState<T>) => FullState<T>} */
118
- const f = ([k, v]) => ([time, state]) => {
102
+ const f
103
+ : (k: readonly[string|number, unknown]) => (fs: FullState<T>) => FullState<T>
104
+ = ([k, v]) => ([time, state]) => {
119
105
  state = log(`${i}${k}:`)(state);
120
106
  [time, state] = next(v)([time, state])
121
107
  return [time, state]
@@ -138,8 +124,9 @@ export default input => {
138
124
  return [ts, state]
139
125
  }
140
126
  }
141
- /** @type {TestState} */
142
- let ts = { time: 0, pass: 0, fail: 0 };
127
+ let ts
128
+ : TestState
129
+ = { time: 0, pass: 0, fail: 0 };
143
130
  [ts, state] = fold(f)([ts, state])(Object.entries(moduleMap))
144
131
  const fgFail = ts.fail === 0 ? fgGreen : fgRed
145
132
  state = log(`${bold}Number of tests: pass: ${fgGreen}${ts.pass}${reset}${bold}, fail: ${fgFail}${ts.fail}${reset}${bold}, total: ${ts.pass + ts.fail}${reset}`)(state)
@@ -1,8 +1,10 @@
1
- /** @type {() => never} */
2
- const assert = () => { throw 'assert' }
1
+ const assert
2
+ : () => never
3
+ = () => { throw 'assert' }
3
4
 
4
- /** @type {(_: boolean) => void} */
5
- const assert_if = c => { if (c) { throw 'assert_if' } }
5
+ const assert_if
6
+ : (_: boolean) => void
7
+ = c => { if (c) { throw 'assert_if' } }
6
8
 
7
9
  export default {
8
10
  ctor: () => {
@@ -53,4 +55,4 @@ export default {
53
55
  const c = Object.getOwnPropertyDescriptor(x, 'constructor')
54
56
  const a = Object.getOwnPropertyDescriptor(x, 'a')
55
57
  }
56
- }
58
+ }
package/dev/test.ts ADDED
@@ -0,0 +1,53 @@
1
+ import { loadModuleMap, exit, env } from './module.ts'
2
+ import test from './test/module.f.ts'
3
+
4
+ const anyLog
5
+ : (f: (s: string) => void) => (s: string) => <T>(_: T) => T
6
+ = f => s => state => {
7
+ f(s)
8
+ return state
9
+ }
10
+
11
+ type Ok<T> = readonly['ok', T]
12
+
13
+ type Error<E> = readonly['error', E]
14
+
15
+ type Result<T, E> = Ok<T>|Error<E>
16
+
17
+ const tryCatch
18
+ : <T>(f: () => T) => Result<T, unknown>
19
+ = f => {
20
+ // `try catch` is not allowed in FunctionalScript.
21
+ try {
22
+ return ['ok', f()]
23
+ } catch (e) {
24
+ return ['error', e]
25
+ }
26
+ }
27
+
28
+ const measure
29
+ : <R>(f: () => R) => <T>(state: T) => readonly[R, number, T]
30
+ = f => state => {
31
+ const b = performance.now()
32
+ const r = f()
33
+ const e = performance.now()
34
+ return [r, e - b, state]
35
+ }
36
+
37
+ // test runner.
38
+ const main = async() => {
39
+ const moduleMap = await loadModuleMap()
40
+
41
+ const r = test({
42
+ moduleMap,
43
+ log: anyLog(console.log),
44
+ error: anyLog(console.error),
45
+ measure,
46
+ tryCatch,
47
+ env,
48
+ state: void 0,
49
+ })
50
+ exit(r[0])
51
+ }
52
+
53
+ main()
@@ -1,55 +1,55 @@
1
- // @ts-self-types="./module.f.d.mts"
2
-
3
- import * as list from '../types/list/module.f.mjs'
1
+ import * as list from '../types/list/module.f.ts'
4
2
  const { flat, map } = list
5
- import * as string from '../types/string/module.f.mjs'
3
+ import * as string from '../types/string/module.f.ts'
6
4
  const { concat } = string
7
- import * as O from '../types/object/module.f.mjs'
8
- import * as f from '../types/function/module.f.mjs'
5
+ import * as O from '../types/object/module.f.ts'
6
+ import * as f from '../types/function/module.f.ts'
9
7
  const { compose, fn } = f
10
8
  const { entries } = Object
11
- import * as bi from '../types/bigint/module.f.mjs'
9
+ import * as bi from '../types/bigint/module.f.ts'
12
10
  const { serialize: bigintSerialize } = bi
13
- import * as j from '../json/serializer/module.f.mjs'
11
+ import * as j from '../json/serializer/module.f.ts'
14
12
  const { objectWrap, arrayWrap, stringSerialize, numberSerialize, nullSerialize, boolSerialize } = j
13
+ import * as djs from './serializer/module.f.ts'
14
+ const { undefinedSerialize } = djs
15
15
 
16
- /**
17
- * @typedef {{
18
- * readonly [k in string]: Unknown
19
- * }} Object
20
- */
16
+ type Object = {
17
+ readonly [k in string]: Unknown
18
+ }
21
19
 
22
- /** @typedef {readonly Unknown[]} Array */
20
+ type Array = readonly Unknown[]
23
21
 
24
- /** @typedef {Object|boolean|string|number|null|Array|bigint|undefined} Unknown */
22
+ type Unknown = Object|boolean|string|number|null|Array|bigint|undefined
25
23
 
26
24
  const colon = [':']
27
25
 
28
- const undefinedSerialize = ['undefined']
29
-
30
- /** @typedef {O.Entry<Unknown>} Entry*/
26
+ type Entry = O.Entry<Unknown>
31
27
 
32
- /** @typedef {(list.List<Entry>)} Entries */
28
+ type Entries = list.List<Entry>
33
29
 
34
- /** @typedef {(entries: Entries) => Entries} MapEntries */
30
+ type MapEntries = (entries: Entries) => Entries
35
31
 
36
- /** @type {(mapEntries: MapEntries) => (value: Unknown) => list.List<string>} */
37
- export const serialize = sort => {
38
- /** @type {(kv: readonly[string, Unknown]) => list.List<string>} */
39
- const propertySerialize = ([k, v]) => flat([
32
+ export const serialize
33
+ : (mapEntries: MapEntries) => (value: Unknown) => list.List<string>
34
+ = sort => {
35
+ const propertySerialize
36
+ : (kv: readonly[string, Unknown]) => list.List<string>
37
+ = ([k, v]) => flat([
40
38
  stringSerialize(k),
41
39
  colon,
42
40
  f(v)
43
41
  ])
44
42
  const mapPropertySerialize = map(propertySerialize)
45
- /** @type {(object: Object) => list.List<string>} */
46
- const objectSerialize = fn(entries)
43
+ const objectSerialize
44
+ : (object: Object) => list.List<string>
45
+ = fn(entries)
47
46
  .then(sort)
48
47
  .then(mapPropertySerialize)
49
48
  .then(objectWrap)
50
49
  .result
51
- /** @type {(value: Unknown) => list.List<string>} */
52
- const f = value => {
50
+ const f
51
+ : (value: Unknown) => list.List<string>
52
+ = value => {
53
53
  switch (typeof value) {
54
54
  case 'boolean': { return boolSerialize(value) }
55
55
  case 'number': { return numberSerialize(value) }
@@ -70,7 +70,7 @@ export const serialize = sort => {
70
70
  /**
71
71
  * The standard `JSON.stringify` rules determined by
72
72
  * https://262.ecma-international.org/6.0/#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
73
- *
74
- * @type {(mapEntries: MapEntries) => (value: Unknown) => string}
75
73
  */
76
- export const stringify = sort => compose(serialize(sort))(concat)
74
+ export const stringify
75
+ : (mapEntries: MapEntries) => (value: Unknown) => string
76
+ = sort => compose(serialize(sort))(concat)