toolbox-x 1.2.1 → 2.0.1

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 (130) hide show
  1. package/dist/{Color-Dsut0Bex.d.cts → Color-BCsnSEmt.d.cts} +1 -1
  2. package/dist/{Color-DCfoQk_-.d.mts → Color-CKmhtXdG.d.mts} +1 -1
  3. package/dist/{Stylog-DXZtHAbp.d.mts → Stylog-CXpN-oeY.d.mts} +5 -5
  4. package/dist/{Stylog-TyLCTRtT.d.cts → Stylog-DJOVxym_.d.cts} +5 -5
  5. package/dist/{area-CcRQ6TfR.d.cts → area-CHhwLR12.d.cts} +3 -3
  6. package/dist/{area-CvSC96va.d.mts → area-DOqFLNcr.d.mts} +3 -3
  7. package/dist/{array-B6jWzJ4F.d.mts → array-BNbTIBni.d.mts} +1 -1
  8. package/dist/{array-CqDu610k.d.cts → array-CL3apdfa.d.cts} +1 -1
  9. package/dist/{basics-KobRNhV-.d.cts → basics-B9aytOct.d.cts} +5 -5
  10. package/dist/{basics-V5M2oltn.d.mts → basics-BNQqY5WD.d.mts} +5 -5
  11. package/dist/{basics-K8BDSYD6.cjs → basics-CJmdhXoo.cjs} +567 -14
  12. package/dist/{basics-1_M7UvCn.mjs → basics-CebgkY-n.mjs} +449 -16
  13. package/dist/{case-uKFzt5TY.cjs → case-Bd7QLHYw.cjs} +3 -3
  14. package/dist/{case-KdrBKjjK.d.mts → case-Bkkm6Mqi.d.mts} +12 -12
  15. package/dist/{case-BQwn5N-k.mjs → case-DBC4Rj0h.mjs} +3 -3
  16. package/dist/{case--Vjea9DS.d.cts → case-DFD3Ml1p.d.cts} +12 -12
  17. package/dist/change-case.cjs +1 -1
  18. package/dist/change-case.d.cts +1 -1
  19. package/dist/change-case.d.mts +1 -1
  20. package/dist/change-case.mjs +1 -1
  21. package/dist/colors.d.cts +2 -2
  22. package/dist/colors.d.mts +2 -2
  23. package/dist/{constants-C4RW7Lei.cjs → constants-Dz5vxNQ9.cjs} +37 -0
  24. package/dist/{constants-rNhoy4DH.mjs → constants-j-iXjwDl.mjs} +32 -1
  25. package/dist/constants.cjs +1 -1
  26. package/dist/constants.d.cts +1 -1
  27. package/dist/constants.d.mts +1 -1
  28. package/dist/constants.mjs +1 -1
  29. package/dist/converter.cjs +2 -2
  30. package/dist/converter.d.cts +2 -2
  31. package/dist/converter.d.mts +2 -2
  32. package/dist/converter.mjs +2 -2
  33. package/dist/date.cjs +51 -10
  34. package/dist/date.d.cts +22 -5
  35. package/dist/date.d.mts +22 -5
  36. package/dist/date.mjs +49 -11
  37. package/dist/dom.cjs +5 -6
  38. package/dist/dom.d.cts +3 -3
  39. package/dist/dom.d.mts +3 -3
  40. package/dist/dom.mjs +4 -5
  41. package/dist/{form-DoQGMTOc.d.mts → form-CC9T9WnX.d.cts} +2 -2
  42. package/dist/{form-mP-nl8EC.d.cts → form-CheKmgjj.d.mts} +2 -2
  43. package/dist/guards-B2s2wlVN.mjs +425 -0
  44. package/dist/{guards-C0smSAKC.mjs → guards-BK1QuvFZ.mjs} +2 -2
  45. package/dist/{guards-ClGDJrQp.cjs → guards-Bsh6Bfdq.cjs} +2 -2
  46. package/dist/{guards-0VjySrPM.cjs → guards-DMJcjPDt.cjs} +279 -3
  47. package/dist/guards.cjs +9 -8
  48. package/dist/guards.d.cts +6 -5
  49. package/dist/guards.d.mts +6 -5
  50. package/dist/guards.mjs +5 -5
  51. package/dist/{hash-BcoFHSu1.d.cts → hash-C0Wr7H8v.d.mts} +1 -1
  52. package/dist/{hash-GYRx2ee_.d.mts → hash-DJ8b9VHB.d.cts} +1 -1
  53. package/dist/hash.cjs +8 -8
  54. package/dist/hash.d.cts +8 -8
  55. package/dist/hash.d.mts +8 -8
  56. package/dist/hash.mjs +4 -5
  57. package/dist/{http-status-xrlR-LlB.d.mts → http-status-BSee6mB5.d.mts} +1 -1
  58. package/dist/{http-status-C0DOpCDf.d.cts → http-status-DJn87B_Y.d.cts} +1 -1
  59. package/dist/http-status.cjs +4 -4
  60. package/dist/http-status.d.cts +6 -6
  61. package/dist/http-status.d.mts +6 -6
  62. package/dist/http-status.mjs +4 -4
  63. package/dist/index-01oaUuP6.d.mts +292 -0
  64. package/dist/index-CgwlWrZM.d.cts +292 -0
  65. package/dist/index.cjs +67 -248
  66. package/dist/index.d.cts +25 -280
  67. package/dist/index.d.mts +25 -280
  68. package/dist/index.mjs +11 -194
  69. package/dist/{object-ChFVh95z.d.cts → object-Mglyg4AW.d.cts} +28 -1
  70. package/dist/{object-ChFVh95z.d.mts → object-Mglyg4AW.d.mts} +28 -1
  71. package/dist/{objectify-DEnFpPt1.mjs → objectify-CQa8gQib.mjs} +3 -4
  72. package/dist/{objectify-DewBSJP_.cjs → objectify-xQvZS3UI.cjs} +5 -6
  73. package/dist/paginator.d.cts +1 -1
  74. package/dist/paginator.d.mts +1 -1
  75. package/dist/{parse-DovagZFA.cjs → parse-BWu3UbOk.cjs} +4 -4
  76. package/dist/{parse-BhZ6-tKg.mjs → parse-CNDdS-sy.mjs} +4 -4
  77. package/dist/{pluralizer-CdG-VJ6t.d.cts → pluralizer-BGMC8LLz.d.cts} +1 -1
  78. package/dist/{pluralizer-D2Lh8CdU.d.mts → pluralizer-CQNzRhwR.d.mts} +1 -1
  79. package/dist/pluralizer.cjs +6 -6
  80. package/dist/pluralizer.d.cts +6 -6
  81. package/dist/pluralizer.d.mts +6 -6
  82. package/dist/pluralizer.mjs +6 -6
  83. package/dist/{specials-Cye93-uo.mjs → specials-Hq5Ncd6y.mjs} +2 -2
  84. package/dist/{specials-BM6cx43o.cjs → specials-dkYP1Nh2.cjs} +2 -2
  85. package/dist/{string-Dq2b8rcN.d.cts → string-BDwBuik3.d.cts} +4 -2
  86. package/dist/{string-CkwTVFeL.d.mts → string-_1ImwUJT.d.mts} +4 -2
  87. package/dist/stylog.cjs +5 -5
  88. package/dist/stylog.d.cts +2 -2
  89. package/dist/stylog.d.mts +2 -2
  90. package/dist/stylog.mjs +5 -5
  91. package/dist/types/array.d.cts +1 -1
  92. package/dist/types/array.d.mts +1 -1
  93. package/dist/types/colors.d.cts +1 -1
  94. package/dist/types/colors.d.mts +1 -1
  95. package/dist/types/converter.d.cts +1 -1
  96. package/dist/types/converter.d.mts +1 -1
  97. package/dist/types/date.d.cts +2 -2
  98. package/dist/types/date.d.mts +2 -2
  99. package/dist/types/form.d.cts +1 -1
  100. package/dist/types/form.d.mts +1 -1
  101. package/dist/types/hash.d.cts +1 -1
  102. package/dist/types/hash.d.mts +1 -1
  103. package/dist/types/http-status.d.cts +1 -1
  104. package/dist/types/http-status.d.mts +1 -1
  105. package/dist/types/index.d.cts +2 -2
  106. package/dist/types/index.d.mts +2 -2
  107. package/dist/types/number.d.cts +1 -1
  108. package/dist/types/number.d.mts +1 -1
  109. package/dist/types/object.d.cts +2 -2
  110. package/dist/types/object.d.mts +2 -2
  111. package/dist/types/pluralizer.d.cts +1 -1
  112. package/dist/types/pluralizer.d.mts +1 -1
  113. package/dist/types/string.d.cts +2 -2
  114. package/dist/types/string.d.mts +2 -2
  115. package/dist/types/stylog.d.cts +1 -1
  116. package/dist/types/stylog.d.mts +1 -1
  117. package/dist/types/utils.d.cts +1 -1
  118. package/dist/types/utils.d.mts +1 -1
  119. package/dist/{utilities-CzyXCRHM.cjs → utilities-CWV1GPGY.cjs} +1 -1
  120. package/dist/{utilities-B9axOvOX.mjs → utilities-DPscNbS1.mjs} +1 -1
  121. package/dist/{uuid-DgTBxcVu.d.cts → uuid-CiJtSUbo.d.cts} +3 -3
  122. package/dist/{uuid-Yc3Uu8qr.d.mts → uuid-D-gjPs4Q.d.mts} +3 -3
  123. package/dist/verbalizer.cjs +3 -3
  124. package/dist/verbalizer.d.cts +3 -3
  125. package/dist/verbalizer.d.mts +3 -3
  126. package/dist/verbalizer.mjs +3 -3
  127. package/package.json +7 -6
  128. package/dist/guards-DeO4ukiK.mjs +0 -221
  129. package/dist/utils-BxguWSoa.cjs +0 -568
  130. package/dist/utils-DXovsTKs.mjs +0 -449
