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
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ultraNumberSort = void 0;
7
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
8
7
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
9
8
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
9
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -19,18 +18,16 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
19
18
  */
20
19
  var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array) {
21
20
  var ascending = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
22
- var result = _toConsumableArray(array);
23
- var length = result.length;
21
+ var length = array.length;
24
22
  if (length <= 1) {
25
- return result;
23
+ return _toConsumableArray(array);
26
24
  }
27
-
28
- // For tiny arrays, use optimized inline sort
25
+ var result = _toConsumableArray(array);
29
26
  if (length === 2) {
30
27
  if (result[0] > result[1] === ascending) {
31
- var _ref = [result[1], result[0]];
32
- result[0] = _ref[0];
33
- result[1] = _ref[1];
28
+ var temporary = result[0];
29
+ result[0] = result[1];
30
+ result[1] = temporary;
34
31
  }
35
32
  return result;
36
33
  }
@@ -39,13 +36,25 @@ var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array)
39
36
  return result;
40
37
  }
41
38
 
39
+ // For small-medium arrays, skip integer/range analysis
40
+ if (length <= 128) {
41
+ for (var index = 0; index < length; index++) {
42
+ // biome-ignore lint/suspicious/noSelfCompare: NaN detection
43
+ if (result[index] !== result[index]) {
44
+ return handleNaNSort(result, ascending);
45
+ }
46
+ }
47
+ numericQuickSort(result, 0, length - 1, ascending);
48
+ return result;
49
+ }
50
+
42
51
  // Check if all numbers are integers and find range
43
52
  var allIntegers = true;
44
53
  var min = result[0];
45
54
  var max = result[0];
46
55
  var hasNaN = false;
47
- for (var index = 0; index < length; index++) {
48
- var value = result[index];
56
+ for (var _index = 0; _index < length; _index++) {
57
+ var value = result[_index];
49
58
  // biome-ignore lint/suspicious/noSelfCompare: ignore
50
59
  if (value !== value) {
51
60
  hasNaN = true;
@@ -62,23 +71,155 @@ var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array)
62
71
  }
63
72
  }
64
73
 
