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.
Files changed (177) hide show
  1. package/README.md +3 -2
  2. package/module/Advance/rangeAdvance.d.ts +1 -1
  3. package/module/Advance/rangeAdvance.js.map +1 -1
  4. package/module/Array/checkFlagAlignment.js +3 -0
  5. package/module/Array/checkFlagAlignment.js.map +1 -1
  6. package/module/Array/compact.js.map +1 -1
  7. package/module/Array/dualPivotQuickSort.js +4 -3
  8. package/module/Array/dualPivotQuickSort.js.map +1 -1
  9. package/module/Array/getArraysCommon.js +33 -12
  10. package/module/Array/getArraysCommon.js.map +1 -1
  11. package/module/Array/groupBy.js +1 -1
  12. package/module/Array/insertionSort.js +4 -10
  13. package/module/Array/insertionSort.js.map +1 -1
  14. package/module/Array/quickSort.js +4 -3
  15. package/module/Array/quickSort.js.map +1 -1
  16. package/module/Array/range.js +1 -1
  17. package/module/Array/range.js.map +1 -1
  18. package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js +2 -2
  19. package/module/Array/sortingHelpers/applyInsertionSortIfNeeded.js.map +1 -1
  20. package/module/Array/sortingHelpers/insertionSortRange.d.ts +5 -0
  21. package/module/Array/sortingHelpers/insertionSortRange.js +15 -0
  22. package/module/Array/sortingHelpers/insertionSortRange.js.map +1 -0
  23. package/module/Array/timSort.js +7 -5
  24. package/module/Array/timSort.js.map +1 -1
  25. package/module/Array/ultraNumberSort.js +18 -18
  26. package/module/Array/ultraNumberSort.js.map +1 -1
  27. package/module/Color/hexaToRgba.d.ts +1 -1
  28. package/module/Color/hexaToRgba.js +1 -1
  29. package/module/Consts/clock.d.ts +1 -1
  30. package/module/Consts/clock.js.map +1 -1
  31. package/module/Crypto/decodeBase58.js +4 -4
  32. package/module/Crypto/decodeBase58.js.map +1 -1
  33. package/module/Crypto/encodeBase58.js +4 -4
  34. package/module/Crypto/encodeBase58.js.map +1 -1
  35. package/module/DataStructure/priorityQueue.d.ts +4 -4
  36. package/module/DataStructure/priorityQueue.js +3 -2
  37. package/module/DataStructure/priorityQueue.js.map +1 -1
  38. package/module/Date/dayOfWeek.js +1 -1
  39. package/module/Date/format.js +1 -1
  40. package/module/IP/ipToBinaryString.js +1 -1
  41. package/module/IP/ipToBinaryString.js.map +1 -1
  42. package/module/IP/subnetMaskToCidr.js +1 -1
  43. package/module/IP/subnetMaskToCidr.js.map +1 -1
  44. package/module/Math/calculator/core.js +15 -5
  45. package/module/Math/calculator/core.js.map +1 -1
  46. package/module/Math/gcd.js +5 -2
  47. package/module/Math/gcd.js.map +1 -1
  48. package/module/Math/mathConverter.js +1 -1
  49. package/module/Math/mathConverter.js.map +1 -1
  50. package/module/Math/mode.js +3 -2
  51. package/module/Math/mode.js.map +1 -1
  52. package/module/Math/nCr.js +4 -1
  53. package/module/Math/nCr.js.map +1 -1
  54. package/module/Math/nPr.js +4 -1
  55. package/module/Math/nPr.js.map +1 -1
  56. package/module/Math/primeFactorization.js +5 -1
  57. package/module/Math/primeFactorization.js.map +1 -1
  58. package/module/Math/reduce.js +4 -1
  59. package/module/Math/reduce.js.map +1 -1
  60. package/module/Math/solveEquation.js +1 -1
  61. package/module/Math/solveEquation.js.map +1 -1
  62. package/module/Math/uuidv7.js +11 -14
  63. package/module/Math/uuidv7.js.map +1 -1
  64. package/module/Object/mergeDeep.js.map +1 -1
  65. package/module/Object/omit.js +1 -0
  66. package/module/Object/omit.js.map +1 -1
  67. package/module/Object/pickDeep.js +1 -1
  68. package/module/String/formatString/applyFormatter.js +1 -1
  69. package/module/String/formatString/applyFormatter.js.map +1 -1
  70. package/module/String/formatString/getValue.js +1 -1
  71. package/module/String/formatString/getValue.js.map +1 -1
  72. package/module/String/fromBase64.js +2 -1
  73. package/module/String/fromBase64.js.map +1 -1
  74. package/module/String/fuzzySearch.d.ts +2 -2
  75. package/module/String/fuzzySearch.js +2 -1
  76. package/module/String/fuzzySearch.js.map +1 -1
  77. package/module/String/levenshteinDistance.d.ts +2 -2
  78. package/module/String/levenshteinDistance.js +28 -18
  79. package/module/String/levenshteinDistance.js.map +1 -1
  80. package/module/String/padStart.d.ts +0 -1
  81. package/module/String/padStart.js +2 -6
  82. package/module/String/padStart.js.map +1 -1
  83. package/module/String/reverseString.js +1 -1
  84. package/module/String/reverseString.js.map +1 -1
  85. package/module/Tool/index.d.ts +1 -0
  86. package/module/Tool/index.js +1 -0
  87. package/module/Tool/index.js.map +1 -1
  88. package/module/Tool/unwrap.d.ts +9 -0
  89. package/module/Tool/unwrap.js +15 -0
  90. package/module/Tool/unwrap.js.map +1 -0
  91. package/module/Validate/array/core.js +1 -1
  92. package/module/Validate/core/index.js +2 -2
  93. package/module/Validate/index.d.ts +1 -0
  94. package/module/Validate/index.js +1 -0
  95. package/module/Validate/index.js.map +1 -1
  96. package/module/Validate/isDeepEqual.js.map +1 -1
  97. package/module/Validate/object/core.js +1 -1
  98. package/module/Validate/parseEmail.d.ts +14 -0
  99. package/module/Validate/parseEmail.js +24 -0
  100. package/module/Validate/parseEmail.js.map +1 -0
  101. package/module/Validate/string/index.d.ts +1 -1
  102. package/module/Validate/string/index.js +1 -1
  103. package/module/Validate/string/index.js.map +1 -1
  104. package/module/Validate/string/uuid.js +10 -11
  105. package/module/Validate/string/uuid.js.map +1 -1
  106. package/module/Validate/string/{email.d.ts → validateEmail.d.ts} +2 -1
  107. package/module/Validate/string/validateEmail.js +23 -0
  108. package/module/Validate/string/validateEmail.js.map +1 -0
  109. package/module/es5/Advance/rangeAdvance.d.ts +1 -1
  110. package/module/es5/Array/checkFlagAlignment.js +3 -0
  111. package/module/es5/Array/dualPivotQuickSort.js +10 -3
  112. package/module/es5/Array/getArraysCommon.js +45 -19
  113. package/module/es5/Array/groupBy.js +2 -1
  114. package/module/es5/Array/insertionSort.js +10 -10
  115. package/module/es5/Array/quickSort.js +10 -3
  116. package/module/es5/Array/range.js +1 -1
  117. package/module/es5/Array/sortingHelpers/applyInsertionSortIfNeeded.js +2 -2
  118. package/module/es5/Array/sortingHelpers/insertionSortRange.d.ts +5 -0
  119. package/module/es5/Array/sortingHelpers/insertionSortRange.js +20 -0
  120. package/module/es5/Array/timSort.js +13 -5
  121. package/module/es5/Array/ultraNumberSort.js +38 -34
  122. package/module/es5/Color/hexaToRgba.d.ts +1 -1
  123. package/module/es5/Color/hexaToRgba.js +1 -1
  124. package/module/es5/Consts/clock.d.ts +1 -1
  125. package/module/es5/Crypto/decodeBase58.js +4 -4
  126. package/module/es5/Crypto/encodeBase58.js +4 -4
  127. package/module/es5/DataStructure/priorityQueue.d.ts +4 -4
  128. package/module/es5/DataStructure/priorityQueue.js +3 -2
  129. package/module/es5/Date/dayOfWeek.js +2 -1
  130. package/module/es5/Date/format.js +1 -1
  131. package/module/es5/IP/ipToBinaryString.js +1 -1
  132. package/module/es5/IP/subnetMaskToCidr.js +1 -1
  133. package/module/es5/Math/calculator/core.js +15 -5
  134. package/module/es5/Math/gcd.js +5 -2
  135. package/module/es5/Math/mathConverter.js +1 -1
  136. package/module/es5/Math/mode.js +4 -4
  137. package/module/es5/Math/nCr.js +4 -1
  138. package/module/es5/Math/nPr.js +4 -1
  139. package/module/es5/Math/primeFactorization.js +8 -1
  140. package/module/es5/Math/reduce.js +8 -1
  141. package/module/es5/Math/solveEquation.js +1 -1
  142. package/module/es5/Math/uuidv7.js +13 -14
  143. package/module/es5/Object/omit.js +1 -0
  144. package/module/es5/Object/pickDeep.js +2 -1
  145. package/module/es5/String/formatString/applyFormatter.js +1 -1
  146. package/module/es5/String/formatString/getValue.js +1 -1
  147. package/module/es5/String/formatString/index.js +1 -1
  148. package/module/es5/String/fromBase64.js +2 -1
  149. package/module/es5/String/fuzzySearch.d.ts +2 -2
  150. package/module/es5/String/fuzzySearch.js +2 -1
  151. package/module/es5/String/hasNoLetters.js +1 -1
  152. package/module/es5/String/levenshteinDistance.d.ts +2 -2
  153. package/module/es5/String/levenshteinDistance.js +33 -30
  154. package/module/es5/String/padStart.d.ts +0 -1
  155. package/module/es5/String/padStart.js +2 -7
  156. package/module/es5/String/reverseString.js +1 -1
  157. package/module/es5/Tool/index.d.ts +1 -0
  158. package/module/es5/Tool/index.js +11 -0
  159. package/module/es5/Tool/unwrap.d.ts +9 -0
  160. package/module/es5/Tool/unwrap.js +20 -0
  161. package/module/es5/Validate/array/core.js +1 -1
  162. package/module/es5/Validate/core/index.js +3 -2
  163. package/module/es5/Validate/index.d.ts +1 -0
  164. package/module/es5/Validate/index.js +11 -0
  165. package/module/es5/Validate/object/core.js +1 -1
  166. package/module/es5/Validate/parseEmail.d.ts +14 -0
  167. package/module/es5/Validate/parseEmail.js +48 -0
  168. package/module/es5/Validate/string/index.d.ts +1 -1
  169. package/module/es5/Validate/string/index.js +4 -4
  170. package/module/es5/Validate/string/uuid.js +7 -4
  171. package/module/es5/Validate/string/{email.d.ts → validateEmail.d.ts} +2 -1
  172. package/module/es5/Validate/string/validateEmail.js +31 -0
  173. package/module/es5/tsconfig.tsbuildinfo +1 -1
  174. package/package.json +70 -43
  175. package/module/Validate/string/email.js +0 -45
  176. package/module/Validate/string/email.js.map +0 -1
  177. 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.sort((a, b) => b.score - a.score);
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,EACyB,EAAE;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAA2C,EAAE,CAAC;IAE3D,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,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC"}
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 str1 - First string to compare
5
- * @param str2 - Second string to compare
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 str1 - First string to compare
5
- * @param str2 - Second string to compare
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
- // Create a 2D array for dynamic programming
19
- const matrix = Array.from({ length: length1 + 1 }, () => Array.from({ length: length2 + 1 }, () => 0));
20
- // Initialize first column and row
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
- for (let index = 0; index <= length2; index++) {
25
- matrix[0][index] = index;
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
- // Calculate distances
28
- for (let index = 1; index <= length1; index++) {
29
- for (let index_ = 1; index_ <= length2; index_++) {
30
- const cost = string1[index - 1] === string2[index_ - 1] ? 0 : 1;
31
- matrix[index][index_] = Math.min(matrix[index - 1][index_] + 1, // deletion
32
- matrix[index][index_ - 1] + 1, // insertion
33
- matrix[index - 1][index_ - 1] + cost);
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 matrix[length1][length2];
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,wDAAwD;IACxD,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,4CAA4C;IAC5C,MAAM,MAAM,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAClE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAC7C,CAAC;IAEF,kCAAkC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAC9B,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW;YAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY;YAC3C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC"}
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 (padString === "") {
17
- throw new Error("padString cannot be empty");
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;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAe,EACf,YAAoB,EACpB,SAAiB,EACT,EAAE;IACV,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;QACnC,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
+ {"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"}
@@ -5,6 +5,6 @@
5
5
  * @example reverseString("Hello"); // "olleH"
6
6
  */
7
7
  export const reverseString = (char) => {
8
- return char.split("").toReversed().join("");
8
+ return char.split("").reverse().join("");
9
9
  };
10
10
  //# sourceMappingURL=reverseString.js.map
@@ -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,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9C,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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./createPipeline";
2
2
  export * from "./parseJson";
3
3
  export * from "./pipe";
4
+ export * from "./unwrap";
@@ -1,4 +1,5 @@
1
1
  export * from "./createPipeline";
2
2
  export * from "./parseJson";
3
3
  export * from "./pipe";
4
+ export * from "./unwrap";
4
5
  //# sourceMappingURL=index.js.map
@@ -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"}
@@ -17,7 +17,7 @@ export const array = (option = {}, message) => {
17
17
  if (!isArray(values)) {
18
18
  return {
19
19
  validate: false,
20
- message: message || "",
20
+ message: message ?? "",
21
21
  type: values,
22
22
  };
23
23
  }
@@ -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
  }
@@ -19,3 +19,4 @@ export * from "./isPerfectSquare";
19
19
  export * from "./isPrimeNumber";
20
20
  export * from "./isString";
21
21
  export * from "./isValueNaN";
22
+ export * from "./parseEmail";
@@ -21,4 +21,5 @@ export * from "./isPerfectSquare";
21
21
  export * from "./isPrimeNumber";
22
22
  export * from "./isString";
23
23
  export * from "./isValueNaN";
24
+ export * from "./parseEmail";
24
25
  //# sourceMappingURL=index.js.map
@@ -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":"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"}
1
+ {"version":3,"file":"isDeepEqual.js","sourceRoot":"","sources":["../../src/Validate/isDeepEqual.ts"],"names":[],"mappings":"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"}
@@ -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,5 +1,5 @@
1
1
  export * from "./core";
2
- export * from "./email";
2
+ export * from "./validateEmail";
3
3
  export * from "./length";
4
4
  export * from "./minLength";
5
5
  export * from "./maxLength";
@@ -1,5 +1,5 @@
1
1
  export * from "./core";
2
- export * from "./email";
2
+ export * from "./validateEmail";
3
3
  export * from "./length";
4
4
  export * from "./minLength";
5
5
  export * from "./maxLength";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Validate/string/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,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
- type: "string",
13
- message,
14
- validate: (value) => {
15
- return versions.some((version) => {
16
- // Regular expression for specific UUID version
17
- const versionRegex = new RegExp(`^[\\da-f]{8}-?[\\da-f]{4}-?${version}[\\da-f]{3}-?[89ab][\\da-f]{3}-?[\\da-f]{12}$`, "i");
18
- return versionRegex.test(value);
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;IAChC,IAAI,EAAE,QAAQ;IACd,OAAO;IACP,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QAClB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,+CAA+C;YAC/C,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,8BAA8B,OAAO,+CAA+C,EACpF,GAAG,CACJ,CAAC;YACF,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,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 email: (message?: string) => ValidateReturnType<string>;
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?: number, conditionalExpression?: (number_: number) => boolean) => number[];
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 _validateRange = (0, _rangeValidator.validateRange)(array, startIndex, endIndex),
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(array, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
185
+ _sortRange(result, validStartIndex, validEndIndex, compareFunction, insertionSortThreshold);
179
186
  }
180
- return array;
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 result = array.filter(function (item) {
25
- // Handle NaN specially since NaN !== NaN
26
- if (Number.isNaN(item)) {
27
- return arrays.every(function (currentArray) {
28
- return currentArray.some(function (arrayItem) {
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
- var _iterator = _createForOfIteratorHelper(result),
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
- if (Number.isNaN(item)) {
44
- if (!uniqueResult.some(function (existing) {
45
- return Number.isNaN(existing);
46
- })) {
47
- uniqueResult.push(item);
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] || (result[key] = [])).push(value);
25
+ ((_result$key = result[key]) !== null && _result$key !== void 0 ? _result$key : result[key] = []).push(value);
25
26
  }
26
27
  return result;
27
28
  };