nhb-toolbox 2.8.4 → 2.8.5

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/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { capitalizeString, generateRandomID, trimString, truncateString, } from './string/basics';
2
2
  export { generateAnagrams } from './string/anagram';
3
- export { convertStringCase, replaceAllInString } from './string/convert';
3
+ export { convertStringCase, maskString, replaceAllInString, reverseString, slugifyString, } from './string/convert';
4
+ export { extractNumbersFromString, getLevenshteinDistance, isPalindrome, getLevenshteinDistance as levenshteinDistance, } from './string/utilities';
4
5
  export { calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, convertToDecimal, getRandomNumber, isEven, isEven as isEvenNumber, isMultiple, isOdd, isOdd as isOddNumber, } from './number/basics';
5
6
  export { numberToWords } from './number/convert';
6
7
  export { findPrimeNumbers, isPrime, isPrime as isPrimeNumber, } from './number/prime';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  // ! String Utilities
2
2
  export { capitalizeString, generateRandomID, trimString, truncateString, } from './string/basics';
3
3
  export { generateAnagrams } from './string/anagram';
4
- export { convertStringCase, replaceAllInString } from './string/convert';
4
+ export { convertStringCase, maskString, replaceAllInString, reverseString, slugifyString, } from './string/convert';
5
+ export { extractNumbersFromString, getLevenshteinDistance, isPalindrome, getLevenshteinDistance as levenshteinDistance, } from './string/utilities';
5
6
  // ! Number Utilities
6
7
  export { calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, convertToDecimal, getRandomNumber, isEven, isEven as isEvenNumber, isMultiple, isOdd, isOdd as isOddNumber, } from './number/basics';
7
8
  export { numberToWords } from './number/convert';
@@ -1,4 +1,4 @@
1
- import type { CaseFormat } from './types';
1
+ import type { CaseFormat, MaskOptions } from './types';
2
2
  /**
3
3
  * Converts a string to a specified case format such as `camelCase`, `snake_case`, `kebab-case`, `PascalCase`, `Title Case`, `lowercase`, or `UPPERCASE`.
4
4
  *
@@ -37,4 +37,23 @@ export declare function convertStringCase(string: string, format: CaseFormat): s
37
37
  * @returns The modified/refined string with replacements applied.
38
38
  */
39
39
  export declare const replaceAllInString: (input: string, find: string | RegExp, replace: string) => string;
40
+ /**
41
+ * * Converts a string into a URL-friendly slug.
42
+ * @param input - The string to be converted.
43
+ * @returns The slugified string.
44
+ */
45
+ export declare const slugifyString: (input: string) => Lowercase<string>;
46
+ /**
47
+ * * Masks part of a string for privacy.
48
+ * @param input - The string to mask.
49
+ * @param options - Options for masking a string.
50
+ * @returns The masked string.
51
+ */
52
+ export declare const maskString: (input: string, options?: MaskOptions) => string;
53
+ /**
54
+ * * Reverses a given string.
55
+ * @param input - The string to reverse.
56
+ * @returns The reversed string.
57
+ */
58
+ export declare const reverseString: (input: string) => string;
40
59
  //# sourceMappingURL=convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/string/convert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAqF5E;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,UACvB,MAAM,QACP,MAAM,GAAG,MAAM,WACZ,MAAM,KACb,MAgBF,CAAC"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/string/convert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAqF5E;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,UACvB,MAAM,QACP,MAAM,GAAG,MAAM,WACZ,MAAM,KACb,MAYF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,SAAS,CAAC,MAAM,CAK7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,UAAW,MAAM,YAAY,WAAW,KAAG,MAcjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MAI7C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { trimString } from './basics';
1
2
  import { LOWERCASE } from './constants';
2
3
  /**
3
4
  * Converts a string to a specified case format such as `camelCase`, `snake_case`, `kebab-case`, `PascalCase`, `Title Case`, `lowercase`, or `UPPERCASE`.
@@ -95,13 +96,45 @@ export function convertStringCase(string, format) {
95
96
  * @returns The modified/refined string with replacements applied.
96
97
  */
97
98
  export const replaceAllInString = (input, find, replace) => {
98
- if (!input)
99
- return '';
100
- const trimmedString = input?.trim();
101
- if (!trimmedString)
102
- return '';
99
+ const trimmedString = trimString(input);
103
100
  const regex = typeof find === 'string' ?
104
101
  new RegExp(find, 'g')
105
102
  : new RegExp(find, find.flags.includes('g') ? find.flags : find.flags + 'g');
106
103
  return trimmedString?.replace(regex, replace);
107
104
  };
105
+ /**
106
+ * * Converts a string into a URL-friendly slug.
107
+ * @param input - The string to be converted.
108
+ * @returns The slugified string.
109
+ */
110
+ export const slugifyString = (input) => {
111
+ return trimString(input)
112
+ .toLowerCase()
113
+ .replace(/[^a-z0-9]+/g, '-')
114
+ .replace(/^-+|-+$/g, '');
115
+ };
116
+ /**
117
+ * * Masks part of a string for privacy.
118
+ * @param input - The string to mask.
119
+ * @param options - Options for masking a string.
120
+ * @returns The masked string.
121
+ */
122
+ export const maskString = (input, options) => {
123
+ const { start = 1, end = 1, maskCharacter: maskChar = '*' } = options || {};
124
+ const trimmedString = trimString(input);
125
+ if (trimmedString.length <= start + end) {
126
+ return maskChar.repeat(trimmedString.length);
127
+ }
128
+ return (trimmedString.slice(0, start) +
129
+ maskChar.repeat(trimmedString.length - start - end) +
130
+ (end > 0 ? trimmedString.slice(-end) : ''));
131
+ };
132
+ /**
133
+ * * Reverses a given string.
134
+ * @param input - The string to reverse.
135
+ * @returns The reversed string.
136
+ */
137
+ export const reverseString = (input) => {
138
+ const trimmedString = trimString(input);
139
+ return trimmedString.split('').reverse().join('');
140
+ };
@@ -35,5 +35,14 @@ export interface AnagramOptions {
35
35
  }
