nhb-toolbox 1.2.9 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { capitalizeString, generateRandomID, trimString, truncateString, } from './string/basics';
2
+ export { generateAnagrams } from './string/anagram';
2
3
  export { convertToDecimal, getRandomNumber } from './number/basics';
3
4
  export { numberToWords } from './number/convert';
5
+ export { isPrime, findPrimeNumbers } from './number/prime';
4
6
  export { getColorForInitial } from './colors/initials';
5
7
  export { generateRandomColor } from './colors/random';
6
8
  export { convertHexToHsl, convertHexToRgb, convertHslToHex, convertHslToRgb, convertRgbToHex, convertRgbToHsl, } from './colors/convert';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EACN,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,WAAW,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,cAAc,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EACN,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,WAAW,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,YAAY,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,16 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertObjectValues = exports.sanitizeData = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.isEmptyObject = exports.isDeepEqual = exports.generateQueryParams = exports.flattenObject = exports.countObjectFields = exports.cloneObject = exports.sortAnArray = exports.flattenArray = exports.filterArrayOfObjects = exports.createOptionsArray = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHexToRgb = exports.convertHexToHsl = exports.generateRandomColor = exports.getColorForInitial = exports.numberToWords = exports.getRandomNumber = exports.convertToDecimal = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
3
+ exports.convertObjectValues = exports.sanitizeData = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.isEmptyObject = exports.isDeepEqual = exports.generateQueryParams = exports.flattenObject = exports.countObjectFields = exports.cloneObject = exports.sortAnArray = exports.flattenArray = exports.filterArrayOfObjects = exports.createOptionsArray = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHexToRgb = exports.convertHexToHsl = exports.generateRandomColor = exports.getColorForInitial = exports.findPrimeNumbers = exports.isPrime = exports.numberToWords = exports.getRandomNumber = exports.convertToDecimal = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
4
4
  var basics_1 = require("./string/basics");
5
5
  Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
6
6
  Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
7
7
  Object.defineProperty(exports, "trimString", { enumerable: true, get: function () { return basics_1.trimString; } });
8
8
  Object.defineProperty(exports, "truncateString", { enumerable: true, get: function () { return basics_1.truncateString; } });
9
+ var anagram_1 = require("./string/anagram");
10
+ Object.defineProperty(exports, "generateAnagrams", { enumerable: true, get: function () { return anagram_1.generateAnagrams; } });
9
11
  var basics_2 = require("./number/basics");
10
12
  Object.defineProperty(exports, "convertToDecimal", { enumerable: true, get: function () { return basics_2.convertToDecimal; } });
11
13
  Object.defineProperty(exports, "getRandomNumber", { enumerable: true, get: function () { return basics_2.getRandomNumber; } });
12
14
  var convert_1 = require("./number/convert");
13
15
  Object.defineProperty(exports, "numberToWords", { enumerable: true, get: function () { return convert_1.numberToWords; } });
16
+ var prime_1 = require("./number/prime");
17
+ Object.defineProperty(exports, "isPrime", { enumerable: true, get: function () { return prime_1.isPrime; } });
18
+ Object.defineProperty(exports, "findPrimeNumbers", { enumerable: true, get: function () { return prime_1.findPrimeNumbers; } });
14
19
  var initials_1 = require("./colors/initials");
15
20
  Object.defineProperty(exports, "getColorForInitial", { enumerable: true, get: function () { return initials_1.getColorForInitial; } });
16
21
  var random_1 = require("./colors/random");
