@alextheman/utility 3.7.0 → 3.8.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 +63 -0
- package/dist/index.d.cts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.js +60 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -34,6 +34,11 @@ path = __toESM(path);
|
|
|
34
34
|
const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
|
|
35
35
|
var NAMESPACE_EXPORT_REGEX_default = NAMESPACE_EXPORT_REGEX;
|
|
36
36
|
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/constants/VERSION_NUMBER_REGEX.ts
|
|
39
|
+
const VERSION_NUMBER_REGEX = "^(?:v)?(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
|
|
40
|
+
var VERSION_NUMBER_REGEX_default = VERSION_NUMBER_REGEX;
|
|
41
|
+
|
|
37
42
|
//#endregion
|
|
38
43
|
//#region src/functions/arrayHelpers/fillArray.ts
|
|
39
44
|
/**
|
|
@@ -1058,10 +1063,65 @@ function removeIndents(first, ...args) {
|
|
|
1058
1063
|
}
|
|
1059
1064
|
var removeIndents_default = removeIndents;
|
|
1060
1065
|
|
|
1066
|
+
//#endregion
|
|
1067
|
+
//#region src/functions/versioning/parseVersion.ts
|
|
1068
|
+
/**
|
|
1069
|
+
* Parses a string and verifies it is a valid package version number.
|
|
1070
|
+
*
|
|
1071
|
+
* Valid formats: `X.Y.Z` or `vX.Y.Z`, where X, Y, and Z are non-negative integers.
|
|
1072
|
+
*
|
|
1073
|
+
* @param input - The version string to parse.
|
|
1074
|
+
* @param options - Extra options to apply.
|
|
1075
|
+
*
|
|
1076
|
+
* @throws {DataError} If the input is not a valid version number.
|
|
1077
|
+
*
|
|
1078
|
+
* @returns The validated version number, prefixed with `v` if it was not already.
|
|
1079
|
+
*/
|
|
1080
|
+
function parseVersion(input, options) {
|
|
1081
|
+
if (!RegExp(VERSION_NUMBER_REGEX_default).test(input)) throw new DataError_default(input, `"${input}" is not a valid version number. Version numbers must be of the format "X.Y.Z" or "vX.Y.Z", where X, Y, and Z are non-negative integers.`, "INVALID_VERSION");
|
|
1082
|
+
if (options?.omitPrefix) return input.startsWith("v") ? input.slice(1) : input;
|
|
1083
|
+
return input.startsWith("v") ? input : `v${input}`;
|
|
1084
|
+
}
|
|
1085
|
+
var parseVersion_default = parseVersion;
|
|
1086
|
+
|
|
1087
|
+
//#endregion
|
|
1088
|
+
//#region src/functions/versioning/getIndividualVersionNumbers.ts
|
|
1089
|
+
/**
|
|
1090
|
+
* Gets the individual version numbers from a given version number as a tuple of numbers.
|
|
1091
|
+
*
|
|
1092
|
+
* @param version - The version number.
|
|
1093
|
+
*
|
|
1094
|
+
* @returns A tuple of three numbers indicating `[major, minor, patch]`.
|
|
1095
|
+
*/
|
|
1096
|
+
function getIndividualVersionNumbers(version) {
|
|
1097
|
+
return parseVersion_default(version, { omitPrefix: true }).split(".").map((versionNumber) => {
|
|
1098
|
+
return parseIntStrict_default(versionNumber);
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
var getIndividualVersionNumbers_default = getIndividualVersionNumbers;
|
|
1102
|
+
|
|
1103
|
+
//#endregion
|
|
1104
|
+
//#region src/functions/versioning/determineVersionType.ts
|
|
1105
|
+
/**
|
|
1106
|
+
* Determines whether the given version is a major, minor, or patch version.
|
|
1107
|
+
*
|
|
1108
|
+
* @param version - The version number.
|
|
1109
|
+
*
|
|
1110
|
+
* @returns Either `"major"`, `"minor"`, or `"patch"`, depending on the version type.
|
|
1111
|
+
*/
|
|
1112
|
+
function determineVersionType(version) {
|
|
1113
|
+
const [_major, minor, patch] = getIndividualVersionNumbers_default(version);
|
|
1114
|
+
if (minor === 0 && patch === 0) return "major";
|
|
1115
|
+
if (patch === 0) return "minor";
|
|
1116
|
+
return "patch";
|
|
1117
|
+
}
|
|
1118
|
+
var determineVersionType_default = determineVersionType;
|
|
1119
|
+
|
|
1061
1120
|
//#endregion
|
|
1062
1121
|
exports.APIError = APIError_default;
|
|
1063
1122
|
exports.DataError = DataError_default;
|
|
1064
1123
|
exports.NAMESPACE_EXPORT_REGEX = NAMESPACE_EXPORT_REGEX_default;
|
|
1124
|
+
exports.VERSION_NUMBER_REGEX = VERSION_NUMBER_REGEX_default;
|
|
1065
1125
|
exports.addDaysToDate = addDaysToDate_default;
|
|
1066
1126
|
exports.appendSemicolon = appendSemicolon_default;
|
|
1067
1127
|
exports.camelToKebab = camelToKebab_default;
|
|
@@ -1070,8 +1130,10 @@ exports.createFormData = createFormData_default;
|
|
|
1070
1130
|
exports.createTemplateStringsArray = createTemplateStringsArray_default;
|
|
1071
1131
|
exports.deepCopy = deepCopy_default;
|
|
1072
1132
|
exports.deepFreeze = deepFreeze_default;
|
|
1133
|
+
exports.determineVersionType = determineVersionType_default;
|
|
1073
1134
|
exports.fillArray = fillArray_default;
|
|
1074
1135
|
exports.formatDateAndTime = formatDateAndTime_default;
|
|
1136
|
+
exports.getIndividualVersionNumbers = getIndividualVersionNumbers_default;
|
|
1075
1137
|
exports.getRandomNumber = getRandomNumber_default;
|
|
1076
1138
|
exports.getRecordKeys = getRecordKeys_default;
|
|
1077
1139
|
exports.httpErrorCodeLookup = httpErrorCodeLookup;
|
|
@@ -1095,6 +1157,7 @@ exports.parseEnv = parseEnv_default;
|
|
|
1095
1157
|
exports.parseFormData = parseFormData_default;
|
|
1096
1158
|
exports.parseIntStrict = parseIntStrict_default;
|
|
1097
1159
|
exports.parseUUID = UUID_default;
|
|
1160
|
+
exports.parseVersion = parseVersion_default;
|
|
1098
1161
|
exports.parseZodSchema = parseZodSchema_default;
|
|
1099
1162
|
exports.randomiseArray = randomiseArray_default;
|
|
1100
1163
|
exports.range = range_default;
|
package/dist/index.d.cts
CHANGED
|
@@ -3,6 +3,9 @@ import z, { ZodType, core, z as z$1 } from "zod";
|
|
|
3
3
|
//#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
|
|
4
4
|
declare const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
|
|
5
5
|
//#endregion
|
|
6
|
+
//#region src/constants/VERSION_NUMBER_REGEX.d.ts
|
|
7
|
+
declare const VERSION_NUMBER_REGEX: string;
|
|
8
|
+
//#endregion
|
|
6
9
|
//#region src/functions/arrayHelpers/fillArray.d.ts
|
|
7
10
|
/**
|
|
8
11
|
* Creates a new array where each element is the resolved result of the provided asynchronous callback.
|
|
@@ -698,4 +701,43 @@ declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunc
|
|
|
698
701
|
*/
|
|
699
702
|
declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
|
|
700
703
|
//#endregion
|
|
701
|
-
|
|
704
|
+
//#region src/functions/versioning/determineVersionType.d.ts
|
|
705
|
+
type VersionType = "major" | "minor" | "patch";
|
|
706
|
+
/**
|
|
707
|
+
* Determines whether the given version is a major, minor, or patch version.
|
|
708
|
+
*
|
|
709
|
+
* @param version - The version number.
|
|
710
|
+
*
|
|
711
|
+
* @returns Either `"major"`, `"minor"`, or `"patch"`, depending on the version type.
|
|
712
|
+
*/
|
|
713
|
+
declare function determineVersionType(version: string): VersionType;
|
|
714
|
+
//#endregion
|
|
715
|
+
//#region src/functions/versioning/getIndividualVersionNumbers.d.ts
|
|
716
|
+
/**
|
|
717
|
+
* Gets the individual version numbers from a given version number as a tuple of numbers.
|
|
718
|
+
*
|
|
719
|
+
* @param version - The version number.
|
|
720
|
+
*
|
|
721
|
+
* @returns A tuple of three numbers indicating `[major, minor, patch]`.
|
|
722
|
+
*/
|
|
723
|
+
declare function getIndividualVersionNumbers(version: string): [number, number, number];
|
|
724
|
+
//#endregion
|
|
725
|
+
//#region src/functions/versioning/parseVersion.d.ts
|
|
726
|
+
interface ParseVersionOptions {
|
|
727
|
+
omitPrefix?: boolean;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* Parses a string and verifies it is a valid package version number.
|
|
731
|
+
*
|
|
732
|
+
* Valid formats: `X.Y.Z` or `vX.Y.Z`, where X, Y, and Z are non-negative integers.
|
|
733
|
+
*
|
|
734
|
+
* @param input - The version string to parse.
|
|
735
|
+
* @param options - Extra options to apply.
|
|
736
|
+
*
|
|
737
|
+
* @throws {DataError} If the input is not a valid version number.
|
|
738
|
+
*
|
|
739
|
+
* @returns The validated version number, prefixed with `v` if it was not already.
|
|
740
|
+
*/
|
|
741
|
+
declare function parseVersion(input: string, options?: ParseVersionOptions): string;
|
|
742
|
+
//#endregion
|
|
743
|
+
export { APIError, ArrayElement, CreateFormDataOptions, CreateFormDataOptionsNullableResolution, CreateFormDataOptionsUndefinedOrNullResolution, DataError, DeepReadonly, DisallowUndefined, Email, Env, FormDataArrayResolutionStrategy, FormDataNullableResolutionStrategy, HTTPErrorCode, IgnoreCase, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, OptionalOnCondition, RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, StringListToArrayOptions, UUID, VERSION_NUMBER_REGEX, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, fillArray, formatDateAndTime, getIndividualVersionNumbers, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseVersion, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ import z, { ZodType, core, z as z$1 } from "zod";
|
|
|
3
3
|
//#region src/constants/NAMESPACE_EXPORT_REGEX.d.ts
|
|
4
4
|
declare const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
|
|
5
5
|
//#endregion
|
|
6
|
+
//#region src/constants/VERSION_NUMBER_REGEX.d.ts
|
|
7
|
+
declare const VERSION_NUMBER_REGEX: string;
|
|
8
|
+
//#endregion
|
|
6
9
|
//#region src/functions/arrayHelpers/fillArray.d.ts
|
|
7
10
|
/**
|
|
8
11
|
* Creates a new array where each element is the resolved result of the provided asynchronous callback.
|
|
@@ -698,4 +701,43 @@ declare function removeIndents(options: RemoveIndentsOptions): RemoveIndentsFunc
|
|
|
698
701
|
*/
|
|
699
702
|
declare function removeIndents(strings: TemplateStringsArray, ...interpolations: unknown[]): string;
|
|
700
703
|
//#endregion
|
|
701
|
-
|
|
704
|
+
//#region src/functions/versioning/determineVersionType.d.ts
|
|
705
|
+
type VersionType = "major" | "minor" | "patch";
|
|
706
|
+
/**
|
|
707
|
+
* Determines whether the given version is a major, minor, or patch version.
|
|
708
|
+
*
|
|
709
|
+
* @param version - The version number.
|
|
710
|
+
*
|
|
711
|
+
* @returns Either `"major"`, `"minor"`, or `"patch"`, depending on the version type.
|
|
712
|
+
*/
|
|
713
|
+
declare function determineVersionType(version: string): VersionType;
|
|
714
|
+
//#endregion
|
|
715
|
+
//#region src/functions/versioning/getIndividualVersionNumbers.d.ts
|
|
716
|
+
/**
|
|
717
|
+
* Gets the individual version numbers from a given version number as a tuple of numbers.
|
|
718
|
+
*
|
|
719
|
+
* @param version - The version number.
|
|
720
|
+
*
|
|
721
|
+
* @returns A tuple of three numbers indicating `[major, minor, patch]`.
|
|
722
|
+
*/
|
|
723
|
+
declare function getIndividualVersionNumbers(version: string): [number, number, number];
|
|
724
|
+
//#endregion
|
|
725
|
+
//#region src/functions/versioning/parseVersion.d.ts
|
|
726
|
+
interface ParseVersionOptions {
|
|
727
|
+
omitPrefix?: boolean;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* Parses a string and verifies it is a valid package version number.
|
|
731
|
+
*
|
|
732
|
+
* Valid formats: `X.Y.Z` or `vX.Y.Z`, where X, Y, and Z are non-negative integers.
|
|
733
|
+
*
|
|
734
|
+
* @param input - The version string to parse.
|
|
735
|
+
* @param options - Extra options to apply.
|
|
736
|
+
*
|
|
737
|
+
* @throws {DataError} If the input is not a valid version number.
|
|
738
|
+
*
|
|
739
|
+
* @returns The validated version number, prefixed with `v` if it was not already.
|
|
740
|
+
*/
|
|
741
|
+
declare function parseVersion(input: string, options?: ParseVersionOptions): string;
|
|
742
|
+
//#endregion
|
|
743
|
+
export { APIError, type ArrayElement, type CreateFormDataOptions, type CreateFormDataOptionsNullableResolution, type CreateFormDataOptionsUndefinedOrNullResolution, DataError, type DeepReadonly, type DisallowUndefined, type Email, type Env, type FormDataArrayResolutionStrategy, type FormDataNullableResolutionStrategy, type HTTPErrorCode, type IgnoreCase, KebabToCamelOptions, NAMESPACE_EXPORT_REGEX, type NonUndefined, NormaliseIndentsFunction, NormaliseIndentsOptions, NormalizeIndentsFunction, NormalizeIndentsOptions, type OptionalOnCondition, type RecordKey, RemoveIndentsFunction, RemoveIndentsOptions, type StringListToArrayOptions, type UUID, VERSION_NUMBER_REGEX, VersionType, addDaysToDate, appendSemicolon, camelToKebab, convertFileToBase64, createFormData, createTemplateStringsArray, deepCopy, deepFreeze, determineVersionType, fillArray, formatDateAndTime, getIndividualVersionNumbers, getRandomNumber, getRecordKeys, httpErrorCodeLookup, interpolate, interpolateObjects, isAnniversary, isLeapYear, isMonthlyMultiple, isOrdered, isSameDate, kebabToCamel, normaliseImportPath, normaliseIndents, normalizeImportPath, normalizeIndents, omitProperties, paralleliseArrays, parseBoolean, parseEmail, parseEnv, parseFormData, parseIntStrict, parseUUID, parseVersion, parseZodSchema, randomiseArray, range, removeDuplicates, removeIndents, stringListToArray, stringToBoolean, truncate, wait };
|
package/dist/index.js
CHANGED
|
@@ -5,6 +5,11 @@ import path from "path";
|
|
|
5
5
|
const NAMESPACE_EXPORT_REGEX = "export\\s+\\*\\s+from";
|
|
6
6
|
var NAMESPACE_EXPORT_REGEX_default = NAMESPACE_EXPORT_REGEX;
|
|
7
7
|
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/constants/VERSION_NUMBER_REGEX.ts
|
|
10
|
+
const VERSION_NUMBER_REGEX = "^(?:v)?(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$";
|
|
11
|
+
var VERSION_NUMBER_REGEX_default = VERSION_NUMBER_REGEX;
|
|
12
|
+
|
|
8
13
|
//#endregion
|
|
9
14
|
//#region src/functions/arrayHelpers/fillArray.ts
|
|
10
15
|
/**
|
|
@@ -1030,4 +1035,58 @@ function removeIndents(first, ...args) {
|
|
|
1030
1035
|
var removeIndents_default = removeIndents;
|
|
1031
1036
|
|
|
1032
1037
|
//#endregion
|
|
1033
|
-
|
|
1038
|
+
//#region src/functions/versioning/parseVersion.ts
|
|
1039
|
+
/**
|
|
1040
|
+
* Parses a string and verifies it is a valid package version number.
|
|
1041
|
+
*
|
|
1042
|
+
* Valid formats: `X.Y.Z` or `vX.Y.Z`, where X, Y, and Z are non-negative integers.
|
|
1043
|
+
*
|
|
1044
|
+
* @param input - The version string to parse.
|
|
1045
|
+
* @param options - Extra options to apply.
|
|
1046
|
+
*
|
|
1047
|
+
* @throws {DataError} If the input is not a valid version number.
|
|
1048
|
+
*
|
|
1049
|
+
* @returns The validated version number, prefixed with `v` if it was not already.
|
|
1050
|
+
*/
|
|
1051
|
+
function parseVersion(input, options) {
|
|
1052
|
+
if (!RegExp(VERSION_NUMBER_REGEX_default).test(input)) throw new DataError_default(input, `"${input}" is not a valid version number. Version numbers must be of the format "X.Y.Z" or "vX.Y.Z", where X, Y, and Z are non-negative integers.`, "INVALID_VERSION");
|
|
1053
|
+
if (options?.omitPrefix) return input.startsWith("v") ? input.slice(1) : input;
|
|
1054
|
+
return input.startsWith("v") ? input : `v${input}`;
|
|
1055
|
+
}
|
|
1056
|
+
var parseVersion_default = parseVersion;
|
|
1057
|
+
|
|
1058
|
+
//#endregion
|
|
1059
|
+
//#region src/functions/versioning/getIndividualVersionNumbers.ts
|
|
1060
|
+
/**
|
|
1061
|
+
* Gets the individual version numbers from a given version number as a tuple of numbers.
|
|
1062
|
+
*
|
|
1063
|
+
* @param version - The version number.
|
|
1064
|
+
*
|
|
1065
|
+
* @returns A tuple of three numbers indicating `[major, minor, patch]`.
|
|
1066
|
+
*/
|
|
1067
|
+
function getIndividualVersionNumbers(version) {
|
|
1068
|
+
return parseVersion_default(version, { omitPrefix: true }).split(".").map((versionNumber) => {
|
|
1069
|
+
return parseIntStrict_default(versionNumber);
|
|
1070
|
+
});
|
|
1071
|
+
}
|
|
1072
|
+
var getIndividualVersionNumbers_default = getIndividualVersionNumbers;
|
|
1073
|
+
|
|
1074
|
+
//#endregion
|
|
1075
|
+
//#region src/functions/versioning/determineVersionType.ts
|
|
1076
|
+
/**
|
|
1077
|
+
* Determines whether the given version is a major, minor, or patch version.
|
|
1078
|
+
*
|
|
1079
|
+
* @param version - The version number.
|
|
1080
|
+
*
|
|
1081
|
+
* @returns Either `"major"`, `"minor"`, or `"patch"`, depending on the version type.
|
|
1082
|
+
*/
|
|
1083
|
+
function determineVersionType(version) {
|
|
1084
|
+
const [_major, minor, patch] = getIndividualVersionNumbers_default(version);
|
|
1085
|
+
if (minor === 0 && patch === 0) return "major";
|
|
1086
|
+
if (patch === 0) return "minor";
|
|
1087
|
+
return "patch";
|
|
1088
|
+
}
|
|
1089
|
+
var determineVersionType_default = determineVersionType;
|
|
1090
|
+
|
|
1091
|
+
//#endregion
|
|
1092
|
+
export { APIError_default as APIError, DataError_default as DataError, NAMESPACE_EXPORT_REGEX_default as NAMESPACE_EXPORT_REGEX, VERSION_NUMBER_REGEX_default as VERSION_NUMBER_REGEX, 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, fillArray_default as fillArray, formatDateAndTime_default as formatDateAndTime, getIndividualVersionNumbers_default as getIndividualVersionNumbers, getRandomNumber_default as getRandomNumber, getRecordKeys_default as getRecordKeys, httpErrorCodeLookup, 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, Email_default as parseEmail, parseEnv_default as parseEnv, parseFormData_default as parseFormData, parseIntStrict_default as parseIntStrict, UUID_default as parseUUID, parseVersion_default as parseVersion, parseZodSchema_default as parseZodSchema, randomiseArray_default as randomiseArray, range_default as range, removeDuplicates_default as removeDuplicates, removeIndents_default as removeIndents, stringListToArray_default as stringListToArray, stringToBoolean, 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": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "Helpful utility functions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"zod": "^4.1.13"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@alextheman/eslint-plugin": "^4.8.
|
|
22
|
+
"@alextheman/eslint-plugin": "^4.8.6",
|
|
23
23
|
"@types/node": "^25.0.1",
|
|
24
24
|
"dotenv-cli": "^11.0.0",
|
|
25
25
|
"eslint": "^9.39.1",
|