36
36
  /** - Case formats for converting a string */
37
37
  export type CaseFormat = 'camelCase' | 'snake_case' | 'kebab-case' | 'PascalCase' | 'Title Case' | 'UPPERCASE' | 'lowercase';
38
+ /** Options for masking a string. */
39
+ export interface MaskOptions {
40
+ /** Number of characters to keep at the start. Defaults to `1`. */
41
+ start?: number;
42
+ /** Number of characters to keep at the end. Defaults to `1`. */
43
+ end?: number;
44
+ /** Character to use for masking. Defaults to `*`. */
45
+ maskCharacter?: string;
46
+ }
38
47
  export {};
39
48
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/string/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IACjC,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,mDAAmD;AACnD,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,aAAa,SAAS,OAAO,IACnE,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACvC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,GAC7D,UAAU,CAAC,CAAC,CAAC,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,IACzE,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAC5C,CAAC,CAAC,qBAAqB,CAAC,SAAS,IAAI,GACtC,eAAe,CACd,CAAC,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EACnD,CAAC,CAAC,eAAe,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAC9D,GACA,CAAC,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAChD,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC/B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC9B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,WAAW,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/string/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IACjC,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,mDAAmD;AACnD,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,aAAa,SAAS,OAAO,IACnE,CAAC,SAAS,GAAG,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACvC,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,GAC7D,UAAU,CAAC,CAAC,CAAC,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,iBAAiB,IACzE,CAAC,CAAC,eAAe,CAAC,SAAS,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,GAC5C,CAAC,CAAC,qBAAqB,CAAC,SAAS,IAAI,GACtC,eAAe,CACd,CAAC,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EACnD,CAAC,CAAC,eAAe,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI,CAC9D,GACA,CAAC,CAAC,eAAe,CAAC,SAAS,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,GAChD,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5B,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC/B,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;CACtC;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC9B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GACnB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,WAAW,CAAC;AAEf,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC3B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * * Extracts all numbers from a string as array of numbers.
3
+ * @param input - The string to extract numbers from.
4
+ * @returns An array of numbers found in the string.
5
+ */
6
+ export declare const extractNumbersFromString: (input: string) => number[];
7
+ /**
8
+ * * Checks if a string is a palindrome.
9
+ * @param input - The string to check.
10
+ * @returns True if the string is a palindrome, otherwise false.
11
+ */
12
+ export declare const isPalindrome: (input: string) => boolean;
13
+ /**
14
+ * * Computes the Levenshtein distance between two strings.
15
+ * @param a - First string.
16
+ * @param b - Second string.
17
+ * @returns The Levenshtein distance between the two strings.
18
+ */
19
+ export declare const getLevenshteinDistance: (a: string, b: string) => number;
20
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/string/utilities.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,UAAW,MAAM,KAAG,MAAM,EAE9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,OAG5C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,MAAO,MAAM,KAAK,MAAM,KAAG,MAqB7D,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { reverseString } from './convert';
2
+ /**
3
+ * * Extracts all numbers from a string as array of numbers.
4
+ * @param input - The string to extract numbers from.
5
+ * @returns An array of numbers found in the string.
6
+ */
7
+ export const extractNumbersFromString = (input) => {
8
+ return (input.match(/\d+/g) || []).map(Number);
9
+ };
10
+ /**
11
+ * * Checks if a string is a palindrome.
12
+ * @param input - The string to check.
13
+ * @returns True if the string is a palindrome, otherwise false.
14
+ */
15
+ export const isPalindrome = (input) => {
16
+ const normalized = input.toLowerCase().replace(/[^a-z0-9]/g, '');
17
+ return normalized === reverseString(normalized);
18
+ };
19
+ /**
20
+ * * Computes the Levenshtein distance between two strings.
21
+ * @param a - First string.
22
+ * @param b - Second string.
23
+ * @returns The Levenshtein distance between the two strings.
24
+ */
25
+ export const getLevenshteinDistance = (a, b) => {
26
+ const lenA = a.length;
27
+ const lenB = b.length;
28
+ const dp = Array.from({ length: lenA + 1 }, (_, i) => Array.from({ length: lenB + 1 }, (_, j) => i === 0 ? j
29
+ : j === 0 ? i
30
+ : 0));
31
+ for (let i = 1; i <= lenA; i++) {
32
+ for (let j = 1; j <= lenB; j++) {
33
+ dp[i][j] =
34
+ a[i - 1] === b[j - 1] ?
35
+ dp[i - 1][j - 1]
36
+ : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
37
+ }
38
+ }
39
+ return dp[lenA][lenB];
40
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhb-toolbox",
3
- "version": "2.8.4",
3
+ "version": "2.8.5",
4
4
  "description": "A versatile collection of smart, efficient, and reusable utility functions for everyday development needs.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",