nhb-toolbox 4.20.52 → 4.20.56
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/CHANGELOG.md +9 -0
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/object/basics.js +5 -0
- package/dist/cjs/utils/index.js +4 -4
- package/dist/dts/guards/non-primitives.d.ts +3 -3
- package/dist/dts/index.d.ts +1 -1
- package/dist/dts/object/basics.d.ts +11 -0
- package/dist/dts/utils/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/object/basics.js +4 -0
- package/dist/esm/utils/index.js +5 -5
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,15 @@ All notable changes to the package will be documented here.
|
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
## [4.20.56] - 2025-10-02
|
|
10
|
+
|
|
11
|
+
- **Updated** `isDeepEqual` utility: Now it accepts _arguments of unknown types_.
|
|
12
|
+
|
|
13
|
+
## [4.20.54] - 2025-10-02
|
|
14
|
+
|
|
15
|
+
- **Added** new utility `extractObjectKeys` to _extract keys of an object_ with _proper typing_.
|
|
16
|
+
- **Updated** `isObjectWithKeys`: _now properly typed_.
|
|
17
|
+
|
|
9
18
|
## [4.20.52] - 2025-09-26
|
|
10
19
|
|
|
11
20
|
- **Added** new `Chronos` _plugin_ `greetingPlugin` for accessing `getGreeting` method in `Chronos` instances.
|
package/dist/cjs/index.js
CHANGED
|
@@ -4,9 +4,9 @@ exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.rever
|
|
|
4
4
|
exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = void 0;
|
|
5
5
|
exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = void 0;
|
|
6
6
|
exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = void 0;
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = void 0;
|
|
7
|
+
exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.extractKeys = exports.extractObjectKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = void 0;
|
|
8
|
+
exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryString = exports.getQueryStringAsObject = exports.getQueryParams = void 0;
|
|
9
|
+
exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = void 0;
|
|
10
10
|
var basics_1 = require("./string/basics");
|
|
11
11
|
Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
|
|
12
12
|
Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
|
|
@@ -267,6 +267,8 @@ Object.defineProperty(exports, "isValidFormData", { enumerable: true, get: funct
|
|
|
267
267
|
var basics_4 = require("./object/basics");
|
|
268
268
|
Object.defineProperty(exports, "cloneObject", { enumerable: true, get: function () { return basics_4.cloneObject; } });
|
|
269
269
|
Object.defineProperty(exports, "countObjectFields", { enumerable: true, get: function () { return basics_4.countObjectFields; } });
|
|
270
|
+
Object.defineProperty(exports, "extractObjectKeys", { enumerable: true, get: function () { return basics_4.extractObjectKeys; } });
|
|
271
|
+
Object.defineProperty(exports, "extractKeys", { enumerable: true, get: function () { return basics_4.extractObjectKeys; } });
|
|
270
272
|
var objectify_1 = require("./object/objectify");
|
|
271
273
|
Object.defineProperty(exports, "extractNewFields", { enumerable: true, get: function () { return objectify_1.extractNewFields; } });
|
|
272
274
|
Object.defineProperty(exports, "extractUpdatedAndNewFields", { enumerable: true, get: function () { return objectify_1.extractUpdatedAndNewFields; } });
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.countObjectFields = exports.cloneObject = void 0;
|
|
4
|
+
exports.extractObjectKeys = extractObjectKeys;
|
|
5
|
+
const non_primitives_1 = require("../guards/non-primitives");
|
|
4
6
|
const cloneObject = (obj) => {
|
|
5
7
|
return JSON.parse(JSON.stringify(obj));
|
|
6
8
|
};
|
|
@@ -11,3 +13,6 @@ const countObjectFields = (obj) => {
|
|
|
11
13
|
return 0;
|
|
12
14
|
};
|
|
13
15
|
exports.countObjectFields = countObjectFields;
|
|
16
|
+
function extractObjectKeys(obj) {
|
|
17
|
+
return (0, non_primitives_1.isNotEmptyObject)(obj) ? Object.keys(obj) : [];
|
|
18
|
+
}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -24,17 +24,17 @@ const isDeepEqual = (a, b) => {
|
|
|
24
24
|
return false;
|
|
25
25
|
if (a === null || b === null)
|
|
26
26
|
return a === b;
|
|
27
|
-
if (
|
|
27
|
+
if ((0, non_primitives_1.isArray)(a) && (0, non_primitives_1.isArray)(b)) {
|
|
28
28
|
if (a?.length !== b?.length)
|
|
29
29
|
return false;
|
|
30
|
-
return a?.every((element, index) => (0, exports.isDeepEqual)(element, b[index]));
|
|
30
|
+
return a?.every((element, index) => (0, exports.isDeepEqual)(element, b?.[index]));
|
|
31
31
|
}
|
|
32
|
-
if (
|
|
32
|
+
if ((0, non_primitives_1.isObject)(a) && (0, non_primitives_1.isObject)(b)) {
|
|
33
33
|
const aKeys = Object.keys(a);
|
|
34
34
|
const bKeys = Object.keys(b);
|
|
35
35
|
if (aKeys?.length !== bKeys?.length)
|
|
36
36
|
return false;
|
|
37
|
-
return aKeys?.every((key) => (0, exports.isDeepEqual)(a[key], b[key]));
|
|
37
|
+
return aKeys?.every((key) => (0, exports.isDeepEqual)(a?.[key], b?.[key]));
|
|
38
38
|
}
|
|
39
39
|
return false;
|
|
40
40
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GenericObject } from '../object/types';
|
|
2
|
-
import type { AsyncFunction, GenericFn } from '../types/index';
|
|
2
|
+
import type { AsyncFunction, GenericFn, ValidArray } from '../types/index';
|
|
3
3
|
/**
|
|
4
4
|
* * Type guard to check if a value is an array.
|
|
5
5
|
* @param value - The value to check.
|
|
@@ -27,10 +27,10 @@ export declare function isNotEmptyObject(value: unknown): value is GenericObject
|
|
|
27
27
|
/**
|
|
28
28
|
* * Type guard to check if a value is an object with specific keys.
|
|
29
29
|
* @param value - The value to check.
|
|
30
|
-
* @param keys - The
|
|
30
|
+
* @param keys - The list of keys the object should contain.
|
|
31
31
|
* @returns `true` if the value is an object with the specified keys, otherwise `false`.
|
|
32
32
|
*/
|
|
33
|
-
export declare function isObjectWithKeys<
|
|
33
|
+
export declare function isObjectWithKeys<Key extends string>(value: unknown, keys: ValidArray<Key>): value is Record<Key, unknown>;
|
|
34
34
|
/**
|
|
35
35
|
* * Type guard to check if a value is an empty object.
|
|
36
36
|
* @param value - The value to check.
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export { naturalSort as compareNaturally, naturalSort as compareSorter, naturalS
|
|
|
51
51
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, } from './form/convert';
|
|
52
52
|
export { parseFormData, serializeForm } from './form/transform';
|
|
53
53
|
export { isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob, isFileUpload, isOriginFileObj, isValidFormData, } from './form/guards';
|
|
54
|
-
export { cloneObject, countObjectFields } from './object/basics';
|
|
54
|
+
export { cloneObject, countObjectFields, extractObjectKeys, extractObjectKeys as extractKeys, } from './object/basics';
|
|
55
55
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, parseJsonToObject, } from './object/objectify';
|
|
56
56
|
export { parseObjectValues, parseObjectValues as parseStringifiedObjectValues, sanitizeData, } from './object/sanitize';
|
|
57
57
|
export { convertObjectValues, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert';
|
|
@@ -13,3 +13,14 @@ export declare const cloneObject: <T extends GenericObject>(obj: T) => T;
|
|
|
13
13
|
* @returns Number of fields in the object.
|
|
14
14
|
*/
|
|
15
15
|
export declare const countObjectFields: <T extends GenericObject>(obj: T) => number;
|
|
16
|
+
/**
|
|
17
|
+
* * Extracts the keys of an object with proper typing.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
* - Internally uses `Object.keys(...)`.
|
|
21
|
+
* - Returns an empty array (`[]`) for an empty object or a non-object value.
|
|
22
|
+
*
|
|
23
|
+
* @param obj The object from which to extract the keys.
|
|
24
|
+
* @returns An array of keys from the specified object.
|
|
25
|
+
*/
|
|
26
|
+
export declare function extractObjectKeys<T extends GenericObject>(obj: T): Array<keyof T>;
|
|
@@ -8,7 +8,7 @@ import type { ArrayOfObjectsToStringOptions, ArrayOfPrimitivesToStringOptions }
|
|
|
8
8
|
* @param b Second value to compare.
|
|
9
9
|
* @returns Whether the values are deeply equal.
|
|
10
10
|
*/
|
|
11
|
-
export declare const isDeepEqual:
|
|
11
|
+
export declare const isDeepEqual: (a: unknown, b: unknown) => boolean;
|
|
12
12
|
/**
|
|
13
13
|
* * Converts an array of objects to a string using a specific property (supports nested path to primitive values) and separator.
|
|
14
14
|
*
|
package/dist/esm/index.js
CHANGED
|
@@ -36,7 +36,7 @@ export { naturalSort as compareNaturally, naturalSort as compareSorter, naturalS
|
|
|
36
36
|
export { createControlledFormData as convertIntoFormData, createControlledFormData, createControlledFormData as createFormData, } from './form/convert.js';
|
|
37
37
|
export { parseFormData, serializeForm } from './form/transform.js';
|
|
38
38
|
export { isCustomFile, isCustomFileArray, isFileArray, isFileList, isFileOrBlob, isFileUpload, isOriginFileObj, isValidFormData, } from './form/guards.js';
|
|
39
|
-
export { cloneObject, countObjectFields } from './object/basics.js';
|
|
39
|
+
export { cloneObject, countObjectFields, extractObjectKeys, extractObjectKeys as extractKeys, } from './object/basics.js';
|
|
40
40
|
export { extractNewFields, extractUpdatedAndNewFields, extractUpdatedFields, flattenObjectDotNotation, flattenObjectKeyValue, mergeAndFlattenObjects, mergeObjects, parseJsonToObject, } from './object/objectify.js';
|
|
41
41
|
export { parseObjectValues, parseObjectValues as parseStringifiedObjectValues, sanitizeData, } from './object/sanitize.js';
|
|
42
42
|
export { convertObjectValues, deleteFields, deleteFields as deleteObjectFields, deleteFields as omitFields, deleteFields as omitObjectFields, pickFields, pickObjectFieldsByCondition as pickFieldsByCondition, pickFields as pickObjectFields, pickObjectFieldsByCondition, remapFields, remapFields as remapObjectFields, deleteFields as removeFields, deleteFields as removeObjectFields, } from './object/convert.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNotEmptyObject } from '../guards/non-primitives.js';
|
|
1
2
|
export const cloneObject = (obj) => {
|
|
2
3
|
return JSON.parse(JSON.stringify(obj));
|
|
3
4
|
};
|
|
@@ -6,3 +7,6 @@ export const countObjectFields = (obj) => {
|
|
|
6
7
|
return Object.keys(obj)?.length;
|
|
7
8
|
return 0;
|
|
8
9
|
};
|
|
10
|
+
export function extractObjectKeys(obj) {
|
|
11
|
+
return isNotEmptyObject(obj) ? Object.keys(obj) : [];
|
|
12
|
+
}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _resolveNestedKey } from '../array/helpers.js';
|
|
2
2
|
import { sortAnArray } from '../array/sort.js';
|
|
3
|
-
import { isArrayOfType, isMethodDescriptor, isNotEmptyObject, isObject, isValidArray, } from '../guards/non-primitives.js';
|
|
3
|
+
import { isArray, isArrayOfType, isMethodDescriptor, isNotEmptyObject, isObject, isValidArray, } from '../guards/non-primitives.js';
|
|
4
4
|
import { isPrimitive, isString } from '../guards/primitives.js';
|
|
5
5
|
import { isNumericString } from '../guards/specials.js';
|
|
6
6
|
export const isDeepEqual = (a, b) => {
|
|
@@ -10,17 +10,17 @@ export const isDeepEqual = (a, b) => {
|
|
|
10
10
|
return false;
|
|
11
11
|
if (a === null || b === null)
|
|
12
12
|
return a === b;
|
|
13
|
-
if (
|
|
13
|
+
if (isArray(a) && isArray(b)) {
|
|
14
14
|
if (a?.length !== b?.length)
|
|
15
15
|
return false;
|
|
16
|
-
return a?.every((element, index) => isDeepEqual(element, b[index]));
|
|
16
|
+
return a?.every((element, index) => isDeepEqual(element, b?.[index]));
|
|
17
17
|
}
|
|
18
|
-
if (
|
|
18
|
+
if (isObject(a) && isObject(b)) {
|
|
19
19
|
const aKeys = Object.keys(a);
|
|
20
20
|
const bKeys = Object.keys(b);
|
|
21
21
|
if (aKeys?.length !== bKeys?.length)
|
|
22
22
|
return false;
|
|
23
|
-
return aKeys?.every((key) => isDeepEqual(a[key], b[key]));
|
|
23
|
+
return aKeys?.every((key) => isDeepEqual(a?.[key], b?.[key]));
|
|
24
24
|
}
|
|
25
25
|
return false;
|
|
26
26
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nhb-toolbox",
|
|
3
|
-
"version": "4.20.
|
|
3
|
+
"version": "4.20.56",
|
|
4
4
|
"description": "A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -40,21 +40,21 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@eslint/js": "^9.36.0",
|
|
42
42
|
"@types/jest": "^30.0.0",
|
|
43
|
-
"@types/node": "^24.
|
|
44
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
45
|
-
"@typescript-eslint/parser": "^8.
|
|
43
|
+
"@types/node": "^24.6.1",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^8.45.0",
|
|
45
|
+
"@typescript-eslint/parser": "^8.45.0",
|
|
46
46
|
"eslint": "^9.36.0",
|
|
47
47
|
"eslint-config-prettier": "^10.1.8",
|
|
48
48
|
"eslint-plugin-prettier": "^5.5.4",
|
|
49
49
|
"globals": "^16.4.0",
|
|
50
50
|
"husky": "^9.1.7",
|
|
51
|
-
"jest": "^30.
|
|
52
|
-
"lint-staged": "^16.2.
|
|
53
|
-
"nhb-scripts": "^1.8.
|
|
51
|
+
"jest": "^30.2.0",
|
|
52
|
+
"lint-staged": "^16.2.3",
|
|
53
|
+
"nhb-scripts": "^1.8.81",
|
|
54
54
|
"prettier": "^3.6.2",
|
|
55
55
|
"ts-jest": "^29.4.4",
|
|
56
|
-
"typescript": "^5.9.
|
|
57
|
-
"typescript-eslint": "^8.
|
|
56
|
+
"typescript": "^5.9.3",
|
|
57
|
+
"typescript-eslint": "^8.45.0"
|
|
58
58
|
},
|
|
59
59
|
"keywords": [
|
|
60
60
|
"toolbox",
|