stringzy 4.0.0 → 4.2.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 (139) hide show
  1. package/.github/workflows/auto-assign.yml +26 -0
  2. package/CODE_OF_CONDUCT.MD +115 -0
  3. package/README.md +963 -40
  4. package/dist/analyzing/checkMultiplePatterns.d.ts +14 -0
  5. package/dist/analyzing/checkMultiplePatterns.js +75 -0
  6. package/dist/analyzing/checkSubsequence.d.ts +14 -0
  7. package/dist/analyzing/checkSubsequence.js +33 -0
  8. package/dist/analyzing/contentWordCount.d.ts +11 -0
  9. package/dist/analyzing/contentWordCount.js +23 -0
  10. package/dist/analyzing/functionWordCount.d.ts +11 -0
  11. package/dist/analyzing/functionWordCount.js +33 -0
  12. package/dist/analyzing/index.d.ts +14 -0
  13. package/dist/analyzing/index.js +22 -2
  14. package/dist/analyzing/lexicographicalRank.d.ts +26 -0
  15. package/dist/analyzing/lexicographicalRank.js +66 -0
  16. package/dist/analyzing/patternCount.d.ts +6 -5
  17. package/dist/analyzing/patternCount.js +19 -17
  18. package/dist/analyzing/stringRotation.d.ts +29 -0
  19. package/dist/analyzing/stringRotation.js +44 -0
  20. package/dist/formatting/binary.d.ts +24 -0
  21. package/dist/formatting/binary.js +49 -0
  22. package/dist/formatting/creditCard.d.ts +8 -0
  23. package/dist/formatting/creditCard.js +28 -0
  24. package/dist/formatting/decimal.d.ts +21 -0
  25. package/dist/formatting/decimal.js +73 -0
  26. package/dist/formatting/duration.d.ts +27 -0
  27. package/dist/formatting/duration.js +92 -0
  28. package/dist/formatting/fileSize.d.ts +18 -0
  29. package/dist/formatting/fileSize.js +39 -0
  30. package/dist/formatting/hexadecimal.d.ts +14 -0
  31. package/dist/formatting/hexadecimal.js +38 -0
  32. package/dist/formatting/index.d.ts +42 -0
  33. package/dist/formatting/index.js +57 -1
  34. package/dist/formatting/listToString.d.ts +17 -0
  35. package/dist/formatting/listToString.js +35 -0
  36. package/dist/formatting/octal.d.ts +19 -0
  37. package/dist/formatting/octal.js +31 -0
  38. package/dist/formatting/ordinal.d.ts +20 -0
  39. package/dist/formatting/ordinal.js +43 -0
  40. package/dist/formatting/percentage.d.ts +19 -0
  41. package/dist/formatting/percentage.js +31 -0
  42. package/dist/formatting/romanNumerals.d.ts +20 -0
  43. package/dist/formatting/romanNumerals.js +53 -0
  44. package/dist/formatting/scientific.d.ts +14 -0
  45. package/dist/formatting/scientific.js +24 -0
  46. package/dist/formatting/temperature.d.ts +6 -0
  47. package/dist/formatting/temperature.js +27 -0
  48. package/dist/formatting/trim.d.ts +10 -0
  49. package/dist/formatting/trim.js +20 -0
  50. package/dist/index.d.ts +30 -0
  51. package/dist/tests/analyzing/checkMultiplePatterns.test.d.ts +1 -0
  52. package/dist/tests/analyzing/checkMultiplePatterns.test.js +81 -0
  53. package/dist/tests/analyzing/checkSubsequence.test.d.ts +1 -0
  54. package/dist/tests/analyzing/checkSubsequence.test.js +34 -0
  55. package/dist/tests/analyzing/contentWordCount.test.d.ts +1 -0
  56. package/dist/tests/analyzing/contentWordCount.test.js +20 -0
  57. package/dist/tests/analyzing/functionWordCount.test.d.ts +1 -0
  58. package/dist/tests/analyzing/functionWordCount.test.js +20 -0
  59. package/dist/tests/analyzing/lexicographicalRank.test.d.ts +1 -0
  60. package/dist/tests/analyzing/lexicographicalRank.test.js +43 -0
  61. package/dist/tests/analyzing/stringRotation.test.d.ts +1 -0
  62. package/dist/tests/analyzing/stringRotation.test.js +42 -0
  63. package/dist/tests/formatting/binary.test.d.ts +1 -0
  64. package/dist/tests/formatting/binary.test.js +53 -0
  65. package/dist/tests/formatting/creditCard.test.d.ts +1 -0
  66. package/dist/tests/formatting/creditCard.test.js +31 -0
  67. package/dist/tests/formatting/decimal.test.d.ts +1 -0
  68. package/dist/tests/formatting/decimal.test.js +62 -0
  69. package/dist/tests/formatting/duration.test.d.ts +1 -0
  70. package/dist/tests/formatting/duration.test.js +61 -0
  71. package/dist/tests/formatting/fileSize.test.d.ts +1 -0
  72. package/dist/tests/formatting/fileSize.test.js +39 -0
  73. package/dist/tests/formatting/hexadecimal.test.d.ts +1 -0
  74. package/dist/tests/formatting/hexadecimal.test.js +38 -0
  75. package/dist/tests/formatting/listToString.test.d.ts +1 -0
  76. package/dist/tests/formatting/listToString.test.js +37 -0
  77. package/dist/tests/formatting/octal.test.d.ts +1 -0
  78. package/dist/tests/formatting/octal.test.js +36 -0
  79. package/dist/tests/formatting/ordinal.test.d.ts +1 -0
  80. package/dist/tests/formatting/ordinal.test.js +37 -0
  81. package/dist/tests/formatting/percentage.test.d.ts +1 -0
  82. package/dist/tests/formatting/percentage.test.js +38 -0
  83. package/dist/tests/formatting/romanNumerals.test.d.ts +1 -0
  84. package/dist/tests/formatting/romanNumerals.test.js +35 -0
  85. package/dist/tests/formatting/scientific.test.d.ts +1 -0
  86. package/dist/tests/formatting/scientific.test.js +35 -0
  87. package/dist/tests/formatting/temperature.test.d.ts +1 -0
  88. package/dist/tests/formatting/temperature.test.js +34 -0
  89. package/dist/tests/formatting/trim.test.d.ts +1 -0
  90. package/dist/tests/formatting/trim.test.js +42 -0
  91. package/dist/tests/transformations/reverseString.test.d.ts +1 -0
  92. package/dist/tests/transformations/reverseString.test.js +41 -0
  93. package/dist/tests/transformations/stringCombinations.test.d.ts +1 -0
  94. package/dist/tests/transformations/stringCombinations.test.js +41 -0
  95. package/dist/tests/transformations/stringPermutations.test.d.ts +1 -0
  96. package/dist/tests/transformations/stringPermutations.test.js +110 -0
  97. package/dist/tests/validations/isAlphaNumeric.test.d.ts +1 -0
  98. package/dist/tests/validations/isAlphaNumeric.test.js +30 -0
  99. package/dist/tests/validations/isAlphabetic.test.d.ts +1 -0
  100. package/dist/tests/validations/isAlphabetic.test.js +32 -0
  101. package/dist/tests/validations/isAnagram.test.d.ts +1 -0
  102. package/dist/tests/validations/isAnagram.test.js +44 -0
  103. package/dist/tests/validations/isIPv6.test.d.ts +1 -0
  104. package/dist/tests/validations/isIPv6.test.js +65 -0
  105. package/dist/tests/validations/isLowerCase.test.d.ts +1 -0
  106. package/dist/tests/validations/isLowerCase.test.js +50 -0
  107. package/dist/tests/validations/isMacAddress.test.d.ts +1 -0
  108. package/dist/tests/validations/isMacAddress.test.js +72 -0
  109. package/dist/tests/validations/isPanagram.test.d.ts +1 -0
  110. package/dist/tests/validations/isPanagram.test.js +39 -0
  111. package/dist/tests/validations/isUpperCase.test.d.ts +1 -0
  112. package/dist/tests/validations/isUpperCase.test.js +50 -0
  113. package/dist/transformations/index.d.ts +10 -0
  114. package/dist/transformations/index.js +16 -2
  115. package/dist/transformations/reverseWordsInString .d.ts +9 -0
  116. package/dist/transformations/reverseWordsInString .js +49 -0
  117. package/dist/transformations/stringCombinations.d.ts +28 -0
  118. package/dist/transformations/stringCombinations.js +44 -0
  119. package/dist/transformations/stringPermutations.d.ts +53 -0
  120. package/dist/transformations/stringPermutations.js +179 -0
  121. package/dist/validations/index.d.ts +24 -0
  122. package/dist/validations/index.js +34 -2
  123. package/dist/validations/isAlphaNumeric.d.ts +11 -0
  124. package/dist/validations/isAlphaNumeric.js +22 -0
  125. package/dist/validations/isAlphabetic.d.ts +9 -0
  126. package/dist/validations/isAlphabetic.js +21 -0
  127. package/dist/validations/isAnagram.d.ts +13 -0
  128. package/dist/validations/isAnagram.js +23 -0
  129. package/dist/validations/isIPv6.d.ts +24 -0
  130. package/dist/validations/isIPv6.js +45 -0
  131. package/dist/validations/isLowerCase.d.ts +12 -0
  132. package/dist/validations/isLowerCase.js +32 -0
  133. package/dist/validations/isMacAddress.d.ts +27 -0
  134. package/dist/validations/isMacAddress.js +43 -0
  135. package/dist/validations/isPanagram.d.ts +20 -0
  136. package/dist/validations/isPanagram.js +35 -0
  137. package/dist/validations/isUpperCase.d.ts +12 -0
  138. package/dist/validations/isUpperCase.js +32 -0
  139. package/package.json +3 -3
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const reverseWordsInString_1 = require("../../transformations/reverseWordsInString ");
9
+ (0, node_test_1.describe)('reverseWordsInString', () => {
10
+ (0, node_test_1.it)('reverses words while preserving multiple spaces between them', () => {
11
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)('Hello world from stringzy'), 'stringzy from world Hello');
12
+ });
13
+ (0, node_test_1.it)('preserves the exact leading and trailing spaces', () => {
14
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(' leading and trailing '), ' trailing and leading ');
15
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)('leading and trailing '), 'trailing and leading ');
16
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(' leading and trailing'), ' trailing and leading');
17
+ });
18
+ (0, node_test_1.it)('handles a complex mix of spacing correctly', () => {
19
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(' first second third '), ' third second first ');
20
+ });
21
+ (0, node_test_1.it)('handles a single word with or without spaces', () => {
22
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)('singleword'), 'singleword');
23
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(' singleword '), ' singleword ');
24
+ });
25
+ (0, node_test_1.it)('returns the original string if it contains only whitespace', () => {
26
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(' '), ' ');
27
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)('\t \n'), '\t \n');
28
+ });
29
+ (0, node_test_1.it)('returns an empty string for an empty input', () => {
30
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)(''), '');
31
+ });
32
+ (0, node_test_1.it)('handles words with numbers and special characters correctly', () => {
33
+ node_assert_1.default.strictEqual((0, reverseWordsInString_1.reverseWordsInString)('word1! word2@#$'), 'word2@#$ word1!');
34
+ });
35
+ (0, node_test_1.it)('throws a TypeError if the input is not a string', () => {
36
+ node_assert_1.default.throws(() => (0, reverseWordsInString_1.reverseWordsInString)(12345), /Input must be a string/);
37
+ node_assert_1.default.throws(() => (0, reverseWordsInString_1.reverseWordsInString)(null), /Input must be a string/);
38
+ node_assert_1.default.throws(() => (0, reverseWordsInString_1.reverseWordsInString)(undefined), /Input must be a string/);
39
+ node_assert_1.default.throws(() => (0, reverseWordsInString_1.reverseWordsInString)({}), /Input must be a string/);
40
+ });
41
+ });
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const stringCombinations_1 = require("../../transformations/stringCombinations");
9
+ (0, node_test_1.describe)('stringCombinations', () => {
10
+ (0, node_test_1.it)('returns correct combinations for 2 characters', () => {
11
+ const expected = ['', 'a', 'b', 'ab'];
12
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('ab').sort(), expected.sort());
13
+ });
14
+ (0, node_test_1.it)('returns correct combinations for 3 unique characters', () => {
15
+ const expected = ['', 'a', 'b', 'c', 'ab', 'ac', 'bc', 'abc'];
16
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('abc').sort(), expected.sort());
17
+ });
18
+ (0, node_test_1.it)('handles repeated characters correctly', () => {
19
+ const expected = ['', 'a', 'b', 'aa', 'ab', 'aab'];
20
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('aab').sort(), expected.sort());
21
+ });
22
+ (0, node_test_1.it)('returns only empty string for empty input', () => {
23
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)(''), ['']);
24
+ });
25
+ (0, node_test_1.it)('handles single character input', () => {
26
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('a'), ['', 'a']);
27
+ });
28
+ (0, node_test_1.it)('is case-sensitive', () => {
29
+ const expected = ['', 'A', 'b', 'Ab'];
30
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('Ab').sort(), expected.sort());
31
+ });
32
+ (0, node_test_1.it)('handles special characters correctly', () => {
33
+ const expected = ['', '!', '@', '!@'];
34
+ node_assert_1.default.deepStrictEqual((0, stringCombinations_1.stringCombinations)('!@').sort(), expected.sort());
35
+ });
36
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
37
+ node_assert_1.default.throws(() => (0, stringCombinations_1.stringCombinations)(123), /Input must be a string/);
38
+ node_assert_1.default.throws(() => (0, stringCombinations_1.stringCombinations)(null), /Input must be a string/);
39
+ node_assert_1.default.throws(() => (0, stringCombinations_1.stringCombinations)(undefined), /Input must be a string/);
40
+ });
41
+ });
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const stringPermutations_1 = require("../../transformations/stringPermutations");
9
+ (0, node_test_1.describe)('stringPermutations', () => {
10
+ (0, node_test_1.it)('returns correct permutations for small strings', () => {
11
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('ab').sort(), ['ab', 'ba'].sort());
12
+ });
13
+ (0, node_test_1.it)('returns all permutations for 3 unique characters', () => {
14
+ const expected = ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'];
15
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('abc').sort(), expected.sort());
16
+ });
17
+ (0, node_test_1.it)('handles repeated characters correctly', () => {
18
+ const expected = ['aab', 'aba', 'baa'];
19
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('aab').sort(), expected.sort());
20
+ });
21
+ (0, node_test_1.it)('handles single character input', () => {
22
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('a'), ['a']);
23
+ });
24
+ (0, node_test_1.it)('handles empty string input', () => {
25
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)(''), ['']);
26
+ });
27
+ (0, node_test_1.it)('is case-sensitive', () => {
28
+ const expected = ['Ab', 'bA'];
29
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('Ab').sort(), expected.sort());
30
+ });
31
+ (0, node_test_1.it)('handles special characters', () => {
32
+ const expected = ['!@', '@!'];
33
+ node_assert_1.default.deepStrictEqual((0, stringPermutations_1.stringPermutations)('!@').sort(), expected.sort());
34
+ });
35
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
36
+ node_assert_1.default.throws(() => (0, stringPermutations_1.stringPermutations)(123), /Input must be a string/);
37
+ node_assert_1.default.throws(() => (0, stringPermutations_1.stringPermutations)(null), /Input must be a string/);
38
+ node_assert_1.default.throws(() => (0, stringPermutations_1.stringPermutations)(undefined), /Input must be a string/);
39
+ });
40
+ (0, node_test_1.it)('respects limit parameter', () => {
41
+ const result = (0, stringPermutations_1.stringPermutations)('abcdef', 3);
42
+ node_assert_1.default.strictEqual(result.length, 3);
43
+ // All results should be valid permutations
44
+ for (const perm of result) {
45
+ node_assert_1.default.strictEqual(perm.length, 6);
46
+ node_assert_1.default.strictEqual([...perm].sort().join(''), 'abcdef');
47
+ }
48
+ });
49
+ (0, node_test_1.it)('throws error for negative limit', () => {
50
+ node_assert_1.default.throws(() => (0, stringPermutations_1.stringPermutations)('abc', -1), /Limit must be non-negative/);
51
+ });
52
+ (0, node_test_1.it)('handles limit of 0', () => {
53
+ const result = (0, stringPermutations_1.stringPermutations)('abc', 0);
54
+ node_assert_1.default.strictEqual(result.length, 0);
55
+ });
56
+ (0, node_test_1.it)('handles limit larger than total permutations', () => {
57
+ const result = (0, stringPermutations_1.stringPermutations)('abc', 100);
58
+ node_assert_1.default.strictEqual(result.length, 6); // 3! = 6
59
+ });
60
+ });
61
+ (0, node_test_1.describe)('stringPermutationsGenerator', () => {
62
+ (0, node_test_1.it)('yields correct permutations for small strings', () => {
63
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('ab')).sort();
64
+ node_assert_1.default.deepStrictEqual(result, ['ab', 'ba']);
65
+ });
66
+ (0, node_test_1.it)('yields all permutations for 3 unique characters', () => {
67
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('abc')).sort();
68
+ const expected = ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'];
69
+ node_assert_1.default.deepStrictEqual(result, expected);
70
+ });
71
+ (0, node_test_1.it)('handles repeated characters correctly', () => {
72
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('aab')).sort();
73
+ const expected = ['aab', 'aba', 'baa'];
74
+ node_assert_1.default.deepStrictEqual(result, expected);
75
+ });
76
+ (0, node_test_1.it)('handles single character input', () => {
77
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('a'));
78
+ node_assert_1.default.deepStrictEqual(result, ['a']);
79
+ });
80
+ (0, node_test_1.it)('handles empty string input', () => {
81
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)(''));
82
+ node_assert_1.default.deepStrictEqual(result, ['']);
83
+ });
84
+ (0, node_test_1.it)('is case-sensitive', () => {
85
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('Ab')).sort();
86
+ const expected = ['Ab', 'bA'];
87
+ node_assert_1.default.deepStrictEqual(result, expected);
88
+ });
89
+ (0, node_test_1.it)('handles special characters', () => {
90
+ const result = Array.from((0, stringPermutations_1.stringPermutationsGenerator)('!@')).sort();
91
+ const expected = ['!@', '@!'];
92
+ node_assert_1.default.deepStrictEqual(result, expected);
93
+ });
94
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
95
+ // Generator functions throw when first consumed, not when created
96
+ const gen1 = (0, stringPermutations_1.stringPermutationsGenerator)(123);
97
+ node_assert_1.default.throws(() => gen1.next(), /Input must be a string/);
98
+ const gen2 = (0, stringPermutations_1.stringPermutationsGenerator)(null);
99
+ node_assert_1.default.throws(() => gen2.next(), /Input must be a string/);
100
+ const gen3 = (0, stringPermutations_1.stringPermutationsGenerator)(undefined);
101
+ node_assert_1.default.throws(() => gen3.next(), /Input must be a string/);
102
+ });
103
+ (0, node_test_1.it)('can be used with for...of loop', () => {
104
+ const results = [];
105
+ for (const perm of (0, stringPermutations_1.stringPermutationsGenerator)('abc')) {
106
+ results.push(perm);
107
+ }
108
+ node_assert_1.default.strictEqual(results.length, 6);
109
+ });
110
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isAlphaNumeric_1 = require("../../validations/isAlphaNumeric");
9
+ (0, node_test_1.describe)('isAlphaNumeric', () => {
10
+ (0, node_test_1.it)('returns true for alphanumeric strings', () => {
11
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('abc123'), true);
12
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('A1B2C3'), true);
13
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('123'), true);
14
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('abc'), true);
15
+ });
16
+ (0, node_test_1.it)('returns false for strings with special characters or spaces', () => {
17
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('abc!123'), false);
18
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('hello world'), false);
19
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)('test@'), false);
20
+ });
21
+ (0, node_test_1.it)('returns false for empty string', () => {
22
+ node_assert_1.default.strictEqual((0, isAlphaNumeric_1.isAlphaNumeric)(''), false);
23
+ });
24
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
25
+ node_assert_1.default.throws(() => (0, isAlphaNumeric_1.isAlphaNumeric)(123), /Input must be a string/);
26
+ node_assert_1.default.throws(() => (0, isAlphaNumeric_1.isAlphaNumeric)(null), /Input must be a string/);
27
+ node_assert_1.default.throws(() => (0, isAlphaNumeric_1.isAlphaNumeric)(undefined), /Input must be a string/);
28
+ node_assert_1.default.throws(() => (0, isAlphaNumeric_1.isAlphaNumeric)({}), /Input must be a string/);
29
+ });
30
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isAlphabetic_1 = require("../../validations/isAlphabetic");
9
+ (0, node_test_1.describe)('isAlphabetic', () => {
10
+ (0, node_test_1.it)('returns true for purely alphabetic strings', () => {
11
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('hello'), true);
12
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('World'), true);
13
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('TestCase'), true);
14
+ });
15
+ (0, node_test_1.it)('returns false for strings with numbers', () => {
16
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('hello123'), false);
17
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('Test1'), false);
18
+ });
19
+ (0, node_test_1.it)('returns false for strings with special characters or spaces', () => {
20
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('hello!'), false);
21
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('hello world'), false);
22
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)('Hi-There'), false);
23
+ });
24
+ (0, node_test_1.it)('returns false for empty strings', () => {
25
+ node_assert_1.default.strictEqual((0, isAlphabetic_1.isAlphabetic)(''), false);
26
+ });
27
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
28
+ node_assert_1.default.throws(() => (0, isAlphabetic_1.isAlphabetic)(123), /Input must be a string/);
29
+ node_assert_1.default.throws(() => (0, isAlphabetic_1.isAlphabetic)(null), /Input must be a string/);
30
+ node_assert_1.default.throws(() => (0, isAlphabetic_1.isAlphabetic)(undefined), /Input must be a string/);
31
+ });
32
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isAnagram_1 = require("../../validations/isAnagram");
9
+ (0, node_test_1.describe)('isAnagram', () => {
10
+ (0, node_test_1.it)('returns true for valid anagrams (simple lowercase words)', () => {
11
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('listen', 'silent'), true);
12
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('evil', 'vile'), true);
13
+ });
14
+ (0, node_test_1.it)('returns true for case-insensitive matches', () => {
15
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Listen', 'Silent'), true);
16
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Debit Card', 'Bad Credit'), true);
17
+ });
18
+ (0, node_test_1.it)('returns true when ignoring spaces and punctuation', () => {
19
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('Astronomer', 'Moon starer'), true);
20
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('The eyes!!', 'They see'), true);
21
+ });
22
+ (0, node_test_1.it)('returns false for non-anagrams', () => {
23
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('hello', 'world'), false);
24
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('abc', 'abcd'), false);
25
+ });
26
+ (0, node_test_1.it)('returns true for single character anagrams', () => {
27
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', 'a'), true);
28
+ });
29
+ (0, node_test_1.it)('returns false for different single characters', () => {
30
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', 'b'), false);
31
+ });
32
+ (0, node_test_1.it)('returns true for empty strings (both empty)', () => {
33
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('', ''), true);
34
+ });
35
+ (0, node_test_1.it)('returns false when only one string is empty', () => {
36
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('', 'a'), false);
37
+ node_assert_1.default.strictEqual((0, isAnagram_1.isAnagram)('a', ''), false);
38
+ });
39
+ (0, node_test_1.it)('throws an error if inputs are not strings', () => {
40
+ node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(123, 'abc'), /Both inputs must be strings/);
41
+ node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(null, 'abc'), /Both inputs must be strings/);
42
+ node_assert_1.default.throws(() => (0, isAnagram_1.isAnagram)(undefined, 'abc'), /Both inputs must be strings/);
43
+ });
44
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isIPv6_1 = require("../../validations/isIPv6");
9
+ (0, node_test_1.describe)('isIPv6', () => {
10
+ (0, node_test_1.it)('returns true for valid full IPv6 addresses', () => {
11
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:0db8:85a3:0000:0000:8a2e:0370:7334'), true);
12
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'), true);
13
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('0:0:0:0:0:0:0:1'), true);
14
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('fe80:0000:0000:0000:0202:b3ff:fe1e:8329'), true);
15
+ });
16
+ (0, node_test_1.it)('returns true for valid shorthand IPv6 addresses', () => {
17
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3::8a2e:370:7334'), true);
18
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('::1'), true);
19
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('fe80::1'), true);
20
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('::'), true);
21
+ });
22
+ (0, node_test_1.it)('returns false for IPv6 addresses with too many groups', () => {
23
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:0db8:85a3:0000:0000:8a2e:0370:7334:1234'), false);
24
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('1:2:3:4:5:6:7:8:9'), false);
25
+ });
26
+ (0, node_test_1.it)('returns false for IPv6 addresses with too few groups without shorthand', () => {
27
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3:8a2e:370:7334'), false);
28
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('1:2:3:4:5:6:7'), false);
29
+ });
30
+ (0, node_test_1.it)('returns false for invalid use of shorthand (::)', () => {
31
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:::1'), false);
32
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)(':::1'), false);
33
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001::85a3::7334'), false);
34
+ });
35
+ (0, node_test_1.it)('returns false for groups longer than 4 hex digits', () => {
36
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('12345::abcd'), false);
37
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3:00000:0000:8a2e:0370:7334'), false);
38
+ });
39
+ (0, node_test_1.it)('returns false for invalid characters', () => {
40
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3:z000:0000:8a2e:0370:7334'), false);
41
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3:0000:0000:8a2e:0370:g334'), false);
42
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('abcd:efgh:ijkl:mnop:qrst:uvwx:yz12:3456'), false);
43
+ });
44
+ (0, node_test_1.it)('returns false for special characters and malformed strings', () => {
45
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8:85a3:0000:0000:8a2e:0370:7334:'), false);
46
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)(':2001:db8:85a3:0000:0000:8a2e:0370:7334'), false);
47
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8::85a3::7334'), false);
48
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8::85a3:7334:'), false);
49
+ });
50
+ (0, node_test_1.it)('returns false for empty strings and edge cases', () => {
51
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)(''), false);
52
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)(':'), false);
53
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)(':::'), false);
54
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('::::'), false);
55
+ });
56
+ (0, node_test_1.it)('returns true for uppercase valid IPv6 addresses (case-insensitive)', () => {
57
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:DB8:85A3::8A2E:370:7334'), true);
58
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('FE80::1'), true);
59
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF'), true);
60
+ });
61
+ (0, node_test_1.it)('returns false for IPv4-mapped IPv6 (unsupported by this validator)', () => {
62
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('::ffff:192.168.1.1'), false);
63
+ node_assert_1.default.strictEqual((0, isIPv6_1.isIPv6)('2001:db8::192.168.1.1'), false);
64
+ });
65
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const isLowerCase_1 = require("../../validations/isLowerCase");
9
+ (0, node_test_1.describe)('isLowerCase', () => {
10
+ (0, node_test_1.it)('returns true for all lowercase alphabetic strings', () => {
11
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('hello'), true);
12
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('world'), true);
13
+ });
14
+ (0, node_test_1.it)('returns true for strings with lowercase letters, spaces, digits, or special characters', () => {
15
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('hello world!'), true);
16
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('abc123'), true);
17
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('lower_case-only!!'), true);
18
+ });
19
+ (0, node_test_1.it)('returns false if any uppercase alphabetic character is present', () => {
20
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('Hello'), false);
21
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('worldWide'), false);
22
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('123ABC'), false);
23
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('@@Good@@'), false);
24
+ });
25
+ (0, node_test_1.it)('returns false for an empty string', () => {
26
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)(''), false);
27
+ });
28
+ (0, node_test_1.it)('returns true for strings with only non-alphabetic characters (digits/symbols/spaces)', () => {
29
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('12345'), false); // no letters
30
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('!@#$%^&*()'), false);
31
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)(' '), false); // spaces only
32
+ });
33
+ (0, node_test_1.it)('returns true for single lowercase letters', () => {
34
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('a'), true);
35
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('z'), true);
36
+ });
37
+ (0, node_test_1.it)('returns false for single uppercase letters', () => {
38
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('A'), false);
39
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('Z'), false);
40
+ });
41
+ (0, node_test_1.it)('handles mixed alphanumeric correctly', () => {
42
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('abc123xyz'), true);
43
+ strict_1.default.strictEqual((0, isLowerCase_1.isLowerCase)('abcXYZ123'), false);
44
+ });
45
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
46
+ strict_1.default.throws(() => (0, isLowerCase_1.isLowerCase)(123), /Input must be a string/);
47
+ strict_1.default.throws(() => (0, isLowerCase_1.isLowerCase)(null), /Input must be a string/);
48
+ strict_1.default.throws(() => (0, isLowerCase_1.isLowerCase)(undefined), /Input must be a string/);
49
+ });
50
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isMacAddress_1 = require("../../validations/isMacAddress");
9
+ (0, node_test_1.describe)('isMacAddress', () => {
10
+ (0, node_test_1.it)('returns true for valid MAC addresses with colons', () => {
11
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:5E'), true);
12
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('aa:bb:cc:dd:ee:ff'), true);
13
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('FF:FF:FF:FF:FF:FF'), true);
14
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('01:23:45:67:89:AB'), true);
15
+ });
16
+ (0, node_test_1.it)('returns true for valid MAC addresses with hyphens', () => {
17
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00-1A-2B-3C-4D-5E'), true);
18
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('aa-bb-cc-dd-ee-ff'), true);
19
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('FF-FF-FF-FF-FF-FF'), true);
20
+ });
21
+ (0, node_test_1.it)('returns false for MAC addresses with mixed separators', () => {
22
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A-2B:3C-4D:5E'), false);
23
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('AA-BB:CC-DD:EE-FF'), false);
24
+ });
25
+ (0, node_test_1.it)('returns false for MAC addresses with invalid hex digits', () => {
26
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1G:2B:3C:4D:5E'), false);
27
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('ZZ:ZZ:ZZ:ZZ:ZZ:ZZ'), false);
28
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('GG-GG-GG-GG-GG-GG'), false);
29
+ });
30
+ (0, node_test_1.it)('returns false for MAC addresses with wrong length', () => {
31
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D'), false); // only 5 pairs
32
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:5E:7F'), false); // 7 pairs
33
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('001A:2B:3C:4D:5E'), false); // first group too long
34
+ });
35
+ (0, node_test_1.it)('returns false for MAC addresses with leading/trailing spaces', () => {
36
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)(' 00:1A:2B:3C:4D:5E'), false);
37
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:5E '), false);
38
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)(' 00:1A:2B:3C:4D:5E '), false);
39
+ });
40
+ (0, node_test_1.it)('returns false for MAC addresses with spaces inside', () => {
41
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D :5E'), false);
42
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00 :1A:2B:3C:4D:5E'), false);
43
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C: 4D:5E'), false);
44
+ });
45
+ (0, node_test_1.it)('returns false for missing separators', () => {
46
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('001A2B3C4D5E'), false);
47
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A2B:3C4D:5E'), false);
48
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00-1A2B-3C4D-5E'), false);
49
+ });
50
+ (0, node_test_1.it)('returns false for extra separators', () => {
51
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00::1A:2B:3C:4D:5E'), false);
52
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00-1A--2B-3C-4D-5E'), false);
53
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:5E:'), false);
54
+ });
55
+ (0, node_test_1.it)('returns false for empty strings and malformed inputs', () => {
56
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)(''), false);
57
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('::::::'), false);
58
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('--:--:--:--:--:--'), false);
59
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:5E:'), false);
60
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)(':00:1A:2B:3C:4D:5E'), false);
61
+ });
62
+ (0, node_test_1.it)('returns false for non-hex characters and invalid formats', () => {
63
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('00:1A:2B:3C:4D:GH'), false);
64
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('hello-world-mac'), false);
65
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('mac:address:test'), false);
66
+ });
67
+ (0, node_test_1.it)('accepts both uppercase and lowercase consistently', () => {
68
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('aa:bb:cc:dd:ee:ff'), true);
69
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('AA:BB:CC:DD:EE:FF'), true);
70
+ node_assert_1.default.strictEqual((0, isMacAddress_1.isMacAddress)('Aa:Bb:Cc:Dd:Ee:Ff'), true);
71
+ });
72
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const isPanagram_1 = require("../../validations/isPanagram");
9
+ (0, node_test_1.describe)('isPanagram', () => {
10
+ (0, node_test_1.it)('returns true for a classic pangram sentence', () => {
11
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('The quick brown fox jumps over the lazy dog.'), true);
12
+ });
13
+ (0, node_test_1.it)('returns true for the alphabet with hyphens or separators', () => {
14
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z'), true);
15
+ });
16
+ (0, node_test_1.it)('returns true for alphabet without separators', () => {
17
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('Abcdefghijklmnopqrstuvwxyz'), true);
18
+ });
19
+ (0, node_test_1.it)('returns true for alphabet in mixed case', () => {
20
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('AbCdEfGhIjKlMnOpQrStUvWxYz'), true);
21
+ });
22
+ (0, node_test_1.it)('returns false for non-pangram sentences', () => {
23
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('This is not a pangram.'), false);
24
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('Hello world'), false);
25
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('Quick fox'), false);
26
+ });
27
+ (0, node_test_1.it)('returns false for empty strings', () => {
28
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)(''), false);
29
+ });
30
+ (0, node_test_1.it)('ignores numbers and punctuation', () => {
31
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('The quick brown fox jumps over the lazy dog! 12345'), true);
32
+ node_assert_1.default.strictEqual((0, isPanagram_1.isPanagram)('1234567890 !!! ???'), false);
33
+ });
34
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
35
+ node_assert_1.default.throws(() => (0, isPanagram_1.isPanagram)(123), /Input must be a string/);
36
+ node_assert_1.default.throws(() => (0, isPanagram_1.isPanagram)(null), /Input must be a string/);
37
+ node_assert_1.default.throws(() => (0, isPanagram_1.isPanagram)(undefined), /Input must be a string/);
38
+ });
39
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const strict_1 = __importDefault(require("node:assert/strict"));
8
+ const isUpperCase_1 = require("../../validations/isUpperCase");
9
+ (0, node_test_1.describe)('isUpperCase', () => {
10
+ (0, node_test_1.it)('returns true for all uppercase alphabetic strings', () => {
11
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('HELLO'), true);
12
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('WORLD'), true);
13
+ });
14
+ (0, node_test_1.it)('returns true for strings with uppercase letters, spaces, digits, or special characters', () => {
15
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('HELLO WORLD!'), true);
16
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('ABC123'), true);
17
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('UPPER_CASE-ONLY!!'), true);
18
+ });
19
+ (0, node_test_1.it)('returns false if any lowercase alphabetic character is present', () => {
20
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('Hello'), false);
21
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('WORLDwide'), false);
22
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('123abc'), false);
23
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('@@good@@'), false);
24
+ });
25
+ (0, node_test_1.it)('returns false for an empty string', () => {
26
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)(''), false);
27
+ });
28
+ (0, node_test_1.it)('returns false for strings with only non-alphabetic characters (digits/symbols/spaces)', () => {
29
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('12345'), false); // no letters
30
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('!@#$%^&*()'), false);
31
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)(' '), false); // spaces only
32
+ });
33
+ (0, node_test_1.it)('returns true for single uppercase letters', () => {
34
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('A'), true);
35
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('Z'), true);
36
+ });
37
+ (0, node_test_1.it)('returns false for single lowercase letters', () => {
38
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('a'), false);
39
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('z'), false);
40
+ });
41
+ (0, node_test_1.it)('handles mixed alphanumeric correctly', () => {
42
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('ABC123XYZ'), true);
43
+ strict_1.default.strictEqual((0, isUpperCase_1.isUpperCase)('ABCxyz123'), false);
44
+ });
45
+ (0, node_test_1.it)('throws an error if input is not a string', () => {
46
+ strict_1.default.throws(() => (0, isUpperCase_1.isUpperCase)(123), /Input must be a string/);
47
+ strict_1.default.throws(() => (0, isUpperCase_1.isUpperCase)(null), /Input must be a string/);
48
+ strict_1.default.throws(() => (0, isUpperCase_1.isUpperCase)(undefined), /Input must be a string/);
49
+ });
50
+ });