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,12 @@
1
+ import * as _ from "./module.f.js";
2
+ export default () => {
3
+ const optionSq = _.map((v) => v * v);
4
+ const sq3 = optionSq(3);
5
+ if (sq3 !== 9) {
6
+ throw sq3;
7
+ }
8
+ const sqNull = optionSq(null);
9
+ if (sqNull !== null) {
10
+ throw sqNull;
11
+ }
12
+ };
@@ -0,0 +1,6 @@
1
+ import { type List } from '../list/module.f.ts';
2
+ import * as compare from '../function/compare/module.f.ts';
3
+ export declare const sum: (input: List<number>) => number;
4
+ export declare const min: (input: List<number>) => number | null;
5
+ export declare const max: (input: List<number>) => number | null;
6
+ export declare const cmp: (a: number) => (b: number) => compare.Sign;
@@ -0,0 +1,8 @@
1
+ import { reduce } from "../list/module.f.js";
2
+ import { addition, min as minOp, max as maxOp } from "../function/operator/module.f.js";
3
+ import * as compare from "../function/compare/module.f.js";
4
+ const { unsafeCmp } = compare;
5
+ export const sum = reduce(addition)(0);
6
+ export const min = reduce(minOp)(null);
7
+ export const max = reduce(maxOp)(null);
8
+ export const cmp = unsafeCmp;
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ sum: () => void;
3
+ min: {
4
+ empty: () => void;
5
+ multi: () => void;
6
+ };
7
+ max: () => void;
8
+ cmp: () => void;
9
+ standard: () => void;
10
+ };
11
+ export default _default;
@@ -0,0 +1,124 @@
1
+ import * as _ from "./module.f.js";
2
+ const { sum, min, max, cmp } = _;
3
+ export default {
4
+ sum: () => {
5
+ const result = sum([2, 3, 4, 5]);
6
+ if (result !== 14) {
7
+ throw result;
8
+ }
9
+ },
10
+ min: {
11
+ empty: () => {
12
+ const result = min([]);
13
+ if (result !== null) {
14
+ throw result;
15
+ }
16
+ },
17
+ multi: () => {
18
+ const result = min([1, 2, 12, -4, 8]);
19
+ if (result !== -4) {
20
+ throw result;
21
+ }
22
+ }
23
+ },
24
+ max: () => {
25
+ const result = max([1, 2, 12, -4, 8]);
26
+ if (result !== 12) {
27
+ throw result;
28
+ }
29
+ },
30
+ cmp: () => {
31
+ const result = cmp(4)(5);
32
+ if (result !== -1) {
33
+ throw result;
34
+ }
35
+ },
36
+ standard: () => {
37
+ const check = a => b => {
38
+ if (BigInt(Number(a)) != b) {
39
+ throw [a, b];
40
+ }
41
+ };
42
+ const eq = v => check(v)(v);
43
+ // 53, 0x35 bits.
44
+ // 3 2 1 0
45
+ // 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210
46
+ eq(4503599627370496n);
47
+ eq(4503599627370497n);
48
+ eq(4503599627370498n);
49
+ eq(4503599627370499n);
50
+ eq(4503599627370500n);
51
+ //
52
+ eq(8205552883602248n);
53
+ eq(6023495077481713n);
54
+ eq(7655550916643882n);
55
+ eq(7408615831253283n);
56
+ eq(5372046171422892n);
57
+ //
58
+ eq(9007199254740991n);
59
+ eq(9007199254740990n);
60
+ eq(9007199254740989n);
61
+ eq(9007199254740988n);
62
+ eq(9007199254740987n);
63
+ eq(9007199254740986n);
64
+ eq(9007199254740985n);
65
+ eq(9007199254740984n);
66
+ // 54, 0x35+1 bits.
67
+ // 3 2 1 0
68
+ // 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1
69
+ check(9007199254740992n)(9007199254740992n);
70
+ check(16585805050637558n)(16585805050637558n);
71
+ check(18014398509481982n)(18014398509481982n);
72
+ // round down
73
+ check(9007199254740993n)(9007199254740992n);
74
+ check(9007199254740997n)(9007199254740996n);
75
+ check(11727370849309157n)(11727370849309156n);
76
+ check(18014398509481981n)(18014398509481980n);
77
+ // round up
78
+ check(9007199254740995n)(9007199254740996n);
79
+ check(15679542343753527n)(15679542343753528n);
80
+ check(18014398509481983n)(18014398509481984n);
81
+ // 55, 0x35+2 bits.
82
+ // 3 2 1 0
83
+ // 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_12
84
+ // 0_xx: down, down, up
85
+ // 0_00
86
+ check(18014398509481984n)(18014398509481984n);
87
+ check(31009640954244032n)(31009640954244032n);
88
+ check(36028797018963960n)(36028797018963960n);
89
+ // 0_01 round down
90
+ check(18014398509481985n)(18014398509481984n);
91
+ check(35865859090492321n)(35865859090492320n);
92
+ check(36028797018963961n)(36028797018963960n);
93
+ // 0_10 round down
94
+ check(18014398509481986n)(18014398509481984n);
95
+ check(20537830900813786n)(20537830900813784n);
96
+ check(36028797018963962n)(36028797018963960n);
97
+ // 0_11 round up
98
+ check(18014398509481987n)(18014398509481988n);
99
+ check(20762549594556867n)(20762549594556868n);
100
+ check(36028797018963963n)(36028797018963964n);
101
+ // 1_xx: down, up, up
102
+ // 1_00
103
+ check(18014398509481988n)(18014398509481988n);
104
+ check(27158415062912468n)(27158415062912468n);
105
+ check(36028797018963963n)(36028797018963964n);
106
+ // 1_01 round down
107
+ check(18014398509481989n)(18014398509481988n);
108
+ check(23136524663958789n)(23136524663958788n);
109
+ check(36028797018963965n)(36028797018963964n);
110
+ // 1_10 round up
111
+ check(18014398509481990n)(18014398509481992n);
112
+ check(35732739218314830n)(35732739218314832n);
113
+ check(36028797018963966n)(36028797018963968n);
114
+ // 1_11 round up
115
+ check(18014398509481991n)(18014398509481992n);
116
+ check(35015291789494295n)(35015291789494296n);
117
+ check(36028797018963967n)(36028797018963968n);
118
+ // 57, 0x35+4 bits.
119
+ // 3 2 1 0
120
+ // 4_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_FEDC_BA98_7654_3210_1234
121
+ check(104002482718319358n)(104002482718319360n);
122
+ check(142693895881191444n)(142693895881191440n);
123
+ }
124
+ };
@@ -0,0 +1,10 @@
1
+ import * as list from '../list/module.f.ts';
2
+ import * as btMap from '../map/module.f.ts';
3
+ export type Map<T> = {
4
+ readonly [k in string]: T;
5
+ };
6
+ export type Entry<T> = readonly [string, T];
7
+ export declare const at: (name: string) => <T>(object: Map<T>) => T | null;
8
+ export declare const sort: <T>(e: list.List<Entry<T>>) => list.List<Entry<T>>;
9
+ export declare const fromEntries: <T>(e: list.List<Entry<T>>) => Map<T>;
10
+ export declare const fromMap: <T>(m: btMap.Map<T>) => Map<T>;
@@ -0,0 +1,12 @@
1
+ import * as list from "../list/module.f.js";
2
+ const { iterable } = list;
3
+ import * as btMap from "../map/module.f.js";
4
+ const { entries: mapEntries, fromEntries: mapFromEntries } = btMap;
5
+ const { getOwnPropertyDescriptor, fromEntries: objectFromEntries } = Object;
6
+ export const at = name => object => {
7
+ const r = getOwnPropertyDescriptor(object, name);
8
+ return r === void 0 ? null : r.value;
9
+ };
10
+ export const sort = e => mapEntries(mapFromEntries(e));
11
+ export const fromEntries = e => objectFromEntries(iterable(e));
12
+ export const fromMap = m => fromEntries(mapEntries(m));
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ ctor: () => void;
3
+ property: () => void;
4
+ };
5
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import * as _ from "./module.f.js";
2
+ export default {
3
+ ctor: () => {
4
+ const a = {};
5
+ const value = _.at('constructor')(a);
6
+ if (value !== null) {
7
+ throw value;
8
+ }
9
+ },
10
+ property: () => {
11
+ const a = { constructor: 42 };
12
+ const value = _.at('constructor')(a);
13
+ if (value !== 42) {
14
+ throw value;
15
+ }
16
+ }
17
+ };
@@ -0,0 +1,3 @@
1
+ export type Range = readonly [number, number];
2
+ export declare const contains: (range: Range) => (i: number) => boolean;
3
+ export declare const one: (i: number) => Range;
@@ -0,0 +1,2 @@
1
+ export const contains = ([b, e]) => i => b <= i && i <= e;
2
+ export const one = a => [a, a];
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import * as _ from "./module.f.js";
2
+ export default () => {
3
+ if (!_.contains([0, 5])(1)) {
4
+ throw 1;
5
+ }
6
+ if (!_.contains([0, 5])(0)) {
7
+ throw 0;
8
+ }
9
+ if (!_.contains([0, 5])(5)) {
10
+ throw 5;
11
+ }
12
+ if (_.contains([0, 5])(-1)) {
13
+ throw -1;
14
+ }
15
+ if (_.contains([0, 5])(6)) {
16
+ throw 6;
17
+ }
18
+ };
@@ -0,0 +1,14 @@
1
+ import * as sortedList from '../sorted_list/module.f.ts';
2
+ import * as O from '../function/operator/module.f.ts';
3
+ import * as Range from '../range/module.f.ts';
4
+ export type Entry<T> = [T, number];
5
+ export type RangeMap<T> = sortedList.SortedList<Entry<T>>;
6
+ export type RangeMapArray<T> = readonly Entry<T>[];
7
+ export type Operators<T> = {
8
+ readonly union: O.Reduce<T>;
9
+ readonly equal: O.Equal<T>;
10
+ };
11
+ export type RangeMerge<T> = O.Reduce<RangeMap<T>>;
12
+ export declare const merge: <T>(op: Operators<T>) => RangeMerge<T>;
13
+ export declare const get: <T>(def: T) => (value: number) => (rm: RangeMapArray<T>) => T;
14
+ export declare const fromRange: <T>(def: T) => (r: Range.Range) => (value: T) => RangeMapArray<T>;
@@ -0,0 +1,51 @@
1
+ import * as sortedList from "../sorted_list/module.f.js";
2
+ const { genericMerge } = sortedList;
3
+ import * as list from "../list/module.f.js";
4
+ const { next } = list;
5
+ import * as Option from "../nullable/module.f.js";
6
+ import * as number from "../number/module.f.js";
7
+ const { cmp } = number;
8
+ import * as O from "../function/operator/module.f.js";
9
+ import * as Range from "../range/module.f.js";
10
+ const reduceOp = union => equal => state => ([aItem, aMax]) => ([bItem, bMax]) => {
11
+ const sign = cmp(aMax)(bMax);
12
+ const min = sign === 1 ? bMax : aMax;
13
+ const u = union(aItem)(bItem);
14
+ const newState = state !== null && equal(state[0])(u) ? null : state;
15
+ return [newState, sign, [u, min]];
16
+ };
17
+ const tailReduce = equal => state => tail => {
18
+ if (state === null) {
19
+ return tail;
20
+ }
21
+ const tailResult = next(tail);
22
+ if (tailResult === null) {
23
+ return [state];
24
+ }
25
+ if (equal(state[0])(tailResult.first[0])) {
26
+ return tailResult;
27
+ }
28
+ return { first: state, tail: tailResult };
29
+ };
30
+ export const merge = ({ union, equal }) => genericMerge({ reduceOp: reduceOp(union)(equal), tailReduce: tailReduce(equal) })(null);
31
+ export const get = def => value => rm => {
32
+ const len = rm.length;
33
+ let b = 0;
34
+ let e = len - 1;
35
+ while (true) {
36
+ if (b >= len) {
37
+ return def;
38
+ }
39
+ if (e - b < 0) {
40
+ return rm[b][0];
41
+ }
42
+ const mid = b + (e - b >> 1);
43
+ if (value <= rm[mid][1]) {
44
+ e = mid - 1;
45
+ }
46
+ else {
47
+ b = mid + 1;
48
+ }
49
+ }
50
+ };
51
+ export const fromRange = def => ([a, b]) => v => [[def, a - 1], [v, b]];
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ merge: (() => void)[];
3
+ get: () => (() => void)[];
4
+ fromRange: () => (() => void)[];
5
+ };
6
+ export default _default;
@@ -0,0 +1,176 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as compare from "../function/compare/module.f.js";
3
+ const { unsafeCmp } = compare;
4
+ import * as json from "../../json/module.f.js";
5
+ import * as object from "../object/module.f.js";
6
+ const { sort } = object;
7
+ import * as sortedSet from "../sorted_set/module.f.js";
8
+ import * as list from "../list/module.f.js";
9
+ import * as operator from "../function/operator/module.f.js";
10
+ const stringify = json.stringify(sort);
11
+ const op = { union: sortedSet.union(unsafeCmp), equal: list.equal(operator.strictEqual) };
12
+ export default {
13
+ merge: [
14
+ () => {
15
+ const a = [[['a'], 1], [['b'], 2]];
16
+ const b = null;
17
+ const merged = _.merge(op)(a)(b);
18
+ const result = stringify(list.toArray(merged));
19
+ if (result !== '[[["a"],1],[["b"],2]]') {
20
+ throw result;
21
+ }
22
+ },
23
+ () => {
24
+ const a = null;
25
+ const b = [[['a'], 1], [['b'], 2]];
26
+ const merged = _.merge(op)(a)(b);
27
+ const result = stringify(list.toArray(merged));
28
+ if (result !== '[[["a"],1],[["b"],2]]') {
29
+ throw result;
30
+ }
31
+ },
32
+ () => {
33
+ const a = [[['a'], 1], [['b'], 2]];
34
+ const b = [[['a'], 1], [['b'], 2]];
35
+ const merged = _.merge(op)(a)(b);
36
+ const result = stringify(list.toArray(merged));
37
+ if (result !== '[[["a"],1],[["b"],2]]') {
38
+ throw result;
39
+ }
40
+ },
41
+ () => {
42
+ const a = [[['a'], 1], [['c'], 3]];
43
+ const b = [[['b'], 2], [['d'], 4]];
44
+ const merged = _.merge(op)(a)(b);
45
+ const result = stringify(list.toArray(merged));
46
+ if (result !== '[[["a","b"],1],[["b","c"],2],[["c","d"],3],[["d"],4]]') {
47
+ throw result;
48
+ }
49
+ },
50
+ () => {
51
+ const a = [[['a'], 1], [['d'], 4]];
52
+ const b = [[['b'], 2], [['c'], 3]];
53
+ const merged = _.merge(op)(a)(b);
54
+ const result = stringify(list.toArray(merged));
55
+ if (result !== '[[["a","b"],1],[["b","d"],2],[["c","d"],3],[["d"],4]]') {
56
+ throw result;
57
+ }
58
+ },
59
+ () => {
60
+ const a = [[['a'], 1], [['b'], 2]];
61
+ const b = [[['b'], 1], [['a'], 2]];
62
+ const merged = _.merge(op)(a)(b);
63
+ const result = stringify(list.toArray(merged));
64
+ if (result !== '[[["a","b"],2]]') {
65
+ throw result;
66
+ }
67
+ },
68
+ () => {
69
+ const a = [[['a'], 1], [['b'], 2], [['a'], 3]];
70
+ const b = [[['a'], 5]];
71
+ const merged = _.merge(op)(a)(b);
72
+ const result = stringify(list.toArray(merged));
73
+ if (result !== '[[["a"],1],[["a","b"],2],[["a"],5]]') {
74
+ throw result;
75
+ }
76
+ }
77
+ ],
78
+ get: () => {
79
+ const sortedSetEmpty = [];
80
+ const get = _.get(sortedSetEmpty);
81
+ return [
82
+ () => {
83
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
84
+ const result = stringify(get(5)(rm));
85
+ if (result !== '["a"]') {
86
+ throw result;
87
+ }
88
+ },
89
+ () => {
90
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
91
+ const result = stringify(get(10)(rm));
92
+ if (result !== '["a"]') {
93
+ throw result;
94
+ }
95
+ },
96
+ () => {
97
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
98
+ const result = stringify(get(15)(rm));
99
+ if (result !== '["b"]') {
100
+ throw result;
101
+ }
102
+ },
103
+ () => {
104
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
105
+ const result = stringify(get(20)(rm));
106
+ if (result !== '["b"]') {
107
+ throw result;
108
+ }
109
+ },
110
+ () => {
111
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
112
+ const result = stringify(get(25)(rm));
113
+ if (result !== '["c"]') {
114
+ throw result;
115
+ }
116
+ },
117
+ () => {
118
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
119
+ const result = stringify(get(30)(rm));
120
+ if (result !== '["c"]') {
121
+ throw result;
122
+ }
123
+ },
124
+ () => {
125
+ const rm = [[['a'], 10], [['b'], 20], [['c'], 30]];
126
+ const result = stringify(get(35)(rm));
127
+ if (result !== '[]') {
128
+ throw result;
129
+ }
130
+ },
131
+ () => {
132
+ const rm = [];
133
+ const result = stringify(get(10)(rm));
134
+ if (result !== '[]') {
135
+ throw result;
136
+ }
137
+ }
138
+ ];
139
+ },
140
+ fromRange: () => {
141
+ const def = -1;
142
+ const rm = _.fromRange(def)([1, 7])(42);
143
+ return [
144
+ () => {
145
+ const result = _.get(def)(0)(rm);
146
+ if (result !== -1) {
147
+ throw result;
148
+ }
149
+ },
150
+ () => {
151
+ const result = _.get(def)(1)(rm);
152
+ if (result !== 42) {
153
+ throw result;
154
+ }
155
+ },
156
+ () => {
157
+ const result = _.get(def)(3)(rm);
158
+ if (result !== 42) {
159
+ throw result;
160
+ }
161
+ },
162
+ () => {
163
+ const result = _.get(def)(7)(rm);
164
+ if (result !== 42) {
165
+ throw result;
166
+ }
167
+ },
168
+ () => {
169
+ const result = _.get(def)(9)(rm);
170
+ if (result !== -1) {
171
+ throw result;
172
+ }
173
+ },
174
+ ];
175
+ }
176
+ };
@@ -0,0 +1,7 @@
1
+ type Ok<T> = readonly ['ok', T];
2
+ type Error<E> = readonly ['error', E];
3
+ export type Result<T, E> = Ok<T> | Error<E>;
4
+ export declare const ok: <T>(value: T) => Ok<T>;
5
+ export declare const error: <E>(e: E) => Error<E>;
6
+ export declare const unwrap: <T, E>(r: Result<T, E>) => T;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ export const ok = value => ['ok', value];
2
+ export const error = e => ['error', e];
3
+ export const unwrap = ([kind, v]) => {
4
+ if (kind === 'error') {
5
+ throw v;
6
+ }
7
+ return v;
8
+ };
@@ -0,0 +1,16 @@
1
+ import * as compare from '../function/compare/module.f.ts';
2
+ import * as list from '../list/module.f.ts';
3
+ import * as option from '../nullable/module.f.ts';
4
+ export type SortedList<T> = list.List<T>;
5
+ type SortedArray<T> = readonly T[];
6
+ type Cmp<T> = (a: T) => (b: T) => compare.Sign;
7
+ export type ReduceOp<T, S> = (state: S) => (a: T) => (b: T) => readonly [option.Nullable<T>, compare.Sign, S];
8
+ export type TailReduce<T, S> = (state: S) => (tail: list.List<T>) => list.List<T>;
9
+ type MergeReduce<T, S> = {
10
+ readonly reduceOp: ReduceOp<T, S>;
11
+ readonly tailReduce: TailReduce<T, S>;
12
+ };
13
+ export declare const genericMerge: <T, S>({ reduceOp, tailReduce }: MergeReduce<T, S>) => (state: S) => (a: list.List<T>) => (b: list.List<T>) => list.List<T>;
14
+ export declare const merge: <T>(cmp: Cmp<T>) => (a: SortedList<T>) => (b: SortedList<T>) => SortedList<T>;
15
+ export declare const find: <T>(cmp: Cmp<T>) => (value: T) => (array: SortedArray<T>) => T | null;
16
+ export {};
@@ -0,0 +1,56 @@
1
+ import * as compare from "../function/compare/module.f.js";
2
+ import * as list from "../list/module.f.js";
3
+ import * as option from "../nullable/module.f.js";
4
+ const { next } = list;
5
+ import * as f from "../function/module.f.js";
6
+ const { identity } = f;
7
+ export const genericMerge = ({ reduceOp, tailReduce }) => {
8
+ const f = state => a => b => () => {
9
+ const aResult = next(a);
10
+ if (aResult === null) {
11
+ return tailReduce(state)(b);
12
+ }
13
+ const bResult = next(b);
14
+ if (bResult === null) {
15
+ return tailReduce(state)(aResult);
16
+ }
17
+ const [first, sign, stateNext] = reduceOp(state)(aResult.first)(bResult.first);
18
+ const aNext = sign === 1 ? a : aResult.tail;
19
+ const bNext = sign === -1 ? b : bResult.tail;
20
+ const tail = f(stateNext)(aNext)(bNext);
21
+ return first === null ? tail : { first, tail };
22
+ };
23
+ return f;
24
+ };
25
+ export const merge = (cmp) => {
26
+ const tailReduce = mergeTail;
27
+ return genericMerge({ reduceOp: cmpReduce(cmp), tailReduce })(null);
28
+ };
29
+ const cmpReduce = cmp => () => a => b => {
30
+ const sign = cmp(a)(b);
31
+ return [sign === 1 ? b : a, sign, null];
32
+ };
33
+ const mergeTail = () => identity;
34
+ export const find = cmp => value => array => {
35
+ let b = 0;
36
+ let e = array.length - 1;
37
+ while (true) {
38
+ if (e - b < 0)
39
+ return null;
40
+ const mid = b + (e - b >> 1);
41
+ const sign = cmp(value)(array[mid]);
42
+ switch (sign) {
43
+ case -1: {
44
+ e = mid - 1;
45
+ break;
46
+ }
47
+ case 0: {
48
+ return value;
49
+ }
50
+ case 1: {
51
+ b = mid + 1;
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ };
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ sortedMergre: (() => void)[];
3
+ find: (() => void)[];
4
+ };
5
+ export default _default;
@@ -0,0 +1,64 @@
1
+ import * as _ from "./module.f.js";
2
+ import * as compare from "../function/compare/module.f.js";
3
+ const { unsafeCmp } = compare;
4
+ import * as json from "../../json/module.f.js";
5
+ import * as object from "../object/module.f.js";
6
+ const { sort } = object;
7
+ import * as list from "../list/module.f.js";
8
+ const { toArray, countdown, length } = list;
9
+ import * as Map from "../map/module.f.js";
10
+ import * as f from "../function/module.f.js";
11
+ const { flip } = f;
12
+ const stringify = json.stringify(sort);
13
+ const reverseCmp = flip(unsafeCmp);
14
+ export default {
15
+ sortedMergre: [
16
+ () => {
17
+ const result = stringify(toArray(_.merge(unsafeCmp)([2, 3, 4])([1, 3, 5])));
18
+ if (result !== '[1,2,3,4,5]') {
19
+ throw result;
20
+ }
21
+ },
22
+ () => {
23
+ const result = stringify(toArray(_.merge(unsafeCmp)([1, 2, 3])([])));
24
+ if (result !== '[1,2,3]') {
25
+ throw result;
26
+ }
27
+ },
28
+ () => {
29
+ const n = 10_000;
30
+ const list = countdown(n);
31
+ const result = _.merge(reverseCmp)(list)(list);
32
+ const len = length(result);
33
+ if (len != n) {
34
+ throw result;
35
+ }
36
+ }
37
+ ],
38
+ find: [
39
+ () => {
40
+ const result = _.find(unsafeCmp)(0)([0, 10, 20, 30, 40, 50, 60, 70, 80, 90]);
41
+ if (result !== 0) {
42
+ throw result;
43
+ }
44
+ },
45
+ () => {
46
+ const result = _.find(unsafeCmp)(3)([0, 10, 20, 30, 40, 50, 60, 70, 80, 90]);
47
+ if (result !== null) {
48
+ throw result;
49
+ }
50
+ },
51
+ () => {
52
+ const result = _.find(unsafeCmp)(77)([0, 10, 20, 30, 40, 50, 60, 70, 80, 90]);
53
+ if (result !== null) {
54
+ throw result;
55
+ }
56
+ },
57
+ () => {
58
+ const result = _.find(unsafeCmp)(80)([0, 10, 20, 30, 40, 50, 60, 70, 80, 90]);
59
+ if (result !== 80) {
60
+ throw result;
61
+ }
62
+ }
63
+ ]
64
+ };
@@ -0,0 +1,7 @@
1
+ import * as Compare from '../function/compare/module.f.ts';
2
+ export type SortedSet<T> = readonly T[];
3
+ type Cmp<T> = (a: T) => (b: T) => Compare.Sign;
4
+ export declare const union: <T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>;
5
+ export declare const intersect: <T>(cmp: Cmp<T>) => (a: SortedSet<T>) => (b: SortedSet<T>) => SortedSet<T>;
6
+ export declare const has: <T>(cmp: Cmp<T>) => (value: T) => (set: SortedSet<T>) => boolean;
7
+ export {};