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,2 +0,0 @@
1
- declare function _default(): void;
2
- export default _default;
@@ -1,97 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- const version = '0.3.0';
3
- /**
4
- * @type {{
5
- * readonly[k in string]: unknown
6
- * }}
7
- */
8
- const x = {
9
- 'package.json': {
10
- "name": "functionalscript",
11
- version,
12
- "description": "FunctionalScript is a functional subset of JavaScript",
13
- "main": "module.f.cjs",
14
- "scripts": {
15
- "tsc": "tsc",
16
- "test": "tsc && npm run test-only",
17
- "version": "node ./nodejs/version/main.cjs",
18
- "test-only": "node --trace-uncaught ./test.f.cjs"
19
- },
20
- "repository": {
21
- "type": "git",
22
- "url": "git+https://github.com/functionalscript/functionalscript.git"
23
- },
24
- "author": "NatFoam",
25
- "license": "MIT",
26
- "keywords": [
27
- "lambda",
28
- "functional-programming",
29
- "closure",
30
- "pure-functional",
31
- "typescript",
32
- "programming-language",
33
- "lazy-evaluation"
34
- ],
35
- "bugs": {
36
- "url": "https://github.com/functionalscript/functionalscript/issues"
37
- },
38
- "homepage": "https://github.com/functionalscript/functionalscript#readme",
39
- "devDependencies": {
40
- "@types/node": "^18.6.2",
41
- "typescript": "^4.7.4"
42
- }
43
- },
44
- "jsr.json": {}
45
- };
46
- const e = '{\n' +
47
- ' "name": "functionalscript",\n' +
48
- ` "version": "${version}",\n` +
49
- ' "description": "FunctionalScript is a functional subset of JavaScript",\n' +
50
- ' "main": "module.f.cjs",\n' +
51
- ' "scripts": {\n' +
52
- ' "tsc": "tsc",\n' +
53
- ' "test": "tsc && npm run test-only",\n' +
54
- ' "version": "node ./nodejs/version/main.cjs",\n' +
55
- ' "test-only": "node --trace-uncaught ./test.f.cjs"\n' +
56
- ' },\n' +
57
- ' "repository": {\n' +
58
- ' "type": "git",\n' +
59
- ' "url": "git+https://github.com/functionalscript/functionalscript.git"\n' +
60
- ' },\n' +
61
- ' "author": "NatFoam",\n' +
62
- ' "license": "MIT",\n' +
63
- ' "keywords": [\n' +
64
- ' "lambda",\n' +
65
- ' "functional-programming",\n' +
66
- ' "closure",\n' +
67
- ' "pure-functional",\n' +
68
- ' "typescript",\n' +
69
- ' "programming-language",\n' +
70
- ' "lazy-evaluation"\n' +
71
- ' ],\n' +
72
- ' "bugs": {\n' +
73
- ' "url": "https://github.com/functionalscript/functionalscript/issues"\n' +
74
- ' },\n' +
75
- ' "homepage": "https://github.com/functionalscript/functionalscript#readme",\n' +
76
- ' "devDependencies": {\n' +
77
- ' "@types/node": "^18.6.2",\n' +
78
- ' "typescript": "^4.7.4"\n' +
79
- ' }\n' +
80
- '}';
81
- /** @type {(s: string) => _.Buffer} */
82
- const buffer = s => ({
83
- toString: () => s
84
- });
85
- export default () => {
86
- /** @type {_.Node<string>} */
87
- const node = {
88
- fs: {
89
- readFileSync: n => buffer(JSON.stringify(x[n])),
90
- writeFileSync: (_, content) => content
91
- }
92
- };
93
- const [n, d] = _.updateVersion(node);
94
- if (n !== e) {
95
- throw [n, e];
96
- }
97
- };
@@ -1,70 +0,0 @@
1
- /** @type {(s: string) => number} */
2
- export const one: (s: string) => number;
3
- /** @type {(s: string) => _range.Range} */
4
- export const range: (s: string) => _range.Range;
5
- export namespace ascii {
6
- let backspace: number;
7
- let ht: number;
8
- let lf: number;
9
- let ff: number;
10
- let cr: number;
11
- let space: number;
12
- let exclamationMark: number;
13
- let quotationMark: number;
14
- let numberSign: number;
15
- let dollarSign: number;
16
- let percentSign: number;
17
- let ampersand: number;
18
- let apostrophe: number;
19
- let leftParenthesis: number;
20
- let rightParenthesis: number;
21
- let asterisk: number;
22
- let plusSign: number;
23
- let comma: number;
24
- let hyphenMinus: number;
25
- let fullStop: number;
26
- let solidus: number;
27
- let digitRange: _range.Range;
28
- let digit0: number;
29
- let digit1: number;
30
- let digit2: number;
31
- let digit3: number;
32
- let digit4: number;
33
- let digit5: number;
34
- let digit6: number;
35
- let digit7: number;
36
- let digit8: number;
37
- let digit9: number;
38
- let colon: number;
39
- let semicolon: number;
40
- let lessThanSign: number;
41
- let equalsSign: number;
42
- let greaterThanSign: number;
43
- let questionMark: number;
44
- let commercialAt: number;
45
- let latinCapitalLetterRange: _range.Range;
46
- let latinCapitalLetterA: number;
47
- let latinCapitalLetterE: number;
48
- let latinCapitalLetterF: number;
49
- let leftSquareBracket: number;
50
- let reverseSolidus: number;
51
- let rightSquareBracket: number;
52
- let circumflexAccent: number;
53
- let lowLine: number;
54
- let graveAccent: number;
55
- let latinSmallLetterRange: _range.Range;
56
- let latinSmallLetterA: number;
57
- let latinSmallLetterB: number;
58
- let latinSmallLetterE: number;
59
- let latinSmallLetterF: number;
60
- let latinSmallLetterN: number;
61
- let latinSmallLetterR: number;
62
- let latinSmallLetterT: number;
63
- let latinSmallLetterU: number;
64
- let latinSmallLetterZ: number;
65
- let leftCurlyBracket: number;
66
- let verticalLine: number;
67
- let rightCurlyBracket: number;
68
- let tilde: number;
69
- }
70
- import * as _range from '../../types/range/module.f.mjs';
@@ -1,154 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as _range from '../../types/range/module.f.mjs';
3
- /** @type {(s: string) => (i: number) => number} */
4
- const at = s => i => {
5
- const r = s.codePointAt(i);
6
- if (r === void 0) {
7
- throw s;
8
- }
9
- return r;
10
- };
11
- /** @type {(s: string) => number} */
12
- export const one = s => at(s)(0);
13
- /** @type {(s: string) => _range.Range} */
14
- export const range = s => {
15
- const f = at(s);
16
- const f0 = f(0);
17
- if (s.length === 1) {
18
- return [f0, f0];
19
- }
20
- return [f0, f(1)];
21
- };
22
- export const ascii = {
23
- // 0x00..
24
- /** @readonly 0x08 */
25
- backspace: one('\b'),
26
- /** @readonly 0x09 */
27
- ht: one('\t'),
28
- /** @readonly 0x0A */
29
- lf: one('\n'),
30
- /** @readonly 0x0C */
31
- ff: one('\f'),
32
- /** @readonly 0x0D */
33
- cr: one('\r'),
34
- // 0x20..
35
- /** @readonly 0x20 */
36
- space: one(' '),
37
- /** @readonly 0x21 */
38
- exclamationMark: one('!'),
39
- /** @readonly 0x22 */
40
- quotationMark: one('"'),
41
- /** @readonly 0x23 */
42
- numberSign: one('#'),
43
- /** @readonly 0x24 */
44
- dollarSign: one('$'),
45
- /** @readonly 0x25 */
46
- percentSign: one('%'),
47
- /** @readonly 0x26 */
48
- ampersand: one('&'),
49
- /** @readonly 0x27 */
50
- apostrophe: one("'"),
51
- /** @readonly 0x28 */
52
- leftParenthesis: one('('),
53
- /** @readonly 0x29 */
54
- rightParenthesis: one(')'),
55
- /** @readonly 0x2A */
56
- asterisk: one('*'),
57
- /** @readonly 0x2B */
58
- plusSign: one('+'),
59
- /** @readonly 0x2C */
60
- comma: one(','),
61
- /** @readonly 0x2D */
62
- hyphenMinus: one('-'),
63
- /** @readonly 0x2E */
64
- fullStop: one('.'),
65
- /** @readonly 0x2F */
66
- solidus: one('/'),
67
- // 0x30..
68
- /** @readonly 0x30..0x39 */
69
- digitRange: range('09'),
70
- /** @readonly 0x30 */
71
- digit0: one('0'),
72
- /** @readonly 0x31 */
73
- digit1: one('1'),
74
- /** @readonly 0x32 */
75
- digit2: one('2'),
76
- /** @readonly 0x33 */
77
- digit3: one('3'),
78
- /** @readonly 0x34 */
79
- digit4: one('4'),
80
- /** @readonly 0x35 */
81
- digit5: one('5'),
82
- /** @readonly 0x36 */
83
- digit6: one('6'),
84
- /** @readonly 0x37 */
85
- digit7: one('7'),
86
- /** @readonly 0x38 */
87
- digit8: one('8'),
88
- /** @readonly 0x39 */
89
- digit9: one('9'),
90
- /** @readonly 0x3A */
91
- colon: one(':'),
92
- /** @readonly 0x3B */
93
- semicolon: one(';'),
94
- /** @readonly 0x3C */
95
- lessThanSign: one('<'),
96
- /** @readonly 0x3D */
97
- equalsSign: one('='),
98
- /** @readonly 0x3E */
99
- greaterThanSign: one('>'),
100
- /** @readonly 0x3F */
101
- questionMark: one('?'),
102
- // 0x40..
103
- /** @readonly 0x40 */
104
- commercialAt: one('@'),
105
- /** @readonly 0x41..0x5A */
106
- latinCapitalLetterRange: range('AZ'),
107
- /** @readonly 0x41 */
108
- latinCapitalLetterA: one('A'),
109
- /** @readonly 0x45 */
110
- latinCapitalLetterE: one('E'),
111
- /** @readonly 0x46 */
112
- latinCapitalLetterF: one('F'),
113
- /** @readonly 0x5B */
114
- leftSquareBracket: one('['),
115
- /** @readonly 0x5C */
116
- reverseSolidus: one('\\'),
117
- /** @readonly 0x5D */
118
- rightSquareBracket: one(']'),
119
- /** @readonly 0x5E */
120
- circumflexAccent: one('^'),
121
- /** @readonly 0x5F */
122
- lowLine: one('_'),
123
- // 0x60..
124
- /** @readonly 0x60 */
125
- graveAccent: one('`'),
126
- /** @readonly 0x61..0x7A */
127
- latinSmallLetterRange: range('az'),
128
- /** @readonly 0x61 */
129
- latinSmallLetterA: one('a'),
130
- /** @readonly 0x62 */
131
- latinSmallLetterB: one('b'),
132
- /** @readonly 0x65 */
133
- latinSmallLetterE: one('e'),
134
- /** @readonly 0x66 */
135
- latinSmallLetterF: one('f'),
136
- /** @readonly 0x6E */
137
- latinSmallLetterN: one('n'),
138
- /** @readonly 0x72 */
139
- latinSmallLetterR: one('r'),
140
- /** @readonly 0x74 */
141
- latinSmallLetterT: one('t'),
142
- /** @readonly 0x75 */
143
- latinSmallLetterU: one('u'),
144
- /** @readonly 0x7A */
145
- latinSmallLetterZ: one('z'),
146
- /** @readonly 0x7B */
147
- leftCurlyBracket: one('{'),
148
- /** @readonly 0x7C */
149
- verticalLine: one('|'),
150
- /** @readonly 0x7D */
151
- rightCurlyBracket: one('}'),
152
- /** @readonly 0x7E */
153
- tilde: one('~'),
154
- };
@@ -1,4 +0,0 @@
1
- declare namespace _default {
2
- function range(): void;
3
- }
4
- export default _default;
@@ -1,14 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- const { range } = _;
3
- import * as json from '../../json/module.f.mjs';
4
- import * as o from '../../types/object/module.f.mjs';
5
- const { sort } = o;
6
- const stringify = json.stringify(sort);
7
- export default {
8
- range: () => {
9
- const r = stringify(range("A"));
10
- if (r !== '[65,65]') {
11
- throw r;
12
- }
13
- }
14
- };
@@ -1,13 +0,0 @@
1
- /** @typedef {ItemThunk|ItemArray} Block */
2
- /** @typedef {readonly Item[]} ItemArray */
3
- /** @typedef {() => list.List<Item>} ItemThunk */
4
- /** @typedef {string|ItemArray|ItemThunk} Item */
5
- /** @type {(indent: string) => (text: Block) => list.List<string>} */
6
- export const flat: (indent: string) => (text: Block) => list.List<string>;
7
- /** @type {(type: string) => (name: string) => (body: Block) => Block} */
8
- export const curly: (type: string) => (name: string) => (body: Block) => Block;
9
- export type Block = ItemThunk | ItemArray;
10
- export type ItemArray = readonly Item[];
11
- export type ItemThunk = () => list.List<Item>;
12
- export type Item = string | ItemArray | ItemThunk;
13
- import * as list from '../types/list/module.f.mjs';
@@ -1,19 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as list from '../types/list/module.f.mjs';
3
- const { flatMap } = list;
4
- /** @typedef {ItemThunk|ItemArray} Block */
5
- /** @typedef {readonly Item[]} ItemArray */
6
- /** @typedef {() => list.List<Item>} ItemThunk */
7
- /** @typedef {string|ItemArray|ItemThunk} Item */
8
- /** @type {(indent: string) => (text: Block) => list.List<string>} */
9
- export const flat = indent => {
10
- /** @type {(prefix: string) => (text: Block) => list.List<string>} */
11
- const f = prefix => {
12
- /** @type {(item: Item) => list.List<string>} */
13
- const g = item => typeof (item) === 'string' ? [`${prefix}${item}`] : f(`${prefix}${indent}`)(item);
14
- return flatMap(g);
15
- };
16
- return f('');
17
- };
18
- /** @type {(type: string) => (name: string) => (body: Block) => Block} */
19
- export const curly = type => name => body => [`${type} ${name}`, '{', body, '}'];
@@ -1,12 +0,0 @@
1
- /**
2
- * https://en.wikipedia.org/wiki/ANSI_escape_code#SGR
3
- *
4
- * @type {(c: number) => string}
5
- */
6
- export const sgr: (c: number) => string;
7
- export namespace codes {
8
- let reset: string;
9
- let bold: string;
10
- let fgRed: string;
11
- let fgGreen: string;
12
- }
@@ -1,17 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- /**
3
- * https://en.wikipedia.org/wiki/ANSI_escape_code#SGR
4
- *
5
- * @type {(c: number) => string}
6
- */
7
- export const sgr = c => `\x1b[${c.toString()}m`;
8
- export const codes = {
9
- /** @readonly */
10
- reset: sgr(0),
11
- /** @readonly */
12
- bold: sgr(1),
13
- /** @readonly */
14
- fgRed: sgr(31),
15
- /** @readonly */
16
- fgGreen: sgr(32),
17
- };
@@ -1,2 +0,0 @@
1
- declare function _default(): void;
2
- export default _default;
@@ -1,19 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- import * as string from '../types/string/module.f.mjs';
3
- const { join } = string;
4
- export default () => {
5
- /** @type {_.Block} */
6
- const text = [
7
- 'a',
8
- 'b',
9
- () => [
10
- 'c',
11
- () => ['d'],
12
- ],
13
- 'e',
14
- ];
15
- const result = join('\n')(_.flat(':')(text));
16
- if (result !== 'a\nb\n:c\n::d\ne') {
17
- throw result;
18
- }
19
- };
@@ -1,12 +0,0 @@
1
- export const fromCodePointList: (input: list.List<number>) => list.Thunk<number>;
2
- /** @type {(input: list.List<u16>) => list.List<i32>} */
3
- export const toCodePointList: (input: list.List<u16>) => list.List<i32>;
4
- /** @type {(s: string) => list.List<u16>} */
5
- export const stringToList: (s: string) => list.List<u16>;
6
- /** @type {(input: list.List<u16>) => string} */
7
- export const listToString: (input: list.List<u16>) => string;
8
- export type WordOrEof = u16 | null;
9
- export type Utf16State = number | null;
10
- export type u16 = number;
11
- export type i32 = number;
12
- import * as list from '../../types/list/module.f.mjs';
@@ -1,86 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as list from '../../types/list/module.f.mjs';
3
- import * as operator from '../../types/function/operator/module.f.mjs';
4
- import * as range from '../../types/range/module.f.mjs';
5
- const { contains } = range;
6
- import * as f from '../../types/function/module.f.mjs';
7
- const { fn } = f;
8
- const { map, flat, stateScan, reduce, flatMap, empty } = list;
9
- /** @typedef {u16|null} WordOrEof */
10
- /** @typedef {number|null} Utf16State */
11
- /** @typedef {number} u16 */
12
- /** @typedef {number} i32 */
13
- const lowBmp = contains([0x0000, 0xd7ff]);
14
- const highBmp = contains([0xe000, 0xffff]);
15
- /** @type {(codePoint: i32) => boolean} */
16
- const isBmpCodePoint = codePoint => lowBmp(codePoint) || highBmp(codePoint);
17
- /** @type {(codePoint: i32) => boolean} */
18
- const isHighSurrogate = contains([0xd800, 0xdbff]);
19
- /** @type {(codePoint: i32) => boolean} */
20
- const isLowSurrogate = contains([0xdc00, 0xdfff]);
21
- const errorMask = 0b1000_0000_0000_0000_0000_0000_0000_0000;
22
- /** @type {(a: i32) => boolean} */
23
- const isSupplementaryPlane = contains([0x01_0000, 0x10_ffff]);
24
- /** @type {(input: i32) => list.List<u16>} */
25
- const codePointToUtf16 = codePoint => {
26
- if (isBmpCodePoint(codePoint)) {
27
- return [codePoint];
28
- }
29
- if (isSupplementaryPlane(codePoint)) {
30
- const n = codePoint - 0x1_0000;
31
- const high = (n >> 10) + 0xd800;
32
- const low = (n & 0b0011_1111_1111) + 0xdc00;
33
- return [high, low];
34
- }
35
- return [codePoint & 0xffff];
36
- };
37
- export const fromCodePointList = flatMap(codePointToUtf16);
38
- const u16 = contains([0x0000, 0xFFFF]);
39
- /** @type {operator.StateScan<u16, Utf16State, list.List<i32>>} */
40
- const utf16ByteToCodePointOp = state => word => {
41
- if (!u16(word)) {
42
- return [[0xffffffff], state];
43
- }
44
- if (state === null) {
45
- if (isBmpCodePoint(word)) {
46
- return [[word], null];
47
- }
48
- if (isHighSurrogate(word)) {
49
- return [[], word];
50
- }
51
- return [[word | errorMask], null];
52
- }
53
- if (isLowSurrogate(word)) {
54
- const high = state - 0xd800;
55
- const low = word - 0xdc00;
56
- return [[(high << 10) + low + 0x10000], null];
57
- }
58
- if (isBmpCodePoint(word)) {
59
- return [[state | errorMask, word], null];
60
- }
61
- if (isHighSurrogate(word)) {
62
- return [[state | errorMask], word];
63
- }
64
- return [[state | errorMask, word | errorMask], null];
65
- };
66
- /** @type {(state: Utf16State) => readonly[list.List<i32>, Utf16State]} */
67
- const utf16EofToCodePointOp = state => [state === null ? empty : [state | errorMask], null];
68
- /** @type {operator.StateScan<WordOrEof, Utf16State, list.List<i32>>} */
69
- const utf16ByteOrEofToCodePointOp = state => input => input === null ? utf16EofToCodePointOp(state) : utf16ByteToCodePointOp(state)(input);
70
- /** @type {list.List<WordOrEof>} */
71
- const eofList = [null];
72
- /** @type {(input: list.List<u16>) => list.List<i32>} */
73
- export const toCodePointList = input => flat(stateScan(utf16ByteOrEofToCodePointOp)(null)(flat([input, eofList])));
74
- /** @type {(s: string) => list.List<u16>} */
75
- export const stringToList = s => {
76
- /** @type {(i: number) => list.Result<number>} */
77
- const at = i => {
78
- const first = s.charCodeAt(i);
79
- return isNaN(first) ? empty : { first, tail: () => at(i + 1) };
80
- };
81
- return at(0);
82
- };
83
- /** @type {(input: list.List<u16>) => string} */
84
- export const listToString = fn(map(String.fromCharCode))
85
- .then(reduce(operator.concat)(''))
86
- .result;
@@ -1,6 +0,0 @@
1
- declare namespace _default {
2
- let toCodePointList: (() => void)[];
3
- let fromCodePointList: (() => void)[];
4
- let string: (() => void)[];
5
- }
6
- export default _default;