package/dist/index.d.mts CHANGED
@@ -14,11 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { $ as Maybe, $n as RomanCapital, An as BnDigitResult, B as BasicPrimitive, D as NumericDotKey, E as NestedPrimitiveKey, F as SanitizedData, Gn as LooseRomanNumeral, H as ClassDetails, Ln as FrankFurterCurrency, Mn as ConvertedDecimal, Nn as CurrencyCode, O as Objects, P as SanitizeOptions, Pn as DecimalOptions, Qn as RangedNumbers, R as Any, U as Constructor, W as DelayedFn, Wn as LocaleCode, Wr as ProtoMethodOptions, Xn as RandomNumberOptions, Y as FlattenPartial, Yn as PercentageOptions, Zn as RangeOptions, a as ConvertObjectOptions, at as OwnKeys, c as DeepKeys, g as FlattenDotValue, hr as ArrayOfPrimitivesToStringOptions, it as Numeric, jn as ConvertOptions, mr as ArrayOfObjectsToStringOptions, ni as Tuple, o as ConvertedObject, ot as PartialOrRequired, p as ExpandAll, qn as NumberType, s as CountryDetails, si as Unit, st as Primitive, u as DotNotationKey, ut as VoidFn, v as FlattenLeafValue, w as MergeAll, y as GenericObject } from "./object-ChFVh95z.mjs";
18
- import { A as MaskOptions, d as AnagramOptions, h as CharDiffResult, w as DiffResult } from "./string-CkwTVFeL.mjs";
19
- import { n as convertStringCase, t as capitalizeString } from "./case-KdrBKjjK.mjs";
20
- import { n as trimString, r as truncateString, t as generateRandomID } from "./basics-V5M2oltn.mjs";
21
- import { a as Flattened, c as OrderOption, l as SortByOption, n as FindOptions, s as OptionsConfig, t as FieldValue, u as SortNature } from "./array-B6jWzJ4F.mjs";
17
+ import { D as NumericDotKey, E as NestedPrimitiveKey, F as SanitizeOptions, Fn as BnDigitResult, Hn as FrankFurterCurrency, I as SanitizedData, In as ConvertOptions, Ln as ConvertedDecimal, O as ObjectEntry, Q as FlattenPartial, Qn as NumberType, Rn as CurrencyCode, V as BasicPrimitive, Xn as LooseRomanNumeral, Yn as LocaleCode, a as ConvertObjectOptions, c as DeepKeys, ct as Numeric, er as PercentageOptions, fi as Unit, g as FlattenDotValue, ir as RomanCapital, k as Objects, lt as OwnKeys, nr as RangeOptions, nt as Maybe, o as ConvertedObject, p as ExpandAll, rr as RangedNumbers, s as CountryDetails, si as Tuple, tr as RandomNumberOptions, u as DotNotationKey, ut as PartialOrRequired, v as FlattenLeafValue, w as MergeAll, y as GenericObject, z as Any, zn as DecimalOptions } from "./object-Mglyg4AW.mjs";
18
+ import { T as DiffResult, f as AnagramOptions, g as CharDiffResult, j as MaskOptions } from "./string-_1ImwUJT.mjs";
19
+ import { n as convertStringCase, t as capitalizeString } from "./case-Bkkm6Mqi.mjs";
20
+ import { c as OrderOption, l as SortByOption, n as FindOptions, s as OptionsConfig, t as FieldValue, u as SortNature } from "./array-BNbTIBni.mjs";
21
+ import { C as shuffleArray, S as isInvalidOrEmptyArray, _ as findPrimeNumbers, a as deepParsePrimitives, b as flattenArray, c as getInstanceGetterNames, d as getStaticMethodNames, f as isDeepEqual, g as throttleAction, h as stripJsonEdgeGarbage, i as debounceAction, l as getInstanceMethodNames, m as stableStringify, n as countInstanceMethods, o as definePrototypeMethod, p as parseJSON, r as countStaticMethods, s as getClassDetails, t as convertArrayToString, u as getStaticGetterNames, v as isPrime, x as getLastArrayElement, y as filterArrayOfObjects } from "./index-01oaUuP6.mjs";
22
+ import { n as trimString, r as truncateString, t as generateRandomID } from "./basics-BNQqY5WD.mjs";
22
23
 
23
24
  //#region src/string/anagram.d.ts
24
25
  /**
@@ -77,6 +78,8 @@ declare const maskString: (input: string, options?: MaskOptions) => string;
77
78
  * * Reverses a given string.
78
79
  * @param input - The string to reverse.
79
80
  * @returns The reversed string.
81
+ *
82
+ * @remarks It {@link trimString trims} the whitespace of the input string before reversing it.
80
83
  */
81
84
  declare const reverseString: (input: string) => string;
82
85
  /**
@@ -100,7 +103,7 @@ declare function extractURLs(str: string): string[];
100
103
  /**
101
104
  * * Returns a grammatically correct unit string, optionally prefixed with the number.
102
105
  *
103
- * @remarks For complex and versatile pluralization, please refer to {@link https://toolbox-x.nazmul-nhb.dev/docs/utilities/string/pluralizer pluralizer} or {@link https://toolbox-x.nazmul-nhb.dev/docs/classes/Pluralizer Pluralizer Class} instead.
106
+ * @remarks For complex and versatile pluralization, please refer to {@link https://toolbox-x.nazmul-nhb.dev/docs/utils/string/pluralizer pluralizer} or {@link https://toolbox-x.nazmul-nhb.dev/docs/classes/pluralizer Pluralizer Class} instead.
104
107
  *
105
108
  * @param count The numeric value to determine singular or plural.
106
109
  * @param unit The unit name (e.g., "day", "hour").
@@ -433,10 +436,12 @@ declare function getNthFibonacci(index: Numeric): number;
433
436
  //#region src/number/convert.d.ts
434
437
  /**
435
438
  * * Converts a numeric value into its corresponding English word representation.
436
- * @warning ***Supports numeric values up to `10e19` or `10^20` (one hundred quintillion).***
437
- * @warning ***Decimal values are ignored; only the integer part is converted.***
438
439
  * @param number - The number to convert into words.
439
440
  * @returns The number converted in words.
441
+ *
442
+ * @warning
443
+ * - Supports numeric values up to `10e19` (`10^20`) (one hundred quintillion).
444
+ * - Decimal values are ignored; only the integer part is converted.
440
445
  */
441
446
  declare function numberToWords(num: Numeric): string;
