umt 2.12.2 → 2.13.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.
- package/README.md +60 -0
- package/module/Array/arraysJoin.js +1 -1
- package/module/Array/arraysJoin.js.map +1 -1
- package/module/Array/chunk.js +1 -2
- package/module/Array/chunk.js.map +1 -1
- package/module/Array/generateNumberArray.js +13 -3
- package/module/Array/generateNumberArray.js.map +1 -1
- package/module/Array/getArraysDiff.js +5 -1
- package/module/Array/getArraysDiff.js.map +1 -1
- package/module/Array/mergeSort.js +45 -18
- package/module/Array/mergeSort.js.map +1 -1
- package/module/Array/pop.js +2 -1
- package/module/Array/pop.js.map +1 -1
- package/module/Array/randomSelect.js +8 -0
- package/module/Array/randomSelect.js.map +1 -1
- package/module/Array/sortingHelpers/rangeValidator.js +3 -2
- package/module/Array/sortingHelpers/rangeValidator.js.map +1 -1
- package/module/Array/timSort.js +25 -23
- package/module/Array/timSort.js.map +1 -1
- package/module/Array/ultraNumberSort.js +206 -133
- package/module/Array/ultraNumberSort.js.map +1 -1
- package/module/Async/defer.d.ts +18 -0
- package/module/Async/defer.js +19 -0
- package/module/Async/defer.js.map +1 -0
- package/module/Async/index.d.ts +4 -0
- package/module/Async/index.js +5 -0
- package/module/Async/index.js.map +1 -0
- package/module/Async/parallel.d.ts +10 -0
- package/module/Async/parallel.js +44 -0
- package/module/Async/parallel.js.map +1 -0
- package/module/Async/sleep.d.ts +8 -0
- package/module/Async/sleep.js +11 -0
- package/module/Async/sleep.js.map +1 -0
- package/module/Async/timeout.d.ts +10 -0
- package/module/Async/timeout.js +22 -0
- package/module/Async/timeout.js.map +1 -0
- package/module/Color/cmykToRgba.js +6 -7
- package/module/Color/cmykToRgba.js.map +1 -1
- package/module/Color/hexaToRgba.js +1 -8
- package/module/Color/hexaToRgba.js.map +1 -1
- package/module/Color/hslaToRgba.d.ts +0 -1
- package/module/Color/hslaToRgba.js +7 -22
- package/module/Color/hslaToRgba.js.map +1 -1
- package/module/Color/rgbaToCmyk.js +0 -11
- package/module/Color/rgbaToCmyk.js.map +1 -1
- package/module/Color/rgbaToHexA.js +2 -15
- package/module/Color/rgbaToHexA.js.map +1 -1
- package/module/Color/rgbaToHsla.d.ts +0 -1
- package/module/Color/rgbaToHsla.js +0 -12
- package/module/Color/rgbaToHsla.js.map +1 -1
- package/module/Crypto/constants.d.ts +2 -0
- package/module/Crypto/constants.js +3 -0
- package/module/Crypto/constants.js.map +1 -0
- package/module/Crypto/decodeBase32.js +2 -4
- package/module/Crypto/decodeBase32.js.map +1 -1
- package/module/Crypto/decodeBase58.js +2 -4
- package/module/Crypto/decodeBase58.js.map +1 -1
- package/module/Crypto/encodeBase32.js +2 -1
- package/module/Crypto/encodeBase32.js.map +1 -1
- package/module/Crypto/encodeBase58.js +2 -1
- package/module/Crypto/encodeBase58.js.map +1 -1
- package/module/DataStructure/index.d.ts +2 -0
- package/module/DataStructure/index.js +2 -0
- package/module/DataStructure/index.js.map +1 -1
- package/module/DataStructure/lruCache.d.ts +139 -0
- package/module/DataStructure/lruCache.js +172 -0
- package/module/DataStructure/lruCache.js.map +1 -0
- package/module/DataStructure/ttlCache.d.ts +139 -0
- package/module/DataStructure/ttlCache.js +172 -0
- package/module/DataStructure/ttlCache.js.map +1 -0
- package/module/Error/flatMapResult.d.ts +23 -0
- package/module/Error/flatMapResult.js +28 -0
- package/module/Error/flatMapResult.js.map +1 -0
- package/module/Error/index.d.ts +3 -0
- package/module/Error/index.js +3 -0
- package/module/Error/index.js.map +1 -1
- package/module/Error/mapResult.d.ts +21 -0
- package/module/Error/mapResult.js +27 -0
- package/module/Error/mapResult.js.map +1 -0
- package/module/Error/matchResult.d.ts +25 -0
- package/module/Error/matchResult.js +27 -0
- package/module/Error/matchResult.js.map +1 -0
- package/module/Error/safeExecute.d.ts +16 -3
- package/module/Error/safeExecute.js +5 -2
- package/module/Error/safeExecute.js.map +1 -1
- package/module/Function/debounce.d.ts +38 -0
- package/module/Function/debounce.js +67 -0
- package/module/Function/debounce.js.map +1 -0
- package/module/Function/index.d.ts +4 -0
- package/module/Function/index.js +4 -0
- package/module/Function/index.js.map +1 -1
- package/module/Function/memoize.d.ts +36 -0
- package/module/Function/memoize.js +54 -0
- package/module/Function/memoize.js.map +1 -0
- package/module/Function/once.d.ts +18 -0
- package/module/Function/once.js +29 -0
- package/module/Function/once.js.map +1 -0
- package/module/Function/throttle.d.ts +25 -0
- package/module/Function/throttle.js +55 -0
- package/module/Function/throttle.js.map +1 -0
- package/module/IP/cidrToLong.d.ts +0 -1
- package/module/IP/cidrToLong.js +0 -4
- package/module/IP/cidrToLong.js.map +1 -1
- package/module/IP/cidrToSubnetMask.d.ts +0 -1
- package/module/IP/cidrToSubnetMask.js +0 -1
- package/module/IP/cidrToSubnetMask.js.map +1 -1
- package/module/IP/getNetworkAddress.d.ts +0 -1
- package/module/IP/getNetworkAddress.js +2 -32
- package/module/IP/getNetworkAddress.js.map +1 -1
- package/module/IP/ipToBinaryString.d.ts +0 -1
- package/module/IP/ipToBinaryString.js +2 -25
- package/module/IP/ipToBinaryString.js.map +1 -1
- package/module/IP/ipToLong.d.ts +0 -1
- package/module/IP/ipToLong.js +0 -1
- package/module/IP/ipToLong.js.map +1 -1
- package/module/IP/isInRange.d.ts +0 -1
- package/module/IP/isInRange.js +5 -28
- package/module/IP/isInRange.js.map +1 -1
- package/module/IP/isPrivateIp.d.ts +0 -1
- package/module/IP/isPrivateIp.js +1 -10
- package/module/IP/isPrivateIp.js.map +1 -1
- package/module/IP/longToIp.d.ts +0 -1
- package/module/IP/longToIp.js +0 -8
- package/module/IP/longToIp.js.map +1 -1
- package/module/IP/subnetMaskToCidr.d.ts +0 -1
- package/module/IP/subnetMaskToCidr.js +2 -23
- package/module/IP/subnetMaskToCidr.js.map +1 -1
- package/module/Iterator/index.d.ts +3 -0
- package/module/Iterator/index.js +4 -0
- package/module/Iterator/index.js.map +1 -0
- package/module/Iterator/lazyFilter.d.ts +10 -0
- package/module/Iterator/lazyFilter.js +19 -0
- package/module/Iterator/lazyFilter.js.map +1 -0
- package/module/Iterator/lazyMap.d.ts +10 -0
- package/module/Iterator/lazyMap.js +17 -0
- package/module/Iterator/lazyMap.js.map +1 -0
- package/module/Iterator/lazyTake.d.ts +10 -0
- package/module/Iterator/lazyTake.js +20 -0
- package/module/Iterator/lazyTake.js.map +1 -0
- package/module/Math/addition.js +20 -4
- package/module/Math/addition.js.map +1 -1
- package/module/Math/average.js +3 -3
- package/module/Math/average.js.map +1 -1
- package/module/Math/bitwise.js +1 -1
- package/module/Math/bitwise.js.map +1 -1
- package/module/Math/calculator/core.js +2 -1
- package/module/Math/calculator/core.js.map +1 -1
- package/module/Math/calculator/literalExpression.js +1 -1
- package/module/Math/clamp.d.ts +16 -0
- package/module/Math/clamp.js +19 -0
- package/module/Math/clamp.js.map +1 -0
- package/module/Math/correlationCoefficient.js +0 -3
- package/module/Math/correlationCoefficient.js.map +1 -1
- package/module/Math/inRange.d.ts +19 -0
- package/module/Math/inRange.js +24 -0
- package/module/Math/inRange.js.map +1 -0
- package/module/Math/index.d.ts +3 -0
- package/module/Math/index.js +3 -0
- package/module/Math/index.js.map +1 -1
- package/module/Math/median.js +2 -2
- package/module/Math/median.js.map +1 -1
- package/module/Math/nCr.js +2 -4
- package/module/Math/nCr.js.map +1 -1
- package/module/Math/percentile.js +2 -5
- package/module/Math/percentile.js.map +1 -1
- package/module/Math/primeFactorization.js +1 -1
- package/module/Math/primeFactorization.js.map +1 -1
- package/module/Math/sumPrecise.d.ts +14 -0
- package/module/Math/sumPrecise.js +27 -0
- package/module/Math/sumPrecise.js.map +1 -0
- package/module/Math/uuidv7.js +56 -22
- package/module/Math/uuidv7.js.map +1 -1
- package/module/Number/formatNumber.d.ts +42 -0
- package/module/Number/formatNumber.js +44 -0
- package/module/Number/formatNumber.js.map +1 -0
- package/module/Number/index.d.ts +3 -0
- package/module/Number/index.js +4 -0
- package/module/Number/index.js.map +1 -0
- package/module/Number/toOrdinal.d.ts +20 -0
- package/module/Number/toOrdinal.js +37 -0
- package/module/Number/toOrdinal.js.map +1 -0
- package/module/Number/toPercentage.d.ts +20 -0
- package/module/Number/toPercentage.js +27 -0
- package/module/Number/toPercentage.js.map +1 -0
- package/module/Object/deepClone.d.ts +15 -0
- package/module/Object/deepClone.js +62 -0
- package/module/Object/deepClone.js.map +1 -0
- package/module/Object/getObjectsCommon.d.ts +23 -0
- package/module/Object/getObjectsCommon.js +60 -0
- package/module/Object/getObjectsCommon.js.map +1 -0
- package/module/Object/getObjectsDiff.d.ts +25 -0
- package/module/Object/getObjectsDiff.js +79 -0
- package/module/Object/getObjectsDiff.js.map +1 -0
- package/module/Object/index.d.ts +6 -0
- package/module/Object/index.js +6 -0
- package/module/Object/index.js.map +1 -1
- package/module/Object/isPlainObject.d.ts +16 -0
- package/module/Object/isPlainObject.js +32 -0
- package/module/Object/isPlainObject.js.map +1 -0
- package/module/Object/mapKeys.d.ts +15 -0
- package/module/Object/mapKeys.js +28 -0
- package/module/Object/mapKeys.js.map +1 -0
- package/module/Object/mapValues.d.ts +15 -0
- package/module/Object/mapValues.js +27 -0
- package/module/Object/mapValues.js.map +1 -0
- package/module/Object/mergeDeep.js +4 -9
- package/module/Object/mergeDeep.js.map +1 -1
- package/module/Object/omit.d.ts +1 -1
- package/module/Object/omit.js.map +1 -1
- package/module/Object/pickDeep.js +6 -1
- package/module/Object/pickDeep.js.map +1 -1
- package/module/Predicate/every.d.ts +14 -0
- package/module/Predicate/every.js +22 -0
- package/module/Predicate/every.js.map +1 -0
- package/module/Predicate/index.d.ts +6 -0
- package/module/Predicate/index.js +7 -0
- package/module/Predicate/index.js.map +1 -0
- package/module/Predicate/isNotNullish.d.ts +11 -0
- package/module/Predicate/isNotNullish.js +12 -0
- package/module/Predicate/isNotNullish.js.map +1 -0
- package/module/Predicate/isNullish.d.ts +11 -0
- package/module/Predicate/isNullish.js +12 -0
- package/module/Predicate/isNullish.js.map +1 -0
- package/module/Predicate/matches.d.ts +11 -0
- package/module/Predicate/matches.js +20 -0
- package/module/Predicate/matches.js.map +1 -0
- package/module/Predicate/not.d.ts +10 -0
- package/module/Predicate/not.js +11 -0
- package/module/Predicate/not.js.map +1 -0
- package/module/Predicate/some.d.ts +15 -0
- package/module/Predicate/some.js +23 -0
- package/module/Predicate/some.js.map +1 -0
- package/module/String/camelCase.js +2 -2
- package/module/String/camelCase.js.map +1 -1
- package/module/String/escapeHtml.js +1 -1
- package/module/String/formatString/getValue.js +1 -1
- package/module/String/formatString/getValue.js.map +1 -1
- package/module/String/fromBase64.d.ts +0 -1
- package/module/String/fromBase64.js +1 -9
- package/module/String/fromBase64.js.map +1 -1
- package/module/String/fuzzySearch.js +74 -6
- package/module/String/fuzzySearch.js.map +1 -1
- package/module/String/kebabCase.js +1 -1
- package/module/String/kebabCase.js.map +1 -1
- package/module/String/levenshteinDistance.js +1 -2
- package/module/String/levenshteinDistance.js.map +1 -1
- package/module/String/randomString.js +23 -2
- package/module/String/randomString.js.map +1 -1
- package/module/String/reverseString.js +1 -1
- package/module/String/reverseString.js.map +1 -1
- package/module/String/slugify.js +1 -1
- package/module/String/toHalfWidth.js +2 -2
- package/module/String/toHalfWidth.js.map +1 -1
- package/module/String/truncate.js +0 -3
- package/module/String/truncate.js.map +1 -1
- package/module/String/unescapeHtml.js +1 -1
- package/module/String/unescapeHtml.js.map +1 -1
- package/module/Time/convertTime.js +4 -3
- package/module/Time/convertTime.js.map +1 -1
- package/module/Tool/escapeRegExp.d.ts +8 -0
- package/module/Tool/escapeRegExp.js +11 -0
- package/module/Tool/escapeRegExp.js.map +1 -0
- package/module/Tool/index.d.ts +1 -0
- package/module/Tool/index.js +1 -0
- package/module/Tool/index.js.map +1 -1
- package/module/URL/buildUrl.d.ts +17 -0
- package/module/URL/buildUrl.js +24 -0
- package/module/URL/buildUrl.js.map +1 -0
- package/module/URL/index.d.ts +4 -0
- package/module/URL/index.js +5 -0
- package/module/URL/index.js.map +1 -0
- package/module/URL/isAbsoluteUrl.d.ts +20 -0
- package/module/URL/isAbsoluteUrl.js +23 -0
- package/module/URL/isAbsoluteUrl.js.map +1 -0
- package/module/URL/joinPath.d.ts +24 -0
- package/module/URL/joinPath.js +43 -0
- package/module/URL/joinPath.js.map +1 -0
- package/module/URL/parseQueryString.d.ts +22 -0
- package/module/URL/parseQueryString.js +34 -0
- package/module/URL/parseQueryString.js.map +1 -0
- package/module/Validate/parseEmail.js +5 -5
- package/module/Validate/parseEmail.js.map +1 -1
- package/module/es5/Array/arraysJoin.js +1 -1
- package/module/es5/Array/chunk.js +3 -2
- package/module/es5/Array/generateNumberArray.js +21 -3
- package/module/es5/Array/getArraysDiff.js +5 -3
- package/module/es5/Array/mergeSort.js +51 -19
- package/module/es5/Array/pop.js +2 -7
- package/module/es5/Array/randomSelect.js +8 -0
- package/module/es5/Array/sortingHelpers/rangeValidator.js +3 -2
- package/module/es5/Array/timSort.js +25 -23
- package/module/es5/Array/ultraNumberSort.js +221 -207
- package/module/es5/Async/defer.d.ts +18 -0
- package/module/es5/Async/defer.js +32 -0
- package/module/es5/Async/index.d.ts +4 -0
- package/module/es5/Async/index.js +49 -0
- package/module/es5/Async/parallel.d.ts +10 -0
- package/module/es5/Async/parallel.js +48 -0
- package/module/es5/Async/sleep.d.ts +8 -0
- package/module/es5/Async/sleep.js +18 -0
- package/module/es5/Async/timeout.d.ts +10 -0
- package/module/es5/Async/timeout.js +29 -0
- package/module/es5/Color/cmykToRgba.js +6 -7
- package/module/es5/Color/hexaToRgba.js +7 -5
- package/module/es5/Color/hslaToRgba.d.ts +0 -1
- package/module/es5/Color/hslaToRgba.js +7 -22
- package/module/es5/Color/rgbaToCmyk.js +0 -4
- package/module/es5/Color/rgbaToHexA.js +2 -6
- package/module/es5/Color/rgbaToHsla.d.ts +0 -1
- package/module/es5/Color/rgbaToHsla.js +0 -5
- package/module/es5/Crypto/constants.d.ts +2 -0
- package/module/es5/Crypto/constants.js +8 -0
- package/module/es5/Crypto/decodeBase32.js +2 -4
- package/module/es5/Crypto/decodeBase58.js +2 -4
- package/module/es5/Crypto/encodeBase32.js +2 -1
- package/module/es5/Crypto/encodeBase58.js +2 -1
- package/module/es5/DataStructure/index.d.ts +2 -0
- package/module/es5/DataStructure/index.js +22 -0
- package/module/es5/DataStructure/lruCache.d.ts +139 -0
- package/module/es5/DataStructure/lruCache.js +205 -0
- package/module/es5/DataStructure/ttlCache.d.ts +139 -0
- package/module/es5/DataStructure/ttlCache.js +211 -0
- package/module/es5/Error/flatMapResult.d.ts +23 -0
- package/module/es5/Error/flatMapResult.js +33 -0
- package/module/es5/Error/index.d.ts +3 -0
- package/module/es5/Error/index.js +33 -0
- package/module/es5/Error/mapResult.d.ts +21 -0
- package/module/es5/Error/mapResult.js +32 -0
- package/module/es5/Error/matchResult.d.ts +25 -0
- package/module/es5/Error/matchResult.js +32 -0
- package/module/es5/Error/safeExecute.d.ts +16 -3
- package/module/es5/Error/safeExecute.js +3 -3
- package/module/es5/Function/debounce.d.ts +38 -0
- package/module/es5/Function/debounce.js +88 -0
- package/module/es5/Function/index.d.ts +4 -0
- package/module/es5/Function/index.js +44 -0
- package/module/es5/Function/memoize.d.ts +36 -0
- package/module/es5/Function/memoize.js +73 -0
- package/module/es5/Function/once.d.ts +18 -0
- package/module/es5/Function/once.js +37 -0
- package/module/es5/Function/throttle.d.ts +25 -0
- package/module/es5/Function/throttle.js +69 -0
- package/module/es5/IP/cidrToLong.d.ts +0 -1
- package/module/es5/IP/cidrToLong.js +0 -4
- package/module/es5/IP/cidrToSubnetMask.d.ts +0 -1
- package/module/es5/IP/cidrToSubnetMask.js +0 -1
- package/module/es5/IP/getNetworkAddress.d.ts +0 -1
- package/module/es5/IP/getNetworkAddress.js +2 -31
- package/module/es5/IP/ipToBinaryString.d.ts +0 -1
- package/module/es5/IP/ipToBinaryString.js +1 -40
- package/module/es5/IP/ipToLong.d.ts +0 -1
- package/module/es5/IP/ipToLong.js +0 -1
- package/module/es5/IP/isInRange.d.ts +0 -1
- package/module/es5/IP/isInRange.js +5 -29
- package/module/es5/IP/isPrivateIp.d.ts +0 -1
- package/module/es5/IP/isPrivateIp.js +3 -12
- package/module/es5/IP/longToIp.d.ts +0 -1
- package/module/es5/IP/longToIp.js +0 -6
- package/module/es5/IP/subnetMaskToCidr.d.ts +0 -1
- package/module/es5/IP/subnetMaskToCidr.js +2 -26
- package/module/es5/Iterator/index.d.ts +3 -0
- package/module/es5/Iterator/index.js +38 -0
- package/module/es5/Iterator/lazyFilter.d.ts +10 -0
- package/module/es5/Iterator/lazyFilter.js +63 -0
- package/module/es5/Iterator/lazyMap.d.ts +10 -0
- package/module/es5/Iterator/lazyMap.js +59 -0
- package/module/es5/Iterator/lazyTake.d.ts +10 -0
- package/module/es5/Iterator/lazyTake.js +65 -0
- package/module/es5/Math/addition.js +24 -14
- package/module/es5/Math/average.js +3 -5
- package/module/es5/Math/bitwise.js +1 -1
- package/module/es5/Math/calculator/core.js +2 -1
- package/module/es5/Math/calculator/literalExpression.js +1 -1
- package/module/es5/Math/clamp.d.ts +16 -0
- package/module/es5/Math/clamp.js +24 -0
- package/module/es5/Math/correlationCoefficient.js +0 -3
- package/module/es5/Math/inRange.d.ts +19 -0
- package/module/es5/Math/inRange.js +29 -0
- package/module/es5/Math/index.d.ts +3 -0
- package/module/es5/Math/index.js +33 -0
- package/module/es5/Math/median.js +2 -2
- package/module/es5/Math/nCr.js +2 -4
- package/module/es5/Math/percentile.js +2 -11
- package/module/es5/Math/primeFactorization.js +1 -1
- package/module/es5/Math/sumPrecise.d.ts +14 -0
- package/module/es5/Math/sumPrecise.js +41 -0
- package/module/es5/Math/uuidv7.js +25 -40
- package/module/es5/Number/formatNumber.d.ts +42 -0
- package/module/es5/Number/formatNumber.js +58 -0
- package/module/es5/Number/index.d.ts +3 -0
- package/module/es5/Number/index.js +38 -0
- package/module/es5/Number/toOrdinal.d.ts +20 -0
- package/module/es5/Number/toOrdinal.js +42 -0
- package/module/es5/Number/toPercentage.d.ts +20 -0
- package/module/es5/Number/toPercentage.js +33 -0
- package/module/es5/Object/deepClone.d.ts +15 -0
- package/module/es5/Object/deepClone.js +107 -0
- package/module/es5/Object/getObjectsCommon.d.ts +23 -0
- package/module/es5/Object/getObjectsCommon.js +92 -0
- package/module/es5/Object/getObjectsDiff.d.ts +25 -0
- package/module/es5/Object/getObjectsDiff.js +146 -0
- package/module/es5/Object/index.d.ts +6 -0
- package/module/es5/Object/index.js +66 -0
- package/module/es5/Object/isPlainObject.d.ts +16 -0
- package/module/es5/Object/isPlainObject.js +39 -0
- package/module/es5/Object/mapKeys.d.ts +15 -0
- package/module/es5/Object/mapKeys.js +33 -0
- package/module/es5/Object/mapValues.d.ts +15 -0
- package/module/es5/Object/mapValues.js +32 -0
- package/module/es5/Object/mergeDeep.js +7 -10
- package/module/es5/Object/omit.d.ts +1 -1
- package/module/es5/Object/pickDeep.js +4 -6
- package/module/es5/Predicate/every.d.ts +14 -0
- package/module/es5/Predicate/every.js +33 -0
- package/module/es5/Predicate/index.d.ts +6 -0
- package/module/es5/Predicate/index.js +71 -0
- package/module/es5/Predicate/isNotNullish.d.ts +11 -0
- package/module/es5/Predicate/isNotNullish.js +19 -0
- package/module/es5/Predicate/isNullish.d.ts +11 -0
- package/module/es5/Predicate/isNullish.js +19 -0
- package/module/es5/Predicate/matches.d.ts +11 -0
- package/module/es5/Predicate/matches.js +28 -0
- package/module/es5/Predicate/not.d.ts +10 -0
- package/module/es5/Predicate/not.js +20 -0
- package/module/es5/Predicate/some.d.ts +15 -0
- package/module/es5/Predicate/some.js +34 -0
- package/module/es5/String/camelCase.js +2 -2
- package/module/es5/String/escapeHtml.js +1 -1
- package/module/es5/String/formatString/getValue.js +1 -1
- package/module/es5/String/fromBase64.d.ts +0 -1
- package/module/es5/String/fromBase64.js +9 -8
- package/module/es5/String/fuzzySearch.js +84 -9
- package/module/es5/String/kebabCase.js +1 -1
- package/module/es5/String/levenshteinDistance.js +3 -2
- package/module/es5/String/randomString.js +24 -2
- package/module/es5/String/reverseString.js +7 -1
- package/module/es5/String/slugify.js +1 -1
- package/module/es5/String/toHalfWidth.js +2 -2
- package/module/es5/String/truncate.js +0 -3
- package/module/es5/String/unescapeHtml.js +1 -1
- package/module/es5/Time/convertTime.js +4 -3
- package/module/es5/Tool/escapeRegExp.d.ts +8 -0
- package/module/es5/Tool/escapeRegExp.js +18 -0
- package/module/es5/Tool/index.d.ts +1 -0
- package/module/es5/Tool/index.js +11 -0
- package/module/es5/URL/buildUrl.d.ts +17 -0
- package/module/es5/URL/buildUrl.js +31 -0
- package/module/es5/URL/index.d.ts +4 -0
- package/module/es5/URL/index.js +49 -0
- package/module/es5/URL/isAbsoluteUrl.d.ts +20 -0
- package/module/es5/URL/isAbsoluteUrl.js +28 -0
- package/module/es5/URL/joinPath.d.ts +24 -0
- package/module/es5/URL/joinPath.js +48 -0
- package/module/es5/URL/parseQueryString.d.ts +22 -0
- package/module/es5/URL/parseQueryString.js +57 -0
- package/module/es5/Validate/parseEmail.js +5 -5
- package/module/es5/index.d.ts +25 -20
- package/module/es5/index.js +135 -80
- package/module/es5/tsconfig.tsbuildinfo +1 -1
- package/module/index.d.ts +25 -20
- package/module/index.js +25 -20
- package/module/index.js.map +1 -1
- package/package.json +43 -17
|
@@ -19,18 +19,16 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
19
19
|
*/
|
|
20
20
|
var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array) {
|
|
21
21
|
var ascending = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
22
|
-
var
|
|
23
|
-
var length = result.length;
|
|
22
|
+
var length = array.length;
|
|
24
23
|
if (length <= 1) {
|
|
25
|
-
return
|
|
24
|
+
return _toConsumableArray(array);
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
// For tiny arrays, use optimized inline sort
|
|
26
|
+
var result = _toConsumableArray(array);
|
|
29
27
|
if (length === 2) {
|
|
30
28
|
if (result[0] > result[1] === ascending) {
|
|
31
|
-
var
|
|
32
|
-
result[0] =
|
|
33
|
-
result[1] =
|
|
29
|
+
var temporary = result[0];
|
|
30
|
+
result[0] = result[1];
|
|
31
|
+
result[1] = temporary;
|
|
34
32
|
}
|
|
35
33
|
return result;
|
|
36
34
|
}
|
|
@@ -39,13 +37,25 @@ var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array)
|
|
|
39
37
|
return result;
|
|
40
38
|
}
|
|
41
39
|
|
|
40
|
+
// For small-medium arrays, skip integer/range analysis
|
|
41
|
+
if (length <= 128) {
|
|
42
|
+
for (var index = 0; index < length; index++) {
|
|
43
|
+
// biome-ignore lint/suspicious/noSelfCompare: NaN detection
|
|
44
|
+
if (result[index] !== result[index]) {
|
|
45
|
+
return handleNaNSort(result, ascending);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
numericQuickSort(result, 0, length - 1, ascending);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
|
|
42
52
|
// Check if all numbers are integers and find range
|
|
43
53
|
var allIntegers = true;
|
|
44
54
|
var min = result[0];
|
|
45
55
|
var max = result[0];
|
|
46
56
|
var hasNaN = false;
|
|
47
|
-
for (var
|
|
48
|
-
var value = result[
|
|
57
|
+
for (var _index = 0; _index < length; _index++) {
|
|
58
|
+
var value = result[_index];
|
|
49
59
|
// biome-ignore lint/suspicious/noSelfCompare: ignore
|
|
50
60
|
if (value !== value) {
|
|
51
61
|
hasNaN = true;
|
|
@@ -62,23 +72,155 @@ var ultraNumberSort = exports.ultraNumberSort = function ultraNumberSort(array)
|
|
|
62
72
|
}
|
|
63
73
|
}
|
|
64
74
|
|
|
65
|
-
//
|
|
75
|
+
// For small integer ranges, use counting sort
|
|
76
|
+
if (!hasNaN && allIntegers && max - min < length * 2 && max - min < 1000000) {
|
|
77
|
+
return countingSort(result, min, max, ascending);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// For medium arrays, quicksort is faster than radix sort
|
|
81
|
+
// due to typed array allocation overhead
|
|
82
|
+
if (length < 4096) {
|
|
83
|
+
if (hasNaN) {
|
|
84
|
+
return handleNaNSort(result, ascending);
|
|
85
|
+
}
|
|
86
|
+
numericQuickSort(result, 0, length - 1, ascending);
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Use IEEE 754 Float64 radix sort for large arrays
|
|
91
|
+
return float64RadixSort(result, ascending, hasNaN);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* IEEE 754 Float64 radix sort
|
|
96
|
+
* Works on all number types (integers and floats) by treating
|
|
97
|
+
* the 64-bit IEEE 754 bit pattern as a sortable unsigned integer.
|
|
98
|
+
*
|
|
99
|
+
* Bit transformation:
|
|
100
|
+
* - Positive numbers (sign bit 0): flip only the sign bit
|
|
101
|
+
* - Negative numbers (sign bit 1): flip ALL 64 bits
|
|
102
|
+
* After this transformation, unsigned integer comparison matches
|
|
103
|
+
* the original floating-point numerical order.
|
|
104
|
+
*/
|
|
105
|
+
var float64RadixSort = function float64RadixSort(array, ascending, hasNaN) {
|
|
106
|
+
var length = array.length;
|
|
107
|
+
var sourceBuffer = new ArrayBuffer(length * 8);
|
|
108
|
+
var sourceF64 = new Float64Array(sourceBuffer);
|
|
109
|
+
var sourceU32 = new Uint32Array(sourceBuffer);
|
|
110
|
+
var validLength;
|
|
66
111
|
if (hasNaN) {
|
|
67
|
-
|
|
112
|
+
var writeIndex = 0;
|
|
113
|
+
for (var index = 0; index < length; index++) {
|
|
114
|
+
var v = array[index];
|
|
115
|
+
// biome-ignore lint/suspicious/noSelfCompare: NaN detection
|
|
116
|
+
if (v === v) {
|
|
117
|
+
sourceF64[writeIndex++] = v;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
validLength = writeIndex;
|
|
121
|
+
} else {
|
|
122
|
+
for (var _index2 = 0; _index2 < length; _index2++) {
|
|
123
|
+
sourceF64[_index2] = array[_index2];
|
|
124
|
+
}
|
|
125
|
+
validLength = length;
|
|
126
|
+
}
|
|
127
|
+
if (validLength === 0) {
|
|
128
|
+
return array;
|
|
68
129
|
}
|
|
69
130
|
|
|
70
|
-
//
|
|
71
|
-
|
|
72
|
-
|
|
131
|
+
// Transform IEEE 754 bit patterns to sortable unsigned form
|
|
132
|
+
for (var _index3 = 0; _index3 < validLength; _index3++) {
|
|
133
|
+
var hiIndex = _index3 * 2 + 1;
|
|
134
|
+
var loIndex = _index3 * 2;
|
|
135
|
+
if (sourceU32[hiIndex] & 0x80000000) {
|
|
136
|
+
sourceU32[hiIndex] = ~sourceU32[hiIndex] >>> 0;
|
|
137
|
+
sourceU32[loIndex] = ~sourceU32[loIndex] >>> 0;
|
|
138
|
+
} else {
|
|
139
|
+
sourceU32[hiIndex] ^= 0x80000000;
|
|
140
|
+
}
|
|
73
141
|
}
|
|
142
|
+
var destinationBuffer = new ArrayBuffer(validLength * 8);
|
|
143
|
+
var destinationU32 = new Uint32Array(destinationBuffer);
|
|
144
|
+
var count = new Uint32Array(256);
|
|
145
|
+
var currentSource = sourceU32;
|
|
146
|
+
var currentDestination = destinationU32;
|
|
147
|
+
var resultInSource = true;
|
|
148
|
+
|
|
149
|
+
// 8-pass LSD radix sort (8 bits per pass)
|
|
150
|
+
// Passes 0-3: low 32-bit word (index i*2)
|
|
151
|
+
// Passes 4-7: high 32-bit word (index i*2+1)
|
|
152
|
+
for (var pass = 0; pass < 8; pass++) {
|
|
153
|
+
count.fill(0);
|
|
154
|
+
var wordOffset = pass < 4 ? 0 : 1;
|
|
155
|
+
var shift = pass % 4 * 8;
|
|
156
|
+
for (var _index4 = 0; _index4 < validLength; _index4++) {
|
|
157
|
+
count[currentSource[_index4 * 2 + wordOffset] >>> shift & 0xff]++;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Skip pass if all elements have the same byte value
|
|
161
|
+
var skipPass = false;
|
|
162
|
+
for (var _index5 = 0; _index5 < 256; _index5++) {
|
|
163
|
+
if (count[_index5] === validLength) {
|
|
164
|
+
skipPass = true;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (skipPass) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Prefix sum (reverse for descending sort)
|
|
173
|
+
if (ascending) {
|
|
174
|
+
for (var _index6 = 1; _index6 < 256; _index6++) {
|
|
175
|
+
count[_index6] += count[_index6 - 1];
|
|
176
|
+
}
|
|
177
|
+
} else {
|
|
178
|
+
for (var _index7 = 254; _index7 >= 0; _index7--) {
|
|
179
|
+
count[_index7] += count[_index7 + 1];
|
|
180
|
+
}
|
|
181
|
+
}
|
|
74
182
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
183
|
+
// Scatter (backward for stability)
|
|
184
|
+
for (var _index8 = validLength - 1; _index8 >= 0; _index8--) {
|
|
185
|
+
var _byte = currentSource[_index8 * 2 + wordOffset] >>> shift & 0xff;
|
|
186
|
+
var pos = --count[_byte];
|
|
187
|
+
currentDestination[pos * 2] = currentSource[_index8 * 2];
|
|
188
|
+
currentDestination[pos * 2 + 1] = currentSource[_index8 * 2 + 1];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// Ping-pong swap
|
|
192
|
+
var temporary = currentSource;
|
|
193
|
+
currentSource = currentDestination;
|
|
194
|
+
currentDestination = temporary;
|
|
195
|
+
resultInSource = !resultInSource;
|
|
78
196
|
}
|
|
79
197
|
|
|
80
|
-
//
|
|
81
|
-
|
|
198
|
+
// Determine which buffer holds the result
|
|
199
|
+
var resultU32 = currentSource;
|
|
200
|
+
var resultBuffer = resultInSource ? sourceBuffer : destinationBuffer;
|
|
201
|
+
var resultF64 = new Float64Array(resultBuffer);
|
|
202
|
+
|
|
203
|
+
// Reverse bit transformation
|
|
204
|
+
for (var _index9 = 0; _index9 < validLength; _index9++) {
|
|
205
|
+
var _hiIndex = _index9 * 2 + 1;
|
|
206
|
+
if (resultU32[_hiIndex] & 0x80000000) {
|
|
207
|
+
resultU32[_hiIndex] ^= 0x80000000;
|
|
208
|
+
} else {
|
|
209
|
+
resultU32[_hiIndex] = ~resultU32[_hiIndex] >>> 0;
|
|
210
|
+
resultU32[_index9 * 2] = ~resultU32[_index9 * 2] >>> 0;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// Copy results back
|
|
215
|
+
for (var _index0 = 0; _index0 < validLength; _index0++) {
|
|
216
|
+
array[_index0] = resultF64[_index0];
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Append NaN values at the end
|
|
220
|
+
for (var _index1 = validLength; _index1 < length; _index1++) {
|
|
221
|
+
array[_index1] = Number.NaN;
|
|
222
|
+
}
|
|
223
|
+
return array;
|
|
82
224
|
};
|
|
83
225
|
|
|
84
226
|
/**
|
|
@@ -88,36 +230,37 @@ var inlineSort3 = function inlineSort3(array, ascending) {
|
|
|
88
230
|
var a = array[0];
|
|
89
231
|
var b = array[1];
|
|
90
232
|
var c = array[2];
|
|
233
|
+
var temporary;
|
|
91
234
|
if (ascending) {
|
|
92
235
|
if (a > b) {
|
|
93
|
-
|
|
94
|
-
a =
|
|
95
|
-
b =
|
|
236
|
+
temporary = a;
|
|
237
|
+
a = b;
|
|
238
|
+
b = temporary;
|
|
96
239
|
}
|
|
97
240
|
if (b > c) {
|
|
98
|
-
|
|
99
|
-
b =
|
|
100
|
-
c =
|
|
241
|
+
temporary = b;
|
|
242
|
+
b = c;
|
|
243
|
+
c = temporary;
|
|
101
244
|
if (a > b) {
|
|
102
|
-
|
|
103
|
-
a =
|
|
104
|
-
b =
|
|
245
|
+
temporary = a;
|
|
246
|
+
a = b;
|
|
247
|
+
b = temporary;
|
|
105
248
|
}
|
|
106
249
|
}
|
|
107
250
|
} else {
|
|
108
251
|
if (a < b) {
|
|
109
|
-
|
|
110
|
-
a =
|
|
111
|
-
b =
|
|
252
|
+
temporary = a;
|
|
253
|
+
a = b;
|
|
254
|
+
b = temporary;
|
|
112
255
|
}
|
|
113
256
|
if (b < c) {
|
|
114
|
-
|
|
115
|
-
b =
|
|
116
|
-
c =
|
|
257
|
+
temporary = b;
|
|
258
|
+
b = c;
|
|
259
|
+
c = temporary;
|
|
117
260
|
if (a < b) {
|
|
118
|
-
|
|
119
|
-
a =
|
|
120
|
-
b =
|
|
261
|
+
temporary = a;
|
|
262
|
+
a = b;
|
|
263
|
+
b = temporary;
|
|
121
264
|
}
|
|
122
265
|
}
|
|
123
266
|
}
|
|
@@ -157,8 +300,8 @@ var handleNaNSort = function handleNaNSort(array, ascending) {
|
|
|
157
300
|
}
|
|
158
301
|
|
|
159
302
|
// Copy back
|
|
160
|
-
for (var
|
|
161
|
-
array[
|
|
303
|
+
for (var _index10 = 0; _index10 < array.length; _index10++) {
|
|
304
|
+
array[_index10] = valid[_index10];
|
|
162
305
|
}
|
|
163
306
|
return array;
|
|
164
307
|
};
|
|
@@ -206,136 +349,6 @@ var countingSort = function countingSort(array, min, max, ascending) {
|
|
|
206
349
|
return array;
|
|
207
350
|
};
|
|
208
351
|
|
|
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
352
|
/**
|
|
340
353
|
* Optimized quicksort for numbers
|
|
341
354
|
*/
|
|
@@ -382,14 +395,14 @@ var numericInsertionSort = function numericInsertionSort(array, low, high, ascen
|
|
|
382
395
|
array[index_ + 1] = key;
|
|
383
396
|
}
|
|
384
397
|
} else {
|
|
385
|
-
for (var
|
|
386
|
-
var _key = array[
|
|
387
|
-
var
|
|
388
|
-
while (
|
|
389
|
-
array[
|
|
390
|
-
|
|
398
|
+
for (var _index11 = low + 1; _index11 <= high; _index11++) {
|
|
399
|
+
var _key = array[_index11];
|
|
400
|
+
var _index_2 = _index11 - 1;
|
|
401
|
+
while (_index_2 >= low && array[_index_2] < _key) {
|
|
402
|
+
array[_index_2 + 1] = array[_index_2];
|
|
403
|
+
_index_2--;
|
|
391
404
|
}
|
|
392
|
-
array[
|
|
405
|
+
array[_index_2 + 1] = _key;
|
|
393
406
|
}
|
|
394
407
|
}
|
|
395
408
|
};
|
|
@@ -400,44 +413,45 @@ var numericInsertionSort = function numericInsertionSort(array, low, high, ascen
|
|
|
400
413
|
var numericPartition = function numericPartition(array, low, high, ascending) {
|
|
401
414
|
// Median-of-three pivot selection
|
|
402
415
|
var mid = low + (high - low >> 1);
|
|
416
|
+
var temporary;
|
|
403
417
|
if (ascending) {
|
|
404
418
|
if (array[mid] < array[low]) {
|
|
405
|
-
|
|
406
|
-
array[low] =
|
|
407
|
-
array[mid] =
|
|
419
|
+
temporary = array[low];
|
|
420
|
+
array[low] = array[mid];
|
|
421
|
+
array[mid] = temporary;
|
|
408
422
|
}
|
|
409
423
|
if (array[high] < array[low]) {
|
|
410
|
-
|
|
411
|
-
array[low] =
|
|
412
|
-
array[high] =
|
|
424
|
+
temporary = array[low];
|
|
425
|
+
array[low] = array[high];
|
|
426
|
+
array[high] = temporary;
|
|
413
427
|
}
|
|
414
428
|
if (array[high] < array[mid]) {
|
|
415
|
-
|
|
416
|
-
array[mid] =
|
|
417
|
-
array[high] =
|
|
429
|
+
temporary = array[mid];
|
|
430
|
+
array[mid] = array[high];
|
|
431
|
+
array[high] = temporary;
|
|
418
432
|
}
|
|
419
433
|
} else {
|
|
420
434
|
if (array[mid] > array[low]) {
|
|
421
|
-
|
|
422
|
-
array[low] =
|
|
423
|
-
array[mid] =
|
|
435
|
+
temporary = array[low];
|
|
436
|
+
array[low] = array[mid];
|
|
437
|
+
array[mid] = temporary;
|
|
424
438
|
}
|
|
425
439
|
if (array[high] > array[low]) {
|
|
426
|
-
|
|
427
|
-
array[low] =
|
|
428
|
-
array[high] =
|
|
440
|
+
temporary = array[low];
|
|
441
|
+
array[low] = array[high];
|
|
442
|
+
array[high] = temporary;
|
|
429
443
|
}
|
|
430
444
|
if (array[high] > array[mid]) {
|
|
431
|
-
|
|
432
|
-
array[mid] =
|
|
433
|
-
array[high] =
|
|
445
|
+
temporary = array[mid];
|
|
446
|
+
array[mid] = array[high];
|
|
447
|
+
array[high] = temporary;
|
|
434
448
|
}
|
|
435
449
|
}
|
|
436
450
|
|
|
437
451
|
// Move pivot to end-1
|
|
438
|
-
|
|
439
|
-
array[mid] =
|
|
440
|
-
array[high - 1] =
|
|
452
|
+
temporary = array[mid];
|
|
453
|
+
array[mid] = array[high - 1];
|
|
454
|
+
array[high - 1] = temporary;
|
|
441
455
|
var pivot = array[high - 1];
|
|
442
456
|
var index = low;
|
|
443
457
|
var index_ = high - 1;
|
|
@@ -452,9 +466,9 @@ var numericPartition = function numericPartition(array, low, high, ascending) {
|
|
|
452
466
|
if (index >= index_) {
|
|
453
467
|
break;
|
|
454
468
|
}
|
|
455
|
-
|
|
456
|
-
array[index] =
|
|
457
|
-
array[index_] =
|
|
469
|
+
temporary = array[index];
|
|
470
|
+
array[index] = array[index_];
|
|
471
|
+
array[index_] = temporary;
|
|
458
472
|
}
|
|
459
473
|
} else {
|
|
460
474
|
while (true) {
|
|
@@ -467,13 +481,13 @@ var numericPartition = function numericPartition(array, low, high, ascending) {
|
|
|
467
481
|
if (index >= index_) {
|
|
468
482
|
break;
|
|
469
483
|
}
|
|
470
|
-
|
|
471
|
-
array[index] =
|
|
472
|
-
array[index_] =
|
|
484
|
+
temporary = array[index];
|
|
485
|
+
array[index] = array[index_];
|
|
486
|
+
array[index_] = temporary;
|
|
473
487
|
}
|
|
474
488
|
}
|
|
475
|
-
|
|
476
|
-
array[index] =
|
|
477
|
-
array[high - 1] =
|
|
489
|
+
temporary = array[index];
|
|
490
|
+
array[index] = array[high - 1];
|
|
491
|
+
array[high - 1] = temporary;
|
|
478
492
|
return index;
|
|
479
493
|
};
|
|
@@ -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,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _defer = require("./defer");
|
|
7
|
+
Object.keys(_defer).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _defer[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _defer[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _parallel = require("./parallel");
|
|
18
|
+
Object.keys(_parallel).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _parallel[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _parallel[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _sleep = require("./sleep");
|
|
29
|
+
Object.keys(_sleep).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _sleep[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _sleep[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _timeout = require("./timeout");
|
|
40
|
+
Object.keys(_timeout).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _timeout[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _timeout[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -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[]>;
|