isaacscript 3.6.50 → 3.6.52
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/static-mod/_eslintrc.cjs +0 -3
- package/file-templates/static-mod/lint.sh +4 -5
- package/file-templates/static-mod/prettier.config.mjs +36 -0
- package/file-templates/static-ts/_eslintrc.cjs +2 -3
- package/file-templates/static-ts/lint.sh +4 -5
- package/file-templates/static-ts/prettier.config.mjs +21 -0
- package/package.json +6 -8
- 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 +5 -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 +9 -9
- 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 +16 -15
- package/src/commands/monitor/monitor.js.map +1 -1
- package/src/commands/monitor/saveDatWriter/saveDatWriter.js +3 -3
- package/src/commands/monitor/saveDatWriter/saveDatWriter.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/constants.js +30 -30
- package/src/constants.js.map +1 -1
- package/src/customStage.js +26 -26
- 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/enums/PackageManager.js +3 -3
- package/src/exec.js +8 -8
- package/src/exec.js.map +1 -1
- package/src/file.js +32 -32
- 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 +26 -26
- package/src/packageManager.js.map +1 -1
- package/src/plugins/addCrashDebugStatements.js +2 -3
- package/src/plugins/addCrashDebugStatements.js.map +1 -1
- package/src/plugins/addIsaacScriptCommentHeader.js +0 -1
- package/src/plugins/addIsaacScriptCommentHeader.js.map +1 -1
- package/src/plugins/addIsaacScriptCommentHeaderCommon.js +4 -5
- package/src/plugins/addIsaacScriptCommentHeaderCommon.js.map +1 -1
- package/src/plugins/noExtendedEnums.js +0 -1
- package/src/plugins/noExtendedEnums.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 +4 -4
- 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
package/src/file.js
CHANGED
|
@@ -3,21 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.writeFileTry = exports.writeFile = exports.touch = exports.renameFile = exports.readFile = exports.makeDir = exports.isSubDirOf = exports.isLink = exports.isFile = exports.isDir = exports.getHashOfFile = exports.getDirList = exports.fileExists = exports.deleteFileOrDirectory = exports.copyFile = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
6
|
+
const node_crypto_1 = tslib_1.__importDefault(require("node:crypto"));
|
|
7
|
+
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
9
|
+
const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
|
|
10
10
|
function copyFile(srcPath, dstPath, verbose) {
|
|
11
11
|
if (verbose) {
|
|
12
12
|
console.log(`Copying: ${srcPath} --> ${dstPath}`);
|
|
13
13
|
}
|
|
14
14
|
try {
|
|
15
|
-
|
|
15
|
+
node_fs_1.default.cpSync(srcPath, dstPath, {
|
|
16
16
|
recursive: true,
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
catch (err) {
|
|
20
|
-
(0,
|
|
20
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to copy file or directory "${chalk_1.default.green(srcPath)}" to "${chalk_1.default.green(dstPath)}":`, err);
|
|
21
21
|
}
|
|
22
22
|
if (verbose) {
|
|
23
23
|
console.log(`Copied: ${srcPath} --> ${dstPath}`);
|
|
@@ -29,12 +29,12 @@ function deleteFileOrDirectory(filePath, verbose) {
|
|
|
29
29
|
console.log(`Deleting: ${filePath}`);
|
|
30
30
|
}
|
|
31
31
|
try {
|
|
32
|
-
|
|
32
|
+
node_fs_1.default.rmSync(filePath, {
|
|
33
33
|
recursive: true,
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
catch (err) {
|
|
37
|
-
(0,
|
|
37
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to delete file or directory "${chalk_1.default.green(filePath)}":`, err);
|
|
38
38
|
}
|
|
39
39
|
if (verbose) {
|
|
40
40
|
console.log(`Deleted: ${filePath}`);
|
|
@@ -47,10 +47,10 @@ function fileExists(filePath, verbose) {
|
|
|
47
47
|
}
|
|
48
48
|
let pathExists;
|
|
49
49
|
try {
|
|
50
|
-
pathExists =
|
|
50
|
+
pathExists = node_fs_1.default.existsSync(filePath);
|
|
51
51
|
}
|
|
52
52
|
catch (err) {
|
|
53
|
-
(0,
|
|
53
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to check if "${chalk_1.default.green(filePath)}" exists:`, err);
|
|
54
54
|
}
|
|
55
55
|
if (verbose) {
|
|
56
56
|
console.log(`Path exists: ${pathExists}`);
|
|
@@ -68,10 +68,10 @@ function getDirList(dirPath, verbose) {
|
|
|
68
68
|
}
|
|
69
69
|
let fileList;
|
|
70
70
|
try {
|
|
71
|
-
fileList =
|
|
71
|
+
fileList = node_fs_1.default.readdirSync(dirPath);
|
|
72
72
|
}
|
|
73
73
|
catch (err) {
|
|
74
|
-
(0,
|
|
74
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to get the files in the "${chalk_1.default.green(dirPath)}" directory:`, err);
|
|
75
75
|
}
|
|
76
76
|
if (verbose) {
|
|
77
77
|
console.log(`Got a directory list from: ${dirPath}`);
|
|
@@ -85,10 +85,10 @@ function getFileStats(filePath, verbose) {
|
|
|
85
85
|
}
|
|
86
86
|
let fileStats;
|
|
87
87
|
try {
|
|
88
|
-
fileStats =
|
|
88
|
+
fileStats = node_fs_1.default.statSync(filePath);
|
|
89
89
|
}
|
|
90
90
|
catch (err) {
|
|
91
|
-
(0,
|
|
91
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to get the file stats for "${chalk_1.default.green(filePath)}":`, err);
|
|
92
92
|
}
|
|
93
93
|
if (verbose) {
|
|
94
94
|
console.log(`Got file stats from: ${filePath}`);
|
|
@@ -96,8 +96,8 @@ function getFileStats(filePath, verbose) {
|
|
|
96
96
|
return fileStats;
|
|
97
97
|
}
|
|
98
98
|
function getHashOfFile(filePath) {
|
|
99
|
-
const fileBuffer =
|
|
100
|
-
const hashSum =
|
|
99
|
+
const fileBuffer = node_fs_1.default.readFileSync(filePath);
|
|
100
|
+
const hashSum = node_crypto_1.default.createHash("sha256");
|
|
101
101
|
hashSum.update(fileBuffer);
|
|
102
102
|
return hashSum.digest("hex");
|
|
103
103
|
}
|
|
@@ -112,10 +112,10 @@ function getLinkedFileStats(filePath, verbose) {
|
|
|
112
112
|
}
|
|
113
113
|
let fileStats;
|
|
114
114
|
try {
|
|
115
|
-
fileStats =
|
|
115
|
+
fileStats = node_fs_1.default.lstatSync(filePath);
|
|
116
116
|
}
|
|
117
117
|
catch (err) {
|
|
118
|
-
(0,
|
|
118
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to get the linked file stats for "${chalk_1.default.green(filePath)}":`, err);
|
|
119
119
|
}
|
|
120
120
|
if (verbose) {
|
|
121
121
|
console.log(`Got linked file stats from: ${filePath}`);
|
|
@@ -139,8 +139,8 @@ function isLink(filePath, verbose) {
|
|
|
139
139
|
}
|
|
140
140
|
exports.isLink = isLink;
|
|
141
141
|
function isSubDirOf(dir, parent) {
|
|
142
|
-
const relative =
|
|
143
|
-
return (relative !== "" && !relative.startsWith("..") && !
|
|
142
|
+
const relative = node_path_1.default.relative(parent, dir);
|
|
143
|
+
return (relative !== "" && !relative.startsWith("..") && !node_path_1.default.isAbsolute(relative));
|
|
144
144
|
}
|
|
145
145
|
exports.isSubDirOf = isSubDirOf;
|
|
146
146
|
/** Will recursively make as many subdirectories as needed. */
|
|
@@ -149,12 +149,12 @@ function makeDir(dirPath, verbose) {
|
|
|
149
149
|
console.log(`Making a directory: ${dirPath}`);
|
|
150
150
|
}
|
|
151
151
|
try {
|
|
152
|
-
|
|
152
|
+
node_fs_1.default.mkdirSync(dirPath, {
|
|
153
153
|
recursive: true,
|
|
154
154
|
});
|
|
155
155
|
}
|
|
156
156
|
catch (err) {
|
|
157
|
-
(0,
|
|
157
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to create the "${chalk_1.default.green(dirPath)}" directory:`, err);
|
|
158
158
|
}
|
|
159
159
|
if (verbose) {
|
|
160
160
|
console.log(`Made a directory: ${dirPath}`);
|
|
@@ -167,10 +167,10 @@ function readFile(filePath, verbose) {
|
|
|
167
167
|
}
|
|
168
168
|
let fileContents;
|
|
169
169
|
try {
|
|
170
|
-
fileContents =
|
|
170
|
+
fileContents = node_fs_1.default.readFileSync(filePath, "utf8");
|
|
171
171
|
}
|
|
172
172
|
catch (err) {
|
|
173
|
-
(0,
|
|
173
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to read the "${chalk_1.default.green(filePath)}" file:`, err);
|
|
174
174
|
}
|
|
175
175
|
if (verbose) {
|
|
176
176
|
console.log(`Read a file: ${filePath}`);
|
|
@@ -183,10 +183,10 @@ function renameFile(srcPath, dstPath, verbose) {
|
|
|
183
183
|
console.log(`Renaming: ${srcPath} --> ${dstPath}`);
|
|
184
184
|
}
|
|
185
185
|
try {
|
|
186
|
-
|
|
186
|
+
node_fs_1.default.renameSync(srcPath, dstPath);
|
|
187
187
|
}
|
|
188
188
|
catch (err) {
|
|
189
|
-
(0,
|
|
189
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to rename "${chalk_1.default.green(srcPath)}" to "${chalk_1.default.green(dstPath)}":`, err);
|
|
190
190
|
}
|
|
191
191
|
if (verbose) {
|
|
192
192
|
console.log(`Renamed: ${srcPath} --> ${dstPath}`);
|
|
@@ -199,12 +199,12 @@ function touch(filePath, verbose) {
|
|
|
199
199
|
}
|
|
200
200
|
if (fileExists(filePath, verbose)) {
|
|
201
201
|
try {
|
|
202
|
-
|
|
202
|
+
node_fs_1.default.accessSync(filePath);
|
|
203
203
|
const now = new Date();
|
|
204
|
-
|
|
204
|
+
node_fs_1.default.utimesSync(filePath, now, now);
|
|
205
205
|
}
|
|
206
206
|
catch (err) {
|
|
207
|
-
(0,
|
|
207
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to touch the "${chalk_1.default.green(filePath)}" file:`, err);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
else {
|
|
@@ -220,10 +220,10 @@ function writeFile(filePath, data, verbose) {
|
|
|
220
220
|
console.log(`Writing data to: ${filePath}`);
|
|
221
221
|
}
|
|
222
222
|
try {
|
|
223
|
-
|
|
223
|
+
node_fs_1.default.writeFileSync(filePath, data);
|
|
224
224
|
}
|
|
225
225
|
catch (err) {
|
|
226
|
-
(0,
|
|
226
|
+
(0, isaacScriptCommonTS_js_1.error)(`Failed to write to the "${chalk_1.default.green(filePath)}" file:`, err);
|
|
227
227
|
}
|
|
228
228
|
if (verbose) {
|
|
229
229
|
console.log(`Wrote data to: ${filePath}`);
|
|
@@ -238,7 +238,7 @@ function writeFileTry(filePath, data, verbose) {
|
|
|
238
238
|
if (verbose) {
|
|
239
239
|
console.log(`Writing data to: ${filePath}`);
|
|
240
240
|
}
|
|
241
|
-
|
|
241
|
+
node_fs_1.default.writeFileSync(filePath, data);
|
|
242
242
|
if (verbose) {
|
|
243
243
|
console.log(`Wrote data to: ${filePath}`);
|
|
244
244
|
}
|
package/src/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/file.ts"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 =
|
|
13
|
+
// eslint-disable-next-line prefer-named-capture-group
|
|
14
|
+
/^([a-z](?![\d])|[\d](?![a-z]))+(-?([a-z](?![\d])|[\d](?![a-z])))*$|^$/;
|
|
15
|
+
/**
|
|
16
|
+
* Helper function to print out an error message and then exit the program.
|
|
17
|
+
*
|
|
18
|
+
* All of the arguments will be directly passed to the `console.error` function.
|
|
19
|
+
*/
|
|
20
|
+
function error(...args) {
|
|
21
|
+
console.error(...args);
|
|
22
|
+
return process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
exports.error = error;
|
|
25
|
+
/**
|
|
26
|
+
* Helper function to get the only the values of an enum.
|
|
27
|
+
*
|
|
28
|
+
* (By default, TypeScript will put the keys inside of the values of a number-based enum, so those
|
|
29
|
+
* have to be filtered out.)
|
|
30
|
+
*
|
|
31
|
+
* This function will work properly for both number and string enums.
|
|
32
|
+
*/
|
|
33
|
+
function getEnumValues(transpiledEnum) {
|
|
34
|
+
const values = Object.values(transpiledEnum);
|
|
35
|
+
const numberValues = values.filter((value) => typeof value === "number");
|
|
36
|
+
// If there are no number values, then this must be a string enum, and no filtration is required.
|
|
37
|
+
const valuesToReturn = numberValues.length > 0 ? numberValues : values;
|
|
38
|
+
return valuesToReturn;
|
|
39
|
+
}
|
|
40
|
+
exports.getEnumValues = getEnumValues;
|
|
41
|
+
/** From: https://stackoverflow.com/questions/1731190/check-if-a-string-has-white-space */
|
|
42
|
+
function hasWhiteSpace(s) {
|
|
43
|
+
return /\s/g.test(s);
|
|
44
|
+
}
|
|
45
|
+
exports.hasWhiteSpace = hasWhiteSpace;
|
|
46
|
+
/** Kebab case is the naming style of using all lowercase and hyphens, like "foo-bar". */
|
|
47
|
+
function isKebabCase(string) {
|
|
48
|
+
return KEBAB_CASE_REGEX.test(string);
|
|
49
|
+
}
|
|
50
|
+
exports.isKebabCase = isKebabCase;
|
|
51
|
+
/** Helper function to narrow `unknown` to `Record`. */
|
|
52
|
+
function isRecord(object) {
|
|
53
|
+
return (typeof object === "object" && object !== null && !Array.isArray(object));
|
|
54
|
+
}
|
|
55
|
+
exports.isRecord = isRecord;
|
|
56
|
+
/**
|
|
57
|
+
* This is a more reliable version of `parseInt`. By default, `parseInt('1a')` will return "1",
|
|
58
|
+
* which is unexpected. This returns either an integer or NaN.
|
|
59
|
+
*/
|
|
60
|
+
function parseIntSafe(input) {
|
|
61
|
+
if (typeof input !== "string") {
|
|
62
|
+
return NaN;
|
|
63
|
+
}
|
|
64
|
+
// Remove all leading and trailing whitespace.
|
|
65
|
+
let trimmedInput = input.trim();
|
|
66
|
+
const isNegativeNumber = trimmedInput.startsWith("-");
|
|
67
|
+
if (isNegativeNumber) {
|
|
68
|
+
// Remove the leading minus sign before we match the regular expression.
|
|
69
|
+
trimmedInput = trimmedInput.substring(1);
|
|
70
|
+
}
|
|
71
|
+
if (/^\d+$/.exec(trimmedInput) === null) {
|
|
72
|
+
// "\d" matches any digit (same as "[0-9]").
|
|
73
|
+
return NaN;
|
|
74
|
+
}
|
|
75
|
+
if (isNegativeNumber) {
|
|
76
|
+
// Add the leading minus sign back.
|
|
77
|
+
trimmedInput = `-${trimmedInput}`;
|
|
78
|
+
}
|
|
79
|
+
return Number.parseInt(trimmedInput, 10);
|
|
80
|
+
}
|
|
81
|
+
exports.parseIntSafe = parseIntSafe;
|
|
82
|
+
/**
|
|
83
|
+
* Helper function to parse a Semantic Versioning string into its individual constituents. Returns
|
|
84
|
+
* undefined if the submitted string was not a proper Semantic Version string.
|
|
85
|
+
*
|
|
86
|
+
* https://semver.org/
|
|
87
|
+
*/
|
|
88
|
+
function parseSemanticVersion(versionString) {
|
|
89
|
+
const match = versionString.match(/^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/);
|
|
90
|
+
if (match === null || match.groups === undefined) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const { major, minor, patch } = match.groups;
|
|
94
|
+
const majorVersion = parseIntSafe(major ?? "");
|
|
95
|
+
if (Number.isNaN(majorVersion)) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
const minorVersion = parseIntSafe(minor ?? "");
|
|
99
|
+
if (Number.isNaN(minorVersion)) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const patchVersion = parseIntSafe(patch ?? "");
|
|
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,22 +3,22 @@ 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
|
-
[PackageManager_js_1.PackageManager.
|
|
13
|
-
[PackageManager_js_1.PackageManager.
|
|
14
|
-
[PackageManager_js_1.PackageManager.
|
|
12
|
+
[PackageManager_js_1.PackageManager.npm]: "package-lock.json",
|
|
13
|
+
[PackageManager_js_1.PackageManager.yarn]: "yarn.lock",
|
|
14
|
+
[PackageManager_js_1.PackageManager.pnpm]: "pnpm-lock.yaml",
|
|
15
15
|
};
|
|
16
16
|
const PACKAGE_MANAGER_EXEC_COMMANDS = {
|
|
17
|
-
[PackageManager_js_1.PackageManager.
|
|
18
|
-
[PackageManager_js_1.PackageManager.
|
|
19
|
-
[PackageManager_js_1.PackageManager.
|
|
17
|
+
[PackageManager_js_1.PackageManager.npm]: "npx",
|
|
18
|
+
[PackageManager_js_1.PackageManager.yarn]: "npx",
|
|
19
|
+
[PackageManager_js_1.PackageManager.pnpm]: "pnpm exec",
|
|
20
20
|
};
|
|
21
|
-
exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT = PackageManager_js_1.PackageManager.
|
|
21
|
+
exports.PACKAGE_MANAGER_USED_FOR_ISAACSCRIPT = PackageManager_js_1.PackageManager.yarn;
|
|
22
22
|
function getPackageManagerLockFileName(packageManager) {
|
|
23
23
|
return PACKAGE_MANAGER_LOCK_FILE_NAMES[packageManager];
|
|
24
24
|
}
|
|
@@ -33,13 +33,13 @@ function getPackageManagerExecCommand(packageManager) {
|
|
|
33
33
|
exports.getPackageManagerExecCommand = getPackageManagerExecCommand;
|
|
34
34
|
function getPackageManagerAddCommand(packageManager, dependency) {
|
|
35
35
|
switch (packageManager) {
|
|
36
|
-
case PackageManager_js_1.PackageManager.
|
|
36
|
+
case PackageManager_js_1.PackageManager.npm: {
|
|
37
37
|
return `npm install ${dependency} --save`;
|
|
38
38
|
}
|
|
39
|
-
case PackageManager_js_1.PackageManager.
|
|
39
|
+
case PackageManager_js_1.PackageManager.yarn: {
|
|
40
40
|
return `yarn add ${dependency}`;
|
|
41
41
|
}
|
|
42
|
-
case PackageManager_js_1.PackageManager.
|
|
42
|
+
case PackageManager_js_1.PackageManager.pnpm: {
|
|
43
43
|
return `pnpm add ${dependency}`;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -51,13 +51,13 @@ function getPackageManagerInstallCommand(packageManager) {
|
|
|
51
51
|
exports.getPackageManagerInstallCommand = getPackageManagerInstallCommand;
|
|
52
52
|
function getPackageManagerInstallCICommand(packageManager) {
|
|
53
53
|
switch (packageManager) {
|
|
54
|
-
case PackageManager_js_1.PackageManager.
|
|
54
|
+
case PackageManager_js_1.PackageManager.npm: {
|
|
55
55
|
return "npm ci";
|
|
56
56
|
}
|
|
57
|
-
case PackageManager_js_1.PackageManager.
|
|
57
|
+
case PackageManager_js_1.PackageManager.yarn: {
|
|
58
58
|
return "yarn install --frozen-lockfile";
|
|
59
59
|
}
|
|
60
|
-
case PackageManager_js_1.PackageManager.
|
|
60
|
+
case PackageManager_js_1.PackageManager.pnpm: {
|
|
61
61
|
return "pnpm install --frozen-lockfile";
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -69,17 +69,17 @@ function getPackageManagerUsedForNewProject(args) {
|
|
|
69
69
|
return packageManagerFromArgs;
|
|
70
70
|
}
|
|
71
71
|
if (command_exists_1.default.sync("yarn")) {
|
|
72
|
-
return PackageManager_js_1.PackageManager.
|
|
72
|
+
return PackageManager_js_1.PackageManager.yarn;
|
|
73
73
|
}
|
|
74
74
|
if (command_exists_1.default.sync("pnpm")) {
|
|
75
|
-
return PackageManager_js_1.PackageManager.
|
|
75
|
+
return PackageManager_js_1.PackageManager.pnpm;
|
|
76
76
|
}
|
|
77
|
-
return PackageManager_js_1.PackageManager.
|
|
77
|
+
return PackageManager_js_1.PackageManager.npm;
|
|
78
78
|
}
|
|
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,25 +114,25 @@ 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
|
-
return PackageManager_js_1.PackageManager.
|
|
119
|
+
return PackageManager_js_1.PackageManager.npm;
|
|
120
120
|
}
|
|
121
121
|
const yarn = args.yarn === true;
|
|
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
|
-
return PackageManager_js_1.PackageManager.
|
|
127
|
+
return PackageManager_js_1.PackageManager.yarn;
|
|
128
128
|
}
|
|
129
129
|
const pnpm = args.pnpm === true;
|
|
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
|
-
return PackageManager_js_1.PackageManager.
|
|
135
|
+
return PackageManager_js_1.PackageManager.pnpm;
|
|
136
136
|
}
|
|
137
137
|
return undefined;
|
|
138
138
|
}
|