442
447
  /**
@@ -533,23 +538,6 @@ declare function banglaToDigit<Force extends boolean = true>(bnDigit: string, fo
533
538
  */
534
539
  declare function digitToBangla(digit: number | string, preserveNonDigit?: boolean): string;
535
540
  //#endregion
536
- //#region src/number/prime.d.ts
537
- /**
538
- * * Checks if a number is prime.
539
- *
540
- * @param number The number to check.
541
- * @returns Boolean: `true` if the number is prime, otherwise `false`.
542
- */
543
- declare const isPrime: (number: number) => boolean;
544
- /**
545
- * * Find prime numbers in a given range.
546
- *
547
- * @param start The starting number of the range. Default is `1`.
548
- * @param end The ending number of the range. Default is `1000`.
549
- * @returns An array of prime numbers within the range (inclusive).
550
- */
551
- declare const findPrimeNumbers: (start?: number, end?: number) => number[];
552
- //#endregion
553
541
  //#region src/number/utilities.d.ts
554
542
  /**
555
543
  * * Rounds a number to the nearest specified interval.
@@ -622,47 +610,6 @@ declare function normalizeNumber(num: unknown): Maybe<number>;
622
610
  */
623
611
  declare function getNumbersInRange<T extends boolean = false>(type?: NumberType, options?: RangeOptions<T>): RangedNumbers<T>;
624
612
  //#endregion
625
- //#region src/array/basics.d.ts
626
- /**
627
- * * Flattens a nested array recursively or wraps any non-array data type in an array.
628
- *
629
- * @param input - The input value, which can be a nested array or a non-array value.
630
- * @returns A fully flattened array of type `Flatten<T>`. If the input is not an array, it wraps it in a single-element array.
631
- */
632
- declare const flattenArray: <T>(input: T | T[]) => Flattened<T>[];
633
- /**
634
- * @deprecated _Please, use `findAll` instance method from `Finder` class for **more advanced filtering and searching.**_
635
- *
636
- * * Filters an array of objects based on multiple conditions for specified keys.
637
- * @param array - The array of objects to filter.
638
- * @param conditions - An object where keys represent the property names and values represent filter conditions.
639
- * The conditions can be a function `(value: T[K]) => boolean`.
640
- * @returns The filtered array of objects.
641
- * @throws `Error` If the input is not a valid array.
642
- */
643
- declare const filterArrayOfObjects: <T extends GenericObject>(array: T[], conditions: { [K in keyof T]?: (value: Maybe<T[K]>) => boolean }) => T[];
644
- /**
645
- * * Checks if a value is an empty array or an array with only empty values.
646
- *
647
- * @param value - The value to check.
648
- * @returns `true` if the value is not an array, an empty array, or an array containing only `null`, `undefined`, empty objects, or empty arrays.
649
- */
650
- declare const isInvalidOrEmptyArray: <T>(value: T) => boolean;
651
- /**
652
- * * Shuffle the elements of an array.
653
- *
654
- * @param array Array to shuffle.
655
- * @returns Shuffled array.
656
- */
657
- declare const shuffleArray: <T>(array: T[]) => T[];
658
- /**
659
- * * Get the last element of an array.
660
- *
661
- * @param array Array to get the last element from.
662
- * @returns The last element or `undefined` if the array is empty.
663
- */
664
- declare const getLastArrayElement: <T>(array: T[]) => Maybe<T>;
665
- //#endregion
666
613
  //#region src/array/calc.d.ts
667
614
  /**
668
615
  * * Calculates the sum of differences between two numeric fields for each item in the array.
@@ -1031,6 +978,17 @@ declare function extractObjectKeys<T extends GenericObject>(obj: T, tuple: true)
1031
978
  * @returns An array of all the nested keys (string literals) from the specified object.
1032
979
  */
1033
980
  declare function extractObjectKeysDeep<T extends GenericObject>(obj: T): Array<DeepKeys<T>>;
981
+ /**
982
+ * * Extracts all the top-level entries of an object as an array of key-value pairs.
983
+ *
984
+ * @remarks
985
+ * - Returns an empty array (`[]`) for an empty object or a non-object value.
986
+ * - Internally uses {@link Object.entries}.
987
+ *
988
+ * @param obj The object from which to extract the entries.
989
+ * @returns An array of key-value pairs.
990
+ */
991
+ declare function extractObjectEntries<T extends GenericObject>(obj: T): Array<ObjectEntry<T>>;
1034
992
  //#endregion
1035
993
  //#region src/object/objectify.d.ts
1036
994
  /**
@@ -1248,219 +1206,6 @@ declare function pickObjectFieldsByCondition<T extends GenericObject>(source: T,
1248
1206
  */
1249
1207
  declare function remapFields<Source extends GenericObject, Target extends Record<string, keyof Source>>(source: Source, fieldMap: Target): { [K in keyof Target]: Source[Target[K]] };
1250
1208
  //#endregion