65
- // Handle NaN values
74
+ // For small integer ranges, use counting sort
75
+ if (!hasNaN && allIntegers && max - min < length * 2 && max - min < 1000000) {
76
+ return countingSort(result, min, max, ascending);
77
+ }
78
+
79
+ // For medium arrays, quicksort is faster than radix sort
80
+ // due to typed array allocation overhead
81
+ if (length < 4096) {
82
+ if (hasNaN) {
83
+ return handleNaNSort(result, ascending);
84
+ }
85
+ numericQuickSort(result, 0, length - 1, ascending);
86
+ return result;
87
+ }
88
+
89
+ // Use IEEE 754 Float64 radix sort for large arrays
90
+ return float64RadixSort(result, ascending, hasNaN);
91
+ };
92
+
93
+ /**
94
+ * IEEE 754 Float64 radix sort
95
+ * Works on all number types (integers and floats) by treating
96
+ * the 64-bit IEEE 754 bit pattern as a sortable unsigned integer.
97
+ *
98
+ * Bit transformation:
99
+ * - Positive numbers (sign bit 0): flip only the sign bit
100
+ * - Negative numbers (sign bit 1): flip ALL 64 bits
101
+ * After this transformation, unsigned integer comparison matches
102
+ * the original floating-point numerical order.
103
+ */
104
+ var float64RadixSort = function float64RadixSort(array, ascending, hasNaN) {
105
+ var length = array.length;
106
+ var sourceBuffer = new ArrayBuffer(length * 8);
107
+ var sourceF64 = new Float64Array(sourceBuffer);
108
+ var sourceU32 = new Uint32Array(sourceBuffer);
109
+ var validLength;
66
110
  if (hasNaN) {
67
- return handleNaNSort(result, ascending);
111
+ var writeIndex = 0;
112
+ for (var index = 0; index < length; index++) {
113
+ var v = array[index];
114
+ // biome-ignore lint/suspicious/noSelfCompare: NaN detection
115
+ if (v === v) {
116
+ sourceF64[writeIndex++] = v;
117
+ }
118
+ }
119
+ validLength = writeIndex;
120
+ } else {
121
+ for (var _index2 = 0; _index2 < length; _index2++) {
122
+ sourceF64[_index2] = array[_index2];
123
+ }
124
+ validLength = length;
125
+ }
126
+ if (validLength === 0) {
127
+ return array;
68
128
  }
69
129
 
70
- // For small integer ranges, use counting sort
71
- if (allIntegers && max - min < length * 2 && max - min < 1000000) {
72
- return countingSort(result, min, max, ascending);
130
+ // Transform IEEE 754 bit patterns to sortable unsigned form
131
+ for (var _index3 = 0; _index3 < validLength; _index3++) {
132
+ var hiIndex = _index3 * 2 + 1;
133
+ var loIndex = _index3 * 2;
134
+ if (sourceU32[hiIndex] & 0x80000000) {
135
+ sourceU32[hiIndex] = ~sourceU32[hiIndex] >>> 0;
136
+ sourceU32[loIndex] = ~sourceU32[loIndex] >>> 0;
137
+ } else {
138
+ sourceU32[hiIndex] ^= 0x80000000;
139
+ }
140
+ }
141
+ var destinationBuffer = new ArrayBuffer(validLength * 8);
142
+ var destinationU32 = new Uint32Array(destinationBuffer);
143
+ var count = new Uint32Array(256);
144
+ var currentSource = sourceU32;
145
+ var currentDestination = destinationU32;
146
+ var resultInSource = true;
147
+
148
+ // 8-pass LSD radix sort (8 bits per pass)
149
+ // Passes 0-3: low 32-bit word (index i*2)
150
+ // Passes 4-7: high 32-bit word (index i*2+1)
151
+ for (var pass = 0; pass < 8; pass++) {
152
+ count.fill(0);
153
+ var wordOffset = pass < 4 ? 0 : 1;
154
+ var shift = pass % 4 * 8;
155
+ for (var _index4 = 0; _index4 < validLength; _index4++) {
156
+ count[currentSource[_index4 * 2 + wordOffset] >>> shift & 0xff]++;
157
+ }
158
+
159
+ // Skip pass if all elements have the same byte value
160
+ var skipPass = false;
161
+ for (var _index5 = 0; _index5 < 256; _index5++) {
162
+ if (count[_index5] === validLength) {
163
+ skipPass = true;
164
+ break;
165
+ }
166
+ }
167
+ if (skipPass) {
168
+ continue;
169
+ }
170
+
171
+ // Prefix sum (reverse for descending sort)
172
+ if (ascending) {
173
+ for (var _index6 = 1; _index6 < 256; _index6++) {
174
+ count[_index6] += count[_index6 - 1];
175
+ }
176
+ } else {
177
+ for (var _index7 = 254; _index7 >= 0; _index7--) {
178
+ count[_index7] += count[_index7 + 1];
179
+ }
180
+ }
181
+
182
+ // Scatter (backward for stability)
183
+ for (var _index8 = validLength - 1; _index8 >= 0; _index8--) {
184
+ var _byte = currentSource[_index8 * 2 + wordOffset] >>> shift & 0xff;
185
+ var pos = --count[_byte];
186
+ currentDestination[pos * 2] = currentSource[_index8 * 2];
187
+ currentDestination[pos * 2 + 1] = currentSource[_index8 * 2 + 1];
188
+ }
189
+
190
+ // Ping-pong swap
191
+ var temporary = currentSource;
192
+ currentSource = currentDestination;
193
+ currentDestination = temporary;
194
+ resultInSource = !resultInSource;
195
+ }
196
+
197
+ // Determine which buffer holds the result
198
+ var resultU32 = currentSource;
199
+ var resultBuffer = resultInSource ? sourceBuffer : destinationBuffer;
200
+ var resultF64 = new Float64Array(resultBuffer);
201
+
202
+ // Reverse bit transformation
203
+ for (var _index9 = 0; _index9 < validLength; _index9++) {
204
+ var _hiIndex = _index9 * 2 + 1;
205
+ if (resultU32[_hiIndex] & 0x80000000) {
206
+ resultU32[_hiIndex] ^= 0x80000000;
207
+ } else {
208
+ resultU32[_hiIndex] = ~resultU32[_hiIndex] >>> 0;
209
+ resultU32[_index9 * 2] = ~resultU32[_index9 * 2] >>> 0;
210
+ }
73
211
  }
74
212
 
75
- // For larger arrays, use radix sort if applicable
76
- if (allIntegers && length > 100) {
77
- return radixSort(result, ascending);
213
+ // Copy results back
214
+ for (var _index0 = 0; _index0 < validLength; _index0++) {
215
+ array[_index0] = resultF64[_index0];
78
216
  }
79
217
 
80
- // Fall back to optimized quicksort for floating point
81
- return numericQuickSort(result, 0, length - 1, ascending);
218
+ // Append NaN values at the end
219
+ for (var _index1 = validLength; _index1 < length; _index1++) {
220
+ array[_index1] = Number.NaN;
221
+ }
222
+ return array;
82
223
  };
83
224
 
84
225
  /**
@@ -88,36 +229,37 @@ var inlineSort3 = function inlineSort3(array, ascending) {
88
229
  var a = array[0];
89
230
  var b = array[1];
90
231
  var c = array[2];
232
+ var temporary;
91
233
  if (ascending) {
92
234
  if (a > b) {
93
- var _ref2 = [b, a];
94
- a = _ref2[0];
95
- b = _ref2[1];
235
+ temporary = a;
236
+ a = b;
237
+ b = temporary;
96
238
  }
97
239
  if (b > c) {
98
- var _ref3 = [c, b];
99
- b = _ref3[0];
100
- c = _ref3[1];
240
+ temporary = b;
241
+ b = c;
242
+ c = temporary;
101
243
  if (a > b) {
102
- var _ref4 = [b, a];
103
- a = _ref4[0];
104
- b = _ref4[1];
244
+ temporary = a;
245
+ a = b;
246
+ b = temporary;
105
247
  }
106
248
  }
107
249
  } else {
108
250
  if (a < b) {
109
- var _ref5 = [b, a];
110
- a = _ref5[0];
111
- b = _ref5[1];
251
+ temporary = a;
252
+ a = b;
253
+ b = temporary;
112
254
  }
113
255
  if (b < c) {
114
- var _ref6 = [c, b];
115
- b = _ref6[0];
116
- c = _ref6[1];
256
+ temporary = b;
257
+ b = c;
258
+ c = temporary;
117
259
  if (a < b) {
118
- var _ref7 = [b, a];
119
- a = _ref7[0];
120
- b = _ref7[1];
260
+ temporary = a;
261
+ a = b;
262
+ b = temporary;
121
263
  }
122
264
  }
123
265
  }
@@ -132,33 +274,27 @@ var inlineSort3 = function inlineSort3(array, ascending) {
132
274
  var handleNaNSort = function handleNaNSort(array, ascending) {
133
275
  var valid = [];
134
276
  var nanCount = 0;
135
- var _iterator = _createForOfIteratorHelper(array),
136
- _step;
137
- try {
138
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
139
- var element = _step.value;
140
- // biome-ignore lint/suspicious/noSelfCompare: ignore
141
- if (element === element) {
142
- valid.push(element);
143
- } else {
144
- nanCount++;
145
- }
277
+ var index = 0;
278
+ while (index < array.length) {
279
+ var element = array[index];
280
+ // biome-ignore lint/suspicious/noSelfCompare: ignore
281
+ if (element === element) {
282
+ valid.push(element);
283
+ } else {
284
+ nanCount++;
146
285
  }
147
- } catch (err) {
148
- _iterator.e(err);
149
- } finally {
150
- _iterator.f();
286
+ index++;
151
287
  }
152
288
  numericQuickSort(valid, 0, valid.length - 1, ascending);
153
289
 
154
290
  // NaN values go to the end
155
- for (var index = 0; index < nanCount; index++) {
291
+ for (var _index10 = 0; _index10 < nanCount; _index10++) {
156
292
  valid.push(Number.NaN);
157
293
  }
158
294
 
159
295
  // Copy back
160
- for (var _index = 0; _index < array.length; _index++) {
161
- array[_index] = valid[_index];
296
+ for (var _index11 = 0; _index11 < array.length; _index11++) {
297
+ array[_index11] = valid[_index11];
162
298
  }
163
299
  return array;
164
300
  };
@@ -171,33 +307,26 @@ var countingSort = function countingSort(array, min, max, ascending) {
171
307
  var count = new Uint32Array(range);
172
308
 
173
309
  // Count occurrences
174
- var _iterator2 = _createForOfIteratorHelper(array),
175
- _step2;
176
- try {
177
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
178
- var element = _step2.value;
179
- count[element - min]++;
180
- }
181
-
182
- // Reconstruct array
183
- } catch (err) {
184
- _iterator2.e(err);
185
- } finally {
186
- _iterator2.f();
310
+ var index_ = 0;
311
+ while (index_ < array.length) {
312
+ count[array[index_] - min]++;
313
+ index_++;
187
314
  }
315
+
316
+ // Reconstruct array
188
317
  var index = 0;
189
318
  if (ascending) {
190
- for (var index_ = 0; index_ < range; index_++) {
191
- var cnt = count[index_];
192
- var value = index_ + min;
319
+ for (var _index_ = 0; _index_ < range; _index_++) {
320
+ var cnt = count[_index_];
321
+ var value = _index_ + min;
193
322
  for (var index__ = 0; index__ < cnt; index__++) {
194
323
  array[index++] = value;
195
324
  }
196
325
  }
197
326
  } else {
198
- for (var _index_ = range - 1; _index_ >= 0; _index_--) {
199
- var _cnt = count[_index_];
200
- var _value = _index_ + min;
327
+ for (var _index_2 = range - 1; _index_2 >= 0; _index_2--) {
328
+ var _cnt = count[_index_2];
329
+ var _value = _index_2 + min;
201
330
  for (var _index__ = 0; _index__ < _cnt; _index__++) {
202
331
  array[index++] = _value;
203
332
  }
@@ -206,136 +335,6 @@ var countingSort = function countingSort(array, min, max, ascending) {
206
335
  return array;
207
336
  };
208
337
 
209
- /**
210
- * Radix sort for integers
211
- */
212
- var radixSort = function radixSort(array, ascending) {
213
- var length = array.length;
214
-
215
- // Separate positive and negative numbers
216
- var positive = [];
217
- var negative = [];
218
- var zeroCount = 0;
219
- for (var index_ = 0; index_ < length; index_++) {
220
- if (array[index_] > 0) {
221
- positive.push(array[index_]);
222
- } else if (array[index_] < 0) {
223
- negative.push(-array[index_]);
224
- } else {
225
- zeroCount++;
226
- }
227
- }
228
-
229
- // Sort positive numbers
230
- if (positive.length > 0) {
231
- radixSortPositive(positive);
232
- }
233
-
234
- // Sort negative numbers
235
- if (negative.length > 0) {
236
- radixSortPositive(negative);
237
- }
238
-
239
- // Merge results
240
- var index = 0;
241
- if (ascending) {
242
- // Negative numbers first (in reverse order)
243
- for (var _index_2 = negative.length - 1; _index_2 >= 0; _index_2--) {
244
- array[index++] = -negative[_index_2];
245
- }
246
- // Zeros
247
- for (var _index_3 = 0; _index_3 < zeroCount; _index_3++) {
248
- array[index++] = 0;
249
- }
250
- // Positive numbers
251
- var _iterator3 = _createForOfIteratorHelper(positive),
252
- _step3;
253
- try {
254
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
255
- var element = _step3.value;
256
- array[index++] = element;
257
- }
258
- } catch (err) {
259
- _iterator3.e(err);
260
- } finally {
261
- _iterator3.f();
262
- }
263
- } else {
264
- // Positive numbers first (in reverse order)
265
- for (var _index_4 = positive.length - 1; _index_4 >= 0; _index_4--) {
266
- array[index++] = positive[_index_4];
267
- }
268
- // Zeros
269
- for (var _index_5 = 0; _index_5 < zeroCount; _index_5++) {
270
- array[index++] = 0;
271
- }
272
- // Negative numbers
273
- var _iterator4 = _createForOfIteratorHelper(negative),
274
- _step4;
275
- try {
276
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
277
- var _element = _step4.value;
278
- array[index++] = -_element;
279
- }
280
- } catch (err) {
281
- _iterator4.e(err);
282
- } finally {
283
- _iterator4.f();
284
- }
285
- }
286
- return array;
287
- };
288
-
289
- /**
290
- * Radix sort for positive integers
291
- */
292
- var radixSortPositive = function radixSortPositive(array) {
293
- var length = array.length;
294
- if (length <= 1) {
295
- return;
296
- }
297
-
298
- // Find maximum to determine number of digits
299
- var max = array[0];
300
- for (var index = 1; index < length; index++) {
301
- if (array[index] > max) {
302
- max = array[index];
303
- }
304
- }
305
-
306
- // Use typed arrays for better performance
307
- var output = new Float64Array(length);
308
- var count = new Uint32Array(256);
309
-
310
- // Process 8 bits at a time
311
- for (var shift = 0; max >> shift > 0; shift += 8) {
312
- // Reset count array
313
- count.fill(0);
314
-
315
- // Count occurrences
316
- for (var _index2 = 0; _index2 < length; _index2++) {
317
- var digit = array[_index2] >> shift & 0xff;
318
- count[digit]++;
319
- }
320
-
321
- // Change count[i] to actual position
322
- for (var _index3 = 1; _index3 < 256; _index3++) {
323
- count[_index3] += count[_index3 - 1];
324
- }
325
-
326
- // Build output array
327
- for (var _index4 = length - 1; _index4 >= 0; _index4--) {
328
- var _digit = array[_index4] >> shift & 0xff;
329
- output[--count[_digit]] = array[_index4];
330
- }
331
-
332
- // Copy back
333
- for (var _index5 = 0; _index5 < length; _index5++) {
334
- array[_index5] = output[_index5];
335
- }
336
- }
337
- };
338
-
339
338
  /**
340
339
  * Optimized quicksort for numbers
341
340
  */
