functionalscript 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/.github/workflows/ci.yml +19 -4
  2. package/CHANGELOG.md +5 -0
  3. package/com/cpp/{module.f.mjs → module.f.ts} +65 -44
  4. package/com/cpp/{test.f.mjs → test.f.ts} +1 -1
  5. package/com/cpp/testlib.f.ts +8 -0
  6. package/com/cs/{module.f.mjs → module.f.ts} +47 -38
  7. package/com/cs/{test.f.mjs → test.f.ts} +2 -2
  8. package/com/cs/testlib.f.ts +8 -0
  9. package/com/rust/module.f.ts +287 -0
  10. package/com/rust/{test.f.mjs → test.f.ts} +1 -1
  11. package/com/rust/testlib.f.ts +8 -0
  12. package/com/test/{build.f.mjs → build.f.ts} +47 -45
  13. package/com/test/{build.mjs → build.ts} +7 -6
  14. package/com/types/module.f.ts +62 -0
  15. package/com/types/{testlib.f.mjs → testlib.f.ts} +2 -3
  16. package/commonjs/build/module.f.ts +100 -0
  17. package/commonjs/build/{test.f.mjs → test.f.ts} +21 -17
  18. package/commonjs/module/function/module.f.ts +13 -0
  19. package/commonjs/module/module.f.ts +41 -0
  20. package/commonjs/module.f.ts +7 -0
  21. package/commonjs/{module.mjs → module.ts} +12 -9
  22. package/commonjs/package/dependencies/module.f.ts +22 -0
  23. package/commonjs/package/dependencies/{test.f.mjs → test.f.ts} +1 -1
  24. package/commonjs/package/module.f.ts +31 -0
  25. package/commonjs/package/{test.f.mjs → test.f.ts} +1 -1
  26. package/commonjs/path/{module.f.mjs → module.f.ts} +72 -67
  27. package/commonjs/path/{test.f.mjs → test.f.ts} +25 -19
  28. package/commonjs/{test.mjs → test.ts} +5 -4
  29. package/crypto/prime_field/{module.f.mjs → module.f.ts} +40 -37
  30. package/crypto/prime_field/{test.f.mjs → test.f.ts} +7 -5
  31. package/crypto/secp/{module.f.mjs → module.f.ts} +44 -44
  32. package/crypto/secp/{test.f.mjs → test.f.ts} +16 -11
  33. package/crypto/sha2/{module.f.mjs → module.f.ts} +61 -46
  34. package/crypto/sha2/{test.f.mjs → test.f.ts} +12 -9
  35. package/deno.json +71 -0
  36. package/dev/README.md +8 -0
  37. package/dev/index.ts +3 -0
  38. package/dev/{module.f.mjs → module.f.ts} +0 -2
  39. package/dev/{module.mjs → module.ts} +65 -60
  40. package/dev/test/{module.f.mjs → module.f.ts} +57 -70
  41. package/dev/{test.f.mjs → test.f.ts} +7 -5
  42. package/dev/test.ts +53 -0
  43. package/djs/{module.f.mjs → module.f.ts} +31 -31
  44. package/djs/parser/{module.f.mjs → module.f.ts} +190 -182
  45. package/djs/parser/{test.f.mjs → test.f.ts} +173 -150
  46. package/djs/serializer/module.f.ts +90 -0
  47. package/djs/{test.f.mjs → test.f.ts} +4 -4
  48. package/djs/tokenizer/{module.f.mjs → module.f.ts} +35 -42
  49. package/djs/tokenizer/{test.f.mjs → test.f.ts} +9 -8
  50. package/fsc/{module.f.mjs → module.f.ts} +41 -44
  51. package/fsc/{test.f.mjs → test.f.ts} +8 -6
  52. package/fsm/module.f.ts +107 -0
  53. package/fsm/{test.f.mjs → test.f.ts} +10 -9
  54. package/html/module.f.ts +108 -0
  55. package/html/{test.f.mjs → test.f.ts} +10 -7
  56. package/issues/lang/3110-function.md +25 -1
  57. package/issues/{test.f.mjs → test.f.ts} +3 -2
  58. package/js/tokenizer/module.f.ts +882 -0
  59. package/js/tokenizer/{test.f.mjs → test.f.ts} +11 -10
  60. package/json/module.f.ts +94 -0
  61. package/json/parser/{module.f.mjs → module.f.ts} +113 -109
  62. package/json/parser/{test.f.mjs → test.f.ts} +10 -9
  63. package/json/serializer/module.f.ts +70 -0
  64. package/json/serializer/{test.f.mjs → test.f.ts} +3 -3
  65. package/json/{test.f.mjs → test.f.ts} +3 -3
  66. package/json/tokenizer/{module.f.mjs → module.f.ts} +29 -36
  67. package/json/tokenizer/{test.f.mjs → test.f.ts} +9 -8
  68. package/nanvm-lib/src/extension.rs +15 -4
  69. package/nanvm-lib/src/interface.rs +7 -10
  70. package/nanvm-lib/src/lib.rs +3 -3
  71. package/nanvm-lib/src/naive.rs +10 -3
  72. package/nanvm-lib/src/nanenum.rs +5 -1
  73. package/nanvm-lib/tests/{test.f.mjs → test.f.ts} +7 -6
  74. package/nodejs/version/{main.mjs → main.ts} +1 -1
  75. package/nodejs/version/module.f.ts +42 -0
  76. package/nodejs/version/{test.f.mjs → test.f.ts} +11 -12
  77. package/package.json +9 -9
  78. package/text/ascii/{module.f.mjs → module.f.ts} +10 -8
  79. package/text/ascii/{test.f.mjs → test.f.ts} +4 -4
  80. package/text/module.f.ts +30 -0
  81. package/text/sgr/{module.f.mjs → module.f.ts} +3 -5
  82. package/text/{test.f.mjs → test.f.ts} +5 -4
  83. package/text/utf16/module.f.ts +108 -0
  84. package/text/utf16/{test.f.mjs → test.f.ts} +7 -6
  85. package/text/utf8/{module.f.mjs → module.f.ts} +29 -23
  86. package/text/utf8/{test.f.mjs → test.f.ts} +4 -4
  87. package/tsconfig.json +4 -1
  88. package/types/array/module.f.ts +89 -0
  89. package/types/array/{test.f.mjs → test.f.ts} +3 -3
  90. package/types/bigfloat/{module.f.mjs → module.f.ts} +25 -20
  91. package/types/bigfloat/{test.f.mjs → test.f.ts} +1 -1
  92. package/types/bigint/{module.f.mjs → module.f.ts} +29 -28
  93. package/types/bigint/{test.f.mjs → test.f.ts} +2 -2
  94. package/types/bit_vec/{module.f.mjs → module.f.ts} +16 -37
  95. package/types/bit_vec/{test.f.mjs → test.f.ts} +1 -1
  96. package/types/btree/find/module.f.ts +92 -0
  97. package/types/btree/find/{test.f.mjs → test.f.ts} +20 -16
  98. package/types/btree/{module.f.mjs → module.f.ts} +9 -9
  99. package/types/btree/remove/{module.f.mjs → module.f.ts} +43 -53
  100. package/types/btree/remove/{test.f.mjs → test.f.ts} +19 -15
  101. package/types/btree/set/{module.f.mjs → module.f.ts} +17 -20
  102. package/types/btree/set/{test.f.mjs → test.f.ts} +96 -66
  103. package/types/btree/{test.f.mjs → test.f.ts} +34 -26
  104. package/types/btree/types/module.f.ts +27 -0
  105. package/types/byte_set/module.f.ts +70 -0
  106. package/types/byte_set/{test.f.mjs → test.f.ts} +8 -7
  107. package/types/function/compare/module.f.ts +26 -0
  108. package/types/function/compare/{test.f.mjs → test.f.ts} +1 -1
  109. package/types/function/module.f.ts +43 -0
  110. package/types/function/operator/module.f.ts +63 -0
  111. package/types/function/test.f.ts +20 -0
  112. package/types/list/module.f.ts +345 -0
  113. package/types/list/{test.f.mjs → test.f.ts} +30 -24
  114. package/types/map/module.f.ts +65 -0
  115. package/types/map/{test.f.mjs → test.f.ts} +6 -5
  116. package/types/nibble_set/module.f.ts +34 -0
  117. package/types/nibble_set/{test.f.mjs → test.f.ts} +3 -3
  118. package/types/nullable/module.f.ts +9 -0
  119. package/types/nullable/{test.f.mjs → test.f.ts} +2 -2
  120. package/types/number/module.f.ts +16 -0
  121. package/types/number/{test.f.mjs → test.f.ts} +7 -5
  122. package/types/object/module.f.ts +30 -0
  123. package/types/object/{test.f.mjs → test.f.ts} +2 -2
  124. package/types/range/module.f.ts +10 -0
  125. package/types/range/{test.f.mjs → test.f.ts} +1 -1
  126. package/types/range_map/module.f.ts +70 -0
  127. package/types/range_map/{test.f.mjs → test.f.ts} +82 -57
  128. package/types/result/module.f.ts +20 -0
  129. package/types/result/{module.mjs → module.ts} +4 -3
  130. package/types/sorted_list/module.f.ts +83 -0
  131. package/types/sorted_list/{test.f.mjs → test.f.ts} +14 -12
  132. package/types/sorted_set/module.f.ts +36 -0
  133. package/types/sorted_set/{test.f.mjs → test.f.ts} +14 -12
  134. package/types/string/module.f.ts +24 -0
  135. package/types/string/{test.f.mjs → test.f.ts} +2 -2
  136. package/types/string_set/module.f.ts +37 -0
  137. package/types/string_set/{test.f.mjs → test.f.ts} +2 -2
  138. package/com/cpp/testlib.f.mjs +0 -8
  139. package/com/cs/testlib.f.mjs +0 -8
  140. package/com/rust/module.f.mjs +0 -272
  141. package/com/rust/testlib.f.mjs +0 -8
  142. package/com/types/module.f.mjs +0 -67
  143. package/commonjs/build/module.f.mjs +0 -100
  144. package/commonjs/module/function/module.f.mjs +0 -21
  145. package/commonjs/module/module.f.mjs +0 -53
  146. package/commonjs/module.f.mjs +0 -11
  147. package/commonjs/package/dependencies/module.f.mjs +0 -22
  148. package/commonjs/package/module.f.mjs +0 -36
  149. package/dev/index.mjs +0 -3
  150. package/dev/test.mjs +0 -60
  151. package/fsm/module.f.mjs +0 -99
  152. package/html/module.f.mjs +0 -102
  153. package/js/tokenizer/module.f.mjs +0 -872
  154. package/json/module.f.mjs +0 -89
  155. package/json/serializer/module.f.mjs +0 -87
  156. package/jsr.json +0 -66
  157. package/nodejs/version/module.f.mjs +0 -47
  158. package/out/com/cpp/module.f.d.mts +0 -7
  159. package/out/com/cpp/module.f.mjs +0 -130
  160. package/out/com/cpp/test.f.d.mts +0 -2
  161. package/out/com/cpp/test.f.mjs +0 -40
  162. package/out/com/cpp/testlib.f.d.mts +0 -2
  163. package/out/com/cpp/testlib.f.mjs +0 -7
  164. package/out/com/cs/module.f.d.mts +0 -7
  165. package/out/com/cs/module.f.mjs +0 -104
  166. package/out/com/cs/test.f.d.mts +0 -2
  167. package/out/com/cs/test.f.mjs +0 -43
  168. package/out/com/cs/testlib.f.d.mts +0 -2
  169. package/out/com/cs/testlib.f.mjs +0 -7
  170. package/out/com/rust/module.f.d.mts +0 -23
  171. package/out/com/rust/module.f.mjs +0 -224
  172. package/out/com/rust/test.f.d.mts +0 -2
  173. package/out/com/rust/test.f.mjs +0 -123
  174. package/out/com/rust/testlib.f.d.mts +0 -2
  175. package/out/com/rust/testlib.f.mjs +0 -7
  176. package/out/com/test/build.d.mts +0 -1
  177. package/out/com/test/build.f.d.mts +0 -26
  178. package/out/com/test/build.f.mjs +0 -98
  179. package/out/com/test/build.mjs +0 -40
  180. package/out/com/types/module.f.d.mts +0 -23
  181. package/out/com/types/module.f.mjs +0 -51
  182. package/out/com/types/testlib.f.d.mts +0 -44
  183. package/out/com/types/testlib.f.mjs +0 -30
  184. package/out/commonjs/build/module.f.d.mts +0 -20
  185. package/out/commonjs/build/module.f.mjs +0 -107
  186. package/out/commonjs/build/test.f.d.mts +0 -3
  187. package/out/commonjs/build/test.f.mjs +0 -102
  188. package/out/commonjs/module/function/module.f.d.mts +0 -5
  189. package/out/commonjs/module/function/module.f.mjs +0 -15
  190. package/out/commonjs/module/module.f.d.mts +0 -52
  191. package/out/commonjs/module/module.f.mjs +0 -48
  192. package/out/commonjs/module.d.mts +0 -3
  193. package/out/commonjs/module.f.d.mts +0 -2
  194. package/out/commonjs/module.f.mjs +0 -10
  195. package/out/commonjs/module.mjs +0 -26
  196. package/out/commonjs/package/dependencies/module.f.d.mts +0 -6
  197. package/out/commonjs/package/dependencies/module.f.mjs +0 -21
  198. package/out/commonjs/package/dependencies/test.f.d.mts +0 -2
  199. package/out/commonjs/package/dependencies/test.f.mjs +0 -15
  200. package/out/commonjs/package/module.f.d.mts +0 -21
  201. package/out/commonjs/package/module.f.mjs +0 -40
  202. package/out/commonjs/package/test.f.d.mts +0 -2
  203. package/out/commonjs/package/test.f.mjs +0 -27
  204. package/out/commonjs/path/module.f.d.mts +0 -60
  205. package/out/commonjs/path/module.f.mjs +0 -171
  206. package/out/commonjs/path/test.f.d.mts +0 -25
  207. package/out/commonjs/path/test.f.mjs +0 -231
  208. package/out/commonjs/test.d.mts +0 -8
  209. package/out/commonjs/test.mjs +0 -87
  210. package/out/crypto/prime_field/module.f.d.mts +0 -67
  211. package/out/crypto/prime_field/module.f.mjs +0 -110
  212. package/out/crypto/prime_field/test.f.d.mts +0 -13
  213. package/out/crypto/prime_field/test.f.mjs +0 -152
  214. package/out/crypto/secp/module.f.d.mts +0 -110
  215. package/out/crypto/secp/module.f.mjs +0 -173
  216. package/out/crypto/secp/test.f.d.mts +0 -5
  217. package/out/crypto/secp/test.f.mjs +0 -78
  218. package/out/crypto/sha2/module.f.d.mts +0 -15
  219. package/out/crypto/sha2/module.f.mjs +0 -172
  220. package/out/crypto/sha2/test.f.d.mts +0 -10
  221. package/out/crypto/sha2/test.f.mjs +0 -86
  222. package/out/dev/index.d.mts +0 -1
  223. package/out/dev/index.mjs +0 -2
  224. package/out/dev/module.d.mts +0 -26
  225. package/out/dev/module.f.d.mts +0 -1
  226. package/out/dev/module.f.mjs +0 -2
  227. package/out/dev/module.mjs +0 -167
  228. package/out/dev/test/module.f.d.mts +0 -25
  229. package/out/dev/test/module.f.mjs +0 -134
  230. package/out/dev/test.d.mts +0 -3
  231. package/out/dev/test.f.d.mts +0 -9
  232. package/out/dev/test.f.mjs +0 -58
  233. package/out/dev/test.mjs +0 -52
  234. package/out/djs/module.f.d.mts +0 -20
  235. package/out/djs/module.f.mjs +0 -79
  236. package/out/djs/parser/module.f.d.mts +0 -56
  237. package/out/djs/parser/module.f.mjs +0 -448
  238. package/out/djs/parser/test.f.d.mts +0 -13
  239. package/out/djs/parser/test.f.mjs +0 -569
  240. package/out/djs/test.f.d.mts +0 -12
  241. package/out/djs/test.f.mjs +0 -84
  242. package/out/djs/tokenizer/module.f.d.mts +0 -13
  243. package/out/djs/tokenizer/module.f.mjs +0 -91
  244. package/out/djs/tokenizer/test.f.d.mts +0 -7
  245. package/out/djs/tokenizer/test.f.mjs +0 -530
  246. package/out/fsc/module.f.d.mts +0 -7
  247. package/out/fsc/module.f.mjs +0 -105
  248. package/out/fsc/test.f.d.mts +0 -4
  249. package/out/fsc/test.f.mjs +0 -19
  250. package/out/fsm/module.f.d.mts +0 -14
  251. package/out/fsm/module.f.mjs +0 -80
  252. package/out/fsm/test.f.d.mts +0 -5
  253. package/out/fsm/test.f.mjs +0 -138
  254. package/out/html/module.f.d.mts +0 -17
  255. package/out/html/module.f.mjs +0 -80
  256. package/out/html/test.f.d.mts +0 -10
  257. package/out/html/test.f.mjs +0 -45
  258. package/out/issues/test.f.d.mts +0 -16
  259. package/out/issues/test.f.mjs +0 -66
  260. package/out/js/tokenizer/module.f.d.mts +0 -163
  261. package/out/js/tokenizer/module.f.mjs +0 -729
  262. package/out/js/tokenizer/test.f.d.mts +0 -9
  263. package/out/js/tokenizer/test.f.mjs +0 -906
  264. package/out/json/module.f.d.mts +0 -33
  265. package/out/json/module.f.mjs +0 -89
  266. package/out/json/parser/module.f.d.mts +0 -32
  267. package/out/json/parser/module.f.mjs +0 -224
  268. package/out/json/parser/test.f.d.mts +0 -5
  269. package/out/json/parser/test.f.mjs +0 -329
  270. package/out/json/serializer/module.f.d.mts +0 -36
  271. package/out/json/serializer/module.f.mjs +0 -67
  272. package/out/json/serializer/test.f.d.mts +0 -8
  273. package/out/json/serializer/test.f.mjs +0 -87
  274. package/out/json/test.f.d.mts +0 -8
  275. package/out/json/test.f.mjs +0 -61
  276. package/out/json/tokenizer/module.f.d.mts +0 -13
  277. package/out/json/tokenizer/module.f.mjs +0 -78
  278. package/out/json/tokenizer/test.f.d.mts +0 -6
  279. package/out/json/tokenizer/test.f.mjs +0 -420
  280. package/out/nanvm-lib/tests/test.f.d.mts +0 -36
  281. package/out/nanvm-lib/tests/test.f.mjs +0 -87
  282. package/out/nodejs/version/main.d.mts +0 -1
  283. package/out/nodejs/version/main.mjs +0 -3
  284. package/out/nodejs/version/module.f.d.mts +0 -12
  285. package/out/nodejs/version/module.f.mjs +0 -34
  286. package/out/nodejs/version/test.f.d.mts +0 -2
  287. package/out/nodejs/version/test.f.mjs +0 -97
  288. package/out/text/ascii/module.f.d.mts +0 -70
  289. package/out/text/ascii/module.f.mjs +0 -154
  290. package/out/text/ascii/test.f.d.mts +0 -4
  291. package/out/text/ascii/test.f.mjs +0 -14
  292. package/out/text/module.f.d.mts +0 -13
  293. package/out/text/module.f.mjs +0 -19
  294. package/out/text/sgr/module.f.d.mts +0 -12
  295. package/out/text/sgr/module.f.mjs +0 -17
  296. package/out/text/test.f.d.mts +0 -2
  297. package/out/text/test.f.mjs +0 -19
  298. package/out/text/utf16/module.f.d.mts +0 -12
  299. package/out/text/utf16/module.f.mjs +0 -86
  300. package/out/text/utf16/test.f.d.mts +0 -6
  301. package/out/text/utf16/test.f.mjs +0 -145
  302. package/out/text/utf8/module.f.d.mts +0 -10
  303. package/out/text/utf8/module.f.mjs +0 -126
  304. package/out/text/utf8/test.f.d.mts +0 -6
  305. package/out/text/utf8/test.f.mjs +0 -175
  306. package/out/types/array/module.f.d.mts +0 -31
  307. package/out/types/array/module.f.mjs +0 -95
  308. package/out/types/array/test.f.d.mts +0 -10
  309. package/out/types/array/test.f.mjs +0 -116
  310. package/out/types/bigfloat/module.f.d.mts +0 -6
  311. package/out/types/bigfloat/module.f.mjs +0 -77
  312. package/out/types/bigfloat/test.f.d.mts +0 -6
  313. package/out/types/bigfloat/test.f.mjs +0 -349
  314. package/out/types/bigint/module.f.d.mts +0 -29
  315. package/out/types/bigint/module.f.mjs +0 -114
  316. package/out/types/bigint/test.f.d.mts +0 -16
  317. package/out/types/bigint/test.f.mjs +0 -199
  318. package/out/types/bit_vec/module.f.d.mts +0 -158
  319. package/out/types/bit_vec/module.f.mjs +0 -194
  320. package/out/types/bit_vec/test.f.d.mts +0 -23
  321. package/out/types/bit_vec/test.f.mjs +0 -210
  322. package/out/types/btree/find/module.f.d.mts +0 -36
  323. package/out/types/btree/find/module.f.mjs +0 -137
  324. package/out/types/btree/find/test.f.d.mts +0 -2
  325. package/out/types/btree/find/test.f.mjs +0 -156
  326. package/out/types/btree/module.f.d.mts +0 -5
  327. package/out/types/btree/module.f.mjs +0 -34
  328. package/out/types/btree/remove/module.f.d.mts +0 -14
  329. package/out/types/btree/remove/module.f.mjs +0 -209
  330. package/out/types/btree/remove/test.f.d.mts +0 -7
  331. package/out/types/btree/remove/test.f.mjs +0 -638
  332. package/out/types/btree/set/module.f.d.mts +0 -5
  333. package/out/types/btree/set/module.f.mjs +0 -114
  334. package/out/types/btree/set/test.f.d.mts +0 -2
  335. package/out/types/btree/set/test.f.mjs +0 -390
  336. package/out/types/btree/test.f.d.mts +0 -13
  337. package/out/types/btree/test.f.mjs +0 -83
  338. package/out/types/btree/types/module.f.d.mts +0 -14
  339. package/out/types/btree/types/module.f.mjs +0 -50
  340. package/out/types/byte_set/module.f.d.mts +0 -25
  341. package/out/types/byte_set/module.f.mjs +0 -42
  342. package/out/types/byte_set/test.f.d.mts +0 -13
  343. package/out/types/byte_set/test.f.mjs +0 -123
  344. package/out/types/function/compare/module.f.d.mts +0 -23
  345. package/out/types/function/compare/module.f.mjs +0 -22
  346. package/out/types/function/compare/test.f.d.mts +0 -2
  347. package/out/types/function/compare/test.f.mjs +0 -8
  348. package/out/types/function/module.f.d.mts +0 -51
  349. package/out/types/function/module.f.mjs +0 -44
  350. package/out/types/function/operator/module.f.d.mts +0 -60
  351. package/out/types/function/operator/module.f.mjs +0 -60
  352. package/out/types/function/test.f.d.mts +0 -2
  353. package/out/types/function/test.f.mjs +0 -15
  354. package/out/types/list/module.f.d.mts +0 -82
  355. package/out/types/list/module.f.mjs +0 -269
  356. package/out/types/list/test.f.d.mts +0 -38
  357. package/out/types/list/test.f.mjs +0 -401
  358. package/out/types/map/module.f.d.mts +0 -21
  359. package/out/types/map/module.f.mjs +0 -54
  360. package/out/types/map/test.f.d.mts +0 -5
  361. package/out/types/map/test.f.mjs +0 -115
  362. package/out/types/nibble_set/module.f.d.mts +0 -16
  363. package/out/types/nibble_set/module.f.mjs +0 -19
  364. package/out/types/nibble_set/test.f.d.mts +0 -13
  365. package/out/types/nibble_set/test.f.mjs +0 -90
  366. package/out/types/nullable/module.f.d.mts +0 -9
  367. package/out/types/nullable/module.f.mjs +0 -9
  368. package/out/types/nullable/test.f.d.mts +0 -2
  369. package/out/types/nullable/test.f.mjs +0 -12
  370. package/out/types/number/module.f.d.mts +0 -7
  371. package/out/types/number/module.f.mjs +0 -12
  372. package/out/types/number/test.f.d.mts +0 -11
  373. package/out/types/number/test.f.mjs +0 -126
  374. package/out/types/object/module.f.d.mts +0 -22
  375. package/out/types/object/module.f.mjs +0 -27
  376. package/out/types/object/test.f.d.mts +0 -5
  377. package/out/types/object/test.f.mjs +0 -17
  378. package/out/types/range/module.f.d.mts +0 -6
  379. package/out/types/range/module.f.mjs +0 -6
  380. package/out/types/range/test.f.d.mts +0 -2
  381. package/out/types/range/test.f.mjs +0 -18
  382. package/out/types/range_map/module.f.d.mts +0 -19
  383. package/out/types/range_map/module.f.mjs +0 -84
  384. package/out/types/range_map/test.f.d.mts +0 -6
  385. package/out/types/range_map/test.f.mjs +0 -201
  386. package/out/types/result/module.d.mts +0 -7
  387. package/out/types/result/module.f.d.mts +0 -22
  388. package/out/types/result/module.f.mjs +0 -25
  389. package/out/types/result/module.mjs +0 -16
  390. package/out/types/sorted_list/module.f.d.mts +0 -53
  391. package/out/types/sorted_list/module.f.mjs +0 -102
  392. package/out/types/sorted_list/test.f.d.mts +0 -5
  393. package/out/types/sorted_list/test.f.mjs +0 -66
  394. package/out/types/sorted_set/module.f.d.mts +0 -19
  395. package/out/types/sorted_set/module.f.mjs +0 -29
  396. package/out/types/sorted_set/test.f.d.mts +0 -6
  397. package/out/types/sorted_set/test.f.mjs +0 -80
  398. package/out/types/string/module.f.d.mts +0 -9
  399. package/out/types/string/module.f.mjs +0 -17
  400. package/out/types/string/test.f.d.mts +0 -15
  401. package/out/types/string/test.f.mjs +0 -58
  402. package/out/types/string_set/module.f.d.mts +0 -13
  403. package/out/types/string_set/module.f.mjs +0 -29
  404. package/out/types/string_set/test.f.d.mts +0 -5
  405. package/out/types/string_set/test.f.mjs +0 -65
  406. package/text/module.f.mjs +0 -27
  407. package/text/utf16/module.f.mjs +0 -96
  408. package/types/array/module.f.mjs +0 -119
  409. package/types/btree/find/module.f.mjs +0 -125
  410. package/types/btree/types/module.f.mjs +0 -64
  411. package/types/byte_set/module.f.mjs +0 -61
  412. package/types/function/compare/module.f.mjs +0 -29
  413. package/types/function/module.f.mjs +0 -50
  414. package/types/function/operator/module.f.mjs +0 -78
  415. package/types/function/test.f.mjs +0 -17
  416. package/types/list/module.f.mjs +0 -320
  417. package/types/map/module.f.mjs +0 -67
  418. package/types/nibble_set/module.f.mjs +0 -28
  419. package/types/nullable/module.f.mjs +0 -11
  420. package/types/number/module.f.mjs +0 -16
  421. package/types/object/module.f.mjs +0 -33
  422. package/types/range/module.f.mjs +0 -8
  423. package/types/range_map/module.f.mjs +0 -84
  424. package/types/result/module.f.mjs +0 -28
  425. package/types/sorted_list/module.f.mjs +0 -107
  426. package/types/sorted_set/module.f.mjs +0 -38
  427. package/types/string/module.f.mjs +0 -22
  428. package/types/string_set/module.f.mjs +0 -36