1251
- //#region src/utils/index.d.ts
1252
- /**
1253
- * * Deeply compare two values (arrays, objects, or primitive values).
1254
- *
1255
- * @param a First value to compare.
1256
- * @param b Second value to compare.
1257
- * @returns Whether the values are deeply equal.
1258
- */
1259
- declare const isDeepEqual: (a: unknown, b: unknown) => boolean;
1260
- /**
1261
- * * Converts an array of objects to a string using a specific property (supports nested path to primitive values) and separator.
1262
- *
1263
- * @example
1264
- * const users = [
1265
- * { id: 1, name: { first: 'Alice' }, city: 'Bangu', },
1266
- * { id: 4, name: { first: 'Bob' }, city: 'Banguland', },
1267
- * ];
1268
- * convertArrayToString(users, { target: 'name.first', separator: ' | ' });
1269
- * // "Alice | Bob"
1270
- *
1271
- * @param array Array of objects to convert.
1272
- * @param options Options including the target property and separator.
1273
- * @returns String formed by joining the property values with the given separator.
1274
- */
1275
- declare function convertArrayToString<T extends GenericObject>(array: Maybe<T[]>, options: ArrayOfObjectsToStringOptions<T>): string;
1276
- /**
1277
- * * Converts an array of primitive values to a string using a custom separator.
1278
- *
1279
- * @example
1280
- * convertArrayToString(['red', 'green', 'blue'], { separator: ' - ' });
1281
- * // "red - green - blue"
1282
- *
1283
- * @example
1284
- * convertArrayToString([1, 2, 3]);
1285
- * // "1, 2, 3"
1286
- *
1287
- * @param array Array of primitive values to convert.
1288
- * @param options Optional separator configuration.
1289
- * @returns String formed by joining array elements with the given separator.
1290
- */
1291
- declare function convertArrayToString<T extends Primitive>(array: Maybe<T[]>, options?: ArrayOfPrimitivesToStringOptions): string;
1292
- /**
1293
- * * A generic debounce function that delays the execution of a callback.
1294
- *
1295
- * @param callback - The function to debounce.
1296
- * @param delay - The delay in milliseconds. Default is `300ms`.
1297
- * @returns A debounced version of the callback function.
1298
- *
1299
- * @example
1300
- * const debouncedSearch = debounceAction((query: string) => {
1301
- * console.log(`Searching for: ${query}`);
1302
- * }, 300);
1303
- *
1304
- * debouncedSearch('laptop'); // Executes after 300ms of inactivity.
1305
- */
1306
- declare function debounceAction<T extends VoidFn>(callback: T, delay?: number): DelayedFn<T>;
1307
- /**
1308
- * * A generic throttle function that ensures a callback is executed at most once per specified interval.
1309
- *
1310
- * @param callback - The function to throttle.
1311
- * @param delay - The delay in milliseconds. Default is `150ms`.
1312
- * @returns A throttled version of the callback function.
1313
- *
1314
- * @example
1315
- * const throttledResize = throttleAction(() => {
1316
- * console.log('Resized');
1317
- * }, 300);
1318
- *
1319
- * window.addEventListener('resize', throttledResize);
1320
- */
1321
- declare function throttleAction<T extends VoidFn>(callback: T, delay?: number): DelayedFn<T>;
1322
- /**
1323
- * * Retrieves the names of all instance methods defined directly on a class prototype.
1324
- *
1325
- * @param cls - The class constructor (not an instance).
1326
- * @returns A sorted array of instance method names.
1327
- */
1328
- declare function getInstanceMethodNames(cls: Constructor): string[];
1329
- /**
1330
- * * Retrieves the names of all static methods defined directly on a class constructor.
1331
- *
1332
- * @param cls - The class constructor (not an instance).
1333
- * @returns A sorted array of static method names.
1334
- */
1335
- declare function getStaticMethodNames(cls: Constructor): string[];
1336
- /**
1337
- * * Counts the number of instance methods defined directly on a class prototype.
1338
- *
1339
- * @param cls - The class constructor (not an instance).
1340
- * @returns The number of instance methods defined on the class prototype.
1341
- */
1342
- declare function countInstanceMethods(cls: Constructor): number;
1343
- /**
1344
- * * Counts the number of static methods defined directly on a class constructor.
1345
- *
1346
- * @param cls - The class constructor (not an instance).
1347
- * @returns The number of static methods defined on the class constructor.
1348
- */
1349
- declare function countStaticMethods(cls: Constructor): number;
1350
- /**
1351
- * * Retrieves the names of all instance getters defined directly on a class prototype.
1352
- *
1353
- * @param cls - The class constructor (not an instance).
1354
- * @returns A sorted array of instance getter names.
1355
- */
1356
- declare function getInstanceGetterNames(cls: Constructor): string[];
1357
- /**
1358
- * * Retrieves the names of all static getters defined directly on a class constructor.
1359
- *
1360
- * @param cls - The class constructor (not an instance).
1361
- * @returns A sorted array of static getter names.
1362
- */
1363
- declare function getStaticGetterNames(cls: Constructor): string[];
1364
- /**
1365
- * * Gathers detailed information about the instance and static methods of a class.
1366
- *
1367
- * @param cls - The class constructor (not an instance).
1368
- * @returns An object containing names and counts of instance and static methods.
1369
- */
1370
- declare function getClassDetails(cls: Constructor): ClassDetails;
1371
- /**
1372
- * * Create a deterministic JSON string representation of any value.
1373
- * - The output format matches standard JSON but with guaranteed sorted keys.
1374
- *
1375
- * @remarks
1376
- * - This function guarantees **stable, repeatable output** by:
1377
- * - Sorting all object keys alphabetically.
1378
- * - Recursively stabilizing nested objects and arrays.
1379
- * - Converting all `undefined` values into `null` so the output remains valid JSON.
1380
- * - Converting date-like objects (`Date`, `Chronos`, `Moment.js`, `Day.js`, `Luxon`, `JS-Joda`, `Temporal`) **in the same way that {@link JSON.stringify} would serialize them**, ensuring predictable and JSON-compliant output.
1381
- * - Falling back to native JSON serialization for primitives.
1382
- *
1383
- * - **Useful for:**
1384
- * - Hash generation (e.g., signatures, cache keys)
1385
- * - Deep equality checks
1386
- * - Producing predictable output across environments
1387
- *
1388
- * @param obj - The value to stringify into a deterministic JSON string.
1389
- * @returns A stable, deterministic string representation of the input.
1390
- */
1391
- declare function stableStringify(obj: unknown): string;
1392
- /**
1393
- * * Remove trailing or leading garbage characters **after/before JSON object or array**.
1394
- * @param str String to sanitize/strip.
1395
- * @returns Sanitized/stripped JSON string.
1396
- */
1397
- declare function stripJsonEdgeGarbage(str: string): string;
1398
- /**
1399
- * * Parses any valid JSON string, optionally converting stringified primitives inside (nested) arrays or objects.
1400
- *
1401
- * @typeParam T - Expected return type (default is unknown).
1402
- * @param value - The JSON string to parse.
1403
- * @param parsePrimitives - Whether to convert stringified primitives (default: `true`).
1404
- * @returns The parsed JSON value typed as `T`, or the original parsed value with optional primitive conversion.
1405
- * - Returns `{}` if parsing fails, such as when the input is malformed or invalid JSON or passing single quoted string.
1406
- *
1407
- * - *Unlike {@link https://toolbox-x.nazmul-nhb.dev/docs/utilities/object/parseJsonToObject parseJsonToObject}, which ensures the root value is an object,
1408
- * this function returns any valid JSON structure such as arrays, strings, numbers, or objects.*
1409
- *
1410
- * This is useful when you're not sure of the root structure of the JSON, or when you expect something other than an object.
1411
- *
1412
- * @see {@link https://toolbox-x.nazmul-nhb.dev/docs/utilities/object/parseJsonToObject parseJsonToObject} for strict object-only parsing.
1413
- */
1414
- declare const parseJSON: <T = unknown>(value: string, parsePrimitives?: boolean) => T;
1415
- /**
1416
- * * Recursively parses primitive values inside objects and arrays.
1417
- *
1418
- * @typeParam T - Expected return type after parsing (default is unknown).
1419
- * @param input - Any input value to parse recursively.
1420
- * @returns Input with primitives (strings like "true", "123") converted, typed as `T`.
1421
- */
1422
- declare function deepParsePrimitives<T = unknown>(input: unknown): T;
1423
- /**
1424
- * * Defines a method on any prototype — including built-in prototypes — in a safe, idempotent manner.
1425
- * - The method is non-enumerable by default and will not overwrite an existing method unless explicitly allowed.
1426
- *
1427
- * @param proto The target prototype object (e.g., String.prototype).
1428
- * @param name The method name to define on the prototype.
1429
- * @param impl The function implementation for the method.
1430
- * @param options Optional property-descriptor settings and overwrite rules.
1431
- *
1432
- * @example
1433
- * // Safely augment prototype methods by extending the global interface:
1434
- * declare global {
1435
- * interface String {
1436
- * toBang(): string;
1437
- * }
1438
- * }
1439
- *
1440
- * // Define a custom method on String.prototype
1441
- * definePrototypeMethod(String.prototype, 'toBang', function (this: String) {
1442
- * return this.toString().concat('!');
1443
- * // or
1444
- * // return this.concat('!');
1445
- * });
1446
- *
1447
- * "Hi".toBang(); // "Hi!"
1448
- *
1449
- * // Attempting to redefine without overwrite option is ignored
1450
- * definePrototypeMethod(String.prototype, 'toBang', () => 'x'); // ignored
1451
- *
1452
- * // Overwrite intentionally using the overwrite option
1453
- * definePrototypeMethod(
1454
- * String.prototype,
1455
- * 'toBang',
1456
- * function (this: String) { return this.concat('!!!'); },
1457
- * { overwrite: true }
1458
- * );
1459
- *
1460
- * "Hi".toBang(); // "Hi!!!"
1461
- */
1462
- declare function definePrototypeMethod<Proto extends object, Name extends keyof Proto>(proto: Proto, name: Name, impl: (...args: unknown[]) => unknown, options?: ProtoMethodOptions): void;
1463
- //#endregion
1464
1209
  //#region src/utils/xtras.d.ts
1465
1210
  /**
1466
1211
  * @function `getCountryByPhone` Get country details by matching the country code in the given phone number.
@@ -1490,4 +1235,4 @@ declare function definePrototypeMethod<Proto extends object, Name extends keyof
1490
1235
  */
1491
1236
  declare function getCountryByPhone(phone: number | string): CountryDetails[];
1492
1237
  //#endregion
