functionalscript 0.3.4 → 0.3.5

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 (457) hide show
  1. package/com/cpp/module.f.d.ts +10 -0
  2. package/com/cpp/module.f.js +107 -0
  3. package/com/cpp/test.f.d.ts +2 -0
  4. package/com/cpp/{test.f.ts → test.f.js} +9 -11
  5. package/com/cpp/testlib.f.d.ts +2 -0
  6. package/com/cpp/testlib.f.js +5 -0
  7. package/com/cs/module.f.d.ts +12 -0
  8. package/com/cs/module.f.js +80 -0
  9. package/com/cs/test.f.d.ts +2 -0
  10. package/com/cs/{test.f.ts → test.f.js} +9 -11
  11. package/com/cs/testlib.f.d.ts +2 -0
  12. package/com/cs/testlib.f.js +5 -0
  13. package/com/rust/module.f.d.ts +15 -0
  14. package/com/rust/module.f.js +169 -0
  15. package/com/rust/test.f.d.ts +2 -0
  16. package/com/rust/{test.f.ts → test.f.js} +7 -7
  17. package/com/rust/testlib.f.d.ts +2 -0
  18. package/com/rust/testlib.f.js +5 -0
  19. package/com/test/build.f.d.ts +20 -0
  20. package/com/test/build.f.js +58 -0
  21. package/com/types/module.f.d.ts +28 -0
  22. package/com/types/module.f.js +8 -0
  23. package/com/types/testlib.f.d.ts +44 -0
  24. package/com/types/{testlib.f.ts → testlib.f.js} +2 -3
  25. package/commonjs/build/module.f.d.ts +6 -0
  26. package/commonjs/build/module.f.js +69 -0
  27. package/commonjs/build/test.f.d.ts +2 -0
  28. package/commonjs/build/test.f.js +96 -0
  29. package/commonjs/module/function/{module.f.ts → module.f.d.ts} +5 -10
  30. package/commonjs/module/function/module.f.js +4 -0
  31. package/commonjs/module/module.f.d.ts +18 -0
  32. package/commonjs/module/module.f.js +12 -0
  33. package/commonjs/module.f.d.ts +6 -0
  34. package/commonjs/module.f.js +1 -0
  35. package/commonjs/package/dependencies/module.f.d.ts +7 -0
  36. package/commonjs/package/dependencies/module.f.js +13 -0
  37. package/commonjs/package/dependencies/test.f.d.ts +2 -0
  38. package/commonjs/package/dependencies/test.f.js +15 -0
  39. package/commonjs/package/module.f.d.ts +17 -0
  40. package/commonjs/package/module.f.js +18 -0
  41. package/commonjs/package/test.f.d.ts +2 -0
  42. package/commonjs/package/test.f.js +27 -0
  43. package/commonjs/path/module.f.d.ts +24 -0
  44. package/commonjs/path/module.f.js +114 -0
  45. package/commonjs/path/test.f.d.ts +25 -0
  46. package/commonjs/path/{test.f.ts → test.f.js} +123 -89
  47. package/crypto/prime_field/module.f.d.ts +43 -0
  48. package/crypto/prime_field/module.f.js +78 -0
  49. package/crypto/prime_field/test.f.d.ts +13 -0
  50. package/crypto/prime_field/test.f.js +149 -0
  51. package/crypto/secp/module.f.d.ts +68 -0
  52. package/crypto/secp/module.f.js +127 -0
  53. package/crypto/secp/test.f.d.ts +5 -0
  54. package/crypto/secp/test.f.js +72 -0
  55. package/crypto/sha2/module.f.d.ts +13 -0
  56. package/crypto/sha2/module.f.js +145 -0
  57. package/crypto/sha2/test.f.d.ts +9 -0
  58. package/crypto/sha2/test.f.js +82 -0
  59. package/dev/module.f.d.ts +1 -0
  60. package/dev/module.f.js +1 -0
  61. package/dev/test/module.f.d.ts +20 -0
  62. package/dev/test/module.f.js +75 -0
  63. package/dev/test.f.d.ts +9 -0
  64. package/dev/{test.f.ts → test.f.js} +22 -24
  65. package/djs/module.f.d.ts +17 -0
  66. package/djs/module.f.js +63 -0
  67. package/djs/parser/module.f.d.ts +12 -0
  68. package/djs/parser/module.f.js +333 -0
  69. package/djs/parser/test.f.d.ts +12 -0
  70. package/djs/parser/test.f.js +717 -0
  71. package/djs/serializer/module.f.d.ts +9 -0
  72. package/djs/serializer/module.f.js +81 -0
  73. package/djs/test/input.f.d.ts +2 -0
  74. package/djs/test/input.f.js +4 -0
  75. package/djs/test/m.f.d.ts +2 -0
  76. package/djs/test/m.f.js +1 -0
  77. package/djs/test.f.d.ts +12 -0
  78. package/djs/test.f.js +84 -0
  79. package/djs/tokenizer/module.f.d.ts +8 -0
  80. package/djs/tokenizer/module.f.js +60 -0
  81. package/djs/tokenizer/test.f.d.ts +7 -0
  82. package/djs/tokenizer/test.f.js +529 -0
  83. package/fsc/module.f.d.ts +5 -0
  84. package/fsc/module.f.js +75 -0
  85. package/fsc/test.f.d.ts +4 -0
  86. package/fsc/test.f.js +19 -0
  87. package/fsm/module.f.d.ts +13 -0
  88. package/fsm/module.f.js +59 -0
  89. package/fsm/test.f.d.ts +5 -0
  90. package/fsm/test.f.js +137 -0
  91. package/html/module.f.d.ts +13 -0
  92. package/html/module.f.js +58 -0
  93. package/html/test.f.d.ts +9 -0
  94. package/html/test.f.js +42 -0
  95. package/issues/test.f.d.ts +16 -0
  96. package/issues/test.f.js +70 -0
  97. package/js/tokenizer/module.f.d.ts +86 -0
  98. package/js/tokenizer/module.f.js +503 -0
  99. package/js/tokenizer/test.f.d.ts +9 -0
  100. package/js/tokenizer/test.f.js +905 -0
  101. package/json/module.f.d.ts +20 -0
  102. package/json/module.f.js +68 -0
  103. package/json/parser/module.f.d.ts +5 -0
  104. package/json/parser/module.f.js +155 -0
  105. package/json/parser/test.f.d.ts +5 -0
  106. package/json/parser/test.f.js +328 -0
  107. package/json/serializer/module.f.d.ts +7 -0
  108. package/json/serializer/module.f.js +21 -0
  109. package/json/serializer/test.f.d.ts +8 -0
  110. package/json/serializer/test.f.js +87 -0
  111. package/json/test.f.d.ts +8 -0
  112. package/json/test.f.js +61 -0
  113. package/json/tokenizer/module.f.d.ts +8 -0
  114. package/json/tokenizer/module.f.js +52 -0
  115. package/json/tokenizer/test.f.d.ts +6 -0
  116. package/json/tokenizer/test.f.js +419 -0
  117. package/nanvm-lib/tests/test.f.d.ts +27 -0
  118. package/nanvm-lib/tests/test.f.js +84 -0
  119. package/nodejs/version/module.f.d.ts +11 -0
  120. package/nodejs/version/module.f.js +16 -0
  121. package/nodejs/version/test.f.d.ts +2 -0
  122. package/nodejs/version/{test.f.ts → test.f.js} +13 -22
  123. package/package.json +9 -5
  124. package/text/ascii/module.f.d.ts +129 -0
  125. package/text/ascii/module.f.js +148 -0
  126. package/text/ascii/test.f.d.ts +4 -0
  127. package/text/ascii/test.f.js +14 -0
  128. package/text/module.f.d.ts +8 -0
  129. package/text/module.f.js +10 -0
  130. package/text/sgr/module.f.d.ts +8 -0
  131. package/text/sgr/module.f.js +8 -0
  132. package/text/test.f.d.ts +2 -0
  133. package/text/test.f.js +18 -0
  134. package/text/utf16/module.f.d.ts +9 -0
  135. package/text/utf16/module.f.js +66 -0
  136. package/text/utf16/test.f.d.ts +6 -0
  137. package/text/utf16/test.f.js +144 -0
  138. package/text/utf8/module.f.d.ts +6 -0
  139. package/text/utf8/module.f.js +112 -0
  140. package/text/utf8/test.f.d.ts +6 -0
  141. package/text/utf8/test.f.js +175 -0
  142. package/types/array/module.f.d.ts +21 -0
  143. package/types/array/module.f.js +23 -0
  144. package/types/array/test.f.d.ts +10 -0
  145. package/types/array/test.f.js +116 -0
  146. package/types/bigfloat/module.f.d.ts +3 -0
  147. package/types/bigfloat/module.f.js +66 -0
  148. package/types/bigfloat/test.f.d.ts +6 -0
  149. package/types/bigfloat/test.f.js +349 -0
  150. package/types/bigint/module.f.d.ts +54 -0
  151. package/types/bigint/{module.f.ts → module.f.js} +42 -65
  152. package/types/bigint/test.f.d.ts +16 -0
  153. package/types/bigint/test.f.js +199 -0
  154. package/types/bit_vec/module.f.d.ts +134 -0
  155. package/types/bit_vec/{module.f.ts → module.f.js} +47 -65
  156. package/types/bit_vec/test.f.d.ts +22 -0
  157. package/types/bit_vec/test.f.js +210 -0
  158. package/types/btree/find/module.f.d.ts +20 -0
  159. package/types/btree/find/module.f.js +84 -0
  160. package/types/btree/find/test.f.d.ts +2 -0
  161. package/types/btree/find/test.f.js +152 -0
  162. package/types/btree/module.f.d.ts +4 -0
  163. package/types/btree/module.f.js +31 -0
  164. package/types/btree/remove/module.f.d.ts +4 -0
  165. package/types/btree/remove/module.f.js +174 -0
  166. package/types/btree/remove/test.f.d.ts +5 -0
  167. package/types/btree/remove/test.f.js +634 -0
  168. package/types/btree/set/module.f.d.ts +3 -0
  169. package/types/btree/set/module.f.js +103 -0
  170. package/types/btree/set/test.f.d.ts +2 -0
  171. package/types/btree/set/test.f.js +360 -0
  172. package/types/btree/test.f.d.ts +8 -0
  173. package/types/btree/test.f.js +75 -0
  174. package/types/btree/types/module.f.d.ts +11 -0
  175. package/types/btree/types/module.f.js +1 -0
  176. package/types/byte_set/module.f.d.ts +16 -0
  177. package/types/byte_set/module.f.js +28 -0
  178. package/types/byte_set/test.f.d.ts +12 -0
  179. package/types/byte_set/test.f.js +122 -0
  180. package/types/function/compare/module.f.d.ts +10 -0
  181. package/types/function/compare/module.f.js +7 -0
  182. package/types/function/compare/test.f.d.ts +2 -0
  183. package/types/function/compare/test.f.js +8 -0
  184. package/types/function/module.f.d.ts +28 -0
  185. package/types/function/module.f.js +19 -0
  186. package/types/function/operator/module.f.d.ts +20 -0
  187. package/types/function/operator/module.f.js +18 -0
  188. package/types/function/test.f.d.ts +2 -0
  189. package/types/function/test.f.js +12 -0
  190. package/types/list/module.f.d.ts +50 -0
  191. package/types/list/module.f.js +171 -0
  192. package/types/list/test.f.d.ts +22 -0
  193. package/types/list/test.f.js +395 -0
  194. package/types/map/module.f.d.ts +14 -0
  195. package/types/map/module.f.js +31 -0
  196. package/types/map/test.f.d.ts +5 -0
  197. package/types/map/test.f.js +114 -0
  198. package/types/nibble_set/module.f.d.ts +10 -0
  199. package/types/nibble_set/module.f.js +9 -0
  200. package/types/nibble_set/test.f.d.ts +12 -0
  201. package/types/nibble_set/test.f.js +90 -0
  202. package/types/nullable/module.f.d.ts +3 -0
  203. package/types/nullable/module.f.js +2 -0
  204. package/types/nullable/test.f.d.ts +2 -0
  205. package/types/nullable/test.f.js +12 -0
  206. package/types/number/module.f.d.ts +6 -0
  207. package/types/number/module.f.js +8 -0
  208. package/types/number/test.f.d.ts +11 -0
  209. package/types/number/test.f.js +124 -0
  210. package/types/object/module.f.d.ts +10 -0
  211. package/types/object/module.f.js +12 -0
  212. package/types/object/test.f.d.ts +5 -0
  213. package/types/object/test.f.js +17 -0
  214. package/types/range/module.f.d.ts +3 -0
  215. package/types/range/module.f.js +2 -0
  216. package/types/range/test.f.d.ts +2 -0
  217. package/types/range/test.f.js +18 -0
  218. package/types/range_map/module.f.d.ts +14 -0
  219. package/types/range_map/module.f.js +51 -0
  220. package/types/range_map/test.f.d.ts +6 -0
  221. package/types/range_map/test.f.js +176 -0
  222. package/types/result/module.f.d.ts +7 -0
  223. package/types/result/module.f.js +8 -0
  224. package/types/sorted_list/module.f.d.ts +16 -0
  225. package/types/sorted_list/module.f.js +56 -0
  226. package/types/sorted_list/test.f.d.ts +5 -0
  227. package/types/sorted_list/test.f.js +64 -0
  228. package/types/sorted_set/module.f.d.ts +7 -0
  229. package/types/sorted_set/module.f.js +14 -0
  230. package/types/sorted_set/test.f.d.ts +6 -0
  231. package/types/sorted_set/test.f.js +78 -0
  232. package/types/string/module.f.d.ts +6 -0
  233. package/types/string/module.f.js +11 -0
  234. package/types/string/test.f.d.ts +15 -0
  235. package/types/string/test.f.js +58 -0
  236. package/types/string_set/module.f.d.ts +9 -0
  237. package/types/string_set/module.f.js +22 -0
  238. package/types/string_set/test.f.d.ts +5 -0
  239. package/types/string_set/test.f.js +65 -0
  240. package/.github/FUNDING.yml +0 -12
  241. package/.github/dependabot.yml +0 -11
  242. package/.github/workflows/ci.yml +0 -88
  243. package/.github/workflows/npm-publish.yml +0 -53
  244. package/CHANGELOG.md +0 -29
  245. package/Cargo.lock +0 -18
  246. package/Cargo.toml +0 -7
  247. package/com/README.md +0 -3
  248. package/com/cpp/README.md +0 -80
  249. package/com/cpp/module.f.ts +0 -180
  250. package/com/cpp/nanocom.hpp +0 -195
  251. package/com/cpp/testlib.f.ts +0 -8
  252. package/com/cs/module.f.ts +0 -145
  253. package/com/cs/testlib.f.ts +0 -8
  254. package/com/proposals.md +0 -28
  255. package/com/rust/module.f.ts +0 -287
  256. package/com/rust/nanocom/Cargo.lock +0 -7
  257. package/com/rust/nanocom/Cargo.toml +0 -15
  258. package/com/rust/nanocom/README.md +0 -56
  259. package/com/rust/nanocom/src/class.rs +0 -6
  260. package/com/rust/nanocom/src/cobject.rs +0 -90
  261. package/com/rust/nanocom/src/guid.rs +0 -15
  262. package/com/rust/nanocom/src/hresult.rs +0 -7
  263. package/com/rust/nanocom/src/interface.rs +0 -9
  264. package/com/rust/nanocom/src/iunknown.rs +0 -13
  265. package/com/rust/nanocom/src/lib.rs +0 -20
  266. package/com/rust/nanocom/src/object.rs +0 -34
  267. package/com/rust/nanocom/src/ref.rs +0 -57
  268. package/com/rust/nanocom/src/vmt.rs +0 -7
  269. package/com/rust/nanocom/tests/it.rs +0 -186
  270. package/com/rust/nanocom/tests/itmod.rs +0 -195
  271. package/com/rust/testlib.f.ts +0 -8
  272. package/com/test/build.f.ts +0 -111
  273. package/com/test/build.ts +0 -45
  274. package/com/test/cpp/main.cpp +0 -74
  275. package/com/test/cs/Program.cs +0 -31
  276. package/com/test/cs/cs.csproj +0 -16
  277. package/com/test/rust/Cargo.toml +0 -12
  278. package/com/test/rust/src/lib.rs +0 -56
  279. package/com/types/module.f.ts +0 -62
  280. package/commonjs/README.md +0 -94
  281. package/commonjs/build/module.f.ts +0 -100
  282. package/commonjs/build/test.f.ts +0 -107
  283. package/commonjs/module/module.f.ts +0 -41
  284. package/commonjs/module.f.ts +0 -7
  285. package/commonjs/module.ts +0 -31
  286. package/commonjs/package/dependencies/module.f.ts +0 -22
  287. package/commonjs/package/dependencies/test.f.ts +0 -8
  288. package/commonjs/package/module.f.ts +0 -31
  289. package/commonjs/package/test.f.ts +0 -12
  290. package/commonjs/path/README.md +0 -17
  291. package/commonjs/path/module.f.ts +0 -171
  292. package/commonjs/test.ts +0 -64
  293. package/crypto/README.md +0 -3
  294. package/crypto/prime_field/module.f.ts +0 -114
  295. package/crypto/prime_field/test.f.ts +0 -95
  296. package/crypto/secp/module.f.ts +0 -182
  297. package/crypto/secp/test.f.ts +0 -68
  298. package/crypto/sha2/module.f.ts +0 -215
  299. package/crypto/sha2/test.f.ts +0 -83
  300. package/deno.json +0 -71
  301. package/dev/README.md +0 -8
  302. package/dev/index.ts +0 -3
  303. package/dev/module.f.ts +0 -1
  304. package/dev/module.ts +0 -195
  305. package/dev/test/module.f.ts +0 -135
  306. package/dev/test.ts +0 -53
  307. package/djs/README.md +0 -54
  308. package/djs/module.f.ts +0 -76
  309. package/djs/parser/module.f.ts +0 -509
  310. package/djs/parser/test.f.ts +0 -461
  311. package/djs/serializer/module.f.ts +0 -90
  312. package/djs/test.f.ts +0 -67
  313. package/djs/tokenizer/module.f.ts +0 -99
  314. package/djs/tokenizer/test.f.ts +0 -364
  315. package/doc/LANGUAGE.md +0 -255
  316. package/doc/README.md +0 -61
  317. package/doc/byte-code.md +0 -59
  318. package/doc/fa.md +0 -174
  319. package/doc/predefined.md +0 -143
  320. package/doc/proposals.md +0 -21
  321. package/doc/vm/README.md +0 -24
  322. package/doc/vm-rearchitecture.md +0 -129
  323. package/doc/vm.md +0 -150
  324. package/fsc/README.md +0 -111
  325. package/fsc/module.f.ts +0 -122
  326. package/fsc/test.f.ts +0 -21
  327. package/fsm/README.md +0 -113
  328. package/fsm/module.f.ts +0 -107
  329. package/fsm/test.f.ts +0 -139
  330. package/funding.json +0 -61
  331. package/html/README.md +0 -32
  332. package/html/module.f.ts +0 -109
  333. package/html/test.f.ts +0 -37
  334. package/issues/01-test-debug.md +0 -3
  335. package/issues/02-esm.md +0 -8
  336. package/issues/03-djs.md +0 -57
  337. package/issues/05-publish.md +0 -40
  338. package/issues/11-fs-load.md +0 -13
  339. package/issues/17-djs-extension.md +0 -6
  340. package/issues/README.md +0 -42
  341. package/issues/lang/1000-json.md +0 -50
  342. package/issues/lang/2110-default-export.md +0 -11
  343. package/issues/lang/2120-const.md +0 -14
  344. package/issues/lang/2130-default-import.md +0 -10
  345. package/issues/lang/2210-block-comment.md +0 -12
  346. package/issues/lang/2220-namespace-import.md +0 -25
  347. package/issues/lang/2310-undefined.md +0 -7
  348. package/issues/lang/2320-bigint.md +0 -7
  349. package/issues/lang/2330-property-accessor.md +0 -225
  350. package/issues/lang/2340-operators.md +0 -41
  351. package/issues/lang/2350-grouping.md +0 -11
  352. package/issues/lang/2360-built-in.md +0 -81
  353. package/issues/lang/2410-identifier-property.md +0 -9
  354. package/issues/lang/2420-line-comment.md +0 -10
  355. package/issues/lang/2430-trailing-comma.md +0 -13
  356. package/issues/lang/2440-shorthand.md +0 -8
  357. package/issues/lang/2450-destructuring.md +0 -12
  358. package/issues/lang/3110-function.md +0 -35
  359. package/issues/lang/3120-parameters.md +0 -9
  360. package/issues/lang/3130-body-const.md +0 -12
  361. package/issues/lang/3220-let.md +0 -11
  362. package/issues/lang/3240-export.md +0 -44
  363. package/issues/lang/3370-type-inference.md +0 -69
  364. package/issues/lang/3380-promise.md +0 -22
  365. package/issues/lang/3390-class.md +0 -3
  366. package/issues/lang/3410-expression.md +0 -12
  367. package/issues/lang/3420-one-parameter.md +0 -10
  368. package/issues/lang/3430-assignments.md +0 -23
  369. package/issues/lang/README.md +0 -193
  370. package/issues/test.f.ts +0 -58
  371. package/js/tokenizer/module.f.ts +0 -882
  372. package/js/tokenizer/test.f.ts +0 -617
  373. package/json/html/README.md +0 -49
  374. package/json/module.f.ts +0 -94
  375. package/json/parser/module.f.ts +0 -221
  376. package/json/parser/test.f.ts +0 -255
  377. package/json/serializer/module.f.ts +0 -74
  378. package/json/serializer/test.f.ts +0 -64
  379. package/json/test.f.ts +0 -48
  380. package/json/tokenizer/module.f.ts +0 -85
  381. package/json/tokenizer/test.f.ts +0 -290
  382. package/nanvm-lib/Cargo.toml +0 -6
  383. package/nanvm-lib/src/extension.rs +0 -130
  384. package/nanvm-lib/src/interface.rs +0 -133
  385. package/nanvm-lib/src/lib.rs +0 -7
  386. package/nanvm-lib/src/naive.rs +0 -236
  387. package/nanvm-lib/src/nanenum.rs +0 -236
  388. package/nanvm-lib/src/nullish.rs +0 -7
  389. package/nanvm-lib/src/sign.rs +0 -5
  390. package/nanvm-lib/src/simple.rs +0 -32
  391. package/nanvm-lib/tests/test.f.ts +0 -80
  392. package/nanvm-lib/tests/test.rs +0 -108
  393. package/nodejs/version/main.ts +0 -4
  394. package/nodejs/version/module.f.ts +0 -42
  395. package/text/README.md +0 -110
  396. package/text/ascii/module.f.ts +0 -219
  397. package/text/ascii/test.f.ts +0 -14
  398. package/text/module.f.ts +0 -30
  399. package/text/sgr/README.md +0 -3
  400. package/text/sgr/module.f.ts +0 -11
  401. package/text/test.f.ts +0 -19
  402. package/text/utf16/module.f.ts +0 -120
  403. package/text/utf16/test.f.ts +0 -107
  404. package/text/utf8/module.f.ts +0 -116
  405. package/text/utf8/test.f.ts +0 -125
  406. package/tsconfig.json +0 -104
  407. package/types/array/module.f.ts +0 -89
  408. package/types/array/test.f.ts +0 -88
  409. package/types/bigfloat/module.f.ts +0 -93
  410. package/types/bigfloat/test.f.ts +0 -218
  411. package/types/bigint/README.md +0 -35
  412. package/types/bigint/test.f.ts +0 -144
  413. package/types/bit_vec/README.md +0 -18
  414. package/types/bit_vec/test.f.ts +0 -129
  415. package/types/btree/README.md +0 -160
  416. package/types/btree/find/module.f.ts +0 -92
  417. package/types/btree/find/test.f.ts +0 -122
  418. package/types/btree/module.f.ts +0 -35
  419. package/types/btree/remove/module.f.ts +0 -151
  420. package/types/btree/remove/test.f.ts +0 -498
  421. package/types/btree/set/module.f.ts +0 -89
  422. package/types/btree/set/test.f.ts +0 -415
  423. package/types/btree/test.f.ts +0 -92
  424. package/types/btree/types/module.f.ts +0 -27
  425. package/types/byte_set/module.f.ts +0 -73
  426. package/types/byte_set/test.f.ts +0 -84
  427. package/types/function/compare/module.f.ts +0 -26
  428. package/types/function/compare/test.f.ts +0 -7
  429. package/types/function/module.f.ts +0 -43
  430. package/types/function/operator/module.f.ts +0 -65
  431. package/types/function/test.f.ts +0 -20
  432. package/types/list/module.f.ts +0 -350
  433. package/types/list/test.f.ts +0 -327
  434. package/types/map/module.f.ts +0 -65
  435. package/types/map/test.f.ts +0 -76
  436. package/types/nibble_set/module.f.ts +0 -34
  437. package/types/nibble_set/test.f.ts +0 -57
  438. package/types/nullable/module.f.ts +0 -9
  439. package/types/nullable/test.f.ts +0 -9
  440. package/types/number/module.f.ts +0 -20
  441. package/types/number/test.f.ts +0 -194
  442. package/types/object/module.f.ts +0 -30
  443. package/types/object/test.f.ts +0 -14
  444. package/types/range/module.f.ts +0 -10
  445. package/types/range/test.f.ts +0 -9
  446. package/types/range_map/module.f.ts +0 -70
  447. package/types/range_map/test.f.ts +0 -189
  448. package/types/result/module.f.ts +0 -20
  449. package/types/result/module.ts +0 -18
  450. package/types/sorted_list/module.f.ts +0 -83
  451. package/types/sorted_list/test.f.ts +0 -57
  452. package/types/sorted_set/module.f.ts +0 -36
  453. package/types/sorted_set/test.f.ts +0 -67
  454. package/types/string/module.f.ts +0 -26
  455. package/types/string/test.f.ts +0 -43
  456. package/types/string_set/module.f.ts +0 -37
  457. package/types/string_set/test.f.ts +0 -34
