isaacscript 3.16.0 → 3.16.1-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/checkForWindowsTerminalBugs.js +57 -0
  2. package/{src → dist}/classes/Config.js +1 -6
  3. package/dist/classes/ValidatedConfig.js +1 -0
  4. package/{src → dist}/commands/check/check.js +60 -68
  5. package/dist/commands/check/check.test.js +86 -0
  6. package/dist/commands/copy/copy.js +29 -0
  7. package/dist/commands/init/checkIfProjectPathExists.js +21 -0
  8. package/dist/commands/init/checkModSubdirectory.js +9 -0
  9. package/dist/commands/init/checkModTargetDirectory.js +24 -0
  10. package/dist/commands/init/createProject.js +199 -0
  11. package/dist/commands/init/getAuthorName.js +22 -0
  12. package/dist/commands/init/getModsDir.js +48 -0
  13. package/dist/commands/init/getProjectPath.js +84 -0
  14. package/dist/commands/init/init.js +73 -0
  15. package/dist/commands/init/installVSCodeExtensions.js +27 -0
  16. package/dist/commands/init/promptSaveSlot.js +17 -0
  17. package/{src → dist}/commands/init/promptVSCode.js +5 -10
  18. package/dist/commands/monitor/copyWatcherMod.js +31 -0
  19. package/dist/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +44 -0
  20. package/dist/commands/monitor/monitor.js +154 -0
  21. package/{src → dist}/commands/monitor/notifyGame.js +14 -22
  22. package/{src → dist}/commands/monitor/saveDatWriter/saveDatWriter.js +24 -27
  23. package/dist/commands/monitor/saveDatWriter/types.js +1 -0
  24. package/dist/commands/monitor/spawnModDirectorySyncer.js +31 -0
  25. package/dist/commands/monitor/spawnSaveDatWriter.js +29 -0
  26. package/dist/commands/monitor/spawnTSTLWatcher.js +74 -0
  27. package/dist/commands/monitor/touchWatcherSaveDatFiles.js +15 -0
  28. package/dist/commands/publish/isaacscriptMod.js +90 -0
  29. package/dist/commands/publish/prePublish.js +105 -0
  30. package/dist/commands/publish/publish.js +39 -0
  31. package/dist/commands/publish/validate.js +46 -0
  32. package/dist/common.js +65 -0
  33. package/dist/configFile.js +54 -0
  34. package/dist/constants.js +61 -0
  35. package/dist/customStage.js +298 -0
  36. package/dist/dev.js +10 -0
  37. package/{src/enums → dist/enums/copied}/DoorSlot.js +5 -6
  38. package/dist/enums/copied/DoorSlotFlag.js +35 -0
  39. package/{src/enums → dist/enums/copied}/RoomShape.js +5 -6
  40. package/{src → dist}/exec.js +19 -28
  41. package/dist/git.js +133 -0
  42. package/dist/interfaces/GitHubCLIHostsYAML.js +1 -0
  43. package/dist/interfaces/IsaacScriptTSConfig.js +1 -0
  44. package/dist/interfaces/ShadersXML.js +1 -0
  45. package/dist/interfaces/copied/CustomStageTSConfig.js +4 -0
  46. package/dist/interfaces/copied/JSONRoomsFile.js +4 -0
  47. package/dist/main.js +132 -0
  48. package/dist/objects/copied/doorSlotToDoorSlotFlag.js +16 -0
  49. package/dist/objects/copied/roomShapeToDoorSlotCoordinates.js +112 -0
  50. package/dist/packageManager.js +68 -0
  51. package/{src → dist}/parseArgs.js +36 -15
  52. package/dist/prompt.js +79 -0
  53. package/dist/tsconfig.js +98 -0
  54. package/dist/types/Command.js +4 -0
  55. package/dist/utils.js +8 -0
  56. package/dist/validateInIsaacScriptProject.js +29 -0
  57. package/dist/validateNodeVersion.js +20 -0
  58. package/file-templates/dynamic/.github/workflows/setup/action.yml +21 -0
  59. package/file-templates/dynamic/README.mod.md +4 -3
  60. package/file-templates/dynamic/_gitignore +0 -2
  61. package/file-templates/dynamic/package.mod.json +8 -0
  62. package/file-templates/dynamic/package.ts.json +5 -1
  63. package/file-templates/{dynamic → static}/.github/workflows/ci.yml +10 -38
  64. package/file-templates/static/scripts/tsconfig.json +28 -0
  65. package/file-templates/static-mod/.vscode/settings.json +1 -1
  66. package/file-templates/static-mod/{_cspell.json → _cspell.jsonc} +2 -2
  67. package/file-templates/static-mod/_eslintrc.cjs +1 -1
  68. package/file-templates/static-mod/prettier.config.mjs +6 -1
  69. package/file-templates/static-mod/scripts/lint.ts +36 -0
  70. package/file-templates/static-mod/tsconfig.json +5 -5
  71. package/file-templates/static-ts/.vscode/settings.json +1 -1
  72. package/file-templates/static-ts/{_cspell.json → _cspell.jsonc} +5 -5
  73. package/file-templates/static-ts/_eslintrc.cjs +1 -1
  74. package/file-templates/static-ts/knip.jsonc +6 -0
  75. package/file-templates/static-ts/prettier.config.mjs +6 -1
  76. package/file-templates/static-ts/scripts/lint.ts +30 -0
  77. package/file-templates/static-ts/tsconfig.json +3 -3
  78. package/package.json +27 -9
  79. package/plugins/addCrashDebugStatements.cjs +56 -0
  80. package/plugins/addCrashDebugStatements.ts +39 -0
  81. package/{src/plugins/addIsaacScriptCommentHeader.js → plugins/addIsaacScriptCommentHeader.cjs} +1 -1
  82. package/plugins/addIsaacScriptCommentHeader.ts +42 -0
  83. package/{src/plugins/addIsaacScriptCommentHeaderCommon.js → plugins/addIsaacScriptCommentHeaderCommon.cjs} +6 -4
  84. package/plugins/addIsaacScriptCommentHeaderCommon.ts +59 -0
  85. package/{src/plugins/noExtendedEnums.js → plugins/noExtendedEnums.cjs} +25 -4
  86. package/plugins/noExtendedEnums.ts +83 -0
  87. package/plugins/tsconfig.json +28 -0
  88. package/schemas/tsconfig-isaacscript-section-schema.json +1 -0
  89. package/file-templates/static/nuke.sh +0 -53
  90. package/file-templates/static/update.sh +0 -26
  91. package/file-templates/static-mod/build.sh +0 -22
  92. package/file-templates/static-mod/lint.sh +0 -43
  93. package/file-templates/static-mod/publish.sh +0 -10
  94. package/file-templates/static-mod/run.sh +0 -10
  95. package/file-templates/static-ts/build.sh +0 -53
  96. package/file-templates/static-ts/lint.sh +0 -35
  97. package/file-templates/static-ts/publish.sh +0 -10
  98. package/file-templates/static-ts/run.sh +0 -42
  99. package/src/checkForWindowsTerminalBugs.js +0 -71
  100. package/src/checkForWindowsTerminalBugs.js.map +0 -1
  101. package/src/classes/Config.js.map +0 -1
  102. package/src/classes/ValidatedConfig.js +0 -3
  103. package/src/classes/ValidatedConfig.js.map +0 -1
  104. package/src/commands/check/check.js.map +0 -1
  105. package/src/commands/check/check.test.js +0 -87
  106. package/src/commands/check/check.test.js.map +0 -1
  107. package/src/commands/copy/copy.js +0 -38
  108. package/src/commands/copy/copy.js.map +0 -1
  109. package/src/commands/init/checkIfProjectPathExists.js +0 -28
  110. package/src/commands/init/checkIfProjectPathExists.js.map +0 -1
  111. package/src/commands/init/checkModSubdirectory.js +0 -16
  112. package/src/commands/init/checkModSubdirectory.js.map +0 -1
  113. package/src/commands/init/checkModTargetDirectory.js +0 -31
  114. package/src/commands/init/checkModTargetDirectory.js.map +0 -1
  115. package/src/commands/init/createProject.js +0 -220
  116. package/src/commands/init/createProject.js.map +0 -1
  117. package/src/commands/init/getAuthorName.js +0 -27
  118. package/src/commands/init/getAuthorName.js.map +0 -1
  119. package/src/commands/init/getModsDir.js +0 -58
  120. package/src/commands/init/getModsDir.js.map +0 -1
  121. package/src/commands/init/getProjectPath.js +0 -89
  122. package/src/commands/init/getProjectPath.js.map +0 -1
  123. package/src/commands/init/init.js +0 -78
  124. package/src/commands/init/init.js.map +0 -1
  125. package/src/commands/init/installVSCodeExtensions.js +0 -35
  126. package/src/commands/init/installVSCodeExtensions.js.map +0 -1
  127. package/src/commands/init/promptSaveSlot.js +0 -22
  128. package/src/commands/init/promptSaveSlot.js.map +0 -1
  129. package/src/commands/init/promptVSCode.js.map +0 -1
  130. package/src/commands/monitor/copyWatcherMod.js +0 -39
  131. package/src/commands/monitor/copyWatcherMod.js.map +0 -1
  132. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js +0 -47
  133. package/src/commands/monitor/modDirectorySyncer/modDirectorySyncer.js.map +0 -1
  134. package/src/commands/monitor/monitor.js +0 -263
  135. package/src/commands/monitor/monitor.js.map +0 -1
  136. package/src/commands/monitor/notifyGame.js.map +0 -1
  137. package/src/commands/monitor/saveDatWriter/saveDatWriter.js.map +0 -1
  138. package/src/commands/monitor/saveDatWriter/types.js +0 -3
  139. package/src/commands/monitor/saveDatWriter/types.js.map +0 -1
  140. package/src/commands/monitor/spawnSaveDatWriter.js +0 -35
  141. package/src/commands/monitor/spawnSaveDatWriter.js.map +0 -1
  142. package/src/commands/monitor/touchWatcherSaveDatFiles.js +0 -21
  143. package/src/commands/monitor/touchWatcherSaveDatFiles.js.map +0 -1
  144. package/src/commands/publish/isaacscriptMod.js +0 -97
  145. package/src/commands/publish/isaacscriptMod.js.map +0 -1
  146. package/src/commands/publish/prePublish.js +0 -120
  147. package/src/commands/publish/prePublish.js.map +0 -1
  148. package/src/commands/publish/publish.js +0 -42
  149. package/src/commands/publish/publish.js.map +0 -1
  150. package/src/commands/publish/validate.js +0 -58
  151. package/src/commands/publish/validate.js.map +0 -1
  152. package/src/common.js +0 -69
  153. package/src/common.js.map +0 -1
  154. package/src/configFile.js +0 -64
  155. package/src/configFile.js.map +0 -1
  156. package/src/constants.js +0 -67
  157. package/src/constants.js.map +0 -1
  158. package/src/customStage.js +0 -304
  159. package/src/customStage.js.map +0 -1
  160. package/src/dev.js +0 -19
  161. package/src/dev.js.map +0 -1
  162. package/src/enums/DoorSlot.js.map +0 -1
  163. package/src/enums/DoorSlotFlag.js +0 -37
  164. package/src/enums/DoorSlotFlag.js.map +0 -1
  165. package/src/enums/PackageManager.js +0 -10
  166. package/src/enums/PackageManager.js.map +0 -1
  167. package/src/enums/RoomShape.js.map +0 -1
  168. package/src/exec.js.map +0 -1
  169. package/src/file.js +0 -247
  170. package/src/file.js.map +0 -1
  171. package/src/git.js +0 -154
  172. package/src/git.js.map +0 -1
  173. package/src/interfaces/GitHubCLIHostsYAML.js +0 -3
  174. package/src/interfaces/GitHubCLIHostsYAML.js.map +0 -1
  175. package/src/interfaces/IsaacScriptTSConfig.js +0 -3
  176. package/src/interfaces/IsaacScriptTSConfig.js.map +0 -1
  177. package/src/interfaces/ShadersXML.js +0 -3
  178. package/src/interfaces/ShadersXML.js.map +0 -1
  179. package/src/interfaces/copied/CustomStageTSConfig.js +0 -4
  180. package/src/interfaces/copied/CustomStageTSConfig.js.map +0 -1
  181. package/src/interfaces/copied/JSONRoomsFile.js +0 -4
  182. package/src/interfaces/copied/JSONRoomsFile.js.map +0 -1
  183. package/src/isaacScriptCommonTS.js +0 -233
  184. package/src/isaacScriptCommonTS.js.map +0 -1
  185. package/src/json.js +0 -42
  186. package/src/json.js.map +0 -1
  187. package/src/main.js +0 -127
  188. package/src/main.js.map +0 -1
  189. package/src/objects/doorSlotToDoorSlotFlag.js +0 -17
  190. package/src/objects/doorSlotToDoorSlotFlag.js.map +0 -1
  191. package/src/objects/roomShapeDoorToSlotCoordinates.js +0 -115
  192. package/src/objects/roomShapeDoorToSlotCoordinates.js.map +0 -1
  193. package/src/packageManager.js +0 -153
  194. package/src/packageManager.js.map +0 -1
  195. package/src/parseArgs.js.map +0 -1
  196. package/src/plugins/addCrashDebugStatements.js +0 -32
  197. package/src/plugins/addCrashDebugStatements.js.map +0 -1
  198. package/src/plugins/addIsaacScriptCommentHeader.js.map +0 -1
  199. package/src/plugins/addIsaacScriptCommentHeaderCommon.js.map +0 -1
  200. package/src/plugins/noExtendedEnums.js.map +0 -1
  201. package/src/prompt.js +0 -87
  202. package/src/prompt.js.map +0 -1
  203. package/src/tsconfig.js +0 -103
  204. package/src/tsconfig.js.map +0 -1
  205. package/src/types/Command.js +0 -9
  206. package/src/types/Command.js.map +0 -1
  207. package/src/utils.js +0 -15
  208. package/src/utils.js.map +0 -1
  209. package/src/validateInIsaacScriptProject.js +0 -36
  210. package/src/validateInIsaacScriptProject.js.map +0 -1
  211. package/src/validateNodeVersion.js +0 -29
  212. package/src/validateNodeVersion.js.map +0 -1
  213. package/src/version.js +0 -20
  214. package/src/version.js.map +0 -1