1493
- export { Currency, Finder, Unit, Unit as UnitConverter, convertToRomanNumerals as arabicToRoman, convertToRomanNumerals, convertToRomanNumerals as integerToRoman, convertToRomanNumerals as numberToRoman, convertToRomanNumerals as numericToRoman, convertToRomanNumerals as toRoman, convertToRomanNumerals as toRomanNumeral, averageByField, averageByField as avgByField, banglaToDigit, getAverage as calculateAverage, getAverage, getAverage as getAverageOfNumbers, factorial as calculateFactorial, factorial, factorial as getFactorial, calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, calculatePercentage, capitalizeString, getOrdinal as cardinalToOrdinal, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, getOrdinal, getOrdinal as getOrdinalNumber, getOrdinal as numberToOrdinal, numberToWordsOrdinal as cardinalWordsToOrdinal, numberToWordsOrdinal as convertNumberToWordsOrdinal, numberToWordsOrdinal, clampNumber, cloneObject, naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, computeTextDiff, convertArrayToString, convertArrayToString as joinArrayElements, formatCurrency as convertNumberToCurrency, formatCurrency, numberToWords as convertNumberToWords, numberToWords, convertObjectValues, romanToInteger as convertRomanToArabic, romanToInteger as convertRomanToInteger, romanToInteger as convertRomanToNumeric, romanToInteger as romanToArabic, romanToInteger, romanToInteger as romanToNumeric, convertStringCase, convertToDecimal, convertToDecimal as convertToFixed, wordsToNumber as convertWordToNumber, wordsToNumber as convertWordsToNumber, wordsToNumber as wordToNumber, wordsToNumber, countInstanceMethods, countInstanceMethods as getInstanceMethodsCount, countObjectFields, countStaticMethods, countStaticMethods as getStaticMethodsCount, countWords, countWords as countWordsInString, countWords as wordCount, createOptionsArray, debounceAction, deepParsePrimitives, deepParsePrimitives as parsePrimitivesDeep, definePrototypeMethod, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, digitToBangla, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, getDuplicates, getDuplicates as getDuplicatesFromArray, extractEmails, extractObjectKeys as extractKeys, extractObjectKeys, extractObjectKeysDeep as extractKeysDeep, extractObjectKeysDeep, findMissingElements as extractMissingElements, findMissingElements, findMissingElements as getMissingElements, extractNewFields, extractNumbersFromString as extractNumbers, extractNumbersFromString, extractNumbersFromString as parseNumbersFromText, extractURLs, extractUpdatedAndNewFields, extractUpdatedFields, getFactors as factorsOf, getFactors as getDivisors, getFactors, fibonacciGenerator, fibonacciGenerator as generateFibonacci, filterArrayOfObjects, findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, flattenArray, flattenObjectDotNotation, flattenObjectKeyValue, formatUnitWithPlural as formatNumberWithPluralUnit, formatUnitWithPlural, formatUnitWithPlural as formatWithPlural, generateAnagrams, generateRandomID, getCharacterDifferences, getClassDetails, getCountryByPhone, getFibonacciSeries as getFibonacci, getFibonacciSeries as getFibonacciNumbers, getFibonacciSeries, getFibonacciSeriesMemo, getFibonacciSeriesMemo as getMemoizedFibonacci, getFibonacciSeriesMemo as getMemoizedFibonacciSeries, getInstanceGetterNames, getInstanceMethodNames, getLastArrayElement, getLevenshteinDistance, getLevenshteinDistance as levenshteinDistance, getNthFibonacci, getNumbersInRange, getRandomFloat as getRandomDecimal, getRandomFloat, getRandomNumber as getRandomInt, getRandomNumber, getStaticGetterNames, getStaticMethodNames, sumNumbers as getSumOfNumbers, sumNumbers, sumNumbers as sumOfNumbers, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, splitArrayByProperty as groupArrayByProperty, splitArrayByProperty, isDeepEqual, isInvalidOrEmptyArray, isInvalidOrEmptyArray as isValidEmptyArray, isPrime, isPrime as isPrimeNumber, maskString, mergeAndFlattenObjects, mergeObjects, moveArrayElement, normalizeNumber, normalizeString, parseJSON, parseJSON as parseJsonDeep, parseJsonToObject, parseObjectValues, parseObjectValues as parseStringifiedObjectValues, pickFields, pickFields as pickObjectFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, replaceAllInString, reverseNumber, reverseString, rotateArray, roundNumber, roundNumber as roundToDecimal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, sanitizeData, shuffleArray, slugifyString, sortAnArray, splitArray, stableStringify, stripJsonEdgeGarbage, sumByField, sumDigits, sumFieldDifference, sumFieldDifference as totalDeltaByField, throttleAction, trimString, truncateString };
1238
+ export { Currency, Finder, Unit, Unit as UnitConverter, convertToRomanNumerals as arabicToRoman, convertToRomanNumerals, convertToRomanNumerals as integerToRoman, convertToRomanNumerals as numberToRoman, convertToRomanNumerals as numericToRoman, convertToRomanNumerals as toRoman, convertToRomanNumerals as toRomanNumeral, averageByField, averageByField as avgByField, banglaToDigit, getAverage as calculateAverage, getAverage, getAverage as getAverageOfNumbers, factorial as calculateFactorial, factorial, factorial as getFactorial, calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, calculatePercentage, capitalizeString, getOrdinal as cardinalToOrdinal, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, getOrdinal, getOrdinal as getOrdinalNumber, getOrdinal as numberToOrdinal, numberToWordsOrdinal as cardinalWordsToOrdinal, numberToWordsOrdinal as convertNumberToWordsOrdinal, numberToWordsOrdinal, clampNumber, cloneObject, naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, computeTextDiff, convertArrayToString, convertArrayToString as joinArrayElements, formatCurrency as convertNumberToCurrency, formatCurrency, numberToWords as convertNumberToWords, numberToWords, convertObjectValues, romanToInteger as convertRomanToArabic, romanToInteger as convertRomanToInteger, romanToInteger as convertRomanToNumeric, romanToInteger as romanToArabic, romanToInteger, romanToInteger as romanToNumeric, convertStringCase, convertToDecimal, convertToDecimal as convertToFixed, wordsToNumber as convertWordToNumber, wordsToNumber as convertWordsToNumber, wordsToNumber as wordToNumber, wordsToNumber, countInstanceMethods, countInstanceMethods as getInstanceMethodsCount, countObjectFields, countStaticMethods, countStaticMethods as getStaticMethodsCount, countWords, countWords as countWordsInString, countWords as wordCount, createOptionsArray, debounceAction, deepParsePrimitives, deepParsePrimitives as parsePrimitivesDeep, definePrototypeMethod, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, digitToBangla, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, getDuplicates, getDuplicates as getDuplicatesFromArray, extractEmails, extractObjectEntries as extractEntries, extractObjectEntries, extractObjectEntries as objectEntries, extractObjectKeys as extractKeys, extractObjectKeys, extractObjectKeysDeep as extractKeysDeep, extractObjectKeysDeep, findMissingElements as extractMissingElements, findMissingElements, findMissingElements as getMissingElements, extractNewFields, extractNumbersFromString as extractNumbers, extractNumbersFromString, extractNumbersFromString as parseNumbersFromText, extractURLs, extractUpdatedAndNewFields, extractUpdatedFields, getFactors as factorsOf, getFactors as getDivisors, getFactors, fibonacciGenerator, fibonacciGenerator as generateFibonacci, filterArrayOfObjects, findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, flattenArray, flattenObjectDotNotation, flattenObjectKeyValue, formatUnitWithPlural as formatNumberWithPluralUnit, formatUnitWithPlural, formatUnitWithPlural as formatWithPlural, generateAnagrams, generateRandomID, getCharacterDifferences, getClassDetails, getCountryByPhone, getFibonacciSeries as getFibonacci, getFibonacciSeries as getFibonacciNumbers, getFibonacciSeries, getFibonacciSeriesMemo, getFibonacciSeriesMemo as getMemoizedFibonacci, getFibonacciSeriesMemo as getMemoizedFibonacciSeries, getInstanceGetterNames, getInstanceMethodNames, getLastArrayElement, getLevenshteinDistance, getLevenshteinDistance as levenshteinDistance, getNthFibonacci, getNumbersInRange, getRandomFloat as getRandomDecimal, getRandomFloat, getRandomNumber as getRandomInt, getRandomNumber, getStaticGetterNames, getStaticMethodNames, sumNumbers as getSumOfNumbers, sumNumbers, sumNumbers as sumOfNumbers, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, splitArrayByProperty as groupArrayByProperty, splitArrayByProperty, isDeepEqual, isInvalidOrEmptyArray, isPrime, isPrime as isPrimeNumber, maskString, mergeAndFlattenObjects, mergeObjects, moveArrayElement, normalizeNumber, normalizeString, parseJSON, parseJSON as parseJsonDeep, parseJsonToObject, parseObjectValues, parseObjectValues as parseStringifiedObjectValues, pickFields, pickFields as pickObjectFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, replaceAllInString, reverseNumber, reverseString, rotateArray, roundNumber, roundNumber as roundToDecimal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, sanitizeData, shuffleArray, slugifyString, sortAnArray, splitArray, stableStringify, stripJsonEdgeGarbage, sumByField, sumDigits, sumFieldDifference, sumFieldDifference as totalDeltaByField, throttleAction, trimString, truncateString };
package/dist/index.mjs CHANGED
@@ -15,15 +15,14 @@
15
15
  */
