@alextheman/utility 5.6.1 → 5.6.3
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 +14 -69
- package/dist/index.d.cts +21 -21
- package/dist/index.d.ts +21 -21
- package/dist/index.js +18 -68
- package/dist/internal/index.cjs +17 -52
- package/dist/internal/index.d.cts +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +10 -40
- package/dist/node/index.cjs +16 -41
- package/dist/node/index.js +9 -29
- package/package.json +10 -10
package/dist/internal/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
//#region \0rolldown/runtime.js
|
|
3
3
|
var __create = Object.create;
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -7,16 +7,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
|
+
get: ((k) => from[k]).bind(null, key),
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
20
16
|
}
|
|
21
17
|
return to;
|
|
22
18
|
};
|
|
@@ -24,7 +20,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
20
|
value: mod,
|
|
25
21
|
enumerable: true
|
|
26
22
|
}) : target, mod));
|
|
27
|
-
|
|
28
23
|
//#endregion
|
|
29
24
|
let zod = require("zod");
|
|
30
25
|
zod = __toESM(zod);
|
|
@@ -33,13 +28,11 @@ let execa = require("execa");
|
|
|
33
28
|
let node_fs_promises = require("node:fs/promises");
|
|
34
29
|
let node_path = require("node:path");
|
|
35
30
|
node_path = __toESM(node_path);
|
|
36
|
-
|
|
37
31
|
//#region src/internal/DependencyGroup.ts
|
|
38
32
|
const DependencyGroup = {
|
|
39
33
|
DEPENDENCIES: "dependencies",
|
|
40
34
|
DEV_DEPENDENCIES: "devDependencies"
|
|
41
35
|
};
|
|
42
|
-
|
|
43
36
|
//#endregion
|
|
44
37
|
//#region src/root/functions/arrayHelpers/fillArray.ts
|
|
45
38
|
/**
|
|
@@ -66,7 +59,6 @@ function fillArray(callback, length = 1) {
|
|
|
66
59
|
})) return Promise.all(outputArray);
|
|
67
60
|
return outputArray;
|
|
68
61
|
}
|
|
69
|
-
|
|
70
62
|
//#endregion
|
|
71
63
|
//#region src/root/functions/arrayHelpers/paralleliseArrays.ts
|
|
72
64
|
/**
|
|
@@ -90,7 +82,6 @@ function paralleliseArrays(firstArray, secondArray) {
|
|
|
90
82
|
for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
|
|
91
83
|
return outputArray;
|
|
92
84
|
}
|
|
93
|
-
|
|
94
85
|
//#endregion
|
|
95
86
|
//#region src/root/types/DataError.ts
|
|
96
87
|
/**
|
|
@@ -180,26 +171,15 @@ var DataError = class DataError extends Error {
|
|
|
180
171
|
throw new Error("Expected a DataError to be thrown but none was thrown");
|
|
181
172
|
}
|
|
182
173
|
};
|
|
183
|
-
|
|
184
174
|
//#endregion
|
|
185
175
|
//#region src/root/constants/FILE_PATH_REGEX.ts
|
|
186
176
|
const FILE_PATH_PATTERN = String.raw`(?<directory>.+)[\/\\](?<base>[^\/\\]+)`;
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
//#endregion
|
|
190
|
-
//#region src/root/constants/ONE_DAY_IN_MILLISECONDS.ts
|
|
191
|
-
const ONE_DAY_IN_MILLISECONDS = 1440 * 60 * 1e3;
|
|
192
|
-
|
|
193
|
-
//#endregion
|
|
194
|
-
//#region src/root/constants/UUID_REGEX.ts
|
|
195
|
-
const UUID_PATTERN = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}";
|
|
196
|
-
const UUID_REGEX = new RegExp(`^${UUID_PATTERN}$`);
|
|
197
|
-
|
|
177
|
+
RegExp(`^${FILE_PATH_PATTERN}$`);
|
|
178
|
+
new RegExp(`^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`);
|
|
198
179
|
//#endregion
|
|
199
180
|
//#region src/root/constants/VERSION_NUMBER_REGEX.ts
|
|
200
181
|
const VERSION_NUMBER_PATTERN = String.raw`^(?:v)?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$`;
|
|
201
182
|
const VERSION_NUMBER_REGEX = RegExp(`^${VERSION_NUMBER_PATTERN}$`);
|
|
202
|
-
|
|
203
183
|
//#endregion
|
|
204
184
|
//#region src/root/types/VersionNumber.ts
|
|
205
185
|
/**
|
|
@@ -224,7 +204,7 @@ var VersionNumber = class VersionNumber {
|
|
|
224
204
|
this.minor = input.minor;
|
|
225
205
|
this.patch = input.patch;
|
|
226
206
|
} else if (typeof input === "string") {
|
|
227
|
-
if (!
|
|
207
|
+
if (!VERSION_NUMBER_REGEX.test(input)) throw new DataError({ input }, "INVALID_VERSION", `"${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.`);
|
|
228
208
|
const [major, minor, patch] = VersionNumber.formatString(input, { omitPrefix: true }).split(".").map((number) => {
|
|
229
209
|
return parseIntStrict(number);
|
|
230
210
|
});
|
|
@@ -241,7 +221,10 @@ var VersionNumber = class VersionNumber {
|
|
|
241
221
|
this.major = major;
|
|
242
222
|
this.minor = minor;
|
|
243
223
|
this.patch = patch;
|
|
244
|
-
}
|
|
224
|
+
} else throw new DataError({ input }, "INVALID_INPUT", normaliseIndents`
|
|
225
|
+
The provided input can not be parsed into a valid version number.
|
|
226
|
+
Expected either a string of format X.Y.Z or vX.Y.Z, a tuple of three numbers, or another \`VersionNumber\` instance.
|
|
227
|
+
`);
|
|
245
228
|
}
|
|
246
229
|
/**
|
|
247
230
|
* Gets the current version type of the current instance of `VersionNumber`.
|
|
@@ -353,7 +336,7 @@ var VersionNumber = class VersionNumber {
|
|
|
353
336
|
return VersionNumber.formatString(rawString, { omitPrefix: false });
|
|
354
337
|
}
|
|
355
338
|
};
|
|
356
|
-
|
|
339
|
+
zod.default.union([
|
|
357
340
|
zod.default.string(),
|
|
358
341
|
zod.default.tuple([
|
|
359
342
|
zod.default.number(),
|
|
@@ -364,7 +347,6 @@ const zodVersionNumber = zod.default.union([
|
|
|
364
347
|
]).transform((rawVersionNumber) => {
|
|
365
348
|
return new VersionNumber(rawVersionNumber);
|
|
366
349
|
});
|
|
367
|
-
|
|
368
350
|
//#endregion
|
|
369
351
|
//#region src/root/functions/parsers/parseIntStrict.ts
|
|
370
352
|
/**
|
|
@@ -386,7 +368,7 @@ function parseIntStrict(string, radix) {
|
|
|
386
368
|
string,
|
|
387
369
|
radix
|
|
388
370
|
} : { string }, "INTEGER_PARSING_ERROR", `Only numeric values${radix && radix > 10 && radix <= 36 ? ` or character${radix !== 11 ? "s" : ""} A${radix !== 11 ? `-${maxAllowedAlphabeticalCharacter?.toUpperCase()} ` : " "}` : " "}are allowed.`);
|
|
389
|
-
if (radix && radix < 10 && [...trimmedString].some((character) => {
|
|
371
|
+
if (radix && radix < 10 && [...trimmedString.replace(/^[+-]/, "")].some((character) => {
|
|
390
372
|
return parseInt(character) >= radix;
|
|
391
373
|
})) throw new DataError({
|
|
392
374
|
string,
|
|
@@ -396,7 +378,6 @@ function parseIntStrict(string, radix) {
|
|
|
396
378
|
if (isNaN(parseIntResult)) throw new DataError({ string }, "INTEGER_PARSING_ERROR", "Value is not a valid integer.");
|
|
397
379
|
return parseIntResult;
|
|
398
380
|
}
|
|
399
|
-
|
|
400
381
|
//#endregion
|
|
401
382
|
//#region src/root/functions/taggedTemplate/interpolate.ts
|
|
402
383
|
/**
|
|
@@ -424,7 +405,6 @@ function interpolate(strings, ...interpolations) {
|
|
|
424
405
|
for (const [string, interpolation = ""] of paralleliseArrays(strings, interpolations)) result += string + interpolation;
|
|
425
406
|
return result;
|
|
426
407
|
}
|
|
427
|
-
|
|
428
408
|
//#endregion
|
|
429
409
|
//#region src/root/functions/taggedTemplate/normaliseIndents.ts
|
|
430
410
|
function calculateTabSize(line, whitespaceLength) {
|
|
@@ -488,7 +468,6 @@ function normaliseIndents(first, ...args) {
|
|
|
488
468
|
const options = typeof args[args.length - 1] === "object" && !Array.isArray(args[args.length - 1]) ? args.pop() : {};
|
|
489
469
|
return reduceLines(interpolate(strings, ...[...args]).split("\n"), options);
|
|
490
470
|
}
|
|
491
|
-
|
|
492
471
|
//#endregion
|
|
493
472
|
//#region src/root/functions/miscellaneous/sayHello.ts
|
|
494
473
|
/**
|
|
@@ -602,7 +581,6 @@ function sayHello() {
|
|
|
602
581
|
I'll commit to you!
|
|
603
582
|
`;
|
|
604
583
|
}
|
|
605
|
-
|
|
606
584
|
//#endregion
|
|
607
585
|
//#region src/root/functions/parsers/zod/_parseZodSchema.ts
|
|
608
586
|
function _parseZodSchema(parsedResult, input, onError) {
|
|
@@ -627,7 +605,6 @@ function _parseZodSchema(parsedResult, input, onError) {
|
|
|
627
605
|
}
|
|
628
606
|
return parsedResult.data;
|
|
629
607
|
}
|
|
630
|
-
|
|
631
608
|
//#endregion
|
|
632
609
|
//#region src/root/functions/parsers/zod/parseZodSchema.ts
|
|
633
610
|
/**
|
|
@@ -651,7 +628,6 @@ function _parseZodSchema(parsedResult, input, onError) {
|
|
|
651
628
|
function parseZodSchema(schema, input, onError) {
|
|
652
629
|
return _parseZodSchema(schema.safeParse(input), input, onError);
|
|
653
630
|
}
|
|
654
|
-
|
|
655
631
|
//#endregion
|
|
656
632
|
//#region src/root/functions/parsers/parseVersionType.ts
|
|
657
633
|
/**
|
|
@@ -664,7 +640,6 @@ const VersionType = {
|
|
|
664
640
|
MINOR: "minor",
|
|
665
641
|
PATCH: "patch"
|
|
666
642
|
};
|
|
667
|
-
|
|
668
643
|
//#endregion
|
|
669
644
|
//#region src/internal/getDependenciesFromGroup.ts
|
|
670
645
|
/**
|
|
@@ -683,7 +658,6 @@ function getDependenciesFromGroup(packageInfo, dependencyGroup) {
|
|
|
683
658
|
devDependencies: parseZodSchema(zod.default.record(zod.default.string(), zod.default.string()), packageInfo.devDependencies ?? {})
|
|
684
659
|
}[dependencyGroup];
|
|
685
660
|
}
|
|
686
|
-
|
|
687
661
|
//#endregion
|
|
688
662
|
//#region src/internal/getExpectedTgzName.ts
|
|
689
663
|
async function getExpectedTgzName(packagePath, packageManager) {
|
|
@@ -694,19 +668,16 @@ async function getExpectedTgzName(packagePath, packageManager) {
|
|
|
694
668
|
const { filename: expectedTgzFileName } = normalisedTgzMetadata;
|
|
695
669
|
return expectedTgzFileName;
|
|
696
670
|
}
|
|
697
|
-
|
|
698
671
|
//#endregion
|
|
699
672
|
//#region src/internal/getPackageJsonPath.ts
|
|
700
673
|
function getPackageJsonPath(directory) {
|
|
701
674
|
return node_path.default.join(...directory.endsWith("package.json") ? [directory] : [directory, "package.json"]);
|
|
702
675
|
}
|
|
703
|
-
|
|
704
676
|
//#endregion
|
|
705
677
|
//#region src/internal/packageJsonNotFoundError.ts
|
|
706
678
|
function packageJsonNotFoundError(packagePath) {
|
|
707
679
|
return new DataError({ packagePath: getPackageJsonPath(packagePath) }, "PACKAGE_JSON_NOT_FOUND", "Could not find package.json in directory.");
|
|
708
680
|
}
|
|
709
|
-
|
|
710
681
|
//#endregion
|
|
711
682
|
//#region src/internal/getPackageJsonContents.ts
|
|
712
683
|
async function getPackageJsonContents(directory, options) {
|
|
@@ -719,7 +690,6 @@ async function getPackageJsonContents(directory, options) {
|
|
|
719
690
|
throw error;
|
|
720
691
|
}
|
|
721
692
|
}
|
|
722
|
-
|
|
723
693
|
//#endregion
|
|
724
694
|
//#region src/internal/ModuleType.ts
|
|
725
695
|
const ModuleType = {
|
|
@@ -727,14 +697,12 @@ const ModuleType = {
|
|
|
727
697
|
ES_MODULES: "module",
|
|
728
698
|
TYPESCRIPT: "typescript"
|
|
729
699
|
};
|
|
730
|
-
|
|
731
700
|
//#endregion
|
|
732
701
|
//#region src/internal/PackageManager.ts
|
|
733
702
|
const PackageManager = {
|
|
734
703
|
NPM: "npm",
|
|
735
704
|
PNPM: "pnpm"
|
|
736
705
|
};
|
|
737
|
-
|
|
738
706
|
//#endregion
|
|
739
707
|
//#region src/internal/parseJsonFromStdout.ts
|
|
740
708
|
function parseJsonFromStdout(stdout) {
|
|
@@ -746,11 +714,9 @@ function parseJsonFromStdout(stdout) {
|
|
|
746
714
|
if (!Number.isFinite(start)) throw new DataError({ stdout }, "NO_JSON_FOUND_IN_OUTPUT", "No JSON found in output");
|
|
747
715
|
return JSON.parse(stdout.slice(start));
|
|
748
716
|
}
|
|
749
|
-
|
|
750
717
|
//#endregion
|
|
751
718
|
//#region src/internal/sayHello.ts
|
|
752
719
|
var sayHello_default = sayHello;
|
|
753
|
-
|
|
754
720
|
//#endregion
|
|
755
721
|
//#region src/internal/setupPackageEndToEnd.ts
|
|
756
722
|
async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, options) {
|
|
@@ -769,7 +735,6 @@ async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, o
|
|
|
769
735
|
await runCommandInTempDirectory`${packageManager} install ${dependencyGroup === "devDependencies" ? "--save-dev" : "--save-prod"} ${node_path.default.join(temporaryPath, tgzFileName)}`;
|
|
770
736
|
return runCommandInTempDirectory;
|
|
771
737
|
}
|
|
772
|
-
|
|
773
738
|
//#endregion
|
|
774
739
|
exports.DependencyGroup = DependencyGroup;
|
|
775
740
|
exports.ModuleType = ModuleType;
|
|
@@ -781,4 +746,4 @@ exports.getPackageJsonPath = getPackageJsonPath;
|
|
|
781
746
|
exports.packageJsonNotFoundError = packageJsonNotFoundError;
|
|
782
747
|
exports.parseJsonFromStdout = parseJsonFromStdout;
|
|
783
748
|
exports.sayHello = sayHello_default;
|
|
784
|
-
exports.setupPackageEndToEnd = setupPackageEndToEnd;
|
|
749
|
+
exports.setupPackageEndToEnd = setupPackageEndToEnd;
|
|
@@ -154,7 +154,7 @@ declare function parseJsonFromStdout(stdout: string): Record<string, unknown>;
|
|
|
154
154
|
//#region src/internal/setupPackageEndToEnd.d.ts
|
|
155
155
|
interface SetupPackageEndToEndOptions {
|
|
156
156
|
dependencyGroup?: DependencyGroup;
|
|
157
|
-
additionalDependencies?: Partial<Record<DependencyGroup, string
|
|
157
|
+
additionalDependencies?: Partial<Record<DependencyGroup, Array<string>>>;
|
|
158
158
|
}
|
|
159
159
|
declare function setupPackageEndToEnd(temporaryPath: string, packageManager: PackageManager, moduleType: ModuleType, options?: SetupPackageEndToEndOptions): Promise<ExecaMethod<{
|
|
160
160
|
cwd: string;
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -155,7 +155,7 @@ declare function parseJsonFromStdout(stdout: string): Record<string, unknown>;
|
|
|
155
155
|
//#region src/internal/setupPackageEndToEnd.d.ts
|
|
156
156
|
interface SetupPackageEndToEndOptions {
|
|
157
157
|
dependencyGroup?: DependencyGroup;
|
|
158
|
-
additionalDependencies?: Partial<Record<DependencyGroup, string
|
|
158
|
+
additionalDependencies?: Partial<Record<DependencyGroup, Array<string>>>;
|
|
159
159
|
}
|
|
160
160
|
declare function setupPackageEndToEnd(temporaryPath: string, packageManager: PackageManager, moduleType: ModuleType, options?: SetupPackageEndToEndOptions): Promise<ExecaMethod<{
|
|
161
161
|
cwd: string;
|
package/dist/internal/index.js
CHANGED
|
@@ -3,13 +3,11 @@ import "libsodium-wrappers";
|
|
|
3
3
|
import { execa } from "execa";
|
|
4
4
|
import { readFile, writeFile } from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
|
|
7
6
|
//#region src/internal/DependencyGroup.ts
|
|
8
7
|
const DependencyGroup = {
|
|
9
8
|
DEPENDENCIES: "dependencies",
|
|
10
9
|
DEV_DEPENDENCIES: "devDependencies"
|
|
11
10
|
};
|
|
12
|
-
|
|
13
11
|
//#endregion
|
|
14
12
|
//#region src/root/functions/arrayHelpers/fillArray.ts
|
|
15
13
|
/**
|
|
@@ -36,7 +34,6 @@ function fillArray(callback, length = 1) {
|
|
|
36
34
|
})) return Promise.all(outputArray);
|
|
37
35
|
return outputArray;
|
|
38
36
|
}
|
|
39
|
-
|
|
40
37
|
//#endregion
|
|
41
38
|
//#region src/root/functions/arrayHelpers/paralleliseArrays.ts
|
|
42
39
|
/**
|
|
@@ -60,7 +57,6 @@ function paralleliseArrays(firstArray, secondArray) {
|
|
|
60
57
|
for (let i = 0; i < firstArray.length; i++) outputArray.push([firstArray[i], secondArray[i]]);
|
|
61
58
|
return outputArray;
|
|
62
59
|
}
|
|
63
|
-
|
|
64
60
|
//#endregion
|
|
65
61
|
//#region src/root/types/DataError.ts
|
|
66
62
|
/**
|
|
@@ -150,26 +146,15 @@ var DataError = class DataError extends Error {
|
|
|
150
146
|
throw new Error("Expected a DataError to be thrown but none was thrown");
|
|
151
147
|
}
|
|
152
148
|
};
|
|
153
|
-
|
|
154
149
|
//#endregion
|
|
155
150
|
//#region src/root/constants/FILE_PATH_REGEX.ts
|
|
156
151
|
const FILE_PATH_PATTERN = String.raw`(?<directory>.+)[\/\\](?<base>[^\/\\]+)`;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
//#endregion
|
|
160
|
-
//#region src/root/constants/ONE_DAY_IN_MILLISECONDS.ts
|
|
161
|
-
const ONE_DAY_IN_MILLISECONDS = 1440 * 60 * 1e3;
|
|
162
|
-
|
|
163
|
-
//#endregion
|
|
164
|
-
//#region src/root/constants/UUID_REGEX.ts
|
|
165
|
-
const UUID_PATTERN = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}";
|
|
166
|
-
const UUID_REGEX = new RegExp(`^${UUID_PATTERN}$`);
|
|
167
|
-
|
|
152
|
+
RegExp(`^${FILE_PATH_PATTERN}$`);
|
|
153
|
+
new RegExp(`^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`);
|
|
168
154
|
//#endregion
|
|
169
155
|
//#region src/root/constants/VERSION_NUMBER_REGEX.ts
|
|
170
156
|
const VERSION_NUMBER_PATTERN = String.raw`^(?:v)?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$`;
|
|
171
157
|
const VERSION_NUMBER_REGEX = RegExp(`^${VERSION_NUMBER_PATTERN}$`);
|
|
172
|
-
|
|
173
158
|
//#endregion
|
|
174
159
|
//#region src/root/types/VersionNumber.ts
|
|
175
160
|
/**
|
|
@@ -194,7 +179,7 @@ var VersionNumber = class VersionNumber {
|
|
|
194
179
|
this.minor = input.minor;
|
|
195
180
|
this.patch = input.patch;
|
|
196
181
|
} else if (typeof input === "string") {
|
|
197
|
-
if (!
|
|
182
|
+
if (!VERSION_NUMBER_REGEX.test(input)) throw new DataError({ input }, "INVALID_VERSION", `"${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.`);
|
|
198
183
|
const [major, minor, patch] = VersionNumber.formatString(input, { omitPrefix: true }).split(".").map((number) => {
|
|
199
184
|
return parseIntStrict(number);
|
|
200
185
|
});
|
|
@@ -211,7 +196,10 @@ var VersionNumber = class VersionNumber {
|
|
|
211
196
|
this.major = major;
|
|
212
197
|
this.minor = minor;
|
|
213
198
|
this.patch = patch;
|
|
214
|
-
}
|
|
199
|
+
} else throw new DataError({ input }, "INVALID_INPUT", normaliseIndents`
|
|
200
|
+
The provided input can not be parsed into a valid version number.
|
|
201
|
+
Expected either a string of format X.Y.Z or vX.Y.Z, a tuple of three numbers, or another \`VersionNumber\` instance.
|
|
202
|
+
`);
|
|
215
203
|
}
|
|
216
204
|
/**
|
|
217
205
|
* Gets the current version type of the current instance of `VersionNumber`.
|
|
@@ -323,7 +311,7 @@ var VersionNumber = class VersionNumber {
|
|
|
323
311
|
return VersionNumber.formatString(rawString, { omitPrefix: false });
|
|
324
312
|
}
|
|
325
313
|
};
|
|
326
|
-
|
|
314
|
+
z.union([
|
|
327
315
|
z.string(),
|
|
328
316
|
z.tuple([
|
|
329
317
|
z.number(),
|
|
@@ -334,7 +322,6 @@ const zodVersionNumber = z.union([
|
|
|
334
322
|
]).transform((rawVersionNumber) => {
|
|
335
323
|
return new VersionNumber(rawVersionNumber);
|
|
336
324
|
});
|
|
337
|
-
|
|
338
325
|
//#endregion
|
|
339
326
|
//#region src/root/functions/parsers/parseIntStrict.ts
|
|
340
327
|
/**
|
|
@@ -356,7 +343,7 @@ function parseIntStrict(string, radix) {
|
|
|
356
343
|
string,
|
|
357
344
|
radix
|
|
358
345
|
} : { string }, "INTEGER_PARSING_ERROR", `Only numeric values${radix && radix > 10 && radix <= 36 ? ` or character${radix !== 11 ? "s" : ""} A${radix !== 11 ? `-${maxAllowedAlphabeticalCharacter?.toUpperCase()} ` : " "}` : " "}are allowed.`);
|
|
359
|
-
if (radix && radix < 10 && [...trimmedString].some((character) => {
|
|
346
|
+
if (radix && radix < 10 && [...trimmedString.replace(/^[+-]/, "")].some((character) => {
|
|
360
347
|
return parseInt(character) >= radix;
|
|
361
348
|
})) throw new DataError({
|
|
362
349
|
string,
|
|
@@ -366,7 +353,6 @@ function parseIntStrict(string, radix) {
|
|
|
366
353
|
if (isNaN(parseIntResult)) throw new DataError({ string }, "INTEGER_PARSING_ERROR", "Value is not a valid integer.");
|
|
367
354
|
return parseIntResult;
|
|
368
355
|
}
|
|
369
|
-
|
|
370
356
|
//#endregion
|
|
371
357
|
//#region src/root/functions/taggedTemplate/interpolate.ts
|
|
372
358
|
/**
|
|
@@ -394,7 +380,6 @@ function interpolate(strings, ...interpolations) {
|
|
|
394
380
|
for (const [string, interpolation = ""] of paralleliseArrays(strings, interpolations)) result += string + interpolation;
|
|
395
381
|
return result;
|
|
396
382
|
}
|
|
397
|
-
|
|
398
383
|
//#endregion
|
|
399
384
|
//#region src/root/functions/taggedTemplate/normaliseIndents.ts
|
|
400
385
|
function calculateTabSize(line, whitespaceLength) {
|
|
@@ -458,7 +443,6 @@ function normaliseIndents(first, ...args) {
|
|
|
458
443
|
const options = typeof args[args.length - 1] === "object" && !Array.isArray(args[args.length - 1]) ? args.pop() : {};
|
|
459
444
|
return reduceLines(interpolate(strings, ...[...args]).split("\n"), options);
|
|
460
445
|
}
|
|
461
|
-
|
|
462
446
|
//#endregion
|
|
463
447
|
//#region src/root/functions/miscellaneous/sayHello.ts
|
|
464
448
|
/**
|
|
@@ -572,7 +556,6 @@ function sayHello() {
|
|
|
572
556
|
I'll commit to you!
|
|
573
557
|
`;
|
|
574
558
|
}
|
|
575
|
-
|
|
576
559
|
//#endregion
|
|
577
560
|
//#region src/root/functions/parsers/zod/_parseZodSchema.ts
|
|
578
561
|
function _parseZodSchema(parsedResult, input, onError) {
|
|
@@ -597,7 +580,6 @@ function _parseZodSchema(parsedResult, input, onError) {
|
|
|
597
580
|
}
|
|
598
581
|
return parsedResult.data;
|
|
599
582
|
}
|
|
600
|
-
|
|
601
583
|
//#endregion
|
|
602
584
|
//#region src/root/functions/parsers/zod/parseZodSchema.ts
|
|
603
585
|
/**
|
|
@@ -621,7 +603,6 @@ function _parseZodSchema(parsedResult, input, onError) {
|
|
|
621
603
|
function parseZodSchema(schema, input, onError) {
|
|
622
604
|
return _parseZodSchema(schema.safeParse(input), input, onError);
|
|
623
605
|
}
|
|
624
|
-
|
|
625
606
|
//#endregion
|
|
626
607
|
//#region src/root/functions/parsers/parseVersionType.ts
|
|
627
608
|
/**
|
|
@@ -634,7 +615,6 @@ const VersionType = {
|
|
|
634
615
|
MINOR: "minor",
|
|
635
616
|
PATCH: "patch"
|
|
636
617
|
};
|
|
637
|
-
|
|
638
618
|
//#endregion
|
|
639
619
|
//#region src/internal/getDependenciesFromGroup.ts
|
|
640
620
|
/**
|
|
@@ -653,7 +633,6 @@ function getDependenciesFromGroup(packageInfo, dependencyGroup) {
|
|
|
653
633
|
devDependencies: parseZodSchema(z.record(z.string(), z.string()), packageInfo.devDependencies ?? {})
|
|
654
634
|
}[dependencyGroup];
|
|
655
635
|
}
|
|
656
|
-
|
|
657
636
|
//#endregion
|
|
658
637
|
//#region src/internal/getExpectedTgzName.ts
|
|
659
638
|
async function getExpectedTgzName(packagePath, packageManager) {
|
|
@@ -664,19 +643,16 @@ async function getExpectedTgzName(packagePath, packageManager) {
|
|
|
664
643
|
const { filename: expectedTgzFileName } = normalisedTgzMetadata;
|
|
665
644
|
return expectedTgzFileName;
|
|
666
645
|
}
|
|
667
|
-
|
|
668
646
|
//#endregion
|
|
669
647
|
//#region src/internal/getPackageJsonPath.ts
|
|
670
648
|
function getPackageJsonPath(directory) {
|
|
671
649
|
return path.join(...directory.endsWith("package.json") ? [directory] : [directory, "package.json"]);
|
|
672
650
|
}
|
|
673
|
-
|
|
674
651
|
//#endregion
|
|
675
652
|
//#region src/internal/packageJsonNotFoundError.ts
|
|
676
653
|
function packageJsonNotFoundError(packagePath) {
|
|
677
654
|
return new DataError({ packagePath: getPackageJsonPath(packagePath) }, "PACKAGE_JSON_NOT_FOUND", "Could not find package.json in directory.");
|
|
678
655
|
}
|
|
679
|
-
|
|
680
656
|
//#endregion
|
|
681
657
|
//#region src/internal/getPackageJsonContents.ts
|
|
682
658
|
async function getPackageJsonContents(directory, options) {
|
|
@@ -689,7 +665,6 @@ async function getPackageJsonContents(directory, options) {
|
|
|
689
665
|
throw error;
|
|
690
666
|
}
|
|
691
667
|
}
|
|
692
|
-
|
|
693
668
|
//#endregion
|
|
694
669
|
//#region src/internal/ModuleType.ts
|
|
695
670
|
const ModuleType = {
|
|
@@ -697,14 +672,12 @@ const ModuleType = {
|
|
|
697
672
|
ES_MODULES: "module",
|
|
698
673
|
TYPESCRIPT: "typescript"
|
|
699
674
|
};
|
|
700
|
-
|
|
701
675
|
//#endregion
|
|
702
676
|
//#region src/internal/PackageManager.ts
|
|
703
677
|
const PackageManager = {
|
|
704
678
|
NPM: "npm",
|
|
705
679
|
PNPM: "pnpm"
|
|
706
680
|
};
|
|
707
|
-
|
|
708
681
|
//#endregion
|
|
709
682
|
//#region src/internal/parseJsonFromStdout.ts
|
|
710
683
|
function parseJsonFromStdout(stdout) {
|
|
@@ -716,11 +689,9 @@ function parseJsonFromStdout(stdout) {
|
|
|
716
689
|
if (!Number.isFinite(start)) throw new DataError({ stdout }, "NO_JSON_FOUND_IN_OUTPUT", "No JSON found in output");
|
|
717
690
|
return JSON.parse(stdout.slice(start));
|
|
718
691
|
}
|
|
719
|
-
|
|
720
692
|
//#endregion
|
|
721
693
|
//#region src/internal/sayHello.ts
|
|
722
694
|
var sayHello_default = sayHello;
|
|
723
|
-
|
|
724
695
|
//#endregion
|
|
725
696
|
//#region src/internal/setupPackageEndToEnd.ts
|
|
726
697
|
async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, options) {
|
|
@@ -739,6 +710,5 @@ async function setupPackageEndToEnd(temporaryPath, packageManager, moduleType, o
|
|
|
739
710
|
await runCommandInTempDirectory`${packageManager} install ${dependencyGroup === "devDependencies" ? "--save-dev" : "--save-prod"} ${path.join(temporaryPath, tgzFileName)}`;
|
|
740
711
|
return runCommandInTempDirectory;
|
|
741
712
|
}
|
|
742
|
-
|
|
743
713
|
//#endregion
|
|
744
|
-
export { DependencyGroup, ModuleType, PackageManager, getDependenciesFromGroup, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello_default as sayHello, setupPackageEndToEnd };
|
|
714
|
+
export { DependencyGroup, ModuleType, PackageManager, getDependenciesFromGroup, getExpectedTgzName, getPackageJsonContents, getPackageJsonPath, packageJsonNotFoundError, parseJsonFromStdout, sayHello_default as sayHello, setupPackageEndToEnd };
|