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.
- 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 +214 -136
- 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 +4 -5
- package/module/Crypto/decodeBase32.js.map +1 -1
- package/module/Crypto/decodeBase58.js +7 -6
- 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 +7 -3
- 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 +65 -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 +243 -243
- 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 +12 -5
- package/module/es5/Crypto/decodeBase58.js +14 -8
- package/module/es5/Crypto/encodeBase32.js +2 -1
- package/module/es5/Crypto/encodeBase58.js +8 -3
- 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 +110 -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 +5 -0
- package/module/es5/index.js +73 -18
- package/module/es5/tsconfig.tsbuildinfo +1 -1
- package/module/index.d.ts +5 -0
- package/module/index.js +5 -0
- package/module/index.js.map +1 -1
- package/package.json +58 -27
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/Async/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a promise with a timeout, rejecting if it does not
|
|
3
|
+
* resolve within the specified milliseconds
|
|
4
|
+
* @param {Promise<T>} promise - The promise to wrap
|
|
5
|
+
* @param {number} ms - The timeout in milliseconds
|
|
6
|
+
* @returns {Promise<T>} The result of the promise or a timeout error
|
|
7
|
+
* @example
|
|
8
|
+
* const result = await timeout(fetch("/api"), 5000);
|
|
9
|
+
*/
|
|
10
|
+
export declare const timeout: <T>(promise: Promise<T>, ms: number) => Promise<T>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a promise with a timeout, rejecting if it does not
|
|
3
|
+
* resolve within the specified milliseconds
|
|
4
|
+
* @param {Promise<T>} promise - The promise to wrap
|
|
5
|
+
* @param {number} ms - The timeout in milliseconds
|
|
6
|
+
* @returns {Promise<T>} The result of the promise or a timeout error
|
|
7
|
+
* @example
|
|
8
|
+
* const result = await timeout(fetch("/api"), 5000);
|
|
9
|
+
*/
|
|
10
|
+
export const timeout = (promise, ms) => new Promise((resolve, reject) => {
|
|
11
|
+
const timer = setTimeout(() => {
|
|
12
|
+
reject(new Error(`Timed out after ${ms}ms`));
|
|
13
|
+
}, ms);
|
|
14
|
+
promise.then((value) => {
|
|
15
|
+
clearTimeout(timer);
|
|
16
|
+
resolve(value);
|
|
17
|
+
}, (error) => {
|
|
18
|
+
clearTimeout(timer);
|
|
19
|
+
reject(error);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/Async/timeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAI,OAAmB,EAAE,EAAU,EAAc,EAAE,CACxE,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,IAAI,CACV,CAAC,KAAK,EAAE,EAAE;QACR,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;QACR,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { clamp } from "../Math/clamp";
|
|
1
2
|
import { division } from "../Math/division";
|
|
2
|
-
import { max } from "../Math/max";
|
|
3
|
-
import { min } from "../Math/min";
|
|
4
3
|
import { multiplication } from "../Math/multiplication";
|
|
5
4
|
import { roundOf } from "../Math/roundOf";
|
|
6
5
|
import { subtract } from "../Math/subtract";
|
|
@@ -16,10 +15,10 @@ import { subtract } from "../Math/subtract";
|
|
|
16
15
|
*/
|
|
17
16
|
export const cmykToRgba = (c, m, y, k, a = 1) => {
|
|
18
17
|
// Clamp CMYK values to 0-100 range
|
|
19
|
-
const clampedC =
|
|
20
|
-
const clampedM =
|
|
21
|
-
const clampedY =
|
|
22
|
-
const clampedK =
|
|
18
|
+
const clampedC = clamp(c, 0, 100);
|
|
19
|
+
const clampedM = clamp(m, 0, 100);
|
|
20
|
+
const clampedY = clamp(y, 0, 100);
|
|
21
|
+
const clampedK = clamp(k, 0, 100);
|
|
23
22
|
// Convert CMYK values to 0-1 range
|
|
24
23
|
const cPercentage = division(clampedC, 100);
|
|
25
24
|
const mPercentage = division(clampedM, 100);
|
|
@@ -34,7 +33,7 @@ export const cmykToRgba = (c, m, y, k, a = 1) => {
|
|
|
34
33
|
const roundedG = roundOf(g);
|
|
35
34
|
const roundedB = roundOf(b);
|
|
36
35
|
// Clamp alpha value to 0-1 range
|
|
37
|
-
const clampedA =
|
|
36
|
+
const clampedA = clamp(a, 0, 1);
|
|
38
37
|
return {
|
|
39
38
|
r: roundedR,
|
|
40
39
|
g: roundedG,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmykToRgba.js","sourceRoot":"","sources":["../../src/Color/cmykToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cmykToRgba.js","sourceRoot":"","sources":["../../src/Color/cmykToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAS,EACT,CAAC,GAAG,CAAC,EAC2C,EAAE;IAClD,mCAAmC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAElC,mCAAmC;IACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE5C,uBAAuB;IACvB,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IACF,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IACF,MAAM,CAAC,GAAG,cAAc,CACtB,GAAG,EACH,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CACzB,CAAC;IAEF,kCAAkC;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B,iCAAiC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhC,OAAO;QACL,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;KACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -8,17 +8,10 @@ import { roundOf } from "../Math/roundOf";
|
|
|
8
8
|
* @throws {Error} If the hex code format is invalid
|
|
9
9
|
*/
|
|
10
10
|
export const hexaToRgba = (hex) => {
|
|
11
|
-
// Validate hex code format
|
|
12
|
-
if (/^#([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i.test(hex) === false) {
|
|
13
|
-
throw new Error("Invalid hex code");
|
|
14
|
-
}
|
|
15
11
|
let hexCode = hex.replace("#", "");
|
|
16
12
|
// Convert 3-digit hex to 6-digit format
|
|
17
13
|
if (hexCode.length === 3) {
|
|
18
|
-
hexCode = hexCode
|
|
19
|
-
.split("")
|
|
20
|
-
.map((char) => char + char)
|
|
21
|
-
.join("");
|
|
14
|
+
hexCode = [...hexCode].map((char) => char + char).join("");
|
|
22
15
|
}
|
|
23
16
|
const r = Number.parseInt(hexCode.slice(0, 2), 16);
|
|
24
17
|
const g = Number.parseInt(hexCode.slice(2, 4), 16);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hexaToRgba.js","sourceRoot":"","sources":["../../src/Color/hexaToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,GAAW,EAMX,EAAE;IACF,
|
|
1
|
+
{"version":3,"file":"hexaToRgba.js","sourceRoot":"","sources":["../../src/Color/hexaToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,GAAW,EAMX,EAAE;IACF,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAEnC,wCAAwC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,UAAU,GACd,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhD,uEAAuE;IACvE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* @param a Alpha value (0-1)
|
|
7
7
|
* @returns {Object} RGBA values (r, g, b as 0-255, a as 0-1)
|
|
8
8
|
* @example hslaToRgba(120, 50, 50, 1) // { r: 64, g: 191, b: 64, a: 1 }
|
|
9
|
-
* @throws {Error} If any input values are out of their valid ranges
|
|
10
9
|
*/
|
|
11
10
|
export declare const hslaToRgba: (h: number, s: number, l: number, a?: number) => {
|
|
12
11
|
r: number;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { addition } from "../Math/addition";
|
|
2
|
+
import { clamp } from "../Math/clamp";
|
|
2
3
|
import { division } from "../Math/division";
|
|
3
|
-
import { max } from "../Math/max";
|
|
4
|
-
import { min } from "../Math/min";
|
|
5
4
|
import { multiplication } from "../Math/multiplication";
|
|
6
5
|
import { roundOf } from "../Math/roundOf";
|
|
7
6
|
import { subtract } from "../Math/subtract";
|
|
@@ -13,28 +12,14 @@ import { subtract } from "../Math/subtract";
|
|
|
13
12
|
* @param a Alpha value (0-1)
|
|
14
13
|
* @returns {Object} RGBA values (r, g, b as 0-255, a as 0-1)
|
|
15
14
|
* @example hslaToRgba(120, 50, 50, 1) // { r: 64, g: 191, b: 64, a: 1 }
|
|
16
|
-
* @throws {Error} If any input values are out of their valid ranges
|
|
17
15
|
*/
|
|
18
16
|
export const hslaToRgba = (h, s, l, a = 1) => {
|
|
19
|
-
// Validate input ranges
|
|
20
|
-
if (h < 0 || h > 360) {
|
|
21
|
-
throw new Error("Hue must be between 0 and 360 degrees");
|
|
22
|
-
}
|
|
23
|
-
if (s < 0 || s > 100) {
|
|
24
|
-
throw new Error("Saturation must be between 0 and 100 percent");
|
|
25
|
-
}
|
|
26
|
-
if (l < 0 || l > 100) {
|
|
27
|
-
throw new Error("Lightness must be between 0 and 100 percent");
|
|
28
|
-
}
|
|
29
|
-
if (a < 0 || a > 1) {
|
|
30
|
-
throw new Error("Alpha must be between 0 and 1");
|
|
31
|
-
}
|
|
32
17
|
const hue = division(division(h, 360, false)[1], 360);
|
|
33
|
-
const saturation = division(
|
|
34
|
-
const lightness = division(
|
|
35
|
-
let r
|
|
36
|
-
let g
|
|
37
|
-
let b
|
|
18
|
+
const saturation = division(clamp(s, 0, 100), 100);
|
|
19
|
+
const lightness = division(clamp(l, 0, 100), 100);
|
|
20
|
+
let r;
|
|
21
|
+
let g;
|
|
22
|
+
let b;
|
|
38
23
|
if (saturation === 0) {
|
|
39
24
|
r = g = b = lightness;
|
|
40
25
|
}
|
|
@@ -69,7 +54,7 @@ export const hslaToRgba = (h, s, l, a = 1) => {
|
|
|
69
54
|
const roundedR = roundOf(multiplication(r, 255), 2);
|
|
70
55
|
const roundedG = roundOf(multiplication(g, 255), 2);
|
|
71
56
|
const roundedB = roundOf(multiplication(b, 255), 2);
|
|
72
|
-
const clampedA =
|
|
57
|
+
const clampedA = clamp(a, 0, 1);
|
|
73
58
|
return {
|
|
74
59
|
r: roundedR,
|
|
75
60
|
g: roundedG,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hslaToRgba.js","sourceRoot":"","sources":["../../src/Color/hslaToRgba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hslaToRgba.js","sourceRoot":"","sources":["../../src/Color/hslaToRgba.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,17 +8,6 @@ import { subtract } from "../Math/subtract";
|
|
|
8
8
|
* @example rgbaToCmyk({ r: 0, g: 0, b: 0, a: 1 }); // { c: 0, m: 0, y: 0, k: 100, a: 1 }
|
|
9
9
|
*/
|
|
10
10
|
export const rgbaToCmyk = ({ r, g, b, a = 1, }) => {
|
|
11
|
-
// Validate RGBA values
|
|
12
|
-
if (r < 0 ||
|
|
13
|
-
r > 255 ||
|
|
14
|
-
g < 0 ||
|
|
15
|
-
g > 255 ||
|
|
16
|
-
b < 0 ||
|
|
17
|
-
b > 255 ||
|
|
18
|
-
a < 0 ||
|
|
19
|
-
a > 1) {
|
|
20
|
-
throw new Error("Invalid rgba value");
|
|
21
|
-
}
|
|
22
11
|
const rPrime = division(r, 255);
|
|
23
12
|
const gPrime = division(g, 255);
|
|
24
13
|
const bPrime = division(b, 255);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgbaToCmyk.js","sourceRoot":"","sources":["../../src/Color/rgbaToCmyk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAA6D,EAAE;IAC9D,
|
|
1
|
+
{"version":3,"file":"rgbaToCmyk.js","sourceRoot":"","sources":["../../src/Color/rgbaToCmyk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAA6D,EAAE;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1E,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return hexCode.length === 1 ? `0${hexCode}` : hexCode;
|
|
4
|
-
};
|
|
1
|
+
import { padStart } from "../String/padStart";
|
|
2
|
+
const hex = (x) => padStart(x.toString(16), 2, "0");
|
|
5
3
|
/**
|
|
6
4
|
* Convert RGBA color to hexadecimal color code
|
|
7
5
|
* @param rgba Object containing r, g, b values (0-255) and optional a (0-1)
|
|
@@ -9,17 +7,6 @@ const hex = (x) => {
|
|
|
9
7
|
* @example rgbaToHexA({ r: 0, g: 0, b: 0, a: 1 }); // "#000000ff"
|
|
10
8
|
*/
|
|
11
9
|
export const rgbaToHexA = ({ r, g, b, a = 1, }) => {
|
|
12
|
-
// Validate RGBA values
|
|
13
|
-
if (r < 0 ||
|
|
14
|
-
r > 255 ||
|
|
15
|
-
g < 0 ||
|
|
16
|
-
g > 255 ||
|
|
17
|
-
b < 0 ||
|
|
18
|
-
b > 255 ||
|
|
19
|
-
a < 0 ||
|
|
20
|
-
a > 1) {
|
|
21
|
-
throw new Error("Invalid rgba value");
|
|
22
|
-
}
|
|
23
10
|
return `#${hex(r)}${hex(g)}${hex(b)}${hex(Math.round(a * 255))}`;
|
|
24
11
|
};
|
|
25
12
|
//# sourceMappingURL=rgbaToHexA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgbaToHexA.js","sourceRoot":"","sources":["../../src/Color/rgbaToHexA.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"rgbaToHexA.js","sourceRoot":"","sources":["../../src/Color/rgbaToHexA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAAU,EAAE;IACX,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC,CAAC"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* @param rgba Object containing r, g, b values (0-255) and optional a (0-1)
|
|
4
4
|
* @returns {Object} HSLA values (h as 0-360, s and l as 0-100, a as 0-1)
|
|
5
5
|
* @example rgbaToHsla({ r: 100, g: 100, b: 100, a: 1 }); // { h: 0, s: 0, l: 39.22, a: 1 }
|
|
6
|
-
* @throws {Error} If any input values are out of their valid ranges
|
|
7
6
|
*/
|
|
8
7
|
export declare const rgbaToHsla: ({ r, g, b, a, }: {
|
|
9
8
|
r: number;
|
|
@@ -8,20 +8,8 @@ import { subtract } from "../Math/subtract";
|
|
|
8
8
|
* @param rgba Object containing r, g, b values (0-255) and optional a (0-1)
|
|
9
9
|
* @returns {Object} HSLA values (h as 0-360, s and l as 0-100, a as 0-1)
|
|
10
10
|
* @example rgbaToHsla({ r: 100, g: 100, b: 100, a: 1 }); // { h: 0, s: 0, l: 39.22, a: 1 }
|
|
11
|
-
* @throws {Error} If any input values are out of their valid ranges
|
|
12
11
|
*/
|
|
13
12
|
export const rgbaToHsla = ({ r, g, b, a = 1, }) => {
|
|
14
|
-
// Validate RGBA values
|
|
15
|
-
if (r < 0 ||
|
|
16
|
-
r > 255 ||
|
|
17
|
-
g < 0 ||
|
|
18
|
-
g > 255 ||
|
|
19
|
-
b < 0 ||
|
|
20
|
-
b > 255 ||
|
|
21
|
-
a < 0 ||
|
|
22
|
-
a > 1) {
|
|
23
|
-
throw new Error("Invalid rgba value");
|
|
24
|
-
}
|
|
25
13
|
const rPrime = division(r, 255);
|
|
26
14
|
const gPrime = division(g, 255);
|
|
27
15
|
const bPrime = division(b, 255);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgbaToHsla.js","sourceRoot":"","sources":["../../src/Color/rgbaToHsla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"rgbaToHsla.js","sourceRoot":"","sources":["../../src/Color/rgbaToHsla.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,CAAC,EACD,CAAC,EACD,CAAC,EACD,CAAC,GAAG,CAAC,GAMN,EAAkD,EAAE;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,CAAC,GACL,IAAI,KAAK,CAAC;QACR,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7E,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACf,yDAAyD;QACzD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CACV,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EACxC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;gBACF,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1D,MAAM;YACR,CAAC;QACH,CAAC;QACD,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/Crypto/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAC1B,4DAA4D,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { BASE32_ALPHABET } from "./constants";
|
|
2
|
+
// O(1) lookup table for Base32 character-to-index mapping
|
|
3
|
+
const base32CharToIndex = new Map([...BASE32_ALPHABET].map((c, index) => [c, index]));
|
|
1
4
|
/**
|
|
2
5
|
* Decodes a Base32 string to Uint8Array
|
|
3
6
|
* @param {string} input - Base32 encoded string
|
|
@@ -5,16 +8,12 @@
|
|
|
5
8
|
* @example decodeBase32("JBSWY3DP"); // Uint8Array for "Hello"
|
|
6
9
|
*/
|
|
7
10
|
export const decodeBase32 = (input) => {
|
|
8
|
-
const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
|
|
9
11
|
const cleanedInput = input.replaceAll("=", "");
|
|
10
12
|
const result = [];
|
|
11
13
|
let buffer = 0;
|
|
12
14
|
let bufferLength = 0;
|
|
13
15
|
for (const char of cleanedInput) {
|
|
14
|
-
const value =
|
|
15
|
-
if (value === -1) {
|
|
16
|
-
throw new Error(`Invalid base32 character: ${char}`);
|
|
17
|
-
}
|
|
16
|
+
const value = base32CharToIndex.get(char) ?? 0;
|
|
18
17
|
buffer = (buffer << 5) | value;
|
|
19
18
|
bufferLength += 5;
|
|
20
19
|
if (bufferLength >= 8) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decodeBase32.js","sourceRoot":"","sources":["../../src/Crypto/decodeBase32.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE;IACxD,MAAM,
|
|
1
|
+
{"version":3,"file":"decodeBase32.js","sourceRoot":"","sources":["../../src/Crypto/decodeBase32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CACnD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE;IACxD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QAC/B,YAAY,IAAI,CAAC,CAAC;QAElB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACtB,YAAY,IAAI,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { BASE58_ALPHABET } from "./constants";
|
|
2
|
+
// O(1) lookup table for Base58 character-to-index mapping
|
|
3
|
+
const base58CharToIndex = new Map([...BASE58_ALPHABET].map((c, index) => [c, index]));
|
|
1
4
|
/**
|
|
2
5
|
* Decodes a Base58 string to Uint8Array
|
|
3
6
|
* @param {string} input - Base58 encoded string
|
|
@@ -5,20 +8,18 @@
|
|
|
5
8
|
* @example decodeBase58("9Ajdvzr"); // Uint8Array for "Hello"
|
|
6
9
|
*/
|
|
7
10
|
export const decodeBase58 = (input) => {
|
|
8
|
-
const alphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
9
11
|
let bigNumber = 0n;
|
|
10
12
|
for (const char of input) {
|
|
11
|
-
const value =
|
|
12
|
-
if (value === -1) {
|
|
13
|
-
throw new Error(`Invalid base58 character: ${char}`);
|
|
14
|
-
}
|
|
13
|
+
const value = base58CharToIndex.get(char) ?? 0;
|
|
15
14
|
bigNumber = bigNumber * 58n + BigInt(value);
|
|
16
15
|
}
|
|
16
|
+
// Use push + reverse instead of unshift to avoid O(n²) array shifting
|
|
17
17
|
const bytes = [];
|
|
18
18
|
while (bigNumber > 0) {
|
|
19
|
-
bytes.
|
|
19
|
+
bytes.push(Number(bigNumber % 256n));
|
|
20
20
|
bigNumber /= 256n;
|
|
21
21
|
}
|
|
22
|
+
bytes.reverse();
|
|
22
23
|
let leadingOnes = 0;
|
|
23
24
|
for (const char of input) {
|
|
24
25
|
if (char !== "1") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decodeBase58.js","sourceRoot":"","sources":["../../src/Crypto/decodeBase58.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"decodeBase58.js","sourceRoot":"","sources":["../../src/Crypto/decodeBase58.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,0DAA0D;AAC1D,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CACnD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAc,EAAE;IACxD,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,sEAAsE;IACtE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;QACrC,SAAS,IAAI,IAAI,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAEhB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QACD,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC;QACpB,GAAI,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAc;QAC5D,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BASE32_ALPHABET } from "./constants";
|
|
1
2
|
/**
|
|
2
3
|
* Encodes a string or Uint8Array to Base32 format
|
|
3
4
|
* @param {string | Uint8Array} input - The input to encode
|
|
@@ -5,7 +6,7 @@
|
|
|
5
6
|
* @example encodeBase32("Hello"); // "JBSWY3DP"
|
|
6
7
|
*/
|
|
7
8
|
export const encodeBase32 = (input) => {
|
|
8
|
-
const alphabet =
|
|
9
|
+
const alphabet = BASE32_ALPHABET;
|
|
9
10
|
const bytes = typeof input === "string" ? new TextEncoder().encode(input) : input;
|
|
10
11
|
let result = "";
|
|
11
12
|
let buffer = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodeBase32.js","sourceRoot":"","sources":["../../src/Crypto/encodeBase32.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA0B,EAAU,EAAE;IACjE,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"encodeBase32.js","sourceRoot":"","sources":["../../src/Crypto/encodeBase32.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA0B,EAAU,EAAE;IACjE,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEtE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,YAAY,IAAI,CAAC,CAAC;QAElB,OAAO,YAAY,IAAI,CAAC,EAAE,CAAC;YACzB,YAAY,IAAI,CAAC,CAAC;YAClB,MAAM,IAAI,QAAQ,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BASE58_ALPHABET } from "./constants";
|
|
1
2
|
/**
|
|
2
3
|
* Encodes a string or Uint8Array to Base58 format
|
|
3
4
|
* @param {string | Uint8Array} input - The input to encode
|
|
@@ -5,18 +6,21 @@
|
|
|
5
6
|
* @example encodeBase58("Hello"); // "9Ajdvzr"
|
|
6
7
|
*/
|
|
7
8
|
export const encodeBase58 = (input) => {
|
|
8
|
-
const alphabet =
|
|
9
|
+
const alphabet = BASE58_ALPHABET;
|
|
9
10
|
const bytes = typeof input === "string" ? new TextEncoder().encode(input) : input;
|
|
10
|
-
|
|
11
|
+
// Use array + reverse + join instead of string prepend to avoid O(n²) string concatenation
|
|
12
|
+
const chars = [];
|
|
11
13
|
let bigNumber = 0n;
|
|
12
14
|
for (const byte of bytes) {
|
|
13
15
|
bigNumber = bigNumber * 256n + BigInt(byte);
|
|
14
16
|
}
|
|
15
17
|
while (bigNumber > 0) {
|
|
16
18
|
const remainder = Number(bigNumber % 58n);
|
|
17
|
-
|
|
19
|
+
chars.push(alphabet[remainder]);
|
|
18
20
|
bigNumber /= 58n;
|
|
19
21
|
}
|
|
22
|
+
chars.reverse();
|
|
23
|
+
const encoded = chars.join("");
|
|
20
24
|
let leadingZeros = 0;
|
|
21
25
|
for (const byte of bytes) {
|
|
22
26
|
if (byte !== 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodeBase58.js","sourceRoot":"","sources":["../../src/Crypto/encodeBase58.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA0B,EAAU,EAAE;IACjE,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"encodeBase58.js","sourceRoot":"","sources":["../../src/Crypto/encodeBase58.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAA0B,EAAU,EAAE;IACjE,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,MAAM,KAAK,GACT,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEtE,2FAA2F;IAC3F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,SAAS,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAChC,SAAS,IAAI,GAAG,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,OAAO,EAAE,CAAC;IAChB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM;QACR,CAAC;QACD,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;AAC5C,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DataStructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DataStructure/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Least Recently Used (LRU) cache implementation
|
|
3
|
+
* using a Map for O(1) get/set operations.
|
|
4
|
+
*
|
|
5
|
+
* When the cache exceeds its capacity, the least recently used
|
|
6
|
+
* entry is evicted.
|
|
7
|
+
*
|
|
8
|
+
* ## Features
|
|
9
|
+
* - **get(key)**: Retrieve a value (moves it to most recently used)
|
|
10
|
+
* - **set(key, value)**: Insert or update a value
|
|
11
|
+
* - **has(key)**: Check if a key exists
|
|
12
|
+
* - **delete(key)**: Remove a specific entry
|
|
13
|
+
* - **clear()**: Remove all entries
|
|
14
|
+
* - **size**: Get the number of entries
|
|
15
|
+
*
|
|
16
|
+
* ## Time Complexity
|
|
17
|
+
* - get: O(1)
|
|
18
|
+
* - set: O(1)
|
|
19
|
+
* - has: O(1)
|
|
20
|
+
* - delete: O(1)
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const cache = new LRUCache<string, number>(3);
|
|
25
|
+
* cache.set("a", 1);
|
|
26
|
+
* cache.set("b", 2);
|
|
27
|
+
* cache.set("c", 3);
|
|
28
|
+
*
|
|
29
|
+
* cache.get("a"); // 1 (moves "a" to most recently used)
|
|
30
|
+
* cache.set("d", 4); // evicts "b" (least recently used)
|
|
31
|
+
*
|
|
32
|
+
* cache.has("b"); // false
|
|
33
|
+
* cache.get("a"); // 1
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @template K - The type of cache keys
|
|
37
|
+
* @template V - The type of cache values
|
|
38
|
+
*/
|
|
39
|
+
export declare class LRUCache<K, V> {
|
|
40
|
+
private capacity;
|
|
41
|
+
private map;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new LRUCache instance.
|
|
44
|
+
* @param capacity - The maximum number of entries the cache can hold
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const cache = new LRUCache<string, number>(100);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
constructor(capacity: number);
|
|
52
|
+
/**
|
|
53
|
+
* Returns the number of entries in the cache.
|
|
54
|
+
* @returns The current number of cached entries
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const cache = new LRUCache<string, number>(10);
|
|
59
|
+
* cache.set("a", 1);
|
|
60
|
+
* console.log(cache.size); // 1
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get size(): number;
|
|
64
|
+
/**
|
|
65
|
+
* Retrieves a value by key and marks it as most recently used.
|
|
66
|
+
* @param key - The key to look up
|
|
67
|
+
* @returns The value if found, or undefined if not in cache
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const cache = new LRUCache<string, number>(10);
|
|
72
|
+
* cache.set("a", 1);
|
|
73
|
+
* cache.get("a"); // 1
|
|
74
|
+
* cache.get("b"); // undefined
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
get(key: K): V | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Inserts or updates a key-value pair.
|
|
80
|
+
* If the cache is at capacity, the least recently used entry is evicted.
|
|
81
|
+
* @param key - The key to set
|
|
82
|
+
* @param value - The value to associate with the key
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* const cache = new LRUCache<string, number>(2);
|
|
87
|
+
* cache.set("a", 1);
|
|
88
|
+
* cache.set("b", 2);
|
|
89
|
+
* cache.set("c", 3); // evicts "a"
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
set(key: K, value: V): void;
|
|
93
|
+
/**
|
|
94
|
+
* Checks whether a key exists in the cache.
|
|
95
|
+
* Does not affect the recently-used order.
|
|
96
|
+
* @param key - The key to check
|
|
97
|
+
* @returns True if the key exists in the cache
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const cache = new LRUCache<string, number>(10);
|
|
102
|
+
* cache.set("a", 1);
|
|
103
|
+
* cache.has("a"); // true
|
|
104
|
+
* cache.has("b"); // false
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
has(key: K): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Removes an entry from the cache by key.
|
|
110
|
+
* @param key - The key to remove
|
|
111
|
+
* @returns True if the entry was found and removed
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const cache = new LRUCache<string, number>(10);
|
|
116
|
+
* cache.set("a", 1);
|
|
117
|
+
* cache.delete("a"); // true
|
|
118
|
+
* cache.delete("b"); // false
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
delete(key: K): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Removes all entries from the cache.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* const cache = new LRUCache<string, number>(10);
|
|
128
|
+
* cache.set("a", 1);
|
|
129
|
+
* cache.set("b", 2);
|
|
130
|
+
* cache.clear();
|
|
131
|
+
* console.log(cache.size); // 0
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
clear(): void;
|
|
135
|
+
/**
|
|
136
|
+
* Evicts the least recently used entry (first inserted).
|
|
137
|
+
*/
|
|
138
|
+
private evict;
|
|
139
|
+
}
|