16
16
 
17
17
  import { a as isNonEmptyString, c as isNumber, d as isString, i as isInteger, m as isUndefined } from "./primitives-Djsevc69.mjs";
18
- import { n as convertStringCase, t as capitalizeString } from "./case-BQwn5N-k.mjs";
18
+ import { n as convertStringCase, t as capitalizeString } from "./case-DBC4Rj0h.mjs";
19
19
  import { c as ORDINAL_UNDER_TEEN, d as TENS, f as THOUSANDS, l as PREFIX_MULTIPLIERS, o as ONES, s as ORDINAL_TO_CARDINAL, t as BN_DIGITS, u as TEENS } from "./constants-ZyfpysiQ.mjs";
20
20
  import { t as COUNTRIES } from "./countries-CMxHxKiK.mjs";
21
- import { T as isObject, b as isFunction, d as isNumericString, j as isValidArray, w as isNotEmptyObject } from "./specials-Cye93-uo.mjs";
22
- import { a as normalizeNumber, i as getRandomFloat, n as formatCurrency, o as roundToNearest, r as getOrdinal, t as clampNumber } from "./utilities-B9axOvOX.mjs";
23
- import { n as trimString, r as truncateString, t as generateRandomID } from "./basics-1_M7UvCn.mjs";
24
- import { c as extractURLs, d as normalizeString, f as replaceAllInString, g as isEven, h as areInvalidNumbers, l as formatUnitWithPlural, m as slugifyString, p as reverseString, s as extractEmails, u as maskString, y as isOdd } from "./guards-DeO4ukiK.mjs";
25
- import { a as flattenObjectKeyValue, c as parseJsonToObject, i as flattenObjectDotNotation, l as parseObjectValues, n as extractUpdatedAndNewFields, o as mergeAndFlattenObjects, r as extractUpdatedFields, s as mergeObjects, t as extractNewFields, u as sanitizeData } from "./objectify-DEnFpPt1.mjs";
26
- import { _ as naturalSort, a as deepParsePrimitives, b as _resolveNestedKey, c as getInstanceGetterNames, d as getStaticMethodNames, f as isDeepEqual, g as throttleAction, h as stripJsonEdgeGarbage, i as debounceAction, l as getInstanceMethodNames, m as stableStringify, n as countInstanceMethods, o as definePrototypeMethod, p as parseJSON, r as countStaticMethods, s as getClassDetails, t as convertArrayToString, u as getStaticGetterNames, v as sortAnArray, y as _getNumericProp } from "./utils-DXovsTKs.mjs";
21
+ import { T as isObject, b as isFunction, d as isNumericString, j as isValidArray } from "./specials-Hq5Ncd6y.mjs";
22
+ import { a as normalizeNumber, i as getRandomFloat, n as formatCurrency, o as roundToNearest, r as getOrdinal, t as clampNumber } from "./utilities-DPscNbS1.mjs";
23
+ import { B as getInstanceMethodNames, F as debounceAction, G as stableStringify, H as getStaticMethodNames, I as deepParsePrimitives, J as naturalSort, K as stripJsonEdgeGarbage, L as definePrototypeMethod, M as convertArrayToString, N as countInstanceMethods, P as countStaticMethods, R as getClassDetails, U as isDeepEqual, V as getStaticGetterNames, W as parseJSON, X as _getNumericProp, Y as sortAnArray, Z as _resolveNestedKey, n as trimString, q as throttleAction, r as truncateString, t as generateRandomID, z as getInstanceGetterNames } from "./basics-CebgkY-n.mjs";
24
+ import { A as extractObjectEntries, C as filterArrayOfObjects, D as shuffleArray, E as isInvalidOrEmptyArray, M as extractObjectKeysDeep, O as cloneObject, T as getLastArrayElement, _ as areInvalidNumbers, c as extractURLs, d as normalizeString, f as replaceAllInString, g as isPrime, h as findPrimeNumbers, j as extractObjectKeys, k as countObjectFields, l as formatUnitWithPlural, m as slugifyString, p as reverseString, s as extractEmails, u as maskString, v as isEven, w as flattenArray, x as isOdd } from "./guards-B2s2wlVN.mjs";
25
+ import { a as flattenObjectKeyValue, c as parseJsonToObject, i as flattenObjectDotNotation, l as parseObjectValues, n as extractUpdatedAndNewFields, o as mergeAndFlattenObjects, r as extractUpdatedFields, s as mergeObjects, t as extractNewFields, u as sanitizeData } from "./objectify-CQa8gQib.mjs";
27
26
 
28
27
  //#region src/string/anagram.ts
29
28
  /** `WeakMap` to cache user provided dictionary array */
