@alextheman/utility 4.10.2 → 4.11.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.cjs CHANGED
@@ -1096,6 +1096,28 @@ async function encryptWithKey(publicKey, plaintextValue) {
1096
1096
  }
1097
1097
  var encryptWithKey_default = encryptWithKey;
1098
1098
 
1099
+ //#endregion
1100
+ //#region src/functions/security/getPublicAndPrivateKey.ts
1101
+ /**
1102
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
1103
+ *
1104
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
1105
+ *
1106
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
1107
+ */
1108
+ function getPublicAndPrivateKey(outputFormat) {
1109
+ const keys = libsodium_wrappers.default.crypto_box_keypair(outputFormat);
1110
+ if (outputFormat === "uint8array" || outputFormat === void 0) {
1111
+ if (!(keys?.publicKey instanceof Uint8Array && keys?.privateKey instanceof Uint8Array)) throw new DataError_default({
1112
+ publicKey: `<redacted: ${keys?.publicKey?.constructor?.name ?? typeof keys?.publicKey}>`,
1113
+ privateKey: `<redacted: ${keys?.privateKey?.constructor?.name ?? typeof keys?.privateKey}>`
1114
+ }, "INVALID_KEY_TYPES", "Expected Uint8Array keypair from libsodium.");
1115
+ return keys;
1116
+ }
1117
+ return keys;
1118
+ }
1119
+ var getPublicAndPrivateKey_default = getPublicAndPrivateKey;
1120
+
1099
1121
  //#endregion
1100
1122
  //#region src/functions/stringHelpers/appendSemicolon.ts
1101
1123
  /**
@@ -1549,6 +1571,7 @@ exports.fillArray = fillArray_default;
1549
1571
  exports.formatDateAndTime = formatDateAndTime_default;
1550
1572
  exports.getIndividualVersionNumbers = getIndividualVersionNumbers_default;
1551
1573
  exports.getInterpolations = getInterpolations_default;
1574
+ exports.getPublicAndPrivateKey = getPublicAndPrivateKey_default;
1552
1575
  exports.getRandomNumber = getRandomNumber_default;
1553
1576
  exports.getRecordKeys = getRecordKeys_default;
1554
1577
  exports.httpErrorCodeLookup = httpErrorCodeLookup;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { DotenvParseOutput } from "dotenv";
2
2
  import { ZodError, ZodType, z } from "zod";
3
+ import sodium from "libsodium-wrappers";
3
4
 
4
5
  //#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
5
6
  declare const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
@@ -341,6 +342,9 @@ declare class VersionNumber {
341
342
  */
342
343
  type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
343
344
  //#endregion
345
+ //#region src/types/CallReturnType.d.ts
346
+ type CallReturnType<Function, Arguments> = Function extends ((arg: Arguments) => infer Return) ? Return : never;
347
+ //#endregion
344
348
  //#region src/types/RecordKey.d.ts
345
349
  /**
346
350
  * Represents the native Record's possible key type.
@@ -771,6 +775,44 @@ declare function deepFreeze<ObjectType extends object>(object: ObjectType): Read
771
775
  */
772
776
  declare function encryptWithKey(publicKey: string, plaintextValue: string): Promise<string>;
773
777
  //#endregion
778
+ //#region src/functions/security/getPublicAndPrivateKey.d.ts
779
+ interface PublicAndPrivateKey<KeyType extends Uint8Array | string> {
780
+ /** The generated public key from libsodium */
781
+ publicKey: KeyType;
782
+ /** The generated private key from libsodium */
783
+ privateKey: KeyType;
784
+ /** The key type from libsodium */
785
+ keyType: ReturnType<typeof sodium.crypto_box_keypair>["keyType"];
786
+ }
787
+ /**
788
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
789
+ *
790
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
791
+ *
792
+ * Because you have not provided an `outputFormat`, the keys will be typed as `Uint8Array`.
793
+ */
794
+ declare function getPublicAndPrivateKey(): PublicAndPrivateKey<Uint8Array>;
795
+ /**
796
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
797
+ *
798
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
799
+ *
800
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
801
+ *
802
+ * Because you provided an `outputFormat` of `uint8array`, the keys will be typed as `Uint8Array`.
803
+ */
804
+ declare function getPublicAndPrivateKey(outputFormat: "uint8array"): PublicAndPrivateKey<Uint8Array>;
805
+ /**
806
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
807
+ *
808
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
809
+ *
810
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
811
+ *
812
+ * Because you provided an `outputFormat` of either `text`, `hex` or `base64`, the keys will be typed as `string`.
813
+ */
814
+ declare function getPublicAndPrivateKey(outputFormat: "text" | "hex" | "base64"): PublicAndPrivateKey<string>;
815
+ //#endregion
774
816
  //#region src/functions/stringHelpers/appendSemicolon.d.ts