@@ -382,14 +381,14 @@ var numericInsertionSort = function numericInsertionSort(array, low, high, ascen
382
381
  array[index_ + 1] = key;
383
382
  }
384
383
  } else {
385
- for (var _index6 = low + 1; _index6 <= high; _index6++) {
386
- var _key = array[_index6];
387
- var _index_6 = _index6 - 1;
388
- while (_index_6 >= low && array[_index_6] < _key) {
389
- array[_index_6 + 1] = array[_index_6];
390
- _index_6--;
384
+ for (var _index12 = low + 1; _index12 <= high; _index12++) {
385
+ var _key = array[_index12];
386
+ var _index_3 = _index12 - 1;
387
+ while (_index_3 >= low && array[_index_3] < _key) {
388
+ array[_index_3 + 1] = array[_index_3];
389
+ _index_3--;
391
390
  }
392
- array[_index_6 + 1] = _key;
391
+ array[_index_3 + 1] = _key;
393
392
  }
394
393
  }
395
394
  };
@@ -400,44 +399,45 @@ var numericInsertionSort = function numericInsertionSort(array, low, high, ascen
400
399
  var numericPartition = function numericPartition(array, low, high, ascending) {
401
400
  // Median-of-three pivot selection
402
401
  var mid = low + (high - low >> 1);
402
+ var temporary;
403
403
  if (ascending) {
404
404
  if (array[mid] < array[low]) {
405
- var _ref8 = [array[mid], array[low]];
406
- array[low] = _ref8[0];
407
- array[mid] = _ref8[1];
405
+ temporary = array[low];
406
+ array[low] = array[mid];
407
+ array[mid] = temporary;
408
408
  }
409
409
  if (array[high] < array[low]) {
410
- var _ref9 = [array[high], array[low]];
411
- array[low] = _ref9[0];
412
- array[high] = _ref9[1];
410
+ temporary = array[low];
411
+ array[low] = array[high];
412
+ array[high] = temporary;
413
413
  }
414
414
  if (array[high] < array[mid]) {
415
- var _ref0 = [array[high], array[mid]];
416
- array[mid] = _ref0[0];
417
- array[high] = _ref0[1];
415
+ temporary = array[mid];
416
+ array[mid] = array[high];
417
+ array[high] = temporary;
418
418
  }
419
419
  } else {
420
420
  if (array[mid] > array[low]) {
421
- var _ref1 = [array[mid], array[low]];
422
- array[low] = _ref1[0];
423
- array[mid] = _ref1[1];
421
+ temporary = array[low];
422
+ array[low] = array[mid];
423
+ array[mid] = temporary;
424
424
  }
425
425
  if (array[high] > array[low]) {
426
- var _ref10 = [array[high], array[low]];
427
- array[low] = _ref10[0];
428
- array[high] = _ref10[1];
426
+ temporary = array[low];
427
+ array[low] = array[high];
428
+ array[high] = temporary;
429
429
  }
430
430
  if (array[high] > array[mid]) {
431
- var _ref11 = [array[high], array[mid]];
432
- array[mid] = _ref11[0];
433
- array[high] = _ref11[1];
431
+ temporary = array[mid];
432
+ array[mid] = array[high];
433
+ array[high] = temporary;
434
434
  }
435
435
  }
436
436
 
437
437
  // Move pivot to end-1
438
- var _ref12 = [array[high - 1], array[mid]];
439
- array[mid] = _ref12[0];
440
- array[high - 1] = _ref12[1];
438
+ temporary = array[mid];
439
+ array[mid] = array[high - 1];
440
+ array[high - 1] = temporary;
441
441
  var pivot = array[high - 1];
442
442
  var index = low;
443
443
  var index_ = high - 1;
@@ -452,9 +452,9 @@ var numericPartition = function numericPartition(array, low, high, ascending) {
452
452
  if (index >= index_) {
453
453
  break;
454
454
  }
455
- var _ref13 = [array[index_], array[index]];
456
- array[index] = _ref13[0];
457
- array[index_] = _ref13[1];
455
+ temporary = array[index];
456
+ array[index] = array[index_];
457
+ array[index_] = temporary;
458
458
  }
459
459
  } else {
460
460
  while (true) {
@@ -467,13 +467,13 @@ var numericPartition = function numericPartition(array, low, high, ascending) {
467
467
  if (index >= index_) {
468
468
  break;
469
469
  }
470
- var _ref14 = [array[index_], array[index]];
471
- array[index] = _ref14[0];
472
- array[index_] = _ref14[1];
470
+ temporary = array[index];
471
+ array[index] = array[index_];
472
+ array[index_] = temporary;
473
473
  }
474
474
  }
475
- var _ref15 = [array[high - 1], array[index]];
476
- array[index] = _ref15[0];
477
- array[high - 1] = _ref15[1];
475
+ temporary = array[index];
476
+ array[index] = array[high - 1];
477
+ array[high - 1] = temporary;
478
478
  return index;
479
479
  };
@@ -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,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defer = void 0;
7
+ /**
8
+ * A deferred promise with externally accessible resolve and reject
9
+ */
10
+
11
+ /**
12
+ * Creates a deferred promise whose resolve and reject can be
13
+ * called externally
14
+ * @returns {Deferred<T>} An object with promise, resolve, and reject
15
+ * @example
16
+ * const d = defer<number>();
17
+ * d.resolve(42);
18
+ * const value = await d.promise;
19
+ */
20
+ var defer = exports.defer = function defer() {
21
+ var resolve;
22
+ var reject;
23
+ var promise = new Promise(function (resolver, rejector) {
24
+ resolve = resolver;
25
+ reject = rejector;
26
+ });
27
+ return {
28
+ promise: promise,
29
+ resolve: resolve,
30
+ reject: reject
31
+ };
32
+ };
@@ -0,0 +1,4 @@
1
+ export * from "./defer";
2
+ export * from "./parallel";
3
+ export * from "./sleep";
4
+ export * from "./timeout";