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
|
@@ -28,7 +28,7 @@ export function getValue(object, path) {
|
|
|
28
28
|
const segments = [];
|
|
29
29
|
const parts = path.split(".");
|
|
30
30
|
for (const part of parts) {
|
|
31
|
-
const arrayMatch = /^(.+?)\[(-?\d+)
|
|
31
|
+
const arrayMatch = /^(.+?)\[(-?\d+)]$/.exec(part);
|
|
32
32
|
if (arrayMatch) {
|
|
33
33
|
const [, key, indexString] = arrayMatch;
|
|
34
34
|
segments.push({ key, index: Number(indexString) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getValue.js","sourceRoot":"","sources":["../../../src/String/formatString/getValue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAe,EAAE,IAAY;IACpD,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"getValue.js","sourceRoot":"","sources":["../../../src/String/formatString/getValue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAe,EAAE,IAAY;IACpD,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,UAAU,CAAC;YACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,MAAM,CAAC;IAErB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACnD,OAAO;QACT,CAAC;QAED,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -3,19 +3,11 @@ import { unwrap } from "../Tool/unwrap";
|
|
|
3
3
|
* Converts Base64 to string
|
|
4
4
|
* @param {string} base64String - Base64 encoded string
|
|
5
5
|
* @returns Decoded string from Base64
|
|
6
|
-
* @throws {Error} When input is not a valid Base64 string
|
|
7
6
|
*/
|
|
8
7
|
export const fromBase64 = (base64String) => {
|
|
9
8
|
if (base64String === "") {
|
|
10
9
|
return "";
|
|
11
10
|
}
|
|
12
|
-
|
|
13
|
-
return new TextDecoder().decode(Uint8Array.from(atob(base64String)
|
|
14
|
-
.split("")
|
|
15
|
-
.map((c) => unwrap(c.codePointAt(0), "panic: invalid base64 string"))));
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
throw new Error("Invalid Base64 string");
|
|
19
|
-
}
|
|
11
|
+
return new TextDecoder().decode(Uint8Array.from([...atob(base64String)].map((c) => unwrap(c.codePointAt(0), "panic: invalid base64 string"))));
|
|
20
12
|
};
|
|
21
13
|
//# sourceMappingURL=fromBase64.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromBase64.js","sourceRoot":"","sources":["../../src/String/fromBase64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"fromBase64.js","sourceRoot":"","sources":["../../src/String/fromBase64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAoB,EAAU,EAAE;IACzD,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAC7B,UAAU,CAAC,IAAI,CACb,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC,CACzD,CACF,CACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { levenshteinDistance } from "./levenshteinDistance";
|
|
2
1
|
import { quickSort } from "../Array/quickSort";
|
|
3
2
|
/**
|
|
4
3
|
* Perform fuzzy string matching on an array of strings
|
|
@@ -15,12 +14,81 @@ export const fuzzySearch = (query, items, threshold = 0.6) => {
|
|
|
15
14
|
return [];
|
|
16
15
|
}
|
|
17
16
|
const results = [];
|
|
17
|
+
const lowerQuery = query.toLowerCase();
|
|
18
|
+
const queryLength = query.length;
|
|
19
|
+
// Reusable row array to avoid allocations
|
|
20
|
+
// We allocate enough space for typical use cases or grow it if needed.
|
|
21
|
+
// Using dynamic array instead of new Array() to satisfy linter
|
|
22
|
+
const rowBuffer = [];
|
|
18
23
|
for (const item of items) {
|
|
19
|
-
const
|
|
20
|
-
const maxLength = Math.max(
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
+
const itemLength = item.length;
|
|
25
|
+
const maxLength = Math.max(itemLength, queryLength);
|
|
26
|
+
const maxAllowedDistance = Math.floor(maxLength * (1 - threshold));
|
|
27
|
+
if (Math.abs(queryLength - itemLength) > maxAllowedDistance) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const lowerItem = item.toLowerCase();
|
|
31
|
+
// Inline Levenshtein with early exit
|
|
32
|
+
// We want to transform lowerQuery -> lowerItem (or vice versa)
|
|
33
|
+
// To minimize space, we use the shorter string for the columns (row array).
|
|
34
|
+
let string1 = lowerQuery;
|
|
35
|
+
let string2 = lowerItem;
|
|
36
|
+
let length1 = queryLength;
|
|
37
|
+
let length2 = itemLength;
|
|
38
|
+
if (length1 > length2) {
|
|
39
|
+
string1 = lowerItem;
|
|
40
|
+
string2 = lowerQuery;
|
|
41
|
+
length1 = itemLength;
|
|
42
|
+
length2 = queryLength;
|
|
43
|
+
}
|
|
44
|
+
// Initialize first row: 0, 1, 2, ..., length1
|
|
45
|
+
for (let columnIndex = 0; columnIndex <= length1; columnIndex++) {
|
|
46
|
+
rowBuffer[columnIndex] = columnIndex;
|
|
47
|
+
}
|
|
48
|
+
let minDistanceInRow = 0;
|
|
49
|
+
// Iterate through each character of string2 (rows)
|
|
50
|
+
for (let rowIndex = 1; rowIndex <= length2; rowIndex++) {
|
|
51
|
+
let previousDiagonal = rowBuffer[0];
|
|
52
|
+
rowBuffer[0] = rowIndex;
|
|
53
|
+
// eslint-disable-next-line unicorn/prefer-code-point
|
|
54
|
+
const char2 = string2.charCodeAt(rowIndex - 1);
|
|
55
|
+
// Reset min distance for this row
|
|
56
|
+
minDistanceInRow = rowBuffer[0];
|
|
57
|
+
for (let columnIndex = 1; columnIndex <= length1; columnIndex++) {
|
|
58
|
+
const temporary = rowBuffer[columnIndex];
|
|
59
|
+
// eslint-disable-next-line unicorn/prefer-code-point
|
|
60
|
+
const cost = string1.charCodeAt(columnIndex - 1) === char2 ? 0 : 1;
|
|
61
|
+
// min(deletion, insertion, substitution)
|
|
62
|
+
// deletion: row[j] (from previous row)
|
|
63
|
+
// insertion: row[j-1] (current row)
|
|
64
|
+
// substitution: previousDiagonal + cost
|
|
65
|
+
const deletion = rowBuffer[columnIndex] + 1;
|
|
66
|
+
const insertion = rowBuffer[columnIndex - 1] + 1;
|
|
67
|
+
const substitution = previousDiagonal + cost;
|
|
68
|
+
let value = deletion;
|
|
69
|
+
if (insertion < value) {
|
|
70
|
+
value = insertion;
|
|
71
|
+
}
|
|
72
|
+
if (substitution < value) {
|
|
73
|
+
value = substitution;
|
|
74
|
+
}
|
|
75
|
+
rowBuffer[columnIndex] = value;
|
|
76
|
+
previousDiagonal = temporary;
|
|
77
|
+
if (value < minDistanceInRow) {
|
|
78
|
+
minDistanceInRow = value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Early exit if the minimum distance in this row exceeds the max allowed
|
|
82
|
+
if (minDistanceInRow > maxAllowedDistance) {
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (minDistanceInRow <= maxAllowedDistance) {
|
|
87
|
+
const trueDistance = rowBuffer[length1];
|
|
88
|
+
if (trueDistance <= maxAllowedDistance) {
|
|
89
|
+
const score = 1 - trueDistance / maxLength;
|
|
90
|
+
results.push({ item, score });
|
|
91
|
+
}
|
|
24
92
|
}
|
|
25
93
|
}
|
|
26
94
|
return quickSort(results, (a, b) => b.score - a.score);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzySearch.js","sourceRoot":"","sources":["../../src/String/fuzzySearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fuzzySearch.js","sourceRoot":"","sources":["../../src/String/fuzzySearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export const kebabCase = (string_) => {
|
|
|
12
12
|
// Replace spaces and underscores with dashes
|
|
13
13
|
.replaceAll(/[\s_]+/g, "-")
|
|
14
14
|
// Remove special characters except alphanumeric and dashes
|
|
15
|
-
.replaceAll(/[
|
|
15
|
+
.replaceAll(/[^\dA-Za-z-]/g, "-")
|
|
16
16
|
// Remove multiple consecutive dashes
|
|
17
17
|
.replaceAll(/-+/g, "-")
|
|
18
18
|
// Remove leading and trailing dashes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kebabCase.js","sourceRoot":"","sources":["../../src/String/kebabCase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAU,EAAE;IACnD,OAAO,CACL,OAAO;QACL,8CAA8C;SAC7C,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACvC,6EAA6E;SAC5E,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC;QAC5C,6CAA6C;SAC5C,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;QAC3B,2DAA2D;SAC1D,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"kebabCase.js","sourceRoot":"","sources":["../../src/String/kebabCase.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAe,EAAU,EAAE;IACnD,OAAO,CACL,OAAO;QACL,8CAA8C;SAC7C,UAAU,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACvC,6EAA6E;SAC5E,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC;QAC5C,6CAA6C;SAC5C,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;QAC3B,2DAA2D;SAC1D,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC;QACjC,qCAAqC;SACpC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;QACvB,qCAAqC;SACpC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;SACxB,WAAW,EAAE,CACjB,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -23,8 +23,7 @@ export const levenshteinDistance = (string1, string2) => {
|
|
|
23
23
|
}
|
|
24
24
|
// Create a single row array to store distances
|
|
25
25
|
// We only need the current row and the previous diagonal value
|
|
26
|
-
|
|
27
|
-
const row = new Array(length1 + 1);
|
|
26
|
+
const row = Array.from({ length: length1 + 1 });
|
|
28
27
|
// Initialize first row (0 to length1)
|
|
29
28
|
for (let index = 0; index <= length1; index++) {
|
|
30
29
|
row[index] = index;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levenshteinDistance.js","sourceRoot":"","sources":["../../src/String/levenshteinDistance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,OAAe,EACP,EAAE;IACV,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oFAAoF;IACpF,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;QACtB,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,+CAA+C;IAC/C,+DAA+D;IAC/D,
|
|
1
|
+
{"version":3,"file":"levenshteinDistance.js","sourceRoot":"","sources":["../../src/String/levenshteinDistance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAe,EACf,OAAe,EACP,EAAE;IACV,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,oFAAoF;IACpF,IAAI,OAAO,GAAG,OAAO,EAAE,CAAC;QACtB,OAAO,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,+CAA+C;IAC/C,+DAA+D;IAC/D,MAAM,GAAG,GAAa,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;IAE1D,sCAAsC;IACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4CAA4C;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,IAAI,gBAAgB,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC;QACtE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,sDAAsD;QAEtE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,gEAAgE;YAC9F,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAElD,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CACnB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,kDAAkD;YAClE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,sDAAsD;YAC1E,gBAAgB,GAAG,IAAI,CACxB,CAAC;YAEF,gBAAgB,GAAG,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC"}
|
|
@@ -6,9 +6,30 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export const randomString = (size = 8, char = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") => {
|
|
8
8
|
const length = char.length;
|
|
9
|
+
if (length === 0) {
|
|
10
|
+
return "";
|
|
11
|
+
}
|
|
9
12
|
let id = "";
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
// 65536 bytes is the limit for getRandomValues in some environments
|
|
14
|
+
// Uint32Array has 4 bytes per element, so 65536 / 4 = 16384 elements.
|
|
15
|
+
const CHUNK_SIZE = 16_384;
|
|
16
|
+
const bufferSize = Math.min(size, CHUNK_SIZE);
|
|
17
|
+
const buffer = new Uint32Array(bufferSize);
|
|
18
|
+
// Calculate the rejection limit to avoid modulo bias.
|
|
19
|
+
// We want to reject values that fall into the remainder range of the random number generator
|
|
20
|
+
// relative to the character set length.
|
|
21
|
+
// 2^32 = 4294967296
|
|
22
|
+
const MAX_UINT32_PLUS_ONE = 4_294_967_296;
|
|
23
|
+
const limit = MAX_UINT32_PLUS_ONE - (MAX_UINT32_PLUS_ONE % length);
|
|
24
|
+
while (id.length < size) {
|
|
25
|
+
globalThis.crypto.getRandomValues(buffer);
|
|
26
|
+
for (let index = 0; index < bufferSize && id.length < size; index++) {
|
|
27
|
+
const value = buffer[index];
|
|
28
|
+
// Rejection sampling: only use values less than the limit to ensure uniform distribution
|
|
29
|
+
if (value < limit) {
|
|
30
|
+
id += char[value % length];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
12
33
|
}
|
|
13
34
|
return id;
|
|
14
35
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"randomString.js","sourceRoot":"","sources":["../../src/String/randomString.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,gEAAgE,EACvE,EAAE;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"randomString.js","sourceRoot":"","sources":["../../src/String/randomString.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,gEAAgE,EACvE,EAAE;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,UAAU,GAAG,MAAM,CAAC;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IAE3C,sDAAsD;IACtD,6FAA6F;IAC7F,wCAAwC;IACxC,oBAAoB;IACpB,MAAM,mBAAmB,GAAG,aAAa,CAAC;IAC1C,MAAM,KAAK,GAAG,mBAAmB,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC,CAAC;IAEnE,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACxB,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE1C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,yFAAyF;YACzF,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;gBAClB,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverseString.js","sourceRoot":"","sources":["../../src/String/reverseString.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"reverseString.js","sourceRoot":"","sources":["../../src/String/reverseString.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IACpD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
package/module/String/slugify.js
CHANGED
|
@@ -12,7 +12,7 @@ export const slugify = (string_) => {
|
|
|
12
12
|
.normalize("NFD")
|
|
13
13
|
.replaceAll(/[\u0300-\u036F]/g, "")
|
|
14
14
|
.toLowerCase()
|
|
15
|
-
.replaceAll(/[^\w
|
|
15
|
+
.replaceAll(/[^\s\w-]/g, "-")
|
|
16
16
|
.replaceAll(/\s+/g, "-")
|
|
17
17
|
.replaceAll(/_+/g, "-")
|
|
18
18
|
.replaceAll(/-+/g, "-")
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* @returns {string} - Converted string
|
|
5
5
|
*/
|
|
6
6
|
export const toHalfWidth = (string_) => string_.replaceAll(/[0-9A-Za-z]/g, (s) => {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const code = s.codePointAt(0);
|
|
8
|
+
// biome-ignore lint/style/noNonNullAssertion: code is not null
|
|
9
9
|
return String.fromCodePoint(code - 0xfe_e0);
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=toHalfWidth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toHalfWidth.js","sourceRoot":"","sources":["../../src/String/toHalfWidth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE,CACrD,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;IACvC,
|
|
1
|
+
{"version":3,"file":"toHalfWidth.js","sourceRoot":"","sources":["../../src/String/toHalfWidth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAU,EAAE,CACrD,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE;IACvC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,OAAO,MAAM,CAAC,aAAa,CAAC,IAAK,GAAG,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/String/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAe,EACf,MAAc,EACd,MAAM,GAAG,KAAK,EACN,EAAE;IACV,IAAI,
|
|
1
|
+
{"version":3,"file":"truncate.js","sourceRoot":"","sources":["../../src/String/truncate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAe,EACf,MAAc,EACd,MAAM,GAAG,KAAK,EACN,EAAE;IACV,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -29,7 +29,7 @@ const htmlUnescapeMap = {
|
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
31
|
export const unescapeHtml = (string_) => {
|
|
32
|
-
const entityRegex = /&(?:amp|lt|gt|quot|#39|#x27|#x2F|#x60|#x3D);|&#(\d*);|&#x([
|
|
32
|
+
const entityRegex = /&(?:amp|lt|gt|quot|#39|#x27|#x2F|#x60|#x3D);|&#(\d*);|&#x([\dA-Fa-f]*);/g;
|
|
33
33
|
return string_.replaceAll(entityRegex, (match, dec, hex) => {
|
|
34
34
|
if (dec !== undefined) {
|
|
35
35
|
const codePoint = Number.parseInt(dec, 10);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unescapeHtml.js","sourceRoot":"","sources":["../../src/String/unescapeHtml.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"unescapeHtml.js","sourceRoot":"","sources":["../../src/String/unescapeHtml.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,WAAW,GACf,0EAA0E,CAAC;IAE7E,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OneHourMs, OneMinuteMs, OneSecondMs } from "../Consts/clock";
|
|
1
2
|
import { division, multiplication } from "../Math";
|
|
2
3
|
import { normalizeTimeUnit } from "../Time/normalizeTimeUnit";
|
|
3
4
|
/**
|
|
@@ -5,9 +6,9 @@ import { normalizeTimeUnit } from "../Time/normalizeTimeUnit";
|
|
|
5
6
|
*/
|
|
6
7
|
const conversionRates = {
|
|
7
8
|
milliseconds: 1,
|
|
8
|
-
seconds:
|
|
9
|
-
minutes:
|
|
10
|
-
hours:
|
|
9
|
+
seconds: OneSecondMs,
|
|
10
|
+
minutes: OneMinuteMs,
|
|
11
|
+
hours: OneHourMs,
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* Converts time between different units
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertTime.js","sourceRoot":"","sources":["../../src/Time/convertTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,MAAM,eAAe,GAA6B;IAChD,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"convertTime.js","sourceRoot":"","sources":["../../src/Time/convertTime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,MAAM,eAAe,GAA6B;IAChD,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAsB,EACtB,QAAkC,EAClC,MAAgC,EACxB,EAAE;IACV,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,cAAc,CACjC,YAAY,EACZ,eAAe,CAAC,kBAAkB,CAAC,CACpC,CAAC;IACF,OAAO,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnE,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes characters in a string for use in a regular expression.
|
|
3
|
+
* @param {string} string - The string to escape.
|
|
4
|
+
* @returns {string} The escaped string.
|
|
5
|
+
* @example
|
|
6
|
+
* escapeRegExp("a.b"); // "a\\.b"
|
|
7
|
+
*/
|
|
8
|
+
export declare const escapeRegExp: (string: string) => string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escapes characters in a string for use in a regular expression.
|
|
3
|
+
* @param {string} string - The string to escape.
|
|
4
|
+
* @returns {string} The escaped string.
|
|
5
|
+
* @example
|
|
6
|
+
* escapeRegExp("a.b"); // "a\\.b"
|
|
7
|
+
*/
|
|
8
|
+
export const escapeRegExp = (string) => {
|
|
9
|
+
return string.replaceAll(/[$()*+.?[\\\]^{|}]/g, String.raw `\$&`);
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=escapeRegExp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escapeRegExp.js","sourceRoot":"","sources":["../../src/Tool/escapeRegExp.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;IACrD,OAAO,MAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;AACnE,CAAC,CAAC"}
|
package/module/Tool/index.d.ts
CHANGED
package/module/Tool/index.js
CHANGED
package/module/Tool/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tool/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds a URL with query parameters appended.
|
|
3
|
+
*
|
|
4
|
+
* @param base - The base URL string
|
|
5
|
+
* @param params - An object of key-value pairs to append as query parameters
|
|
6
|
+
* @returns The complete URL string with query parameters
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* buildUrl("https://example.com", { page: "1", q: "search" });
|
|
11
|
+
* // "https://example.com/?page=1&q=search"
|
|
12
|
+
*
|
|
13
|
+
* buildUrl("https://example.com/path", { foo: "bar" });
|
|
14
|
+
* // "https://example.com/path?foo=bar"
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare const buildUrl: (base: string, parameters?: Record<string, string>) => string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds a URL with query parameters appended.
|
|
3
|
+
*
|
|
4
|
+
* @param base - The base URL string
|
|
5
|
+
* @param params - An object of key-value pairs to append as query parameters
|
|
6
|
+
* @returns The complete URL string with query parameters
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* buildUrl("https://example.com", { page: "1", q: "search" });
|
|
11
|
+
* // "https://example.com/?page=1&q=search"
|
|
12
|
+
*
|
|
13
|
+
* buildUrl("https://example.com/path", { foo: "bar" });
|
|
14
|
+
* // "https://example.com/path?foo=bar"
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export const buildUrl = (base, parameters = {}) => {
|
|
18
|
+
const url = new URL(base);
|
|
19
|
+
for (const key of Object.keys(parameters)) {
|
|
20
|
+
url.searchParams.append(key, parameters[key]);
|
|
21
|
+
}
|
|
22
|
+
return url.toString();
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=buildUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildUrl.js","sourceRoot":"","sources":["../../src/URL/buildUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAY,EACZ,aAAqC,EAAE,EAC/B,EAAE;IACV,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/URL/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether a URL string is absolute (RFC 3986).
|
|
3
|
+
*
|
|
4
|
+
* An absolute URL starts with a scheme followed by a colon,
|
|
5
|
+
* where the scheme begins with a letter and may contain
|
|
6
|
+
* letters, digits, plus, hyphen, or period.
|
|
7
|
+
*
|
|
8
|
+
* @param url - The URL string to check
|
|
9
|
+
* @returns True if the URL is absolute, false otherwise
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* isAbsoluteUrl("https://example.com"); // true
|
|
14
|
+
* isAbsoluteUrl("ftp://files.example"); // true
|
|
15
|
+
* isAbsoluteUrl("/path/to/page"); // false
|
|
16
|
+
* isAbsoluteUrl("relative/path"); // false
|
|
17
|
+
* isAbsoluteUrl("mailto:user@host"); // true
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const isAbsoluteUrl: (url: string) => boolean;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether a URL string is absolute (RFC 3986).
|
|
3
|
+
*
|
|
4
|
+
* An absolute URL starts with a scheme followed by a colon,
|
|
5
|
+
* where the scheme begins with a letter and may contain
|
|
6
|
+
* letters, digits, plus, hyphen, or period.
|
|
7
|
+
*
|
|
8
|
+
* @param url - The URL string to check
|
|
9
|
+
* @returns True if the URL is absolute, false otherwise
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* isAbsoluteUrl("https://example.com"); // true
|
|
14
|
+
* isAbsoluteUrl("ftp://files.example"); // true
|
|
15
|
+
* isAbsoluteUrl("/path/to/page"); // false
|
|
16
|
+
* isAbsoluteUrl("relative/path"); // false
|
|
17
|
+
* isAbsoluteUrl("mailto:user@host"); // true
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const isAbsoluteUrl = (url) => {
|
|
21
|
+
return /^[a-z][\d+.a-z-]*:/i.test(url);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=isAbsoluteUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAbsoluteUrl.js","sourceRoot":"","sources":["../../src/URL/isAbsoluteUrl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAW,EAAE;IACpD,OAAO,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Joins multiple path segments into a single path,
|
|
3
|
+
* normalizing slashes between segments.
|
|
4
|
+
*
|
|
5
|
+
* Leading slash of the first segment is preserved.
|
|
6
|
+
* Trailing slash of the last segment is preserved.
|
|
7
|
+
* All intermediate slashes are normalized to a single slash.
|
|
8
|
+
*
|
|
9
|
+
* @param segments - The path segments to join
|
|
10
|
+
* @returns The joined and normalized path
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* joinPath("https://example.com/", "/api/", "/users");
|
|
15
|
+
* // "https://example.com/api/users"
|
|
16
|
+
*
|
|
17
|
+
* joinPath("/a/", "/b/", "/c");
|
|
18
|
+
* // "/a/b/c"
|
|
19
|
+
*
|
|
20
|
+
* joinPath("a", "b", "c");
|
|
21
|
+
* // "a/b/c"
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare const joinPath: (...segments: string[]) => string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Joins multiple path segments into a single path,
|
|
3
|
+
* normalizing slashes between segments.
|
|
4
|
+
*
|
|
5
|
+
* Leading slash of the first segment is preserved.
|
|
6
|
+
* Trailing slash of the last segment is preserved.
|
|
7
|
+
* All intermediate slashes are normalized to a single slash.
|
|
8
|
+
*
|
|
9
|
+
* @param segments - The path segments to join
|
|
10
|
+
* @returns The joined and normalized path
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* joinPath("https://example.com/", "/api/", "/users");
|
|
15
|
+
* // "https://example.com/api/users"
|
|
16
|
+
*
|
|
17
|
+
* joinPath("/a/", "/b/", "/c");
|
|
18
|
+
* // "/a/b/c"
|
|
19
|
+
*
|
|
20
|
+
* joinPath("a", "b", "c");
|
|
21
|
+
* // "a/b/c"
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export const joinPath = (...segments) => {
|
|
25
|
+
if (segments.length === 0) {
|
|
26
|
+
return "";
|
|
27
|
+
}
|
|
28
|
+
const normalized = [];
|
|
29
|
+
for (let index = 0; index < segments.length; index++) {
|
|
30
|
+
let segment = segments[index];
|
|
31
|
+
if (index > 0) {
|
|
32
|
+
segment = segment.replace(/^\/+/, "");
|
|
33
|
+
}
|
|
34
|
+
if (index < segments.length - 1) {
|
|
35
|
+
segment = segment.replace(/\/+$/, "");
|
|
36
|
+
}
|
|
37
|
+
if (segment.length > 0) {
|
|
38
|
+
normalized.push(segment);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return normalized.join("/");
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=joinPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinPath.js","sourceRoot":"","sources":["../../src/URL/joinPath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAkB,EAAU,EAAE;IACxD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a query string into a key-value record.
|
|
3
|
+
*
|
|
4
|
+
* Accepts either a full URL or a raw query string
|
|
5
|
+
* (with or without leading "?").
|
|
6
|
+
*
|
|
7
|
+
* @param query - The query string or URL to parse
|
|
8
|
+
* @returns A record of key-value pairs from the query string
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* parseQueryString("?page=1&q=search");
|
|
13
|
+
* // { page: "1", q: "search" }
|
|
14
|
+
*
|
|
15
|
+
* parseQueryString("foo=bar&baz=qux");
|
|
16
|
+
* // { foo: "bar", baz: "qux" }
|
|
17
|
+
*
|
|
18
|
+
* parseQueryString("https://example.com?a=1&b=2");
|
|
19
|
+
* // { a: "1", b: "2" }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const parseQueryString: (query: string) => Record<string, string>;
|