@@ -0,0 +1,44 @@
1
+ declare const _default: {
2
+ Slice: {
3
+ struct: {
4
+ Start: ["*", "u8"];
5
+ Size: "usize";
6
+ };
7
+ };
8
+ ManagedStruct: {
9
+ struct: {
10
+ M: ["IMy"];
11
+ };
12
+ };
13
+ IMy: {
14
+ guid: string;
15
+ interface: {
16
+ GetSlice: {
17
+ _: ["Slice"];
18
+ };
19
+ SetSlice: {
20
+ slice: ["Slice"];
21
+ };
22
+ GetUnsafe: {
23
+ _: ["*", "bool"];
24
+ };
25
+ SetUnsafe: {
26
+ p: ["*", ["Slice"]];
27
+ size: "u32";
28
+ };
29
+ Some: {
30
+ p: ["IMy"];
31
+ _: "bool";
32
+ };
33
+ GetIMy: {
34
+ a: "u16";
35
+ b: "i16";
36
+ _: ["IMy"];
37
+ };
38
+ SetManagedStruct: {
39
+ a: ["ManagedStruct"];
40
+ };
41
+ };
42
+ };
43
+ };
44
+ export default _default;
@@ -1,5 +1,4 @@
1
- import * as _ from './module.f.ts'
2
-
1
+ import * as _ from "./module.f.js";
3
2
  export default {
4
3
  Slice: {
5
4
  struct: {
@@ -27,4 +26,4 @@ export default {
27
26
  SetManagedStruct: { a: ['ManagedStruct'] },
28
27
  },
29
28
  }
30
- } satisfies _.Library
29
+ };
@@ -0,0 +1,6 @@
1
+ import * as package_ from '../package/module.f.ts';
2
+ import { type MapInterface, type Id, type State } from '../module/module.f.ts';
3
+ import * as function_ from '../module/function/module.f.ts';
4
+ type Result<M> = readonly [State, M];
5
+ export declare const getOrBuild: (compile: function_.Compile) => (packageGet: package_.Get) => <M>(moduleMapInterface: MapInterface<M>) => (moduleId: Id) => (moduleMap: M) => Result<M>;
6
+ export {};
@@ -0,0 +1,69 @@
1
+ import * as package_ from "../package/module.f.js";
2
+ import { idToString, dir, } from "../module/module.f.js";
3
+ import * as function_ from "../module/function/module.f.js";
4
+ import * as map from "../../types/map/module.f.js";
5
+ const { empty: mapEmpty, setReplace } = map;
6
+ import * as object from "../../types/object/module.f.js";
7
+ const { fromMap } = object;
8
+ import * as path from "../path/module.f.js";
9
+ const { parseAndFind } = path;
10
+ import * as stringSet from "../../types/string_set/module.f.js";
11
+ const { set: setSet, contains: setContains, empty: stringSetEmpty } = stringSet;
12
+ const notFound = moduleMap => [['error', ['file not found']], moduleMap];
13
+ export const getOrBuild = compile => packageGet => moduleMapInterface => {
14
+ const build = buildSet => moduleId => {
15
+ const moduleIdStr = idToString(moduleId);
16
+ const buildSet1 = setSet(moduleIdStr)(buildSet);
17
+ const moduleDir = dir(moduleId);
18
+ const require_ = p => ([requireMap, m]) => {
19
+ const error = e => [['error', e], [requireMap, m]];
20
+ if (moduleDir === null) {
21
+ return error('file not found');
22
+ }
23
+ const r = parseAndFind(packageGet)(moduleDir)(p);
24
+ if (r === null) {
25
+ return error('file not found');
26
+ }
27
+ const rIdStr = idToString(r.id);
28
+ if (setContains(rIdStr)(buildSet1)) {
29
+ return error('circular reference');
30
+ }
31
+ const [state, m1] = build(buildSet1)(r.id)(r.source)(m);
32
+ return [state[0] === 'error' ? state : ['ok', state[1].exports], [setReplace(p)(rIdStr)(requireMap), m1]];
33
+ };
34
+ return source => moduleMap => {
35
+ const set = s => m => [s, moduleMapInterface.setReplace(moduleIdStr)(s)(m)];
36
+ const error = e => set(['error', e]);
37
+ // check compilation
38
+ const [kind, result] = compile(source);
39
+ if (kind === 'error') {
40
+ return error(['compilation error', result])(moduleMap);
41
+ }
42
+ // build
43
+ const [[state, value], [requireMap, moduleMap2]] = result(require_)([mapEmpty, moduleMap]);
44
+ const x = state === 'error' ?
45
+ error(['runtime error', value]) :
46
+ set(['ok', { exports: value, requireMap: fromMap(requireMap) }]);
47
+ return x(moduleMap2);
48
+ };
49
+ };
50
+ const f = moduleId => moduleMap => {
51
+ const moduleIdStr = idToString(moduleId);
52
+ // check moduleMap
53
+ {
54
+ const m = moduleMapInterface.at(moduleIdStr)(moduleMap);
55
+ if (m !== null) {
56
+ return [m, moduleMap];
57
+ }
58
+ }
59
+ // check package
60
+ const p = packageGet(moduleId.package);
61
+ if (p === null) {
62
+ return notFound(moduleMap);
63
+ }
64
+ // check file
65
+ const source = p.file(moduleId.path.join('/'));
66
+ return (source === null ? notFound : build(stringSetEmpty)(moduleId)(source))(moduleMap);
67
+ };
68
+ return f;
69
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;
@@ -0,0 +1,96 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as map from "../../types/map/module.f.js";
3
+ import * as Module from "../module/module.f.js";
4
+ import * as ModuleFunction from "../module/function/module.f.js";
5
+ import * as Result from "../../types/result/module.f.js";
6
+ import * as Package from "../package/module.f.js";
7
+ import { at } from "../../types/object/module.f.js";
8
+ const compileMap = {
9
+ ':index.js': [
10
+ 'ok',
11
+ require_ => m0 => {
12
+ let [r, m] = require_('./b')(m0);
13
+ if (r[0] === 'error') {
14
+ throw JSON.stringify(r);
15
+ }
16
+ [r, m] = require_('./a/')(m);
17
+ if (r[0] === 'error') {
18
+ throw JSON.stringify(r);
19
+ }
20
+ [r, m] = require_('x/r')(m);
21
+ if (r[0] === 'error') {
22
+ throw JSON.stringify(r);
23
+ }
24
+ return [['ok', ':index.js'], m];
25
+ }
26
+ ],
27
+ ':b.js': [
28
+ 'ok',
29
+ () => m0 => [['ok', ':b.js'], m0]
30
+ ],
31
+ ':a/index.js': [
32
+ 'ok',
33
+ () => m0 => [['ok', ':a/index.js'], m0]
34
+ ],
35
+ 'x:r.js': [
36
+ 'ok',
37
+ () => m0 => [['ok', 'x:r.js'], m0]
38
+ ],
39
+ };
40
+ const compile = source => compileMap[source] ?? ['error', 'invalid source'];
41
+ const packageMap = {
42
+ '': {
43
+ dependencies: {
44
+ 'x': '/node_modules/x'
45
+ },
46
+ files: {
47
+ 'index.js': ':index.js',
48
+ 'b.js': ':b.js',
49
+ 'a/index.js': ':a/index.js',
50
+ }
51
+ },
52
+ '/node_modules/x': {
53
+ dependencies: {},
54
+ files: {
55
+ 'r.js': 'x:r.js'
56
+ }
57
+ },
58
+ };
59
+ const packageGet = packageId => {
60
+ const p = at(packageId)(packageMap);
61
+ return p === null ? null :
62
+ {
63
+ dependency: dependency => at(dependency)(p.dependencies),
64
+ file: file => at(file)(p.files),
65
+ };
66
+ };
67
+ const getOrBuild = _.getOrBuild(compile)(packageGet)(map);
68
+ export default () => {
69
+ let [r, m] = getOrBuild({ package: '', path: ['index.js'] })(map.empty);
70
+ {
71
+ if (r === null) {
72
+ throw 'r === null';
73
+ }
74
+ const x = JSON.stringify(r);
75
+ if (x !==
76
+ '["ok",{"exports":":index.js","requireMap":{"./a/":"/a/index.js","./b":"/b.js","x/r":"/node_modules/x/r.js"}}]') {
77
+ throw `0:${x}`;
78
+ }
79
+ }
80
+ {
81
+ [r, m] = getOrBuild({ package: '', path: ['b.js'] })(m);
82
+ const x = JSON.stringify(r);
83
+ if (x !==
84
+ '["ok",{"exports":":b.js","requireMap":{}}]') {
85
+ throw x;
86
+ }
87
+ }
88
+ {
89
+ [r, m] = getOrBuild({ package: '', path: ['c.js'] })(m);
90
+ const x = JSON.stringify(r);
91
+ if (x !==
92
+ '["error",["file not found"]]') {
93
+ throw x;
94
+ }
95
+ }
96
+ };
@@ -1,13 +1,8 @@
1
1
  /**
2
2
  * An IO interface for creating and running module functions.
3
3
  */
4
-
5
- import * as TypesResult from '../../../types/result/module.f.ts'
6
-
7
- export type Function_ = <M>(require: Require<M>) => (prior: M) => Result<M>
8
-
9
- export type Result<M> = readonly[TypesResult.Result<unknown, unknown>, M]
10
-
11
- export type Require<M> = (path: string) => (prior: M) => Result<M>
12
-
13
- export type Compile = (source: string) => TypesResult.Result<Function_, unknown>
4
+ import * as TypesResult from '../../../types/result/module.f.ts';
5
+ export type Function_ = <M>(require: Require<M>) => (prior: M) => Result<M>;
6
+ export type Result<M> = readonly [TypesResult.Result<unknown, unknown>, M];
7
+ export type Require<M> = (path: string) => (prior: M) => Result<M>;
8
+ export type Compile = (source: string) => TypesResult.Result<Function_, unknown>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * An IO interface for creating and running module functions.
3
+ */
4
+ import * as TypesResult from "../../../types/result/module.f.js";
@@ -0,0 +1,18 @@
1
+ import * as O from '../../types/object/module.f.ts';
2
+ export type MapInterface<M> = {
3
+ readonly at: (moduleId: string) => (moduleMap: M) => State | null;
4
+ readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M;
5
+ };
6
+ export type State = readonly ['ok', Module] | readonly ['error', Error];
7
+ type Module = {
8
+ readonly exports: unknown;
9
+ readonly requireMap: O.Map<string>;
10
+ };
11
+ export type Error = ['file not found'] | ['compilation error', unknown] | ['runtime error', unknown] | ['circular reference'];
12
+ export type Id = {
13
+ readonly package: string;
14
+ readonly path: readonly string[];
15
+ };
16
+ export declare const dir: (id: Id) => Id | null;
17
+ export declare const idToString: (id: Id) => string;
18
+ export {};
@@ -0,0 +1,12 @@
1
+ import * as O from "../../types/object/module.f.js";
2
+ export const dir = id => {
3
+ const len = id.path.length;
4
+ if (len < 1) {
5
+ return null;
6
+ }
7
+ return {
8
+ package: id.package,
9
+ path: id.path.slice(0, len - 1)
10
+ };
11
+ };
12
+ export const idToString = id => `${id.package}/${id.path.join('/')}`;
@@ -0,0 +1,6 @@
1
+ type PackageMap = (packageName: string) => PackageMap | Package | null;
2
+ type Package = readonly [
3
+ string,
4
+ PackageMap,
5
+ (fileName: string) => string | null
6
+ ];
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,7 @@
1
+ import { type Unknown } from '../../../json/module.f.ts';
2
+ type DependencyMapJson = {
3
+ readonly [k in string]: string;
4
+ };
5
+ export type DependenciesJson = DependencyMapJson | null;
6
+ export declare const isDependenciesJson: (j: Unknown) => j is DependenciesJson;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ import { isObject } from "../../../json/module.f.js";
2
+ import { map, every } from "../../../types/list/module.f.js";
3
+ const { entries } = Object;
4
+ const isDependencyJson = ([, v]) => typeof v === 'string';
5
+ export const isDependenciesJson = (j) => {
6
+ if (j === null) {
7
+ return true;
8
+ }
9
+ if (!isObject(j)) {
10
+ return false;
11
+ }
12
+ return every(map(isDependencyJson)(entries(j)));
13
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import * as _ from "./module.f.js";
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
+ };
@@ -0,0 +1,17 @@
1
+ import { type Unknown } from '../../json/module.f.ts';
2
+ import { type DependenciesJson } from './dependencies/module.f.ts';
3
+ type PackageJson = {
4
+ readonly name: string;
5
+ readonly version: string;
6
+ readonly dependencies?: DependenciesJson;
7
+ };
8
+ export declare const isPackageJson: (j: Unknown) => j is PackageJson;
9
+ export type Package = {
10
+ readonly dependency: (localPackageId: string) => string | null;
11
+ readonly file: (localFileId: string) => string | null;
12
+ };
13
+ /**
14
+ * @note Current package has an empty string '' as a packageId.
15
+ */
16
+ export type Get = (packageId: string) => Package | null;
17
+ export {};
@@ -0,0 +1,18 @@
1
+ import { isObject } from "../../json/module.f.js";
2
+ import { isDependenciesJson } from "./dependencies/module.f.js";
3
+ import { at } from "../../types/object/module.f.js";
4
+ export const isPackageJson = (j) => {
5
+ if (!isObject(j)) {
6
+ return false;
7
+ }
8
+ if (typeof j.name !== 'string') {
9
+ return false;
10
+ }
11
+ if (typeof j.version !== 'string') {
12
+ return false;
13
+ }
14
+ if (!isDependenciesJson(at('dependencies')(j))) {
15
+ return false;
16
+ }
17
+ return true;
18
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import * as _ from "./module.f.js";
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
+ };
@@ -0,0 +1,24 @@
1
+ import { type List } from '../../types/list/module.f.ts';
2
+ import * as Package from '../package/module.f.ts';
3
+ import * as Module from '../module/module.f.ts';
4
+ type Items = readonly string[];
5
+ type LocalPath = {
6
+ readonly external: boolean;
7
+ readonly dir: boolean;
8
+ readonly items: Items;
9
+ };
10
+ export declare const parseLocal: (local: string) => (path: string) => LocalPath | null;
11
+ type Path = {
12
+ readonly package: string;
13
+ readonly items: Items;
14
+ readonly dir: boolean;
15
+ };
16
+ export declare const parseGlobal: (d: (local: string) => string | null) => (dir: boolean) => (items: List<string>) => Path | null;
17
+ export declare const parse: (packageId: string) => (dependencies: (local: string) => string | null) => (local: string) => (path: string) => Path | null;
18
+ type FoundResult = {
19
+ readonly id: Module.Id;
20
+ readonly source: string;
21
+ };
22
+ type Result = FoundResult | null;
23
+ export declare const parseAndFind: (packageGet: Package.Get) => (moduleId: Module.Id) => (path: string) => Result;
24
+ export {};
@@ -0,0 +1,114 @@
1
+ import { next, fold, reverse, first, flat, toArray, filterMap, isEmpty, concat, empty } from "../../types/list/module.f.js";
2
+ import { join } from "../../types/string/module.f.js";
3
+ import * as Package from "../package/module.f.js";
4
+ import * as Module from "../module/module.f.js";
5
+ const split = path => path.split('/');
6
+ const normItemsOp = first => prior => {
7
+ if (prior === null) {
8
+ return null;
9
+ }
10
+ const tail = prior[0];
11
+ switch (first) {
12
+ case '':
13
+ case '.': {
14
+ return prior;
15
+ }
16
+ case '..': {
17
+ const result = next(tail);
18
+ if (result === null) {
19
+ return null;
20
+ }
21
+ return [result.tail];
22
+ }
23
+ default: {
24
+ return [{ first, tail }];
25
+ }
26
+ }
27
+ };
28
+ const normItems = items => {
29
+ const result = fold(normItemsOp)([empty])(items);
30
+ return result === null ? result : [reverse(result[0])];
31
+ };
32
+ const firstNull = first(null);
33
+ export const parseLocal = local => {
34
+ const fSeq = path => {
35
+ const pathSeq = split(path);
36
+ const dir = [null, '', '.', '..'].includes(pathSeq[pathSeq.length - 1]);
37
+ return ['.', '..'].includes(firstNull(pathSeq)) ?
38
+ [false, dir, flat([split(local), pathSeq])] :
39
+ [true, dir, pathSeq];
40
+ };
41
+ return path => {
42
+ const [external, dir, items] = fSeq(path);
43
+ const n = normItems(items);
44
+ if (n === null) {
45
+ return null;
46
+ }
47
+ return {
48
+ external,
49
+ dir,
50
+ items: toArray(n[0])
51
+ };
52
+ };
53
+ };
54
+ const variants = prior => () => {
55
+ const [a, b] = prior;
56
+ const r = next(b);
57
+ if (r === empty) {
58
+ return empty;
59
+ }
60
+ const { first, tail } = r;
61
+ const n = [a === null ? first : `${a}/${first}`, tail];
62
+ return { first: n, tail: variants(n) };
63
+ };
64
+ const mapDependency = d => ([external, internal]) => {
65
+ const id = d(external);
66
+ return id === null ? null : [id, internal];
67
+ };
68
+ export const parseGlobal = dependencies => {
69
+ const fMap = filterMap(mapDependency(dependencies));
70
+ return dir => items => {
71
+ const v = variants([null, items]);
72
+ const r = firstNull(fMap(v));
73
+ if (r === null) {
74
+ return null;
75
+ }
76
+ return { package: r[0], items: toArray(r[1]), dir };
77
+ };
78
+ };
79
+ export const parse = packageId => dependencies => {
80
+ const pg = parseGlobal(dependencies);
81
+ return local => path => {
82
+ const parsed = parseLocal(local)(path);
83
+ if (parsed === null) {
84
+ return null;
85
+ }
86
+ const { external, dir, items } = parsed;
87
+ if (!external) {
88
+ return { package: packageId, items, dir };
89
+ }
90
+ return pg(dir)(items);
91
+ };
92
+ };
93
+ export const parseAndFind = packageGet => moduleId => path => {
94
+ const currentPack = packageGet(moduleId.package);
95
+ if (currentPack === null) {
96
+ return null;
97
+ }
98
+ const p = parse(moduleId.package)(currentPack.dependency)(moduleId.path.join('/'))(path);
99
+ if (p === null) {
100
+ return null;
101
+ }
102
+ const pack = packageGet(p.package);
103
+ if (pack === null) {
104
+ return null;
105
+ }
106
+ const tryFile = file => {
107
+ const source = pack.file(file);
108
+ return source === null ? null : { id: { package: p.package, path: file.split('/') }, source };
109
+ };
110
+ const file = p.items.join('/');
111
+ const indexJs = join('/')(concat(p.items)(['index.js']));
112
+ const fileList = p.dir || isEmpty(p.items) ? [indexJs] : [file, `${file}.js`, indexJs];
113
+ return firstNull(filterMap(tryFile)(fileList));
114
+ };
@@ -0,0 +1,25 @@
1
+ declare const _default: {
2
+ 0: () => void;
3
+ 1: () => void;
4
+ 2: () => void;
5
+ 3: () => void;
6
+ 4: () => void;
7
+ 5: () => void;
8
+ 6: () => void;
9
+ 7: () => void;
10
+ 8: {
11
+ 0: () => void;
12
+ 1: () => void;
13
+ 2: () => void;
14
+ 3: () => void;
15
+ 4: () => void;
16
+ 5: () => void;
17
+ 6: () => void;
18
+ 7: () => void;
19
+ };
20
+ 9: () => void;
21
+ 10: () => void;
22
+ 11: () => void;
23
+ 12: () => void;
24
+ };
25
+ export default _default;