isaacscript 3.6.49 → 3.6.51
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/file-templates/dynamic/.github/workflows/ci.yml +1 -1
- package/file-templates/dynamic/package.mod.json +1 -1
- package/file-templates/static-mod/lint.sh +2 -2
- package/file-templates/static-mod/prettier.config.mjs +36 -0
- package/file-templates/static-ts/lint.sh +2 -2
- package/file-templates/static-ts/prettier.config.mjs +21 -0
- package/package.json +6 -7
- package/schemas/isaacscript-schema.json +8 -8
- package/src/checkForWindowsTerminalBugs.js +2 -2
- package/src/checkForWindowsTerminalBugs.js.map +1 -1
- package/src/classes/Config.js +3 -1
- package/src/classes/Config.js.map +1 -1
- package/src/classes/ValidatedConfig.js +3 -0
- package/src/classes/ValidatedConfig.js.map +1 -0
- package/src/commands/check/check.js +6 -6
- package/src/commands/check/check.js.map +1 -1
- package/src/commands/copy/copy.js.map +1 -1
- package/src/commands/init/checkIfProjectPathExists.js +2 -2
- package/src/commands/init/checkIfProjectPathExists.js.map +1 -1
- package/src/commands/init/checkModSubdirectory.js +2 -2
- package/src/commands/init/checkModSubdirectory.js.map +1 -1
- package/src/commands/init/checkModTargetDirectory.js +2 -2
- package/src/commands/init/checkModTargetDirectory.js.map +1 -1
- package/src/commands/init/createProject.js +4 -4
- package/src/commands/init/createProject.js.map +1 -1
- package/src/commands/init/getAuthorName.js +2 -2
- package/src/commands/init/getAuthorName.js.map +1 -1
- package/src/commands/init/getModsDir.js +6 -6
- package/src/commands/init/getModsDir.js.map +1 -1
- package/src/commands/init/getProjectPath.js +7 -7
- package/src/commands/init/getProjectPath.js.map +1 -1
- package/src/commands/init/installVSCodeExtensions.js +2 -2
- package/src/commands/init/installVSCodeExtensions.js.map +1 -1
- package/src/commands/init/promptSaveSlot.js +2 -2
- package/src/commands/init/promptSaveSlot.js.map +1 -1
- package/src/commands/monitor/copyWatcherMod.js.map +1 -1
- package/src/commands/monitor/monitor.js +15 -14
- package/src/commands/monitor/monitor.js.map +1 -1
- package/src/commands/monitor/spawnSaveDatWriter.js +3 -3
- package/src/commands/monitor/spawnSaveDatWriter.js.map +1 -1
- package/src/commands/monitor/touchWatcherSaveDatFiles.js.map +1 -1
- package/src/commands/publish/isaacscriptMod.js.map +1 -1
- package/src/commands/publish/prePublish.js +3 -3
- package/src/commands/publish/prePublish.js.map +1 -1
- package/src/commands/publish/publish.js.map +1 -1
- package/src/commands/publish/validate.js +7 -7
- package/src/commands/publish/validate.js.map +1 -1
- package/src/common.js +10 -10
- package/src/common.js.map +1 -1
- package/src/configFile.js +2 -2
- package/src/configFile.js.map +1 -1
- package/src/customStage.js +22 -22
- package/src/customStage.js.map +1 -1
- package/src/dev.js +2 -2
- package/src/dev.js.map +1 -1
- package/src/enums/DoorSlotFlag.js.map +1 -1
- package/src/exec.js +8 -8
- package/src/exec.js.map +1 -1
- package/src/file.js +12 -12
- package/src/file.js.map +1 -1
- package/src/isaacScriptCommonTS.js +183 -0
- package/src/isaacScriptCommonTS.js.map +1 -0
- package/src/json.js +5 -5
- package/src/json.js.map +1 -1
- package/src/main.js +2 -2
- package/src/main.js.map +1 -1
- package/src/packageManager.js +7 -7
- package/src/packageManager.js.map +1 -1
- package/src/prompt.js +8 -8
- package/src/prompt.js.map +1 -1
- package/src/tsconfig.js +14 -14
- package/src/tsconfig.js.map +1 -1
- package/src/utils.js +1 -3
- package/src/utils.js.map +1 -1
- package/src/validateNodeVersion.js +3 -3
- package/src/validateNodeVersion.js.map +1 -1
- package/src/version.js +2 -2
- package/src/version.js.map +1 -1
- package/file-templates/static-mod/.prettierrc.cjs +0 -49
- package/file-templates/static-ts/.prettierrc.cjs +0 -37
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// The functions here are copied from `isaacscript-common-ts` because they are natively written as
|
|
3
|
+
// MTS files and we have issues importing from them inside the monorepo. (The `tsup` tool makes it
|
|
4
|
+
// so that the library can be consumed from both CommonJS and ESM projects, but `tsconfig-paths`
|
|
5
|
+
// makes it always seem to consume the ESM version.) Furthermore, using `tsconfig-paths` makes live
|
|
6
|
+
// debugging more difficult.
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.repeat = exports.removeLinesMatching = exports.removeLinesBetweenMarkers = exports.parseSemanticVersion = exports.parseIntSafe = exports.isRecord = exports.isKebabCase = exports.hasWhiteSpace = exports.getEnumValues = exports.error = exports.ReadonlySet = void 0;
|
|
9
|
+
/** An alias for the `Set` constructor that returns a read-only set. */
|
|
10
|
+
exports.ReadonlySet = Set;
|
|
11
|
+
/** From: https://github.com/expandjs/expandjs/blob/master/lib/kebabCaseRegex.js */
|
|
12
|
+
const KEBAB_CASE_REGEX = /^([a-z](?![\d])|[\d](?![a-z]))+(-?([a-z](?![\d])|[\d](?![a-z])))*$|^$/;
|
|
13
|
+
/**
|
|
14
|
+
* Helper function to print out an error message and then exit the program.
|
|
15
|
+
*
|
|
16
|
+
* All of the arguments will be directly passed to the `console.error` function.
|
|
17
|
+
*/
|
|
18
|
+
function error(...args) {
|
|
19
|
+
console.error(...args);
|
|
20
|
+
return process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
exports.error = error;
|
|
23
|
+
/**
|
|
24
|
+
* Helper function to get the only the values of an enum.
|
|
25
|
+
*
|
|
26
|
+
* (By default, TypeScript will put the keys inside of the values of a number-based enum, so those
|
|
27
|
+
* have to be filtered out.)
|
|
28
|
+
*
|
|
29
|
+
* This function will work properly for both number and string enums.
|
|
30
|
+
*/
|
|
31
|
+
function getEnumValues(transpiledEnum) {
|
|
32
|
+
const values = Object.values(transpiledEnum);
|
|
33
|
+
const numberValues = values.filter((value) => typeof value === "number");
|
|
34
|
+
// If there are no number values, then this must be a string enum, and no filtration is required.
|
|
35
|
+
const valuesToReturn = numberValues.length > 0 ? numberValues : values;
|
|
36
|
+
return valuesToReturn;
|
|
37
|
+
}
|
|
38
|
+
exports.getEnumValues = getEnumValues;
|
|
39
|
+
/** From: https://stackoverflow.com/questions/1731190/check-if-a-string-has-white-space */
|
|
40
|
+
function hasWhiteSpace(s) {
|
|
41
|
+
return /\s/g.test(s);
|
|
42
|
+
}
|
|
43
|
+
exports.hasWhiteSpace = hasWhiteSpace;
|
|
44
|
+
/** Kebab case is the naming style of using all lowercase and hyphens, like "foo-bar". */
|
|
45
|
+
function isKebabCase(string) {
|
|
46
|
+
return KEBAB_CASE_REGEX.test(string);
|
|
47
|
+
}
|
|
48
|
+
exports.isKebabCase = isKebabCase;
|
|
49
|
+
/** Helper function to narrow `unknown` to `Record`. */
|
|
50
|
+
function isRecord(object) {
|
|
51
|
+
return (typeof object === "object" && object !== null && !Array.isArray(object));
|
|
52
|
+
}
|
|
53
|
+
exports.isRecord = isRecord;
|
|
54
|
+
/**
|
|
55
|
+
* This is a more reliable version of `parseInt`. By default, `parseInt('1a')` will return "1",
|
|
56
|
+
* which is unexpected. This returns either an integer or NaN.
|
|
57
|
+
*/
|
|
58
|
+
function parseIntSafe(input) {
|
|
59
|
+
if (typeof input !== "string") {
|
|
60
|
+
return NaN;
|
|
61
|
+
}
|
|
62
|
+
// Remove all leading and trailing whitespace.
|
|
63
|
+
let trimmedInput = input.trim();
|
|
64
|
+
const isNegativeNumber = trimmedInput.startsWith("-");
|
|
65
|
+
if (isNegativeNumber) {
|
|
66
|
+
// Remove the leading minus sign before we match the regular expression.
|
|
67
|
+
trimmedInput = trimmedInput.substring(1);
|
|
68
|
+
}
|
|
69
|
+
if (/^\d+$/.exec(trimmedInput) === null) {
|
|
70
|
+
// "\d" matches any digit (same as "[0-9]").
|
|
71
|
+
return NaN;
|
|
72
|
+
}
|
|
73
|
+
if (isNegativeNumber) {
|
|
74
|
+
// Add the leading minus sign back.
|
|
75
|
+
trimmedInput = `-${trimmedInput}`;
|
|
76
|
+
}
|
|
77
|
+
return Number.parseInt(trimmedInput, 10);
|
|
78
|
+
}
|
|
79
|
+
exports.parseIntSafe = parseIntSafe;
|
|
80
|
+
/**
|
|
81
|
+
* Helper function to parse a Semantic Versioning string into its individual constituents. Returns
|
|
82
|
+
* undefined if the submitted string was not a proper Semantic Version string.
|
|
83
|
+
*
|
|
84
|
+
* https://semver.org/
|
|
85
|
+
*/
|
|
86
|
+
function parseSemanticVersion(versionString) {
|
|
87
|
+
const match = versionString.match(/^v*(\d+)\.(\d+)\.(\d+)/);
|
|
88
|
+
if (match === null) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
const majorVersionString = match[1] ?? "";
|
|
92
|
+
const minorVersionString = match[2] ?? "";
|
|
93
|
+
const patchVersionString = match[3] ?? "";
|
|
94
|
+
const majorVersion = parseIntSafe(majorVersionString);
|
|
95
|
+
if (Number.isNaN(majorVersion)) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
const minorVersion = parseIntSafe(minorVersionString);
|
|
99
|
+
if (Number.isNaN(minorVersion)) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const patchVersion = parseIntSafe(patchVersionString);
|
|
103
|
+
if (Number.isNaN(patchVersion)) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
return { majorVersion, minorVersion, patchVersion };
|
|
107
|
+
}
|
|
108
|
+
exports.parseSemanticVersion = parseSemanticVersion;
|
|
109
|
+
/**
|
|
110
|
+
* Helper function to remove lines from a multi-line string. This function looks for a "-start" and
|
|
111
|
+
* a "-end" suffix after the marker. Lines with markets will be completely removed from the output.
|
|
112
|
+
*
|
|
113
|
+
* For example, by using a marker of "@foo":
|
|
114
|
+
*
|
|
115
|
+
* ```text
|
|
116
|
+
* line1
|
|
117
|
+
* # @foo-start
|
|
118
|
+
* line2
|
|
119
|
+
* line3
|
|
120
|
+
* # @foo-end
|
|
121
|
+
* line4
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* Would return:
|
|
125
|
+
*
|
|
126
|
+
* ```text
|
|
127
|
+
* line1
|
|
128
|
+
* line4
|
|
129
|
+
* ```
|
|
130
|
+
*/
|
|
131
|
+
function removeLinesBetweenMarkers(string, marker) {
|
|
132
|
+
const lines = string.split("\n");
|
|
133
|
+
const newLines = [];
|
|
134
|
+
let skippingLines = false;
|
|
135
|
+
for (const line of lines) {
|
|
136
|
+
if (line.includes(`${marker}-start`)) {
|
|
137
|
+
skippingLines = true;
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (line.includes(`${marker}-end`)) {
|
|
141
|
+
skippingLines = false;
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
if (!skippingLines) {
|
|
145
|
+
newLines.push(line);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return newLines.join("\n");
|
|
149
|
+
}
|
|
150
|
+
exports.removeLinesBetweenMarkers = removeLinesBetweenMarkers;
|
|
151
|
+
/** Helper function to remove lines from a multi-line string matching a certain other string. */
|
|
152
|
+
function removeLinesMatching(string, match) {
|
|
153
|
+
const lines = string.split("\n");
|
|
154
|
+
const newLines = lines.filter((line) => !line.includes(match));
|
|
155
|
+
return newLines.join("\n");
|
|
156
|
+
}
|
|
157
|
+
exports.removeLinesMatching = removeLinesMatching;
|
|
158
|
+
/**
|
|
159
|
+
* Helper function to repeat code N times. This is faster to type and cleaner than using a for loop.
|
|
160
|
+
*
|
|
161
|
+
* For example:
|
|
162
|
+
*
|
|
163
|
+
* ```ts
|
|
164
|
+
* repeat(10, () => {
|
|
165
|
+
* foo();
|
|
166
|
+
* });
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* The repeated function is passed the index of the iteration, if needed:
|
|
170
|
+
*
|
|
171
|
+
* ```ts
|
|
172
|
+
* repeat(3, (i) => {
|
|
173
|
+
* console.log(i); // Prints "0", "1", "2"
|
|
174
|
+
* });
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
function repeat(n, func) {
|
|
178
|
+
for (let i = 0; i < n; i++) {
|
|
179
|
+
func(i);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
exports.repeat = repeat;
|
|
183
|
+
//# sourceMappingURL=isaacScriptCommonTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isaacScriptCommonTS.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/isaacScriptCommonTS.ts"],"names":[],"mappings":"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"}
|
package/src/json.js
CHANGED
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getProjectPackageJSONField = exports.getJSONC = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
7
6
|
const JSONC = tslib_1.__importStar(require("jsonc-parser"));
|
|
8
7
|
const constants_js_1 = require("./constants.js");
|
|
9
8
|
const file_js_1 = require("./file.js");
|
|
9
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
10
10
|
/**
|
|
11
11
|
* Helper function to parse a file as JSONC. This expects the file to contain an object (i.e. `{}`),
|
|
12
12
|
* not an array or a primitive. The function will terminate the program if any errors occur.
|
|
@@ -20,10 +20,10 @@ function getJSONC(filePath, verbose) {
|
|
|
20
20
|
json = JSONC.parse(fileContents);
|
|
21
21
|
}
|
|
22
22
|
catch (err) {
|
|
23
|
-
(0,
|
|
23
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to parse "${chalk_1.default.green(filePath)}" as JSONC:`, err);
|
|
24
24
|
}
|
|
25
|
-
if (!(0,
|
|
26
|
-
(0,
|
|
25
|
+
if (!(0, isaacScriptCommonTS_js_1.isRecord)(json)) {
|
|
26
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to parse "${chalk_1.default.green(filePath)}", since the contents were not an object.`);
|
|
27
27
|
}
|
|
28
28
|
return json;
|
|
29
29
|
}
|
|
@@ -32,7 +32,7 @@ function getProjectPackageJSONField(fieldName, verbose) {
|
|
|
32
32
|
const packageJSON = getJSONC(constants_js_1.PACKAGE_JSON_PATH, verbose);
|
|
33
33
|
const field = packageJSON[fieldName];
|
|
34
34
|
if (typeof field !== "string") {
|
|
35
|
-
(0,
|
|
35
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to parse the "${fieldName}" field from the "${constants_js_1.PACKAGE_JSON}" file.`);
|
|
36
36
|
}
|
|
37
37
|
return field;
|
|
38
38
|
}
|
package/src/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/json.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/json.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,4DAAsC;AACtC,iDAAiE;AACjE,uCAAqC;AACrC,qEAA2D;AAE3D;;;;;GAKG;AACH,SAAgB,QAAQ,CACtB,QAAgB,EAChB,OAAgB;IAEhB,MAAM,YAAY,GAAG,IAAA,kBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEjD,IAAI,IAAa,CAAC;IAClB,IAAI;QACF,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KAClC;IAAC,OAAO,GAAG,EAAE;QACZ,IAAA,8BAAK,EAAC,oBAAoB,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,IAAA,iCAAQ,EAAC,IAAI,CAAC,EAAE;QACnB,IAAA,8BAAK,EACH,oBAAoB,eAAK,CAAC,KAAK,CAC7B,QAAQ,CACT,2CAA2C,CAC7C,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAtBD,4BAsBC;AAED,SAAgB,0BAA0B,CACxC,SAAiB,EACjB,OAAgB;IAEhB,MAAM,WAAW,GAAG,QAAQ,CAAC,gCAAiB,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAA,8BAAK,EACH,wBAAwB,SAAS,qBAAqB,2BAAY,SAAS,CAC5E,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAbD,gEAaC"}
|
package/src/main.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
6
|
const figlet_1 = tslib_1.__importDefault(require("figlet"));
|
|
7
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
8
7
|
const source_map_support_1 = tslib_1.__importDefault(require("source-map-support"));
|
|
9
8
|
const checkForWindowsTerminalBugs_js_1 = require("./checkForWindowsTerminalBugs.js");
|
|
10
9
|
const Config_js_1 = require("./classes/Config.js");
|
|
@@ -16,6 +15,7 @@ const publish_js_1 = require("./commands/publish/publish.js");
|
|
|
16
15
|
const configFile_js_1 = require("./configFile.js");
|
|
17
16
|
const constants_js_1 = require("./constants.js");
|
|
18
17
|
const exec_js_1 = require("./exec.js");
|
|
18
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
19
19
|
const packageManager_js_1 = require("./packageManager.js");
|
|
20
20
|
const parseArgs_js_1 = require("./parseArgs.js");
|
|
21
21
|
const prompt_js_1 = require("./prompt.js");
|
|
@@ -24,7 +24,7 @@ const validateInIsaacScriptProject_js_1 = require("./validateInIsaacScriptProjec
|
|
|
24
24
|
const validateNodeVersion_js_1 = require("./validateNodeVersion.js");
|
|
25
25
|
const version_js_1 = require("./version.js");
|
|
26
26
|
main().catch((err) => {
|
|
27
|
-
(0,
|
|
27
|
+
(0, isaacScriptCommonTS_js_1.error)(`${constants_js_1.PROJECT_NAME} failed:`, err);
|
|
28
28
|
});
|
|
29
29
|
async function main() {
|
|
30
30
|
source_map_support_1.default.install();
|
package/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/main.ts"],"names":[],"mappings":";;;;AAEA,0DAA0B;AAC1B,4DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/main.ts"],"names":[],"mappings":"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"}
|
package/src/packageManager.js
CHANGED
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getPackageManagerUsedForExistingProject = exports.getPackageManagerUsedForNewProject = exports.getPackageManagerInstallCICommand = exports.getPackageManagerInstallCommand = exports.getPackageManagerAddCommand = exports.getPackageManagerExecCommand = exports.getAllPackageManagerLockFileNames = exports.getPackageManagerLockFileName = exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const command_exists_1 = tslib_1.__importDefault(require("command-exists"));
|
|
6
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
7
6
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
8
7
|
const constants_js_1 = require("./constants.js");
|
|
9
8
|
const PackageManager_js_1 = require("./enums/PackageManager.js");
|
|
10
9
|
const file_js_1 = require("./file.js");
|
|
10
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
11
11
|
const PACKAGE_MANAGER_LOCK_FILE_NAMES = {
|
|
12
12
|
[PackageManager_js_1.PackageManager.NPM]: "package-lock.json",
|
|
13
13
|
[PackageManager_js_1.PackageManager.YARN]: "yarn.lock",
|
|
@@ -79,7 +79,7 @@ function getPackageManagerUsedForNewProject(args) {
|
|
|
79
79
|
exports.getPackageManagerUsedForNewProject = getPackageManagerUsedForNewProject;
|
|
80
80
|
function getPackageManagerUsedForExistingProject(args, verbose) {
|
|
81
81
|
const packageManagerSet = new Set();
|
|
82
|
-
for (const packageManager of (0,
|
|
82
|
+
for (const packageManager of (0, isaacScriptCommonTS_js_1.getEnumValues)(PackageManager_js_1.PackageManager)) {
|
|
83
83
|
const lockFileName = getPackageManagerLockFileName(packageManager);
|
|
84
84
|
const lockFilePath = node_path_1.default.join(constants_js_1.CWD, lockFileName);
|
|
85
85
|
if ((0, file_js_1.fileExists)(lockFilePath, verbose)) {
|
|
@@ -92,7 +92,7 @@ function getPackageManagerUsedForExistingProject(args, verbose) {
|
|
|
92
92
|
.map((packageManager) => getPackageManagerLockFileName(packageManager))
|
|
93
93
|
.map((packageManagerLockFileName) => `"${packageManagerLockFileName}"`)
|
|
94
94
|
.join(" & ");
|
|
95
|
-
(0,
|
|
95
|
+
(0, isaacScriptCommonTS_js_1.error)(`Multiple different kinds of package manager lock files were found (${packageManagerLockFileNames}). You should delete the ones that you are not using so that this program can correctly detect your package manager.`);
|
|
96
96
|
}
|
|
97
97
|
const packageManager = packageManagers[0];
|
|
98
98
|
if (packageManager !== undefined) {
|
|
@@ -106,7 +106,7 @@ function getPackageManagerFromArgs(args) {
|
|
|
106
106
|
if (dev) {
|
|
107
107
|
const packageManagerCommandExists = command_exists_1.default.sync(exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT);
|
|
108
108
|
if (!packageManagerCommandExists) {
|
|
109
|
-
(0,
|
|
109
|
+
(0, isaacScriptCommonTS_js_1.error)(`You specified the "dev" flag, but "${exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT}" does not seem to be a valid command. The IsaacScript monorepo uses ${exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT}, so in order to initiate a linked development mod, you must also have ${exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT} installed. Try running "corepack enable" to install it.`);
|
|
110
110
|
}
|
|
111
111
|
return exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT;
|
|
112
112
|
}
|
|
@@ -114,7 +114,7 @@ function getPackageManagerFromArgs(args) {
|
|
|
114
114
|
if (npm) {
|
|
115
115
|
const npmExists = command_exists_1.default.sync("npm");
|
|
116
116
|
if (!npmExists) {
|
|
117
|
-
(0,
|
|
117
|
+
(0, isaacScriptCommonTS_js_1.error)('You specified the "npm" flag, but "npm" does not seem to be a valid command.');
|
|
118
118
|
}
|
|
119
119
|
return PackageManager_js_1.PackageManager.NPM;
|
|
120
120
|
}
|
|
@@ -122,7 +122,7 @@ function getPackageManagerFromArgs(args) {
|
|
|
122
122
|
if (yarn) {
|
|
123
123
|
const yarnExists = command_exists_1.default.sync("yarn");
|
|
124
124
|
if (!yarnExists) {
|
|
125
|
-
(0,
|
|
125
|
+
(0, isaacScriptCommonTS_js_1.error)('You specified the "yarn" flag, but "yarn" does not seem to be a valid command.');
|
|
126
126
|
}
|
|
127
127
|
return PackageManager_js_1.PackageManager.YARN;
|
|
128
128
|
}
|
|
@@ -130,7 +130,7 @@ function getPackageManagerFromArgs(args) {
|
|
|
130
130
|
if (pnpm) {
|
|
131
131
|
const pnpmExists = command_exists_1.default.sync("pnpm");
|
|
132
132
|
if (!pnpmExists) {
|
|
133
|
-
(0,
|
|
133
|
+
(0, isaacScriptCommonTS_js_1.error)('You specified the "pnpm" flag, but "pnpm" does not seem to be a valid command.');
|
|
134
134
|
}
|
|
135
135
|
return PackageManager_js_1.PackageManager.PNPM;
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/packageManager.ts"],"names":[],"mappings":";;;;AAAA,4EAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/packageManager.ts"],"names":[],"mappings":"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"}
|
package/src/prompt.js
CHANGED
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.getInputInt = exports.getInputString = exports.getInputYesNo = exports.promptInit = void 0;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
9
8
|
const prompt_1 = tslib_1.__importDefault(require("prompt"));
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
10
|
+
const VALID_YES_RESPONSES = new isaacScriptCommonTS_js_1.ReadonlySet(["yes", "ye", "y"]);
|
|
11
|
+
const VALID_NO_RESPONSES = new isaacScriptCommonTS_js_1.ReadonlySet(["no", "n"]);
|
|
12
12
|
function promptInit() {
|
|
13
13
|
// Override some of the prompt library's default values:
|
|
14
14
|
// https://github.com/flatiron/prompt#customizing-your-prompt
|
|
@@ -34,7 +34,7 @@ async function getInputYesNo(msg, defaultValue = true) {
|
|
|
34
34
|
});
|
|
35
35
|
if (typeof response !== "string") {
|
|
36
36
|
console.log(typeof response);
|
|
37
|
-
(0,
|
|
37
|
+
(0, isaacScriptCommonTS_js_1.error)("Failed to get a proper response from the prompt library.");
|
|
38
38
|
}
|
|
39
39
|
const cleanedResponse = response.toLowerCase().trim();
|
|
40
40
|
// Default to true.
|
|
@@ -47,7 +47,7 @@ async function getInputYesNo(msg, defaultValue = true) {
|
|
|
47
47
|
if (VALID_NO_RESPONSES.has(cleanedResponse)) {
|
|
48
48
|
return false;
|
|
49
49
|
}
|
|
50
|
-
(0,
|
|
50
|
+
(0, isaacScriptCommonTS_js_1.error)('Invalid response; must answer "yes" or "no".');
|
|
51
51
|
}
|
|
52
52
|
exports.getInputYesNo = getInputYesNo;
|
|
53
53
|
/** Returns trimmed input. */
|
|
@@ -66,7 +66,7 @@ async function getInputString(msg, defaultValue) {
|
|
|
66
66
|
},
|
|
67
67
|
});
|
|
68
68
|
if (typeof response !== "string") {
|
|
69
|
-
(0,
|
|
69
|
+
(0, isaacScriptCommonTS_js_1.error)("Failed to get a proper response from the prompt library.");
|
|
70
70
|
}
|
|
71
71
|
if (response === "" && defaultValue !== undefined) {
|
|
72
72
|
return defaultValue;
|
|
@@ -77,9 +77,9 @@ exports.getInputString = getInputString;
|
|
|
77
77
|
async function getInputInt(msg, defaultValue = 1) {
|
|
78
78
|
const defaultValueString = defaultValue.toString();
|
|
79
79
|
const string = await getInputString(msg, defaultValueString);
|
|
80
|
-
const int = (0,
|
|
80
|
+
const int = (0, isaacScriptCommonTS_js_1.parseIntSafe)(string);
|
|
81
81
|
if (Number.isNaN(int)) {
|
|
82
|
-
(0,
|
|
82
|
+
(0, isaacScriptCommonTS_js_1.error)("Error: You must enter an integer.");
|
|
83
83
|
}
|
|
84
84
|
return int;
|
|
85
85
|
}
|
package/src/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/prompt.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,sEAAsE;;;;AAEtE,0DAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/prompt.ts"],"names":[],"mappings":"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"}
|
package/src/tsconfig.js
CHANGED
|
@@ -4,8 +4,8 @@ exports.getCustomStagesFromTSConfig = exports.getFirstTSConfigIncludePath = void
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const ajv_1 = tslib_1.__importDefault(require("ajv"));
|
|
6
6
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
8
7
|
const constants_js_1 = require("./constants.js");
|
|
8
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
9
9
|
const json_js_1 = require("./json.js");
|
|
10
10
|
const ADVICE = `Try copying the "${constants_js_1.TSCONFIG_JSON}" from a brand new ${constants_js_1.PROJECT_NAME} project.`;
|
|
11
11
|
const isaacScriptSchema = (0, json_js_1.getJSONC)(constants_js_1.ISAACSCRIPT_SCHEMA_PATH, false);
|
|
@@ -20,8 +20,8 @@ function getIsaacScriptSection(verbose) {
|
|
|
20
20
|
for (const fieldName of ["isaacscript", "isaacScript", "IsaacScript"]) {
|
|
21
21
|
const field = tsConfig[fieldName];
|
|
22
22
|
if (field !== undefined) {
|
|
23
|
-
if (!(0,
|
|
24
|
-
(0,
|
|
23
|
+
if (!(0, isaacScriptCommonTS_js_1.isRecord)(field)) {
|
|
24
|
+
(0, isaacScriptCommonTS_js_1.error)(`Your "${chalk_1.default.green(constants_js_1.TSCONFIG_JSON_PATH)}" file has a non-object value for the "${fieldName}" field, which is surely a mistake. ${ADVICE}`);
|
|
25
25
|
}
|
|
26
26
|
return field;
|
|
27
27
|
}
|
|
@@ -32,17 +32,17 @@ function getFirstTSConfigIncludePath(verbose) {
|
|
|
32
32
|
const tsConfig = getTSConfigJSON(verbose);
|
|
33
33
|
const { include } = tsConfig;
|
|
34
34
|
if (include === undefined) {
|
|
35
|
-
(0,
|
|
35
|
+
(0, isaacScriptCommonTS_js_1.error)(`Your "${chalk_1.default.green(constants_js_1.TSCONFIG_JSON_PATH)}" file does not have an "include" field, which is surely a mistake. ${ADVICE}`);
|
|
36
36
|
}
|
|
37
37
|
if (!Array.isArray(include)) {
|
|
38
|
-
(0,
|
|
38
|
+
(0, isaacScriptCommonTS_js_1.error)(`Your "${chalk_1.default.green(constants_js_1.TSCONFIG_JSON_PATH)}" file has an "include" field that is not an array, which is surely a mistake. ${ADVICE}`);
|
|
39
39
|
}
|
|
40
40
|
const firstInclude = include[0];
|
|
41
41
|
if (firstInclude === undefined) {
|
|
42
|
-
(0,
|
|
42
|
+
(0, isaacScriptCommonTS_js_1.error)(`Your "${chalk_1.default.green(constants_js_1.TSCONFIG_JSON_PATH)}" file has an empty "include" field, which is surely a mistake. ${ADVICE}`);
|
|
43
43
|
}
|
|
44
44
|
if (typeof firstInclude !== "string") {
|
|
45
|
-
(0,
|
|
45
|
+
(0, isaacScriptCommonTS_js_1.error)(`Your "${chalk_1.default.green(constants_js_1.TSCONFIG_JSON_PATH)}" file has a non-string "include" value, which is surely a mistake. ${ADVICE}`);
|
|
46
46
|
}
|
|
47
47
|
return firstInclude;
|
|
48
48
|
}
|
|
@@ -62,7 +62,7 @@ function getCustomStagesFromTSConfig(verbose) {
|
|
|
62
62
|
if (!valid) {
|
|
63
63
|
console.error('Your "isaacscript" section in the "tsconfig.json" file has the following errors:');
|
|
64
64
|
console.error(schemaValidate.errors);
|
|
65
|
-
(0,
|
|
65
|
+
(0, isaacScriptCommonTS_js_1.error)("For more information, see the custom stages documentation on the website.");
|
|
66
66
|
}
|
|
67
67
|
// "customStages" is an optional field.
|
|
68
68
|
const { customStages } = isaacScriptSection;
|
|
@@ -71,30 +71,30 @@ function getCustomStagesFromTSConfig(verbose) {
|
|
|
71
71
|
}
|
|
72
72
|
// The type of "customStages" should be validated by Ajv, but check again just in case.
|
|
73
73
|
if (!Array.isArray(customStages)) {
|
|
74
|
-
(0,
|
|
74
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to parse the "customStages" field, since it was not an array. ${ADVICE}.`);
|
|
75
75
|
}
|
|
76
76
|
// Perform some extra validation that can't be automatically done by Ajv.
|
|
77
77
|
for (const customStageTSConfig of customStages) {
|
|
78
78
|
const { name } = customStageTSConfig;
|
|
79
79
|
if (name === "") {
|
|
80
|
-
(0,
|
|
80
|
+
(0, isaacScriptCommonTS_js_1.error)(chalk_1.default.red("One of the custom stages has a blank name, which is not allowed."));
|
|
81
81
|
}
|
|
82
82
|
const { xmlPath } = customStageTSConfig;
|
|
83
83
|
if (xmlPath === "") {
|
|
84
|
-
(0,
|
|
84
|
+
(0, isaacScriptCommonTS_js_1.error)(chalk_1.default.red(`The "${name}" custom stage has a blank "xmlPath" field, which is not allowed.`));
|
|
85
85
|
}
|
|
86
86
|
const { roomVariantPrefix } = customStageTSConfig;
|
|
87
87
|
if (roomVariantPrefix < 100 || roomVariantPrefix > 999) {
|
|
88
|
-
(0,
|
|
88
|
+
(0, isaacScriptCommonTS_js_1.error)(chalk_1.default.red(`The "${name}" custom stage has an invalid value for the "roomVariantPrefix" field: ${roomVariantPrefix}`));
|
|
89
89
|
}
|
|
90
90
|
const { baseStage } = customStageTSConfig;
|
|
91
91
|
if (baseStage !== undefined && (baseStage < 2 || baseStage > 13)) {
|
|
92
|
-
(0,
|
|
92
|
+
(0, isaacScriptCommonTS_js_1.error)(`The "${name}" custom stage has an invalid value for the "baseStage" field: ${baseStage}`);
|
|
93
93
|
}
|
|
94
94
|
const { baseStageType } = customStageTSConfig;
|
|
95
95
|
if (baseStageType !== undefined &&
|
|
96
96
|
(baseStageType < 0 || baseStageType > 5)) {
|
|
97
|
-
(0,
|
|
97
|
+
(0, isaacScriptCommonTS_js_1.error)(`The "${name}" custom stage has an invalid value for the "baseStageType" field: ${baseStageType}`);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
return customStages;
|
package/src/tsconfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/tsconfig.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/tsconfig.ts"],"names":[],"mappings":"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"}
|
package/src/utils.js
CHANGED
|
@@ -5,9 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const moment_1 = tslib_1.__importDefault(require("moment"));
|
|
6
6
|
const constants_js_1 = require("./constants.js");
|
|
7
7
|
function getModTargetDirectoryName(config) {
|
|
8
|
-
return config.customTargetModDirectoryName
|
|
9
|
-
? constants_js_1.CURRENT_DIRECTORY_NAME
|
|
10
|
-
: config.customTargetModDirectoryName;
|
|
8
|
+
return config.customTargetModDirectoryName ?? constants_js_1.CURRENT_DIRECTORY_NAME;
|
|
11
9
|
}
|
|
12
10
|
exports.getModTargetDirectoryName = getModTargetDirectoryName;
|
|
13
11
|
function getTime() {
|
package/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/utils.ts"],"names":[],"mappings":";;;;AAAA,4DAA4B;AAE5B,iDAAwD;AAExD,SAAgB,yBAAyB,CAAC,MAAc;IACtD,OAAO,MAAM,CAAC,4BAA4B,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/utils.ts"],"names":[],"mappings":";;;;AAAA,4DAA4B;AAE5B,iDAAwD;AAExD,SAAgB,yBAAyB,CAAC,MAAc;IACtD,OAAO,MAAM,CAAC,4BAA4B,IAAI,qCAAsB,CAAC;AACvE,CAAC;AAFD,8DAEC;AAED,SAAgB,OAAO;IACrB,OAAO,IAAA,gBAAM,GAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB;AAC3D,CAAC;AAFD,0BAEC"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.validateNodeVersion = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
7
6
|
const constants_js_1 = require("./constants.js");
|
|
7
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
8
8
|
const REQUIRED_NODE_JS_MAJOR_VERSION = 16;
|
|
9
9
|
/**
|
|
10
10
|
* This program requires Node to be at least v16.0.0, since that is the version that added the
|
|
@@ -12,9 +12,9 @@ const REQUIRED_NODE_JS_MAJOR_VERSION = 16;
|
|
|
12
12
|
*/
|
|
13
13
|
function validateNodeVersion() {
|
|
14
14
|
const { version } = process;
|
|
15
|
-
const semanticVersion = (0,
|
|
15
|
+
const semanticVersion = (0, isaacScriptCommonTS_js_1.parseSemanticVersion)(version);
|
|
16
16
|
if (semanticVersion === undefined) {
|
|
17
|
-
(0,
|
|
17
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to parse the Node version: ${version}`);
|
|
18
18
|
}
|
|
19
19
|
const { majorVersion } = semanticVersion;
|
|
20
20
|
if (majorVersion >= REQUIRED_NODE_JS_MAJOR_VERSION) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateNodeVersion.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/validateNodeVersion.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"validateNodeVersion.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/validateNodeVersion.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,iDAA8C;AAC9C,qEAAuE;AAEvE,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,SAAgB,mBAAmB;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,MAAM,eAAe,GAAG,IAAA,6CAAoB,EAAC,OAAO,CAAC,CAAC;IACtD,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,IAAA,8BAAK,EAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC;IACzC,IAAI,YAAY,IAAI,8BAA8B,EAAE;QAClD,OAAO;KACR;IAED,OAAO,CAAC,KAAK,CAAC,4BAA4B,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CACX,GAAG,2BAAY,kCAAkC,eAAK,CAAC,GAAG,CACxD,GAAG,8BAA8B,MAAM,CACxC,cAAc,CAChB,CAAC;IACF,OAAO,CAAC,KAAK,CACX,uDAAuD,2BAAY,GAAG,CACvE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAvBD,kDAuBC"}
|
package/src/version.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVersionOfThisPackage = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const isaacscript_common_ts_1 = require("isaacscript-common-ts");
|
|
6
5
|
const path = tslib_1.__importStar(require("node:path"));
|
|
7
6
|
const constants_js_1 = require("./constants.js");
|
|
7
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
8
8
|
const json_js_1 = require("./json.js");
|
|
9
9
|
/** Returns the version from the "package.json" file. (There is no "v" prefix.) */
|
|
10
10
|
function getVersionOfThisPackage(verbose) {
|
|
@@ -12,7 +12,7 @@ function getVersionOfThisPackage(verbose) {
|
|
|
12
12
|
const packageJSON = (0, json_js_1.getJSONC)(packageJSONPath, verbose);
|
|
13
13
|
const { version } = packageJSON;
|
|
14
14
|
if (typeof version !== "string") {
|
|
15
|
-
(0,
|
|
15
|
+
(0, isaacScriptCommonTS_js_1.error)('Failed to parse the version from this package\'s "package.json" file.');
|
|
16
16
|
}
|
|
17
17
|
return version;
|
|
18
18
|
}
|
package/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/version.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/version.ts"],"names":[],"mappings":";;;;AAAA,wDAAkC;AAClC,iDAAyD;AACzD,qEAAiD;AACjD,uCAAqC;AAErC,kFAAkF;AAClF,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,wBAAS,EAAE,2BAAY,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAA,kBAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;IAChC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,IAAA,8BAAK,EACH,uEAAuE,CACxE,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAZD,0DAYC"}
|