umt 2.12.3 → 2.14.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 (463) hide show
  1. package/README.md +60 -0
  2. package/module/Array/arraysJoin.js +1 -1
  3. package/module/Array/arraysJoin.js.map +1 -1
  4. package/module/Array/chunk.js +1 -2
  5. package/module/Array/chunk.js.map +1 -1
  6. package/module/Array/generateNumberArray.js +13 -3
  7. package/module/Array/generateNumberArray.js.map +1 -1
  8. package/module/Array/getArraysDiff.js +5 -1
  9. package/module/Array/getArraysDiff.js.map +1 -1
  10. package/module/Array/mergeSort.js +45 -18
  11. package/module/Array/mergeSort.js.map +1 -1
  12. package/module/Array/pop.js +2 -1
  13. package/module/Array/pop.js.map +1 -1
  14. package/module/Array/randomSelect.js +8 -0
  15. package/module/Array/randomSelect.js.map +1 -1
  16. package/module/Array/sortingHelpers/rangeValidator.js +3 -2
  17. package/module/Array/sortingHelpers/rangeValidator.js.map +1 -1
  18. package/module/Array/timSort.js +25 -23
  19. package/module/Array/timSort.js.map +1 -1
  20. package/module/Array/ultraNumberSort.js +214 -136
  21. package/module/Array/ultraNumberSort.js.map +1 -1
  22. package/module/Async/defer.d.ts +18 -0
  23. package/module/Async/defer.js +19 -0
  24. package/module/Async/defer.js.map +1 -0
  25. package/module/Async/index.d.ts +4 -0
  26. package/module/Async/index.js +5 -0
  27. package/module/Async/index.js.map +1 -0
  28. package/module/Async/parallel.d.ts +10 -0
  29. package/module/Async/parallel.js +44 -0
  30. package/module/Async/parallel.js.map +1 -0
  31. package/module/Async/sleep.d.ts +8 -0
  32. package/module/Async/sleep.js +11 -0
  33. package/module/Async/sleep.js.map +1 -0
  34. package/module/Async/timeout.d.ts +10 -0
  35. package/module/Async/timeout.js +22 -0
  36. package/module/Async/timeout.js.map +1 -0
  37. package/module/Color/cmykToRgba.js +6 -7
  38. package/module/Color/cmykToRgba.js.map +1 -1
  39. package/module/Color/hexaToRgba.js +1 -8
  40. package/module/Color/hexaToRgba.js.map +1 -1
  41. package/module/Color/hslaToRgba.d.ts +0 -1
  42. package/module/Color/hslaToRgba.js +7 -22
  43. package/module/Color/hslaToRgba.js.map +1 -1
  44. package/module/Color/rgbaToCmyk.js +0 -11
  45. package/module/Color/rgbaToCmyk.js.map +1 -1
  46. package/module/Color/rgbaToHexA.js +2 -15
  47. package/module/Color/rgbaToHexA.js.map +1 -1
  48. package/module/Color/rgbaToHsla.d.ts +0 -1
  49. package/module/Color/rgbaToHsla.js +0 -12
  50. package/module/Color/rgbaToHsla.js.map +1 -1
  51. package/module/Crypto/constants.d.ts +2 -0
  52. package/module/Crypto/constants.js +3 -0
  53. package/module/Crypto/constants.js.map +1 -0
  54. package/module/Crypto/decodeBase32.js +4 -5
  55. package/module/Crypto/decodeBase32.js.map +1 -1
  56. package/module/Crypto/decodeBase58.js +7 -6
  57. package/module/Crypto/decodeBase58.js.map +1 -1
  58. package/module/Crypto/encodeBase32.js +2 -1
  59. package/module/Crypto/encodeBase32.js.map +1 -1
  60. package/module/Crypto/encodeBase58.js +7 -3
  61. package/module/Crypto/encodeBase58.js.map +1 -1
  62. package/module/DataStructure/index.d.ts +2 -0
  63. package/module/DataStructure/index.js +2 -0
  64. package/module/DataStructure/index.js.map +1 -1
  65. package/module/DataStructure/lruCache.d.ts +139 -0
  66. package/module/DataStructure/lruCache.js +172 -0
  67. package/module/DataStructure/lruCache.js.map +1 -0
  68. package/module/DataStructure/ttlCache.d.ts +139 -0
  69. package/module/DataStructure/ttlCache.js +172 -0
  70. package/module/DataStructure/ttlCache.js.map +1 -0
  71. package/module/Error/flatMapResult.d.ts +23 -0
  72. package/module/Error/flatMapResult.js +28 -0
  73. package/module/Error/flatMapResult.js.map +1 -0
  74. package/module/Error/index.d.ts +3 -0
  75. package/module/Error/index.js +3 -0
  76. package/module/Error/index.js.map +1 -1
  77. package/module/Error/mapResult.d.ts +21 -0
  78. package/module/Error/mapResult.js +27 -0
  79. package/module/Error/mapResult.js.map +1 -0
  80. package/module/Error/matchResult.d.ts +25 -0
  81. package/module/Error/matchResult.js +27 -0
  82. package/module/Error/matchResult.js.map +1 -0
  83. package/module/Error/safeExecute.d.ts +16 -3
  84. package/module/Error/safeExecute.js +5 -2
  85. package/module/Error/safeExecute.js.map +1 -1
  86. package/module/Function/debounce.d.ts +38 -0
  87. package/module/Function/debounce.js +67 -0
  88. package/module/Function/debounce.js.map +1 -0
  89. package/module/Function/index.d.ts +4 -0
  90. package/module/Function/index.js +4 -0
  91. package/module/Function/index.js.map +1 -1
  92. package/module/Function/memoize.d.ts +36 -0
  93. package/module/Function/memoize.js +54 -0
  94. package/module/Function/memoize.js.map +1 -0
  95. package/module/Function/once.d.ts +18 -0
  96. package/module/Function/once.js +29 -0
  97. package/module/Function/once.js.map +1 -0
  98. package/module/Function/throttle.d.ts +25 -0
  99. package/module/Function/throttle.js +55 -0
  100. package/module/Function/throttle.js.map +1 -0
  101. package/module/IP/cidrToLong.d.ts +0 -1
  102. package/module/IP/cidrToLong.js +0 -4
  103. package/module/IP/cidrToLong.js.map +1 -1
  104. package/module/IP/cidrToSubnetMask.d.ts +0 -1
  105. package/module/IP/cidrToSubnetMask.js +0 -1
  106. package/module/IP/cidrToSubnetMask.js.map +1 -1
  107. package/module/IP/getNetworkAddress.d.ts +0 -1
  108. package/module/IP/getNetworkAddress.js +2 -32
  109. package/module/IP/getNetworkAddress.js.map +1 -1
  110. package/module/IP/ipToBinaryString.d.ts +0 -1
  111. package/module/IP/ipToBinaryString.js +2 -25
  112. package/module/IP/ipToBinaryString.js.map +1 -1
  113. package/module/IP/ipToLong.d.ts +0 -1
  114. package/module/IP/ipToLong.js +0 -1
  115. package/module/IP/ipToLong.js.map +1 -1
  116. package/module/IP/isInRange.d.ts +0 -1
  117. package/module/IP/isInRange.js +5 -28
  118. package/module/IP/isInRange.js.map +1 -1
  119. package/module/IP/isPrivateIp.d.ts +0 -1
  120. package/module/IP/isPrivateIp.js +1 -10
  121. package/module/IP/isPrivateIp.js.map +1 -1
  122. package/module/IP/longToIp.d.ts +0 -1
  123. package/module/IP/longToIp.js +0 -8
  124. package/module/IP/longToIp.js.map +1 -1
  125. package/module/IP/subnetMaskToCidr.d.ts +0 -1
  126. package/module/IP/subnetMaskToCidr.js +2 -23
  127. package/module/IP/subnetMaskToCidr.js.map +1 -1
  128. package/module/Iterator/index.d.ts +3 -0
  129. package/module/Iterator/index.js +4 -0
  130. package/module/Iterator/index.js.map +1 -0
  131. package/module/Iterator/lazyFilter.d.ts +10 -0
  132. package/module/Iterator/lazyFilter.js +19 -0
  133. package/module/Iterator/lazyFilter.js.map +1 -0
  134. package/module/Iterator/lazyMap.d.ts +10 -0
  135. package/module/Iterator/lazyMap.js +17 -0
  136. package/module/Iterator/lazyMap.js.map +1 -0
  137. package/module/Iterator/lazyTake.d.ts +10 -0
  138. package/module/Iterator/lazyTake.js +20 -0
  139. package/module/Iterator/lazyTake.js.map +1 -0
  140. package/module/Math/addition.js +20 -4
  141. package/module/Math/addition.js.map +1 -1
  142. package/module/Math/average.js +3 -3
  143. package/module/Math/average.js.map +1 -1
  144. package/module/Math/bitwise.js +1 -1
  145. package/module/Math/bitwise.js.map +1 -1
  146. package/module/Math/calculator/core.js +2 -1
  147. package/module/Math/calculator/core.js.map +1 -1
  148. package/module/Math/calculator/literalExpression.js +1 -1
  149. package/module/Math/clamp.d.ts +16 -0
  150. package/module/Math/clamp.js +19 -0
  151. package/module/Math/clamp.js.map +1 -0
  152. package/module/Math/correlationCoefficient.js +0 -3
  153. package/module/Math/correlationCoefficient.js.map +1 -1
  154. package/module/Math/inRange.d.ts +19 -0
  155. package/module/Math/inRange.js +24 -0
  156. package/module/Math/inRange.js.map +1 -0
  157. package/module/Math/index.d.ts +3 -0
  158. package/module/Math/index.js +3 -0
  159. package/module/Math/index.js.map +1 -1
  160. package/module/Math/median.js +2 -2
  161. package/module/Math/median.js.map +1 -1
  162. package/module/Math/nCr.js +2 -4
  163. package/module/Math/nCr.js.map +1 -1
  164. package/module/Math/percentile.js +2 -5
  165. package/module/Math/percentile.js.map +1 -1
  166. package/module/Math/primeFactorization.js +1 -1
  167. package/module/Math/primeFactorization.js.map +1 -1
  168. package/module/Math/sumPrecise.d.ts +14 -0
  169. package/module/Math/sumPrecise.js +27 -0
  170. package/module/Math/sumPrecise.js.map +1 -0
  171. package/module/Math/uuidv7.js +56 -22
  172. package/module/Math/uuidv7.js.map +1 -1
  173. package/module/Number/formatNumber.d.ts +42 -0
  174. package/module/Number/formatNumber.js +44 -0
  175. package/module/Number/formatNumber.js.map +1 -0
  176. package/module/Number/index.d.ts +3 -0
  177. package/module/Number/index.js +4 -0
  178. package/module/Number/index.js.map +1 -0
  179. package/module/Number/toOrdinal.d.ts +20 -0
  180. package/module/Number/toOrdinal.js +37 -0
  181. package/module/Number/toOrdinal.js.map +1 -0
  182. package/module/Number/toPercentage.d.ts +20 -0
  183. package/module/Number/toPercentage.js +27 -0
  184. package/module/Number/toPercentage.js.map +1 -0
  185. package/module/Object/deepClone.d.ts +15 -0
  186. package/module/Object/deepClone.js +65 -0
  187. package/module/Object/deepClone.js.map +1 -0
  188. package/module/Object/getObjectsCommon.d.ts +23 -0
  189. package/module/Object/getObjectsCommon.js +60 -0
  190. package/module/Object/getObjectsCommon.js.map +1 -0
  191. package/module/Object/getObjectsDiff.d.ts +25 -0
  192. package/module/Object/getObjectsDiff.js +79 -0
  193. package/module/Object/getObjectsDiff.js.map +1 -0
  194. package/module/Object/index.d.ts +6 -0
  195. package/module/Object/index.js +6 -0
  196. package/module/Object/index.js.map +1 -1
  197. package/module/Object/isPlainObject.d.ts +16 -0
  198. package/module/Object/isPlainObject.js +32 -0
  199. package/module/Object/isPlainObject.js.map +1 -0
  200. package/module/Object/mapKeys.d.ts +15 -0
  201. package/module/Object/mapKeys.js +28 -0
  202. package/module/Object/mapKeys.js.map +1 -0
  203. package/module/Object/mapValues.d.ts +15 -0
  204. package/module/Object/mapValues.js +27 -0
  205. package/module/Object/mapValues.js.map +1 -0
  206. package/module/Object/mergeDeep.js +4 -9
  207. package/module/Object/mergeDeep.js.map +1 -1
  208. package/module/Object/omit.d.ts +1 -1
  209. package/module/Object/omit.js.map +1 -1
  210. package/module/Object/pickDeep.js +6 -1
  211. package/module/Object/pickDeep.js.map +1 -1
  212. package/module/Predicate/every.d.ts +14 -0
  213. package/module/Predicate/every.js +22 -0
  214. package/module/Predicate/every.js.map +1 -0
  215. package/module/Predicate/index.d.ts +6 -0
  216. package/module/Predicate/index.js +7 -0
  217. package/module/Predicate/index.js.map +1 -0
  218. package/module/Predicate/isNotNullish.d.ts +11 -0
  219. package/module/Predicate/isNotNullish.js +12 -0
  220. package/module/Predicate/isNotNullish.js.map +1 -0
  221. package/module/Predicate/isNullish.d.ts +11 -0
  222. package/module/Predicate/isNullish.js +12 -0
  223. package/module/Predicate/isNullish.js.map +1 -0
  224. package/module/Predicate/matches.d.ts +11 -0
  225. package/module/Predicate/matches.js +20 -0
  226. package/module/Predicate/matches.js.map +1 -0
  227. package/module/Predicate/not.d.ts +10 -0
  228. package/module/Predicate/not.js +11 -0
  229. package/module/Predicate/not.js.map +1 -0
  230. package/module/Predicate/some.d.ts +15 -0
  231. package/module/Predicate/some.js +23 -0
  232. package/module/Predicate/some.js.map +1 -0
  233. package/module/String/camelCase.js +2 -2
  234. package/module/String/camelCase.js.map +1 -1
  235. package/module/String/escapeHtml.js +1 -1
  236. package/module/String/formatString/getValue.js +1 -1
  237. package/module/String/formatString/getValue.js.map +1 -1
  238. package/module/String/fromBase64.d.ts +0 -1
  239. package/module/String/fromBase64.js +1 -9
  240. package/module/String/fromBase64.js.map +1 -1
  241. package/module/String/fuzzySearch.js +74 -6
  242. package/module/String/fuzzySearch.js.map +1 -1
  243. package/module/String/kebabCase.js +1 -1
  244. package/module/String/kebabCase.js.map +1 -1
  245. package/module/String/levenshteinDistance.js +1 -2
  246. package/module/String/levenshteinDistance.js.map +1 -1
  247. package/module/String/randomString.js +23 -2
  248. package/module/String/randomString.js.map +1 -1
  249. package/module/String/reverseString.js +1 -1
  250. package/module/String/reverseString.js.map +1 -1
  251. package/module/String/slugify.js +1 -1
  252. package/module/String/toHalfWidth.js +2 -2
  253. package/module/String/toHalfWidth.js.map +1 -1
  254. package/module/String/truncate.js +0 -3
  255. package/module/String/truncate.js.map +1 -1
  256. package/module/String/unescapeHtml.js +1 -1
  257. package/module/String/unescapeHtml.js.map +1 -1
  258. package/module/Time/convertTime.js +4 -3
  259. package/module/Time/convertTime.js.map +1 -1
  260. package/module/Tool/escapeRegExp.d.ts +8 -0
  261. package/module/Tool/escapeRegExp.js +11 -0
  262. package/module/Tool/escapeRegExp.js.map +1 -0
  263. package/module/Tool/index.d.ts +1 -0
  264. package/module/Tool/index.js +1 -0
  265. package/module/Tool/index.js.map +1 -1
  266. package/module/URL/buildUrl.d.ts +17 -0
  267. package/module/URL/buildUrl.js +24 -0
  268. package/module/URL/buildUrl.js.map +1 -0
  269. package/module/URL/index.d.ts +4 -0
  270. package/module/URL/index.js +5 -0
  271. package/module/URL/index.js.map +1 -0
  272. package/module/URL/isAbsoluteUrl.d.ts +20 -0
  273. package/module/URL/isAbsoluteUrl.js +23 -0
  274. package/module/URL/isAbsoluteUrl.js.map +1 -0
  275. package/module/URL/joinPath.d.ts +24 -0
  276. package/module/URL/joinPath.js +43 -0
  277. package/module/URL/joinPath.js.map +1 -0
  278. package/module/URL/parseQueryString.d.ts +22 -0
  279. package/module/URL/parseQueryString.js +34 -0
  280. package/module/URL/parseQueryString.js.map +1 -0
  281. package/module/Validate/parseEmail.js +5 -5
  282. package/module/Validate/parseEmail.js.map +1 -1
  283. package/module/es5/Array/arraysJoin.js +1 -1
  284. package/module/es5/Array/chunk.js +3 -2
  285. package/module/es5/Array/generateNumberArray.js +21 -3
  286. package/module/es5/Array/getArraysDiff.js +5 -3
  287. package/module/es5/Array/mergeSort.js +51 -19
  288. package/module/es5/Array/pop.js +2 -7
  289. package/module/es5/Array/randomSelect.js +8 -0
  290. package/module/es5/Array/sortingHelpers/rangeValidator.js +3 -2
  291. package/module/es5/Array/timSort.js +25 -23
  292. package/module/es5/Array/ultraNumberSort.js +243 -243
  293. package/module/es5/Async/defer.d.ts +18 -0
  294. package/module/es5/Async/defer.js +32 -0
  295. package/module/es5/Async/index.d.ts +4 -0
  296. package/module/es5/Async/index.js +49 -0
  297. package/module/es5/Async/parallel.d.ts +10 -0
  298. package/module/es5/Async/parallel.js +48 -0
  299. package/module/es5/Async/sleep.d.ts +8 -0
  300. package/module/es5/Async/sleep.js +18 -0
  301. package/module/es5/Async/timeout.d.ts +10 -0
  302. package/module/es5/Async/timeout.js +29 -0
  303. package/module/es5/Color/cmykToRgba.js +6 -7
  304. package/module/es5/Color/hexaToRgba.js +7 -5
  305. package/module/es5/Color/hslaToRgba.d.ts +0 -1
  306. package/module/es5/Color/hslaToRgba.js +7 -22
  307. package/module/es5/Color/rgbaToCmyk.js +0 -4
  308. package/module/es5/Color/rgbaToHexA.js +2 -6
  309. package/module/es5/Color/rgbaToHsla.d.ts +0 -1
  310. package/module/es5/Color/rgbaToHsla.js +0 -5
  311. package/module/es5/Crypto/constants.d.ts +2 -0
  312. package/module/es5/Crypto/constants.js +8 -0
  313. package/module/es5/Crypto/decodeBase32.js +12 -5
  314. package/module/es5/Crypto/decodeBase58.js +14 -8
  315. package/module/es5/Crypto/encodeBase32.js +2 -1
  316. package/module/es5/Crypto/encodeBase58.js +8 -3
  317. package/module/es5/DataStructure/index.d.ts +2 -0
  318. package/module/es5/DataStructure/index.js +22 -0
  319. package/module/es5/DataStructure/lruCache.d.ts +139 -0
  320. package/module/es5/DataStructure/lruCache.js +205 -0
  321. package/module/es5/DataStructure/ttlCache.d.ts +139 -0
  322. package/module/es5/DataStructure/ttlCache.js +211 -0
  323. package/module/es5/Error/flatMapResult.d.ts +23 -0
  324. package/module/es5/Error/flatMapResult.js +33 -0
  325. package/module/es5/Error/index.d.ts +3 -0
  326. package/module/es5/Error/index.js +33 -0
  327. package/module/es5/Error/mapResult.d.ts +21 -0
  328. package/module/es5/Error/mapResult.js +32 -0
  329. package/module/es5/Error/matchResult.d.ts +25 -0
  330. package/module/es5/Error/matchResult.js +32 -0
  331. package/module/es5/Error/safeExecute.d.ts +16 -3
  332. package/module/es5/Error/safeExecute.js +3 -3
  333. package/module/es5/Function/debounce.d.ts +38 -0
  334. package/module/es5/Function/debounce.js +88 -0
  335. package/module/es5/Function/index.d.ts +4 -0
  336. package/module/es5/Function/index.js +44 -0
  337. package/module/es5/Function/memoize.d.ts +36 -0
  338. package/module/es5/Function/memoize.js +73 -0
  339. package/module/es5/Function/once.d.ts +18 -0
  340. package/module/es5/Function/once.js +37 -0
  341. package/module/es5/Function/throttle.d.ts +25 -0
  342. package/module/es5/Function/throttle.js +69 -0
  343. package/module/es5/IP/cidrToLong.d.ts +0 -1
  344. package/module/es5/IP/cidrToLong.js +0 -4
  345. package/module/es5/IP/cidrToSubnetMask.d.ts +0 -1
  346. package/module/es5/IP/cidrToSubnetMask.js +0 -1
  347. package/module/es5/IP/getNetworkAddress.d.ts +0 -1
  348. package/module/es5/IP/getNetworkAddress.js +2 -31
  349. package/module/es5/IP/ipToBinaryString.d.ts +0 -1
  350. package/module/es5/IP/ipToBinaryString.js +1 -40
  351. package/module/es5/IP/ipToLong.d.ts +0 -1
  352. package/module/es5/IP/ipToLong.js +0 -1
  353. package/module/es5/IP/isInRange.d.ts +0 -1
  354. package/module/es5/IP/isInRange.js +5 -29
  355. package/module/es5/IP/isPrivateIp.d.ts +0 -1
  356. package/module/es5/IP/isPrivateIp.js +3 -12
  357. package/module/es5/IP/longToIp.d.ts +0 -1
  358. package/module/es5/IP/longToIp.js +0 -6
  359. package/module/es5/IP/subnetMaskToCidr.d.ts +0 -1
  360. package/module/es5/IP/subnetMaskToCidr.js +2 -26
  361. package/module/es5/Iterator/index.d.ts +3 -0
  362. package/module/es5/Iterator/index.js +38 -0
  363. package/module/es5/Iterator/lazyFilter.d.ts +10 -0
  364. package/module/es5/Iterator/lazyFilter.js +63 -0
  365. package/module/es5/Iterator/lazyMap.d.ts +10 -0
  366. package/module/es5/Iterator/lazyMap.js +59 -0
  367. package/module/es5/Iterator/lazyTake.d.ts +10 -0
  368. package/module/es5/Iterator/lazyTake.js +65 -0
  369. package/module/es5/Math/addition.js +24 -14
  370. package/module/es5/Math/average.js +3 -5
  371. package/module/es5/Math/bitwise.js +1 -1
  372. package/module/es5/Math/calculator/core.js +2 -1
  373. package/module/es5/Math/calculator/literalExpression.js +1 -1
  374. package/module/es5/Math/clamp.d.ts +16 -0
  375. package/module/es5/Math/clamp.js +24 -0
  376. package/module/es5/Math/correlationCoefficient.js +0 -3
  377. package/module/es5/Math/inRange.d.ts +19 -0
  378. package/module/es5/Math/inRange.js +29 -0
  379. package/module/es5/Math/index.d.ts +3 -0
  380. package/module/es5/Math/index.js +33 -0
  381. package/module/es5/Math/median.js +2 -2
  382. package/module/es5/Math/nCr.js +2 -4
  383. package/module/es5/Math/percentile.js +2 -11
  384. package/module/es5/Math/primeFactorization.js +1 -1
  385. package/module/es5/Math/sumPrecise.d.ts +14 -0
  386. package/module/es5/Math/sumPrecise.js +41 -0
  387. package/module/es5/Math/uuidv7.js +25 -40
  388. package/module/es5/Number/formatNumber.d.ts +42 -0
  389. package/module/es5/Number/formatNumber.js +58 -0
  390. package/module/es5/Number/index.d.ts +3 -0
  391. package/module/es5/Number/index.js +38 -0
  392. package/module/es5/Number/toOrdinal.d.ts +20 -0
  393. package/module/es5/Number/toOrdinal.js +42 -0
  394. package/module/es5/Number/toPercentage.d.ts +20 -0
  395. package/module/es5/Number/toPercentage.js +33 -0
  396. package/module/es5/Object/deepClone.d.ts +15 -0
  397. package/module/es5/Object/deepClone.js +110 -0
  398. package/module/es5/Object/getObjectsCommon.d.ts +23 -0
  399. package/module/es5/Object/getObjectsCommon.js +92 -0
  400. package/module/es5/Object/getObjectsDiff.d.ts +25 -0
  401. package/module/es5/Object/getObjectsDiff.js +146 -0
  402. package/module/es5/Object/index.d.ts +6 -0
  403. package/module/es5/Object/index.js +66 -0
  404. package/module/es5/Object/isPlainObject.d.ts +16 -0
  405. package/module/es5/Object/isPlainObject.js +39 -0
  406. package/module/es5/Object/mapKeys.d.ts +15 -0
  407. package/module/es5/Object/mapKeys.js +33 -0
  408. package/module/es5/Object/mapValues.d.ts +15 -0
  409. package/module/es5/Object/mapValues.js +32 -0
  410. package/module/es5/Object/mergeDeep.js +7 -10
  411. package/module/es5/Object/omit.d.ts +1 -1
  412. package/module/es5/Object/pickDeep.js +4 -6
  413. package/module/es5/Predicate/every.d.ts +14 -0
  414. package/module/es5/Predicate/every.js +33 -0
  415. package/module/es5/Predicate/index.d.ts +6 -0
  416. package/module/es5/Predicate/index.js +71 -0
  417. package/module/es5/Predicate/isNotNullish.d.ts +11 -0
  418. package/module/es5/Predicate/isNotNullish.js +19 -0
  419. package/module/es5/Predicate/isNullish.d.ts +11 -0
  420. package/module/es5/Predicate/isNullish.js +19 -0
  421. package/module/es5/Predicate/matches.d.ts +11 -0
  422. package/module/es5/Predicate/matches.js +28 -0
  423. package/module/es5/Predicate/not.d.ts +10 -0
  424. package/module/es5/Predicate/not.js +20 -0
  425. package/module/es5/Predicate/some.d.ts +15 -0
  426. package/module/es5/Predicate/some.js +34 -0
  427. package/module/es5/String/camelCase.js +2 -2
  428. package/module/es5/String/escapeHtml.js +1 -1
  429. package/module/es5/String/formatString/getValue.js +1 -1
  430. package/module/es5/String/fromBase64.d.ts +0 -1
  431. package/module/es5/String/fromBase64.js +9 -8
  432. package/module/es5/String/fuzzySearch.js +84 -9
  433. package/module/es5/String/kebabCase.js +1 -1
  434. package/module/es5/String/levenshteinDistance.js +3 -2
  435. package/module/es5/String/randomString.js +24 -2
  436. package/module/es5/String/reverseString.js +7 -1
  437. package/module/es5/String/slugify.js +1 -1
  438. package/module/es5/String/toHalfWidth.js +2 -2
  439. package/module/es5/String/truncate.js +0 -3
  440. package/module/es5/String/unescapeHtml.js +1 -1
  441. package/module/es5/Time/convertTime.js +4 -3
  442. package/module/es5/Tool/escapeRegExp.d.ts +8 -0
  443. package/module/es5/Tool/escapeRegExp.js +18 -0
  444. package/module/es5/Tool/index.d.ts +1 -0
  445. package/module/es5/Tool/index.js +11 -0
  446. package/module/es5/URL/buildUrl.d.ts +17 -0
  447. package/module/es5/URL/buildUrl.js +31 -0
  448. package/module/es5/URL/index.d.ts +4 -0
  449. package/module/es5/URL/index.js +49 -0
  450. package/module/es5/URL/isAbsoluteUrl.d.ts +20 -0
  451. package/module/es5/URL/isAbsoluteUrl.js +28 -0
  452. package/module/es5/URL/joinPath.d.ts +24 -0
  453. package/module/es5/URL/joinPath.js +48 -0
  454. package/module/es5/URL/parseQueryString.d.ts +22 -0
  455. package/module/es5/URL/parseQueryString.js +57 -0
  456. package/module/es5/Validate/parseEmail.js +5 -5
  457. package/module/es5/index.d.ts +5 -0
  458. package/module/es5/index.js +73 -18
  459. package/module/es5/tsconfig.tsbuildinfo +1 -1
  460. package/module/index.d.ts +5 -0
  461. package/module/index.js +5 -0
  462. package/module/index.js.map +1 -1
  463. package/package.json +58 -27
