functionalscript 0.1.609 → 0.2.1

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 (393) hide show
  1. package/com/cpp/module.f.mjs +20 -25
  2. package/com/cpp/testlib.f.mjs +3 -4
  3. package/com/cs/module.f.mjs +18 -23
  4. package/com/cs/testlib.f.mjs +3 -5
  5. package/com/rust/module.f.mjs +25 -30
  6. package/com/rust/testlib.f.mjs +3 -5
  7. package/com/test/build.f.mjs +2 -2
  8. package/com/test/build.mjs +4 -4
  9. package/com/types/module.f.mjs +5 -12
  10. package/commonjs/build/module.f.mjs +23 -28
  11. package/commonjs/build/test.f.mjs +4 -4
  12. package/commonjs/module/function/module.f.mjs +0 -2
  13. package/commonjs/module/module.f.mjs +2 -9
  14. package/commonjs/module.f.mjs +0 -2
  15. package/commonjs/module.mjs +2 -7
  16. package/commonjs/package/dependencies/module.f.mjs +5 -10
  17. package/commonjs/package/dependencies/test.f.mjs +1 -1
  18. package/commonjs/package/module.f.mjs +6 -13
  19. package/commonjs/package/test.f.mjs +1 -1
  20. package/commonjs/path/module.f.mjs +12 -23
  21. package/commonjs/path/test.f.mjs +11 -11
  22. package/commonjs/test.mjs +1 -1
  23. package/dev/module.f.mjs +1 -4
  24. package/dev/module.mjs +1 -1
  25. package/dev/test/module.f.mjs +4 -6
  26. package/djs/module.f.mjs +12 -19
  27. package/djs/parser/module.f.mjs +18 -24
  28. package/djs/parser/test.f.mjs +9 -9
  29. package/djs/test.f.mjs +4 -4
  30. package/djs/tokenizer/module.f.mjs +18 -23
  31. package/djs/tokenizer/test.f.mjs +6 -6
  32. package/fsc/module.f.mjs +17 -24
  33. package/fsc/test.f.mjs +3 -3
  34. package/fsm/module.f.mjs +27 -38
  35. package/fsm/test.f.mjs +8 -8
  36. package/html/module.f.mjs +14 -23
  37. package/html/test.f.mjs +4 -4
  38. package/js/tokenizer/module.f.mjs +55 -62
  39. package/js/tokenizer/test.f.mjs +6 -6
  40. package/json/module.f.mjs +18 -31
  41. package/json/parser/module.f.mjs +9 -14
  42. package/json/parser/test.f.mjs +7 -7
  43. package/json/serializer/module.f.mjs +14 -29
  44. package/json/serializer/test.f.mjs +2 -2
  45. package/json/test.f.mjs +3 -3
  46. package/json/tokenizer/module.f.mjs +14 -19
  47. package/json/tokenizer/test.f.mjs +6 -6
  48. package/jsr.json +59 -59
  49. package/nodejs/version/main.mjs +1 -1
  50. package/nodejs/version/module.f.mjs +2 -7
  51. package/nodejs/version/test.f.mjs +3 -3
  52. package/out/com/cpp/module.f.d.mts +4 -0
  53. package/out/com/cpp/module.f.mjs +123 -0
  54. package/out/com/cpp/test.f.mjs +40 -0
  55. package/out/com/cpp/testlib.f.mjs +7 -0
  56. package/out/com/cs/module.f.d.mts +4 -0
  57. package/out/com/cs/module.f.mjs +95 -0
  58. package/out/com/cs/test.f.mjs +43 -0
  59. package/out/com/cs/testlib.f.mjs +7 -0
  60. package/{com → out/com}/rust/module.f.d.mts +3 -7
  61. package/out/com/rust/module.f.mjs +213 -0
  62. package/out/com/rust/test.f.mjs +123 -0
  63. package/out/com/rust/testlib.f.mjs +7 -0
  64. package/{com → out/com}/test/build.f.d.mts +2 -2
  65. package/out/com/test/build.f.mjs +98 -0
  66. package/out/com/test/build.mjs +40 -0
  67. package/{com → out/com}/types/module.f.d.mts +5 -10
  68. package/out/com/types/module.f.mjs +51 -0
  69. package/out/com/types/testlib.f.mjs +30 -0
  70. package/out/commonjs/build/module.f.d.mts +20 -0
  71. package/out/commonjs/build/module.f.mjs +107 -0
  72. package/out/commonjs/build/test.f.mjs +102 -0
  73. package/{commonjs → out/commonjs}/module/function/module.f.d.mts +0 -2
  74. package/out/commonjs/module/function/module.f.mjs +15 -0
  75. package/{commonjs → out/commonjs}/module/module.f.d.mts +16 -21
  76. package/out/commonjs/module/module.f.mjs +48 -0
  77. package/out/commonjs/module.d.mts +3 -0
  78. package/{commonjs → out/commonjs}/module.f.d.mts +0 -2
  79. package/out/commonjs/module.f.mjs +10 -0
  80. package/out/commonjs/module.mjs +26 -0
  81. package/out/commonjs/package/dependencies/module.f.d.mts +6 -0
  82. package/out/commonjs/package/dependencies/module.f.mjs +21 -0
  83. package/out/commonjs/package/dependencies/test.f.mjs +15 -0
  84. package/out/commonjs/package/module.f.d.mts +21 -0
  85. package/out/commonjs/package/module.f.mjs +40 -0
  86. package/out/commonjs/package/test.f.mjs +27 -0
  87. package/{commonjs → out/commonjs}/path/module.f.d.mts +25 -32
  88. package/out/commonjs/path/module.f.mjs +171 -0
  89. package/out/commonjs/path/test.f.mjs +231 -0
  90. package/out/commonjs/test.mjs +87 -0
  91. package/out/dev/index.mjs +2 -0
  92. package/out/dev/module.f.d.mts +1 -0
  93. package/out/dev/module.f.mjs +2 -0
  94. package/out/dev/module.mjs +167 -0
  95. package/{dev → out/dev}/test/module.f.d.mts +2 -3
  96. package/out/dev/test/module.f.mjs +134 -0
  97. package/out/dev/test.f.mjs +58 -0
  98. package/out/dev/test.mjs +52 -0
  99. package/{djs → out/djs}/module.f.d.mts +13 -18
  100. package/out/djs/module.f.mjs +75 -0
  101. package/{djs → out/djs}/parser/module.f.d.mts +11 -15
  102. package/out/djs/parser/module.f.mjs +432 -0
  103. package/out/djs/parser/test.f.mjs +535 -0
  104. package/out/djs/test.f.mjs +84 -0
  105. package/out/djs/tokenizer/module.f.d.mts +13 -0
  106. package/out/djs/tokenizer/module.f.mjs +87 -0
  107. package/out/djs/tokenizer/test.f.mjs +480 -0
  108. package/out/fsc/module.f.d.mts +7 -0
  109. package/out/fsc/module.f.mjs +105 -0
  110. package/out/fsc/test.f.mjs +19 -0
  111. package/out/fsm/module.f.d.mts +14 -0
  112. package/out/fsm/module.f.mjs +80 -0
  113. package/out/fsm/test.f.mjs +138 -0
  114. package/out/html/module.f.d.mts +15 -0
  115. package/out/html/module.f.mjs +94 -0
  116. package/out/html/test.f.mjs +45 -0
  117. package/out/issues/test.f.mjs +66 -0
  118. package/{js → out/js}/tokenizer/module.f.d.mts +10 -15
  119. package/out/js/tokenizer/module.f.mjs +686 -0
  120. package/out/js/tokenizer/test.f.mjs +844 -0
  121. package/out/json/module.f.d.mts +33 -0
  122. package/out/json/module.f.mjs +89 -0
  123. package/{json → out/json}/parser/module.f.d.mts +9 -13
  124. package/out/json/parser/module.f.mjs +224 -0
  125. package/out/json/parser/test.f.mjs +321 -0
  126. package/out/json/serializer/module.f.d.mts +36 -0
  127. package/out/json/serializer/module.f.mjs +67 -0
  128. package/out/json/serializer/test.f.mjs +87 -0
  129. package/out/json/test.f.mjs +61 -0
  130. package/out/json/tokenizer/module.f.d.mts +13 -0
  131. package/out/json/tokenizer/module.f.mjs +78 -0
  132. package/out/json/tokenizer/test.f.mjs +420 -0
  133. package/out/nanvm-lib/tests/test.f.mjs +87 -0
  134. package/out/nodejs/version/main.mjs +3 -0
  135. package/{nodejs → out/nodejs}/version/module.f.d.mts +4 -9
  136. package/out/nodejs/version/module.f.mjs +34 -0
  137. package/out/nodejs/version/test.f.mjs +97 -0
  138. package/{prime_field → out/prime_field}/module.f.d.mts +20 -23
  139. package/out/prime_field/module.f.mjs +87 -0
  140. package/out/prime_field/test.f.mjs +145 -0
  141. package/{secp → out/secp}/module.f.d.mts +27 -28
  142. package/out/secp/module.f.mjs +113 -0
  143. package/out/secp/test.f.mjs +63 -0
  144. package/out/sha2/module.f.d.mts +15 -0
  145. package/out/sha2/module.f.mjs +172 -0
  146. package/out/sha2/test.f.mjs +86 -0
  147. package/out/text/ascii/module.f.d.mts +70 -0
  148. package/out/text/ascii/module.f.mjs +154 -0
  149. package/out/text/ascii/test.f.mjs +14 -0
  150. package/out/text/module.f.d.mts +13 -0
  151. package/out/text/module.f.mjs +19 -0
  152. package/out/text/sgr/module.f.d.mts +12 -0
  153. package/out/text/sgr/module.f.mjs +17 -0
  154. package/out/text/test.f.mjs +19 -0
  155. package/out/text/utf16/module.f.d.mts +12 -0
  156. package/out/text/utf16/module.f.mjs +86 -0
  157. package/out/text/utf16/test.f.mjs +145 -0
  158. package/out/text/utf8/module.f.d.mts +10 -0
  159. package/out/text/utf8/module.f.mjs +126 -0
  160. package/out/text/utf8/test.f.mjs +175 -0
  161. package/{types → out/types}/array/module.f.d.mts +14 -24
  162. package/out/types/array/module.f.mjs +95 -0
  163. package/out/types/array/test.f.mjs +116 -0
  164. package/out/types/bigfloat/module.f.d.mts +6 -0
  165. package/out/types/bigfloat/module.f.mjs +77 -0
  166. package/out/types/bigfloat/test.f.mjs +349 -0
  167. package/out/types/bigint/module.f.d.mts +29 -0
  168. package/{types/bigint/module.f.d.mts → out/types/bigint/module.f.mjs} +64 -27
  169. package/out/types/bigint/test.f.mjs +192 -0
  170. package/{types → out/types}/btree/find/module.f.d.mts +20 -26
  171. package/out/types/btree/find/module.f.mjs +137 -0
  172. package/out/types/btree/find/test.f.mjs +156 -0
  173. package/out/types/btree/module.f.d.mts +5 -0
  174. package/out/types/btree/module.f.mjs +34 -0
  175. package/{types → out/types}/btree/remove/module.f.d.mts +7 -12
  176. package/out/types/btree/remove/module.f.mjs +209 -0
  177. package/out/types/btree/remove/test.f.mjs +638 -0
  178. package/{types → out/types}/btree/set/module.f.d.mts +3 -7
  179. package/out/types/btree/set/module.f.mjs +114 -0
  180. package/out/types/btree/set/test.f.mjs +390 -0
  181. package/out/types/btree/test.f.mjs +83 -0
  182. package/{types → out/types}/btree/types/module.f.d.mts +0 -2
  183. package/out/types/btree/types/module.f.mjs +50 -0
  184. package/out/types/byte_set/module.f.d.mts +25 -0
  185. package/out/types/byte_set/module.f.mjs +42 -0
  186. package/out/types/byte_set/test.f.mjs +123 -0
  187. package/{types → out/types}/function/compare/module.f.d.mts +9 -15
  188. package/out/types/function/compare/module.f.mjs +22 -0
  189. package/out/types/function/compare/test.f.mjs +8 -0
  190. package/{types → out/types}/function/module.f.d.mts +20 -27
  191. package/out/types/function/module.f.mjs +44 -0
  192. package/{types → out/types}/function/operator/module.f.d.mts +28 -43
  193. package/out/types/function/operator/module.f.mjs +60 -0
  194. package/out/types/function/test.f.mjs +15 -0
  195. package/out/types/list/module.f.d.mts +82 -0
  196. package/out/types/list/module.f.mjs +269 -0
  197. package/out/types/list/test.f.mjs +401 -0
  198. package/out/types/map/module.f.d.mts +21 -0
  199. package/out/types/map/module.f.mjs +54 -0
  200. package/out/types/map/test.f.mjs +115 -0
  201. package/out/types/nibble_set/module.f.d.mts +16 -0
  202. package/out/types/nibble_set/module.f.mjs +19 -0
  203. package/out/types/nibble_set/test.f.mjs +90 -0
  204. package/out/types/nullable/module.f.d.mts +9 -0
  205. package/out/types/nullable/module.f.mjs +9 -0
  206. package/out/types/nullable/test.f.mjs +12 -0
  207. package/out/types/number/module.f.d.mts +7 -0
  208. package/out/types/number/module.f.mjs +12 -0
  209. package/out/types/number/test.f.mjs +126 -0
  210. package/out/types/object/module.f.d.mts +22 -0
  211. package/out/types/object/module.f.mjs +27 -0
  212. package/out/types/object/test.f.mjs +17 -0
  213. package/out/types/range/module.f.d.mts +6 -0
  214. package/out/types/range/module.f.mjs +6 -0
  215. package/out/types/range/test.f.mjs +18 -0
  216. package/{types → out/types}/range_map/module.f.d.mts +9 -15
  217. package/out/types/range_map/module.f.mjs +84 -0
  218. package/out/types/range_map/test.f.mjs +201 -0
  219. package/out/types/result/module.d.mts +7 -0
  220. package/{types → out/types}/result/module.f.d.mts +6 -12
  221. package/out/types/result/module.f.mjs +25 -0
  222. package/out/types/result/module.mjs +16 -0
  223. package/{types → out/types}/sorted_list/module.f.d.mts +22 -28
  224. package/out/types/sorted_list/module.f.mjs +102 -0
  225. package/out/types/sorted_list/test.f.mjs +66 -0
  226. package/{types → out/types}/sorted_set/module.f.d.mts +6 -12
  227. package/out/types/sorted_set/module.f.mjs +29 -0
  228. package/out/types/sorted_set/test.f.mjs +80 -0
  229. package/out/types/string/module.f.d.mts +9 -0
  230. package/out/types/string/module.f.mjs +17 -0
  231. package/out/types/string/test.f.mjs +58 -0
  232. package/out/types/string_set/module.f.d.mts +13 -0
  233. package/out/types/string_set/module.f.mjs +29 -0
  234. package/out/types/string_set/test.f.mjs +65 -0
  235. package/package.json +5 -4
  236. package/prime_field/module.f.mjs +9 -12
  237. package/prime_field/test.f.mjs +1 -1
  238. package/secp/module.f.mjs +38 -39
  239. package/secp/test.f.mjs +4 -4
  240. package/sha2/module.f.mjs +7 -20
  241. package/sha2/test.f.mjs +4 -4
  242. package/text/ascii/module.f.mjs +5 -10
  243. package/text/ascii/test.f.mjs +3 -3
  244. package/text/module.f.mjs +7 -14
  245. package/text/sgr/module.f.mjs +2 -4
  246. package/text/test.f.mjs +3 -3
  247. package/text/utf16/module.f.mjs +17 -28
  248. package/text/utf16/test.f.mjs +5 -5
  249. package/text/utf8/module.f.mjs +9 -16
  250. package/text/utf8/test.f.mjs +4 -4
  251. package/tsconfig.json +2 -2
  252. package/types/array/module.f.mjs +8 -25
  253. package/types/array/test.f.mjs +3 -3
  254. package/types/bigfloat/module.f.mjs +3 -10
  255. package/types/bigfloat/test.f.mjs +1 -1
  256. package/types/bigint/module.f.mjs +11 -30
  257. package/types/bigint/test.f.mjs +1 -1
  258. package/types/btree/find/module.f.mjs +8 -17
  259. package/types/btree/find/test.f.mjs +7 -7
  260. package/types/btree/module.f.mjs +6 -11
  261. package/types/btree/remove/module.f.mjs +10 -17
  262. package/types/btree/remove/test.f.mjs +5 -5
  263. package/types/btree/set/module.f.mjs +4 -9
  264. package/types/btree/set/test.f.mjs +4 -4
  265. package/types/btree/test.f.mjs +9 -9
  266. package/types/btree/types/module.f.mjs +0 -2
  267. package/types/byte_set/module.f.mjs +14 -39
  268. package/types/byte_set/test.f.mjs +5 -5
  269. package/types/function/compare/module.f.mjs +3 -12
  270. package/types/function/compare/test.f.mjs +1 -1
  271. package/types/function/module.f.mjs +4 -15
  272. package/types/function/operator/module.f.mjs +14 -41
  273. package/types/function/test.f.mjs +1 -1
  274. package/types/list/module.f.mjs +45 -114
  275. package/types/list/test.f.mjs +10 -10
  276. package/types/map/module.f.mjs +15 -30
  277. package/types/map/test.f.mjs +2 -2
  278. package/types/nibble_set/module.f.mjs +7 -24
  279. package/types/nibble_set/test.f.mjs +2 -2
  280. package/types/nullable/module.f.mjs +2 -9
  281. package/types/nullable/test.f.mjs +1 -1
  282. package/types/number/module.f.mjs +8 -19
  283. package/types/number/test.f.mjs +1 -1
  284. package/types/object/module.f.mjs +9 -20
  285. package/types/object/test.f.mjs +1 -1
  286. package/types/range/module.f.mjs +2 -9
  287. package/types/range/test.f.mjs +1 -1
  288. package/types/range_map/module.f.mjs +9 -18
  289. package/types/range_map/test.f.mjs +32 -32
  290. package/types/result/module.f.mjs +3 -12
  291. package/types/result/module.mjs +2 -2
  292. package/types/sorted_list/module.f.mjs +10 -19
  293. package/types/sorted_list/test.f.mjs +7 -7
  294. package/types/sorted_set/module.f.mjs +7 -16
  295. package/types/sorted_set/test.f.mjs +7 -7
  296. package/types/string/module.f.mjs +10 -21
  297. package/types/string/test.f.mjs +2 -2
  298. package/types/string_set/module.f.mjs +12 -27
  299. package/types/string_set/test.f.mjs +1 -1
  300. package/com/cpp/module.f.d.mts +0 -8
  301. package/com/cs/module.f.d.mts +0 -8
  302. package/commonjs/build/module.f.d.mts +0 -24
  303. package/commonjs/module.d.mts +0 -7
  304. package/commonjs/package/dependencies/module.f.d.mts +0 -10
  305. package/commonjs/package/module.f.d.mts +0 -27
  306. package/dev/module.f.d.mts +0 -4
  307. package/djs/tokenizer/module.f.d.mts +0 -17
  308. package/fsc/module.f.d.mts +0 -12
  309. package/fsm/module.f.d.mts +0 -21
  310. package/html/module.f.d.mts +0 -20
  311. package/json/module.f.d.mts +0 -41
  312. package/json/serializer/module.f.d.mts +0 -45
  313. package/json/tokenizer/module.f.d.mts +0 -17
  314. package/sha2/module.f.d.mts +0 -23
  315. package/text/ascii/module.f.d.mts +0 -73
  316. package/text/module.f.d.mts +0 -18
  317. package/text/sgr/module.f.d.mts +0 -14
  318. package/text/utf16/module.f.d.mts +0 -19
  319. package/text/utf8/module.f.d.mts +0 -15
  320. package/types/bigfloat/module.f.d.mts +0 -11
  321. package/types/btree/module.f.d.mts +0 -9
  322. package/types/byte_set/module.f.d.mts +0 -38
  323. package/types/list/module.f.d.mts +0 -117
  324. package/types/map/module.f.d.mts +0 -30
  325. package/types/nibble_set/module.f.d.mts +0 -26
  326. package/types/nullable/module.f.d.mts +0 -14
  327. package/types/number/module.f.d.mts +0 -13
  328. package/types/object/module.f.d.mts +0 -29
  329. package/types/range/module.f.d.mts +0 -11
  330. package/types/result/module.d.mts +0 -7
  331. package/types/string/module.f.d.mts +0 -15
  332. package/types/string_set/module.f.d.mts +0 -21
  333. /package/{com → out/com}/cpp/test.f.d.mts +0 -0
  334. /package/{com → out/com}/cpp/testlib.f.d.mts +0 -0
  335. /package/{com → out/com}/cs/test.f.d.mts +0 -0
  336. /package/{com → out/com}/cs/testlib.f.d.mts +0 -0
  337. /package/{com → out/com}/rust/test.f.d.mts +0 -0
  338. /package/{com → out/com}/rust/testlib.f.d.mts +0 -0
  339. /package/{com → out/com}/test/build.d.mts +0 -0
  340. /package/{com → out/com}/types/testlib.f.d.mts +0 -0
  341. /package/{commonjs → out/commonjs}/build/test.f.d.mts +0 -0
  342. /package/{commonjs → out/commonjs}/package/dependencies/test.f.d.mts +0 -0
  343. /package/{commonjs → out/commonjs}/package/test.f.d.mts +0 -0
  344. /package/{commonjs → out/commonjs}/path/test.f.d.mts +0 -0
  345. /package/{commonjs → out/commonjs}/test.d.mts +0 -0
  346. /package/{dev → out/dev}/index.d.mts +0 -0
  347. /package/{dev → out/dev}/module.d.mts +0 -0
  348. /package/{dev → out/dev}/test.d.mts +0 -0
  349. /package/{dev → out/dev}/test.f.d.mts +0 -0
  350. /package/{djs → out/djs}/parser/test.f.d.mts +0 -0
  351. /package/{djs → out/djs}/test.f.d.mts +0 -0
  352. /package/{djs → out/djs}/tokenizer/test.f.d.mts +0 -0
  353. /package/{fsc → out/fsc}/test.f.d.mts +0 -0
  354. /package/{fsm → out/fsm}/test.f.d.mts +0 -0
  355. /package/{html → out/html}/test.f.d.mts +0 -0
  356. /package/{issues → out/issues}/test.f.d.mts +0 -0
  357. /package/{js → out/js}/tokenizer/test.f.d.mts +0 -0
  358. /package/{json → out/json}/parser/test.f.d.mts +0 -0
  359. /package/{json → out/json}/serializer/test.f.d.mts +0 -0
  360. /package/{json → out/json}/test.f.d.mts +0 -0
  361. /package/{json → out/json}/tokenizer/test.f.d.mts +0 -0
  362. /package/{nanvm-lib → out/nanvm-lib}/tests/test.f.d.mts +0 -0
  363. /package/{nodejs → out/nodejs}/version/main.d.mts +0 -0
  364. /package/{nodejs → out/nodejs}/version/test.f.d.mts +0 -0
  365. /package/{prime_field → out/prime_field}/test.f.d.mts +0 -0
  366. /package/{secp → out/secp}/test.f.d.mts +0 -0
  367. /package/{sha2 → out/sha2}/test.f.d.mts +0 -0
  368. /package/{text → out/text}/ascii/test.f.d.mts +0 -0
  369. /package/{text → out/text}/test.f.d.mts +0 -0
  370. /package/{text → out/text}/utf16/test.f.d.mts +0 -0
  371. /package/{text → out/text}/utf8/test.f.d.mts +0 -0
  372. /package/{types → out/types}/array/test.f.d.mts +0 -0
  373. /package/{types → out/types}/bigfloat/test.f.d.mts +0 -0
  374. /package/{types → out/types}/bigint/test.f.d.mts +0 -0
  375. /package/{types → out/types}/btree/find/test.f.d.mts +0 -0
  376. /package/{types → out/types}/btree/remove/test.f.d.mts +0 -0
  377. /package/{types → out/types}/btree/set/test.f.d.mts +0 -0
  378. /package/{types → out/types}/btree/test.f.d.mts +0 -0
  379. /package/{types → out/types}/byte_set/test.f.d.mts +0 -0
  380. /package/{types → out/types}/function/compare/test.f.d.mts +0 -0
  381. /package/{types → out/types}/function/test.f.d.mts +0 -0
  382. /package/{types → out/types}/list/test.f.d.mts +0 -0
  383. /package/{types → out/types}/map/test.f.d.mts +0 -0
  384. /package/{types → out/types}/nibble_set/test.f.d.mts +0 -0
  385. /package/{types → out/types}/nullable/test.f.d.mts +0 -0
  386. /package/{types → out/types}/number/test.f.d.mts +0 -0
  387. /package/{types → out/types}/object/test.f.d.mts +0 -0
  388. /package/{types → out/types}/range/test.f.d.mts +0 -0
  389. /package/{types → out/types}/range_map/test.f.d.mts +0 -0
  390. /package/{types → out/types}/sorted_list/test.f.d.mts +0 -0
  391. /package/{types → out/types}/sorted_set/test.f.d.mts +0 -0
  392. /package/{types → out/types}/string/test.f.d.mts +0 -0
  393. /package/{types → out/types}/string_set/test.f.d.mts +0 -0