@@ -1,30 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- /** @type {_.Library} */
3
- export default {
4
- Slice: {
5
- struct: {
6
- Start: ['*', 'u8'],
7
- Size: 'usize',
8
- },
9
- },
10
- ManagedStruct: {
11
- struct: {
12
- M: ['IMy']
13
- }
14
- },
15
- IMy: {
16
- guid: 'C66FB270-2D80-49AD-BB6E-88C1F90B805D',
17
- interface: {
18
- GetSlice: { _: ['Slice'] },
19
- SetSlice: { slice: ['Slice'] },
20
- GetUnsafe: { _: ['*', 'bool'] },
21
- SetUnsafe: {
22
- p: ['*', ['Slice']],
23
- size: 'u32'
24
- },
25
- Some: { p: ['IMy'], _: 'bool' },
26
- GetIMy: { a: 'u16', b: 'i16', _: ['IMy'] },
27
- SetManagedStruct: { a: ['ManagedStruct'] },
28
- },
29
- }
30
- };
@@ -1,20 +0,0 @@
1
- /**
2
- * @type {(compile: function_.Compile) =>
3
- * (packageGet: package_.Get) =>
4
- * <M>(moduleMapInterface: module.MapInterface<M>) =>
5
- * (moduleId: module.Id) =>
6
- * (moduleMap: M) =>
7
- * Result<M>
8
- * }
9
- */
10
- export const getOrBuild: (compile: function_.Compile) => (packageGet: package_.Get) => <M>(moduleMapInterface: module.MapInterface<M>) => (moduleId: module.Id) => (moduleMap: M) => Result<M>;
11
- export type Config<M> = {
12
- readonly packageGet: package_.Get;
13
- readonly moduleMapInterface: module.MapInterface<M>;
14
- readonly moduleId: module.Id;
15
- readonly moduleMap: M;
16
- };
17
- export type Result<M> = readonly [module.State, M];
18
- import * as function_ from '../module/function/module.f.mjs';
19
- import * as package_ from '../package/module.f.mjs';
20
- import * as module from '../module/module.f.mjs';
@@ -1,107 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as package_ from '../package/module.f.mjs';
3
- import * as module from '../module/module.f.mjs';
4
- const { idToString, dir } = module;
5
- import * as function_ from '../module/function/module.f.mjs';
6
- import * as map from '../../types/map/module.f.mjs';
7
- const { empty: mapEmpty, setReplace } = map;
8
- import * as object from '../../types/object/module.f.mjs';
9
- const { fromMap } = object;
10
- import * as path from '../path/module.f.mjs';
11
- const { parseAndFind } = path;
12
- import * as stringSet from '../../types/string_set/module.f.mjs';
13
- const { set: setSet, contains: setContains, empty: stringSetEmpty } = stringSet;
14
- /**
15
- * @template M
16
- * @typedef {{
17
- * readonly packageGet: package_.Get
18
- * readonly moduleMapInterface: module.MapInterface<M>
19
- * readonly moduleId: module.Id
20
- * readonly moduleMap: M
21
- * }} Config
22
- */
23
- /**
24
- * @template M
25
- * @typedef {readonly[module.State, M]} Result
26
- */
27
- /** @type {<M>(moduleMap: M) => Result<M>} */
28
- const notFound = moduleMap => [['error', ['file not found']], moduleMap];
29
- /**
30
- * @type {(compile: function_.Compile) =>
31
- * (packageGet: package_.Get) =>
32
- * <M>(moduleMapInterface: module.MapInterface<M>) =>
33
- * (moduleId: module.Id) =>
34
- * (moduleMap: M) =>
35
- * Result<M>
36
- * }
37
- */
38
- export const getOrBuild = compile => packageGet => moduleMapInterface => {
39
- /** @typedef {typeof moduleMapInterface extends module.MapInterface<infer M> ? M : never} M */
40
- /**
41
- * @type {(buildSet: stringSet.StringSet) =>
42
- * (moduleId: module.Id) =>
43
- * (source: string) =>
44
- * (moduleMap: M) =>
45
- * Result<M>}
46
- */
47
- const build = buildSet => moduleId => {
48
- const moduleIdStr = idToString(moduleId);
49
- const buildSet1 = setSet(moduleIdStr)(buildSet);
50
- const moduleDir = dir(moduleId);
51
- /** @type {function_.Require<readonly[map.Map<string>, M]>} */
52
- const require_ = p => ([requireMap, m]) => {
53
- /** @type {(e: unknown) => function_.Result<readonly[map.Map<string>, M]>} */
54
- const error = e => [['error', e], [requireMap, m]];
55
- if (moduleDir === null) {
56
- return error('file not found');
57
- }
58
- const r = parseAndFind(packageGet)(moduleDir)(p);
59
- if (r === null) {
60
- return error('file not found');
61
- }
62
- const rIdStr = idToString(r.id);
63
- if (setContains(rIdStr)(buildSet1)) {
64
- return error('circular reference');
65
- }
66
- const [state, m1] = build(buildSet1)(r.id)(r.source)(m);
67
- return [state[0] === 'error' ? state : ['ok', state[1].exports], [setReplace(p)(rIdStr)(requireMap), m1]];
68
- };
69
- return source => moduleMap => {
70
- /** @type {(s: module.State) => (m: M) => Result<M>} */
71
- const set = s => m => [s, moduleMapInterface.setReplace(moduleIdStr)(s)(m)];
72
- /** @type {(e: module.Error) => (m: M) => Result<M>} */
73
- const error = e => set(['error', e]);
74
- // check compilation
75
- const [kind, result] = compile(source);
76
- if (kind === 'error') {
77
- return error(['compilation error', result])(moduleMap);
78
- }
79
- // build
80
- const [[state, value], [requireMap, moduleMap2]] = result(require_)([mapEmpty, moduleMap]);
81
- const x = state === 'error' ?
82
- error(['runtime error', value]) :
83
- set(['ok', { exports: value, requireMap: fromMap(requireMap) }]);
84
- return x(moduleMap2);
85
- };
86
- };
87
- /** @type {(moduleId: module.Id) => (moduleMap: M) => Result<M>} */
88
- const f = moduleId => moduleMap => {
89
- const moduleIdStr = idToString(moduleId);
90
- // check moduleMap
91
- {
92
- const m = moduleMapInterface.at(moduleIdStr)(moduleMap);
93
- if (m !== null) {
94
- return [m, moduleMap];
95
- }
96
- }
97
- // check package
98
- const p = packageGet(moduleId.package);
99
- if (p === null) {
100
- return notFound(moduleMap);
101
- }
102
- // check file
103
- const source = p.file(moduleId.path.join('/'));
104
- return (source === null ? notFound : build(stringSetEmpty)(moduleId)(source))(moduleMap);
105
- };
106
- return f;
107
- };
@@ -1,3 +0,0 @@
1
- declare function _default(): void;
2
- export default _default;
3
- export type StringMap = { readonly [k in string]: string; };
@@ -1,102 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- import * as map from '../../types/map/module.f.mjs';
3
- import * as Module from '../module/module.f.mjs';
4
- import * as ModuleFunction from '../module/function/module.f.mjs';
5
- import * as Result from '../../types/result/module.f.mjs';
6
- import * as Package from '../package/module.f.mjs';
7
- import * as o from '../../types/object/module.f.mjs';
8
- const { at } = o;
9
- /** @type {{ readonly [k in string]?: Result.Result<ModuleFunction.Function_, unknown> }} */
10
- const compileMap = {
11
- ':index.js': [
12
- 'ok',
13
- require_ => m0 => {
14
- let [r, m] = require_('./b')(m0);
15
- if (r[0] === 'error') {
16
- throw JSON.stringify(r);
17
- }
18
- [r, m] = require_('./a/')(m);
19
- if (r[0] === 'error') {
20
- throw JSON.stringify(r);
21
- }
22
- [r, m] = require_('x/r')(m);
23
- if (r[0] === 'error') {
24
- throw JSON.stringify(r);
25
- }
26
- return [['ok', ':index.js'], m];
27
- }
28
- ],
29
- ':b.js': [
30
- 'ok',
31
- () => m0 => [['ok', ':b.js'], m0]
32
- ],
33
- ':a/index.js': [
34
- 'ok',
35
- () => m0 => [['ok', ':a/index.js'], m0]
36
- ],
37
- 'x:r.js': [
38
- 'ok',
39
- () => m0 => [['ok', 'x:r.js'], m0]
40
- ],
41
- };
42
- /** @type {ModuleFunction.Compile} */
43
- const compile = source => compileMap[source] ?? ['error', 'invalid source'];
44
- /** @typedef {{ readonly [k in string]: string }} StringMap */
45
- /** @type {{ readonly [k in string]: { readonly dependencies: StringMap, readonly files: StringMap }}} */
46
- const packageMap = {
47
- '': {
48
- dependencies: {
49
- 'x': '/node_modules/x'
50
- },
51
- files: {
52
- 'index.js': ':index.js',
53
- 'b.js': ':b.js',
54
- 'a/index.js': ':a/index.js',
55
- }
56
- },
57
- '/node_modules/x': {
58
- dependencies: {},
59
- files: {
60
- 'r.js': 'x:r.js'
61
- }
62
- },
63
- };
64
- /** @type {Package.Get} */
65
- const packageGet = packageId => {
66
- const p = at(packageId)(packageMap);
67
- return p === null ? null :
68
- {
69
- dependency: dependency => at(dependency)(p.dependencies),
70
- file: file => at(file)(p.files),
71
- };
72
- };
73
- const getOrBuild = _.getOrBuild(compile)(packageGet)(/** @type {Module.MapInterface<map.Map<Module.State>>} */ (map));
74
- export default () => {
75
- let [r, m] = getOrBuild({ package: '', path: ['index.js'] })(map.empty);
76
- {
77
- if (r === null) {
78
- throw 'r === null';
79
- }
80
- const x = JSON.stringify(r);
81
- if (x !==
82
- '["ok",{"exports":":index.js","requireMap":{"./a/":"/a/index.js","./b":"/b.js","x/r":"/node_modules/x/r.js"}}]') {
83
- throw `0:${x}`;
84
- }
85
- }
86
- {
87
- [r, m] = getOrBuild({ package: '', path: ['b.js'] })(m);
88
- const x = JSON.stringify(r);
89
- if (x !==
90
- '["ok",{"exports":":b.js","requireMap":{}}]') {
91
- throw x;
92
- }
93
- }
94
- {
95
- [r, m] = getOrBuild({ package: '', path: ['c.js'] })(m);
96
- const x = JSON.stringify(r);
97
- if (x !==
98
- '["error",["file not found"]]') {
99
- throw x;
100
- }
101
- }
102
- };
@@ -1,5 +0,0 @@
1
- export type Function_ = <M>(require: Require<M>) => (prior: M) => Result<M>;
2
- export type Result<M> = readonly [TypesResult.Result<unknown, unknown>, M];
3
- export type Require<M> = (path: string) => (prior: M) => Result<M>;
4
- export type Compile = (source: string) => TypesResult.Result<Function_, unknown>;
5
- import * as TypesResult from '../../../types/result/module.f.mjs';
@@ -1,15 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- /**
3
- * An IO interface for creating and running module functions.
4
- */
5
- import * as TypesResult from '../../../types/result/module.f.mjs';
6
- /** @typedef {<M>(require: Require<M>) => (prior: M) => Result<M>} Function_ */
7
- /**
8
- * @template M
9
- * @typedef {readonly[TypesResult.Result<unknown, unknown>, M]} Result
10
- */
11
- /**
12
- * @template M
13
- * @typedef {(path: string) => (prior: M) => Result<M>} Require
14
- */
15
- /** @typedef {(source: string) => TypesResult.Result<Function_, unknown>} Compile */
@@ -1,52 +0,0 @@
1
- /**
2
- * @template M
3
- * @typedef {{
4
- * readonly at: (moduleId: string) => (moduleMap: M) => State | null
5
- * readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M
6
- * }} MapInterface
7
- */
8
- /**
9
- * @typedef {|
10
- * readonly['ok', Module] |
11
- * readonly['error', Error]
12
- * } State
13
- */
14
- /**
15
- * @typedef {{
16
- * readonly exports: unknown
17
- * readonly requireMap: O.Map<string>
18
- * }} Module
19
- */
20
- /**
21
- * @typedef {|
22
- * ['file not found'] |
23
- * ['compilation error', unknown] |
24
- * ['runtime error', unknown] |
25
- * ['circular reference']
26
- * } Error
27
- */
28
- /**
29
- * @typedef {{
30
- * readonly package: string
31
- * readonly path: readonly string[]
32
- * }} Id
33
- */
34
- /** @type {(id: Id) => Id | null} */
35
- export const dir: (id: Id) => Id | null;
36
- /** @type {(id: Id) => string} */
37
- export const idToString: (id: Id) => string;
38
- export type MapInterface<M> = {
39
- readonly at: (moduleId: string) => (moduleMap: M) => State | null;
40
- readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M;
41
- };
42
- export type State = readonly ["ok", Module] | readonly ["error", Error];
43
- export type Module = {
44
- readonly exports: unknown;
45
- readonly requireMap: O.Map<string>;
46
- };
47
- export type Error = ["file not found"] | ["compilation error", unknown] | ["runtime error", unknown] | ["circular reference"];
48
- export type Id = {
49
- readonly package: string;
50
- readonly path: readonly string[];
51
- };
52
- import * as O from '../../types/object/module.f.mjs';
@@ -1,48 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as O from '../../types/object/module.f.mjs';
3
- /**
4
- * @template M
5
- * @typedef {{
6
- * readonly at: (moduleId: string) => (moduleMap: M) => State | null
7
- * readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M
8
- * }} MapInterface
9
- */
10
- /**
11
- * @typedef {|
12
- * readonly['ok', Module] |
13
- * readonly['error', Error]
14
- * } State
15
- */
16
- /**
17
- * @typedef {{
18
- * readonly exports: unknown
19
- * readonly requireMap: O.Map<string>
20
- * }} Module
21
- */
22
- /**
23
- * @typedef {|
24
- * ['file not found'] |
25
- * ['compilation error', unknown] |
26
- * ['runtime error', unknown] |
27
- * ['circular reference']
28
- * } Error
29
- */
30
- /**
31
- * @typedef {{
32
- * readonly package: string
33
- * readonly path: readonly string[]
34
- * }} Id
35
- */
36
- /** @type {(id: Id) => Id | null} */
37
- export const dir = id => {
38
- const len = id.path.length;
39
- if (len < 1) {
40
- return null;
41
- }
42
- return {
43
- package: id.package,
44
- path: id.path.slice(0, len - 1)
45
- };
46
- };
47
- /** @type {(id: Id) => string} */
48
- export const idToString = id => `${id.package}/${id.path.join('/')}`;
@@ -1,3 +0,0 @@
1
- /** @type {ModuleFunction.Compile} */
2
- export const compile: ModuleFunction.Compile;
3
- import * as ModuleFunction from './module/function/module.f.mjs';
@@ -1,2 +0,0 @@
1
- export type PackageMap = (packageName: string) => PackageMap | Package | null;
2
- export type Package = readonly [string, PackageMap, (fileName: string) => string | null];
@@ -1,10 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- export {};
3
- /** @typedef {(packageName: string) => PackageMap|Package|null} PackageMap */
4
- /**
5
- * @typedef {readonly[
6
- * string,
7
- * PackageMap,
8
- * (fileName: string) => string|null
9
- * ]} Package
10
- */
@@ -1,26 +0,0 @@
1
- import unsafeResult from '../types/result/module.mjs';
2
- const { tryCatch } = unsafeResult;
3
- import * as result from '../types/result/module.f.mjs';
4
- const { unwrap } = result;
5
- import * as ModuleFunction from './module/function/module.f.mjs';
6
- /** @type {(f: Function) => ModuleFunction.Function_} */
7
- const build = f => immutableRequire => mutableData => {
8
- /** @type {(path: string) => unknown} */
9
- const mutableRequire = path => {
10
- const [result, data] = immutableRequire(path)(mutableData);
11
- // Side effect: setting a variable from a nested function (closure)
12
- // is not allowed in FunctionalScript.
13
- mutableData = data;
14
- return unwrap(result);
15
- };
16
- const result = tryCatch(() => {
17
- const mutableModule = { exports: {} };
18
- f(mutableModule, mutableRequire);
19
- return mutableModule.exports;
20
- });
21
- return [result, mutableData];
22
- };
23
- /** @type {ModuleFunction.Compile} */
24
- export const compile = source =>
25
- // Side effect: a `Function` constructor is not allowed in FunctionalScript.
26
- tryCatch(() => build(Function('module', 'require', `"use strict";${source}`)));
@@ -1,6 +0,0 @@
1
- /** @type {(j: json.Unknown) => j is DependenciesJson} */
2
- export const isDependenciesJson: (j: json.Unknown) => j is DependenciesJson;
3
- export type DependencyJson = readonly [string, string];
4
- export type DependencyMapJson = { readonly [k in string]: string; };
5
- export type DependenciesJson = DependencyMapJson | null;
6
- import * as json from '../../../json/module.f.mjs';
@@ -1,21 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as json from '../../../json/module.f.mjs';
3
- const { isObject } = json;
4
- import * as list from '../../../types/list/module.f.mjs';
5
- const { map, every } = list;
6
- const { entries } = Object;
7
- /** @typedef {readonly[string, string]} DependencyJson */
8
- /** @typedef {{readonly[k in string]: string}} DependencyMapJson */
9
- /** @typedef {DependencyMapJson|null} DependenciesJson */
10
- /** @type {(entry: json.Entry) => boolean} */
11
- const isDependencyJson = ([, v]) => typeof v === 'string';
12
- /** @type {(j: json.Unknown) => j is DependenciesJson} */
13
- export const isDependenciesJson = j => {
14
- if (j === null) {
15
- return true;
16
- }
17
- if (!isObject(j)) {
18
- return false;
19
- }
20
- return every(map(isDependencyJson)(entries(j)));
21
- };
@@ -1,2 +0,0 @@
1
- declare function _default(): void;
2
- export default _default;
@@ -1,15 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- export default () => {
3
- if (!_.isDependenciesJson(null)) {
4
- throw 'error';
5
- }
6
- if (!_.isDependenciesJson({})) {
7
- throw 'error';
8
- }
9
- if (!_.isDependenciesJson({ 'a': 'b' })) {
10
- throw 'error';
11
- }
12
- if (_.isDependenciesJson({ 'a': 12 })) {
13
- throw 'error';
14
- }
15
- };
@@ -1,21 +0,0 @@
1
- /**
2
- * @typedef {{
3
- * readonly name: string
4
- * readonly version: string
5
- * readonly dependencies?: dependencies.DependenciesJson
6
- * }} PackageJson
7
- */
8
- /** @type {(j: json.Unknown) => j is PackageJson} */
9
- export const isPackageJson: (j: json.Unknown) => j is PackageJson;
10
- export type PackageJson = {
11
- readonly name: string;
12
- readonly version: string;
13
- readonly dependencies?: dependencies.DependenciesJson;
14
- };
15
- export type Package = {
16
- readonly dependency: (localPackageId: string) => string | null;
17
- readonly file: (localFileId: string) => string | null;
18
- };
19
- export type Get = (packageId: string) => Package | null;
20
- import * as json from '../../json/module.f.mjs';
21
- import * as dependencies from './dependencies/module.f.mjs';
@@ -1,40 +0,0 @@
1
- // @ts-self-types="./module.f.d.mts"
2
- import * as json from '../../json/module.f.mjs';
3
- const { isObject } = json;
4
- import * as dependencies from './dependencies/module.f.mjs';
5
- const { isDependenciesJson } = dependencies;
6
- import * as o from '../../types/object/module.f.mjs';
7
- const { at } = o;
8
- /**
9
- * @typedef {{
10
- * readonly name: string
11
- * readonly version: string
12
- * readonly dependencies?: dependencies.DependenciesJson
13
- * }} PackageJson
14
- */
15
- /** @type {(j: json.Unknown) => j is PackageJson} */
16
- export const isPackageJson = j => {
17
- if (!isObject(j)) {
18
- return false;
19
- }
20
- if (typeof j.name !== 'string') {
21
- return false;
22
- }
23
- if (typeof j.version !== 'string') {
24
- return false;
25
- }
26
- if (!isDependenciesJson(at('dependencies')(j))) {
27
- return false;
28
- }
29
- return true;
30
- };
31
- /**
32
- * @typedef {{
33
- * readonly dependency: (localPackageId: string) => string | null
34
- * readonly file: (localFileId: string) => string | null
35
- * }} Package
36
- */
37
- /**
38
- * @note Current package has an empty string '' as a packageId.
39
- * @typedef {(packageId: string) => Package | null} Get
40
- */
@@ -1,2 +0,0 @@
1
- declare function _default(): void;
2
- export default _default;
@@ -1,27 +0,0 @@
1
- import * as _ from './module.f.mjs';
2
- export default () => {
3
- if (_.isPackageJson(null)) {
4
- throw 'error';
5
- }
6
- if (_.isPackageJson({})) {
7
- throw 'error';
8
- }
9
- if (_.isPackageJson({ name: 'x', version: 12 })) {
10
- throw 'error';
11
- }
12
- if (!_.isPackageJson({ name: 'x', version: "12" })) {
13
- throw 'error';
14
- }
15
- if (_.isPackageJson({ version: "", dependencies: [] })) {
16
- throw 'error';
17
- }
18
- if (!_.isPackageJson({ name: 'a', version: "", dependencies: {} })) {
19
- throw 'error';
20
- }
21
- if (_.isPackageJson({ name: 'b', version: "", dependencies: { x: 12 } })) {
22
- throw 'error';
23
- }
24
- if (!_.isPackageJson({ name: 'c', version: "", dependencies: { x: "12" } })) {
25
- throw 'error';
26
- }
27
- };
@@ -1,60 +0,0 @@
1
- /** @type {(local: string) => (path: string) => LocalPath|null} */
2
- export const parseLocal: (local: string) => (path: string) => LocalPath | null;
3
- /**
4
- * @typedef {{
5
- * readonly package: string,
6
- * readonly items: Items,
7
- * readonly dir: boolean,
8
- * }} Path
9
- */
10
- /**
11
- * @type {(d: (local: string) => string|null) =>
12
- * (dir: boolean) =>
13
- * (items: list.List<string>) =>
14
- * Path|null}
15
- */
16
- export const parseGlobal: (d: (local: string) => string | null) => (dir: boolean) => (items: list.List<string>) => Path | null;
17
- /**
18
- * @type {(packageId: string) =>
19
- * (dependencies: (local: string) => string|null) =>
20
- * (local: string) =>
21
- * (path: string) =>
22
- * Path|null }
23
- */
24
- export const parse: (packageId: string) => (dependencies: (local: string) => string | null) => (local: string) => (path: string) => Path | null;
25
- /**
26
- * @typedef {{
27
- * readonly id: Module.Id
28
- * readonly source: string
29
- * }} FoundResult
30
- */
31
- /** @typedef {FoundResult| null} Result */
32
- /**
33
- * @type {(packageGet: Package.Get) =>
34
- * (moduleId: Module.Id) =>
35
- * (path: string) =>
36
- * Result
37
- * }
38
- */
39
- export const parseAndFind: (packageGet: Package.Get) => (moduleId: Module.Id) => (path: string) => Result;
40
- export type Items = readonly string[];
41
- export type LocalPath = {
42
- readonly external: boolean;
43
- readonly dir: boolean;
44
- readonly items: Items;
45
- };
46
- export type OptionList = readonly [list.List<string>] | null;
47
- export type IdPath = readonly [string, list.List<string>];
48
- export type Path = {
49
- readonly package: string;
50
- readonly items: Items;
51
- readonly dir: boolean;
52
- };
53
- export type FoundResult = {
54
- readonly id: Module.Id;
55
- readonly source: string;
56
- };
57
- export type Result = FoundResult | null;
58
- import * as list from '../../types/list/module.f.mjs';
59
- import * as Package from '../package/module.f.mjs';
60
- import * as Module from '../module/module.f.mjs';