775
817
  /**
776
818
  * Appends a semicolon to the end of a string, trimming where necessary first.
@@ -1083,4 +1125,4 @@ interface ParseVersionOptions {
1083
1125
  */
1084
1126
  declare function parseVersion(input: string, options?: ParseVersionOptions): string;
1085
1127
  //#endregion
1086
- export { APIError, ArrayElement, CamelToKebabOptions, CreateEnumType, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, IncrementVersionOptions, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, ParallelTuple, ParseVersionOptions, RecordKey, RemoveUndefined, StringListToArrayOptions, VERSION_NUMBER_REGEX, VersionNumber, VersionNumberToStringOptions, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, encryptWithKey, fillArray, formatDateAndTime, getIndividualVersionNumbers, getInterpolations, getRandomNumber, getRecordKeys, httpErrorCodeLookup, incrementVersion, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEnv, parseFormData, parseIntStrict, parseVersion, parseVersionType, parseZodSchema, parseZodSchemaAsync, randomiseArray, range, removeDuplicates, removeUndefinedFromObject, stringListToArray, stringifyDotenv, truncate, wait };
1128
+ export { APIError, ArrayElement, CallReturnType, CamelToKebabOptions, CreateEnumType, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, IncrementVersionOptions, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, ParallelTuple, ParseVersionOptions, PublicAndPrivateKey, RecordKey, RemoveUndefined, StringListToArrayOptions, VERSION_NUMBER_REGEX, VersionNumber, VersionNumberToStringOptions, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, encryptWithKey, fillArray, formatDateAndTime, getIndividualVersionNumbers, getInterpolations, getPublicAndPrivateKey, getRandomNumber, getRecordKeys, httpErrorCodeLookup, incrementVersion, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEnv, parseFormData, parseIntStrict, parseVersion, parseVersionType, parseZodSchema, parseZodSchemaAsync, randomiseArray, range, removeDuplicates, removeUndefinedFromObject, stringListToArray, stringifyDotenv, truncate, wait };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ZodError, ZodType, z as z$1 } from "zod";
2
+ import sodium from "libsodium-wrappers";
2
3
  import { DotenvParseOutput } from "dotenv";
3
4
 
4
5
  //#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