@@ -5,15 +5,16 @@
5
5
  * @returns Sorted array
6
6
  */
7
7
  export const ultraNumberSort = (array, ascending = true) => {
8
- const result = [...array];
9
- const length = result.length;
8
+ const length = array.length;
10
9
  if (length <= 1) {
11
- return result;
10
+ return [...array];
12
11
  }
13
- // For tiny arrays, use optimized inline sort
12
+ const result = [...array];
14
13
  if (length === 2) {
15
14
  if (result[0] > result[1] === ascending) {
16
- [result[0], result[1]] = [result[1], result[0]];
15
+ const temporary = result[0];
16
+ result[0] = result[1];
17
+ result[1] = temporary;
17
18
  }
18
19
  return result;
19
20
  }
@@ -21,6 +22,17 @@ export const ultraNumberSort = (array, ascending = true) => {
21
22
  inlineSort3(result, ascending);
22
23
  return result;
23
24
  }
25
+ // For small-medium arrays, skip integer/range analysis
26
+ if (length <= 128) {
27
+ for (let index = 0; index < length; index++) {
28
+ // biome-ignore lint/suspicious/noSelfCompare: NaN detection
29
+ if (result[index] !== result[index]) {
30
+ return handleNaNSort(result, ascending);
31
+ }
32
+ }
33
+ numericQuickSort(result, 0, length - 1, ascending);
34
+ return result;
35
+ }
24
36
  // Check if all numbers are integers and find range
25
37
  let allIntegers = true;
26
38
  let min = result[0];
@@ -43,20 +55,149 @@ export const ultraNumberSort = (array, ascending = true) => {
43
55
  allIntegers = false;
44
56
  }
45
57
  }
