functionalscript 0.3.4 → 0.3.6

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
@@ -1,84 +0,0 @@
1
- import * as _ from './module.f.ts'
2
- import * as list from '../list/module.f.ts'
3
- const { every, countdown, map, toArray } = list
4
- import * as json from '../../json/module.f.ts'
5
- import * as o from '../object/module.f.ts'
6
- const { sort } = o
7
-
8
- const stringify
9
- : (a: readonly json.Unknown[]) => string
10
- = json.stringify(sort)
11
-
12
- export default {
13
- has: [
14
- () => {
15
- if (_.has(0)(_.empty)) { throw _.empty }
16
- if (_.has(1)(_.empty)) { throw _.empty }
17
- if (_.has(33)(_.empty)) { throw _.empty }
18
- },
19
- () => {
20
- const s = _.set(0)(_.empty)
21
- if (s !== 1n) { throw s }
22
- if (!_.has(0)(s)) { throw s }
23
- if (_.has(1)(s)) { throw s }
24
- if (_.has(33)(s)) { throw s }
25
- },
26
- () => {
27
- const s = _.set(33)(_.empty)
28
- if (s !== 8589934592n) { throw s }
29
- if (_.has(0)(s)) { throw s }
30
- if (_.has(1)(s)) { throw s }
31
- if (!_.has(33)(s)) { throw s }
32
- }
33
- ],
34
- setRange: () => {
35
- const result = _.setRange([2, 5])(_.empty)
36
- if (result !== 60n) { throw result }
37
- },
38
- unset: [
39
- () => {
40
- const a = _.set(0)(_.empty)
41
- const result = _.unset(0)(a)
42
- if (result !== 0n) { throw result }
43
- },
44
- () => {
45
- const a = _.set(255)(_.empty)
46
- const result = _.unset(255)(a)
47
- if (result !== 0n) { throw result }
48
- }
49
- ],
50
- universe: () => {
51
- const x = every(map((v: any) => _.has(v)(_.universe))(countdown(256)))
52
- if (!x) { throw x }
53
- },
54
- compliment: {
55
- empty: () => {
56
- const r = _.complement(_.empty)
57
- if (r !== _.universe) { throw r }
58
- },
59
- universe: () => {
60
- const r = _.complement(_.universe)
61
- if (r !== _.empty) { throw r }
62
- },
63
- },
64
- toRangeMap: [
65
- () => {
66
- const result = stringify(toArray(_.toRangeMap(_.empty)('a')))
67
- if (result !== '[]') { throw result }
68
- },
69
- () => {
70
- const s = _.set(0)(_.empty)
71
- const result = stringify(toArray(_.toRangeMap(s)('a')))
72
- if (result !== '[[["a"],0]]') { throw result }
73
- },
74
- () => {
75
- const s = _.setRange([1,2])(_.empty)
76
- const result = stringify(toArray(_.toRangeMap(s)('a')))
77
- if (result !== '[[[],0],[["a"],2]]') { throw result }
78
- },
79
- () => {
80
- const result = stringify(toArray(_.toRangeMap(_.universe)('a')))
81
- if (result !== '[[["a"],255]]') { throw result }
82
- },
83
- ]
84
- }
@@ -1,26 +0,0 @@
1
- import * as Array from '../../array/module.f.ts'
2
-
3
- export type Index3 = Array.Index3
4
-
5
- export type Index5 = Array.Index5
6
-
7
- type Array2<T> = Array.Array2<T>
8
-
9
- export type Sign = -1|0|1
10
-
11
- export type Compare<T> = (_: T) => Sign
12
-
13
- export const index3
14
- : <T>(cmp: Compare<T>) => (value: T) => Index3
15
- = cmp => value => (cmp(value) + 1) as Index3
16
-
17
- export const index5
18
- : <T>(cmp: Compare<T>) => (v2: Array2<T>) => Index5
19
- = cmp => ([v0, v1]) => {
20
- const _0 = cmp(v0)
21
- return (_0 <= 0 ? _0 + 1 : cmp(v1) + 3) as Index5
22
- }
23
-
24
- export const unsafeCmp
25
- : <T>(a: T) => (b: T) => Sign
26
- = a => b => a < b ? -1 : a > b ? 1 : 0
@@ -1,7 +0,0 @@
1
- import * as _ from './module.f.ts'
2
- const { unsafeCmp } = _
3
-
4
- export default () => {
5
- const result = unsafeCmp(true)(false)
6
- if (result !== 1) { throw result }
7
- }
@@ -1,43 +0,0 @@
1
- /**
2
- * A generic function type.
3
- */
4
- type Func<I, O> = (_: I) => O
5
-
6
- /**
7
- * A postfix compose function.
8
- */
9
- export const compose
10
- : <I, X>(g: Func<I, X>) => <O>(f: Func<X, O>) => Func<I, O>
11
- = g => f => x => f(g(x))
12
-
13
- /**
14
- * A generic identity function.
15
- */
16
- export const identity
17
- : <T>(value: T) => T
18
- = value => value
19
-
20
- /**
21
- * Flips the arguments of a curried function.
22
- */
23
- export const flip
24
- : <A, B, C>(f: (a: A) => (b: B) => C) => (b: B) => (a: A) => C
25
- = f => b => a => f(a)(b)
26
-
27
- /**
28
- * A functional utility type that enables seamless chaining of transformations.
29
- */
30
- type Fn<I, O> = {
31
- readonly result: Func<I, O>
32
- readonly then: <T>(g: Func<O, T>) => Fn<I, T>
33
- }
34
-
35
- /**
36
- * Creates an `Fn` instance from a function, enabling chaining of transformations.
37
- */
38
- export const fn
39
- : <I, O>(f: (i: I) => O) => Fn<I, O>
40
- = result => ({
41
- result,
42
- then: g => fn(compose(result)(g))
43
- })
@@ -1,65 +0,0 @@
1
- type Binary<A, B, R> = (a: A) => (b: B) => R
2
-
3
- export type Fold<I, O> = Binary<I, O, O>
4
-
5
- export const join
6
- : (separator: string) => Reduce<string>
7
- = separator => value => prior => `${prior}${separator}${value}`
8
-
9
- export const concat
10
- : Reduce<string>
11
- = i => acc => `${acc}${i}`
12
-
13
- export type Unary<T, R> = (value: T) => R
14
-
15
- export const logicalNot
16
- : Unary<boolean, boolean>
17
- = v => !v
18
-
19
- export type Equal<T> = Binary<T, T, boolean>
20
-
21
- export const strictEqual
22
- : <T>(a: T) => (b: T) => boolean
23
- = a => b => a === b
24
-
25
- export type Scan<I, O> = (input: I) => readonly[O, Scan<I,O>]
26
-
27
- export type StateScan<I, S, O> = (prior: S) => (input: I) => readonly[O, S]
28
-
29
- export const stateScanToScan
30
- : <I, S, O>(op: StateScan<I, S, O>) => (prior: S) => Scan<I, O>
31
- = op => prior => i => {
32
- const [o, s] = op(prior)(i)
33
- return [o, stateScanToScan(op)(s)]
34
- }
35
-
36
- export const foldToScan
37
- : <I, O>(fold: Fold<I, O>) => (prior: O) => Scan<I, O>
38
- = fold => prior => i => {
39
- const result = fold(i)(prior)
40
- return [result, foldToScan(fold)(result)]
41
- }
42
-
43
- export type Reduce<T> = Fold<T, T>
44
-
45
- export const reduceToScan
46
- : <T>(fold: Reduce<T>) => Scan<T, T>
47
- = op => init => [init, foldToScan(op)(init)]
48
-
49
- export const addition
50
- : Reduce<number>
51
- = a => b => a + b
52
-
53
- export const min
54
- : Reduce<number>
55
- = a => b => a < b ? a : b
56
-
57
- export const max
58
- : Reduce<number>
59
- = a => b => a > b ? a : b
60
-
61
- export const increment
62
- : (b: number) => number
63
- = addition(1)
64
-
65
- export const counter = () => increment
@@ -1,20 +0,0 @@
1
- import * as _ from './module.f.ts'
2
-
3
- const { fn } = _
4
-
5
- export default () => {
6
- const f
7
- : (x: string) => readonly[string]
8
- = x => [x]
9
- const g
10
- : (x: readonly[string]) => readonly[number]
11
- = ([x]) => [x.length]
12
- const w
13
- : (x: readonly[number]) => number
14
- = ([x]) => x
15
-
16
- const r = fn(f).then(g).then(w).result
17
-
18
- const result = r('hello')
19
- if (result !== 5) { throw r }
20
- }
@@ -1,350 +0,0 @@
1
- import { identity, fn, compose } from '../function/module.f.ts'
2
- import {
3
- addition,
4
- logicalNot,
5
- strictEqual,
6
- stateScanToScan,
7
- foldToScan,
8
- reduceToScan,
9
- type Scan,
10
- type StateScan,
11
- type Fold,
12
- type Reduce,
13
- type Equal,
14
- } from '../function/operator/module.f.ts'
15
-
16
- export type List<T> = NotLazy<T> | Thunk<T>
17
-
18
- type NotLazy<T> = |
19
- Result<T> |
20
- Concat<T> |
21
- readonly T[]
22
-
23
- type Empty = null
24
-
25
- export type Result<T> = Empty | NonEmpty<T>
26
-
27
- export type Thunk<T> = () => List<T>
28
-
29
- type NonEmpty<T> = {
30
- readonly first: T
31
- readonly tail: List<T>
32
- }
33
-
34
- type Concat<T> = {
35
- readonly head: List<T>
36
- readonly tail: List<T>
37
- }
38
-
39
- const fromArray
40
- : <T>(array: readonly T[]) => Result<T>
41
- = array => {
42
- type T = typeof array extends readonly (infer T)[] ? T : never
43
- const at
44
- : (i: number) => Result<T>
45
- = i => i < array.length ? { first: array[i], tail: () => at(i + 1) } : null
46
- return at(0)
47
- }
48
-
49
- export const concat
50
- : <T>(head: List<T>) => (tail: List<T>) => List<T>
51
- = head => tail => tail === null ? head : ({ head, tail })
52
-
53
- const trampoline
54
- : <T>(list: List<T>) => NotLazy<T>
55
- = list => {
56
- while (typeof list === 'function') { list = list() }
57
- return list
58
- }
59
-
60
- export const next
61
- : <T>(list: List<T>) => Result<T>
62
- = head => {
63
- let tail: typeof head = null
64
- while (true) {
65
- head = trampoline(head)
66
-
67
- if (head instanceof Array) {
68
- head = fromArray(head)
69
- } else if (head !== null && 'head' in head) {
70
- [head, tail] = [head.head, concat(head.tail)(tail)]
71
- continue
72
- }
73
-
74
- if (head !== null) {
75
- return { first: head.first, tail: concat(head.tail)(tail) }
76
- }
77
-
78
- if (tail === null) { return null }
79
-
80
- [head, tail] = [tail, null]
81
- }
82
- }
83
-
84
- export const iterable
85
- : <T>(list: List<T>) => Iterable<T>
86
- = list => ({
87
- *[Symbol.iterator]() {
88
- let i = list
89
- while (true) {
90
- const r = next(i)
91
- if (r === null) { return }
92
- yield r.first
93
- i = r.tail
94
- }
95
- }
96
- })
97
-
98
- const { from } = Array
99
-
100
- export const toArray
101
- : <T>(list: List<T>) => readonly T[]
102
- = list => {
103
- const u = trampoline(list)
104
- return u instanceof Array ? u : from(iterable(u))
105
- }
106
-
107
- const apply
108
- : <I, O>(step: (n: NonEmpty<I>) => List<O>) => (input: List<I>) => Thunk<O>
109
- = f => input => () => {
110
- const n = next(input)
111
- if (n === null) { return null }
112
- return f(n)
113
- }
114
-
115
- const flatStep
116
- : <T>(n: NonEmpty<List<T>>) => List<T>
117
- = ({ first, tail }) => concat(first)(flat(tail))
118
-
119
- export const flat
120
- : <T>(list: List<List<T>>) => Thunk<T>
121
- = apply(flatStep)
122
-
123
- const mapStep
124
- : <I, O>(f: (value: I) => O) => (n: NonEmpty<I>) => List<O>
125
- = f => ({ first, tail }) => ({ first: f(first), tail: map(f)(tail) })
126
-
127
- export const map
128
- : <I, O>(f: (value: I) => O) => (input: List<I>) => Thunk<O>
129
- = f => apply(mapStep(f))
130
-
131
- export const flatMap
132
- : <I, O>(f: (value: I) => List<O>) => (input: List<I>) => Thunk<O>
133
- = f => compose(map(f))(flat)
134
-
135
- const filterStep
136
- : <T>(f: (value: T) => boolean) => (n: NonEmpty<T>) => List<T>
137
- = f => ({ first, tail }) => {
138
- const newTail = filter(f)(tail)
139
- return f(first) ? { first, tail: newTail } : newTail
140
- }
141
-
142
- export const filter
143
- : <T>(f: (value: T) => boolean) => (input: List<T>) => Thunk<T>
144
- = f => apply(filterStep(f))
145
-
146
- const filterMapStep
147
- : <I, O>(f: (value: I) => O|null) => (n: NonEmpty<I>) => List<O>
148
- = f => n => {
149
- const [first, tail] = [f(n.first), filterMap(f)(n.tail)]
150
- return first === null ? tail : { first, tail }
151
- }
152
-
153
- export const filterMap
154
- : <I, O>(f: (value: I) => O|null) => (input: List<I>) => Thunk<O>
155
- = f => apply(filterMapStep(f))
156
-
157
- const takeWhileStep
158
- : <T>(f: (value: T) => boolean) => (n: NonEmpty<T>) => List<T>
159
- = f => ({ first, tail }) => f(first) ? { first, tail: takeWhile(f)(tail) } : null
160
-
161
- export const takeWhile
162
- : <T>(f: (value: T) => boolean) => (input: List<T>) => Thunk<T>
163
- = f => apply(takeWhileStep(f))
164
-
165
- const takeStep
166
- : (n: number) => <T>(result: NonEmpty<T>) => List<T>
167
- = n => ({ first, tail }) => 0 < n ? { first: first, tail: take(n - 1)(tail) } : null
168
-
169
- export const take
170
- : (n: number) => <T>(input: List<T>) => Thunk<T>
171
- = n => apply(takeStep(n))
172
-
173
- const dropWhileStep
174
- : <T>(f: (value: T) => boolean) => (ne: NonEmpty<T>) => List<T>
175
- = f => ne => f(ne.first) ? dropWhile(f)(ne.tail) : ne
176
-
177
- export const dropWhile
178
- : <T>(f: (value: T) => boolean) => (input: List<T>) => Thunk<T>
179
- = f => apply(dropWhileStep(f))
180
-
181
- const dropStep
182
- : (n: number) => <T>(ne: NonEmpty<T>) => List<T>
183
- = n => ne => 0 < n ? drop(n - 1)(ne.tail) : ne
184
-
185
- export const drop
186
- : (n: number) => <T>(input: List<T>) => Thunk<T>
187
- = n => apply(dropStep(n))
188
-
189
- export const first
190
- : <D>(def: D) => <T>(input: List<T>) => D|T
191
- = def => input => {
192
- const ne = next(input)
193
- return ne === null ? def : ne.first
194
- }
195
-
196
- export const last
197
- : <D>(first: D) => <T>(tail: List<T>) => D|T
198
- = first => tail => {
199
- type T = typeof tail extends List<infer T> ? T : never
200
- let i: NonEmpty<typeof first|T> = { first, tail }
201
- while (true) {
202
- const result = next(i.tail)
203
- if (result === null) {
204
- return i.first
205
- }
206
- i = result
207
- }
208
- }
209
-
210
- export const find
211
- : <D>(def: D) => <T>(f: (value: T) => boolean) => (input: List<T>) => D|T
212
- = def => f => compose(filter(f))(first(def))
213
-
214
- export const some
215
- : (input: List<boolean>) => boolean
216
- = find(false)(identity)
217
-
218
- export const isEmpty
219
- : <T>(input: List<T>) => boolean
220
- = fn(map(() => true))
221
- .then(some)
222
- .then(logicalNot)
223
- .result
224
-
225
- export const every
226
- : (_: List<boolean>) => boolean
227
- = fn(map(logicalNot))
228
- .then(some)
229
- .then(logicalNot)
230
- .result
231
-
232
- export const includes
233
- : <T>(value: T) => (sequence: List<T>) => boolean
234
- = value => compose(map(strictEqual(value)))(some)
235
-
236
- export const countdown
237
- : (count: number) => Thunk<number>
238
- = count => () => {
239
- if (count <= 0) { return null }
240
- const first = count - 1
241
- return { first, tail: countdown(first) }
242
- }
243
-
244
- export const repeat
245
- : <T>(v: T) => (c: number) => Thunk<T>
246
- = v => compose(countdown)(map(() => v))
247
-
248
- export const cycle
249
- : <T>(list: List<T>) => List<T>
250
- = list => () => {
251
- const i = next(list)
252
- return i === null ? null : { first: i.first, tail: concat(i.tail)(cycle(list)) }
253
- }
254
-
255
- const scanStep
256
- : <I, O>(op: Scan<I, O>) => (ne: NonEmpty<I>) => List<O>
257
- = op => ne => {
258
- const [first, newOp] = op(ne.first)
259
- return { first, tail: scan(newOp)(ne.tail) }
260
- }
261
-
262
- export const scan
263
- : <I, O>(op: Scan<I, O>) => (input: List<I>) => Thunk<O>
264
- = op => apply(scanStep(op))
265
-
266
- export const stateScan
267
- : <I, S, O>(op: StateScan<I, S, O>) => (init: S) => (input: List<I>) => Thunk<O>
268
- = op => compose(stateScanToScan(op))(scan)
269
-
270
- export const foldScan
271
- : <I,O>(op: Fold<I, O>) => (init: O) => (input: List<I>) => Thunk<O>
272
- = op => compose(foldToScan(op))(scan)
273
-
274
- export const fold
275
- : <I,O>(op: Fold<I, O>) => (init: O) => (input: List<I>) => O
276
- = op => init => compose(foldScan(op)(init))(last(init))
277
-
278
- export const reduce
279
- : <T>(op: Reduce<T>) => <D>(def: D) => (input: List<T>) => D|T
280
- = op => def => compose(scan(reduceToScan(op)))(last(def))
281
-
282
- const lengthList
283
- : <T>(list: List<T>) => Thunk<number>
284
- = list => () => {
285
- const notLazy = trampoline(list)
286
- if (notLazy === null) { return null }
287
- if (notLazy instanceof Array) { return [notLazy.length] }
288
- const tail = lengthList(notLazy.tail)
289
- if ('first' in notLazy) {
290
- return { first: 1, tail }
291
- }
292
- return { head: lengthList(notLazy.head), tail }
293
- }
294
-
295
- const sum = reduce(addition)(0)
296
-
297
- export const length
298
- : <T>(input: List<T>) => number
299
- = input => sum(lengthList(input))
300
-
301
- export type Entry<T> = readonly[number, T]
302
-
303
- const entryOperator
304
- : (index: number) => <T>(value: T) => readonly[Entry<T>, number]
305
- = index => value => [[index, value], index + 1]
306
-
307
- export const entries
308
- : <T>(input: List<T>) => Thunk<Entry<T>>
309
- = input => {
310
- type T = typeof input extends List<infer T> ? T : never
311
- const o
312
- : StateScan<T, number, Entry<T>>
313
- = entryOperator
314
- return stateScan(o)(0)(input)
315
- }
316
-
317
- const reverseOperator
318
- : <T>(value: T) => (prior: List<T>) => List<T>
319
- = first => tail => ({ first, tail })
320
-
321
- export const reverse
322
- : <T>(input: List<T>) => List<T>
323
- = fold(reverseOperator)(null)
324
-
325
- export const zip
326
- : <A>(a: List<A>) => <B>(b: List<B>) => Thunk<readonly[A, B]>
327
- = a => b => () => {
328
- const aResult = next(a)
329
- if (aResult === null) { return null }
330
- const bResult = next(b)
331
- if (bResult === null) { return null }
332
- return { first: [aResult.first, bResult.first], tail: zip(aResult.tail)(bResult.tail) }
333
- }
334
-
335
- export const equal
336
- : <T>(e: Equal<T>) => (a: List<T>) => (b: List<T>) => boolean
337
- = e => {
338
- type T = typeof e extends Equal<infer T> ? T : never
339
- const f
340
- : (a: List<T>) => (b: List<T>) => List<boolean>
341
- = a => b => () => {
342
- const [aResult, bResult] = [next(a), next(b)]
343
- return aResult === null || bResult === null
344
- ? { first: aResult === bResult, tail: null }
345
- : { first: e(aResult.first)(bResult.first), tail: f(aResult.tail)(bResult.tail) }
346
- }
347
- return a => b => every(f(a)(b))
348
- }
349
-
350
- export const empty = null