@@ -1,233 +0,0 @@
1
- "use strict";
2
- // The functions here are copied from `isaacscript-common-ts` because this package uses CommonJS
3
- // instead of ESM. Furthermore, using `tsconfig-paths` makes live debugging more difficult.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.trimPrefix = exports.repeat = exports.removeLinesMatching = exports.removeLinesBetweenMarkers = exports.parseSemanticVersion = exports.parseIntSafe = exports.parseFloatSafe = exports.isRecord = exports.isKebabCase = exports.hasWhiteSpace = exports.getEnumValues = exports.fatalError = exports.assertDefined = exports.ReadonlySet = void 0;
6
- /** An alias for the `Set` constructor that returns a read-only set. */
7
- exports.ReadonlySet = Set;
8
- /** From: https://github.com/expandjs/expandjs/blob/master/lib/kebabCaseRegex.js */
9
- const KEBAB_CASE_REGEX = /^([a-z](?!\d)|\d(?![a-z]))+(-?([a-z](?!\d)|\d(?![a-z])))*$|^$/;
10
- const INTEGER_REGEX = /^-?\d+$/;
11
- const FLOAT_REGEX = /^-?\d*\.?\d+$/;
12
- /**
13
- * Helper function to throw an error if the provided value is equal to `undefined`.
14
- *
15
- * This is useful to have TypeScript narrow a `T | undefined` value to `T` in a concise way.
16
- */
17
- function assertDefined(value, ...[msg]) {
18
- if (value === undefined) {
19
- throw new TypeError(msg);
20
- }
21
- }
22
- exports.assertDefined = assertDefined;
23
- /**
24
- * Helper function to print out an error message and then exit the program.
25
- *
26
- * All of the arguments will be directly passed to the `console.error` function.
27
- */
28
- function fatalError(...args) {
29
- console.error(...args);
30
- process.exit(1);
31
- }
32
- exports.fatalError = fatalError;
33
- /**
34
- * Helper function to get the only the values of an enum.
35
- *
36
- * (By default, TypeScript will put the keys inside of the values of a number-based enum, so those
37
- * have to be filtered out.)
38
- *
39
- * This function will work properly for both number and string enums.
40
- */
41
- function getEnumValues(transpiledEnum) {
42
- const values = Object.values(transpiledEnum);
43
- const numberValues = values.filter((value) => typeof value === "number");
44
- // If there are no number values, then this must be a string enum, and no filtration is required.
45
- const valuesToReturn = numberValues.length > 0 ? numberValues : values;
46
- return valuesToReturn;
47
- }
48
- exports.getEnumValues = getEnumValues;
49
- /** From: https://stackoverflow.com/questions/1731190/check-if-a-string-has-white-space */
50
- function hasWhiteSpace(s) {
51
- return /\s/g.test(s);
52
- }
53
- exports.hasWhiteSpace = hasWhiteSpace;
54
- /** Kebab case is the naming style of using all lowercase and hyphens, like "foo-bar". */
55
- function isKebabCase(string) {
56
- return KEBAB_CASE_REGEX.test(string);
57
- }
58
- exports.isKebabCase = isKebabCase;
59
- /** Helper function to narrow `unknown` to `Record`. */
60
- function isRecord(object) {
61
- return (typeof object === "object" && object !== null && !Array.isArray(object));
62
- }
63
- exports.isRecord = isRecord;
64
- /**
65
- * This is a more reliable version of `Number.parseFloat`:
66
- *
67
- * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
68
- * TypeScript type narrowing patterns.
69
- * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
70
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
71
- * - Non-strings will result in undefined instead of being coerced to a number.
72
- *
73
- * @param string A string to convert to an integer.
74
- */
75
- function parseFloatSafe(string) {
76
- if (typeof string !== "string") {
77
- return undefined;
78
- }
79
- const trimmedString = string.trim();
80
- // If the string does not entirely consist of numbers, return undefined.
81
- if (FLOAT_REGEX.exec(trimmedString) === null) {
82
- return undefined;
83
- }
84
- const number = Number.parseFloat(trimmedString);
85
- return Number.isNaN(number) ? undefined : number;
86
- }
87
- exports.parseFloatSafe = parseFloatSafe;
88
- /**
89
- * This is a more reliable version of `Number.parseInt`:
90
- *
91
- * - `undefined` is returned instead of `Number.NaN`, which is helpful in conjunction with
92
- * TypeScript type narrowing patterns.
93
- * - Strings that are a mixture of numbers and letters will result in undefined instead of the part
94
- * of the string that is the number. (e.g. "1a" --> undefined instead of "1a" --> 1)
95
- * - Non-strings will result in undefined instead of being coerced to a number.
96
- *
97
- * If you have to use a radix other than 10, use the vanilla `Number.parseInt` function instead,
98
- * because this function ensures that the string contains no letters.
99
- *
100
- * @param string A string to convert to an integer.
101
- */
102
- function parseIntSafe(string) {
103
- if (typeof string !== "string") {
104
- return undefined;
105
- }
106
- const trimmedString = string.trim();
107
- // If the string does not entirely consist of numbers, return undefined.
108
- if (INTEGER_REGEX.exec(trimmedString) === null) {
109
- return undefined;
110
- }
111
- const number = Number.parseInt(trimmedString, 10);
112
- return Number.isNaN(number) ? undefined : number;
113
- }
114
- exports.parseIntSafe = parseIntSafe;
115
- /**
116
- * Helper function to parse a Semantic Versioning string into its individual constituents. Returns
117
- * undefined if the submitted string was not a proper Semantic Version string.
118
- *
119
- * https://semver.org/
120
- */
121
- function parseSemanticVersion(versionString) {
122
- const match = versionString.match(/^v*(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)/);
123
- if (match === null || match.groups === undefined) {
124
- return undefined;
125
- }
126
- const { major, minor, patch } = match.groups;
127
- if (major === undefined || minor === undefined || patch === undefined) {
128
- return undefined;
129
- }
130
- const majorVersion = parseIntSafe(major);
131
- const minorVersion = parseIntSafe(minor);
132
- const patchVersion = parseIntSafe(patch);
133
- if (majorVersion === undefined ||
134
- minorVersion === undefined ||
135
- patchVersion === undefined) {
136
- return undefined;
137
- }
138
- return { majorVersion, minorVersion, patchVersion };
139
- }
140
- exports.parseSemanticVersion = parseSemanticVersion;
141
- /**
142
- * Helper function to remove lines from a multi-line string. This function looks for a "-start" and
143
- * a "-end" suffix after the marker. Lines with markets will be completely removed from the output.
144
- *
145
- * For example, by using a marker of "@foo":
146
- *
147
- * ```text
148
- * line1
149
- * # @foo-start
150
- * line2
151
- * line3
152
- * # @foo-end
153
- * line4
154
- * ```
155
- *
156
- * Would return:
157
- *
158
- * ```text
159
- * line1
160
- * line4
161
- * ```
162
- */
163
- function removeLinesBetweenMarkers(string, marker) {
164
- const lines = string.split("\n");
165
- const newLines = [];
166
- let skippingLines = false;
167
- for (const line of lines) {
168
- if (line.includes(`${marker}-start`)) {
169
- skippingLines = true;
170
- continue;
171
- }
172
- if (line.includes(`${marker}-end`)) {
173
- skippingLines = false;
174
- continue;
175
- }
176
- if (!skippingLines) {
177
- newLines.push(line);
178
- }
179
- }
180
- return newLines.join("\n");
181
- }
182
- exports.removeLinesBetweenMarkers = removeLinesBetweenMarkers;
183
- /** Helper function to remove lines from a multi-line string matching a certain other string. */
184
- function removeLinesMatching(string, match) {
185
- const lines = string.split("\n");
186
- const newLines = lines.filter((line) => !line.includes(match));
187
- return newLines.join("\n");
188
- }
189
- exports.removeLinesMatching = removeLinesMatching;
190
- /**
191
- * Helper function to repeat code N times. This is faster to type and cleaner than using a for loop.
192
- *
193
- * For example:
194
- *
195
- * ```ts
196
- * repeat(10, () => {
197
- * foo();
198
- * });
199
- * ```
200
- *
201
- * The repeated function is passed the index of the iteration, if needed:
202
- *
203
- * ```ts
204
- * repeat(3, (i) => {
205
- * console.log(i); // Prints "0", "1", "2"
206
- * });
207
- * ```
208
- */
209
- function repeat(num, func) {
210
- for (let i = 0; i < num; i++) {
211
- func(i);
212
- }
213
- }
214
- exports.repeat = repeat;
215
- /**
216
- * Helper function to trim a prefix from a string, if it exists. Returns the trimmed string.
217
- *
218
- * @param string The string to trim.
219
- * @param prefix The prefix to trim.
220
- * @param trimAll Whether to remove multiple instances of the prefix, if they exist.
221
- */
222
- function trimPrefix(string, prefix, trimAll = false) {
223
- if (trimAll) {
224
- const regExp = new RegExp(`^${prefix}+`, "g");
225
- return string.replaceAll(regExp, "");
226
- }
227
- if (!string.startsWith(prefix)) {
228
- return string;
229
- }
230
- return string.slice(prefix.length);
231
- }
232
- exports.trimPrefix = trimPrefix;
233
- //# sourceMappingURL=isaacScriptCommonTS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isaacScriptCommonTS.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/isaacScriptCommonTS.ts"],"names":[],"mappings":"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"}
package/src/json.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProjectPackageJSONField = exports.getJSONC = void 0;
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const JSONC = tslib_1.__importStar(require("jsonc-parser"));
7
- const constants_js_1 = require("./constants.js");
8
- const file_js_1 = require("./file.js");
9
- const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
10
- /**
11
- * Helper function to parse a file as JSONC.
12
- *
13
- * This expects the file to contain an object (i.e. `{}`), not an array or a primitive. The function
14
- * will terminate the program if any errors occur.
15
- *
16
- * We parse as JSONC instead of JSON to allow for comments and trailing commas.
17
- */
18
- function getJSONC(filePath, verbose) {
19
- const fileContents = (0, file_js_1.readFile)(filePath, verbose);
20
- let json;
21
- try {
22
- json = JSONC.parse(fileContents);
23
- }
24
- catch (error) {
25
- (0, isaacScriptCommonTS_js_1.fatalError)(`Failed to parse "${chalk_1.default.green(filePath)}" as JSONC:`, error);
26
- }
27
- if (!(0, isaacScriptCommonTS_js_1.isRecord)(json)) {
28
- (0, isaacScriptCommonTS_js_1.fatalError)(`Failed to parse "${chalk_1.default.green(filePath)}", since the contents were not an object.`);
29
- }
30
- return json;
31
- }
32
- exports.getJSONC = getJSONC;
33
- function getProjectPackageJSONField(fieldName, verbose) {
34
- const packageJSON = getJSONC(constants_js_1.PACKAGE_JSON_PATH, verbose);
35
- const field = packageJSON[fieldName];
36
- if (typeof field !== "string") {
37
- (0, isaacScriptCommonTS_js_1.fatalError)(`Failed to parse the "${fieldName}" field from the "${constants_js_1.PACKAGE_JSON}" file.`);
38
- }
39
- return field;
40
- }
41
- exports.getProjectPackageJSONField = getProjectPackageJSONField;
42
- //# sourceMappingURL=json.js.map
package/src/json.js.map DELETED
@@ -1 +0,0 @@
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,qEAAgE;AAEhE;;;;;;;GAOG;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,KAAK,EAAE;QACd,IAAA,mCAAU,EAAC,oBAAoB,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;KAC3E;IAED,IAAI,CAAC,IAAA,iCAAQ,EAAC,IAAI,CAAC,EAAE;QACnB,IAAA,mCAAU,EACR,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,mCAAU,EACR,wBAAwB,SAAS,qBAAqB,2BAAY,SAAS,CAC5E,CAAC;KACH;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAbD,gEAaC"}
package/src/main.js DELETED
@@ -1,127 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const figlet_1 = tslib_1.__importDefault(require("figlet"));
7
- const source_map_support_1 = tslib_1.__importDefault(require("source-map-support"));
8
- const checkForWindowsTerminalBugs_js_1 = require("./checkForWindowsTerminalBugs.js");
9
- const Config_js_1 = require("./classes/Config.js");
10
- const check_js_1 = require("./commands/check/check.js");
11
- const copy_js_1 = require("./commands/copy/copy.js");
12
- const init_js_1 = require("./commands/init/init.js");
13
- const monitor_js_1 = require("./commands/monitor/monitor.js");
14
- const publish_js_1 = require("./commands/publish/publish.js");
15
- const configFile_js_1 = require("./configFile.js");
16
- const constants_js_1 = require("./constants.js");
17
- const exec_js_1 = require("./exec.js");
18
- const isaacScriptCommonTS_js_1 = require("./isaacScriptCommonTS.js");
19
- const packageManager_js_1 = require("./packageManager.js");
20
- const parseArgs_js_1 = require("./parseArgs.js");
21
- const prompt_js_1 = require("./prompt.js");
22
- const Command_js_1 = require("./types/Command.js");
23
- const validateInIsaacScriptProject_js_1 = require("./validateInIsaacScriptProject.js");
24
- const validateNodeVersion_js_1 = require("./validateNodeVersion.js");
25
- const version_js_1 = require("./version.js");
26
- main().catch((error) => {
27
- (0, isaacScriptCommonTS_js_1.fatalError)(`${constants_js_1.PROJECT_NAME} failed:`, error);
28
- });
29
- async function main() {
30
- source_map_support_1.default.install();
31
- (0, prompt_js_1.promptInit)();
32
- const args = (0, parseArgs_js_1.parseArgs)();
33
- const verbose = args.verbose === true;
34
- const command = getCommandFromArgs(args);
35
- (0, validateNodeVersion_js_1.validateNodeVersion)();
36
- printBanner(command, verbose);
37
- // Pre-flight checks
38
- await (0, checkForWindowsTerminalBugs_js_1.checkForWindowsTerminalBugs)(verbose);
39
- await handleCommands(command, args);
40
- if (command !== "monitor") {
41
- process.exit(0);
42
- }
43
- }
44
- function getCommandFromArgs(args) {
45
- const positionalArgs = args._;
46
- const firstPositionArg = positionalArgs[0];
47
- return firstPositionArg === undefined || firstPositionArg === ""
48
- ? Command_js_1.DEFAULT_COMMAND
49
- : firstPositionArg;
50
- }
51
- function printBanner(command, verbose) {
52
- // Skip displaying the banner for specific commands.
53
- if (command.startsWith("check")) {
54
- return;
55
- }
56
- const banner = figlet_1.default.textSync(constants_js_1.PROJECT_NAME);
57
- console.log(chalk_1.default.green(banner));
58
- const version = (0, version_js_1.getVersionOfThisPackage)(verbose);
59
- const versionString = `v${version}`;
60
- const bannerLines = banner.split("\n");
61
- const firstBannerLine = bannerLines[0];
62
- if (firstBannerLine === undefined) {
63
- (0, isaacScriptCommonTS_js_1.fatalError)(firstBannerLine, "Failed to get the first line of the banner text.");
64
- }
65
- const bannerHorizontalLength = firstBannerLine.length;
66
- const leftPaddingAmount = Math.floor((bannerHorizontalLength + versionString.length) / 2);
67
- const versionLine = versionString.padStart(leftPaddingAmount);
68
- console.log(`${versionLine}\n`);
69
- }
70
- async function handleCommands(command, args) {
71
- const skipProjectChecks = args.skipProjectChecks === true;
72
- const verbose = args.verbose === true;
73
- let config = new Config_js_1.Config();
74
- if (command !== "init" &&
75
- command !== "check" &&
76
- (0, Command_js_1.isIsaacScriptModCommand)(command)) {
77
- if (!skipProjectChecks) {
78
- (0, validateInIsaacScriptProject_js_1.validateInIsaacScriptProject)(verbose);
79
- }
80
- const shouldDisplayOutput = !command.startsWith("check");
81
- ensureDepsAreInstalled(args, shouldDisplayOutput, verbose);
82
- config = await (0, configFile_js_1.getConfigFromFile)(args, false);
83
- }
84
- switch (command) {
85
- case "monitor": {
86
- await (0, monitor_js_1.monitor)(args, config);
87
- break;
88
- }
89
- case "init": {
90
- await (0, init_js_1.init)(args, false);
91
- break;
92
- }
93
- case "init-ts": {
94
- await (0, init_js_1.init)(args, true);
95
- break;
96
- }
97
- case "copy": {
98
- await (0, copy_js_1.copy)(args, config);
99
- break;
100
- }
101
- case "publish": {
102
- await (0, publish_js_1.publish)(args, config, false);
103
- break;
104
- }
105
- case "publish-ts": {
106
- await (0, publish_js_1.publish)(args, config, true);
107
- break;
108
- }
109
- case "check": {
110
- (0, check_js_1.check)(args, false);
111
- break;
112
- }
113
- case "check-ts": {
114
- (0, check_js_1.check)(args, true);
115
- break;
116
- }
117
- }
118
- }
119
- function ensureDepsAreInstalled(args, shouldDisplayOutput, verbose) {
120
- const packageManager = (0, packageManager_js_1.getPackageManagerUsedForExistingProject)(args, verbose);
121
- const command = (0, packageManager_js_1.getPackageManagerInstallCommand)(packageManager);
122
- if (shouldDisplayOutput) {
123
- console.log(`Running "${command}" to ensure that the project's dependencies are installed correctly.`);
124
- }
125
- (0, exec_js_1.execShellString)(command, verbose);
126
- }
127
- //# sourceMappingURL=main.js.map
package/src/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/main.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DOOR_SLOT_TO_DOOR_SLOT_FLAG = void 0;
4
- const DoorSlot_js_1 = require("../enums/DoorSlot.js");
5
- const DoorSlotFlag_js_1 = require("../enums/DoorSlotFlag.js");
6
- exports.DOOR_SLOT_TO_DOOR_SLOT_FLAG = {
7
- [DoorSlot_js_1.DoorSlot.NO_DOOR_SLOT]: DoorSlotFlag_js_1.DoorSlotFlagZero,
8
- [DoorSlot_js_1.DoorSlot.LEFT_0]: DoorSlotFlag_js_1.DoorSlotFlag.LEFT_0,
9
- [DoorSlot_js_1.DoorSlot.UP_0]: DoorSlotFlag_js_1.DoorSlotFlag.UP_0,
10
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: DoorSlotFlag_js_1.DoorSlotFlag.RIGHT_0,
11
- [DoorSlot_js_1.DoorSlot.DOWN_0]: DoorSlotFlag_js_1.DoorSlotFlag.DOWN_0,
12
- [DoorSlot_js_1.DoorSlot.LEFT_1]: DoorSlotFlag_js_1.DoorSlotFlag.LEFT_1,
13
- [DoorSlot_js_1.DoorSlot.UP_1]: DoorSlotFlag_js_1.DoorSlotFlag.UP_1,
14
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: DoorSlotFlag_js_1.DoorSlotFlag.RIGHT_1,
15
- [DoorSlot_js_1.DoorSlot.DOWN_1]: DoorSlotFlag_js_1.DoorSlotFlag.DOWN_1, // 7
16
- };
17
- //# sourceMappingURL=doorSlotToDoorSlotFlag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doorSlotToDoorSlotFlag.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/objects/doorSlotToDoorSlotFlag.ts"],"names":[],"mappings":";;;AAAA,sDAAgD;AAChD,8DAA0E;AAE7D,QAAA,2BAA2B,GAAG;IACzC,CAAC,sBAAQ,CAAC,YAAY,CAAC,EAAE,kCAAgB;IACzC,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE,8BAAY,CAAC,MAAM;IACtC,CAAC,sBAAQ,CAAC,IAAI,CAAC,EAAE,8BAAY,CAAC,IAAI;IAClC,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE,8BAAY,CAAC,OAAO;IACxC,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE,8BAAY,CAAC,MAAM;IACtC,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE,8BAAY,CAAC,MAAM;IACtC,CAAC,sBAAQ,CAAC,IAAI,CAAC,EAAE,8BAAY,CAAC,IAAI;IAClC,CAAC,sBAAQ,CAAC,OAAO,CAAC,EAAE,8BAAY,CAAC,OAAO;IACxC,CAAC,sBAAQ,CAAC,MAAM,CAAC,EAAE,8BAAY,CAAC,MAAM,EAAE,IAAI;CACK,CAAC"}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = void 0;
4
- const DoorSlot_js_1 = require("../enums/DoorSlot.js");
5
- const RoomShape_js_1 = require("../enums/RoomShape.js");
6
- /**
7
- * The coordinates correspond to the x and y values that are present in a room's XML file.
8
- *
9
- * e.g. `<door exists="False" x="-1" y="3" />`
10
- *
11
- * This is copied from the `ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES` object in `isaacscript-common`.
12
- */
13
- exports.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES = {
14
- // 1
15
- [RoomShape_js_1.RoomShape.SHAPE_1x1]: {
16
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
17
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
18
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [13, 3],
19
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 7], // 3
20
- },
21
- // 2
22
- [RoomShape_js_1.RoomShape.IH]: {
23
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
24
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [13, 3], // 2
25
- },
26
- // 3
27
- [RoomShape_js_1.RoomShape.IV]: {
28
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
29
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 7], // 3
30
- },
31
- // 4
32
- [RoomShape_js_1.RoomShape.SHAPE_1x2]: {
33
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
34
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
35
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [13, 3],
36
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14],
37
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [-1, 10],
38
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [13, 10], // 6
39
- },
40
- // 5
41
- [RoomShape_js_1.RoomShape.IIV]: {
42
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
43
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14], // 3
44
- },
45
- // 6
46
- [RoomShape_js_1.RoomShape.SHAPE_2x1]: {
47
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
48
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
49
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3],
50
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 7],
51
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, -1],
52
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 7], // 7
53
- },
54
- // 7
55
- [RoomShape_js_1.RoomShape.IIH]: {
56
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
57
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3], // 2
58
- },
59
- // 8
60
- [RoomShape_js_1.RoomShape.SHAPE_2x2]: {
61
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
62
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
63
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3],
64
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14],
65
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [-1, 10],
66
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, -1],
67
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [26, 10],
68
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 14], // 7
69
- },
70
- // 9
71
- [RoomShape_js_1.RoomShape.LTL]: {
72
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [12, 3],
73
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, 6],
74
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3],
75
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14],
76
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [-1, 10],
77
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, -1],
78
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [26, 10],
79
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 14], // 7
80
- },
81
- // 10
82
- [RoomShape_js_1.RoomShape.LTR]: {
83
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
84
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
85
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [13, 3],
86
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14],
87
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [-1, 10],
88
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, 6],
89
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [26, 10],
90
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 14], // 7
91
- },
92
- // 11
93
- [RoomShape_js_1.RoomShape.LBL]: {
94
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
95
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
96
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3],
97
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 7],
98
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [12, 10],
99
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, -1],
100
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [26, 10],
101
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 14], // 7
102
- },
103
- // 12
104
- [RoomShape_js_1.RoomShape.LBR]: {
105
- [DoorSlot_js_1.DoorSlot.LEFT_0]: [-1, 3],
106
- [DoorSlot_js_1.DoorSlot.UP_0]: [6, -1],
107
- [DoorSlot_js_1.DoorSlot.RIGHT_0]: [26, 3],
108
- [DoorSlot_js_1.DoorSlot.DOWN_0]: [6, 14],
109
- [DoorSlot_js_1.DoorSlot.LEFT_1]: [-1, 10],
110
- [DoorSlot_js_1.DoorSlot.UP_1]: [19, -1],
111
- [DoorSlot_js_1.DoorSlot.RIGHT_1]: [13, 10],
112
- [DoorSlot_js_1.DoorSlot.DOWN_1]: [19, 7], // 7
113
- },
114
- };
115
- //# sourceMappingURL=roomShapeDoorToSlotCoordinates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"roomShapeDoorToSlotCoordinates.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/objects/roomShapeDoorToSlotCoordinates.ts"],"names":[],"mappings":"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"}