functionalscript 0.3.3 → 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 -196
  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 -222
  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 -13
  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
@@ -1,56 +0,0 @@
1
- mod _result;
2
-
3
- use _result::IMy;
4
- use nanocom::CObjectEx;
5
-
6
- use crate::_result::IMy::ClassEx;
7
-
8
- struct My {}
9
-
10
- impl nanocom::Class for My {
11
- type Interface = _result::IMy::Interface;
12
- fn static_vmt() -> &'static _result::IMy::Vmt {
13
- static VMT: _result::IMy::Vmt = My::VMT;
14
- &VMT
15
- }
16
- }
17
-
18
- impl _result::IMy::Ex for nanocom::CObject<My> {
19
- fn GetSlice(&self) -> _result::Slice {
20
- todo!()
21
- }
22
-
23
- fn SetSlice(&self, slice: _result::Slice) {
24
- println!("SetSlice: {:?}, {:?}", slice.Start, slice.Size);
25
- }
26
-
27
- fn GetUnsafe(&self) -> *const bool {
28
- todo!()
29
- }
30
-
31
- fn SetUnsafe(&self, _p: *const _result::Slice, _size: u32) {
32
- todo!()
33
- }
34
-
35
- fn Some(&self, _p: &_result::IMy::Object) -> bool {
36
- todo!()
37
- }
38
-
39
- fn GetIMy(&self, _a: u16, _b: i16) -> _result::IMy::Ref {
40
- todo!()
41
- }
42
-
43
- fn SetManagedStruct(&self, _a: _result::ManagedStruct) {
44
- todo!()
45
- }
46
- }
47
-
48
- #[no_mangle]
49
- pub extern "C" fn get() -> i32 {
50
- 42
51
- }
52
-
53
- #[no_mangle]
54
- pub extern "C" fn rust_my_create() -> IMy::Ref {
55
- My {}.to_cobject()
56
- }
@@ -1,62 +0,0 @@
1
- import * as O from '../../types/object/module.f.ts'
2
- import * as list from '../../types/list/module.f.ts'
3
- import * as f from '../../types/function/module.f.ts'
4
- const { compose } = f
5
- const { filter } = list
6
- const { entries } = Object
7
-
8
- export type Library = {readonly[k in string]: Definition}
9
-
10
- export type Definition = Struct|Interface
11
-
12
- export type Struct = {
13
- readonly struct: FieldArray
14
- }
15
-
16
- export type FieldArray = {readonly[k in string]: Type}
17
-
18
- export type Field = O.Entry<Type>
19
-
20
- export type Interface = {
21
- readonly interface: MethodArray
22
- readonly guid: string
23
- }
24
-
25
- type MethodArray = {readonly[k in string]: FieldArray}
26
-
27
- export type Method = O.Entry<FieldArray>
28
-
29
- export type Type = BaseType|Id|Pointer
30
-
31
- type Id = readonly[string]
32
-
33
- export type BaseType = |
34
- 'u8'|
35
- 'i8'|
36
- 'u16'|
37
- 'i16'|
38
- 'u32'|
39
- 'i32'|
40
- 'u64'|
41
- 'i64'|
42
- 'usize'|
43
- 'isize'|
44
- 'f32'|
45
- 'f64'|
46
- 'bool'
47
-
48
- type Pointer = readonly['*', Type]
49
-
50
- const isParam
51
- : (kv: O.Entry<Type>) => boolean
52
- = ([name]) => name !== '_'
53
-
54
- const filterParam = filter(isParam)
55
-
56
- export const paramList
57
- : (fa: FieldArray) => list.List<Field>
58
- = compose(entries)(filterParam)
59
-
60
- export const result
61
- : <T>(v: T) => (f: (type: Type) => T) => (fa: FieldArray) => T
62
- = v => f => fa => '_' in fa ? f(fa._) : v
@@ -1,94 +0,0 @@
1
- # Common.js
2
-
3
- ## Package
4
-
5
- [package/main.f.js](package/main.f.js)
6
-
7
- ```ts
8
- // A dictionary of packages.
9
- //
10
- // A package contains a dictionary of dependencies and a dictionary of files.
11
- //
12
- // `packageId` examples:
13
- // - Node.js:
14
- // - normalized: `./node_modules/functionalscript`
15
- // - fs modules:
16
- // - normalized: `github:functionalscript/functionalscript:bf4f3ed9ad1d3c19ee7bea3e76000dec77d01b4f`
17
- // - `localPackageId` examples:
18
- // - `functionalscript`
19
-
20
- type PackageGet = (packageId: string) => Package | null
21
-
22
- // A local file id is
23
-
24
- type Package = {
25
- // returns a global package id.
26
- readonly dependency: (localPackageId: string) => string | null
27
- // returns source of the file.
28
- readonly file: (localFileId: string) => string | null
29
- }
30
- ```
31
-
32
- ## Module
33
-
34
- [module/main.f.js](module/main.f.js)
35
-
36
- ```ts
37
- // A module map is a dictionary of modules.
38
- //
39
- // A module is a compiled and initialized source file.
40
-
41
- type ModuleGet = (moduleId: string) => ModuleState | null
42
-
43
- type ModuleMapInterface<M> = {
44
- readonly get: (moduleMap: M) => ModuleGet
45
- readonly insert: (moduleMap: M) => (moduleId: string) => (moduleState: ModuleState) => M
46
- }
47
-
48
- type ModuleState = readonly['ok', Module] | readonly['error', ModuleError]
49
-
50
- type Module = {
51
- // Exports is a result of module initialization.
52
- readonly exports: unknown
53
- // A dictionary of required modules.
54
- // For example, `require('functionalscript/types/list')` may produce the dictionary entry
55
- // `['functionalscript/types/list', './node_modules/functionalscript/types/list/index.js']`
56
- readonly requireMap: object.Map<string>
57
- }
58
-
59
- type ModuleError = 'file not found' | 'compile error' | 'runtime error' | 'circular reference'
60
-
61
- // A module id is a global module id. It contains a package id and file id. For example
62
- // - `./node_modules/functionalscript/types/list/index.js`
63
- // - `github:functionalscript/functionalscript:bf4f3ed9ad1d3c19ee7bea3e76000dec77d01b4f/types/list/index.js`
64
-
65
- type ModuleId = {
66
- readonly packageId: string,
67
- readonly path: readonly string[],
68
- }
69
-
70
- const moduleIdToString: (moduleId: ModuleId) => string;
71
- ```
72
-
73
- ## Build
74
-
75
- [build/index.js](build/index.js)
76
-
77
- ```ts
78
- type BuildConfig<M> = {
79
- readonly packageGet: PackageGet
80
- readonly moduleMapInterface: ModuleMapInterface<M>
81
- readonly moduleId: ModuleId
82
- readonly moduleMap: M // mutable
83
- }
84
-
85
- type BuildState<M> = {
86
- readonly packageGet: PackageGet
87
- readonly moduleMapInterface: ModuleMapInterface<M>
88
- readonly moduleId: ModuleId
89
- readonly moduleMap: M // mutable
90
- readonly ModuleRequireMap: map.Map<string> // mutable
91
- }
92
-
93
- const getOrBuild: <M>(buildConfig: BuildConfig<M>) => readonly[ModuleState, M];
94
- ```
@@ -1,100 +0,0 @@
1
- import * as package_ from '../package/module.f.ts'
2
- import * as module from '../module/module.f.ts'
3
- const { idToString, dir } = module
4
- import * as function_ from '../module/function/module.f.ts'
5
- import * as map from '../../types/map/module.f.ts'
6
- const { empty: mapEmpty, setReplace } = map
7
- import * as object from '../../types/object/module.f.ts'
8
- const { fromMap } = object
9
- import * as path from '../path/module.f.ts'
10
- const { parseAndFind } = path
11
- import * as stringSet from '../../types/string_set/module.f.ts'
12
- const { set: setSet, contains: setContains, empty: stringSetEmpty } = stringSet
13
-
14
- type Config<M> = {
15
- readonly packageGet: package_.Get
16
- readonly moduleMapInterface: module.MapInterface<M>
17
- readonly moduleId: module.Id
18
- readonly moduleMap: M
19
- }
20
-
21
- type Result<M> = readonly[module.State, M]
22
-
23
- const notFound
24
- : <M>(moduleMap: M) => Result<M>
25
- = moduleMap => [['error', ['file not found']], moduleMap]
26
-
27
- export const getOrBuild
28
- : (compile: function_.Compile) =>
29
- (packageGet: package_.Get) =>
30
- <M>(moduleMapInterface: module.MapInterface<M>) =>
31
- (moduleId: module.Id) =>
32
- (moduleMap: M) =>
33
- Result<M>
34
- = compile => packageGet => moduleMapInterface => {
35
-
36
- type M = typeof moduleMapInterface extends module.MapInterface<infer M> ? M : never
37
-
38
- const build
39
- : (buildSet: stringSet.StringSet) =>
40
- (moduleId: module.Id) =>
41
- (source: string) =>
42
- (moduleMap: M) =>
43
- Result<M>
44
- = buildSet => moduleId => {
45
-
46
- const moduleIdStr = idToString(moduleId)
47
- const buildSet1 = setSet(moduleIdStr)(buildSet)
48
- const moduleDir = dir(moduleId)
49
- const require_
50
- : function_.Require<readonly[map.Map<string>, M]>
51
- = p => ([requireMap, m]) => {
52
- const error
53
- : (e: unknown) => function_.Result<readonly[map.Map<string>, M]>
54
- = e => [['error', e], [requireMap, m]]
55
- if (moduleDir === null) { return error('file not found') }
56
- const r = parseAndFind(packageGet)(moduleDir)(p)
57
- if (r === null) { return error('file not found') }
58
- const rIdStr = idToString(r.id)
59
- if (setContains(rIdStr)(buildSet1)) { return error('circular reference') }
60
- const [state, m1] = build(buildSet1)(r.id)(r.source)(m)
61
- return [state[0] === 'error' ? state : ['ok', state[1].exports], [setReplace(p)(rIdStr)(requireMap), m1]]
62
- }
63
- return source => moduleMap => {
64
- const set
65
- : (s: module.State) => (m: M) => Result<M>
66
- = s => m => [s, moduleMapInterface.setReplace(moduleIdStr)(s)(m)]
67
- const error
68
- : (e: module.Error) => (m: M) => Result<M>
69
- = e => set(['error', e])
70
- // check compilation
71
- const [kind, result] = compile(source)
72
- if (kind === 'error') { return error(['compilation error', result])(moduleMap) }
73
- // build
74
- const [[state, value], [requireMap, moduleMap2]] = result(require_)([mapEmpty, moduleMap])
75
- const x = state === 'error' ?
76
- error(['runtime error', value]) :
77
- set(['ok', { exports: value, requireMap: fromMap(requireMap) }])
78
- return x(moduleMap2)
79
- }
80
- }
81
-
82
- const f
83
- : (moduleId: module.Id) => (moduleMap: M) => Result<M>
84
- = moduleId => moduleMap => {
85
-
86
- const moduleIdStr = idToString(moduleId)
87
- // check moduleMap
88
- {
89
- const m = moduleMapInterface.at(moduleIdStr)(moduleMap)
90
- if (m !== null) { return [m, moduleMap] }
91
- }
92
- // check package
93
- const p = packageGet(moduleId.package)
94
- if (p === null) { return notFound(moduleMap) }
95
- // check file
96
- const source = p.file(moduleId.path.join('/'))
97
- return (source === null ? notFound : build(stringSetEmpty)(moduleId)(source))(moduleMap)
98
- }
99
- return f
100
- }
@@ -1,107 +0,0 @@
1
- import * as _ from './module.f.ts'
2
- import * as map from '../../types/map/module.f.ts'
3
- import * as Module from '../module/module.f.ts'
4
- import * as ModuleFunction from '../module/function/module.f.ts'
5
- import * as Result from '../../types/result/module.f.ts'
6
- import * as Package from '../package/module.f.ts'
7
- import * as o from '../../types/object/module.f.ts'
8
- const { at } = o
9
-
10
- const compileMap
11
- : { readonly [k in string]?: Result.Result<ModuleFunction.Function_, unknown> }
12
- = {
13
- ':index.js': [
14
- 'ok',
15
- require_ => m0 => {
16
- let [r, m] = require_('./b')(m0);
17
- if (r[0] === 'error') { throw JSON.stringify(r) }
18
- [r, m] = require_('./a/')(m);
19
- if (r[0] === 'error') { throw JSON.stringify(r) }
20
- [r, m] = require_('x/r')(m);
21
- if (r[0] === 'error') { throw JSON.stringify(r) }
22
- return [['ok', ':index.js'], m]
23
- }],
24
- ':b.js': [
25
- 'ok',
26
- () => m0 => [['ok', ':b.js'], m0]],
27
- ':a/index.js': [
28
- 'ok',
29
- () => m0 => [['ok', ':a/index.js'], m0]],
30
- 'x:r.js': [
31
- 'ok',
32
- () => m0 => [['ok', 'x:r.js'], m0]],
33
- }
34
-
35
- const compile
36
- : ModuleFunction.Compile
37
- = source => compileMap[source] ?? ['error', 'invalid source']
38
-
39
- type StringMap = { readonly [k in string]: string }
40
-
41
- const packageMap
42
- : { readonly [k in string]: { readonly dependencies: StringMap, readonly files: StringMap }}
43
- = {
44
- '': {
45
- dependencies: {
46
- 'x': '/node_modules/x'
47
- },
48
- files: {
49
- 'index.js': ':index.js',
50
- 'b.js': ':b.js',
51
- 'a/index.js': ':a/index.js',
52
- }
53
- },
54
- '/node_modules/x': {
55
- dependencies: {},
56
- files: {
57
- 'r.js': 'x:r.js'
58
- }
59
- },
60
- }
61
-
62
- const packageGet
63
- : Package.Get
64
- = packageId => {
65
- const p = at(packageId)(packageMap)
66
- return p === null ? null :
67
- {
68
- dependency: dependency => at(dependency)(p.dependencies),
69
- file: file => at(file)(p.files),
70
- }
71
- }
72
-
73
- const getOrBuild = _.getOrBuild
74
- (compile)
75
- (packageGet)
76
- (map as Module.MapInterface<map.Map<Module.State>>)
77
-
78
- export default () => {
79
- let [r, m] = getOrBuild({ package: '', path: ['index.js'] })(map.empty)
80
- {
81
- if (r === null) { throw 'r === null' }
82
- const x = JSON.stringify(r)
83
- if (x !==
84
- '["ok",{"exports":":index.js","requireMap":{"./a/":"/a/index.js","./b":"/b.js","x/r":"/node_modules/x/r.js"}}]'
85
- ) {
86
- throw `0:${x}`
87
- }
88
- }
89
- {
90
- [r, m] = getOrBuild({ package: '', path: ['b.js'] })(m)
91
- const x = JSON.stringify(r)
92
- if (x !==
93
- '["ok",{"exports":":b.js","requireMap":{}}]'
94
- ) {
95
- throw x
96
- }
97
- }
98
- {
99
- [r, m] = getOrBuild({ package: '', path: ['c.js'] })(m)
100
- const x = JSON.stringify(r)
101
- if (x !==
102
- '["error",["file not found"]]'
103
- ) {
104
- throw x
105
- }
106
- }
107
- }
@@ -1,41 +0,0 @@
1
- import * as O from '../../types/object/module.f.ts'
2
-
3
- export type MapInterface<M> = {
4
- readonly at: (moduleId: string) => (moduleMap: M) => State | null
5
- readonly setReplace: (moduleId: string) => (moduleState: State) => (moduleMap: M) => M
6
- }
7
-
8
- export type State = |
9
- readonly['ok', Module] |
10
- readonly['error', Error]
11
-
12
- type Module = {
13
- readonly exports: unknown
14
- readonly requireMap: O.Map<string>
15
- }
16
-
17
- export type Error = |
18
- ['file not found'] |
19
- ['compilation error', unknown] |
20
- ['runtime error', unknown] |
21
- ['circular reference']
22
-
23
- export type Id = {
24
- readonly package: string
25
- readonly path: readonly string[]
26
- }
27
-
28
- export const dir
29
- : (id: Id) => Id | null
30
- = id => {
31
- const len = id.path.length
32
- if (len < 1) { return null }
33
- return {
34
- package: id.package,
35
- path: id.path.slice(0, len - 1)
36
- }
37
- }
38
-
39
- export const idToString
40
- : (id: Id) => string
41
- = id => `${id.package}/${id.path.join('/')}`
@@ -1,7 +0,0 @@
1
- type PackageMap = (packageName: string) => PackageMap|Package|null
2
-
3
- type Package = readonly[
4
- string,
5
- PackageMap,
6
- (fileName: string) => string|null
7
- ]
@@ -1,31 +0,0 @@
1
- import unsafeResult from '../types/result/module.ts'
2
- const { tryCatch } = unsafeResult
3
- import * as result from '../types/result/module.f.ts'
4
- const { unwrap } = result
5
- import * as ModuleFunction from './module/function/module.f.ts'
6
-
7
- const build
8
- : (f: Function) => ModuleFunction.Function_
9
- = f => immutableRequire => mutableData => {
10
- const mutableRequire
11
- : (path: string) => unknown
12
- = path => {
13
- const [result, data] = immutableRequire(path)(mutableData)
14
- // Side effect: setting a variable from a nested function (closure)
15
- // is not allowed in FunctionalScript.
16
- mutableData = data
17
- return unwrap(result)
18
- }
19
- const result = tryCatch(() => {
20
- const mutableModule = { exports: {} }
21
- f(mutableModule, mutableRequire)
22
- return mutableModule.exports
23
- })
24
- return [result, mutableData]
25
- }
26
-
27
- export const compile
28
- : ModuleFunction.Compile
29
- = source =>
30
- // Side effect: a `Function` constructor is not allowed in FunctionalScript.
31
- tryCatch(() => build(Function('module', 'require', `"use strict";${source}`)))
@@ -1,22 +0,0 @@
1
- import * as json from '../../../json/module.f.ts'
2
- const { isObject } = json
3
- import * as list from '../../../types/list/module.f.ts'
4
- const { map, every } = list
5
- const { entries } = Object
6
-
7
- type DependencyJson = readonly[string, string]
8
-
9
- type DependencyMapJson = {readonly[k in string]: string}
10
-
11
- export type DependenciesJson = DependencyMapJson|null
12
-
13
- const isDependencyJson
14
- : (entry: json.Entry) => boolean
15
- = ([, v]) => typeof v === 'string'
16
-
17
- export const isDependenciesJson
18
- = (j: json.Unknown): j is DependenciesJson => {
19
- if (j === null) { return true }
20
- if (!isObject(j)) { return false }
21
- return every(map(isDependencyJson)(entries(j)))
22
- }
@@ -1,8 +0,0 @@
1
- import * as _ from './module.f.ts'
2
-
3
- export default () => {
4
- if (!_.isDependenciesJson(null)) { throw 'error' }
5
- if (!_.isDependenciesJson({})) { throw 'error' }
6
- if (!_.isDependenciesJson({'a':'b'})) { throw 'error' }
7
- if (_.isDependenciesJson({ 'a': 12 })) { throw 'error' }
8
- }
@@ -1,31 +0,0 @@
1
- import * as json from '../../json/module.f.ts'
2
- const { isObject } = json
3
- import * as dependencies from './dependencies/module.f.ts'
4
- const { isDependenciesJson } = dependencies
5
- import * as o from '../../types/object/module.f.ts'
6
- const { at } = o
7
-
8
- type PackageJson = {
9
- readonly name: string
10
- readonly version: string
11
- readonly dependencies?: dependencies.DependenciesJson
12
- }
13
-
14
- export const isPackageJson
15
- = (j: json.Unknown): j is PackageJson => {
16
- if (!isObject(j)) { return false }
17
- if (typeof j.name !== 'string') { return false }
18
- if (typeof j.version !== 'string') { return false }
19
- if (!isDependenciesJson(at('dependencies')(j))) { return false }
20
- return true
21
- }
22
-
23
- export type Package = {
24
- readonly dependency: (localPackageId: string) => string | null
25
- readonly file: (localFileId: string) => string | null
26
- }
27
-
28
- /**
29
- * @note Current package has an empty string '' as a packageId.
30
- */
31
- export type Get = (packageId: string) => Package | null
@@ -1,12 +0,0 @@
1
- import * as _ from './module.f.ts'
2
-
3
- export default () => {
4
- if (_.isPackageJson(null)) { throw 'error' }
5
- if (_.isPackageJson({})) { throw 'error' }
6
- if (_.isPackageJson({name:'x',version:12})) { throw 'error' }
7
- if (!_.isPackageJson({name:'x',version:"12"})) { throw 'error' }
8
- if (_.isPackageJson({version:"",dependencies:[]})) { throw 'error' }
9
- if (!_.isPackageJson({name:'a', version: "", dependencies: {} })) { throw 'error' }
10
- if (_.isPackageJson({name:'b', version: "", dependencies: { x: 12} })) { throw 'error' }
11
- if (!_.isPackageJson({name:'c', version: "", dependencies: { x: "12" } })) { throw 'error' }
12
- }
@@ -1,17 +0,0 @@
1
- # Path
2
-
3
- ## Simplified Common.js
4
-
5
- A path should be disambiguous.
6
-
7
- Path limitations:
8
-
9
- - Accepted file extensions: `.f.js`, `.json`.
10
- - A file path should be fully specified. For example `../package/dependencies/test.f.js`.
11
- - A package name can't contain `/`. For example
12
- - `functionalscript/main.f.js` is allowed.
13
- - `functionalscript/functionalscript/main.f.js` is not allowed.
14
-
15
- `package.json` limitations:
16
-
17
- - Only GitHub packages can be referenced. In the future, we may add generic Git repositories.