@@ -0,0 +1,114 @@
1
+ // @ts-self-types="./module.f.d.mts"
2
+ import * as _ from '../types/module.f.mjs';
3
+ import * as btreeFind from '../find/module.f.mjs';
4
+ const { find } = btreeFind;
5
+ import * as Cmp from '../../function/compare/module.f.mjs';
6
+ import * as list from '../../list/module.f.mjs';
7
+ const { fold } = list;
8
+ /**
9
+ * @template T
10
+ * @typedef {_.Branch1<T> | _.Branch3<T>} Branch1To3
11
+ */
12
+ /** @type {<T>(b: _.Branch5<T> | _.Branch7<T>) => Branch1To3<T>} */
13
+ const b57 = b => b.length === 5 ? [b] : [[b[0], b[1], b[2]], b[3], [b[4], b[5], b[6]]];
14
+ /** @type {<T>(i: btreeFind.PathItem<T>) => (a: Branch1To3<T>) => Branch1To3<T>} */
15
+ const reduceOp = ([i, x]) => a => {
16
+ switch (i) {
17
+ case 0: {
18
+ switch (x.length) {
19
+ case 3: {
20
+ return [[...a, x[1], x[2]]];
21
+ }
22
+ case 5: {
23
+ return b57([...a, x[1], x[2], x[3], x[4]]);
24
+ }
25
+ }
26
+ }
27
+ case 2: {
28
+ switch (x.length) {
29
+ case 3: {
30
+ return [[x[0], x[1], ...a]];
31
+ }
32
+ case 5: {
33
+ return b57([x[0], x[1], ...a, x[3], x[4]]);
34
+ }
35
+ }
36
+ }
37
+ case 4: {
38
+ return b57([x[0], x[1], x[2], x[3], ...a]);
39
+ }
40
+ }
41
+ };
42
+ const reduceBranch = fold(reduceOp);
43
+ /** @type {<T>(c: Cmp.Compare<T>) => (g: (value: T | null) => T) => (node: _.Node<T>) => _.Node<T>} */
44
+ const nodeSet = c => g => node => {
45
+ const { first, tail } = find(c)(node);
46
+ const [i, x] = first;
47
+ /** @typedef {typeof c extends Cmp.Compare<infer T> ? T : never} T */
48
+ /** @type {() => Branch1To3<T>} */
49
+ const f = () => {
50
+ switch (i) {
51
+ case 0: {
52
+ // insert
53
+ const value = g(null);
54
+ switch (x.length) {
55
+ case 1: {
56
+ return [[value, x[0]]];
57
+ }
58
+ case 2: {
59
+ return [[value], x[0], [x[1]]];
60
+ }
61
+ }
62
+ }
63
+ case 1: {
64
+ // replace
65
+ switch (x.length) {
66
+ case 1: {
67
+ return [[g(x[0])]];
68
+ }
69
+ case 2: {
70
+ return [[g(x[0]), x[1]]];
71
+ }
72
+ case 3: {
73
+ return [[x[0], g(x[1]), x[2]]];
74
+ }
75
+ case 5: {
76
+ return [[x[0], g(x[1]), x[2], x[3], x[4]]];
77
+ }
78
+ }
79
+ }
80
+ case 2: {
81
+ // insert
82
+ const value = g(null);
83
+ switch (x.length) {
84
+ case 1: {
85
+ return [[x[0], value]];
86
+ }
87
+ case 2: {
88
+ return [[x[0]], value, [x[1]]];
89
+ }
90
+ }
91
+ }
92
+ case 3: {
93
+ // replace
94
+ switch (x.length) {
95
+ case 2: {
96
+ return [[x[0], g(x[1])]];
97
+ }
98
+ case 5: {
99
+ return [[x[0], x[1], x[2], g(x[3]), x[4]]];
100
+ }
101
+ }
102
+ }
103
+ case 4: {
104
+ // insert
105
+ const [v0, v1] = x;
106
+ return [[v0], v1, [g(null)]];
107
+ }
108
+ }
109
+ };
110
+ const r = reduceBranch(f())(tail);
111
+ return r.length === 1 ? r[0] : r;
112
+ };
113
+ /** @type {<T>(c: Cmp.Compare<T>) => (f: (value: T|null) => T) => (tree: _.Tree<T>) => _.Node<T>} */
114
+ export const set = c => f => tree => tree === null ? [f(null)] : nodeSet(c)(f)(tree);
@@ -0,0 +1,390 @@
1
+ import * as _ from './module.f.mjs';
2
+ import * as BTree from '../types/module.f.mjs';
3
+ import * as s from '../../string/module.f.mjs';
4
+ const { cmp } = s;
5
+ import * as json from '../../../json/module.f.mjs';
6
+ import * as o from '../../object/module.f.mjs';
7
+ const { sort } = o;
8
+ /** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
9
+ const set = node => value => _.set(cmp(value))(() => value)(node);
10
+ const jsonStr = json.stringify(sort);
11
+ const test = [
12
+ () => {
13
+ /** @type {BTree.Node<string>} */
14
+ let _map = ['1'];
15
+ for (let i = 2; i <= 10; i++)
16
+ _map = set(_map)((i * i).toString());
17
+ const r = jsonStr(_map);
18
+ if (r !== '[[["1","100"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') {
19
+ throw r;
20
+ }
21
+ },
22
+ () => {
23
+ /** @type {BTree.Node<string>} */
24
+ let _map = ['1'];
25
+ for (let i = 2; i <= 11; i++)
26
+ _map = set(_map)((i * i).toString());
27
+ const r = jsonStr(_map);
28
+ if (r !== '[[["1"],"100",["121"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') {
29
+ throw r;
30
+ }
31
+ },
32
+ () => {
33
+ /** @type {BTree.Node<string>} */
34
+ let _map = ['1'];
35
+ for (let i = 2; i <= 12; i++)
36
+ _map = set(_map)((i * i).toString());
37
+ const r = jsonStr(_map);
38
+ if (r !== '[[["1"],"100",["121","144"],"16",["25","36"]],"4",[["49"],"64",["81","9"]]]') {
39
+ throw r;
40
+ }
41
+ },
42
+ () => {
43
+ /** @type {BTree.Node<string>} */
44
+ let _map = ['1'];
45
+ for (let i = 2; i <= 13; i++)
46
+ _map = set(_map)((i * i).toString());
47
+ const r = jsonStr(_map);
48
+ if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') {
49
+ throw r;
50
+ }
51
+ },
52
+ () => {
53
+ /** @type {BTree.Node<string>} */
54
+ let _map = ['1'];
55
+ for (let i = 2; i <= 14; i++)
56
+ _map = set(_map)((i * i).toString());
57
+ const r = jsonStr(_map);
58
+ if (r !== '[[["1"],"100",["121","144"]],"16",[["169","196"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') {
59
+ throw r;
60
+ }
61
+ },
62
+ () => {
63
+ /** @type {BTree.Node<string>} */
64
+ let _map = ['1'];
65
+ for (let i = 2; i <= 15; i++)
66
+ _map = set(_map)((i * i).toString());
67
+ const r = jsonStr(_map);
68
+ if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"],"25",["36"]],"4",[["49"],"64",["81","9"]]]') {
69
+ throw r;
70
+ }
71
+ },
72
+ () => {
73
+ /** @type {BTree.Node<string>} */
74
+ let _map = ['1'];
75
+ for (let i = 2; i <= 16; i++)
76
+ _map = set(_map)((i * i).toString());
77
+ const r = jsonStr(_map);
78
+ if (r !== '[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"],"25",["256","36"]],"4",[["49"],"64",["81","9"]]]') {
79
+ throw r;
80
+ }
81
+ },
82
+ () => {
83
+ /** @type {BTree.Node<string>} */
84
+ let _map = ['1'];
85
+ for (let i = 2; i <= 17; i++)
86
+ _map = set(_map)((i * i).toString());
87
+ const r = jsonStr(_map);
88
+ if (r !== '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["36"]],"4",[["49"],"64",["81","9"]]]]') {
89
+ throw r;
90
+ }
91
+ },
92
+ () => {
93
+ /** @type {BTree.Node<string>} */
94
+ let _map = ['1'];
95
+ for (let i = 2; i <= 18; i++)
96
+ _map = set(_map)((i * i).toString());
97
+ const r = jsonStr(_map);
98
+ if (r !==
99
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["324","36"]],"4",[["49"],"64",["81","9"]]]]') {
100
+ throw r;
101
+ }
102
+ },
103
+ () => {
104
+ /** @type {BTree.Node<string>} */
105
+ let _map = ['1'];
106
+ for (let i = 2; i <= 19; i++)
107
+ _map = set(_map)((i * i).toString());
108
+ const r = jsonStr(_map);
109
+ if (r !==
110
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],"25",[[["256"],"289",["324"],"36",["361"]],"4",[["49"],"64",["81","9"]]]]') {
111
+ throw r;
112
+ }
113
+ },
114
+ () => {
115
+ /** @type {BTree.Node<string>} */
116
+ let _map = ['1'];
117
+ for (let i = 2; i <= 20; i++)
118
+ _map = set(_map)((i * i).toString());
119
+ const r = jsonStr(_map);
120
+ if (r !==
121
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
122
+ '"25",' +
123
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400","49"],"64",["81","9"]]]]') {
124
+ throw r;
125
+ }
126
+ },
127
+ () => {
128
+ /** @type {BTree.Node<string>} */
129
+ let _map = ['1'];
130
+ for (let i = 2; i <= 21; i++)
131
+ _map = set(_map)((i * i).toString());
132
+ const r = jsonStr(_map);
133
+ if (r !==
134
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
135
+ '"25",' +
136
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["49"],"64",["81","9"]]]]') {
137
+ throw r;
138
+ }
139
+ },
140
+ () => {
141
+ /** @type {BTree.Node<string>} */
142
+ let _map = ['1'];
143
+ for (let i = 2; i <= 22; i++)
144
+ _map = set(_map)((i * i).toString());
145
+ const r = jsonStr(_map);
146
+ if (r !==
147
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
148
+ '"25",' +
149
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484","49"],"64",["81","9"]]]]') {
150
+ throw r;
151
+ }
152
+ },
153
+ () => {
154
+ /** @type {BTree.Node<string>} */
155
+ let _map = ['1'];
156
+ for (let i = 2; i <= 23; i++)
157
+ _map = set(_map)((i * i).toString());
158
+ const r = jsonStr(_map);
159
+ if (r !==
160
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
161
+ '"25",' +
162
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529"],"64",["81","9"]]]]') {
163
+ throw r;
164
+ }
165
+ },
166
+ () => {
167
+ /** @type {BTree.Node<string>} */
168
+ let _map = ['1'];
169
+ for (let i = 2; i <= 24; i++)
170
+ _map = set(_map)((i * i).toString());
171
+ const r = jsonStr(_map);
172
+ if (r !==
173
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
174
+ '"25",' +
175
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529","576"],"64",["81","9"]]]]') {
176
+ throw r;
177
+ }
178
+ },
179
+ () => {
180
+ /** @type {BTree.Node<string>} */
181
+ let _map = ['1'];
182
+ for (let i = 2; i <= 25; i++)
183
+ _map = set(_map)((i * i).toString());
184
+ const r = jsonStr(_map);
185
+ if (r !==
186
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
187
+ '"25",' +
188
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]],"49",[["529"],"576",["625"],"64",["81","9"]]]]') {
189
+ throw r;
190
+ }
191
+ },
192
+ () => {
193
+ /** @type {BTree.Node<string>} */
194
+ let _map = ['1'];
195
+ for (let i = 2; i <= 26; i++)
196
+ _map = set(_map)((i * i).toString());
197
+ const r = jsonStr(_map);
198
+ if (r !==
199
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
200
+ '"25",' +
201
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
202
+ '"49",' +
203
+ '[[["529"],"576",["625"]],"64",[["676"],"81",["9"]]]]') {
204
+ throw r;
205
+ }
206
+ },
207
+ () => {
208
+ /** @type {BTree.Node<string>} */
209
+ let _map = ['1'];
210
+ for (let i = 2; i <= 27; i++)
211
+ _map = set(_map)((i * i).toString());
212
+ const r = jsonStr(_map);
213
+ if (r !==
214
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
215
+ '"25",' +
216
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
217
+ '"49",' +
218
+ '[[["529"],"576",["625"]],"64",[["676","729"],"81",["9"]]]]') {
219
+ throw r;
220
+ }
221
+ },
222
+ () => {
223
+ /** @type {BTree.Node<string>} */
224
+ let _map = ['1'];
225
+ for (let i = 2; i <= 28; i++)
226
+ _map = set(_map)((i * i).toString());
227
+ const r = jsonStr(_map);
228
+ if (r !==
229
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
230
+ '"25",' +
231
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
232
+ '"49",' +
233
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"],"81",["9"]]]]') {
234
+ throw r;
235
+ }
236
+ },
237
+ () => {
238
+ /** @type {BTree.Node<string>} */
239
+ let _map = ['1'];
240
+ for (let i = 2; i <= 29; i++)
241
+ _map = set(_map)((i * i).toString());
242
+ const r = jsonStr(_map);
243
+ if (r !==
244
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
245
+ '"25",' +
246
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
247
+ '"49",' +
248
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"],"81",["841","9"]]]]') {
249
+ throw r;
250
+ }
251
+ },
252
+ () => {
253
+ /** @type {BTree.Node<string>} */
254
+ let _map = ['1'];
255
+ for (let i = 2; i <= 30; i++)
256
+ _map = set(_map)((i * i).toString());
257
+ const r = jsonStr(_map);
258
+ if (r !==
259
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
260
+ '"25",' +
261
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
262
+ '"49",' +
263
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900"]]]]') {
264
+ throw r;
265
+ }
266
+ },
267
+ () => {
268
+ /** @type {BTree.Node<string>} */
269
+ let _map = ['1'];
270
+ for (let i = 2; i <= 31; i++)
271
+ _map = set(_map)((i * i).toString());
272
+ const r = jsonStr(_map);
273
+ if (r !==
274
+ '[[[["1"],"100",["121","144"]],"16",[["169"],"196",["225"]]],' +
275
+ '"25",' +
276
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
277
+ '"49",' +
278
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
279
+ throw r;
280
+ }
281
+ },
282
+ () => {
283
+ /** @type {BTree.Node<string>} */
284
+ let _map = ['1'];
285
+ for (let i = 2; i <= 32; i++)
286
+ _map = set(_map)((i * i).toString());
287
+ const r = jsonStr(_map);
288
+ if (r !==
289
+ '[[[["1"],"100",["1024"],"121",["144"]],"16",[["169"],"196",["225"]]],' +
290
+ '"25",' +
291
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
292
+ '"49",' +
293
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
294
+ throw r;
295
+ }
296
+ },
297
+ () => {
298
+ /** @type {BTree.Node<string>} */
299
+ let _map = ['1'];
300
+ for (let i = 2; i <= 33; i++)
301
+ _map = set(_map)((i * i).toString());
302
+ const r = jsonStr(_map);
303
+ if (r !==
304
+ '[[[["1"],"100",["1024","1089"],"121",["144"]],"16",[["169"],"196",["225"]]],' +
305
+ '"25",' +
306
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
307
+ '"49",' +
308
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
309
+ throw r;
310
+ }
311
+ },
312
+ () => {
313
+ /** @type {BTree.Node<string>} */
314
+ let _map = ['1'];
315
+ for (let i = 2; i <= 34; i++)
316
+ _map = set(_map)((i * i).toString());
317
+ const r = jsonStr(_map);
318
+ if (r !==
319
+ '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["144"]],"16",[["169"],"196",["225"]]],' +
320
+ '"25",' +
321
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
322
+ '"49",' +
323
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
324
+ throw r;
325
+ }
326
+ },
327
+ () => {
328
+ /** @type {BTree.Node<string>} */
329
+ let _map = ['1'];
330
+ for (let i = 2; i <= 35; i++)
331
+ _map = set(_map)((i * i).toString());
332
+ const r = jsonStr(_map);
333
+ if (r !==
334
+ '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225","144"]],"16",[["169"],"196",["225"]]],' +
335
+ '"25",' +
336
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
337
+ '"49",' +
338
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
339
+ throw r;
340
+ }
341
+ },
342
+ () => {
343
+ /** @type {BTree.Node<string>} */
344
+ let _map = ['1'];
345
+ for (let i = 2; i <= 36; i++)
346
+ _map = set(_map)((i * i).toString());
347
+ const r = jsonStr(_map);
348
+ if (r !==
349
+ '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"],"1296",["144"]],"16",[["169"],"196",["225"]]],' +
350
+ '"25",' +
351
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
352
+ '"49",' +
353
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
354
+ throw r;
355
+ }
356
+ },
357
+ () => {
358
+ /** @type {BTree.Node<string>} */
359
+ let _map = ['1'];
360
+ for (let i = 2; i <= 37; i++)
361
+ _map = set(_map)((i * i).toString());
362
+ const r = jsonStr(_map);
363
+ if (r !==
364
+ '[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"],"1296",["1369","144"]],"16",[["169"],"196",["225"]]],' +
365
+ '"25",' +
366
+ '[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
367
+ '"49",' +
368
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]') {
369
+ throw r;
370
+ }
371
+ },
372
+ () => {
373
+ /** @type {BTree.Node<string>} */
374
+ let _map = ['1'];
375
+ for (let i = 2; i <= 38; i++)
376
+ _map = set(_map)((i * i).toString());
377
+ const r = jsonStr(_map);
378
+ if (r !==
379
+ '[[[[["1"],"100",["1024"]],"1089",[["1156"],"121",["1225"]]],' +
380
+ '"1296",' +
381
+ '[[["1369"],"144",["1444"]],"16",[["169"],"196",["225"]]]],' +
382
+ '"25",' +
383
+ '[[[["256"],"289",["324"],"36",["361"]],"4",[["400"],"441",["484"]]],' +
384
+ '"49",' +
385
+ '[[["529"],"576",["625"]],"64",[["676"],"729",["784"]],"81",[["841"],"9",["900","961"]]]]]') {
386
+ throw r;
387
+ }
388
+ }
389
+ ];
390
+ export default test;
@@ -0,0 +1,83 @@
1
+ import * as BTree from './types/module.f.mjs';
2
+ import * as _ from './module.f.mjs';
3
+ const { values } = _;
4
+ import * as json from '../../json/module.f.mjs';
5
+ import * as o from '../object/module.f.mjs';
6
+ const { sort } = o;
7
+ import * as str from '../string/module.f.mjs';
8
+ const { cmp } = str;
9
+ import * as list from '../list/module.f.mjs';
10
+ import * as s from './set/module.f.mjs';
11
+ import * as f from './find/module.f.mjs';
12
+ const jsonStr = json.stringify(sort);
13
+ /** @type {(sequence: list.List<json.Unknown>) => string} */
14
+ const stringify = sequence => jsonStr(list.toArray(sequence));
15
+ /** @type {(node: BTree.Node<string>) => (value: string) => BTree.Node<string>} */
16
+ const set = node => value => s.set(cmp(value))(() => value)(node);
17
+ const valueTest1 = () => {
18
+ /** @type {BTree.Node<string>} */
19
+ let _map = ['a'];
20
+ _map = set(_map)('b');
21
+ _map = set(_map)('c');
22
+ _map = set(_map)('d');
23
+ _map = set(_map)('e');
24
+ _map = set(_map)('f');
25
+ let result = stringify(values(_map));
26
+ if (result !== '["a","b","c","d","e","f"]') {
27
+ throw result;
28
+ }
29
+ };
30
+ const valuesTest2 = () => {
31
+ /** @type {BTree.Node<string>} */
32
+ let _map = ['1'];
33
+ for (let i = 2; i <= 10; i++)
34
+ _map = set(_map)((i * i).toString());
35
+ let result = stringify(values(_map));
36
+ if (result !== '["1","100","16","25","36","4","49","64","81","9"]') {
37
+ throw result;
38
+ }
39
+ };
40
+ const findTrue = () => {
41
+ /** @type {BTree.Node<string>} */
42
+ let _map = ['a'];
43
+ _map = set(_map)('b');
44
+ _map = set(_map)('c');
45
+ const result = f.value(f.find(cmp('b'))(_map).first);
46
+ if (result !== 'b') {
47
+ throw result;
48
+ }
49
+ };
50
+ const find = () => {
51
+ /** @type {BTree.Node<string>} */
52
+ let _map = ['a'];
53
+ _map = set(_map)('b');
54
+ _map = set(_map)('c');
55
+ const result = f.value(f.find(cmp('e'))(_map).first);
56
+ if (result !== null) {
57
+ throw result;
58
+ }
59
+ };
60
+ const test = () => {
61
+ /** @type {BTree.Node<string>} */
62
+ let _map = ['a'];
63
+ _map = set(_map)('b');
64
+ _map = set(_map)('c');
65
+ _map = set(_map)('d');
66
+ _map = set(_map)('e');
67
+ _map = set(_map)('f');
68
+ //
69
+ {
70
+ /** @type {list.Result<string>} */
71
+ let _item = list.next(values(_map));
72
+ while (_item !== null) {
73
+ _item = list.next(_item.tail);
74
+ }
75
+ }
76
+ };
77
+ export default {
78
+ valueTest1,
79
+ valuesTest2,
80
+ findTrue,
81
+ find,
82
+ test,
83
+ };
@@ -1,5 +1,3 @@
1
- declare const _default: {};
2
- export default _default;
3
1
  export type Array1<T> = readonly [T];
