@vielzeug/toolkit 1.1.3 → 2.1.0

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 (764) hide show
  1. package/README.md +325 -452
  2. package/dist/array/chunk.cjs +2 -2
  3. package/dist/array/chunk.cjs.map +1 -1
  4. package/dist/array/chunk.d.ts +29 -0
  5. package/dist/array/chunk.d.ts.map +1 -0
  6. package/dist/array/chunk.js +22 -24
  7. package/dist/array/chunk.js.map +1 -1
  8. package/dist/array/contains.cjs +2 -2
  9. package/dist/array/contains.cjs.map +1 -1
  10. package/dist/array/contains.d.ts +19 -0
  11. package/dist/array/contains.d.ts.map +1 -0
  12. package/dist/array/contains.js +12 -9
  13. package/dist/array/contains.js.map +1 -1
  14. package/dist/array/fold.cjs +2 -0
  15. package/dist/array/fold.cjs.map +1 -0
  16. package/dist/array/fold.d.ts +21 -0
  17. package/dist/array/fold.d.ts.map +1 -0
  18. package/dist/array/fold.js +19 -0
  19. package/dist/array/fold.js.map +1 -0
  20. package/dist/array/group.cjs +2 -2
  21. package/dist/array/group.cjs.map +1 -1
  22. package/dist/array/group.d.ts +19 -0
  23. package/dist/array/group.d.ts.map +1 -0
  24. package/dist/array/group.js +18 -15
  25. package/dist/array/group.js.map +1 -1
  26. package/dist/array/index.d.ts +16 -0
  27. package/dist/array/index.d.ts.map +1 -0
  28. package/dist/array/keyBy.cjs +2 -0
  29. package/dist/array/keyBy.cjs.map +1 -0
  30. package/dist/array/keyBy.d.ts +20 -0
  31. package/dist/array/keyBy.d.ts.map +1 -0
  32. package/dist/array/keyBy.js +19 -0
  33. package/dist/array/keyBy.js.map +1 -0
  34. package/dist/array/list.cjs +2 -2
  35. package/dist/array/list.cjs.map +1 -1
  36. package/dist/array/list.d.ts +58 -0
  37. package/dist/array/list.d.ts.map +1 -0
  38. package/dist/array/list.js +103 -106
  39. package/dist/array/list.js.map +1 -1
  40. package/dist/array/pick.cjs +2 -2
  41. package/dist/array/pick.cjs.map +1 -1
  42. package/dist/array/pick.d.ts +19 -0
  43. package/dist/array/pick.d.ts.map +1 -0
  44. package/dist/array/pick.js +15 -14
  45. package/dist/array/pick.js.map +1 -1
  46. package/dist/array/remoteList.cjs +2 -2
  47. package/dist/array/remoteList.cjs.map +1 -1
  48. package/dist/array/remoteList.d.ts +64 -0
  49. package/dist/array/remoteList.d.ts.map +1 -0
  50. package/dist/array/remoteList.js +121 -122
  51. package/dist/array/remoteList.js.map +1 -1
  52. package/dist/array/replace.cjs +2 -0
  53. package/dist/array/replace.cjs.map +1 -0
  54. package/dist/array/replace.d.ts +20 -0
  55. package/dist/array/replace.d.ts.map +1 -0
  56. package/dist/array/replace.js +19 -0
  57. package/dist/array/replace.js.map +1 -0
  58. package/dist/array/rotate.cjs +2 -0
  59. package/dist/array/rotate.cjs.map +1 -0
  60. package/dist/array/rotate.d.ts +22 -0
  61. package/dist/array/rotate.d.ts.map +1 -0
  62. package/dist/array/rotate.js +19 -0
  63. package/dist/array/rotate.js.map +1 -0
  64. package/dist/array/search.cjs +2 -2
  65. package/dist/array/search.cjs.map +1 -1
  66. package/dist/array/search.d.ts +19 -0
  67. package/dist/array/search.d.ts.map +1 -0
  68. package/dist/array/search.js +23 -13
  69. package/dist/array/search.js.map +1 -1
  70. package/dist/array/select.cjs +2 -2
  71. package/dist/array/select.cjs.map +1 -1
  72. package/dist/array/select.d.ts +21 -0
  73. package/dist/array/select.d.ts.map +1 -0
  74. package/dist/array/select.js +16 -15
  75. package/dist/array/select.js.map +1 -1
  76. package/dist/array/sort.cjs +2 -2
  77. package/dist/array/sort.cjs.map +1 -1
  78. package/dist/array/sort.d.ts +26 -0
  79. package/dist/array/sort.d.ts.map +1 -0
  80. package/dist/array/sort.js +18 -12
  81. package/dist/array/sort.js.map +1 -1
  82. package/dist/array/toggle.cjs +2 -0
  83. package/dist/array/toggle.cjs.map +1 -0
  84. package/dist/array/toggle.d.ts +29 -0
  85. package/dist/array/toggle.d.ts.map +1 -0
  86. package/dist/array/toggle.js +9 -0
  87. package/dist/array/toggle.js.map +1 -0
  88. package/dist/array/uniq.cjs +2 -2
  89. package/dist/array/uniq.cjs.map +1 -1
  90. package/dist/array/uniq.d.ts +21 -0
  91. package/dist/array/uniq.d.ts.map +1 -0
  92. package/dist/array/uniq.js +15 -17
  93. package/dist/array/uniq.js.map +1 -1
  94. package/dist/async/attempt.cjs +2 -2
  95. package/dist/async/attempt.cjs.map +1 -1
  96. package/dist/async/attempt.d.ts +40 -0
  97. package/dist/async/attempt.d.ts.map +1 -0
  98. package/dist/async/attempt.js +19 -14
  99. package/dist/async/attempt.js.map +1 -1
  100. package/dist/async/defer.cjs +2 -2
  101. package/dist/async/defer.cjs.map +1 -1
  102. package/dist/async/defer.d.ts +23 -0
  103. package/dist/async/defer.d.ts.map +1 -0
  104. package/dist/async/defer.js +12 -9
  105. package/dist/async/defer.js.map +1 -1
  106. package/dist/async/index.d.ts +12 -0
  107. package/dist/async/index.d.ts.map +1 -0
  108. package/dist/async/parallel.cjs +2 -2
  109. package/dist/async/parallel.cjs.map +1 -1
  110. package/dist/async/parallel.d.ts +31 -0
  111. package/dist/async/parallel.d.ts.map +1 -0
  112. package/dist/async/parallel.js +26 -27
  113. package/dist/async/parallel.js.map +1 -1
  114. package/dist/async/pool.cjs +2 -2
  115. package/dist/async/pool.cjs.map +1 -1
  116. package/dist/async/pool.d.ts +21 -0
  117. package/dist/async/pool.d.ts.map +1 -0
  118. package/dist/async/pool.js +23 -21
  119. package/dist/async/pool.js.map +1 -1
  120. package/dist/async/predict.cjs +2 -2
  121. package/dist/async/predict.cjs.map +1 -1
  122. package/dist/async/predict.d.ts +24 -0
  123. package/dist/async/predict.d.ts.map +1 -0
  124. package/dist/async/predict.js +10 -12
  125. package/dist/async/predict.js.map +1 -1
  126. package/dist/async/queue.cjs +2 -2
  127. package/dist/async/queue.cjs.map +1 -1
  128. package/dist/async/queue.d.ts +43 -0
  129. package/dist/async/queue.d.ts.map +1 -0
  130. package/dist/async/queue.js +52 -56
  131. package/dist/async/queue.js.map +1 -1
  132. package/dist/async/race.cjs +2 -2
  133. package/dist/async/race.cjs.map +1 -1
  134. package/dist/async/race.d.ts +16 -0
  135. package/dist/async/race.d.ts.map +1 -0
  136. package/dist/async/race.js +8 -7
  137. package/dist/async/race.js.map +1 -1
  138. package/dist/async/retry.cjs +2 -2
  139. package/dist/async/retry.cjs.map +1 -1
  140. package/dist/async/retry.d.ts +32 -0
  141. package/dist/async/retry.d.ts.map +1 -0
  142. package/dist/async/retry.js +19 -24
  143. package/dist/async/retry.js.map +1 -1
  144. package/dist/async/scheduler.cjs +2 -0
  145. package/dist/async/scheduler.cjs.map +1 -0
  146. package/dist/async/scheduler.d.ts +51 -0
  147. package/dist/async/scheduler.d.ts.map +1 -0
  148. package/dist/async/scheduler.js +43 -0
  149. package/dist/async/scheduler.js.map +1 -0
  150. package/dist/async/sleep.cjs +2 -2
  151. package/dist/async/sleep.cjs.map +1 -1
  152. package/dist/async/sleep.d.ts +16 -0
  153. package/dist/async/sleep.d.ts.map +1 -0
  154. package/dist/async/sleep.js +11 -11
  155. package/dist/async/sleep.js.map +1 -1
  156. package/dist/async/waitFor.cjs +2 -2
  157. package/dist/async/waitFor.cjs.map +1 -1
  158. package/dist/async/waitFor.d.ts +33 -0
  159. package/dist/async/waitFor.d.ts.map +1 -0
  160. package/dist/async/waitFor.js +29 -36
  161. package/dist/async/waitFor.js.map +1 -1
  162. package/dist/date/expires.cjs +2 -2
  163. package/dist/date/expires.cjs.map +1 -1
  164. package/dist/date/expires.d.ts +15 -0
  165. package/dist/date/expires.d.ts.map +1 -0
  166. package/dist/date/expires.js +11 -10
  167. package/dist/date/expires.js.map +1 -1
  168. package/dist/date/index.d.ts +4 -0
  169. package/dist/date/index.d.ts.map +1 -0
  170. package/dist/date/interval.cjs +2 -2
  171. package/dist/date/interval.cjs.map +1 -1
  172. package/dist/date/interval.d.ts +25 -0
  173. package/dist/date/interval.d.ts.map +1 -0
  174. package/dist/date/interval.js +31 -37
  175. package/dist/date/interval.js.map +1 -1
  176. package/dist/date/timeDiff.cjs +2 -2
  177. package/dist/date/timeDiff.cjs.map +1 -1
  178. package/dist/date/timeDiff.d.ts +24 -0
  179. package/dist/date/timeDiff.d.ts.map +1 -0
  180. package/dist/date/timeDiff.js +58 -25
  181. package/dist/date/timeDiff.js.map +1 -1
  182. package/dist/function/assert.cjs +2 -3
  183. package/dist/function/assert.cjs.map +1 -1
  184. package/dist/function/assert.d.ts +38 -0
  185. package/dist/function/assert.d.ts.map +1 -0
  186. package/dist/function/assert.js +13 -11
  187. package/dist/function/assert.js.map +1 -1
  188. package/dist/function/assertParams.cjs +2 -2
  189. package/dist/function/assertParams.cjs.map +1 -1
  190. package/dist/function/assertParams.d.ts +24 -0
  191. package/dist/function/assertParams.d.ts.map +1 -0
  192. package/dist/function/assertParams.js +13 -12
  193. package/dist/function/assertParams.js.map +1 -1
  194. package/dist/function/compare.cjs +2 -2
  195. package/dist/function/compare.cjs.map +1 -1
  196. package/dist/function/compare.d.ts +23 -0
  197. package/dist/function/compare.d.ts.map +1 -0
  198. package/dist/function/compare.js +22 -21
  199. package/dist/function/compare.js.map +1 -1
  200. package/dist/function/compareBy.cjs +2 -2
  201. package/dist/function/compareBy.cjs.map +1 -1
  202. package/dist/function/compareBy.d.ts +24 -0
  203. package/dist/function/compareBy.d.ts.map +1 -0
  204. package/dist/function/compareBy.js +15 -14
  205. package/dist/function/compareBy.js.map +1 -1
  206. package/dist/function/compose.cjs +2 -2
  207. package/dist/function/compose.cjs.map +1 -1
  208. package/dist/function/compose.d.ts +22 -0
  209. package/dist/function/compose.d.ts.map +1 -0
  210. package/dist/function/compose.js +10 -13
  211. package/dist/function/compose.js.map +1 -1
  212. package/dist/function/curry.cjs +2 -2
  213. package/dist/function/curry.cjs.map +1 -1
  214. package/dist/function/curry.d.ts +21 -0
  215. package/dist/function/curry.d.ts.map +1 -0
  216. package/dist/function/curry.js +8 -7
  217. package/dist/function/curry.js.map +1 -1
  218. package/dist/function/debounce.cjs +2 -2
  219. package/dist/function/debounce.cjs.map +1 -1
  220. package/dist/function/debounce.d.ts +12 -0
  221. package/dist/function/debounce.d.ts.map +1 -0
  222. package/dist/function/debounce.js +34 -26
  223. package/dist/function/debounce.js.map +1 -1
  224. package/dist/function/fp.cjs +2 -2
  225. package/dist/function/fp.cjs.map +1 -1
  226. package/dist/function/fp.d.ts +24 -0
  227. package/dist/function/fp.d.ts.map +1 -0
  228. package/dist/function/fp.js +6 -10
  229. package/dist/function/fp.js.map +1 -1
  230. package/dist/function/index.d.ts +13 -0
  231. package/dist/function/index.d.ts.map +1 -0
  232. package/dist/function/memo.cjs +2 -2
  233. package/dist/function/memo.cjs.map +1 -1
  234. package/dist/function/memo.d.ts +30 -0
  235. package/dist/function/memo.d.ts.map +1 -0
  236. package/dist/function/memo.js +16 -24
  237. package/dist/function/memo.js.map +1 -1
  238. package/dist/function/once.cjs +2 -2
  239. package/dist/function/once.cjs.map +1 -1
  240. package/dist/function/once.d.ts +24 -0
  241. package/dist/function/once.d.ts.map +1 -0
  242. package/dist/function/once.js +10 -10
  243. package/dist/function/once.js.map +1 -1
  244. package/dist/function/pipe.cjs +2 -2
  245. package/dist/function/pipe.cjs.map +1 -1
  246. package/dist/function/pipe.d.ts +23 -0
  247. package/dist/function/pipe.d.ts.map +1 -0
  248. package/dist/function/pipe.js +10 -10
  249. package/dist/function/pipe.js.map +1 -1
  250. package/dist/function/throttle.cjs +2 -2
  251. package/dist/function/throttle.cjs.map +1 -1
  252. package/dist/function/throttle.d.ts +21 -0
  253. package/dist/function/throttle.d.ts.map +1 -0
  254. package/dist/function/throttle.js +45 -37
  255. package/dist/function/throttle.js.map +1 -1
  256. package/dist/index.cjs +1 -2
  257. package/dist/index.d.ts +77 -2813
  258. package/dist/index.d.ts.map +1 -0
  259. package/dist/index.js +75 -253
  260. package/dist/math/abs.cjs +2 -2
  261. package/dist/math/abs.cjs.map +1 -1
  262. package/dist/math/abs.d.ts +17 -0
  263. package/dist/math/abs.d.ts.map +1 -0
  264. package/dist/math/abs.js +7 -6
  265. package/dist/math/abs.js.map +1 -1
  266. package/dist/math/allocate.cjs +2 -2
  267. package/dist/math/allocate.cjs.map +1 -1
  268. package/dist/math/allocate.d.ts +24 -0
  269. package/dist/math/allocate.d.ts.map +1 -0
  270. package/dist/math/allocate.js +20 -28
  271. package/dist/math/allocate.js.map +1 -1
  272. package/dist/math/average.cjs +2 -2
  273. package/dist/math/average.cjs.map +1 -1
  274. package/dist/math/average.d.ts +16 -0
  275. package/dist/math/average.d.ts.map +1 -0
  276. package/dist/math/average.js +13 -24
  277. package/dist/math/average.js.map +1 -1
  278. package/dist/math/clamp.cjs +2 -2
  279. package/dist/math/clamp.cjs.map +1 -1
  280. package/dist/math/clamp.d.ts +18 -0
  281. package/dist/math/clamp.d.ts.map +1 -0
  282. package/dist/math/clamp.js +7 -6
  283. package/dist/math/clamp.js.map +1 -1
  284. package/dist/math/distribute.cjs +2 -2
  285. package/dist/math/distribute.cjs.map +1 -1
  286. package/dist/math/distribute.d.ts +24 -0
  287. package/dist/math/distribute.d.ts.map +1 -0
  288. package/dist/math/distribute.js +14 -17
  289. package/dist/math/distribute.js.map +1 -1
  290. package/dist/math/index.d.ts +14 -0
  291. package/dist/math/index.d.ts.map +1 -0
  292. package/dist/math/linspace.cjs +2 -0
  293. package/dist/math/linspace.cjs.map +1 -0
  294. package/dist/math/linspace.d.ts +19 -0
  295. package/dist/math/linspace.d.ts.map +1 -0
  296. package/dist/math/linspace.js +11 -0
  297. package/dist/math/linspace.js.map +1 -0
  298. package/dist/math/max.cjs +2 -2
  299. package/dist/math/max.cjs.map +1 -1
  300. package/dist/math/max.d.ts +23 -0
  301. package/dist/math/max.d.ts.map +1 -0
  302. package/dist/math/max.js +10 -11
  303. package/dist/math/max.js.map +1 -1
  304. package/dist/math/median.cjs +2 -2
  305. package/dist/math/median.cjs.map +1 -1
  306. package/dist/math/median.d.ts +17 -0
  307. package/dist/math/median.d.ts.map +1 -0
  308. package/dist/math/median.js +11 -10
  309. package/dist/math/median.js.map +1 -1
  310. package/dist/math/min.cjs +2 -2
  311. package/dist/math/min.cjs.map +1 -1
  312. package/dist/math/min.d.ts +23 -0
  313. package/dist/math/min.d.ts.map +1 -0
  314. package/dist/math/min.js +10 -11
  315. package/dist/math/min.js.map +1 -1
  316. package/dist/math/percent.cjs +2 -0
  317. package/dist/math/percent.cjs.map +1 -0
  318. package/dist/math/percent.d.ts +19 -0
  319. package/dist/math/percent.d.ts.map +1 -0
  320. package/dist/math/percent.js +8 -0
  321. package/dist/math/percent.js.map +1 -0
  322. package/dist/math/range.cjs +2 -2
  323. package/dist/math/range.cjs.map +1 -1
  324. package/dist/math/range.d.ts +23 -0
  325. package/dist/math/range.d.ts.map +1 -0
  326. package/dist/math/range.js +28 -17
  327. package/dist/math/range.js.map +1 -1
  328. package/dist/math/round.cjs +2 -2
  329. package/dist/math/round.cjs.map +1 -1
  330. package/dist/math/round.d.ts +21 -0
  331. package/dist/math/round.d.ts.map +1 -0
  332. package/dist/math/round.js +9 -8
  333. package/dist/math/round.js.map +1 -1
  334. package/dist/math/sum.cjs +2 -2
  335. package/dist/math/sum.cjs.map +1 -1
  336. package/dist/math/sum.d.ts +17 -0
  337. package/dist/math/sum.d.ts.map +1 -0
  338. package/dist/math/sum.js +11 -14
  339. package/dist/math/sum.js.map +1 -1
  340. package/dist/money/currency.cjs +2 -2
  341. package/dist/money/currency.cjs.map +1 -1
  342. package/dist/money/currency.d.ts +30 -0
  343. package/dist/money/currency.d.ts.map +1 -0
  344. package/dist/money/currency.js +19 -47
  345. package/dist/money/currency.js.map +1 -1
  346. package/dist/money/exchange.cjs +2 -2
  347. package/dist/money/exchange.cjs.map +1 -1
  348. package/dist/money/exchange.d.ts +29 -0
  349. package/dist/money/exchange.d.ts.map +1 -0
  350. package/dist/money/exchange.js +12 -12
  351. package/dist/money/exchange.js.map +1 -1
  352. package/dist/money/index.d.ts +4 -0
  353. package/dist/money/index.d.ts.map +1 -0
  354. package/dist/money/types.d.ts +9 -0
  355. package/dist/money/types.d.ts.map +1 -0
  356. package/dist/object/diff.cjs +2 -2
  357. package/dist/object/diff.cjs.map +1 -1
  358. package/dist/object/diff.d.ts +26 -0
  359. package/dist/object/diff.d.ts.map +1 -0
  360. package/dist/object/diff.js +19 -17
  361. package/dist/object/diff.js.map +1 -1
  362. package/dist/object/index.d.ts +9 -0
  363. package/dist/object/index.d.ts.map +1 -0
  364. package/dist/object/merge.cjs +2 -2
  365. package/dist/object/merge.cjs.map +1 -1
  366. package/dist/object/merge.d.ts +44 -0
  367. package/dist/object/merge.d.ts.map +1 -0
  368. package/dist/object/merge.js +27 -21
  369. package/dist/object/merge.js.map +1 -1
  370. package/dist/object/parseJSON.cjs +2 -2
  371. package/dist/object/parseJSON.cjs.map +1 -1
  372. package/dist/object/parseJSON.d.ts +32 -0
  373. package/dist/object/parseJSON.d.ts.map +1 -0
  374. package/dist/object/parseJSON.js +17 -18
  375. package/dist/object/parseJSON.js.map +1 -1
  376. package/dist/object/path.cjs +2 -2
  377. package/dist/object/path.cjs.map +1 -1
  378. package/dist/object/path.d.ts +32 -0
  379. package/dist/object/path.d.ts.map +1 -0
  380. package/dist/object/path.js +25 -23
  381. package/dist/object/path.js.map +1 -1
  382. package/dist/object/proxy.cjs +2 -0
  383. package/dist/object/proxy.cjs.map +1 -0
  384. package/dist/object/proxy.d.ts +30 -0
  385. package/dist/object/proxy.d.ts.map +1 -0
  386. package/dist/object/proxy.js +21 -0
  387. package/dist/object/proxy.js.map +1 -0
  388. package/dist/object/prune.cjs +2 -0
  389. package/dist/object/prune.cjs.map +1 -0
  390. package/dist/object/prune.d.ts +21 -0
  391. package/dist/object/prune.d.ts.map +1 -0
  392. package/dist/object/prune.js +31 -0
  393. package/dist/object/prune.js.map +1 -0
  394. package/dist/object/seek.cjs +2 -2
  395. package/dist/object/seek.cjs.map +1 -1
  396. package/dist/object/seek.d.ts +2 -0
  397. package/dist/object/seek.d.ts.map +1 -0
  398. package/dist/object/seek.js +25 -12
  399. package/dist/object/seek.js.map +1 -1
  400. package/dist/object/stash.cjs +2 -0
  401. package/dist/object/stash.cjs.map +1 -0
  402. package/dist/object/stash.d.ts +45 -0
  403. package/dist/object/stash.d.ts.map +1 -0
  404. package/dist/object/stash.js +99 -0
  405. package/dist/object/stash.js.map +1 -0
  406. package/dist/random/draw.cjs +2 -2
  407. package/dist/random/draw.cjs.map +1 -1
  408. package/dist/random/draw.d.ts +16 -0
  409. package/dist/random/draw.d.ts.map +1 -0
  410. package/dist/random/draw.js +13 -10
  411. package/dist/random/draw.js.map +1 -1
  412. package/dist/random/index.d.ts +5 -0
  413. package/dist/random/index.d.ts.map +1 -0
  414. package/dist/random/random.cjs +2 -2
  415. package/dist/random/random.cjs.map +1 -1
  416. package/dist/random/random.d.ts +14 -0
  417. package/dist/random/random.d.ts.map +1 -0
  418. package/dist/random/random.js +16 -9
  419. package/dist/random/random.js.map +1 -1
  420. package/dist/random/shuffle.cjs +2 -2
  421. package/dist/random/shuffle.cjs.map +1 -1
  422. package/dist/random/shuffle.d.ts +17 -0
  423. package/dist/random/shuffle.d.ts.map +1 -0
  424. package/dist/random/shuffle.js +18 -14
  425. package/dist/random/shuffle.js.map +1 -1
  426. package/dist/random/uuid.cjs +2 -2
  427. package/dist/random/uuid.cjs.map +1 -1
  428. package/dist/random/uuid.d.ts +12 -0
  429. package/dist/random/uuid.d.ts.map +1 -0
  430. package/dist/random/uuid.js +7 -9
  431. package/dist/random/uuid.js.map +1 -1
  432. package/dist/string/_caseUtils.cjs +2 -2
  433. package/dist/string/_caseUtils.cjs.map +1 -1
  434. package/dist/string/_caseUtils.d.ts +13 -0
  435. package/dist/string/_caseUtils.d.ts.map +1 -0
  436. package/dist/string/_caseUtils.js +8 -8
  437. package/dist/string/_caseUtils.js.map +1 -1
  438. package/dist/string/camelCase.cjs +2 -2
  439. package/dist/string/camelCase.cjs.map +1 -1
  440. package/dist/string/camelCase.d.ts +14 -0
  441. package/dist/string/camelCase.d.ts.map +1 -0
  442. package/dist/string/camelCase.js +8 -7
  443. package/dist/string/camelCase.js.map +1 -1
  444. package/dist/string/index.d.ts +7 -0
  445. package/dist/string/index.d.ts.map +1 -0
  446. package/dist/string/kebabCase.cjs +2 -2
  447. package/dist/string/kebabCase.cjs.map +1 -1
  448. package/dist/string/kebabCase.d.ts +15 -0
  449. package/dist/string/kebabCase.d.ts.map +1 -0
  450. package/dist/string/kebabCase.js +8 -7
  451. package/dist/string/kebabCase.js.map +1 -1
  452. package/dist/string/pascalCase.cjs +2 -2
  453. package/dist/string/pascalCase.cjs.map +1 -1
  454. package/dist/string/pascalCase.d.ts +15 -0
  455. package/dist/string/pascalCase.d.ts.map +1 -0
  456. package/dist/string/pascalCase.js +8 -7
  457. package/dist/string/pascalCase.js.map +1 -1
  458. package/dist/string/similarity.cjs +2 -2
  459. package/dist/string/similarity.cjs.map +1 -1
  460. package/dist/string/similarity.d.ts +20 -0
  461. package/dist/string/similarity.d.ts.map +1 -0
  462. package/dist/string/similarity.js +20 -36
  463. package/dist/string/similarity.js.map +1 -1
  464. package/dist/string/snakeCase.cjs +2 -2
  465. package/dist/string/snakeCase.cjs.map +1 -1
  466. package/dist/string/snakeCase.d.ts +15 -0
  467. package/dist/string/snakeCase.d.ts.map +1 -0
  468. package/dist/string/snakeCase.js +8 -7
  469. package/dist/string/snakeCase.js.map +1 -1
  470. package/dist/string/truncate.cjs +2 -2
  471. package/dist/string/truncate.cjs.map +1 -1
  472. package/dist/string/truncate.d.ts +28 -0
  473. package/dist/string/truncate.d.ts.map +1 -0
  474. package/dist/string/truncate.js +20 -17
  475. package/dist/string/truncate.js.map +1 -1
  476. package/dist/toolkit.cjs +2 -0
  477. package/dist/toolkit.cjs.map +1 -0
  478. package/dist/toolkit.js +1523 -0
  479. package/dist/toolkit.js.map +1 -0
  480. package/dist/typed/index.d.ts +24 -0
  481. package/dist/typed/index.d.ts.map +1 -0
  482. package/dist/typed/is.cjs +2 -2
  483. package/dist/typed/is.cjs.map +1 -1
  484. package/dist/typed/is.d.ts +95 -0
  485. package/dist/typed/is.d.ts.map +1 -0
  486. package/dist/typed/is.js +54 -42
  487. package/dist/typed/is.js.map +1 -1
  488. package/dist/typed/isArray.cjs +2 -2
  489. package/dist/typed/isArray.cjs.map +1 -1
  490. package/dist/typed/isArray.d.ts +16 -0
  491. package/dist/typed/isArray.d.ts.map +1 -0
  492. package/dist/typed/isArray.js +8 -8
  493. package/dist/typed/isArray.js.map +1 -1
  494. package/dist/typed/isBoolean.cjs +2 -2
  495. package/dist/typed/isBoolean.cjs.map +1 -1
  496. package/dist/typed/isBoolean.d.ts +23 -0
  497. package/dist/typed/isBoolean.d.ts.map +1 -0
  498. package/dist/typed/isBoolean.js +7 -6
  499. package/dist/typed/isBoolean.js.map +1 -1
  500. package/dist/typed/isDate.cjs +2 -2
  501. package/dist/typed/isDate.cjs.map +1 -1
  502. package/dist/typed/isDate.d.ts +16 -0
  503. package/dist/typed/isDate.d.ts.map +1 -0
  504. package/dist/typed/isDate.js +7 -8
  505. package/dist/typed/isDate.js.map +1 -1
  506. package/dist/typed/isDefined.cjs +2 -2
  507. package/dist/typed/isDefined.cjs.map +1 -1
  508. package/dist/typed/isDefined.d.ts +19 -0
  509. package/dist/typed/isDefined.d.ts.map +1 -0
  510. package/dist/typed/isDefined.js +7 -6
  511. package/dist/typed/isDefined.js.map +1 -1
  512. package/dist/typed/isEmpty.cjs +2 -2
  513. package/dist/typed/isEmpty.cjs.map +1 -1
  514. package/dist/typed/isEmpty.d.ts +24 -0
  515. package/dist/typed/isEmpty.d.ts.map +1 -0
  516. package/dist/typed/isEmpty.js +8 -9
  517. package/dist/typed/isEmpty.js.map +1 -1
  518. package/dist/typed/isEqual.cjs +2 -2
  519. package/dist/typed/isEqual.cjs.map +1 -1
  520. package/dist/typed/isEqual.d.ts +24 -0
  521. package/dist/typed/isEqual.d.ts.map +1 -0
  522. package/dist/typed/isEqual.js +27 -28
  523. package/dist/typed/isEqual.js.map +1 -1
  524. package/dist/typed/isEven.cjs +2 -2
  525. package/dist/typed/isEven.cjs.map +1 -1
  526. package/dist/typed/isEven.d.ts +9 -0
  527. package/dist/typed/isEven.d.ts.map +1 -0
  528. package/dist/typed/isEven.js +7 -6
  529. package/dist/typed/isEven.js.map +1 -1
  530. package/dist/typed/isFunction.cjs +2 -2
  531. package/dist/typed/isFunction.cjs.map +1 -1
  532. package/dist/typed/isFunction.d.ts +16 -0
  533. package/dist/typed/isFunction.d.ts.map +1 -0
  534. package/dist/typed/isFunction.js +7 -8
  535. package/dist/typed/isFunction.js.map +1 -1
  536. package/dist/typed/isMatch.cjs +2 -2
  537. package/dist/typed/isMatch.cjs.map +1 -1
  538. package/dist/typed/isMatch.d.ts +23 -0
  539. package/dist/typed/isMatch.d.ts.map +1 -0
  540. package/dist/typed/isMatch.js +16 -18
  541. package/dist/typed/isMatch.js.map +1 -1
  542. package/dist/typed/isNegative.cjs +2 -2
  543. package/dist/typed/isNegative.cjs.map +1 -1
  544. package/dist/typed/isNegative.d.ts +26 -0
  545. package/dist/typed/isNegative.d.ts.map +1 -0
  546. package/dist/typed/isNegative.js +7 -6
  547. package/dist/typed/isNegative.js.map +1 -1
  548. package/dist/typed/isNil.cjs +2 -2
  549. package/dist/typed/isNil.cjs.map +1 -1
  550. package/dist/typed/isNil.d.ts +17 -0
  551. package/dist/typed/isNil.d.ts.map +1 -0
  552. package/dist/typed/isNil.js +7 -8
  553. package/dist/typed/isNil.js.map +1 -1
  554. package/dist/typed/isNumber.cjs +2 -2
  555. package/dist/typed/isNumber.cjs.map +1 -1
  556. package/dist/typed/isNumber.d.ts +16 -0
  557. package/dist/typed/isNumber.d.ts.map +1 -0
  558. package/dist/typed/isNumber.js +8 -8
  559. package/dist/typed/isNumber.js.map +1 -1
  560. package/dist/typed/isObject.cjs +2 -2
  561. package/dist/typed/isObject.cjs.map +1 -1
  562. package/dist/typed/isObject.d.ts +19 -0
  563. package/dist/typed/isObject.d.ts.map +1 -0
  564. package/dist/typed/isObject.js +8 -8
  565. package/dist/typed/isObject.js.map +1 -1
  566. package/dist/typed/isOdd.cjs +2 -2
  567. package/dist/typed/isOdd.cjs.map +1 -1
  568. package/dist/typed/isOdd.d.ts +9 -0
  569. package/dist/typed/isOdd.d.ts.map +1 -0
  570. package/dist/typed/isOdd.js +7 -6
  571. package/dist/typed/isOdd.js.map +1 -1
  572. package/dist/typed/isPositive.cjs +2 -2
  573. package/dist/typed/isPositive.cjs.map +1 -1
  574. package/dist/typed/isPositive.d.ts +26 -0
  575. package/dist/typed/isPositive.d.ts.map +1 -0
  576. package/dist/typed/isPositive.js +7 -6
  577. package/dist/typed/isPositive.js.map +1 -1
  578. package/dist/typed/isPrimitive.cjs +2 -2
  579. package/dist/typed/isPrimitive.cjs.map +1 -1
  580. package/dist/typed/isPrimitive.d.ts +18 -0
  581. package/dist/typed/isPrimitive.d.ts.map +1 -0
  582. package/dist/typed/isPrimitive.js +8 -9
  583. package/dist/typed/isPrimitive.js.map +1 -1
  584. package/dist/typed/isPromise.cjs +2 -2
  585. package/dist/typed/isPromise.cjs.map +1 -1
  586. package/dist/typed/isPromise.d.ts +17 -0
  587. package/dist/typed/isPromise.d.ts.map +1 -0
  588. package/dist/typed/isPromise.js +7 -9
  589. package/dist/typed/isPromise.js.map +1 -1
  590. package/dist/typed/isRegex.cjs +2 -2
  591. package/dist/typed/isRegex.cjs.map +1 -1
  592. package/dist/typed/isRegex.d.ts +21 -0
  593. package/dist/typed/isRegex.d.ts.map +1 -0
  594. package/dist/typed/isRegex.js +7 -6
  595. package/dist/typed/isRegex.js.map +1 -1
  596. package/dist/typed/isString.cjs +2 -2
  597. package/dist/typed/isString.cjs.map +1 -1
  598. package/dist/typed/isString.d.ts +16 -0
  599. package/dist/typed/isString.d.ts.map +1 -0
  600. package/dist/typed/isString.js +8 -8
  601. package/dist/typed/isString.js.map +1 -1
  602. package/dist/typed/isWithin.cjs +2 -2
  603. package/dist/typed/isWithin.cjs.map +1 -1
  604. package/dist/typed/isWithin.d.ts +20 -0
  605. package/dist/typed/isWithin.d.ts.map +1 -0
  606. package/dist/typed/isWithin.js +9 -9
  607. package/dist/typed/isWithin.js.map +1 -1
  608. package/dist/typed/isZero.cjs +2 -2
  609. package/dist/typed/isZero.cjs.map +1 -1
  610. package/dist/typed/isZero.d.ts +25 -0
  611. package/dist/typed/isZero.d.ts.map +1 -0
  612. package/dist/typed/isZero.js +7 -6
  613. package/dist/typed/isZero.js.map +1 -1
  614. package/dist/typed/typeOf.cjs +2 -2
  615. package/dist/typed/typeOf.cjs.map +1 -1
  616. package/dist/typed/typeOf.d.ts +30 -0
  617. package/dist/typed/typeOf.d.ts.map +1 -0
  618. package/dist/typed/typeOf.js +11 -13
  619. package/dist/typed/typeOf.js.map +1 -1
  620. package/dist/types.d.ts +9 -0
  621. package/dist/types.d.ts.map +1 -0
  622. package/package.json +77 -12
  623. package/dist/array/aggregate.cjs +0 -2
  624. package/dist/array/aggregate.cjs.map +0 -1
  625. package/dist/array/aggregate.js +0 -16
  626. package/dist/array/aggregate.js.map +0 -1
  627. package/dist/array/alternate.cjs +0 -2
  628. package/dist/array/alternate.cjs.map +0 -1
  629. package/dist/array/alternate.js +0 -9
  630. package/dist/array/alternate.js.map +0 -1
  631. package/dist/array/arrange.cjs +0 -2
  632. package/dist/array/arrange.cjs.map +0 -1
  633. package/dist/array/arrange.js +0 -6
  634. package/dist/array/arrange.js.map +0 -1
  635. package/dist/array/compact.cjs +0 -2
  636. package/dist/array/compact.cjs.map +0 -1
  637. package/dist/array/compact.js +0 -9
  638. package/dist/array/compact.js.map +0 -1
  639. package/dist/array/every.cjs +0 -2
  640. package/dist/array/every.cjs.map +0 -1
  641. package/dist/array/every.js +0 -14
  642. package/dist/array/every.js.map +0 -1
  643. package/dist/array/filter.cjs +0 -2
  644. package/dist/array/filter.cjs.map +0 -1
  645. package/dist/array/filter.js +0 -14
  646. package/dist/array/filter.js.map +0 -1
  647. package/dist/array/find.cjs +0 -2
  648. package/dist/array/find.cjs.map +0 -1
  649. package/dist/array/find.js +0 -14
  650. package/dist/array/find.js.map +0 -1
  651. package/dist/array/findIndex.cjs +0 -2
  652. package/dist/array/findIndex.cjs.map +0 -1
  653. package/dist/array/findIndex.js +0 -14
  654. package/dist/array/findIndex.js.map +0 -1
  655. package/dist/array/findLast.cjs +0 -2
  656. package/dist/array/findLast.cjs.map +0 -1
  657. package/dist/array/findLast.js +0 -14
  658. package/dist/array/findLast.js.map +0 -1
  659. package/dist/array/flatten.cjs +0 -2
  660. package/dist/array/flatten.cjs.map +0 -1
  661. package/dist/array/flatten.js +0 -7
  662. package/dist/array/flatten.js.map +0 -1
  663. package/dist/array/map.cjs +0 -2
  664. package/dist/array/map.cjs.map +0 -1
  665. package/dist/array/map.js +0 -18
  666. package/dist/array/map.js.map +0 -1
  667. package/dist/array/reduce.cjs +0 -2
  668. package/dist/array/reduce.cjs.map +0 -1
  669. package/dist/array/reduce.js +0 -16
  670. package/dist/array/reduce.js.map +0 -1
  671. package/dist/array/shift.cjs +0 -2
  672. package/dist/array/shift.cjs.map +0 -1
  673. package/dist/array/shift.js +0 -13
  674. package/dist/array/shift.js.map +0 -1
  675. package/dist/array/some.cjs +0 -2
  676. package/dist/array/some.cjs.map +0 -1
  677. package/dist/array/some.js +0 -14
  678. package/dist/array/some.js.map +0 -1
  679. package/dist/array/substitute.cjs +0 -2
  680. package/dist/array/substitute.cjs.map +0 -1
  681. package/dist/array/substitute.js +0 -13
  682. package/dist/array/substitute.js.map +0 -1
  683. package/dist/async/delay.cjs +0 -2
  684. package/dist/async/delay.cjs.map +0 -1
  685. package/dist/async/delay.js +0 -8
  686. package/dist/async/delay.js.map +0 -1
  687. package/dist/function/proxy.cjs +0 -2
  688. package/dist/function/proxy.cjs.map +0 -1
  689. package/dist/function/proxy.js +0 -22
  690. package/dist/function/proxy.js.map +0 -1
  691. package/dist/function/prune.cjs +0 -2
  692. package/dist/function/prune.cjs.map +0 -1
  693. package/dist/function/prune.js +0 -30
  694. package/dist/function/prune.js.map +0 -1
  695. package/dist/function/worker.cjs +0 -14
  696. package/dist/function/worker.cjs.map +0 -1
  697. package/dist/function/worker.js +0 -29
  698. package/dist/function/worker.js.map +0 -1
  699. package/dist/index.cjs.map +0 -1
  700. package/dist/index.js.map +0 -1
  701. package/dist/logit/dist/logit.cjs +0 -2
  702. package/dist/logit/dist/logit.cjs.map +0 -1
  703. package/dist/logit/dist/logit.js +0 -263
  704. package/dist/logit/dist/logit.js.map +0 -1
  705. package/dist/math/add.cjs +0 -2
  706. package/dist/math/add.cjs.map +0 -1
  707. package/dist/math/add.js +0 -9
  708. package/dist/math/add.js.map +0 -1
  709. package/dist/math/boil.cjs +0 -2
  710. package/dist/math/boil.cjs.map +0 -1
  711. package/dist/math/boil.js +0 -17
  712. package/dist/math/boil.js.map +0 -1
  713. package/dist/math/divide.cjs +0 -2
  714. package/dist/math/divide.cjs.map +0 -1
  715. package/dist/math/divide.js +0 -11
  716. package/dist/math/divide.js.map +0 -1
  717. package/dist/math/multiply.cjs +0 -2
  718. package/dist/math/multiply.cjs.map +0 -1
  719. package/dist/math/multiply.js +0 -9
  720. package/dist/math/multiply.js.map +0 -1
  721. package/dist/math/rate.cjs +0 -2
  722. package/dist/math/rate.cjs.map +0 -1
  723. package/dist/math/rate.js +0 -9
  724. package/dist/math/rate.js.map +0 -1
  725. package/dist/math/subtract.cjs +0 -2
  726. package/dist/math/subtract.cjs.map +0 -1
  727. package/dist/math/subtract.js +0 -9
  728. package/dist/math/subtract.js.map +0 -1
  729. package/dist/object/cache.cjs +0 -2
  730. package/dist/object/cache.cjs.map +0 -1
  731. package/dist/object/cache.js +0 -63
  732. package/dist/object/cache.js.map +0 -1
  733. package/dist/object/clone.cjs +0 -2
  734. package/dist/object/clone.cjs.map +0 -1
  735. package/dist/object/clone.js +0 -17
  736. package/dist/object/clone.js.map +0 -1
  737. package/dist/object/entries.cjs +0 -2
  738. package/dist/object/entries.cjs.map +0 -1
  739. package/dist/object/entries.js +0 -9
  740. package/dist/object/entries.js.map +0 -1
  741. package/dist/object/keys.cjs +0 -2
  742. package/dist/object/keys.cjs.map +0 -1
  743. package/dist/object/keys.js +0 -9
  744. package/dist/object/keys.js.map +0 -1
  745. package/dist/object/values.cjs +0 -2
  746. package/dist/object/values.cjs.map +0 -1
  747. package/dist/object/values.js +0 -9
  748. package/dist/object/values.js.map +0 -1
  749. package/dist/typed/ge.cjs +0 -2
  750. package/dist/typed/ge.cjs.map +0 -1
  751. package/dist/typed/ge.js +0 -7
  752. package/dist/typed/ge.js.map +0 -1
  753. package/dist/typed/gt.cjs +0 -2
  754. package/dist/typed/gt.cjs.map +0 -1
  755. package/dist/typed/gt.js +0 -7
  756. package/dist/typed/gt.js.map +0 -1
  757. package/dist/typed/le.cjs +0 -2
  758. package/dist/typed/le.cjs.map +0 -1
  759. package/dist/typed/le.js +0 -7
  760. package/dist/typed/le.js.map +0 -1
  761. package/dist/typed/lt.cjs +0 -2
  762. package/dist/typed/lt.cjs.map +0 -1
  763. package/dist/typed/lt.js +0 -7
  764. package/dist/typed/lt.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.cjs","sources":["../../src/string/truncate.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\n/**\n * Truncates a string if it is longer than the given maximum string length. The last characters of the truncated string are replaced with the ellipsis sign \"…\".\n *\n * @example\n * ```ts\n * const text = 'Hello World';\n * truncate(text, 5); // 'Hello…'\n * truncate(text, 3, true); // 'Hello…'\n * truncate(text, 5, true, '...'); // 'Hello...'\n * ```\n *\n * @param str - The string to truncate.\n * @param limit - The maximum string length.\n * @param completeWords - If true, the string is truncated to the nearest word, instead of character.\n * @param ellipsis - The characters to end the truncated string with.\n *\n * @returns The truncated string.\n *\n * @throws {TypeError} If str is not a string or limit is not a positive number.\n */\nexport function truncate(str: string, limit = 25, completeWords = false, ellipsis = '…'): string {\n assert(typeof str === 'string', 'First argument must be a string', {\n args: { str },\n type: TypeError,\n });\n assert(\n typeof limit === 'number' && limit >= 0 && Number.isFinite(limit),\n 'Limit must be a non-negative finite number',\n { args: { limit }, type: TypeError },\n );\n\n if (str.length <= limit) {\n return str;\n }\n\n const _limit = completeWords ? str.substring(0, limit).lastIndexOf(' ') : limit;\n const effectiveLimit = _limit > 0 ? _limit : limit;\n\n return `${str.substring(0, effectiveLimit).trim()}${ellipsis}`;\n}\n"],"names":["truncate","str","limit","completeWords","ellipsis","assert","_limit","effectiveLimit"],"mappings":"0HAsBO,SAASA,EAASC,EAAaC,EAAQ,GAAIC,EAAgB,GAAOC,EAAW,IAAa,CAW/F,GAVAC,EAAAA,OAAO,OAAOJ,GAAQ,SAAU,kCAAmC,CACjE,KAAM,CAAE,IAAAA,CAAA,EACR,KAAM,SAAA,CACP,EACDI,EAAAA,OACE,OAAOH,GAAU,UAAYA,GAAS,GAAK,OAAO,SAASA,CAAK,EAChE,6CACA,CAAE,KAAM,CAAE,MAAAA,CAAA,EAAS,KAAM,SAAA,CAAU,EAGjCD,EAAI,QAAUC,EAChB,OAAOD,EAGT,MAAMK,EAASH,EAAgBF,EAAI,UAAU,EAAGC,CAAK,EAAE,YAAY,GAAG,EAAIA,EACpEK,EAAiBD,EAAS,EAAIA,EAASJ,EAE7C,MAAO,GAAGD,EAAI,UAAU,EAAGM,CAAc,EAAE,KAAA,CAAM,GAAGH,CAAQ,EAC9D"}
