umt 2.10.1 → 2.12.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 +3 -2
- package/module/Advance/rangeAdvance.d.ts +1 -1
- package/module/Advance/rangeAdvance.js.map +1 -1
- package/module/Array/checkFlagAlignment.js +3 -0
- package/module/Array/checkFlagAlignment.js.map +1 -1
- package/module/Array/compact.js.map +1 -1
- package/module/Array/dualPivotQuickSort.js +4 -3
- package/module/Array/dualPivotQuickSort.js.map +1 -1
- package/module/Array/getArraysCommon.js +33 -12
- package/module/Array/getArraysCommon.js.map +1 -1
- package/module/Array/groupBy.js +1 -1
- package/module/Array/insertionSort.js +4 -10
- package/module/Array/insertionSort.js.map +1 -1
- package/module/Array/quickSort.js +4 -3
- package/module/Array/quickSort.js.map +1 -1
- package/module/Array/range.js +1 -1
- package/module/Array/range.js.map +1 -1
- package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js +2 -2
- package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js.map +1 -1
- package/module/Array/sortingHelpers/insertionSortRange.d.ts +5 -0
- package/module/Array/sortingHelpers/insertionSortRange.js +15 -0
- package/module/Array/sortingHelpers/insertionSortRange.js.map +1 -0
- package/module/Array/timSort.js +7 -5
- package/module/Array/timSort.js.map +1 -1
- package/module/Array/ultraNumberSort.js +18 -18
- package/module/Array/ultraNumberSort.js.map +1 -1
- package/module/Color/hexaToRgba.d.ts +1 -1
- package/module/Color/hexaToRgba.js +1 -1
- package/module/Consts/clock.d.ts +1 -1
- package/module/Consts/clock.js.map +1 -1
- package/module/Crypto/decodeBase58.js +4 -4
- package/module/Crypto/decodeBase58.js.map +1 -1
- package/module/Crypto/encodeBase58.js +4 -4
- package/module/Crypto/encodeBase58.js.map +1 -1
- package/module/DataStructure/priorityQueue.d.ts +4 -4
- package/module/DataStructure/priorityQueue.js +3 -2
- package/module/DataStructure/priorityQueue.js.map +1 -1
- package/module/Date/dayOfWeek.js +1 -1
- package/module/Date/format.js +1 -1
- package/module/IP/ipToBinaryString.js +1 -1
- package/module/IP/ipToBinaryString.js.map +1 -1
- package/module/IP/subnetMaskToCidr.js +1 -1
- package/module/IP/subnetMaskToCidr.js.map +1 -1
- package/module/Math/calculator/core.js +15 -5
- package/module/Math/calculator/core.js.map +1 -1
- package/module/Math/gcd.js +5 -2
- package/module/Math/gcd.js.map +1 -1
- package/module/Math/mathConverter.js +1 -1
- package/module/Math/mathConverter.js.map +1 -1
- package/module/Math/mode.js +3 -2
- package/module/Math/mode.js.map +1 -1
- package/module/Math/nCr.js +4 -1
- package/module/Math/nCr.js.map +1 -1
- package/module/Math/nPr.js +4 -1
- package/module/Math/nPr.js.map +1 -1
- package/module/Math/primeFactorization.js +5 -1
- package/module/Math/primeFactorization.js.map +1 -1
- package/module/Math/reduce.js +4 -1
- package/module/Math/reduce.js.map +1 -1
- package/module/Math/solveEquation.js +1 -1
- package/module/Math/solveEquation.js.map +1 -1
- package/module/Math/uuidv7.js +11 -14
- package/module/Math/uuidv7.js.map +1 -1
- package/module/Object/mergeDeep.js.map +1 -1
- package/module/Object/omit.js +1 -0
- package/module/Object/omit.js.map +1 -1
- package/module/Object/pickDeep.js +1 -1
- package/module/String/formatString/applyFormatter.js +1 -1
- package/module/String/formatString/applyFormatter.js.map +1 -1
- package/module/String/formatString/getValue.js +1 -1
- package/module/String/formatString/getValue.js.map +1 -1
- package/module/String/fromBase64.js +2 -1
- package/module/String/fromBase64.js.map +1 -1
- package/module/String/fuzzySearch.d.ts +2 -2
- package/module/String/fuzzySearch.js +2 -1
- package/module/String/fuzzySearch.js.map +1 -1
- package/module/String/levenshteinDistance.d.ts +2 -2
- package/module/String/levenshteinDistance.js +28 -18
- package/module/String/levenshteinDistance.js.map +1 -1
- package/module/String/padStart.d.ts +0 -1
- package/module/String/padStart.js +2 -6
- package/module/String/padStart.js.map +1 -1
- package/module/String/reverseString.js +1 -1
- package/module/String/reverseString.js.map +1 -1
- 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/Tool/unwrap.d.ts +9 -0
- package/module/Tool/unwrap.js +15 -0
- package/module/Tool/unwrap.js.map +1 -0
- package/module/Validate/array/core.js +1 -1
- package/module/Validate/core/index.js +2 -2
- package/module/Validate/index.d.ts +1 -0
- package/module/Validate/index.js +1 -0
- package/module/Validate/index.js.map +1 -1
- package/module/Validate/isDeepEqual.js.map +1 -1
- package/module/Validate/object/core.js +1 -1
- package/module/Validate/parseEmail.d.ts +14 -0
- package/module/Validate/parseEmail.js +24 -0
- package/module/Validate/parseEmail.js.map +1 -0
- package/module/Validate/string/index.d.ts +1 -1
- package/module/Validate/string/index.js +1 -1
- package/module/Validate/string/index.js.map +1 -1
- package/module/Validate/string/uuid.js +10 -11
- package/module/Validate/string/uuid.js.map +1 -1
- package/module/Validate/string/{email.d.ts → validateEmail.d.ts} +2 -1
- package/module/Validate/string/validateEmail.js +23 -0
- package/module/Validate/string/validateEmail.js.map +1 -0
- package/module/es5/Advance/rangeAdvance.d.ts +1 -1
- package/module/es5/Array/checkFlagAlignment.js +3 -0
- package/module/es5/Array/dualPivotQuickSort.js +10 -3
- package/module/es5/Array/getArraysCommon.js +45 -19
- package/module/es5/Array/groupBy.js +2 -1
- package/module/es5/Array/insertionSort.js +10 -10
- package/module/es5/Array/quickSort.js +10 -3
- package/module/es5/Array/range.js +1 -1
- package/module/es5/Array/sortingHelpers/applyInsertionSortIfNeeded.js +2 -2
- package/module/es5/Array/sortingHelpers/insertionSortRange.d.ts +5 -0
- package/module/es5/Array/sortingHelpers/insertionSortRange.js +20 -0
- package/module/es5/Array/timSort.js +13 -5
- package/module/es5/Array/ultraNumberSort.js +38 -34
- package/module/es5/Color/hexaToRgba.d.ts +1 -1
- package/module/es5/Color/hexaToRgba.js +1 -1
- package/module/es5/Consts/clock.d.ts +1 -1
- package/module/es5/Crypto/decodeBase58.js +4 -4
- package/module/es5/Crypto/encodeBase58.js +4 -4
- package/module/es5/DataStructure/priorityQueue.d.ts +4 -4
- package/module/es5/DataStructure/priorityQueue.js +3 -2
- package/module/es5/Date/dayOfWeek.js +2 -1
- package/module/es5/Date/format.js +1 -1
- package/module/es5/IP/ipToBinaryString.js +1 -1
- package/module/es5/IP/subnetMaskToCidr.js +1 -1
- package/module/es5/Math/calculator/core.js +15 -5
- package/module/es5/Math/gcd.js +5 -2
- package/module/es5/Math/mathConverter.js +1 -1
- package/module/es5/Math/mode.js +4 -4
- package/module/es5/Math/nCr.js +4 -1
- package/module/es5/Math/nPr.js +4 -1
- package/module/es5/Math/primeFactorization.js +8 -1
- package/module/es5/Math/reduce.js +8 -1
- package/module/es5/Math/solveEquation.js +1 -1
- package/module/es5/Math/uuidv7.js +13 -14
- package/module/es5/Object/omit.js +1 -0
- package/module/es5/Object/pickDeep.js +2 -1
- package/module/es5/String/formatString/applyFormatter.js +1 -1
- package/module/es5/String/formatString/getValue.js +1 -1
- package/module/es5/String/formatString/index.js +1 -1
- package/module/es5/String/fromBase64.js +2 -1
- package/module/es5/String/fuzzySearch.d.ts +2 -2
- package/module/es5/String/fuzzySearch.js +2 -1
- package/module/es5/String/hasNoLetters.js +1 -1
- package/module/es5/String/levenshteinDistance.d.ts +2 -2
- package/module/es5/String/levenshteinDistance.js +33 -30
- package/module/es5/String/padStart.d.ts +0 -1
- package/module/es5/String/padStart.js +2 -7
- package/module/es5/String/reverseString.js +1 -1
- package/module/es5/Tool/index.d.ts +1 -0
- package/module/es5/Tool/index.js +11 -0
- package/module/es5/Tool/unwrap.d.ts +9 -0
- package/module/es5/Tool/unwrap.js +20 -0
- package/module/es5/Validate/array/core.js +1 -1
- package/module/es5/Validate/core/index.js +3 -2
- package/module/es5/Validate/index.d.ts +1 -0
- package/module/es5/Validate/index.js +11 -0
- package/module/es5/Validate/object/core.js +1 -1
- package/module/es5/Validate/parseEmail.d.ts +14 -0
- package/module/es5/Validate/parseEmail.js +48 -0
- package/module/es5/Validate/string/index.d.ts +1 -1
- package/module/es5/Validate/string/index.js +4 -4
- package/module/es5/Validate/string/uuid.js +7 -4
- package/module/es5/Validate/string/{email.d.ts → validateEmail.d.ts} +2 -1
- package/module/es5/Validate/string/validateEmail.js +31 -0
- package/module/es5/tsconfig.tsbuildinfo +1 -1
- package/package.json +70 -43
- package/module/Validate/string/email.js +0 -45
- package/module/Validate/string/email.js.map +0 -1
- package/module/es5/Validate/string/email.js +0 -62
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { levenshteinDistance } from "./levenshteinDistance";
|
|
2
|
+
import { quickSort } from "../Array/quickSort";
|
|
2
3
|
/**
|
|
3
4
|
* Perform fuzzy string matching on an array of strings
|
|
4
5
|
* @param query - The search query
|
|
@@ -22,6 +23,6 @@ export const fuzzySearch = (query, items, threshold = 0.6) => {
|
|
|
22
23
|
results.push({ item, score });
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
|
-
return results
|
|
26
|
+
return quickSort(results, (a, b) => b.score - a.score);
|
|
26
27
|
};
|
|
27
28
|
//# sourceMappingURL=fuzzySearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzySearch.js","sourceRoot":"","sources":["../../src/String/fuzzySearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAa,EACb,KAAe,EACf,SAAS,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"fuzzySearch.js","sourceRoot":"","sources":["../../src/String/fuzzySearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAa,EACb,KAAe,EACf,SAAS,GAAG,GAAG,EACoB,EAAE;IACrC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAsC,EAAE,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,mBAAmB,CAClC,KAAK,CAAC,WAAW,EAAE,EACnB,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC;QAEvC,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Calculates the Levenshtein distance between two strings
|
|
3
3
|
* Returns the minimum number of single-character edits (insertions, deletions, or substitutions)
|
|
4
|
-
* @param
|
|
5
|
-
* @param
|
|
4
|
+
* @param string1 - First string to compare
|
|
5
|
+
* @param string2 - Second string to compare
|
|
6
6
|
* @returns The Levenshtein distance
|
|
7
7
|
*/
|
|
8
8
|
export declare const levenshteinDistance: (string1: string, string2: string) => number;
|
|
@@ -1,38 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Calculates the Levenshtein distance between two strings
|
|
3
3
|
* Returns the minimum number of single-character edits (insertions, deletions, or substitutions)
|
|
4
|
-
* @param
|
|
5
|
-
* @param
|
|
4
|
+
* @param string1 - First string to compare
|
|
5
|
+
* @param string2 - Second string to compare
|
|
6
6
|
* @returns The Levenshtein distance
|
|
7
7
|
*/
|
|
8
8
|
export const levenshteinDistance = (string1, string2) => {
|
|
9
|
+
if (string1 === string2) {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
9
12
|
const length1 = string1.length;
|
|
10
13
|
const length2 = string2.length;
|
|
11
|
-
// Return the length of the other string if one is empty
|
|
12
14
|
if (length1 === 0) {
|
|
13
15
|
return length2;
|
|
14
16
|
}
|
|
15
17
|
if (length2 === 0) {
|
|
16
18
|
return length1;
|
|
17
19
|
}
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
for (let index = 0; index <= length1; index++) {
|
|
22
|
-
matrix[index][0] = index;
|
|
20
|
+
// Ensure string1 is the shorter string to minimize space complexity to O(min(N, M))
|
|
21
|
+
if (length1 > length2) {
|
|
22
|
+
return levenshteinDistance(string2, string1);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
// Create a single row array to store distances
|
|
25
|
+
// We only need the current row and the previous diagonal value
|
|
26
|
+
// eslint-disable-next-line unicorn/no-new-array
|
|
27
|
+
const row = new Array(length1 + 1);
|
|
28
|
+
// Initialize first row (0 to length1)
|
|
29
|
+
for (let index = 0; index <= length1; index++) {
|
|
30
|
+
row[index] = index;
|
|
26
31
|
}
|
|
27
|
-
//
|
|
28
|
-
for (let index = 1; index <=
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
// Iterate through each character of string2
|
|
33
|
+
for (let index = 1; index <= length2; index++) {
|
|
34
|
+
let previousDiagonal = row[0]; // Stores the value of matrix[i-1][j-1]
|
|
35
|
+
row[0] = index; // Update first element for the new row (matrix[0][j])
|
|
36
|
+
const char2 = string2[index - 1];
|
|
37
|
+
for (let index = 1; index <= length1; index++) {
|
|
38
|
+
const temporary = row[index]; // Store current value to become prevDiagonal for next iteration
|
|
39
|
+
const cost = string1[index - 1] === char2 ? 0 : 1;
|
|
40
|
+
row[index] = Math.min(row[index] + 1, // deletion (value from previous row, same column)
|
|
41
|
+
row[index - 1] + 1, // insertion (value from current row, previous column)
|
|
42
|
+
previousDiagonal + cost);
|
|
43
|
+
previousDiagonal = temporary;
|
|
34
44
|
}
|
|
35
45
|
}
|
|
36
|
-
return
|
|
46
|
+
return row[length1];
|
|
37
47
|
};
|
|
38
48
|
//# sourceMappingURL=levenshteinDistance.js.map
|
|
@@ -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,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,
|
|
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,gDAAgD;IAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAEnC,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"}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* @param {number} targetLength - The target length after padding
|
|
6
6
|
* @param {string} padString - The string to use for padding
|
|
7
7
|
* @returns {string} The padded string
|
|
8
|
-
* @throws {Error} If padString is empty
|
|
9
8
|
* @example
|
|
10
9
|
* ```typescript
|
|
11
10
|
* padStart("123", 5, "0"); // Returns: "00123"
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* @param {number} targetLength - The target length after padding
|
|
6
6
|
* @param {string} padString - The string to use for padding
|
|
7
7
|
* @returns {string} The padded string
|
|
8
|
-
* @throws {Error} If padString is empty
|
|
9
8
|
* @example
|
|
10
9
|
* ```typescript
|
|
11
10
|
* padStart("123", 5, "0"); // Returns: "00123"
|
|
@@ -13,11 +12,8 @@
|
|
|
13
12
|
* ```
|
|
14
13
|
*/
|
|
15
14
|
export const padStart = (string_, targetLength, padString) => {
|
|
16
|
-
if
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
// Return original string if it's longer than target length
|
|
20
|
-
if (string_.length >= targetLength) {
|
|
15
|
+
// Return original string if padString is empty or string is already long enough
|
|
16
|
+
if (padString === "" || string_.length >= targetLength) {
|
|
21
17
|
return string_;
|
|
22
18
|
}
|
|
23
19
|
let padding = "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"padStart.js","sourceRoot":"","sources":["../../src/String/padStart.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"padStart.js","sourceRoot":"","sources":["../../src/String/padStart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAe,EACf,YAAoB,EACpB,SAAiB,EACT,EAAE;IACV,gFAAgF;IAChF,IAAI,SAAS,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,aAAa,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAEpD,uCAAuC;IACvC,OAAO,OAAO,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QACtC,OAAO,IAAI,SAAS,CAAC;IACvB,CAAC;IAED,2EAA2E;IAC3E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC;AACnD,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,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,
|
|
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,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,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"}
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unwraps a value that may be undefined or null, throwing an error if the value is absent
|
|
3
|
+
* @template T The type of the value to unwrap
|
|
4
|
+
* @param value The value to unwrap (may be undefined or null)
|
|
5
|
+
* @param message The error message to throw if the value is absent
|
|
6
|
+
* @returns The unwrapped value of type T
|
|
7
|
+
* @throws {Error} If the value is undefined or null
|
|
8
|
+
*/
|
|
9
|
+
export declare const unwrap: <T>(value: T | undefined | null, message: string) => T;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unwraps a value that may be undefined or null, throwing an error if the value is absent
|
|
3
|
+
* @template T The type of the value to unwrap
|
|
4
|
+
* @param value The value to unwrap (may be undefined or null)
|
|
5
|
+
* @param message The error message to throw if the value is absent
|
|
6
|
+
* @returns The unwrapped value of type T
|
|
7
|
+
* @throws {Error} If the value is undefined or null
|
|
8
|
+
*/
|
|
9
|
+
export const unwrap = (value, message) => {
|
|
10
|
+
if (value !== undefined && value !== null) {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
throw new Error(message);
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=unwrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unwrap.js","sourceRoot":"","sources":["../../src/Tool/unwrap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAA2B,EAAE,OAAe,EAAK,EAAE;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC"}
|
|
@@ -12,7 +12,7 @@ export const core = (type) => (value, option = [], message) => {
|
|
|
12
12
|
if (typeof value !== type) {
|
|
13
13
|
return {
|
|
14
14
|
validate: false,
|
|
15
|
-
message: message
|
|
15
|
+
message: message ?? "",
|
|
16
16
|
type,
|
|
17
17
|
};
|
|
18
18
|
}
|
|
@@ -20,7 +20,7 @@ export const core = (type) => (value, option = [], message) => {
|
|
|
20
20
|
if (!validate.validate(value)) {
|
|
21
21
|
return {
|
|
22
22
|
validate: false,
|
|
23
|
-
message: validate.message
|
|
23
|
+
message: validate.message ?? "",
|
|
24
24
|
type,
|
|
25
25
|
};
|
|
26
26
|
}
|
package/module/Validate/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Validate/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,iBAAiB;AACjB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Validate/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AAEvB,iBAAiB;AACjB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDeepEqual.js","sourceRoot":"","sources":["../../src/Validate/isDeepEqual.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,CAAU,EACV,CAAU,EACV,UAA8B,EAAE;IAEhC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;IAEtC,SAAS,OAAO,CAAC,CAAU,EAAE,CAAU;QACrC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"isDeepEqual.js","sourceRoot":"","sources":["../../src/Validate/isDeepEqual.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CACzB,CAAU,EACV,CAAU,EACV,UAA8B,EAAE;IAEhC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;IAEtC,SAAS,OAAO,CAAC,CAAU,EAAE,CAAU;QACrC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEf,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC;QAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC;QAC5B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBAChC,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrB,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;oBACtB,IAAI,KAAK,GAAG,KAAK,CAAC;oBAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;wBAClD,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BACvB,KAAK,GAAG,IAAI,CAAC;4BACb,MAAM;wBACR,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;gBACrB,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,KAAK,MAAM,SAAS,IAAI,CAAC,EAAE,CAAC;oBAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;wBAC7B,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,IAAI,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;wBACzD,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,CAAe,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAe,CAAC;YAC/B,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IACE,CAAC,OAAO,CACL,CAA6B,CAAC,GAAG,CAAC,EAClC,CAA6B,CAAC,GAAG,CAAC,CACpC,EACD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -15,7 +15,7 @@ export const object = (option = {}, message) => {
|
|
|
15
15
|
if (!isDictionaryObject(value)) {
|
|
16
16
|
return {
|
|
17
17
|
validate: false,
|
|
18
|
-
message: message
|
|
18
|
+
message: message ?? "",
|
|
19
19
|
// biome-ignore lint/suspicious/noExplicitAny: Type assertion needed for return type compatibility
|
|
20
20
|
type: value,
|
|
21
21
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ParseEmailLevel = "basic" | "rfc822" | "rfc2822" | "rfc5321" | "rfc5322";
|
|
2
|
+
export interface ParseEmailOptions {
|
|
3
|
+
level: ParseEmailLevel;
|
|
4
|
+
}
|
|
5
|
+
export declare const parseEmail: ({ email, options, }: {
|
|
6
|
+
email: string;
|
|
7
|
+
options: ParseEmailOptions;
|
|
8
|
+
}) => {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
parts?: {
|
|
11
|
+
local: string;
|
|
12
|
+
domain: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const EMAIL_PATTERNS = {
|
|
2
|
+
basic: /^(?<local>[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+)@(?<domain>[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,
|
|
3
|
+
rfc822: /^(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*(?<local>"(?:[^"\\]|\\[\s\S]){0,62}"|[a-zA-Z0-9!#$%&'*/=?^_`{|}~-]{1,64}(?:\.[a-zA-Z0-9!#$%&'*/=?^_`{|}~-]+)*)(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*@(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*(?<domain>[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*$/,
|
|
4
|
+
rfc2822: /^(?=.{1,998}$)(?!.*\.\.)(?<local>[a-zA-Z0-9!#$%&'*/=?^_`{|}~-](?:[a-zA-Z0-9!#$%&'*/=?^_`{|}~.+-]{0,62}[a-zA-Z0-9!#$%&'*/=?^_`{|}~-])?)@(?<domain>[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\.[a-zA-Z]{2,})$/,
|
|
5
|
+
rfc5321: /^(?=.{1,256}$)(?=(?:[^@]{1,64})@)(?!.*\.\.)(?<local>(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\s\S]){0,62}"))@(?<domain>[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+|\[(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|IPv6:[0-9a-fA-F:]+)\])$/,
|
|
6
|
+
rfc5322: /^(?=.{1,998}$)(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*(?<local>"(?:[^"\\]|\\[\s\S]){0,62}"(?:\."(?:[^"\\]|\\[\s\S]){0,62}")*|"(?:[^"\\]|\\[\s\S]){0,62}"(?:\.[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64}(?:\.[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64})*)+|[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64}(?:\.[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64})*(?:\."(?:[^"\\]|\\[\s\S]){0,62}")+|[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64}(?:(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*\.(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*[a-zA-Z0-9!#$%&'*/=?^_`{|}~+-]{1,64})*)(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*@(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*(?<domain>[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*\.(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+|\[(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|IPv6:[0-9a-fA-F:]+)\])(?:\s|\((?:[^()\\]|\\[\s\S])*(?:\((?:[^()\\]|\\[\s\S])*\)(?:[^()\\]|\\[\s\S])*)*\))*$/,
|
|
7
|
+
};
|
|
8
|
+
export const parseEmail = ({ email, options, }) => {
|
|
9
|
+
const { level } = options;
|
|
10
|
+
const pattern = EMAIL_PATTERNS[level];
|
|
11
|
+
const match = pattern.exec(email);
|
|
12
|
+
return {
|
|
13
|
+
valid: match !== null,
|
|
14
|
+
parts: match?.groups
|
|
15
|
+
? {
|
|
16
|
+
// biome-ignore lint/complexity/useLiteralKeys: Literal keys are used for group names
|
|
17
|
+
local: match.groups["local"],
|
|
18
|
+
// biome-ignore lint/complexity/useLiteralKeys: Literal keys are used for group names
|
|
19
|
+
domain: match.groups["domain"],
|
|
20
|
+
}
|
|
21
|
+
: undefined,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=parseEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseEmail.js","sourceRoot":"","sources":["../../src/Validate/parseEmail.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG;IACrB,KAAK,EACH,2JAA2J;IAC7J,MAAM,EACJ,+iBAA+iB;IACjjB,OAAO,EACL,oQAAoQ;IACtQ,OAAO,EACL,mUAAmU;IACrU,OAAO,EACL,ktCAAktC;CAC5sC,CAAC;AAMX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,KAAK,EACL,OAAO,GAIR,EAGC,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAElC,OAAO;QACL,KAAK,EAAE,KAAK,KAAK,IAAI;QACrB,KAAK,EAAE,KAAK,EAAE,MAAM;YAClB,CAAC,CAAC;gBACE,qFAAqF;gBACrF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC5B,qFAAqF;gBACrF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC/B;YACH,CAAC,CAAC,SAAS;KACd,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Validate/string/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Validate/string/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
|
|
@@ -8,15 +8,14 @@
|
|
|
8
8
|
* @param {string} [message] - Custom error message for validation failure
|
|
9
9
|
* @returns {ValidateReturnType<string>} - Validator for UUID strings
|
|
10
10
|
*/
|
|
11
|
-
export const uuid = (versions = [4], message) =>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
11
|
+
export const uuid = (versions = [4], message) => {
|
|
12
|
+
const versionRegexes = versions.map((version) => new RegExp(String.raw `^[\da-f]{8}-?[\da-f]{4}-?${version}[\da-f]{3}-?[89ab][\da-f]{3}-?[\da-f]{12}$`, "i"));
|
|
13
|
+
return {
|
|
14
|
+
type: "string",
|
|
15
|
+
message,
|
|
16
|
+
validate: (value) => {
|
|
17
|
+
return versionRegexes.some((regex) => regex.test(value));
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
};
|
|
22
21
|
//# sourceMappingURL=uuid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/Validate/string/uuid.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,WAAqB,CAAC,CAAC,CAAC,EACxB,OAAgB,EACY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uuid.js","sourceRoot":"","sources":["../../../src/Validate/string/uuid.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,WAAqB,CAAC,CAAC,CAAC,EACxB,OAAgB,EACY,EAAE;IAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CACjC,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,MAAM,CACR,MAAM,CAAC,GAAG,CAAA,4BAA4B,OAAO,4CAA4C,EACzF,GAAG,CACJ,CACJ,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* String validation module for email addresses
|
|
3
3
|
* Provides validation functionality for checking if a string is a valid email address
|
|
4
4
|
*/
|
|
5
|
+
import { type ParseEmailOptions } from "../../Validate/parseEmail";
|
|
5
6
|
import type { ValidateReturnType } from "../../Validate/type";
|
|
6
7
|
/**
|
|
7
8
|
* Creates a validator for checking if a string is a valid email address
|
|
8
9
|
* @param {string} [message] - Custom error message for validation failure
|
|
9
10
|
* @returns {ValidateReturnType<string>} - Validator for email addresses
|
|
10
11
|
*/
|
|
11
|
-
export declare const
|
|
12
|
+
export declare const validateEmail: (message?: string, options?: ParseEmailOptions) => ValidateReturnType<string>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String validation module for email addresses
|
|
3
|
+
* Provides validation functionality for checking if a string is a valid email address
|
|
4
|
+
*/
|
|
5
|
+
import { parseEmail } from "../../Validate/parseEmail";
|
|
6
|
+
/**
|
|
7
|
+
* Creates a validator for checking if a string is a valid email address
|
|
8
|
+
* @param {string} [message] - Custom error message for validation failure
|
|
9
|
+
* @returns {ValidateReturnType<string>} - Validator for email addresses
|
|
10
|
+
*/
|
|
11
|
+
export const validateEmail = (message, options) => {
|
|
12
|
+
return {
|
|
13
|
+
type: "string",
|
|
14
|
+
message,
|
|
15
|
+
validate: (value) => {
|
|
16
|
+
return parseEmail({
|
|
17
|
+
email: value,
|
|
18
|
+
options: options ?? { level: "basic" },
|
|
19
|
+
}).valid;
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=validateEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateEmail.js","sourceRoot":"","sources":["../../../src/Validate/string/validateEmail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAA0B,MAAM,uBAAuB,CAAC;AAG3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAgB,EAChB,OAA2B,EACC,EAAE;IAC9B,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO;QACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,OAAO,UAAU,CAAC;gBAChB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;aACvC,CAAC,CAAC,KAAK,CAAC;QACX,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -10,5 +10,5 @@
|
|
|
10
10
|
* rangeAdvance(1, 10, (number) => number % 2 === 0); // [2, 4, 6, 8]
|
|
11
11
|
* ```
|
|
12
12
|
*/
|
|
13
|
-
declare const rangeAdvance: (start: number, end
|
|
13
|
+
declare const rangeAdvance: (start: number, end: number, conditionalExpression?: (number_: number) => boolean) => number[];
|
|
14
14
|
export { rangeAdvance };
|
|
@@ -16,6 +16,9 @@ exports.checkFlagAlignment = void 0;
|
|
|
16
16
|
*/
|
|
17
17
|
var checkFlagAlignment = exports.checkFlagAlignment = function checkFlagAlignment(matrix) {
|
|
18
18
|
var rows = matrix.length;
|
|
19
|
+
if (rows === 0 || matrix[0].length === 0) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
19
22
|
var cols = matrix[0].length;
|
|
20
23
|
|
|
21
24
|
// Check horizontal alignment
|
|
@@ -7,6 +7,12 @@ exports.dualPivotQuickSort = void 0;
|
|
|
7
7
|
var _compareFunctionDefault = require("./compareFunctionDefault");
|
|
8
8
|
var _applyInsertionSortIfNeeded = require("./sortingHelpers/applyInsertionSortIfNeeded");
|
|
9
9
|
var _rangeValidator = require("./sortingHelpers/rangeValidator");
|
|
10
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
11
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
14
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
15
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
10
16
|
/**
|
|
11
17
|
* Get the median of three elements in the array
|
|
12
18
|
* @param array - The input array
|
|
@@ -170,12 +176,13 @@ var dualPivotQuickSort = exports.dualPivotQuickSort = function dualPivotQuickSor
|
|
|
170
176
|
var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
171
177
|
var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : array.length - 1;
|
|
172
178
|
var insertionSortThreshold = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 10;
|
|
173
|
-
var
|
|
179
|
+
var result = _toConsumableArray(array);
|
|
180
|
+
var _validateRange = (0, _rangeValidator.validateRange)(result, startIndex, endIndex),
|
|
174
181
|
validStartIndex = _validateRange.startIndex,
|
|
175
182
|
validEndIndex = _validateRange.endIndex,
|
|
176
183
|
shouldSort = _validateRange.shouldSort;
|
|
177
184
|
if (shouldSort) {
|
|
178
|
-
_sortRange(
|
|
185
|
+
_sortRange(result, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
|
|
179
186
|
}
|
|
180
|
-
return
|
|
187
|
+
return result;
|
|
181
188
|
};
|
|
@@ -21,32 +21,58 @@ var getArraysCommon = exports.getArraysCommon = function getArraysCommon(array)
|
|
|
21
21
|
if (arrays.length === 0) {
|
|
22
22
|
return array;
|
|
23
23
|
}
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return Number.isNaN(arrayItem);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
return arrays.every(function (currentArray) {
|
|
34
|
-
return currentArray.includes(item);
|
|
35
|
-
});
|
|
24
|
+
var THRESHOLD = 120;
|
|
25
|
+
|
|
26
|
+
// Convert other arrays to Sets for O(1) lookup if they are large enough
|
|
27
|
+
var otherCollections = arrays.map(function (array_) {
|
|
28
|
+
return array_.length > THRESHOLD ? new Set(array_) : array_;
|
|
36
29
|
});
|
|
37
30
|
var uniqueResult = [];
|
|
38
|
-
|
|
31
|
+
|
|
32
|
+
// Use a Set to track seen items for uniqueness if the input array is large,
|
|
33
|
+
// otherwise just check the result array which is faster for small sizes.
|
|
34
|
+
var useSeenSet = array.length > THRESHOLD;
|
|
35
|
+
var seen = useSeenSet ? new Set() : undefined;
|
|
36
|
+
var _iterator = _createForOfIteratorHelper(array),
|
|
39
37
|
_step;
|
|
40
38
|
try {
|
|
41
39
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
42
40
|
var item = _step.value;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
// Check uniqueness
|
|
42
|
+
if (seen) {
|
|
43
|
+
if (seen.has(item)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
} else if (uniqueResult.includes(item)) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Check if item is present in all other arrays/sets
|
|
51
|
+
var isCommon = true;
|
|
52
|
+
var _iterator2 = _createForOfIteratorHelper(otherCollections),
|
|
53
|
+
_step2;
|
|
54
|
+
try {
|
|
55
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
56
|
+
var collection = _step2.value;
|
|
57
|
+
if (collection instanceof Set) {
|
|
58
|
+
if (!collection.has(item)) {
|
|
59
|
+
isCommon = false;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
} else if (!collection.includes(item)) {
|
|
63
|
+
isCommon = false;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} catch (err) {
|
|
68
|
+
_iterator2.e(err);
|
|
69
|
+
} finally {
|
|
70
|
+
_iterator2.f();
|
|
71
|
+
}
|
|
72
|
+
if (isCommon) {
|
|
73
|
+
if (seen) {
|
|
74
|
+
seen.add(item);
|
|
48
75
|
}
|
|
49
|
-
} else if (!uniqueResult.includes(item)) {
|
|
50
76
|
uniqueResult.push(item);
|
|
51
77
|
}
|
|
52
78
|
}
|
|
@@ -18,10 +18,11 @@ var groupBy = exports.groupBy = function groupBy(array, iteratee) {
|
|
|
18
18
|
var result = Object.create(null);
|
|
19
19
|
var length = array.length;
|
|
20
20
|
for (var index = 0; index < length; index++) {
|
|
21
|
+
var _result$key;
|
|
21
22
|
var value = array[index];
|
|
22
23
|
var key = iteratee(value, index, array);
|
|
23
24
|
// biome-ignore lint/suspicious/noAssignInExpressions: ignore
|
|
24
|
-
(result[key]
|
|
25
|
+
((_result$key = result[key]) !== null && _result$key !== void 0 ? _result$key : result[key] = []).push(value);
|
|
25
26
|
}
|
|
26
27
|
return result;
|
|
27
28
|
};
|