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,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;