@@ -1238,10 +1237,12 @@ function getNthFibonacci(index) {
1238
1237
  //#region src/number/convert.ts
1239
1238
  /**
1240
1239
  * * Converts a numeric value into its corresponding English word representation.
1241
- * @warning ***Supports numeric values up to `10e19` or `10^20` (one hundred quintillion).***
1242
- * @warning ***Decimal values are ignored; only the integer part is converted.***
1243
1240
  * @param number - The number to convert into words.
1244
1241
  * @returns The number converted in words.
1242
+ *
1243
+ * @warning
1244
+ * - Supports numeric values up to `10e19` (`10^20`) (one hundred quintillion).
1245
+ * - Decimal values are ignored; only the integer part is converted.
1245
1246
  */
1246
1247
  function numberToWords(num) {
1247
1248
  let number = Math.trunc(Number(num));
@@ -1505,101 +1506,6 @@ function digitToBangla(digit, preserveNonDigit = true) {
1505
1506
  return "";
1506
1507
  }
1507
1508
 
1508
- //#endregion
1509
- //#region src/number/prime.ts
1510
- /**
1511
- * * Checks if a number is prime.
1512
- *
1513
- * @param number The number to check.
1514
- * @returns Boolean: `true` if the number is prime, otherwise `false`.
1515
- */
1516
- const isPrime = (number) => {
1517
- if (number < 2) return false;
1518
- if (number === 2 || number === 3) return true;
1519
- if (number % 2 === 0 || number % 3 === 0) return false;
1520
- for (let i = 5; i * i <= number; i += 6) if (number % i === 0 || number % (i + 2) === 0) return false;
1521
- return true;
1522
- };
1523
- /**
1524
- * * Find prime numbers in a given range.
1525
- *
1526
- * @param start The starting number of the range. Default is `1`.
1527
- * @param end The ending number of the range. Default is `1000`.
1528
- * @returns An array of prime numbers within the range (inclusive).
1529
- */
1530
- const findPrimeNumbers = (start = 1, end = 1e3) => {
1531
- let startNumber = start, endNumber = end;
1532
- if (start > end) [startNumber, endNumber] = [end, start];
1533
- return Array.from({ length: endNumber - startNumber + 1 }, (_, i) => startNumber + i).filter(isPrime);
1534
- };
1535
-
1536
- //#endregion
1537
- //#region src/array/basics.ts
1538
- /**
1539
- * * Flattens a nested array recursively or wraps any non-array data type in an array.
1540
- *
1541
- * @param input - The input value, which can be a nested array or a non-array value.
1542
- * @returns A fully flattened array of type `Flatten<T>`. If the input is not an array, it wraps it in a single-element array.
1543
- */
1544
- const flattenArray = (input) => {
1545
- if (!Array.isArray(input)) return [input];
1546
- return input.reduce((acc, item) => {
1547
- return acc.concat(Array.isArray(item) ? flattenArray(item) : [item]);
1548
- }, []);
1549
- };
1550
- /**
1551
- * @deprecated _Please, use `findAll` instance method from `Finder` class for **more advanced filtering and searching.**_
1552
- *
1553
- * * Filters an array of objects based on multiple conditions for specified keys.
1554
- * @param array - The array of objects to filter.
1555
- * @param conditions - An object where keys represent the property names and values represent filter conditions.
1556
- * The conditions can be a function `(value: T[K]) => boolean`.
1557
- * @returns The filtered array of objects.
1558
- * @throws `Error` If the input is not a valid array.
1559
- */
1560
- const filterArrayOfObjects = (array, conditions) => {
1561
- if (!Array.isArray(array)) throw new Error("The provided input is not a valid array!");
1562
- return array?.filter((item) => Object.entries(conditions)?.every(([key, conditionFn]) => {
1563
- if (typeof conditionFn === "function") return conditionFn(item[key]);
1564
- return true;
1565
- }));
1566
- };
1567
- /**
1568
- * * Checks if a value is an empty array or an array with only empty values.
1569
- *
1570
- * @param value - The value to check.
1571
- * @returns `true` if the value is not an array, an empty array, or an array containing only `null`, `undefined`, empty objects, or empty arrays.
1572
- */
1573
- const isInvalidOrEmptyArray = (value) => {
1574
- if (!Array.isArray(value)) return true;
1575
- if (value?.length === 0) return true;
1576
- return value?.every((item) => item == null || Array.isArray(item) && item?.length === 0 || typeof item === "object" && Object.keys(item || {})?.length === 0);
1577
- };
1578
- /**
1579
- * * Shuffle the elements of an array.
1580
- *
1581
- * @param array Array to shuffle.
1582
- * @returns Shuffled array.
1583
- */
1584
- const shuffleArray = (array) => {
1585
- if (isInvalidOrEmptyArray(array)) return array;
1586
- const shuffled = [...array];
1587
- for (let i = shuffled?.length - 1; i > 0; i--) {
1588
- const j = Math.floor(Math.random() * (i + 1));
1589
- [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
1590
- }
1591
- return shuffled;
1592
- };
1593
- /**
1594
- * * Get the last element of an array.
1595
- *
1596
- * @param array Array to get the last element from.
1597
- * @returns The last element or `undefined` if the array is empty.
1598
- */
1599
- const getLastArrayElement = (array) => {
1600
- return array?.length > 0 ? array[array?.length - 1] : void 0;
1601
- };
1602
-
1603
1509
  //#endregion
1604
1510
  //#region src/number/range.ts
1605
1511
  /**
@@ -2109,95 +2015,6 @@ var Finder = class Finder {
2109
2015
  }
2110
2016
  };
2111
2017
 
2112
- //#endregion
2113
- //#region src/object/basics.ts
2114
- /**
2115
- * * Deep clone an object using `structuredClone` or deterministic *JSON serialization*.
2116
- *
2117
- * @param obj Object to clone.
2118
- * @param serialize Whether to force deterministic JSON serialization instead of using `structuredClone`. Defaults to `false`.
2119
- * @returns Deep cloned object.
2120
- *
2121
- * @remarks
2122
- * **Primary behavior**
2123
- * - By default (`serialize = false`), the function uses {@link https://developer.mozilla.org/docs/Web/API/Window/structuredClone structuredClone} when available. This supports:
2124
- * - Circular references
2125
- * - `Date` objects
2126
- * - `Map` / `Set`
2127
- * - `RegExp`
2128
- * - Typed arrays
2129
- * - Most built-in JavaScript types
2130
- * - Preserves `undefined` values
2131
- *
2132
- * - **Note:** `structuredClone` **does not preserve class prototypes**, even though it preserves data types like `Date`, `Map`, and `Set`.
2133
- *
2134
- * **Deterministic serialization mode**
2135
- * - When `serialize = true`, or when `structuredClone` is unavailable, the function falls back to **stable JSON serialization** via `stableStringify`. This guarantees:
2136
- * - All object keys are sorted alphabetically.
2137
- * - Consistent output across environments (deterministic).
2138
- * - All `undefined` values are converted to `null`.
2139
- * - Converting date-like objects (`Date`, `Chronos`, `Moment.js`, `Day.js`, `Luxon`, `JS-Joda`, `Temporal`) **in the same way that {@link JSON.stringify} would serialize them**, ensuring predictable and JSON-compliant output.
2140
- *
2141
- * - This mode is ideal for:
2142
- * - Hashing
2143
- * - Signature generation
2144
- * - Deep equality checks
2145
- * - Anything requiring deterministic, environment-neutral output
2146
- *
2147
- * **Deterministic mode limitations**
2148
- * - JSON serialization will:
2149
- * - Drop functions and `Symbol` values.
2150
- * - Lose prototype and class instance information.
2151
- * - Convert all date-like objects into strings.
2152
- * - Fail on circular references.
2153
- *
2154
- * **Final safety fallback**
2155
- * - If JSON serialization fails (e.g., due to circular references), the function returns a **shallow clone** (`{ ...obj }`) to ensure the cloning never throws.
2156
- */
2157
- function cloneObject(obj, serialize = false) {
2158
- try {
2159
- if (!serialize && typeof structuredClone === "function") return structuredClone(obj);
2160
- return JSON.parse(stableStringify(obj));
2161
- } catch {
2162
- return { ...obj };
2163
- }
2164
- }
2165
- /**
2166
- * * Count the number of fields in an object.
2167
- *
2168
- * @param obj Object to check.
2169
- * @returns Number of fields in the object.
2170
- */
2171
- function countObjectFields(obj) {
2172
- if (obj != null) return Object.keys(obj)?.length;
2173
- return 0;
2174
- }
2175
- function extractObjectKeys(obj, tuple) {
2176
- const keys = isNotEmptyObject(obj) ? Object.keys(obj) : [];
2177
- return tuple ? keys : keys;
2178
- }
2179
- /**
2180
- * * Recursively extracts all nested keys from an object as an array.
2181
- *
2182
- * @remarks
2183
- * - Returns an empty array (`[]`) for an empty object or a non-object value.
2184
- * - For only top-level keys, use {@link extractObjectKeys}.
2185
- *
2186
- * @param obj The object from which to extract the keys.
2187
- * @returns An array of all the nested keys (string literals) from the specified object.
2188
- */
2189
- function extractObjectKeysDeep(obj) {
2190
- function _getDeepKeys(candidate) {
2191
- let result = [];
2192
- for (const key in candidate) {
2193
- result.push(key);
2194
- if (isNotEmptyObject(candidate[key])) result = [...result, ..._getDeepKeys(candidate[key])];
2195
- }
2196
- return result;
2197
- }
2198
- return isNotEmptyObject(obj) ? _getDeepKeys(obj) : [];
2199
- }
2200
-
2201
2018
  //#endregion
2202
2019
  //#region src/object/convert.ts
2203
2020
  /**
@@ -2354,4 +2171,4 @@ function getCountryByPhone(phone) {
2354
2171
  }
2355
2172
 
2356
2173
  //#endregion
2357
- export { Currency, Finder, Unit, Unit as UnitConverter, convertToRomanNumerals as arabicToRoman, convertToRomanNumerals, convertToRomanNumerals as integerToRoman, convertToRomanNumerals as numberToRoman, convertToRomanNumerals as numericToRoman, convertToRomanNumerals as toRoman, convertToRomanNumerals as toRomanNumeral, averageByField, averageByField as avgByField, banglaToDigit, getAverage as calculateAverage, getAverage, getAverage as getAverageOfNumbers, factorial as calculateFactorial, factorial, factorial as getFactorial, calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, calculatePercentage, capitalizeString, getOrdinal as cardinalToOrdinal, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, getOrdinal, getOrdinal as getOrdinalNumber, getOrdinal as numberToOrdinal, numberToWordsOrdinal as cardinalWordsToOrdinal, numberToWordsOrdinal as convertNumberToWordsOrdinal, numberToWordsOrdinal, clampNumber, cloneObject, naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, computeTextDiff, convertArrayToString, convertArrayToString as joinArrayElements, formatCurrency as convertNumberToCurrency, formatCurrency, numberToWords as convertNumberToWords, numberToWords, convertObjectValues, romanToInteger as convertRomanToArabic, romanToInteger as convertRomanToInteger, romanToInteger as convertRomanToNumeric, romanToInteger as romanToArabic, romanToInteger, romanToInteger as romanToNumeric, convertStringCase, convertToDecimal, convertToDecimal as convertToFixed, wordsToNumber as convertWordToNumber, wordsToNumber as convertWordsToNumber, wordsToNumber as wordToNumber, wordsToNumber, countInstanceMethods, countInstanceMethods as getInstanceMethodsCount, countObjectFields, countStaticMethods, countStaticMethods as getStaticMethodsCount, countWords, countWords as countWordsInString, countWords as wordCount, createOptionsArray, debounceAction, deepParsePrimitives, deepParsePrimitives as parsePrimitivesDeep, definePrototypeMethod, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, digitToBangla, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, getDuplicates, getDuplicates as getDuplicatesFromArray, extractEmails, extractObjectKeys as extractKeys, extractObjectKeys, extractObjectKeysDeep as extractKeysDeep, extractObjectKeysDeep, findMissingElements as extractMissingElements, findMissingElements, findMissingElements as getMissingElements, extractNewFields, extractNumbersFromString as extractNumbers, extractNumbersFromString, extractNumbersFromString as parseNumbersFromText, extractURLs, extractUpdatedAndNewFields, extractUpdatedFields, getFactors as factorsOf, getFactors as getDivisors, getFactors, fibonacciGenerator, fibonacciGenerator as generateFibonacci, filterArrayOfObjects, findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, flattenArray, flattenObjectDotNotation, flattenObjectKeyValue, formatUnitWithPlural as formatNumberWithPluralUnit, formatUnitWithPlural, formatUnitWithPlural as formatWithPlural, generateAnagrams, generateRandomID, getCharacterDifferences, getClassDetails, getCountryByPhone, getFibonacciSeries as getFibonacci, getFibonacciSeries as getFibonacciNumbers, getFibonacciSeries, getFibonacciSeriesMemo, getFibonacciSeriesMemo as getMemoizedFibonacci, getFibonacciSeriesMemo as getMemoizedFibonacciSeries, getInstanceGetterNames, getInstanceMethodNames, getLastArrayElement, getLevenshteinDistance, getLevenshteinDistance as levenshteinDistance, getNthFibonacci, getNumbersInRange, getRandomFloat as getRandomDecimal, getRandomFloat, getRandomNumber as getRandomInt, getRandomNumber, getStaticGetterNames, getStaticMethodNames, sumNumbers as getSumOfNumbers, sumNumbers, sumNumbers as sumOfNumbers, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, splitArrayByProperty as groupArrayByProperty, splitArrayByProperty, isDeepEqual, isInvalidOrEmptyArray, isInvalidOrEmptyArray as isValidEmptyArray, isPrime, isPrime as isPrimeNumber, maskString, mergeAndFlattenObjects, mergeObjects, moveArrayElement, normalizeNumber, normalizeString, parseJSON, parseJSON as parseJsonDeep, parseJsonToObject, parseObjectValues, parseObjectValues as parseStringifiedObjectValues, pickFields, pickFields as pickObjectFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, replaceAllInString, reverseNumber, reverseString, rotateArray, roundNumber, roundNumber as roundToDecimal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, sanitizeData, shuffleArray, slugifyString, sortAnArray, splitArray, stableStringify, stripJsonEdgeGarbage, sumByField, sumDigits, sumFieldDifference, sumFieldDifference as totalDeltaByField, throttleAction, trimString, truncateString };
2174
+ export { Currency, Finder, Unit, Unit as UnitConverter, convertToRomanNumerals as arabicToRoman, convertToRomanNumerals, convertToRomanNumerals as integerToRoman, convertToRomanNumerals as numberToRoman, convertToRomanNumerals as numericToRoman, convertToRomanNumerals as toRoman, convertToRomanNumerals as toRomanNumeral, averageByField, averageByField as avgByField, banglaToDigit, getAverage as calculateAverage, getAverage, getAverage as getAverageOfNumbers, factorial as calculateFactorial, factorial, factorial as getFactorial, calculateHCF as calculateGCD, calculateHCF, calculateLCM as calculateLCD, calculateLCM, calculatePercentage, capitalizeString, getOrdinal as cardinalToOrdinal, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, getOrdinal, getOrdinal as getOrdinalNumber, getOrdinal as numberToOrdinal, numberToWordsOrdinal as cardinalWordsToOrdinal, numberToWordsOrdinal as convertNumberToWordsOrdinal, numberToWordsOrdinal, clampNumber, cloneObject, naturalSort as compareNaturally, naturalSort as compareSorter, naturalSort, naturalSort as naturalSortForString, computeTextDiff, convertArrayToString, convertArrayToString as joinArrayElements, formatCurrency as convertNumberToCurrency, formatCurrency, numberToWords as convertNumberToWords, numberToWords, convertObjectValues, romanToInteger as convertRomanToArabic, romanToInteger as convertRomanToInteger, romanToInteger as convertRomanToNumeric, romanToInteger as romanToArabic, romanToInteger, romanToInteger as romanToNumeric, convertStringCase, convertToDecimal, convertToDecimal as convertToFixed, wordsToNumber as convertWordToNumber, wordsToNumber as convertWordsToNumber, wordsToNumber as wordToNumber, wordsToNumber, countInstanceMethods, countInstanceMethods as getInstanceMethodsCount, countObjectFields, countStaticMethods, countStaticMethods as getStaticMethodsCount, countWords, countWords as countWordsInString, countWords as wordCount, createOptionsArray, debounceAction, deepParsePrimitives, deepParsePrimitives as parsePrimitivesDeep, definePrototypeMethod, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, digitToBangla, getDuplicates as extractDuplicates, getDuplicates as extractDuplicatesFromArray, getDuplicates, getDuplicates as getDuplicatesFromArray, extractEmails, extractObjectEntries as extractEntries, extractObjectEntries, extractObjectEntries as objectEntries, extractObjectKeys as extractKeys, extractObjectKeys, extractObjectKeysDeep as extractKeysDeep, extractObjectKeysDeep, findMissingElements as extractMissingElements, findMissingElements, findMissingElements as getMissingElements, extractNewFields, extractNumbersFromString as extractNumbers, extractNumbersFromString, extractNumbersFromString as parseNumbersFromText, extractURLs, extractUpdatedAndNewFields, extractUpdatedFields, getFactors as factorsOf, getFactors as getDivisors, getFactors, fibonacciGenerator, fibonacciGenerator as generateFibonacci, filterArrayOfObjects, findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, flattenArray, flattenObjectDotNotation, flattenObjectKeyValue, formatUnitWithPlural as formatNumberWithPluralUnit, formatUnitWithPlural, formatUnitWithPlural as formatWithPlural, generateAnagrams, generateRandomID, getCharacterDifferences, getClassDetails, getCountryByPhone, getFibonacciSeries as getFibonacci, getFibonacciSeries as getFibonacciNumbers, getFibonacciSeries, getFibonacciSeriesMemo, getFibonacciSeriesMemo as getMemoizedFibonacci, getFibonacciSeriesMemo as getMemoizedFibonacciSeries, getInstanceGetterNames, getInstanceMethodNames, getLastArrayElement, getLevenshteinDistance, getLevenshteinDistance as levenshteinDistance, getNthFibonacci, getNumbersInRange, getRandomFloat as getRandomDecimal, getRandomFloat, getRandomNumber as getRandomInt, getRandomNumber, getStaticGetterNames, getStaticMethodNames, sumNumbers as getSumOfNumbers, sumNumbers, sumNumbers as sumOfNumbers, groupAndAverageByField, groupAndAverageByField as groupAndAvgByField, groupAndSumByField, splitArrayByProperty as groupArrayByProperty, splitArrayByProperty, isDeepEqual, isInvalidOrEmptyArray, isPrime, isPrime as isPrimeNumber, maskString, mergeAndFlattenObjects, mergeObjects, moveArrayElement, normalizeNumber, normalizeString, parseJSON, parseJSON as parseJsonDeep, parseJsonToObject, parseObjectValues, parseObjectValues as parseStringifiedObjectValues, pickFields, pickFields as pickObjectFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, removeDuplicatesFromArray as removeDuplicates, removeDuplicatesFromArray, replaceAllInString, reverseNumber, reverseString, rotateArray, roundNumber, roundNumber as roundToDecimal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, sanitizeData, shuffleArray, slugifyString, sortAnArray, splitArray, stableStringify, stripJsonEdgeGarbage, sumByField, sumDigits, sumFieldDifference, sumFieldDifference as totalDeltaByField, throttleAction, trimString, truncateString };