@@ -0,0 +1,16 @@
1
+ /**
2
+ * * Checks if a number is prime.
3
+ *
4
+ * @param number The number to check.
5
+ * @returns Boolean: `true` if the number is prime, otherwise `false`.
6
+ */
7
+ export declare const isPrime: (number: number) => boolean;
8
+ /**
9
+ * * Find prime numbers in a given range.
10
+ *
11
+ * @param start The starting number of the range. Default is `1`.
12
+ * @param end The ending number of the range. Default is `1000`.
13
+ * @returns An array of prime numbers within the range (inclusive).
14
+ */
15
+ export declare const findPrimeNumbers: (start?: number, end?: number) => number[];
16
+ //# sourceMappingURL=prime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prime.d.ts","sourceRoot":"","sources":["../../src/number/prime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,OAAO,WAAY,MAAM,KAAG,OAUxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,oCAA4B,MAAM,EAY9D,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findPrimeNumbers = exports.isPrime = void 0;
4
+ /**
5
+ * * Checks if a number is prime.
6
+ *
7
+ * @param number The number to check.
8
+ * @returns Boolean: `true` if the number is prime, otherwise `false`.
9
+ */
10
+ const isPrime = (number) => {
11
+ if (number < 2)
12
+ return false;
13
+ if (number === 2 || number === 3)
14
+ return true;
15
+ if (number % 2 === 0 || number % 3 === 0)
16
+ return false;
17
+ for (let i = 5; i * i <= number; i += 6) {
18
+ if (number % i === 0 || number % (i + 2) === 0)
19
+ return false;
20
+ }
21
+ return true;
22
+ };
23
+ exports.isPrime = isPrime;
24
+ /**
25
+ * * Find prime numbers in a given range.
26
+ *
27
+ * @param start The starting number of the range. Default is `1`.
28
+ * @param end The ending number of the range. Default is `1000`.
29
+ * @returns An array of prime numbers within the range (inclusive).
30
+ */
31
+ const findPrimeNumbers = (start = 1, end = 1000) => {
32
+ let startNumber = start, endNumber = end;
33
+ if (start > end) {
34
+ [startNumber, endNumber] = [end, start];
35
+ }
36
+ return Array.from({ length: endNumber - startNumber + 1 }, (_, i) => startNumber + i).filter(exports.isPrime);
37
+ };
38
+ exports.findPrimeNumbers = findPrimeNumbers;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * * Utility to generate unique anagrams of a word.
3
+ * @param word The word for generating anagrams.
4
+ * @param limit The maximum number of anagrams to return ('all' for unlimited). Default is `100`.
5
+ * @returns An array of generated anagrams. The first element is always the given word.
6
+ */
7
+ export declare function generateAnagrams(word: string, limit?: number | 'all'): string[];
8
+ //# sourceMappingURL=anagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anagram.d.ts","sourceRoot":"","sources":["../../src/string/anagram.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,GAAG,KAAW,GACzB,MAAM,EAAE,CA6BV"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateAnagrams = generateAnagrams;
4
+ /**
5
+ * * Utility to generate unique anagrams of a word.
6
+ * @param word The word for generating anagrams.
7
+ * @param limit The maximum number of anagrams to return ('all' for unlimited). Default is `100`.
8
+ * @returns An array of generated anagrams. The first element is always the given word.
9
+ */
10
+ function generateAnagrams(word, limit = 100) {
11
+ if (word.length <= 1)
12
+ return [word];
13
+ const uniqueAnagrams = new Set();
14
+ /**
15
+ * * Helper function to generate permutations.
16
+ * @param str Current permutation being formed.
17
+ * @param remaining Remaining characters to process.
18
+ */
19
+ const _permute = (str, remaining) => {
20
+ if (!remaining.length) {
21
+ uniqueAnagrams.add(str);
22
+ return;
23
+ }
24
+ for (let i = 0; i < remaining.length; i++) {
25
+ if (limit !== 'all' && uniqueAnagrams.size >= limit)
26
+ return;
27
+ _permute(str + remaining[i], remaining.slice(0, i) + remaining.slice(i + 1));
28
+ }
29
+ };
30
+ _permute('', word.toLowerCase());
31
+ return Array.from(uniqueAnagrams);
32
+ }
@@ -22,4 +22,11 @@ export interface RandomIdOptions {
22
22
  /** Specifies the case for the random alphanumeric string. */
23
23
  caseOption?: 'upper' | 'lower' | null;
24
24
  }
25
+ /** - Options for generating anagrams. */
26
+ export interface AnagramOptions {
27
+ /** Limit the anagrams output. Default is `100`. */
28
+ limit?: number | 'all';
29
+ /** Whether to lookup in the dictionary. Default is `false`. */
30
+ validWords?: boolean;
31
+ }
25
32
  //# 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,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,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;CACtC"}
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,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,6DAA6D;IAC7D,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhb-toolbox",
3
- "version": "1.2.9",
3
+ "version": "1.4.0",
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",