@@ -341,6 +342,9 @@ declare class VersionNumber {
341
342
  */
342
343
  type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
343
344
  //#endregion
345
+ //#region src/types/CallReturnType.d.ts
346
+ type CallReturnType<Function, Arguments> = Function extends ((arg: Arguments) => infer Return) ? Return : never;
347
+ //#endregion
344
348
  //#region src/types/RecordKey.d.ts
345
349
  /**
346
350
  * Represents the native Record's possible key type.
@@ -771,6 +775,44 @@ declare function deepFreeze<ObjectType extends object>(object: ObjectType): Read
771
775
  */
772
776
  declare function encryptWithKey(publicKey: string, plaintextValue: string): Promise<string>;
773
777
  //#endregion
778
+ //#region src/functions/security/getPublicAndPrivateKey.d.ts
779
+ interface PublicAndPrivateKey<KeyType extends Uint8Array | string> {
780
+ /** The generated public key from libsodium */
781
+ publicKey: KeyType;
782
+ /** The generated private key from libsodium */
783
+ privateKey: KeyType;
784
+ /** The key type from libsodium */
785
+ keyType: ReturnType<typeof sodium.crypto_box_keypair>["keyType"];
786
+ }
787
+ /**
788
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
789
+ *
790
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
791
+ *
792
+ * Because you have not provided an `outputFormat`, the keys will be typed as `Uint8Array`.
793
+ */
794
+ declare function getPublicAndPrivateKey(): PublicAndPrivateKey<Uint8Array>;
795
+ /**
796
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
797
+ *
798
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
799
+ *
800
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
801
+ *
802
+ * Because you provided an `outputFormat` of `uint8array`, the keys will be typed as `Uint8Array`.
803
+ */
804
+ declare function getPublicAndPrivateKey(outputFormat: "uint8array"): PublicAndPrivateKey<Uint8Array>;
805
+ /**
806
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
807
+ *
808
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
809
+ *
810
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
811
+ *
812
+ * Because you provided an `outputFormat` of either `text`, `hex` or `base64`, the keys will be typed as `string`.
813
+ */
814
+ declare function getPublicAndPrivateKey(outputFormat: "text" | "hex" | "base64"): PublicAndPrivateKey<string>;
815
+ //#endregion
774
816
  //#region src/functions/stringHelpers/appendSemicolon.d.ts
775
817
  /**
776
818
  * Appends a semicolon to the end of a string, trimming where necessary first.
@@ -1083,4 +1125,4 @@ interface ParseVersionOptions {
1083
1125
  */
1084
1126
  declare function parseVersion(input: string, options?: ParseVersionOptions): string;
1085
1127
  //#endregion
1086
- export { APIError, ArrayElement, CamelToKebabOptions, CreateEnumType, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, type IncrementVersionOptions, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, ParallelTuple, type ParseVersionOptions, RecordKey, RemoveUndefined, StringListToArrayOptions, VERSION_NUMBER_REGEX, VersionNumber, VersionNumberToStringOptions, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, encryptWithKey, fillArray, formatDateAndTime, getIndividualVersionNumbers, getInterpolations, getRandomNumber, getRecordKeys, httpErrorCodeLookup, incrementVersion, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEnv, parseFormData, parseIntStrict, parseVersion, parseVersionType, parseZodSchema, parseZodSchemaAsync, randomiseArray, range, removeDuplicates, removeUndefinedFromObject, stringListToArray, stringifyDotenv, truncate, wait };
1128
+ export { APIError, ArrayElement, CallReturnType, CamelToKebabOptions, CreateEnumType, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DisallowUndefined, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, type IncrementVersionOptions, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, ParallelTuple, type ParseVersionOptions, type PublicAndPrivateKey, RecordKey, RemoveUndefined, StringListToArrayOptions, VERSION_NUMBER_REGEX, VersionNumber, VersionNumberToStringOptions, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, encryptWithKey, fillArray, formatDateAndTime, getIndividualVersionNumbers, getInterpolations, getPublicAndPrivateKey, getRandomNumber, getRecordKeys, httpErrorCodeLookup, incrementVersion, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEnv, parseFormData, parseIntStrict, parseVersion, parseVersionType, parseZodSchema, parseZodSchemaAsync, randomiseArray, range, removeDuplicates, removeUndefinedFromObject, stringListToArray, stringifyDotenv, truncate, wait };
package/dist/index.js CHANGED
@@ -1066,6 +1066,28 @@ async function encryptWithKey(publicKey, plaintextValue) {
1066
1066
  }
1067
1067
  var encryptWithKey_default = encryptWithKey;
1068
1068
 
1069
+ //#endregion
1070
+ //#region src/functions/security/getPublicAndPrivateKey.ts
1071
+ /**
1072
+ * Returns the public key and private key, properly narrowing down types depending on the provided `outputFormat`.
1073
+ *
1074
+ * @param outputFormat - The format of the resulting publicKey and privateKey you would like to use.
1075
+ *
1076
+ * @returns An object containing both the publicKey and privateKey, along with a keyType.
1077
+ */
1078
+ function getPublicAndPrivateKey(outputFormat) {
1079
+ const keys = sodium.crypto_box_keypair(outputFormat);
1080
+ if (outputFormat === "uint8array" || outputFormat === void 0) {
1081
+ if (!(keys?.publicKey instanceof Uint8Array && keys?.privateKey instanceof Uint8Array)) throw new DataError_default({
1082
+ publicKey: `<redacted: ${keys?.publicKey?.constructor?.name ?? typeof keys?.publicKey}>`,
1083
+ privateKey: `<redacted: ${keys?.privateKey?.constructor?.name ?? typeof keys?.privateKey}>`
1084
+ }, "INVALID_KEY_TYPES", "Expected Uint8Array keypair from libsodium.");
1085
+ return keys;
1086
+ }
1087
+ return keys;
1088
+ }
1089
+ var getPublicAndPrivateKey_default = getPublicAndPrivateKey;
1090
+
1069
1091
  //#endregion
1070
1092
  //#region src/functions/stringHelpers/appendSemicolon.ts
1071
1093
  /**
@@ -1498,4 +1520,4 @@ function incrementVersion(version, incrementType, options) {
1498
1520
  var incrementVersion_default = incrementVersion;
1499
1521
 
1500
1522
  //#endregion
1501
- export { APIError_default as APIError, DataError_default as DataError, Env, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, VERSION_NUMBER_REGEX_default as VERSION_NUMBER_REGEX, VersionNumber_default as VersionNumber, VersionType, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, deepCopy_default as deepCopy, deepFreeze_default as deepFreeze, determineVersionType_default as determineVersionType, encryptWithKey_default as encryptWithKey, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getIndividualVersionNumbers_default as getIndividualVersionNumbers, getInterpolations_default as getInterpolations, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, incrementVersion_default as incrementVersion, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isAnniversary_default as isAnniversary, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normaliseIndents_default as normaliseIndents, normalizeImportPath_default as normalizeImportPath, normalizeIndents, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, parseBoolean_default as parseBoolean, parseEnv_default as parseEnv, parseFormData_default as parseFormData, parseIntStrict_default as parseIntStrict, parseVersion_default as parseVersion, parseVersionType_default as parseVersionType, parseZodSchema_default as parseZodSchema, parseZodSchemaAsync_default as parseZodSchemaAsync, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeUndefinedFromObject_default as removeUndefinedFromObject, stringListToArray_default as stringListToArray, stringifyDotenv_default as stringifyDotenv, truncate_default as truncate, wait_default as wait };
1523
+ export { APIError_default as APIError, DataError_default as DataError, Env, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, VERSION_NUMBER_REGEX_default as VERSION_NUMBER_REGEX, VersionNumber_default as VersionNumber, VersionType, addDaysToDate_default as addDaysToDate, appendSemicolon_default as appendSemicolon, camelToKebab_default as camelToKebab, convertFileToBase64_default as convertFileToBase64, createFormData_default as createFormData, createTemplateStringsArray_default as createTemplateStringsArray, deepCopy_default as deepCopy, deepFreeze_default as deepFreeze, determineVersionType_default as determineVersionType, encryptWithKey_default as encryptWithKey, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getIndividualVersionNumbers_default as getIndividualVersionNumbers, getInterpolations_default as getInterpolations, getPublicAndPrivateKey_default as getPublicAndPrivateKey, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, incrementVersion_default as incrementVersion, interpolate_default as interpolate, interpolateObjects_default as interpolateObjects, isAnniversary_default as isAnniversary, isLeapYear_default as isLeapYear, isMonthlyMultiple_default as isMonthlyMultiple, isOrdered_default as isOrdered, isSameDate_default as isSameDate, kebabToCamel_default as kebabToCamel, normaliseImportPath, normaliseIndents_default as normaliseIndents, normalizeImportPath_default as normalizeImportPath, normalizeIndents, omitProperties_default as omitProperties, paralleliseArrays_default as paralleliseArrays, parseBoolean_default as parseBoolean, parseEnv_default as parseEnv, parseFormData_default as parseFormData, parseIntStrict_default as parseIntStrict, parseVersion_default as parseVersion, parseVersionType_default as parseVersionType, parseZodSchema_default as parseZodSchema, parseZodSchemaAsync_default as parseZodSchemaAsync, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeUndefinedFromObject_default as removeUndefinedFromObject, stringListToArray_default as stringListToArray, stringifyDotenv_default as stringifyDotenv, truncate_default as truncate, wait_default as wait };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alextheman/utility",
3
- "version": "4.10.2",
3
+ "version": "4.11.0",
4
4
  "description": "Helpful utility functions.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,26 +17,25 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "dotenv": "^17.2.3",
20
- "libsodium-wrappers": "^0.8.0",
21
- "zod": "^4.3.5"
20
+ "libsodium-wrappers": "^0.8.1",
21
+ "zod": "^4.3.6"
22
22
  },
23
23
  "devDependencies": {
24
- "@alextheman/eslint-plugin": "^5.4.2",
25
- "@types/libsodium-wrappers": "^0.7.14",
26
- "@types/node": "^25.0.9",
27
- "@typescript-eslint/types": "^8.53.0",
24
+ "@alextheman/eslint-plugin": "^5.4.3",
25
+ "@types/node": "^25.0.10",
26
+ "@typescript-eslint/types": "^8.53.1",
28
27
  "alex-c-line": "^1.20.0",
29
28
  "dotenv-cli": "^11.0.0",
30
29
  "eslint": "^9.39.2",
31
- "globals": "^17.0.0",
30
+ "globals": "^17.1.0",
32
31
  "husky": "^9.1.7",
33
32
  "jsdom": "^27.4.0",
34
- "prettier": "^3.8.0",
33
+ "prettier": "^3.8.1",
35
34
  "tsdown": "^0.19.0",
36
35
  "typedoc": "^0.28.16",
37
36
  "typescript": "^5.9.3",
38
37
  "vite-tsconfig-paths": "^6.0.4",
39
- "vitest": "^4.0.17"
38
+ "vitest": "^4.0.18"
40
39
  },
41
40
  "engines": {
42
41
  "node": ">=22.0.0"