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
@@ -0,0 +1,59 @@
1
+ import * as list from "../types/list/module.f.js";
2
+ const { equal, isEmpty, fold, toArray, scan, foldScan, empty: emptyList } = list;
3
+ import * as byteSet from "../types/byte_set/module.f.js";
4
+ const { toRangeMap, union: byteSetUnion, one, empty } = byteSet;
5
+ import * as sortedSet from "../types/sorted_set/module.f.js";
6
+ const { intersect, union: sortedSetUnion } = sortedSet;
7
+ import * as rangeMap from "../types/range_map/module.f.js";
8
+ const { merge } = rangeMap;
9
+ import * as cmp from "../types/function/compare/module.f.js";
10
+ const { unsafeCmp } = cmp;
11
+ import * as operator from "../types/function/operator/module.f.js";
12
+ const { strictEqual } = operator;
13
+ import * as j from "../json/module.f.js";
14
+ const { stringify } = j;
15
+ import * as f from "../types/function/module.f.js";
16
+ const { identity } = f;
17
+ import * as utf16 from "../text/utf16/module.f.js";
18
+ const { stringToList } = utf16;
19
+ const stringifyIdentity = stringify(identity);
20
+ export const toRange = s => {
21
+ const [b, e] = toArray(stringToList(s));
22
+ return byteSet.range([b, e]);
23
+ };
24
+ const toUnionOp = i => bs => byteSetUnion(bs)(one(i));
25
+ export const toUnion = s => {
26
+ const codePoints = stringToList(s);
27
+ return fold(toUnionOp)(empty)(codePoints);
28
+ };
29
+ const mergeOp = { union: sortedSetUnion(unsafeCmp), equal: equal(strictEqual) };
30
+ const hasState = s => set => !isEmpty(intersect(unsafeCmp)([s])(set));
31
+ const foldOp = set => ([ruleIn, bs, ruleOut]) => rm => {
32
+ if (hasState(ruleIn)(set)) {
33
+ return merge(mergeOp)(rm)(toRangeMap(bs)(ruleOut));
34
+ }
35
+ return rm;
36
+ };
37
+ const stringifyOp = ([sortedSet, max]) => [[stringifyIdentity(sortedSet), max], stringifyOp];
38
+ const scanStringify = scan(stringifyOp);
39
+ const fetchOp = ([item, _]) => [item, fetchOp];
40
+ const scanFetch = scan(fetchOp);
41
+ const addEntry = grammar => set => dfa => {
42
+ const s = stringifyIdentity(set);
43
+ if (s in dfa) {
44
+ return dfa;
45
+ }
46
+ const setMap = fold(foldOp(set))(emptyList)(grammar);
47
+ const stringMap = toArray(scanStringify(setMap));
48
+ const newDfa = { ...dfa, [s]: stringMap };
49
+ const newStates = scanFetch(setMap);
50
+ return fold(addEntry(grammar))(newDfa)(newStates);
51
+ };
52
+ const emptyState = [];
53
+ const emptyStateStringify = stringifyIdentity(emptyState);
54
+ const initialState = [''];
55
+ const initialStateStringify = stringifyIdentity(initialState);
56
+ export const dfa = grammar => addEntry(grammar)(initialState)({});
57
+ const get = rangeMap.get(emptyStateStringify);
58
+ const runOp = dfa => input => s => get(input)(dfa[s]);
59
+ export const run = dfa => input => foldScan(runOp(dfa))(initialStateStringify)(input);
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ dfa: () => void;
3
+ run: (() => void)[];
4
+ };
5
+ export default _default;
package/fsm/test.f.js ADDED
@@ -0,0 +1,137 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as byteSet from "../types/byte_set/module.f.js";
3
+ import * as o from "../types/object/module.f.js";
4
+ const { sort, fromEntries } = o;
5
+ import * as json from "../json/module.f.js";
6
+ import * as f from "../types/function/module.f.js";
7
+ const { identity } = f;
8
+ import * as list from "../types/list/module.f.js";
9
+ const { toArray } = list;
10
+ import * as utf16 from "../text/utf16/module.f.js";
11
+ const { stringToList } = utf16;
12
+ const stringifyIdentity = json.stringify(identity);
13
+ const buildDfa = () => {
14
+ const lowercaseAlpha = _.toRange('az');
15
+ const uppercaseAlpha = _.toRange('AZ');
16
+ const alpha = byteSet.union(lowercaseAlpha)(uppercaseAlpha);
17
+ const idSymbol = _.toUnion('_$');
18
+ const idBegin = byteSet.union(alpha)(idSymbol);
19
+ const digit = _.toRange('09');
20
+ const idNext = byteSet.union(idBegin)(digit);
21
+ const dot = _.toUnion('.');
22
+ const grammar = [
23
+ ['', digit, 'int'],
24
+ ['int', digit, 'int'],
25
+ ['', digit, 'floatBegin'],
26
+ ['floatBegin', digit, 'floatBegin'],
27
+ ['floatBegin', dot, 'floatDot'],
28
+ ['floatDot', digit, 'float'],
29
+ ['float', digit, 'float'],
30
+ ['', idBegin, 'id'],
31
+ ['id', idNext, 'id']
32
+ ];
33
+ return _.dfa(grammar);
34
+ };
35
+ export default {
36
+ dfa: () => {
37
+ const dfa = buildDfa();
38
+ const entries = Object.entries(dfa);
39
+ const sortedEntries = sort(entries);
40
+ const obj = fromEntries(sortedEntries);
41
+ const result = stringifyIdentity(obj);
42
+ const expectedObj = {
43
+ '[""]': [
44
+ ['[]', 35],
45
+ ['["id"]', 36],
46
+ ['[]', 47],
47
+ ['["floatBegin","int"]', 57],
48
+ ['[]', 64],
49
+ ['["id"]', 90],
50
+ ['[]', 94],
51
+ ['["id"]', 95],
52
+ ['[]', 96],
53
+ ['["id"]', 122]
54
+ ],
55
+ '["float"]': [['[]', 47], ['["float"]', 57]],
56
+ '["floatBegin","int"]': [
57
+ ['[]', 45],
58
+ ['["floatDot"]', 46],
59
+ ['[]', 47],
60
+ ['["floatBegin","int"]', 57]
61
+ ],
62
+ '["floatDot"]': [['[]', 47], ['["float"]', 57]],
63
+ '["id"]': [
64
+ ['[]', 35],
65
+ ['["id"]', 36],
66
+ ['[]', 47],
67
+ ['["id"]', 57],
68
+ ['[]', 64],
69
+ ['["id"]', 90],
70
+ ['[]', 94],
71
+ ['["id"]', 95],
72
+ ['[]', 96],
73
+ ['["id"]', 122]
74
+ ],
75
+ '[]': []
76
+ };
77
+ const expectedResult = stringifyIdentity(expectedObj);
78
+ if (result !== expectedResult) {
79
+ throw result;
80
+ }
81
+ },
82
+ run: [
83
+ () => {
84
+ const dfa = buildDfa();
85
+ const input = stringToList('a1');
86
+ const result = stringifyIdentity(toArray(_.run(dfa)(input)));
87
+ const expectedOutput = [
88
+ '["id"]',
89
+ '["id"]'
90
+ ];
91
+ const expectedResult = stringifyIdentity(expectedOutput);
92
+ if (result !== expectedResult) {
93
+ throw result;
94
+ }
95
+ },
96
+ () => {
97
+ const dfa = buildDfa();
98
+ const input = stringToList('0.1');
99
+ const result = stringifyIdentity(toArray(_.run(dfa)(input)));
100
+ const expectedOutput = [
101
+ '["floatBegin","int"]',
102
+ '["floatDot"]',
103
+ '["float"]'
104
+ ];
105
+ const expectedResult = stringifyIdentity(expectedOutput);
106
+ if (result !== expectedResult) {
107
+ throw result;
108
+ }
109
+ },
110
+ () => {
111
+ const dfa = buildDfa();
112
+ const input = stringToList('//');
113
+ const result = stringifyIdentity(toArray(_.run(dfa)(input)));
114
+ const expectedOutput = [
115
+ '[]',
116
+ '[]'
117
+ ];
118
+ const expectedResult = stringifyIdentity(expectedOutput);
119
+ if (result !== expectedResult) {
120
+ throw result;
121
+ }
122
+ },
123
+ () => {
124
+ const dfa = buildDfa();
125
+ const input = stringToList('::');
126
+ const result = stringifyIdentity(toArray(_.run(dfa)(input)));
127
+ const expectedOutput = [
128
+ '[]',
129
+ '[]'
130
+ ];
131
+ const expectedResult = stringifyIdentity(expectedOutput);
132
+ if (result !== expectedResult) {
133
+ throw result;
134
+ }
135
+ }
136
+ ]
137
+ };
@@ -0,0 +1,13 @@
1
+ import { type List } from '../types/list/module.f.ts';
2
+ type Tag = string;
3
+ type Element1 = readonly [Tag, ...Node[]];
4
+ type Element2 = readonly [Tag, Attributes, ...Node[]];
5
+ export type Element = Element1 | Element2;
6
+ type Attributes = {
7
+ readonly [k in string]: string;
8
+ };
9
+ type Node = Element | string;
10
+ export declare const element: (element: Element) => List<string>;
11
+ export declare const html: (_: Element) => List<string>;
12
+ export declare const htmlToString: (_: Element) => string;
13
+ export {};
@@ -0,0 +1,58 @@
1
+ import { map, flatMap, flat, concat as listConcat } from "../types/list/module.f.js";
2
+ import { concat as stringConcat } from "../types/string/module.f.js";
3
+ import * as O from "../types/object/module.f.js";
4
+ import { compose } from "../types/function/module.f.js";
5
+ import * as utf16 from "../text/utf16/module.f.js";
6
+ const { stringToList } = utf16;
7
+ const { fromCharCode } = String;
8
+ const { entries } = Object;
9
+ /**
10
+ * Void Elements
11
+ *
12
+ * https://developer.mozilla.org/en-US/docs/Glossary/Void_element
13
+ */
14
+ const voidTagList = [
15
+ 'area',
16
+ 'base',
17
+ 'br',
18
+ 'col',
19
+ 'embed',
20
+ 'hr',
21
+ 'img',
22
+ 'input',
23
+ 'link',
24
+ 'meta',
25
+ 'param',
26
+ 'source',
27
+ 'track',
28
+ 'wbr',
29
+ ];
30
+ const isVoid = tag => voidTagList.includes(tag);
31
+ /**
32
+ * https://stackoverflow.com/questions/7381974/which-characters-need-to-be-escaped-in-html
33
+ */
34
+ const escapeCharCode = code => {
35
+ switch (code) {
36
+ case 0x22: return '&quot;';
37
+ case 0x26: return '&amp;';
38
+ case 0x3C: return '&lt;';
39
+ case 0x3E: return '&gt;';
40
+ default: return fromCharCode(code);
41
+ }
42
+ };
43
+ const escape = compose(stringToList)(map(escapeCharCode));
44
+ const node = n => typeof n === 'string' ? escape(n) : element(n);
45
+ const nodes = flatMap(node);
46
+ const attribute = ([name, value]) => flat([[' ', name, '="'], escape(value), ['"']]);
47
+ const attributes = compose(entries)(flatMap(attribute));
48
+ const open = t => a => flat([[`<`, t], attributes(a), [`>`]]);
49
+ const element3 = t => ([a, n]) => {
50
+ const o = flat([[`<`, t], attributes(a), [`>`]]);
51
+ return isVoid(t) ? o : flat([o, nodes(n), ['</', t, '>']]);
52
+ };
53
+ export const element = e => {
54
+ const [t, a, ...n] = e;
55
+ return element3(t)(a === undefined ? [{}, []] : typeof a === 'object' && !(a instanceof Array) ? [a, n] : [{}, [a, ...n]]);
56
+ };
57
+ export const html = compose(element)(listConcat(['<!DOCTYPE html>']));
58
+ export const htmlToString = compose(html)(stringConcat);
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ empty: () => void;
3
+ empty2: () => void;
4
+ void: () => void;
5
+ some: () => void;
6
+ some2: () => void;
7
+ someVoid: () => void;
8
+ };
9
+ export default _default;
package/html/test.f.js ADDED
@@ -0,0 +1,42 @@
1
+ import * as _ from "./module.f.js";
2
+ export default {
3
+ empty: () => {
4
+ const r = _.htmlToString(['html']);
5
+ if (r !== '<!DOCTYPE html><html></html>') {
6
+ throw `empty: ${r}`;
7
+ }
8
+ },
9
+ empty2: () => {
10
+ const r = _.htmlToString(['html']);
11
+ if (r !== '<!DOCTYPE html><html></html>') {
12
+ throw r;
13
+ }
14
+ },
15
+ void: () => {
16
+ const r = _.htmlToString(['area']);
17
+ if (r !== '<!DOCTYPE html><area>') {
18
+ throw r;
19
+ }
20
+ },
21
+ some: () => {
22
+ const x = ['div', {}, '<div>&amp;</div>', ['a', { href: 'hello"' }]];
23
+ const s = _.htmlToString(x);
24
+ if (s !== '<!DOCTYPE html><div>&lt;div&gt;&amp;amp;&lt;/div&gt;<a href="hello&quot;"></a></div>') {
25
+ throw s;
26
+ }
27
+ },
28
+ some2: () => {
29
+ const x = ['div', '<div>&amp;</div>', ['a', { href: 'hello"' }]];
30
+ const s = _.htmlToString(x);
31
+ if (s !== '<!DOCTYPE html><div>&lt;div&gt;&amp;amp;&lt;/div&gt;<a href="hello&quot;"></a></div>') {
32
+ throw s;
33
+ }
34
+ },
35
+ someVoid: () => {
36
+ const x = ['div', ['br', { id: '5' }], '<div>&amp;</div>', ['a', { href: 'hello"' }]];
37
+ const s = _.htmlToString(x);
38
+ if (s !== '<!DOCTYPE html><div><br id="5">&lt;div&gt;&amp;amp;&lt;/div&gt;<a href="hello&quot;"></a></div>') {
39
+ throw s;
40
+ }
41
+ }
42
+ };
@@ -0,0 +1,16 @@
1
+ declare const _default: {
2
+ literal: () => void;
3
+ ownProperty: {
4
+ nullish: () => void;
5
+ bool: () => void;
6
+ array: () => void;
7
+ object: {
8
+ null: () => void;
9
+ undefined: () => void;
10
+ };
11
+ string: {
12
+ number: () => void;
13
+ };
14
+ };
15
+ };
16
+ export default _default;
@@ -0,0 +1,70 @@
1
+ const at = a => i => Object.getOwnPropertyDescriptor(a, i)?.value;
2
+ const utf8 = (...x) => x;
3
+ export default {
4
+ literal: () => {
5
+ const x = utf8 `17`;
6
+ const m = '<html>Hello</html>';
7
+ },
8
+ ownProperty: {
9
+ nullish: () => {
10
+ /* // panic
11
+ const v = Object.getOwnPropertyDescriptor(null, 0)
12
+ if (v !== undefined) {
13
+ throw v
14
+ }
15
+ */
16
+ /* // panic
17
+ const v = Object.getOwnPropertyDescriptor(undefined, 0)
18
+ if (v !== undefined) {
19
+ throw v
20
+ }
21
+ */
22
+ },
23
+ bool: () => {
24
+ const v = at(true)('x');
25
+ if (v !== undefined) {
26
+ throw v;
27
+ }
28
+ },
29
+ array: () => {
30
+ const a = ['42'];
31
+ {
32
+ const v = at(a)('0');
33
+ if (v !== '42') {
34
+ throw v;
35
+ }
36
+ }
37
+ {
38
+ const v = at(a)(0);
39
+ if (v !== '42') {
40
+ throw v;
41
+ }
42
+ }
43
+ },
44
+ object: {
45
+ null: () => {
46
+ const o = { null: 'hello' };
47
+ const v = at(o)(null);
48
+ if (v !== 'hello') {
49
+ throw v;
50
+ }
51
+ },
52
+ undefined: () => {
53
+ const o = { undefined: 'hello' };
54
+ const v = at(o)(undefined);
55
+ if (v !== 'hello') {
56
+ throw v;
57
+ }
58
+ }
59
+ },
60
+ string: {
61
+ number: () => {
62
+ const o = 'hello';
63
+ const v = at(o)(1);
64
+ if (v !== 'e') {
65
+ throw v;
66
+ }
67
+ }
68
+ }
69
+ }
70
+ };
@@ -0,0 +1,86 @@
1
+ import * as list from '../../types/list/module.f.ts';
2
+ import * as bigfloatT from '../../types/bigfloat/module.f.ts';
3
+ export type StringToken = {
4
+ readonly kind: 'string';
5
+ readonly value: string;
6
+ };
7
+ export type NumberToken = {
8
+ readonly kind: 'number';
9
+ readonly value: string;
10
+ readonly bf: bigfloatT.BigFloat;
11
+ };
12
+ export type BigIntToken = {
13
+ readonly kind: 'bigint';
14
+ readonly value: bigint;
15
+ };
16
+ export type ErrorToken = {
17
+ readonly kind: 'error';
18
+ message: ErrorMessage;
19
+ };
20
+ export type WhitespaceToken = {
21
+ readonly kind: 'ws';
22
+ };
23
+ export type NewLineToken = {
24
+ readonly kind: 'nl';
25
+ };
26
+ type TrueToken = {
27
+ readonly kind: 'true';
28
+ };
29
+ type FalseToken = {
30
+ readonly kind: 'false';
31
+ };
32
+ type NullToken = {
33
+ readonly kind: 'null';
34
+ };
35
+ type UndefinedToken = {
36
+ readonly kind: 'undefined';
37
+ };
38
+ type KeywordToken = {
39
+ readonly kind: 'arguments' | 'await' | 'break' | 'case' | 'catch' | 'class' | 'const' | 'continue';
40
+ } | {
41
+ readonly kind: 'debugger' | 'default' | 'delete' | 'do' | 'else' | 'enum' | 'eval' | 'export';
42
+ } | {
43
+ readonly kind: 'extends' | 'finally' | 'for' | 'function' | 'if' | 'implements' | 'import' | 'in';
44
+ } | {
45
+ readonly kind: 'instanceof' | 'interface' | 'let' | 'new' | 'package' | 'private' | 'protected' | 'public';
46
+ } | {
47
+ readonly kind: 'return' | 'static' | 'super' | 'switch' | 'this' | 'throw' | 'try' | 'typeof';
48
+ } | {
49
+ readonly kind: 'var' | 'void' | 'while' | 'with' | 'yield';
50
+ };
51
+ export type IdToken = {
52
+ readonly kind: 'id';
53
+ readonly value: string;
54
+ };
55
+ type OperatorToken = {
56
+ readonly kind: '{' | '}' | ':' | ',' | '[' | ']';
57
+ } | {
58
+ readonly kind: '.' | '=';
59
+ } | {
60
+ readonly kind: '(' | ')';
61
+ } | {
62
+ readonly kind: '==' | '!=' | '===' | '!==' | '>' | '>=' | '<' | '<=';
63
+ } | {
64
+ readonly kind: '+' | '-' | '*' | '/' | '%' | '++' | '--' | '**';
65
+ } | {
66
+ readonly kind: '+=' | '-=' | '*=' | '/=' | '%=' | '**=';
67
+ } | {
68
+ readonly kind: '&' | '|' | '^' | '~' | '<<' | '>>' | '>>>';
69
+ } | {
70
+ readonly kind: '&=' | '|=' | '^=' | '<<=' | '>>=' | '>>>=';
71
+ } | {
72
+ readonly kind: '&&' | '||' | '!' | '??';
73
+ } | {
74
+ readonly kind: '&&=' | '||=' | '??=';
75
+ } | {
76
+ readonly kind: '?' | '?.' | '=>';
77
+ };
78
+ export type CommentToken = {
79
+ readonly kind: '//' | '/*';
80
+ readonly value: string;
81
+ };
82
+ export type JsToken = KeywordToken | TrueToken | FalseToken | NullToken | WhitespaceToken | NewLineToken | StringToken | NumberToken | ErrorToken | IdToken | BigIntToken | UndefinedToken | OperatorToken | CommentToken;
83
+ type ErrorMessage = '" are missing' | 'unescaped character' | 'invalid hex value' | 'unexpected character' | 'invalid number' | 'invalid token' | '*\/ expected' | 'unterminated string literal' | 'eof';
84
+ export declare const isKeywordToken: (token: JsToken) => Boolean;
85
+ export declare const tokenize: (input: list.List<number>) => list.List<JsToken>;
86
+ export {};