46
- // Handle NaN values
47
- if (hasNaN) {
48
- return handleNaNSort(result, ascending);
49
- }
50
58
  // For small integer ranges, use counting sort
51
- if (allIntegers && max - min < length * 2 && max - min < 1_000_000) {
59
+ if (!hasNaN &&
60
+ allIntegers &&
61
+ max - min < length * 2 &&
62
+ max - min < 1_000_000) {
52
63
  return countingSort(result, min, max, ascending);
53
64
  }
54
- // For larger arrays, use radix sort if applicable
55
- if (allIntegers && length > 100) {
56
- return radixSort(result, ascending);
65
+ // For medium arrays, quicksort is faster than radix sort
66
+ // due to typed array allocation overhead
67
+ if (length < 4096) {
68
+ if (hasNaN) {
69
+ return handleNaNSort(result, ascending);
70
+ }
71
+ numericQuickSort(result, 0, length - 1, ascending);
72
+ return result;
73
+ }
74
+ // Use IEEE 754 Float64 radix sort for large arrays
75
+ return float64RadixSort(result, ascending, hasNaN);
76
+ };
77
+ /**
78
+ * IEEE 754 Float64 radix sort
79
+ * Works on all number types (integers and floats) by treating
80
+ * the 64-bit IEEE 754 bit pattern as a sortable unsigned integer.
81
+ *
82
+ * Bit transformation:
83
+ * - Positive numbers (sign bit 0): flip only the sign bit
84
+ * - Negative numbers (sign bit 1): flip ALL 64 bits
85
+ * After this transformation, unsigned integer comparison matches
86
+ * the original floating-point numerical order.
87
+ */
88
+ const float64RadixSort = (array, ascending, hasNaN) => {
89
+ const length = array.length;
90
+ const sourceBuffer = new ArrayBuffer(length * 8);
91
+ const sourceF64 = new Float64Array(sourceBuffer);
92
+ const sourceU32 = new Uint32Array(sourceBuffer);
93
+ let validLength;
94
+ if (hasNaN) {
95
+ let writeIndex = 0;
96
+ for (let index = 0; index < length; index++) {
97
+ const v = array[index];
98
+ // biome-ignore lint/suspicious/noSelfCompare: NaN detection
99
+ if (v === v) {
100
+ sourceF64[writeIndex++] = v;
101
+ }
102
+ }
103
+ validLength = writeIndex;
104
+ }
105
+ else {
106
+ for (let index = 0; index < length; index++) {
107
+ sourceF64[index] = array[index];
108
+ }
109
+ validLength = length;
110
+ }
111
+ if (validLength === 0) {
112
+ return array;
113
+ }
114
+ // Transform IEEE 754 bit patterns to sortable unsigned form
115
+ for (let index = 0; index < validLength; index++) {
116
+ const hiIndex = index * 2 + 1;
117
+ const loIndex = index * 2;
118
+ if (sourceU32[hiIndex] & 0x80_00_00_00) {
119
+ sourceU32[hiIndex] = ~sourceU32[hiIndex] >>> 0;
120
+ sourceU32[loIndex] = ~sourceU32[loIndex] >>> 0;
121
+ }
122
+ else {
123
+ sourceU32[hiIndex] ^= 0x80_00_00_00;
124
+ }
125
+ }
126
+ const destinationBuffer = new ArrayBuffer(validLength * 8);
127
+ const destinationU32 = new Uint32Array(destinationBuffer);
128
+ const count = new Uint32Array(256);
129
+ let currentSource = sourceU32;
130
+ let currentDestination = destinationU32;
131
+ let resultInSource = true;
132
+ // 8-pass LSD radix sort (8 bits per pass)
133
+ // Passes 0-3: low 32-bit word (index i*2)
134
+ // Passes 4-7: high 32-bit word (index i*2+1)
135
+ for (let pass = 0; pass < 8; pass++) {
136
+ count.fill(0);
137
+ const wordOffset = pass < 4 ? 0 : 1;
138
+ const shift = (pass % 4) * 8;
139
+ for (let index = 0; index < validLength; index++) {
140
+ count[(currentSource[index * 2 + wordOffset] >>> shift) & 0xff]++;
141
+ }
142
+ // Skip pass if all elements have the same byte value
143
+ let skipPass = false;
144
+ for (let index = 0; index < 256; index++) {
145
+ if (count[index] === validLength) {
146
+ skipPass = true;
147
+ break;
148
+ }
149
+ }
150
+ if (skipPass) {
151
+ continue;
152
+ }
153
+ // Prefix sum (reverse for descending sort)
154
+ if (ascending) {
155
+ for (let index = 1; index < 256; index++) {
156
+ count[index] += count[index - 1];
157
+ }
158
+ }
159
+ else {
160
+ for (let index = 254; index >= 0; index--) {
161
+ count[index] += count[index + 1];
162
+ }
163
+ }
164
+ // Scatter (backward for stability)
165
+ for (let index = validLength - 1; index >= 0; index--) {
166
+ const byte = (currentSource[index * 2 + wordOffset] >>> shift) & 0xff;
167
+ const pos = --count[byte];
168
+ currentDestination[pos * 2] = currentSource[index * 2];
169
+ currentDestination[pos * 2 + 1] = currentSource[index * 2 + 1];
170
+ }
171
+ // Ping-pong swap
172
+ const temporary = currentSource;
173
+ currentSource = currentDestination;
174
+ currentDestination = temporary;
175
+ resultInSource = !resultInSource;
176
+ }
177
+ // Determine which buffer holds the result
178
+ const resultU32 = currentSource;
179
+ const resultBuffer = resultInSource ? sourceBuffer : destinationBuffer;
180
+ const resultF64 = new Float64Array(resultBuffer);
181
+ // Reverse bit transformation
182
+ for (let index = 0; index < validLength; index++) {
183
+ const hiIndex = index * 2 + 1;
184
+ if (resultU32[hiIndex] & 0x80_00_00_00) {
185
+ resultU32[hiIndex] ^= 0x80_00_00_00;
186
+ }
187
+ else {
188
+ resultU32[hiIndex] = ~resultU32[hiIndex] >>> 0;
189
+ resultU32[index * 2] = ~resultU32[index * 2] >>> 0;
190
+ }
191
+ }
192
+ // Copy results back
193
+ for (let index = 0; index < validLength; index++) {
194
+ array[index] = resultF64[index];
57
195
  }
58
- // Fall back to optimized quicksort for floating point
59
- return numericQuickSort(result, 0, length - 1, ascending);
196
+ // Append NaN values at the end
197
+ for (let index = validLength; index < length; index++) {
198
+ array[index] = Number.NaN;
199
+ }
200
+ return array;
60
201
  };
61
202
  /**
62
203
  * Inline sort for 3 elements
@@ -65,25 +206,38 @@ const inlineSort3 = (array, ascending) => {
65
206
  let a = array[0];
66
207
  let b = array[1];
67
208
  let c = array[2];
209
+ let temporary;
68
210
  if (ascending) {
69
211
  if (a > b) {
70
- [a, b] = [b, a];
212
+ temporary = a;
213
+ a = b;
214
+ b = temporary;
71
215
  }
72
216
  if (b > c) {
73
- [b, c] = [c, b];
217
+ temporary = b;
218
+ b = c;
219
+ c = temporary;
74
220
  if (a > b) {
75
- [a, b] = [b, a];
221
+ temporary = a;
222
+ a = b;
223
+ b = temporary;
76
224
  }
77
225
  }
78
226
  }
79
227
  else {
80
228
  if (a < b) {
81
- [a, b] = [b, a];
229
+ temporary = a;
230
+ a = b;
231
+ b = temporary;
82
232
  }
83
233
  if (b < c) {
84
- [b, c] = [c, b];
234
+ temporary = b;
235
+ b = c;
236
+ c = temporary;
85
237
  if (a < b) {
86
- [a, b] = [b, a];
238
+ temporary = a;
239
+ a = b;
240
+ b = temporary;
87
241
  }
88
242
  }
89
243
  }
@@ -97,7 +251,9 @@ const inlineSort3 = (array, ascending) => {
97
251
  const handleNaNSort = (array, ascending) => {
98
252
  const valid = [];
99
253
  let nanCount = 0;
100
- for (const element of array) {
254
+ let index = 0;
255
+ while (index < array.length) {
256
+ const element = array[index];
101
257
  // biome-ignore lint/suspicious/noSelfCompare: ignore
102
258
  if (element === element) {
103
259
  valid.push(element);
@@ -105,6 +261,7 @@ const handleNaNSort = (array, ascending) => {
105
261
  else {
106
262
  nanCount++;
107
263
  }
264
+ index++;
108
265
  }
109
266
  numericQuickSort(valid, 0, valid.length - 1, ascending);
110
267
  // NaN values go to the end
@@ -124,8 +281,10 @@ const countingSort = (array, min, max, ascending) => {
124
281
  const range = max - min + 1;
125
282
  const count = new Uint32Array(range);
126
283
  // Count occurrences
127
- for (const element of array) {
128
- count[element - min]++;
284
+ let index_ = 0;
285
+ while (index_ < array.length) {
286
+ count[array[index_] - min]++;
287
+ index_++;
129
288
  }
130
289
  // Reconstruct array
131
290
  let index = 0;
@@ -149,108 +308,6 @@ const countingSort = (array, min, max, ascending) => {
149
308
  }
150
309
  return array;
151
310
  };
152
- /**
153
- * Radix sort for integers
154
- */
155
- const radixSort = (array, ascending) => {
156
- const length = array.length;
157
- // Separate positive and negative numbers
158
- const positive = [];
159
- const negative = [];
160
- let zeroCount = 0;
161
- for (let index_ = 0; index_ < length; index_++) {
162
- if (array[index_] > 0) {
163
- positive.push(array[index_]);
164
- }
165
- else if (array[index_] < 0) {
166
- negative.push(-array[index_]);
167
- }
168
- else {
169
- zeroCount++;
170
- }
171
- }
172
- // Sort positive numbers
173
- if (positive.length > 0) {
174
- radixSortPositive(positive);
175
- }
176
- // Sort negative numbers
177
- if (negative.length > 0) {
178
- radixSortPositive(negative);
179
- }
180
- // Merge results
181
- let index = 0;
182
- if (ascending) {
183
- // Negative numbers first (in reverse order)
184
- for (let index_ = negative.length - 1; index_ >= 0; index_--) {
185
- array[index++] = -negative[index_];
186
- }
187
- // Zeros
188
- for (let index_ = 0; index_ < zeroCount; index_++) {
189
- array[index++] = 0;
190
- }
191
- // Positive numbers
192
- for (const element of positive) {
193
- array[index++] = element;
194
- }
195
- }
196
- else {
197
- // Positive numbers first (in reverse order)
198
- for (let index_ = positive.length - 1; index_ >= 0; index_--) {
199
- array[index++] = positive[index_];
200
- }
201
- // Zeros
202
- for (let index_ = 0; index_ < zeroCount; index_++) {
203
- array[index++] = 0;
204
- }
205
- // Negative numbers
206
- for (const element of negative) {
207
- array[index++] = -element;
208
- }
209
- }
210
- return array;
211
- };
212
- /**
213
- * Radix sort for positive integers
214
- */
215
- const radixSortPositive = (array) => {
216
- const length = array.length;
217
- if (length <= 1) {
218
- return;
219
- }
220
- // Find maximum to determine number of digits
221
- let max = array[0];
222
- for (let index = 1; index < length; index++) {
223
- if (array[index] > max) {
224
- max = array[index];
225
- }
226
- }
227
- // Use typed arrays for better performance
228
- const output = new Float64Array(length);
229
- const count = new Uint32Array(256);
230
- // Process 8 bits at a time
231
- for (let shift = 0; max >> shift > 0; shift += 8) {
232
- // Reset count array
233
- count.fill(0);
234
- // Count occurrences
235
- for (let index = 0; index < length; index++) {
236
- const digit = (array[index] >> shift) & 0xff;
237
- count[digit]++;
238
- }
239
- // Change count[i] to actual position
240
- for (let index = 1; index < 256; index++) {
241
- count[index] += count[index - 1];
242
- }
243
- // Build output array
244
- for (let index = length - 1; index >= 0; index--) {
245
- const digit = (array[index] >> shift) & 0xff;
246
- output[--count[digit]] = array[index];
247
- }
248
- // Copy back
249
- for (let index = 0; index < length; index++) {
250
- array[index] = output[index];
251
- }
252
- }
253
- };
254
311
  /**
255
312
  * Optimized quicksort for numbers
256
313
  */
@@ -312,30 +369,45 @@ const numericInsertionSort = (array, low, high, ascending) => {
312
369
  const numericPartition = (array, low, high, ascending) => {
313
370
  // Median-of-three pivot selection
314
371
  const mid = low + ((high - low) >> 1);
372
+ let temporary;
315
373
  if (ascending) {
316
374
  if (array[mid] < array[low]) {
317
- [array[low], array[mid]] = [array[mid], array[low]];
375
+ temporary = array[low];
376
+ array[low] = array[mid];
377
+ array[mid] = temporary;
318
378
  }
319
379
  if (array[high] < array[low]) {
320
- [array[low], array[high]] = [array[high], array[low]];
380
+ temporary = array[low];
381
+ array[low] = array[high];
382
+ array[high] = temporary;
321
383
  }
322
384
  if (array[high] < array[mid]) {
323
- [array[mid], array[high]] = [array[high], array[mid]];
385
+ temporary = array[mid];
386
+ array[mid] = array[high];
387
+ array[high] = temporary;
324
388
  }
325
389
  }
326
390
  else {
327
391
  if (array[mid] > array[low]) {
328
- [array[low], array[mid]] = [array[mid], array[low]];
392
+ temporary = array[low];
393
+ array[low] = array[mid];
394
+ array[mid] = temporary;
329
395
  }
330
396
  if (array[high] > array[low]) {
331
- [array[low], array[high]] = [array[high], array[low]];
397
+ temporary = array[low];
398
+ array[low] = array[high];
399
+ array[high] = temporary;
332
400
  }
333
401
  if (array[high] > array[mid]) {
334
- [array[mid], array[high]] = [array[high], array[mid]];
402
+ temporary = array[mid];
403
+ array[mid] = array[high];
404
+ array[high] = temporary;
335
405
  }
336
406
  }
337
407
  // Move pivot to end-1
338
- [array[mid], array[high - 1]] = [array[high - 1], array[mid]];
408
+ temporary = array[mid];
409
+ array[mid] = array[high - 1];
410
+ array[high - 1] = temporary;
339
411
  const pivot = array[high - 1];
340
412
  let index = low;
341
413
  let index_ = high - 1;
@@ -350,7 +422,9 @@ const numericPartition = (array, low, high, ascending) => {
350
422
  if (index >= index_) {
351
423
  break;
352
424
  }
353
- [array[index], array[index_]] = [array[index_], array[index]];
425
+ temporary = array[index];
426
+ array[index] = array[index_];
427
+ array[index_] = temporary;
354
428
  }
355
429
  }
356
430
  else {
@@ -364,10 +438,14 @@ const numericPartition = (array, low, high, ascending) => {
364
438
  if (index >= index_) {
365
439
  break;
366
440
  }
367
- [array[index], array[index_]] = [array[index_], array[index]];
441
+ temporary = array[index];
442
+ array[index] = array[index_];
443
+ array[index_] = temporary;
368
444
  }
369
445
  }
370
- [array[index], array[high - 1]] = [array[high - 1], array[index]];
446
+ temporary = array[index];
447
+ array[index] = array[high - 1];
448
+ array[high - 1] = temporary;
371
449
  return index;
372
450
  };
373
451
  //# sourceMappingURL=ultraNumberSort.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ultraNumberSort.js","sourceRoot":"","sources":["../../src/Array/ultraNumberSort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ultraNumberSort.js","sourceRoot":"","sources":["../../src/Array/ultraNumberSort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A deferred promise with externally accessible resolve and reject
3
+ */
4
+ export interface Deferred<T> {
5
+ promise: Promise<T>;
6
+ resolve: (value: T | PromiseLike<T>) => void;
7
+ reject: (reason?: unknown) => void;
8
+ }
9
+ /**
10
+ * Creates a deferred promise whose resolve and reject can be
11
+ * called externally
12
+ * @returns {Deferred<T>} An object with promise, resolve, and reject
13
+ * @example
14
+ * const d = defer<number>();
15
+ * d.resolve(42);
16
+ * const value = await d.promise;
17
+ */
18
+ export declare const defer: <T>() => Deferred<T>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Creates a deferred promise whose resolve and reject can be
3
+ * called externally
4
+ * @returns {Deferred<T>} An object with promise, resolve, and reject
5
+ * @example
6
+ * const d = defer<number>();
7
+ * d.resolve(42);
8
+ * const value = await d.promise;
9
+ */
10
+ export const defer = () => {
11
+ let resolve;
12
+ let reject;
13
+ const promise = new Promise((resolver, rejector) => {
14
+ resolve = resolver;
15
+ reject = rejector;
16
+ });
17
+ return { promise, resolve, reject };
18
+ };
19
+ //# sourceMappingURL=defer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defer.js","sourceRoot":"","sources":["../../src/Async/defer.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAmB,EAAE;IACxC,IAAI,OAA6C,CAAC;IAClD,IAAI,MAAmC,CAAC;IAExC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACpD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./defer";
2
+ export * from "./parallel";
3
+ export * from "./sleep";
4
+ export * from "./timeout";
@@ -0,0 +1,5 @@
1
+ export * from "./defer";
2
+ export * from "./parallel";
3
+ export * from "./sleep";
4
+ export * from "./timeout";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Async/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Executes async functions in parallel with a concurrency limit
3
+ * @param {number} limit - Maximum number of concurrent executions
4
+ * @param {T[]} items - The items to process
5
+ * @param {(item: T, index: number) => Promise<U>} function_ - The async function to apply to each item
6
+ * @returns {Promise<U[]>} Results in the same order as the input items
7
+ * @example
8
+ * const results = await parallel(2, [1, 2, 3], async (n) => n * 2);
9
+ */
10
+ export declare const parallel: <T, U>(limit: number, items: T[], function_: (item: T, index: number) => Promise<U>) => Promise<U[]>;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Executes async functions in parallel with a concurrency limit
3
+ * @param {number} limit - Maximum number of concurrent executions
4
+ * @param {T[]} items - The items to process
5
+ * @param {(item: T, index: number) => Promise<U>} function_ - The async function to apply to each item
6
+ * @returns {Promise<U[]>} Results in the same order as the input items
7
+ * @example
8
+ * const results = await parallel(2, [1, 2, 3], async (n) => n * 2);
9
+ */
10
+ export const parallel = (limit, items, function_) => {
11
+ const results = Array.from({ length: items.length });
12
+ let nextIndex = 0;
13
+ let resolvedCount = 0;
14
+ return new Promise((resolve, reject) => {
15
+ if (items.length === 0) {
16
+ resolve(results);
17
+ return;
18
+ }
19
+ const runNext = () => {
20
+ if (nextIndex >= items.length) {
21
+ return;
22
+ }
23
+ const currentIndex = nextIndex;
24
+ nextIndex += 1;
25
+ function_(items[currentIndex], currentIndex)
26
+ .then((result) => {
27
+ results[currentIndex] = result;
28
+ resolvedCount += 1;
29
+ if (resolvedCount === items.length) {
30
+ resolve(results);
31
+ }
32
+ else {
33
+ runNext();
34
+ }
35
+ })
36
+ .catch(reject);
37
+ };
38
+ const initialBatch = Math.min(limit, items.length);
39
+ for (let index = 0; index < initialBatch; index += 1) {
40
+ runNext();
41
+ }
42
+ });
43
+ };
44
+ //# sourceMappingURL=parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/Async/parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAa,EACb,KAAU,EACV,SAAiD,EACnC,EAAE;IAChB,MAAM,OAAO,GAAQ,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,MAAM,YAAY,GAAG,SAAS,CAAC;YAC/B,SAAS,IAAI,CAAC,CAAC;YAEf,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;iBACzC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACf,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;gBAC/B,aAAa,IAAI,CAAC,CAAC;gBAEnB,IAAI,aAAa,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;oBACnC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns a promise that resolves after the specified milliseconds
3
+ * @param {number} ms - The number of milliseconds to sleep
4
+ * @returns {Promise<void>} A promise that resolves after the delay
5
+ * @example
6
+ * await sleep(1000);
7
+ */
8
+ export declare const sleep: (ms: number) => Promise<void>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a promise that resolves after the specified milliseconds
3
+ * @param {number} ms - The number of milliseconds to sleep
4
+ * @returns {Promise<void>} A promise that resolves after the delay
5
+ * @example
6
+ * await sleep(1000);
7
+ */
8
+ export const sleep = (ms) => new Promise((resolve) => {
9
+ setTimeout(resolve, ms);
10
+ });
11
+ //# sourceMappingURL=sleep.js.map