1
+ {"version":3,"file":"truncate.cjs","names":[],"sources":["../../src/string/truncate.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\ntype TruncateOptions = {\n completeWords?: boolean;\n ellipsis?: string;\n};\n\n/**\n * Truncates a string if it is longer than the given maximum string length. The last characters of the truncated string are replaced with the ellipsis sign \"…\".\n *\n * @example\n * ```ts\n * const text = 'Hello World';\n * truncate(text, 5); // 'Hello…'\n * truncate(text, 8, { completeWords: true }); // 'Hello…'\n * truncate(text, 5, { ellipsis: '...' }); // 'Hello...'\n * ```\n *\n * @param str - The string to truncate.\n * @param limit - The maximum string length.\n * @param options - Options for truncation.\n * @param [options.completeWords] - If true, truncate to the nearest word boundary.\n * @param [options.ellipsis] - Suffix appended after truncation (default: '…').\n *\n * @returns The truncated string.\n *\n * @throws {TypeError} If str is not a string or limit is not a positive number.\n */\nexport function truncate(\n str: string,\n limit = 25,\n { completeWords = false, ellipsis = '…' }: TruncateOptions = {},\n): string {\n assert(typeof str === 'string', 'First argument must be a string', {\n args: { str },\n type: TypeError,\n });\n assert(\n typeof limit === 'number' && limit >= 0 && Number.isFinite(limit),\n 'Limit must be a non-negative finite number',\n { args: { limit }, type: TypeError },\n );\n\n if (str.length <= limit) {\n return str;\n }\n\n let end = limit;\n\n if (completeWords) {\n const wordEnd = str.substring(0, limit).lastIndexOf(' ');\n\n if (wordEnd > 0) end = wordEnd;\n }\n\n return `${str.substring(0, end).trim()}${ellipsis}`;\n}\n"],"mappings":"0CA4BA,SAAgB,EACd,EACA,EAAQ,GACR,CAAE,gBAAgB,GAAO,WAAW,KAAyB,EAAE,CACvD,CAWR,GAVA,EAAA,OAAO,OAAO,GAAQ,SAAU,kCAAmC,CACjE,KAAM,CAAE,MAAK,CACb,KAAM,UACP,CAAC,CACF,EAAA,OACE,OAAO,GAAU,UAAY,GAAS,GAAK,OAAO,SAAS,EAAM,CACjE,6CACA,CAAE,KAAM,CAAE,QAAO,CAAE,KAAM,UAAW,CACrC,CAEG,EAAI,QAAU,EAChB,OAAO,EAGT,IAAI,EAAM,EAEV,GAAI,EAAe,CACjB,IAAM,EAAU,EAAI,UAAU,EAAG,EAAM,CAAC,YAAY,IAAI,CAEpD,EAAU,IAAG,EAAM,GAGzB,MAAO,GAAG,EAAI,UAAU,EAAG,EAAI,CAAC,MAAM,GAAG"}
@@ -0,0 +1,28 @@
1
+ type TruncateOptions = {
2
+ completeWords?: boolean;
3
+ ellipsis?: string;
4
+ };
5
+ /**
6
+ * Truncates a string if it is longer than the given maximum string length. The last characters of the truncated string are replaced with the ellipsis sign "…".
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const text = 'Hello World';
11
+ * truncate(text, 5); // 'Hello…'
12
+ * truncate(text, 8, { completeWords: true }); // 'Hello…'
13
+ * truncate(text, 5, { ellipsis: '...' }); // 'Hello...'
14
+ * ```
15
+ *
16
+ * @param str - The string to truncate.
17
+ * @param limit - The maximum string length.
18
+ * @param options - Options for truncation.
19
+ * @param [options.completeWords] - If true, truncate to the nearest word boundary.
20
+ * @param [options.ellipsis] - Suffix appended after truncation (default: '…').
21
+ *
22
+ * @returns The truncated string.
23
+ *
24
+ * @throws {TypeError} If str is not a string or limit is not a positive number.
25
+ */
26
+ export declare function truncate(str: string, limit?: number, { completeWords, ellipsis }?: TruncateOptions): string;
27
+ export {};
28
+ //# sourceMappingURL=truncate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truncate.d.ts","sourceRoot":"","sources":["../../src/string/truncate.ts"],"names":[],"mappings":"AAEA,KAAK,eAAe,GAAG;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,SAAK,EACV,EAAE,aAAqB,EAAE,QAAc,EAAE,GAAE,eAAoB,GAC9D,MAAM,CAwBR"}
@@ -1,18 +1,21 @@
1
- import { assert as t } from "../function/assert.js";
2
- function f(r, e = 25, s = !1, u = "…") {
3
- if (t(typeof r == "string", "First argument must be a string", {
4
- args: { str: r },
5
- type: TypeError
6
- }), t(
7
- typeof e == "number" && e >= 0 && Number.isFinite(e),
8
- "Limit must be a non-negative finite number",
9
- { args: { limit: e }, type: TypeError }
10
- ), r.length <= e)
11
- return r;
12
- const n = s ? r.substring(0, e).lastIndexOf(" ") : e, o = n > 0 ? n : e;
13
- return `${r.substring(0, o).trim()}${u}`;
1
+ import { assert as e } from "../function/assert.js";
2
+ //#region src/string/truncate.ts
3
+ function t(t, n = 25, { completeWords: r = !1, ellipsis: i = "…" } = {}) {
4
+ if (e(typeof t == "string", "First argument must be a string", {
5
+ args: { str: t },
6
+ type: TypeError
7
+ }), e(typeof n == "number" && n >= 0 && Number.isFinite(n), "Limit must be a non-negative finite number", {
8
+ args: { limit: n },
9
+ type: TypeError
10
+ }), t.length <= n) return t;
11
+ let a = n;
12
+ if (r) {
13
+ let e = t.substring(0, n).lastIndexOf(" ");
14
+ e > 0 && (a = e);
15
+ }
16
+ return `${t.substring(0, a).trim()}${i}`;
14
17
  }
15
- export {
16
- f as truncate
17
- };
18
- //# sourceMappingURL=truncate.js.map
18
+ //#endregion
19
+ export { t as truncate };
20
+
21
+ //# sourceMappingURL=truncate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"truncate.js","sources":["../../src/string/truncate.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\n/**\n * Truncates a string if it is longer than the given maximum string length. The last characters of the truncated string are replaced with the ellipsis sign \"…\".\n *\n * @example\n * ```ts\n * const text = 'Hello World';\n * truncate(text, 5); // 'Hello…'\n * truncate(text, 3, true); // 'Hello…'\n * truncate(text, 5, true, '...'); // 'Hello...'\n * ```\n *\n * @param str - The string to truncate.\n * @param limit - The maximum string length.\n * @param completeWords - If true, the string is truncated to the nearest word, instead of character.\n * @param ellipsis - The characters to end the truncated string with.\n *\n * @returns The truncated string.\n *\n * @throws {TypeError} If str is not a string or limit is not a positive number.\n */\nexport function truncate(str: string, limit = 25, completeWords = false, ellipsis = '…'): string {\n assert(typeof str === 'string', 'First argument must be a string', {\n args: { str },\n type: TypeError,\n });\n assert(\n typeof limit === 'number' && limit >= 0 && Number.isFinite(limit),\n 'Limit must be a non-negative finite number',\n { args: { limit }, type: TypeError },\n );\n\n if (str.length <= limit) {\n return str;\n }\n\n const _limit = completeWords ? str.substring(0, limit).lastIndexOf(' ') : limit;\n const effectiveLimit = _limit > 0 ? _limit : limit;\n\n return `${str.substring(0, effectiveLimit).trim()}${ellipsis}`;\n}\n"],"names":["truncate","str","limit","completeWords","ellipsis","assert","_limit","effectiveLimit"],"mappings":";AAsBO,SAASA,EAASC,GAAaC,IAAQ,IAAIC,IAAgB,IAAOC,IAAW,KAAa;AAW/F,MAVAC,EAAO,OAAOJ,KAAQ,UAAU,mCAAmC;AAAA,IACjE,MAAM,EAAE,KAAAA,EAAA;AAAA,IACR,MAAM;AAAA,EAAA,CACP,GACDI;AAAA,IACE,OAAOH,KAAU,YAAYA,KAAS,KAAK,OAAO,SAASA,CAAK;AAAA,IAChE;AAAA,IACA,EAAE,MAAM,EAAE,OAAAA,EAAA,GAAS,MAAM,UAAA;AAAA,EAAU,GAGjCD,EAAI,UAAUC;AAChB,WAAOD;AAGT,QAAMK,IAASH,IAAgBF,EAAI,UAAU,GAAGC,CAAK,EAAE,YAAY,GAAG,IAAIA,GACpEK,IAAiBD,IAAS,IAAIA,IAASJ;AAE7C,SAAO,GAAGD,EAAI,UAAU,GAAGM,CAAc,EAAE,KAAA,CAAM,GAAGH,CAAQ;AAC9D;"}
1
+ {"version":3,"file":"truncate.js","names":[],"sources":["../../src/string/truncate.ts"],"sourcesContent":["import { assert } from '../function/assert';\n\ntype TruncateOptions = {\n completeWords?: boolean;\n ellipsis?: string;\n};\n\n/**\n * Truncates a string if it is longer than the given maximum string length. The last characters of the truncated string are replaced with the ellipsis sign \"…\".\n *\n * @example\n * ```ts\n * const text = 'Hello World';\n * truncate(text, 5); // 'Hello…'\n * truncate(text, 8, { completeWords: true }); // 'Hello…'\n * truncate(text, 5, { ellipsis: '...' }); // 'Hello...'\n * ```\n *\n * @param str - The string to truncate.\n * @param limit - The maximum string length.\n * @param options - Options for truncation.\n * @param [options.completeWords] - If true, truncate to the nearest word boundary.\n * @param [options.ellipsis] - Suffix appended after truncation (default: '…').\n *\n * @returns The truncated string.\n *\n * @throws {TypeError} If str is not a string or limit is not a positive number.\n */\nexport function truncate(\n str: string,\n limit = 25,\n { completeWords = false, ellipsis = '…' }: TruncateOptions = {},\n): string {\n assert(typeof str === 'string', 'First argument must be a string', {\n args: { str },\n type: TypeError,\n });\n assert(\n typeof limit === 'number' && limit >= 0 && Number.isFinite(limit),\n 'Limit must be a non-negative finite number',\n { args: { limit }, type: TypeError },\n );\n\n if (str.length <= limit) {\n return str;\n }\n\n let end = limit;\n\n if (completeWords) {\n const wordEnd = str.substring(0, limit).lastIndexOf(' ');\n\n if (wordEnd > 0) end = wordEnd;\n }\n\n return `${str.substring(0, end).trim()}${ellipsis}`;\n}\n"],"mappings":";;AA4BA,SAAgB,EACd,GACA,IAAQ,IACR,EAAE,mBAAgB,IAAO,cAAW,QAAyB,EAAE,EACvD;AAWR,KAVA,EAAO,OAAO,KAAQ,UAAU,mCAAmC;EACjE,MAAM,EAAE,QAAK;EACb,MAAM;EACP,CAAC,EACF,EACE,OAAO,KAAU,YAAY,KAAS,KAAK,OAAO,SAAS,EAAM,EACjE,8CACA;EAAE,MAAM,EAAE,UAAO;EAAE,MAAM;EAAW,CACrC,EAEG,EAAI,UAAU,EAChB,QAAO;CAGT,IAAI,IAAM;AAEV,KAAI,GAAe;EACjB,IAAM,IAAU,EAAI,UAAU,GAAG,EAAM,CAAC,YAAY,IAAI;AAExD,EAAI,IAAU,MAAG,IAAM;;AAGzB,QAAO,GAAG,EAAI,UAAU,GAAG,EAAI,CAAC,MAAM,GAAG"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(e,t=`Assertion failed`,{args:n,bypass:r=!1,type:i=Error}={}){if(e)return;let a=`${t}${n?`\nArguments: ${JSON.stringify(n,null,2)}`:``}`;if(r)console.warn(a);else throw new i(a)}function t(t,n=`Assertion failed`,r={}){e(t.every(Boolean),n,r)}function n(e){return Array.isArray(e)}var r=`Expected an array`;function i(e){return typeof e==`string`}var a=`Expected a string`;function o(t,r=2,a={}){e(n(t)||i(t),`Argument must be an array or string.`,{args:{input:t},type:TypeError}),e(r>=1,`Chunk size must be at least 1.`,{args:{size:r},type:RangeError});let{overlap:o=!1,pad:s=` `}=a;if(i(t)&&o){let e=s+t+s,n=e.length-r+1;return Array.from({length:n},(t,n)=>e.slice(n,n+r))}return Array.from({length:Math.ceil(t.length/r)},(e,n)=>t.slice(n*r,n*r+r))}function s(e,t){return c(e,t,new WeakMap)}function c(e,t,n){if(e===t)return!0;if(e==null||t==null||typeof e!=typeof t||typeof e!=`object`||typeof t!=`object`)return!1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,r)=>c(e,t[r],n));if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[r,i]of e)if(!t.has(r)||!c(i,t.get(r),n))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let r of e)if(![...t].some(e=>c(r,e,n)))return!1;return!0}let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(let i of r)if(!Object.hasOwn(t,i)||!c(e[i],t[i],n))return!1;return!0}function l(t,i){return e(n(t),r,{args:{array:t},type:TypeError}),t.some(e=>s(e,i))}function u(t,i){e(n(t),r,{args:{array:t,callback:i},type:TypeError});let a=t[0];for(let e=1;e<t.length;e++)a=i(a,t[e]);return a}function d(t,i){e(n(t),r,{args:{array:t},type:TypeError});let a={},o=typeof i==`function`?i:e=>e[i];for(let e of t){let t=o(e),n=t==null?`_`:String(t);a[n]||(a[n]=[]),a[n].push(e)}return a}function f(t,i){e(n(t),r,{args:{array:t},type:TypeError});let a={},o=typeof i==`function`?i:e=>e[i];for(let e of t){let t=String(o(e));a[t]=e}return a}function p(e,t){let n=e.toLowerCase(),r=t.toLowerCase();if(n===r)return 1;if(n.length===0)return r.length===0?1:0;if(r.length===0)return 0;let[i,a]=n.length<r.length?[n,r]:[r,n],o=i.length,s=a.length,c=Array.from({length:o+1},(e,t)=>t),l=Array(o+1);for(let e=1;e<=s;e++){l[0]=e;for(let t=1;t<=o;t++){let n=a[e-1]===i[t-1]?0:1;l[t]=Math.min(l[t-1]+1,c[t]+1,c[t-1]+n)}[c,l]=[l,c]}return 1-c[o]/Math.max(n.length,r.length)}function m(e){return e==null}function h(e){return typeof e==`number`&&!Number.isNaN(e)}var g=`Expected a number`;function _(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var v=`Expected an object`;function y(e,t,n,r=!0){return!h(e)||!h(t)||!h(n)?!1:r?e>=t&&e<=n:e>t&&e<n}var b=`Expected a number within a specified range`;function x(e,t,r){return m(e)?!1:i(e)||h(e)?p(String(e),t)>=r:n(e)?e.some(e=>x(e,t,r)):_(e)?Object.values(e).some(e=>m(e)?!1:x(e,t,r)):!1}function S(t,n,r=1){return e(y(r,0,1),b,{args:{max:1,min:0,tone:r},type:TypeError}),x(t,n,r)}function C(t,n,r=.25){if(e(i(n),a,{args:{query:n},type:TypeError}),e(y(r,0,1),b,{args:{max:1,min:0,tone:r},type:TypeError}),!n)return[...t];let o=n.toLowerCase();return t.filter(e=>S(e,o,r))}function w(e,t={}){let n=new Set,r={debounceMs:300,limit:10,searchTone:.5},i=[...e],a=Math.max(1,t.limit??r.limit),o=t.filterFn??(()=>!0),s=t.sortFn,c=t.searchFn??((e,t,n)=>C([...e],t,n)),l=t.searchTone??r.searchTone,u=``,d=0,f=[],p=()=>{for(let e of n)e()},m=()=>{let e=i;u&&(e=c(e,u,l)),o&&(e=e.filter(o)),e=s?[...e].sort(s):[...e];let t=Math.max(1,Math.ceil(e.length/a));d=Math.min(d,t-1),f=e},h=()=>{if(!f.length)return[];let e=d*a;return f.slice(e,e+a)},g=()=>{m(),p()},_,v=(e,t)=>{_&&clearTimeout(_),_=setTimeout(()=>{u=e,_=void 0,g()},t)};return m(),{batch(e){let t=a,n=o,r=s,c=u,l=i,p=d,m=(e,t,n)=>Math.max(0,Math.min(e,Math.max(0,Math.ceil(t/n)-1)));e({goTo:e=>{p=m(e-1,f.length,t)},setData:e=>{l=[...e],p=0},setFilter:e=>{n=e},setLimit:e=>{t=Math.max(1,e)},setQuery:e=>{c=e,p=0},setSort:e=>{r=e}}),a=t,o=n,s=r,u=c,i=l,d=p,g()},get current(){return h()},goTo(e){let t=Math.max(1,Math.ceil(f.length/a));d=Math.max(0,Math.min(e-1,t-1)),p()},get meta(){let e=f.length,t=Math.max(1,Math.ceil(e/a)),n=e===0,r=Math.min(d+1,t),i=n?0:(r-1)*a+1;return{end:n?0:Math.min(r*a,e),isEmpty:n,isFirst:r<=1,isLast:r>=t,limit:a,page:r,pages:t,start:i,total:e}},next(){let e=Math.max(1,Math.ceil(f.length/a));d<e-1&&(d++,p())},prev(){d>0&&(d--,p())},reset(){a=Math.max(1,t.limit??r.limit),o=t.filterFn??(()=>!0),s=t.sortFn,u=``,d=0,g()},search(e,n){n?.immediate?(u=e,d=0,g()):v(e,t.debounceMs??r.debounceMs)},setData(e){i=[...e],d=0,g()},setFilter(e){o=e,d=0,g()},setLimit(e){a=Math.max(1,e),d=0,g()},setSort(e){s=e,g()},subscribe(e){return n.add(e),()=>n.delete(e)}}}function T(t,i,a){e(n(t),r,{args:{array:t},type:TypeError});let o=a??(e=>!m(e));for(let e=0;e<t.length;e++)if(o(t[e],e,t))return i(t[e],e,t)}function ee(e){let t=new Set,n=Math.max(1,e.limit??10),r=e.debounceMs??300,i=1,a=n,o=``,s=e.initialFilter,c=e.initialSort,l=[],u=0,d=!1,f=null,p=new Map,m=new Map,h=e=>JSON.stringify(e),g=()=>({filter:s,limit:a,page:i,search:o||void 0,sort:c}),_=e=>{l=e.items,u=e.total??0;let t=Math.max(1,Math.ceil(u/a));i=Math.min(Math.max(1,i),t)},v=()=>{for(let e of t)e()},y=async t=>{let n=h(t),r=p.get(n),i=e.cacheTtl;if(r&&(!i||Date.now()-r.ts<i)){_(r.result);return}if(m.has(n)){await m.get(n),_(p.get(n).result);return}d=!0,f=null,v();let a=e.fetch(t).then(e=>{p.set(n,{result:e,ts:Date.now()}),_(e)}).catch(e=>{f=e?.message??`Request failed`,l=[],u=0}).finally(()=>{m.delete(n),d=!1,v()});m.set(n,a),await a},b=async()=>{await y(g())},x,S=()=>{x&&clearTimeout(x),x=setTimeout(()=>{x=void 0,b()},r)};return{async batch(e){let t=i,n=a,r=o,l=s,u=c;e({goTo:e=>{t=Math.max(1,e|0)},setFilter:e=>{l=e,t=1},setLimit:e=>{n=Math.max(1,e),t=1},setQuery:e=>{r=e,t=1},setSort:e=>{u=e,t=1}}),i=t,a=n,o=r,s=l,c=u,await b()},get current(){return l},async goTo(e){i=Math.max(1,e|0),await b()},invalidate(){p.clear()},get meta(){let e=u===0,t=Math.max(1,Math.ceil(u/a)),n=Math.min(i,t),r=e?0:(n-1)*a+1;return{end:e?0:Math.min(n*a,u),error:f,isEmpty:e,isFirst:n<=1,isLast:n>=t,limit:a,loading:d,page:n,pages:t,start:r,total:u}},async next(){i+=1,await b()},async prev(){i=Math.max(1,i-1),await b()},async refresh(){p.delete(h(g())),await b()},async reset(){i=1,a=n,o=``,s=e.initialFilter,c=e.initialSort,p.clear(),await b()},async search(e,t){o=e,i=1,t?.immediate?await b():S()},async setFilter(e){s=e,i=1,await b()},async setLimit(e){a=Math.max(1,e),i=1,await b()},async setSort(e){c=e,i=1,await b()},subscribe(e){return t.add(e),t.size===1&&l.length===0&&!d&&b(),()=>t.delete(e)}}}function te(t,i,a){e(n(t),r,{args:{array:t},type:TypeError});let o=t.findIndex(i);return o===-1?t:[...t.slice(0,o),a,...t.slice(o+1)]}function ne(t,i,{wrap:a=!1}={}){if(e(n(t),r,{args:{array:t},type:TypeError}),e(h(i),g,{args:{positions:i},type:TypeError}),t.length===0)return t;let o=(i%t.length+t.length)%t.length,s=t.slice(o);return a?[...s,...t.slice(0,o)]:s}function re(t,i,a){e(n(t),r,{args:{array:t},type:TypeError});let o=a??(e=>!m(e)),s=[];for(let e=0;e<t.length;e++)o(t[e],e,t)&&s.push(i(t[e],e,t));return s}var E=(e,t)=>{if(e===t)return 0;if(e===void 0)return 1;if(t===void 0)return-1;if(e===null)return t===null?0:-1;if(t===null)return 1;if(typeof e==`string`&&typeof t==`string`)return e.localeCompare(t);if(typeof e==`number`&&typeof t==`number`)return e===t?0:e>t?1:-1;if(e instanceof Date&&t instanceof Date){let n=e.getTime(),r=t.getTime();return n===r?0:n>r?1:-1}if(typeof e==`object`&&typeof t==`object`){let n=JSON.stringify(e),r=JSON.stringify(t);return n.localeCompare(r)}return String(e).localeCompare(String(t))},D=e=>{let t=Object.entries(e);return(e,n)=>{for(let[r,i]of t){let t=e[r],a=n[r],o=i===`desc`?-1:1,s=E(t,a);if(s!==0)return s*o}return 0}};function O(t,i,a=`asc`){if(e(n(t),r,{args:{array:t},type:TypeError}),typeof i==`function`){let e=a===`desc`?-1:1;return[...t].sort((t,n)=>E(i(t),i(n))*e)}return[...t].sort(D(i))}function k(e,t,n,r={}){let{strategy:i=`append`}=r,a=n?e=>n(e)===n(t):e=>e===t,o=e.findIndex(a);return o===-1?i===`prepend`?[t,...e]:[...e,t]:[...e.slice(0,o),...e.slice(o+1)]}function ie(t,i){if(e(n(t),r,{type:TypeError}),t.length<=1)return[...t];if(!i)return[...new Set(t)];let a=new Set,o=typeof i==`function`?i:e=>e[i];return t.filter(e=>{let t=o(e);return a.has(t)?!1:(a.add(t),!0)})}function ae(e,t={}){let{signal:n,timeout:r=7e3}=t,i=n?AbortSignal.any([AbortSignal.timeout(r),n]):AbortSignal.timeout(r);return Promise.race([e(i),new Promise((e,t)=>{i.addEventListener(`abort`,()=>t(i.reason),{once:!0})})])}async function A(t){return e(typeof t==`number`&&t>=0&&Number.isFinite(t),`Timeout must be a non-negative finite number`,{args:{timeout:t},type:TypeError}),new Promise(e=>setTimeout(e,t))}async function j(e,{backoff:t=1,delay:n=250,retryDelay:r,shouldRetry:i,signal:a,times:o=3}={}){let s=n;for(let n=1;n<=o;n++){if(a?.aborted)throw a.reason??new DOMException(`Retry aborted`,`AbortError`);try{return await e()}catch(e){if(n===o||i&&!i(e,n-1))throw e;let a=r?r(n-1):s;a>0&&await A(a),r||(s=typeof t==`function`?t(n,s):s*t)}}throw Error(`Retry failed unexpectedly`)}async function oe(e,{onError:t,timeout:n=7e3,times:r=3}={}){try{return{ok:!0,value:await j(()=>ae(()=>e(),{timeout:n}),{times:r})}}catch(e){return t?.(e),{error:e,ok:!1}}}function se(){let{promise:e,reject:t,resolve:n}=Promise.withResolvers();return{promise:e,reject:t,resolve:n}}async function ce(e,t,n,r){if(e<1)throw Error(`Limit must be at least 1`);if(r?.aborted)throw new DOMException(`Aborted`,`AbortError`);let i=Array(t.length),a=0,o=!1,s,c=async()=>{for(;a<t.length&&!o;){if(r?.aborted){o=!0,s=new DOMException(`Aborted`,`AbortError`);break}let e=a++;try{i[e]=await n(t[e],e,t)}catch(e){o=!0,s=e;break}}},l=[],u=Math.min(e,t.length);for(let e=0;e<u;e++)l.push(c());if(await Promise.all(l),o)throw s;return i}function le(){return{postTask:(e,t)=>{let n=t?.delay??0,r=t?.signal;return new Promise((t,i)=>{if(r?.aborted){i(r.reason);return}let a=setTimeout(()=>{r?.removeEventListener(`abort`,o);try{t(e())}catch(e){i(e)}},n),o=()=>{clearTimeout(a),i(r.reason)};r?.addEventListener(`abort`,o,{once:!0})})}}}function M(){`scheduler`in globalThis||Object.defineProperty(globalThis,`scheduler`,{configurable:!0,value:le(),writable:!0})}var N=class{#e;constructor(){globalThis.scheduler===void 0&&M(),this.#e=globalThis.scheduler}postTask(e,t){return this.#e.postTask(e,t)}};function ue(t){e(t>=1,`Pool limit must be at least 1`,{args:{limit:t},type:RangeError});let n=0,r=[],i=()=>{r.length>0&&n<t&&r.shift()?.()};return async e=>{for(;n>=t;)await new Promise(e=>r.push(e));n++;try{return await e()}finally{n--,i()}}}function de(t={}){let{concurrency:n=1}=t;e(n>=1,`Concurrency must be at least 1`,{args:{concurrency:n},type:RangeError});let r=0,i=null,a=null,o=[],s=!1,c=()=>{s||(s=!0,new N().postTask(()=>{s=!1,l()},{priority:`user-visible`}))},l=()=>{if(r<n&&o.length>0){let e=o.shift();r++,e.fn().then(e.resolve).catch(e.reject).finally(()=>{r--,c(),r===0&&o.length===0&&a&&(a(),i=null,a=null)})}};return{add:e=>{let{promise:t,reject:n,resolve:r}=Promise.withResolvers();return o.push({fn:e,reject:n,resolve:r}),c(),t},clear:()=>{o.length=0},onIdle:()=>{if(r===0&&o.length===0)return Promise.resolve();if(!i){let e=Promise.withResolvers();i=e.promise,a=e.resolve}return i},get pending(){return r},get size(){return o.length}}}async function fe(e,t){let n=new Promise(e=>setTimeout(e,t)),r=await e;return await n,r}async function pe(e,t={}){let{interval:n=100,signal:r,timeout:i=5e3}=t,a=AbortSignal.timeout(i),o=r?AbortSignal.any([r,a]):a;return o.throwIfAborted(),new Promise((t,r)=>{let i=null,a=()=>{i!==null&&(clearTimeout(i),i=null),o.removeEventListener(`abort`,s)},s=()=>{a(),r(o.reason)},c=async()=>{try{if(o.aborted){a(),r(o.reason);return}if(await e()){a(),t();return}i=setTimeout(c,n)}catch(e){a(),r(e)}};o.addEventListener(`abort`,s,{once:!0}),c()})}function me(e,t=7){let n=typeof e==`string`?new Date(e):e,r=n.getTime();if(Number.isNaN(r))return`UNKNOWN`;if(n.getFullYear()>=9999)return`NEVER`;let i=r-Date.now();return i<=0?`EXPIRED`:i<=t*24*60*60*1e3?`SOON`:`LATER`}function P(e){return e instanceof Date&&!Number.isNaN(e.getTime())}function F(e,n,{interval:r=`day`,latest:i=!1,steps:a=1}={}){let o=new Date(e),s=new Date(n);t([P(o),P(s)],`Invalid date format. Use a valid Date object or ISO string.`,{args:{end:n,start:e},type:TypeError});let c=[],l=new Date(I(o,r,0));for(;l<=s;)c.push(l),l=new Date(I(l,r,a));return i&&c.length>0&&c[c.length-1]<s&&c.push(s),c}function I(e,t,n){let r=e.getFullYear(),i=e.getMonth(),a=e.getDate();switch(t){case`day`:return new Date(Date.UTC(r,i,a+n));case`month`:return new Date(Date.UTC(r,i+n,a));case`monthEnd`:return new Date(Date.UTC(r,i+n+1,0));case`monthStart`:return new Date(Date.UTC(r,i+n,1));case`week`:return new Date(Date.UTC(r,i,a+7*n));case`year`:return new Date(Date.UTC(r+n,i,a));case`yearEnd`:return new Date(Date.UTC(r+n,11,31));case`yearStart`:return new Date(Date.UTC(r+n,0,1))}}var L=[`year`,`month`,`week`,`day`,`hour`,`minute`,`second`],R=1e3,z=60*R,B=60*z,V=24*B,he=7*V,ge=30*V,_e=[{ms:365*V,unit:`year`},{ms:ge,unit:`month`},{ms:he,unit:`week`},{ms:V,unit:`day`},{ms:B,unit:`hour`},{ms:z,unit:`minute`},{ms:R,unit:`second`}];function ve(e,t=new Date,n=L){let r=typeof e==`string`?Date.parse(e):e.getTime(),i=typeof t==`string`?Date.parse(t):t.getTime();if(Number.isNaN(r)||Number.isNaN(i))return;let a=_e.filter(e=>n.includes(e.unit)),o=Math.abs(r-i),s=a[a.length-1]?.unit??`second`;if(o<=0)return{unit:s,value:0};let c=a.find(e=>o>=e.ms);return c?{unit:c.unit,value:Math.floor(o/c.ms)}:{unit:s,value:0}}function ye(t,n,r,i={}){e(!!t,`Missing parameters object`,i);let a=n.filter(e=>t[e]===void 0||t[e]===null);if(a.length>0){let t=r?` in "${r}"`:``,n=a.map(e=>`"${String(e)}"`).join(`, `);e(!1,`Missing required parameter${a.length>1?`s`:``}: ${n}${t}`,i)}}function be(...t){e(t.length>0,`compose requires at least one function`,{args:{fns:t}});let n=t[t.length-1],r=t.slice(0,-1);return((...e)=>r.reduceRight((e,t)=>t(e),n(...e)))}function xe(e,t=e.length){let n=(...r)=>r.length>=t?e(...r):(...e)=>n(...r,...e);return n}function Se(t,n=300){e(typeof t==`function`,`First argument must be a function`,{args:{fn:t},type:TypeError}),e(typeof n==`number`&&n>=0,`Delay must be a non-negative number`,{args:{delay:n},type:TypeError});let r,i,a,o=()=>{r!==void 0&&(r.abort(),r=void 0)},s=()=>{let e=new AbortController,t=new N;r=e,t.postTask(c,{delay:n,priority:`user-visible`,signal:e.signal}).catch(()=>{})},c=()=>{if(o(),!i)return;let e=i,n=a;return i=void 0,a=void 0,t.apply(n,e)},l=function(...e){i=e,a=this,o(),s()};return l.cancel=()=>{o(),i=void 0,a=void 0},l.flush=()=>c(),l.pending=()=>r!==void 0,l}var Ce=(e,...t)=>n=>e(n,...t);function we(e,{maxSize:t,resolver:n,ttl:r}={}){let i=new Map,a=e=>n?n(...e):JSON.stringify(e,(e,t)=>t===void 0?`__undefined__`:t);return(...n)=>{let o=a(n),s=Date.now(),c=i.get(o);if(c&&(!r||s-c.timestamp<r))return i.delete(o),i.set(o,c),c.value;let l=e(...n);return i.set(o,{timestamp:s,value:l}),l instanceof Promise&&l.catch(()=>i.delete(o)),t&&i.size>t&&i.delete(i.keys().next().value),l}}var Te=e=>{let t,n=!1,r=((...r)=>(n||=(t=e(...r),!0),t));return r.reset=()=>{t=void 0,n=!1},r};function Ee(...t){e(t.length>0,`pipe requires at least one function`,{args:{fns:t}});let[n,...r]=t;return((...e)=>r.reduce((e,t)=>t(e),n(...e)))}function De(t,n=700,r={leading:!0,trailing:!1}){e(typeof t==`function`,`First argument must be a function`,{args:{fn:t},type:TypeError}),e(typeof n==`number`&&n>=0,`Delay must be a non-negative number`,{args:{delay:n},type:TypeError});let i=r.leading??!0,a=r.trailing??!1,o,s=0,c,l,u,d=()=>{o!==void 0&&(o.abort(),o=void 0)},f=e=>{let t=new AbortController,n=new N;o=t,n.postTask(h,{delay:e,priority:`user-visible`,signal:t.signal}).catch(()=>{})},p=e=>{if(s=e,d(),!c)return;let n=c,r=l;return c=void 0,l=void 0,u=t.apply(r,n),u},m=e=>n-(e-s),h=()=>{let e=Date.now();c&&m(e)<=0?p(e):c?f(m(e)):d()},g=function(...e){let t=Date.now();s===0&&!i&&(s=t),c=e,l=this;let n=m(t);n<=0?p(t):a&&!o&&f(n)};return g.cancel=()=>{d(),c=void 0,l=void 0,s=0},g.flush=()=>{if(c)return p(Date.now())},g.pending=()=>c!==void 0||o!==void 0,g}function Oe(e){return typeof e==`bigint`?e<0n?-e:e:Math.abs(e)}function ke(e,t){if(t.length===0)throw Error(`Ratios array cannot be empty`);if(t.some(e=>e<0))throw Error(`Ratios must be non-negative`);let n=t.reduce((e,t)=>e+t,0);if(n===0)throw Error(`Total ratio cannot be zero`);if(typeof e==`bigint`){let r=[],i=e;for(let a=0;a<t.length-1;a++){let o=e*BigInt(Math.floor(t[a]*1e6))/BigInt(Math.floor(n*1e6));r.push(o),i-=o}return r.push(i),r}let r=Array.from({length:t.length-1},(r,i)=>Math.floor(e*t[i]/n));return r.push(e-r.reduce((e,t)=>e+t,0)),r}function H(e,t){return e.length===0?0:e.reduce((e,n)=>{let r=t?t(n):n;if(Number.isNaN(r))throw TypeError(`Cannot sum NaN values`);return e+r},0)}function Ae(e,t){if(e.length!==0)try{let n=H(e,t)/e.length;return Number.isNaN(n)?void 0:n}catch{return}}function je(e,t,n){return Math.min(Math.max(e,t),n)}function Me(e,t){if(t<1)throw Error(`Parts must be at least 1`);if(typeof e==`bigint`){let n=e/BigInt(t),r=e%BigInt(t),i=[];for(let e=0;e<t;e++)i.push(BigInt(e)<r?n+1n:n);return i}let n=Math.floor(e/t),r=e-n*t;return Array.from({length:t},(e,t)=>t<r?n+1:n)}function Ne(e,t,n=5){if(n<=0)return[];if(n===1)return[e];let r=(t-e)/(n-1);return Array.from({length:n},(t,n)=>e+n*r)}function Pe(e,t){let n=t??(e=>e);return u(e,(e,t)=>E(n(e),n(t))>0?e:t)}function Fe(e,t){if(e.length===0)return;let n=t?e.map(t):[...e];n.sort((e,t)=>e-t);let r=Math.floor(n.length/2);return n.length%2==0?(n[r-1]+n[r])/2:n[r]}function Ie(e,t){let n=t??(e=>e);return u(e,(e,t)=>E(n(e),n(t))<0?e:t)}function Le(e,t){return t===0?0:e/t*100}function Re(t,n,r){if(e(Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(r),`start, stop, and step must be finite numbers`,{args:{start:t,step:r,stop:n},type:TypeError}),e(r!==0,`Step cannot be 0`,{args:{step:r},type:Error}),t===n)return[];let i=Math.max(0,Math.ceil((n-t)/r+2**-52));return e(i<=1e7,`Range exceeds maximum allowed size of 10,000,000`,{args:{length:i,start:t,step:r,stop:n},type:Error}),Array.from({length:i},(e,n)=>t+n*r)}function ze(e,t=0,n=Math.round){if(t===0)return n(e);let r=10**Math.max(-323,Math.min(t,292));return n(e*r)/r}function Be(e,t={}){let{locale:n=`en-US`,maximumFractionDigits:r,minimumFractionDigits:i,style:a=`symbol`}=t,o=Ve(e.currency),s=10**o,c=Number(e.amount)/s;return new Intl.NumberFormat(n,{currency:e.currency,currencyDisplay:a,maximumFractionDigits:r??o,minimumFractionDigits:i??o,style:`currency`}).format(c)}function Ve(e){return new Intl.NumberFormat(`en`,{currency:e,style:`currency`}).resolvedOptions().maximumFractionDigits??2}function He(e,t){if(e.currency!==t.from)throw Error(`Currency mismatch: expected ${t.from}, got ${e.currency}`);let n=BigInt(Math.round(t.rate*1e6));return{amount:e.amount*n/1000000n,currency:t.to}}function Ue(e){let t=new Map,n=new Map,r=e.scheduler??new N,i=e.hash,a=0;function o(e){n.get(e)?.controller.abort(),n.delete(e)}function s(e){let n=t.has(e);return o(e),t.delete(e),n}function c(e){return t.get(i(e))?.value}function l(e){let n=t.get(i(e));if(n)return{meta:n.meta,value:n.value}}function u(e,n,r){let a=i(e),s=t.get(a);o(a),t.set(a,{key:e,meta:r&&`meta`in r?r.meta:s?.meta,value:n}),r?.ttlMs!==void 0&&g(e,r.ttlMs)}function d(e,t,n){let r=l(e);if(r)return r.value;let i=t();return u(e,i,n),i}function f(e){return s(i(e))}function p(){for(let e of n.values())e.controller.abort();t.clear(),n.clear()}function m(){return t.size}function h(i,c){if(o(i),c===1/0)return;if(!Number.isFinite(c))throw TypeError(`stash.scheduleGc expects a finite number or Infinity`);if(c<=0){s(i);return}if(!t.has(i))return;let l=new AbortController,u=++a;n.set(i,{controller:l,token:u}),r.postTask(()=>{let e=n.get(i);!e||e.token!==u||(n.delete(i),s(i))},{delay:c,priority:`background`,signal:l.signal}).catch(t=>{t instanceof DOMException&&t.name===`AbortError`||e.onError?.(t)})}function g(e,t){h(i(e),t)}function _(e){o(i(e))}function v(e,n){let r=i(e);return t.has(r)?(h(r,n),!0):!1}function*y(){for(let e of t.values())yield[e.key,e.value]}return{cancelGc:_,clear:p,delete:f,entries:y,get:c,getEntry:l,getOrSet:d,scheduleGc:g,set:u,size:m,touch:v}}var U=Symbol(`deleted`);function W(e,t,n=s){if(!e&&!t)return{};let r={};for(let i of new Set([...Object.keys(e??{}),...Object.keys(t??{})])){let a=e?.[i],o=t?.[i];if(_(a)&&_(o)){let e=W(a,o,n);Object.keys(e).length>0&&(r[i]=e)}else n(a,o)||(r[i]=t!=null&&i in t&&(e==null||!(i in e))?U:a)}return r}function G(e=`deep`,...t){return t.length===0?{}:e===`shallow`?Object.assign({},...t):t.reduce((t,n)=>K(t,n,e),{})}function We(...e){return G(`deep`,...e)}function Ge(...e){return G(`shallow`,...e)}function K(e,t,r){if(!_(t))return t;let i={...e};for(let e of Object.keys(t)){let a=t[e],o=i[e];i[e]=n(a)&&n(o)?Ke(o,a,r):_(a)&&_(o)?K(o,a,r):qe(o,a,r)}return i}function Ke(e,t,n){return e?n===`arrayConcat`?e.concat(t):n===`arrayReplace`?t:[...e,...t]:t}function qe(e,t,n){return typeof n==`function`?n(e,t):n===`lastWins`||t!==void 0?t:e}function Je(e,t={}){let{defaultValue:n,onError:r,reviver:a,validator:o}=t;if(!i(e))return m(e)?n:e;try{let t=JSON.parse(e,a);if(o&&!o(t))throw TypeError(`Parsed JSON does not match the expected structure`);return t??n}catch(e){return r?.(e),n}}function Ye(t,n,r,i={}){e(_(t),v,{args:{item:t},type:TypeError});let{throwOnMissing:a=!1}=i,o=n.split(/[.[\]]+/).filter(Boolean),s=t;for(let e of o){if(m(s)||typeof s!=`object`){if(a)throw Error(`Cannot read property '${e}' of ${s}`);return r}if(s=s[e],s===void 0){if(a)throw Error(`Property '${e}' does not exist`);return r}}return s}function q(e,t){let{deep:n=!1,get:r,set:i,watch:a}=t,o=a?new Set(a):null;return new Proxy(e,{get(e,i,a){if(o&&!o.has(i))return Reflect.get(e,i,a);let s=Reflect.get(e,i,a);return r&&(s=r(i,s,e)),n&&_(s)?q(s,t):s},set(e,r,a,s){if(o&&!o.has(r))return Reflect.set(e,r,a,s);let c=e[r],l=i?i(r,a,c,e):a;return n&&_(l)?Reflect.set(e,r,q(l,t),s):Reflect.set(e,r,l,s)}})}function J(e){return m(e)||e===``?!0:n(e)?e.length===0:e instanceof Map||e instanceof Set?e.size===0:_(e)?Object.keys(e).length===0:!1}function Y(e){if(!m(e)){if(i(e)){let t=e.trim();return t===``?void 0:t}if(n(e)){let t=e.map(e=>Y(e)).filter(e=>!J(e));return t.length===0?void 0:t}if(_(e)){let t={};for(let[n,r]of Object.entries(e)){let e=Y(r);J(e)||(t[n]=e)}return Object.keys(t).length===0?void 0:t}return e}}function X(t,n){e(t<=n,`Minimum value must be less than maximum value`,{args:{max:n,min:t},type:RangeError});let r=crypto.getRandomValues(new Uint32Array(1))[0]/4294967295;return Math.floor(r*(n-t+1))+t}var Xe=t=>{if(e(n(t),r,{args:{array:t},type:TypeError}),t.length!==0)return t[X(0,t.length-1)]};function Ze(t){e(n(t),r,{args:{array:t},type:TypeError});let i=[...t];for(let e=i.length-1;e>0;e--){let t=Math.floor(crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*(e+1));[i[e],i[t]]=[i[t],i[e]]}return i}function Qe(){return crypto.randomUUID()}var $e=/([a-z])([A-Z\d])|([A-Z\d])([A-Z][a-z])|(\d)([a-zA-Z])/g;function Z(e,t=` `){return e.trim().replace($e,`$1$3$5${t}$2$4$6`).replace(/[^a-z\d]+/gi,t).replace(RegExp(`^${t}+|${t}+$`,`g`),``)}function et(e){return Z(e,` `).replace(/[^a-zA-Z0-9]+(.)/g,(e,t)=>t.toUpperCase()).replace(/^./,e=>e.toLowerCase())}function tt(e){return Z(e,`-`).toLowerCase()}function nt(e){return Z(e,` `).replace(/(?:^|\s)(\w)/g,(e,t)=>t.toUpperCase()).replace(/\s+/g,``)}function rt(e){return Z(e,`_`).toLowerCase()}function it(t,n=25,{completeWords:r=!1,ellipsis:i=`…`}={}){if(e(typeof t==`string`,`First argument must be a string`,{args:{str:t},type:TypeError}),e(typeof n==`number`&&n>=0&&Number.isFinite(n),`Limit must be a non-negative finite number`,{args:{limit:n},type:TypeError}),t.length<=n)return t;let a=n;if(r){let e=t.substring(0,n).lastIndexOf(` `);e>0&&(a=e)}return`${t.substring(0,a).trim()}${i}`}function at(e){return typeof e==`boolean`}function Q(e){return e!==void 0}function ot(e){return typeof e==`number`&&Number.isInteger(e)&&e%2==0}function st(e){return typeof e==`function`}function $(e,t){if(e===t)return!0;if(e==null||t==null)return!1;let n=Array.isArray(e),r=Array.isArray(t);if(n!==r)return!1;if(n&&r)return t.length>e.length?!1:t.every((t,n)=>$(e[n],t));if(typeof t==`object`){for(let n of Object.keys(t))if(!$(e?.[n],t[n]))return!1;return!0}return e===t}function ct(e){return typeof e==`number`&&e<0}function lt(e){return typeof e==`number`&&Number.isInteger(e)&&e%2!=0}function ut(e){return typeof e==`number`&&e>0}function dt(e){let t=typeof e;return t===`string`||t===`boolean`||t===`number`&&!Number.isNaN(e)}function ft(e){return typeof e==`object`&&!!e&&typeof e.then==`function`}function pt(e){return e instanceof RegExp}function mt(e){return typeof e==`number`&&e===0}function ht(e){if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`number`&&Number.isNaN(e))return`nan`;let t=Object.prototype.toString.call(e).slice(8,-1);return t===`AsyncFunction`?`function`:t.toLowerCase()}var gt={array:n,boolean:at,date:P,defined:Q,empty:J,equal:s,even:ot,fn:st,ge:(e,t)=>e>=t,gt:(e,t)=>e>t,le:(e,t)=>e<=t,lt:(e,t)=>e<t,match:$,negative:ct,nil:m,number:h,object:_,odd:lt,positive:ut,primitive:dt,promise:ft,regex:pt,string:i,typeOf:ht,within:y,zero:mt};exports.DELETED=U,exports.Scheduler=N,exports.abs=Oe,exports.allocate=ke,exports.assert=e,exports.assertAll=t,exports.assertParams=ye,exports.attempt=oe,exports.average=Ae,exports.camelCase=et,exports.chunk=o,exports.clamp=je,exports.compare=E,exports.compareBy=D,exports.compose=be,exports.contains=l,exports.currency=Be,exports.curry=xe,exports.debounce=Se,exports.deepMerge=We,exports.defer=se,exports.diff=W,exports.distribute=Me,exports.draw=Xe,exports.exchange=He,exports.expires=me,exports.fold=u,exports.get=Ye,exports.group=d,exports.interval=F,exports.is=gt,exports.kebabCase=tt,exports.keyBy=f,exports.linspace=Ne,exports.list=w,exports.max=Pe,exports.median=Fe,exports.memo=we,exports.merge=G,exports.min=Ie,exports.once=Te,exports.parallel=ce,exports.parseJSON=Je,exports.partial=Ce,exports.pascalCase=nt,exports.percent=Le,exports.pick=T,exports.pipe=Ee,exports.polyfillScheduler=M,exports.pool=ue,exports.proxy=q,exports.prune=Y,exports.queue=de,exports.race=fe,exports.random=X,exports.range=Re,exports.remoteList=ee,exports.replace=te,exports.retry=j,exports.rotate=ne,exports.round=ze,exports.search=C,exports.seek=S,exports.select=re,exports.shallowMerge=Ge,exports.shuffle=Ze,exports.similarity=p,exports.sleep=A,exports.snakeCase=rt,exports.sort=O,exports.stash=Ue,exports.sum=H,exports.throttle=De,exports.timeDiff=ve,exports.toggle=k,exports.truncate=it,exports.uniq=ie,exports.uuid=Qe,exports.waitFor=pe;
2
+ //# sourceMappingURL=toolkit.cjs.map