4
2
  export type Array2<T> = readonly [T, T];
5
3
  export type Array3<T> = readonly [T, T, T];
@@ -0,0 +1,50 @@
1
+ // @ts-self-types="./module.f.d.mts"
2
+ export {};
3
+ /**
4
+ * @template T
5
+ * @typedef {readonly[T]} Array1
6
+ */
7
+ /**
8
+ * @template T
9
+ * @typedef {readonly[T,T]} Array2
10
+ */
11
+ /**
12
+ * @template T
13
+ * @typedef {readonly[T,T,T]} Array3
14
+ */
15
+ /** @typedef {0|1} Index2 */
16
+ /** @typedef {0|1|2} Index3 */
17
+ /** @typedef {0|1|2|3|4} Index5 */
18
+ //
19
+ /**
20
+ * @template T
21
+ * @typedef {Array1<T>} Leaf1
22
+ */
23
+ /**
24
+ * @template T
25
+ * @typedef {Array2<T>} Leaf2
26
+ */
27
+ /**
28
+ * @template T
29
+ * @typedef {readonly [Node<T>, T, Node<T>]} Branch3
30
+ */
31
+ /**
32
+ * @template T
33
+ * @typedef {readonly [Node<T>, T, Node<T>, T, Node<T>]} Branch5
34
+ */
35
+ /**
36
+ * @template T
37
+ * @typedef { Leaf1<T> | Leaf2<T> | Branch3<T> | Branch5<T>} Node
38
+ */
39
+ /**
40
+ * @template T
41
+ * @typedef {Node<T> | null} Tree
42
+ */
43
+ /**
44
+ * @template T
45
+ * @typedef {readonly[Node<T>]} Branch1
46
+ */
47
+ /**
48
+ * @template T
49
+ * @typedef { readonly[...Branch5<T>, T, Node<T>] } Branch7
50
+ */
@@ -0,0 +1,25 @@
1
+ /** @typedef {bigint} ByteSet */
2
+ /** @typedef {number} Byte */
3
+ /** @type {(n: Byte) => (s: ByteSet) => boolean} */
4
+ export const has: (n: Byte) => (s: ByteSet) => boolean;
5
+ export const empty: 0n;
6
+ export const universe: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn;
7
+ /** @type {(n: Byte) => ByteSet} */
8
+ export const one: (n: Byte) => ByteSet;
9
+ /** @type {(r: readonly[Byte, Byte]) => ByteSet} */
10
+ export const range: (r: readonly [Byte, Byte]) => ByteSet;
11
+ /** @type {(a: ByteSet) => (b: ByteSet) => ByteSet} */
12
+ export const union: (a: ByteSet) => (b: ByteSet) => ByteSet;
13
+ /** @type {(n: ByteSet) => ByteSet} */
14
+ export const complement: (n: ByteSet) => ByteSet;
15
+ export const set: f.Func<number, (b: ByteSet) => ByteSet>;
16
+ export const setRange: f.Func<readonly [number, number], (b: ByteSet) => ByteSet>;
17
+ /** @type {(n: Byte) => (s: ByteSet) => ByteSet} */
18
+ export const unset: (n: Byte) => (s: ByteSet) => ByteSet;
19
+ /** @type {(n: ByteSet) => (s: string) => RangeMap.RangeMap<SortedSet.SortedSet<string>>} */
20
+ export const toRangeMap: (n: ByteSet) => (s: string) => RangeMap.RangeMap<SortedSet.SortedSet<string>>;
21
+ export type ByteSet = bigint;
22
+ export type Byte = number;
23
+ import * as f from '../function/module.f.mjs';
24
+ import * as RangeMap from '../range_map/module.f.mjs';
25
+ import * as SortedSet from '../sorted_set/module.f.mjs';