isaacscript 2.8.0 → 2.9.2

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 (68) hide show
  1. package/custom-stage/floor-backdrop.anm2 +488 -0
  2. package/custom-stage/none.png +0 -0
  3. package/custom-stage/wall-backdrop.anm2 +2879 -0
  4. package/file-templates/static/.eslintrc.js.template +5 -9
  5. package/file-templates/static/tsconfig.json +8 -4
  6. package/package.json +8 -10
  7. package/schemas/tsconfig-isaacscript-schema.json +20 -0
  8. package/schemas/tsconfig-isaacscript-section-schema.json +105 -0
  9. package/src/{types → classes}/Config.js +0 -0
  10. package/src/classes/Config.js.map +1 -0
  11. package/src/commands/copy/copy.js +6 -4
  12. package/src/commands/copy/copy.js.map +1 -1
  13. package/src/commands/init/createMod.js +2 -12
  14. package/src/commands/init/createMod.js.map +1 -1
  15. package/src/commands/init/getModsDir.js +1 -1
  16. package/src/commands/init/getModsDir.js.map +1 -1
  17. package/src/commands/init/git.js.map +1 -1
  18. package/src/commands/monitor/copyWatcherMod.js.map +1 -1
  19. package/src/commands/monitor/monitor.js +4 -3
  20. package/src/commands/monitor/monitor.js.map +1 -1
  21. package/src/commands/monitor/spawnSaveDatWriter.js.map +1 -1
  22. package/src/commands/monitor/touchWatcherSaveDatFiles.js.map +1 -1
  23. package/src/commands/publish/publish.js +6 -4
  24. package/src/commands/publish/publish.js.map +1 -1
  25. package/src/common.js +62 -0
  26. package/src/common.js.map +1 -0
  27. package/src/configFile.js.map +1 -1
  28. package/src/constants.js +13 -10
  29. package/src/constants.js.map +1 -1
  30. package/src/customStage.js +191 -22
  31. package/src/customStage.js.map +1 -1
  32. package/src/enums/DoorSlot.js +24 -0
  33. package/src/enums/DoorSlot.js.map +1 -0
  34. package/src/enums/DoorSlotFlag.js +37 -0
  35. package/src/enums/DoorSlotFlag.js.map +1 -0
  36. package/src/{types → enums}/PackageManager.js +0 -0
  37. package/src/{types → enums}/PackageManager.js.map +1 -1
  38. package/src/enums/RoomShape.js +47 -0
  39. package/src/enums/RoomShape.js.map +1 -0
  40. package/src/file.js +6 -17
  41. package/src/file.js.map +1 -1
  42. package/src/{types → interfaces}/GitHubCLIHostsYAML.js +0 -0
  43. package/src/interfaces/GitHubCLIHostsYAML.js.map +1 -0
  44. package/src/interfaces/IsaacScriptTSConfig.js +3 -0
  45. package/src/interfaces/IsaacScriptTSConfig.js.map +1 -0
  46. package/src/interfaces/copied/CustomStageLua.js +4 -0
  47. package/src/interfaces/copied/CustomStageLua.js.map +1 -0
  48. package/src/interfaces/copied/JSONRoomsFile.js +4 -0
  49. package/src/interfaces/copied/JSONRoomsFile.js.map +1 -0
  50. package/src/json.js +2 -1
  51. package/src/json.js.map +1 -1
  52. package/src/main.js +4 -4
  53. package/src/main.js.map +1 -1
  54. package/src/objects/doorSlotToDoorSlotFlag.js +17 -0
  55. package/src/objects/doorSlotToDoorSlotFlag.js.map +1 -0
  56. package/src/objects/roomShapeDoorSlotCoordinates.js +113 -0
  57. package/src/objects/roomShapeDoorSlotCoordinates.js.map +1 -0
  58. package/src/packageManager.js +1 -1
  59. package/src/packageManager.js.map +1 -1
  60. package/src/prompt.js +1 -1
  61. package/src/prompt.js.map +1 -1
  62. package/src/tsconfig.js +54 -8
  63. package/src/tsconfig.js.map +1 -1
  64. package/src/utils.js.map +1 -1
  65. package/file-templates/dynamic/mod/metadata.vdf +0 -6
  66. package/file-templates/static/.env_template +0 -2
  67. package/src/types/Config.js.map +0 -1
  68. package/src/types/GitHubCLIHostsYAML.js.map +0 -1
package/src/common.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // These are functions copied from `isaacscript-common`.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.getJSONRoomDoorSlotFlags = void 0;
5
+ const doorSlotToDoorSlotFlag_1 = require("./objects/doorSlotToDoorSlotFlag");
6
+ const roomShapeDoorSlotCoordinates_1 = require("./objects/roomShapeDoorSlotCoordinates");
7
+ const utils_1 = require("./utils");
8
+ function getJSONRoomDoorSlotFlags(jsonRoom) {
9
+ const roomShapeString = jsonRoom.$.shape;
10
+ const roomShapeNumber = (0, utils_1.parseIntSafe)(roomShapeString);
11
+ if (Number.isNaN(roomShapeNumber)) {
12
+ (0, utils_1.error)(`Failed to parse the "shape" property of a custom stage room: ${roomShapeString}`);
13
+ }
14
+ const roomShape = roomShapeNumber;
15
+ let doorSlotFlags = 0;
16
+ for (const door of jsonRoom.door) {
17
+ const existsString = door.$.exists;
18
+ if (existsString !== "True" && existsString !== "False") {
19
+ (0, utils_1.error)(`Failed to parse the "exists" property of a custom stage room door: ${existsString}`);
20
+ }
21
+ if (existsString === "False") {
22
+ continue;
23
+ }
24
+ const xString = door.$.x;
25
+ const x = (0, utils_1.parseIntSafe)(xString);
26
+ if (Number.isNaN(x)) {
27
+ (0, utils_1.error)(`Failed to parse the "x" property of a custom stage room door: ${xString}`);
28
+ }
29
+ const yString = door.$.y;
30
+ const y = (0, utils_1.parseIntSafe)(yString);
31
+ if (Number.isNaN(y)) {
32
+ (0, utils_1.error)(`Failed to parse the "y" property of a custom stage room door: ${yString}`);
33
+ }
34
+ const doorSlot = getRoomShapeDoorSlot(roomShape, x, y);
35
+ if (doorSlot === undefined) {
36
+ (0, utils_1.error)(`Failed to retrieve the door slot for a custom stage room door at coordinates: [${x}, ${y}]`);
37
+ }
38
+ const doorSlotFlag = doorSlotToDoorSlotFlag(doorSlot);
39
+ doorSlotFlags = addFlag(doorSlotFlags, doorSlotFlag);
40
+ }
41
+ return doorSlotFlags;
42
+ }
43
+ exports.getJSONRoomDoorSlotFlags = getJSONRoomDoorSlotFlags;
44
+ function getRoomShapeDoorSlot(roomShape, x, y) {
45
+ const coordinatesMap = roomShapeDoorSlotCoordinates_1.ROOM_SHAPE_TO_DOOR_SLOT_COORDINATES[roomShape];
46
+ for (const [doorSlot, [doorX, doorY]] of coordinatesMap.entries()) {
47
+ if (x === doorX && y === doorY) {
48
+ return doorSlot;
49
+ }
50
+ }
51
+ return undefined;
52
+ }
53
+ function doorSlotToDoorSlotFlag(doorSlot) {
54
+ return doorSlotToDoorSlotFlag_1.DOOR_SLOT_TO_DOOR_SLOT_FLAG[doorSlot];
55
+ }
56
+ function addFlag(flags, ...flagsToAdd) {
57
+ for (const flagToAdd of flagsToAdd) {
58
+ flags |= flagToAdd; // eslint-disable-line no-bitwise,no-param-reassign
59
+ }
60
+ return flags;
61
+ }
62
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/common.ts"],"names":[],"mappings":";AAAA,wDAAwD;;;AAMxD,6EAA+E;AAC/E,yFAA6F;AAC7F,mCAA8C;AAE9C,SAAgB,wBAAwB,CAAC,QAAkB;IACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACzC,MAAM,eAAe,GAAG,IAAA,oBAAY,EAAC,eAAe,CAAC,CAAC;IACtD,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;QACjC,IAAA,aAAK,EACH,gEAAgE,eAAe,EAAE,CAClF,CAAC;KACH;IACD,MAAM,SAAS,GAAG,eAA4B,CAAC;IAE/C,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,OAAO,EAAE;YACvD,IAAA,aAAK,EACH,sEAAsE,YAAY,EAAE,CACrF,CAAC;SACH;QAED,IAAI,YAAY,KAAK,OAAO,EAAE;YAC5B,SAAS;SACV;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnB,IAAA,aAAK,EACH,iEAAiE,OAAO,EAAE,CAC3E,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnB,IAAA,aAAK,EACH,iEAAiE,OAAO,EAAE,CAC3E,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,IAAA,aAAK,EACH,kFAAkF,CAAC,KAAK,CAAC,GAAG,CAC7F,CAAC;SACH;QAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACtD,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;KACtD;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AApDD,4DAoDC;AAED,SAAS,oBAAoB,CAC3B,SAAoB,EACpB,CAAS,EACT,CAAS;IAET,MAAM,cAAc,GAAG,kEAAmC,CAAC,SAAS,CAAC,CAAC;IACtE,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE;QACjE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE;YAC9B,OAAO,QAAQ,CAAC;SACjB;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB;IAChD,OAAO,oDAA2B,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO,CAAC,KAAa,EAAE,GAAG,UAAoB;IACrD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;QAClC,KAAK,IAAI,SAAS,CAAC,CAAC,mDAAmD;KACxE;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/configFile.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,2DAAwD;AACxD,mEAAgE;AAChE,2CAAsE;AACtE,qDAA+B;AAC/B,iCAAkC;AAGlC,mCAAgC;AAEhC,MAAM,UAAU,GAAG,CAAC,CAAC;AAEd,KAAK,UAAU,GAAG,CAAC,IAAU;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,iFAAiF;IACjF,MAAM,aAAa,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,CAAC,eAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,kBAgBC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAAgB,EAAE,OAAO,CAAC,EAAE;QAC3C,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,4BAAgB,EAAE,OAAO,CAAC,CAAC;IAEnD,6FAA6F;IAC7F,sCAAsC;IACtC,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE;QACzC,YAAY,CACV,eAAe,EACf,6EAA6E,CAC9E,CAAC;KACH;IAED,wFAAwF;IACxF,sCAAsC;IACtC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;QACpC,YAAY,CACV,UAAU,EACV,mEAAmE,CACpE,CAAC;KACH;IAED,OAAO,MAA2B,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,WAAmB;IACtD,IAAA,aAAK,EACH,QAAQ,4BAAgB,wBAAwB,KAAK,YAAY,WAAW,iBAAiB,CAC9F,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,aAAqB,EAAE,QAAgB;IAClE,OAAO;QACL,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CACxB,WAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAgB,CAAC,CAAC;IAEhE,gDAAgD;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7E,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAXD,gCAWC"}
1
+ {"version":3,"file":"configFile.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/configFile.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,2DAAwD;AACxD,mEAAgE;AAChE,2CAAsE;AACtE,qDAA+B;AAC/B,iCAAkC;AAElC,mCAAgC;AAEhC,MAAM,UAAU,GAAG,CAAC,CAAC;AAEd,KAAK,UAAU,GAAG,CAAC,IAAU;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC;IAE9B,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,iFAAiF;IACjF,MAAM,aAAa,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACrD,UAAU,CAAC,eAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,kBAgBC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAAgB,EAAE,OAAO,CAAC,EAAE;QAC3C,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,4BAAgB,EAAE,OAAO,CAAC,CAAC;IAEnD,6FAA6F;IAC7F,sCAAsC;IACtC,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE;QACzC,YAAY,CACV,eAAe,EACf,6EAA6E,CAC9E,CAAC;KACH;IAED,wFAAwF;IACxF,sCAAsC;IACtC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;QACpC,YAAY,CACV,UAAU,EACV,mEAAmE,CACpE,CAAC;KACH;IAED,OAAO,MAA2B,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,WAAmB;IACtD,IAAA,aAAK,EACH,QAAQ,4BAAgB,wBAAwB,KAAK,YAAY,WAAW,iBAAiB,CAC9F,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,aAAqB,EAAE,QAAgB;IAClE,OAAO;QACL,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CACxB,WAAmB,EACnB,MAAc,EACd,OAAgB;IAEhB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAgB,CAAC,CAAC;IAEhE,gDAAgD;IAChD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7E,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAXD,gCAWC"}
package/src/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PUBLISH_POST_COPY_PY_PATH = exports.PUBLISH_PRE_COPY_PY_PATH = exports.VERSION_TXT_PATH = exports.METADATA_XML_PATH = exports.MAIN_LUA = exports.MOD_SOURCE_PATH = exports.CONSTANTS_TS_PATH = exports.PACKAGE_JSON_PATH = exports.TSCONFIG_JSON_PATH = exports.TSCONFIG_JSON = exports.CONFIG_FILE_PATH = exports.CONFIG_FILE_NAME = exports.README_MD_TEMPLATES_PATH = exports.README_MD = exports.PACKAGE_JSON_TEMPLATE_PATH = exports.PACKAGE_JSON = exports.METADATA_VDF_TEMPLATE_PATH = exports.METADATA_VDF = exports.METADATA_XML_TEMPLATE_PATH = exports.METADATA_XML = exports.MAIN_TS_TEMPLATE_PATH = exports.MAIN_TS = exports.GITIGNORE_TEMPLATE_PATH = exports.GITIGNORE = exports.CI_YML_TEMPLATE_PATH = exports.CI_YML = exports.TEMPLATES_DYNAMIC_DIR = exports.TEMPLATES_STATIC_DIR = exports.WATCHER_MOD_SOURCE_PATH = exports.WATCHER_MOD_NAME = exports.DISABLE_IT_FILE = exports.PROJECT_NAME = exports.MOD_UPLOADER_PATH = exports.FILE_SYNCED_MESSAGE = exports.HOME_DIR = exports.CWD = exports.CURRENT_DIRECTORY_NAME = void 0;
3
+ exports.PUBLISH_POST_COPY_PY_PATH = exports.PUBLISH_PRE_COPY_PY_PATH = exports.VERSION_TXT_PATH = exports.METADATA_XML_PATH = exports.MAIN_LUA = exports.MOD_SOURCE_PATH = exports.CONSTANTS_TS_PATH = exports.PACKAGE_JSON_PATH = exports.TSCONFIG_JSON_PATH = exports.TSCONFIG_JSON = exports.CONFIG_FILE_PATH = exports.CONFIG_FILE_NAME = exports.ISAACSCRIPT_SCHEMA_PATH = exports.README_MD_TEMPLATES_PATH = exports.README_MD = exports.PACKAGE_JSON_TEMPLATE_PATH = exports.PACKAGE_JSON = exports.METADATA_XML_TEMPLATE_PATH = exports.METADATA_XML = exports.MAIN_TS_TEMPLATE_PATH = exports.MAIN_TS = exports.GITIGNORE_TEMPLATE_PATH = exports.GITIGNORE = exports.CI_YML_TEMPLATE_PATH = exports.CI_YML = exports.TEMPLATES_STATIC_DIR = exports.WATCHER_MOD_SOURCE_PATH = exports.WATCHER_MOD_NAME = exports.DISABLE_IT_FILE = exports.CUSTOM_STAGE_FILES_DIR = exports.PROJECT_NAME = exports.MOD_UPLOADER_PATH = exports.FILE_SYNCED_MESSAGE = exports.HOME_DIR = exports.CWD = exports.CURRENT_DIRECTORY_NAME = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const os_1 = tslib_1.__importDefault(require("os"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
@@ -19,6 +19,8 @@ exports.MOD_UPLOADER_PATH = "C:\\Program Files (x86)\\Steam\\steamapps\\common\\
19
19
  exports.PROJECT_NAME = "IsaacScript";
20
20
  // `isaacscript`
21
21
  const REPO_ROOT = path_1.default.join(__dirname, "..");
22
+ // `isaacscript/custom-stage`
23
+ exports.CUSTOM_STAGE_FILES_DIR = path_1.default.join(REPO_ROOT, "custom-stage");
22
24
  // `isaacscript/isaacscript-watcher`
23
25
  exports.DISABLE_IT_FILE = "disable.it";
24
26
  exports.WATCHER_MOD_NAME = "isaacscript-watcher";
@@ -28,21 +30,22 @@ const TEMPLATES_DIR = path_1.default.join(REPO_ROOT, "file-templates");
28
30
  // `isaacscript/file-templates/static`
29
31
  exports.TEMPLATES_STATIC_DIR = path_1.default.join(TEMPLATES_DIR, "static");
30
32
  // `isaacscript/file-templates/dynamic`
31
- exports.TEMPLATES_DYNAMIC_DIR = path_1.default.join(TEMPLATES_DIR, "dynamic");
33
+ const TEMPLATES_DYNAMIC_DIR = path_1.default.join(TEMPLATES_DIR, "dynamic");
32
34
  exports.CI_YML = "ci.yml";
33
- exports.CI_YML_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, ".github", "workflows", exports.CI_YML);
35
+ exports.CI_YML_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, ".github", "workflows", exports.CI_YML);
34
36
  exports.GITIGNORE = "gitignore"; // Not named ".gitignore" to prevent npm from deleting it.
35
- exports.GITIGNORE_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, exports.GITIGNORE);
37
+ exports.GITIGNORE_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, exports.GITIGNORE);
36
38
  exports.MAIN_TS = "main.ts";
37
- exports.MAIN_TS_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, "src", exports.MAIN_TS);
39
+ exports.MAIN_TS_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, "src", exports.MAIN_TS);
38
40
  exports.METADATA_XML = "metadata.xml";
39
- exports.METADATA_XML_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, "mod", exports.METADATA_XML);
40
- exports.METADATA_VDF = "metadata.vdf";
41
- exports.METADATA_VDF_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, "mod", exports.METADATA_VDF);
41
+ exports.METADATA_XML_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, "mod", exports.METADATA_XML);
42
42
  exports.PACKAGE_JSON = "package.json";
43
- exports.PACKAGE_JSON_TEMPLATE_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, exports.PACKAGE_JSON);
43
+ exports.PACKAGE_JSON_TEMPLATE_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, exports.PACKAGE_JSON);
44
44
  exports.README_MD = "README.md";
45
- exports.README_MD_TEMPLATES_PATH = path_1.default.join(exports.TEMPLATES_DYNAMIC_DIR, exports.README_MD);
45
+ exports.README_MD_TEMPLATES_PATH = path_1.default.join(TEMPLATES_DYNAMIC_DIR, exports.README_MD);
46
+ // `isaacscript/schemas`
47
+ const SCHEMAS_DIR = path_1.default.join(REPO_ROOT, "schemas");
48
+ exports.ISAACSCRIPT_SCHEMA_PATH = path_1.default.join(SCHEMAS_DIR, "tsconfig-isaacscript-section-schema.json");
46
49
  // `project`
47
50
  exports.CONFIG_FILE_NAME = "isaacscript.json";
48
51
  exports.CONFIG_FILE_PATH = path_1.default.join(exports.CWD, exports.CONFIG_FILE_NAME);
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,207 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyCustomStageRooms = void 0;
3
+ exports.prepareCustomStages = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
5
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
+ const tstl = tslib_1.__importStar(require("typescript-to-lua"));
8
+ const xml2js_1 = tslib_1.__importDefault(require("xml2js"));
9
+ const common_1 = require("./common");
6
10
  const constants_1 = require("./constants");
7
11
  const file = tslib_1.__importStar(require("./file"));
12
+ const packageManager_1 = require("./packageManager");
8
13
  const tsconfig_1 = require("./tsconfig");
9
14
  const utils_1 = require("./utils");
10
- const ROOMS_DIRECTORY_PARTIAL_PATH = path_1.default.join("content", "rooms");
11
- const SPECIAL_ROOMS_STB_PARTIAL_PATH = path_1.default.join(ROOMS_DIRECTORY_PARTIAL_PATH, "00.special rooms.stb");
12
- const SPECIAL_ROOMS_STB_TEMPLATE_PATH = path_1.default.join(constants_1.TEMPLATES_DYNAMIC_DIR, "mod", SPECIAL_ROOMS_STB_PARTIAL_PATH);
13
- function copyCustomStageRooms(modSourcePath, modTargetPath, verbose) {
14
- const customStageOption = (0, tsconfig_1.getCustomStageOption)(verbose);
15
- if (!customStageOption) {
15
+ const ISAACSCRIPT_COMMON = "isaacscript-common";
16
+ const ISAACSCRIPT_COMMON_PATH = path_1.default.join(constants_1.CWD, "node_modules", ISAACSCRIPT_COMMON);
17
+ const METADATA_LUA_PATH = path_1.default.join(ISAACSCRIPT_COMMON_PATH, "features", "customStage", "metadata.lua");
18
+ const ROOM_VARIANT_MULTIPLIER = 10000;
19
+ const VARIANT_REGEX = / variant="(\d+)"/;
20
+ const WEIGHT_REGEX = / weight="(.+?)"/;
21
+ async function prepareCustomStages(packageManager, verbose) {
22
+ const customStagesTSConfig = (0, tsconfig_1.getCustomStagesFromTSConfig)(verbose);
23
+ if (customStagesTSConfig.length === 0) {
16
24
  return;
17
25
  }
18
- if (!file.exists(SPECIAL_ROOMS_STB_TEMPLATE_PATH, verbose)) {
19
- (0, utils_1.error)("Failed to find the template file for the custom rooms feature.");
26
+ copyCustomStageFilesToProject(verbose);
27
+ await fillCustomStageMetadata(customStagesTSConfig, packageManager, verbose);
28
+ combineCustomStageXMLs(customStagesTSConfig, verbose);
29
+ }
30
+ exports.prepareCustomStages = prepareCustomStages;
31
+ /** The custom stages feature needs some anm2 files in order to work properly. */
32
+ function copyCustomStageFilesToProject(verbose) {
33
+ const dstDirPath = path_1.default.join(constants_1.CWD, "mod", "resources", "gfx", "isaacscript-custom-stage");
34
+ file.makeDir(dstDirPath, verbose);
35
+ for (const fileName of file.getDirList(constants_1.CUSTOM_STAGE_FILES_DIR, verbose)) {
36
+ const srcPath = path_1.default.join(constants_1.CUSTOM_STAGE_FILES_DIR, fileName);
37
+ const dstPath = path_1.default.join(dstDirPath, fileName);
38
+ file.copy(srcPath, dstPath, verbose);
39
+ }
40
+ }
41
+ /**
42
+ * In order for the custom stage feature to work properly, Lua code will need to know the list of
43
+ * possible rooms corresponding to a custom stage. In an end-user mod, this is a Lua file located at
44
+ * `METADATA_LUA_PATH`. By default, the file is blank, and must be filled in by tooling before
45
+ * compiling the mod.
46
+ */
47
+ async function fillCustomStageMetadata(customStagesTSConfig, packageManager, verbose) {
48
+ validateMetadataLuaFileExists(packageManager, verbose);
49
+ const customStages = await getCustomStagesWithMetadata(customStagesTSConfig, verbose);
50
+ const customStagesLua = convertCustomStagesToLua(customStages);
51
+ file.write(METADATA_LUA_PATH, customStagesLua, verbose);
52
+ }
53
+ function validateMetadataLuaFileExists(packageManager, verbose) {
54
+ if (!file.isDir(ISAACSCRIPT_COMMON_PATH, verbose)) {
55
+ const addCommand = (0, packageManager_1.getPackageManagerAddCommand)(packageManager, ISAACSCRIPT_COMMON);
56
+ (0, utils_1.error)(`${chalk_1.default.red(`The custom stages feature requires a dependency of "${ISAACSCRIPT_COMMON}" in the "package.json" file. You can add it with the following command:`)} ${chalk_1.default.green(addCommand)}`);
57
+ }
58
+ if (!file.exists(METADATA_LUA_PATH, verbose)) {
59
+ (0, utils_1.error)(`${chalk_1.default.red("Failed to find the the custom stage metadata file at:")} ${chalk_1.default.green(METADATA_LUA_PATH)}`);
60
+ }
61
+ }
62
+ /**
63
+ * This parses all of the end-user's XML files and gathers metadata about all of the rooms within.
64
+ * (In other words, this creates the full set of `CustomStageLua` objects.)
65
+ */
66
+ async function getCustomStagesWithMetadata(customStagesTSConfig, verbose) {
67
+ if (!file.exists(METADATA_LUA_PATH, verbose)) {
68
+ (0, utils_1.error)(`${chalk_1.default.red("Failed to find the the custom stage metadata file at:")} ${chalk_1.default.green(METADATA_LUA_PATH)}`);
20
69
  }
21
- const templateHash = file.hash(SPECIAL_ROOMS_STB_TEMPLATE_PATH);
22
- // First, validate that the mod itself does not have a "00.special rooms.stb" file.
23
- const specialRoomsPath = path_1.default.join(modSourcePath, SPECIAL_ROOMS_STB_PARTIAL_PATH);
24
- if (file.exists(specialRoomsPath, verbose)) {
25
- const existingHash = file.hash(specialRoomsPath);
26
- if (existingHash === templateHash) {
27
- return;
70
+ const customStagesLua = [];
71
+ for (const customStageTSConfig of customStagesTSConfig) {
72
+ // Some manual input validation was already performed in the `getCustomStagesFromTSConfig`
73
+ // function.
74
+ const { name } = customStageTSConfig;
75
+ const { xmlPath } = customStageTSConfig;
76
+ const resolvedXMLPath = path_1.default.resolve(constants_1.CWD, xmlPath);
77
+ if (!file.exists(resolvedXMLPath, verbose)) {
78
+ (0, utils_1.error)(`${chalk_1.default.red("Failed to find the custom stage XML file at:")} ${chalk_1.default.green(resolvedXMLPath)}`);
28
79
  }
29
- (0, utils_1.error)('Currently, custom stages do not work with mods that have an existing "content/rooms/00.special rooms.stb" file. If this is a problem for your mod, you can request this feature in the IsaacScript Discord server.');
80
+ const xmlContents = file.read(resolvedXMLPath, verbose);
81
+ // eslint-disable-next-line no-await-in-loop
82
+ const jsonRoomsFile = (await xml2js_1.default.parseStringPromise(xmlContents));
83
+ const roomVariantSet = new Set();
84
+ const customStageRoomsMetadata = [];
85
+ for (const room of jsonRoomsFile.rooms.room) {
86
+ const typeString = room.$.type;
87
+ const type = (0, utils_1.parseIntSafe)(typeString);
88
+ if (Number.isNaN(type)) {
89
+ (0, utils_1.error)(`Failed to parse the type of one of the "${name}" custom stage rooms: ${typeString}`);
90
+ }
91
+ const variantString = room.$.variant;
92
+ const baseVariant = (0, utils_1.parseIntSafe)(variantString);
93
+ if (Number.isNaN(baseVariant)) {
94
+ (0, utils_1.error)(`Failed to parse the variant of one of the "${name}" custom stage rooms: ${variantString}`);
95
+ }
96
+ if (roomVariantSet.has(baseVariant)) {
97
+ (0, utils_1.error)(chalk_1.default.red(`There is more than one room with a variant of "${baseVariant}" in the "${name}" custom stage. Make sure that each room has a unique variant. (The room variant is also called the "ID" in Basement Renovator.)`));
98
+ }
99
+ roomVariantSet.add(baseVariant);
100
+ const roomVariantPrefix = customStageTSConfig.roomVariantPrefix * ROOM_VARIANT_MULTIPLIER;
101
+ const variant = roomVariantPrefix + baseVariant;
102
+ const subTypeString = room.$.subtype;
103
+ const subType = (0, utils_1.parseIntSafe)(subTypeString);
104
+ if (Number.isNaN(subType)) {
105
+ (0, utils_1.error)(`Failed to parse the sub-type of one of the "${name}" custom stage rooms: ${subTypeString}`);
106
+ }
107
+ const shapeString = room.$.shape;
108
+ const shape = (0, utils_1.parseIntSafe)(shapeString);
109
+ if (Number.isNaN(baseVariant)) {
110
+ (0, utils_1.error)(`Failed to parse the shape of one of the "${name}" custom stage rooms: ${shapeString}`);
111
+ }
112
+ const doorSlotFlags = (0, common_1.getJSONRoomDoorSlotFlags)(room);
113
+ const weightString = room.$.weight;
114
+ const weight = parseFloat(weightString);
115
+ if (Number.isNaN(baseVariant)) {
116
+ (0, utils_1.error)(`Failed to parse the weight of one of the "${name}" custom stage rooms: ${weightString}`);
117
+ }
118
+ const customStageRoomMetadata = {
119
+ type,
120
+ variant,
121
+ subType,
122
+ shape,
123
+ doorSlotFlags,
124
+ weight,
125
+ };
126
+ customStageRoomsMetadata.push(customStageRoomMetadata);
127
+ }
128
+ const customStageLua = {
129
+ ...customStageTSConfig,
130
+ roomsMetadata: customStageRoomsMetadata,
131
+ };
132
+ customStagesLua.push(customStageLua);
133
+ }
134
+ return customStagesLua;
135
+ }
136
+ function convertCustomStagesToLua(customStages) {
137
+ const customStagesString = JSON.stringify(customStages);
138
+ const fakeTypeScriptFile = `return ${customStagesString}`;
139
+ const result = tstl.transpileString(fakeTypeScriptFile, {
140
+ noHeader: true,
141
+ });
142
+ if (result.file === undefined || result.file.lua === undefined) {
143
+ (0, utils_1.error)("Failed to convert the JSON metadata for the custom stages to a Lua file.");
30
144
  }
31
- const roomsPath = path_1.default.join(modTargetPath, ROOMS_DIRECTORY_PARTIAL_PATH);
32
- if (!file.isDir(roomsPath, verbose)) {
33
- file.makeDir(roomsPath, verbose);
145
+ return result.file.lua;
146
+ }
147
+ /** We combine all of the custom stages together and add them to "00.special rooms.xml". */
148
+ function combineCustomStageXMLs(customStagesTSConfig, verbose) {
149
+ let allRooms = "";
150
+ for (const customStageTSConfig of customStagesTSConfig) {
151
+ const xmlPath = path_1.default.resolve(constants_1.CWD, customStageTSConfig.xmlPath);
152
+ if (!file.exists(xmlPath, verbose)) {
153
+ (0, utils_1.error)(`${chalk_1.default.red("Failed to find the custom stage XML file at:")} ${chalk_1.default.green(xmlPath)}`);
154
+ }
155
+ const xmlContents = file.read(xmlPath, verbose);
156
+ // It is easier to work with the XML files as text rather than converting it to JSON and then
157
+ // converting it back to XML.
158
+ const lines = xmlContents.trim().split("\n");
159
+ // Remove the first line of "<?xml version="1.0" ?>".
160
+ lines.shift();
161
+ // Remove the second line of "<rooms>".
162
+ lines.shift();
163
+ // Remove the last line of "</rooms>".
164
+ lines.pop();
165
+ // Change the variants
166
+ for (let i = 0; i < lines.length; i++) {
167
+ const line = lines[i];
168
+ if (line === undefined) {
169
+ continue;
170
+ }
171
+ if (!line.includes("<room")) {
172
+ continue;
173
+ }
174
+ const match = line.match(VARIANT_REGEX);
175
+ if (match === null) {
176
+ continue;
177
+ }
178
+ const baseVariantString = match[1];
179
+ if (baseVariantString === undefined) {
180
+ continue;
181
+ }
182
+ const baseVariant = (0, utils_1.parseIntSafe)(baseVariantString);
183
+ if (Number.isNaN(baseVariant)) {
184
+ (0, utils_1.error)(`Failed to parse the variant of one of the custom stage rooms: ${baseVariantString}`);
185
+ }
186
+ const roomVariantPrefix = customStageTSConfig.roomVariantPrefix * ROOM_VARIANT_MULTIPLIER;
187
+ const variant = roomVariantPrefix + baseVariant;
188
+ const newLine = line
189
+ .replace(VARIANT_REGEX, ` variant="${variant}"`)
190
+ .replace(WEIGHT_REGEX, ' weight="0.0"');
191
+ lines[i] = newLine;
192
+ }
193
+ const modifiedRooms = lines.join("\n");
194
+ allRooms += modifiedRooms;
34
195
  }
35
- file.copy(SPECIAL_ROOMS_STB_TEMPLATE_PATH, specialRoomsPath, verbose);
196
+ const combinedXMLFile = `
197
+ <?xml version="1.0" ?>
198
+ <rooms>
199
+ ${allRooms}
200
+ </rooms>
201
+ `.trim();
202
+ const specialRoomsXMLPath = path_1.default.join(constants_1.MOD_SOURCE_PATH, "content", "rooms", "00.special rooms.xml");
203
+ file.write(specialRoomsXMLPath, combinedXMLFile, verbose);
204
+ // TODO: convert XML to STB
205
+ // TODO: no need to write XML to mod directory, only STB
36
206
  }
37
- exports.copyCustomStageRooms = copyCustomStageRooms;
38
207
  //# sourceMappingURL=customStage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"customStage.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/customStage.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,2CAAoD;AACpD,qDAA+B;AAC/B,yCAAkD;AAClD,mCAAgC;AAEhC,MAAM,4BAA4B,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACnE,MAAM,8BAA8B,GAAG,cAAI,CAAC,IAAI,CAC9C,4BAA4B,EAC5B,sBAAsB,CACvB,CAAC;AACF,MAAM,+BAA+B,GAAG,cAAI,CAAC,IAAI,CAC/C,iCAAqB,EACrB,KAAK,EACL,8BAA8B,CAC/B,CAAC;AAEF,SAAgB,oBAAoB,CAClC,aAAqB,EACrB,aAAqB,EACrB,OAAgB;IAEhB,MAAM,iBAAiB,GAAG,IAAA,+BAAoB,EAAC,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,iBAAiB,EAAE;QACtB,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,EAAE,OAAO,CAAC,EAAE;QAC1D,IAAA,aAAK,EAAC,gEAAgE,CAAC,CAAC;KACzE;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAEhE,mFAAmF;IACnF,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,aAAa,EACb,8BAA8B,CAC/B,CAAC;IACF,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,YAAY,KAAK,YAAY,EAAE;YACjC,OAAO;SACR;QAED,IAAA,aAAK,EACH,oNAAoN,CACrN,CAAC;KACH;IAED,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,4BAA4B,CAAC,CAAC;IACzE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;QACnC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAClC;IAED,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AACxE,CAAC;AArCD,oDAqCC"}
1
+ {"version":3,"file":"customStage.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/customStage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DoorSlot = void 0;
4
+ var DoorSlot;
5
+ (function (DoorSlot) {
6
+ DoorSlot[DoorSlot["NO_DOOR_SLOT"] = -1] = "NO_DOOR_SLOT";
7
+ /** In a normal room, the left door. In a 2x2 room, the uppermost door on the left side. */
8
+ DoorSlot[DoorSlot["LEFT_0"] = 0] = "LEFT_0";
9
+ /** In a normal room, the top door. In a 2x2 room, the leftmost door on the top side. */
10
+ DoorSlot[DoorSlot["UP_0"] = 1] = "UP_0";
11
+ /** In a normal room, the right door. In a 2x2 room, the uppermost door on the right side. */
12
+ DoorSlot[DoorSlot["RIGHT_0"] = 2] = "RIGHT_0";
13
+ /** In a normal room, the bottom door. In a 2x2 room, the leftmost door on the bottom side. */
14
+ DoorSlot[DoorSlot["DOWN_0"] = 3] = "DOWN_0";
15
+ /** In a 2x2 room, the bottommost door on the left side. */
16
+ DoorSlot[DoorSlot["LEFT_1"] = 4] = "LEFT_1";
17
+ /** In a 2x2 room, the rightmost door on the top side. */
18
+ DoorSlot[DoorSlot["UP_1"] = 5] = "UP_1";
19
+ /** In a 2x2 room, the bottommost door on the right side. */
20
+ DoorSlot[DoorSlot["RIGHT_1"] = 6] = "RIGHT_1";
21
+ /** In a 2x2 room, the rightmost door on the bottom side. */
22
+ DoorSlot[DoorSlot["DOWN_1"] = 7] = "DOWN_1";
23
+ })(DoorSlot = exports.DoorSlot || (exports.DoorSlot = {}));
24
+ //# sourceMappingURL=DoorSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorSlot.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/DoorSlot.ts"],"names":[],"mappings":";;;AAAA,IAAY,QA0BX;AA1BD,WAAY,QAAQ;IAClB,wDAAiB,CAAA;IAEjB,2FAA2F;IAC3F,2CAAU,CAAA;IAEV,wFAAwF;IACxF,uCAAQ,CAAA;IAER,6FAA6F;IAC7F,6CAAW,CAAA;IAEX,8FAA8F;IAC9F,2CAAU,CAAA;IAEV,2DAA2D;IAC3D,2CAAU,CAAA;IAEV,yDAAyD;IACzD,uCAAQ,CAAA;IAER,4DAA4D;IAC5D,6CAAW,CAAA;IAEX,4DAA4D;IAC5D,2CAAU,CAAA;AACZ,CAAC,EA1BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA0BnB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /* eslint-disable no-bitwise */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DoorSlotFlagZero = exports.DoorSlotFlag = void 0;
5
+ const DoorSlot_1 = require("./DoorSlot");
6
+ /**
7
+ * For `GridEntityType.DOOR` (16)
8
+ *
9
+ * Corresponds to `DoorSlotFlag`.
10
+ *
11
+ * This is represented as an object instead of an enum due to limitations with TypeScript enums. (We
12
+ * want this type to be a child of the `BitFlag` type.)
13
+ *
14
+ * @enum
15
+ * @notExported
16
+ */
17
+ const DoorSlotFlagInternal = {
18
+ /** 1 << 0 */
19
+ LEFT_0: 1 << DoorSlot_1.DoorSlot.LEFT_0,
20
+ /** 1 << 1 */
21
+ UP_0: 1 << DoorSlot_1.DoorSlot.UP_0,
22
+ /** 1 << 2 */
23
+ RIGHT_0: 1 << DoorSlot_1.DoorSlot.RIGHT_0,
24
+ /** 1 << 3 */
25
+ DOWN_0: 1 << DoorSlot_1.DoorSlot.DOWN_0,
26
+ /** 1 << 4 */
27
+ LEFT_1: 1 << DoorSlot_1.DoorSlot.LEFT_1,
28
+ /** 1 << 5 */
29
+ UP_1: 1 << DoorSlot_1.DoorSlot.UP_1,
30
+ /** 1 << 6 */
31
+ RIGHT_1: 1 << DoorSlot_1.DoorSlot.RIGHT_1,
32
+ /** 1 << 7 */
33
+ DOWN_1: 1 << DoorSlot_1.DoorSlot.DOWN_1,
34
+ };
35
+ exports.DoorSlotFlag = DoorSlotFlagInternal;
36
+ exports.DoorSlotFlagZero = 0;
37
+ //# sourceMappingURL=DoorSlotFlag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorSlotFlag.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/DoorSlotFlag.ts"],"names":[],"mappings":";AAAA,+BAA+B;;;AAE/B,yCAAsC;AAOtC;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG;IAC3B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,IAAI,EAAE,CAAC,IAAI,mBAAQ,CAAC,IAAI;IAExB,aAAa;IACb,OAAO,EAAE,CAAC,IAAI,mBAAQ,CAAC,OAAO;IAE9B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;IAE5B,aAAa;IACb,IAAI,EAAE,CAAC,IAAI,mBAAQ,CAAC,IAAI;IAExB,aAAa;IACb,OAAO,EAAE,CAAC,IAAI,mBAAQ,CAAC,OAAO;IAE9B,aAAa;IACb,MAAM,EAAE,CAAC,IAAI,mBAAQ,CAAC,MAAM;CACpB,CAAC;AASE,QAAA,YAAY,GAAG,oBAAwC,CAAC;AAIxD,QAAA,gBAAgB,GAAG,CAA2B,CAAC"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/types/PackageManager.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
1
+ {"version":3,"file":"PackageManager.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/PackageManager.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,+BAAa,CAAA;AACf,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoomShape = void 0;
4
+ var RoomShape;
5
+ (function (RoomShape) {
6
+ /**
7
+ * A "normal" room.
8
+ *
9
+ * The "SHAPE_" prefix is necessary because enums cannot start with a number.
10
+ */
11
+ RoomShape[RoomShape["SHAPE_1x1"] = 1] = "SHAPE_1x1";
12
+ /** Narrow 1x1 horizontal. */
13
+ RoomShape[RoomShape["IH"] = 2] = "IH";
14
+ /** Narrow 1x1 vertical. */
15
+ RoomShape[RoomShape["IV"] = 3] = "IV";
16
+ /**
17
+ * 2x1 vertical.
18
+ *
19
+ * The "SHAPE_" prefix is necessary because enums cannot start with a number.
20
+ */
21
+ RoomShape[RoomShape["SHAPE_1x2"] = 4] = "SHAPE_1x2";
22
+ /** Narrow 2x1 vertical. */
23
+ RoomShape[RoomShape["IIV"] = 5] = "IIV";
24
+ /**
25
+ * 2x1 horizontal.
26
+ *
27
+ * The "SHAPE_" prefix is necessary because enums cannot start with a number.
28
+ */
29
+ RoomShape[RoomShape["SHAPE_2x1"] = 6] = "SHAPE_2x1";
30
+ /** Narrow 2x1 horizontal. */
31
+ RoomShape[RoomShape["IIH"] = 7] = "IIH";
32
+ /**
33
+ * The biggest room type.
34
+ *
35
+ * The "SHAPE_" prefix is necessary because enums cannot start with a number.
36
+ */
37
+ RoomShape[RoomShape["SHAPE_2x2"] = 8] = "SHAPE_2x2";
38
+ /** Looks like a "⅃" with a gap in the top-left-hand corner. */
39
+ RoomShape[RoomShape["LTL"] = 9] = "LTL";
40
+ /** Looks like an "L" with a gap in the top-right-hand corner. */
41
+ RoomShape[RoomShape["LTR"] = 10] = "LTR";
42
+ /** Looks like a "⅂" with a gap in the bottom-left-hand corner. */
43
+ RoomShape[RoomShape["LBL"] = 11] = "LBL";
44
+ /** Looks like a "Г" with a gap in the bottom-right-hand corner. */
45
+ RoomShape[RoomShape["LBR"] = 12] = "LBR";
46
+ })(RoomShape = exports.RoomShape || (exports.RoomShape = {}));
47
+ //# sourceMappingURL=RoomShape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoomShape.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/enums/RoomShape.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAoDX;AApDD,WAAY,SAAS;IACnB;;;;OAIG;IACH,mDAAa,CAAA;IAEb,6BAA6B;IAC7B,qCAAM,CAAA;IAEN,2BAA2B;IAC3B,qCAAM,CAAA;IAEN;;;;OAIG;IACH,mDAAa,CAAA;IAEb,2BAA2B;IAC3B,uCAAO,CAAA;IAEP;;;;OAIG;IACH,mDAAa,CAAA;IAEb,6BAA6B;IAC7B,uCAAO,CAAA;IAEP;;;;OAIG;IACH,mDAAa,CAAA;IAEb,+DAA+D;IAC/D,uCAAO,CAAA;IAEP,iEAAiE;IACjE,wCAAQ,CAAA;IAER,kEAAkE;IAClE,wCAAQ,CAAA;IAER,mEAAmE;IACnE,wCAAQ,CAAA;AACV,CAAC,EApDW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoDpB"}
package/src/file.js CHANGED
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.writeTry = exports.write = exports.touch = exports.rename = exports.read = exports.move = exports.makeDir = exports.isSubDirOf = exports.isFile = exports.isDir = exports.hash = exports.getDirList = exports.exists = exports.deleteFileOrDirectory = exports.copy = void 0;
3
+ exports.writeTry = exports.write = exports.touch = exports.rename = exports.read = exports.move = exports.makeDir = exports.isSubDirOf = exports.isFile = exports.isDir = exports.getDirList = exports.exists = exports.deleteFileOrDirectory = exports.copy = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
- const crypto_1 = tslib_1.__importDefault(require("crypto"));
7
6
  const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
8
7
  const path_1 = tslib_1.__importDefault(require("path"));
9
8
  const utils_1 = require("./utils");
@@ -18,7 +17,7 @@ function copy(srcPath, dstPath, verbose) {
18
17
  });
19
18
  }
20
19
  catch (err) {
21
- (0, utils_1.error)(`Failed to copy directory "${chalk_1.default.green(srcPath)}" to "${chalk_1.default.green(dstPath)}":`, err);
20
+ (0, utils_1.error)(`Failed to copy file or directory "${chalk_1.default.green(srcPath)}" to "${chalk_1.default.green(dstPath)}":`, err);
22
21
  }
23
22
  if (verbose) {
24
23
  console.log(`Copied: ${srcPath} --> ${dstPath}`);
@@ -59,6 +58,10 @@ function exists(filePath, verbose) {
59
58
  return pathExists;
60
59
  }
61
60
  exports.exists = exists;
61
+ /**
62
+ * Returns an array of the file names inside of the directory. (If the full path is required, you
63
+ * must manually join it with the path to the directory.)
64
+ */
62
65
  function getDirList(dirPath, verbose) {
63
66
  if (verbose) {
64
67
  console.log(`Getting a directory list from: ${dirPath}`);
@@ -92,20 +95,6 @@ function getFileStats(filePath, verbose) {
92
95
  }
93
96
  return fileStats;
94
97
  }
95
- function hash(filePath) {
96
- // We can't use the "read" function because we want the file as bytes.
97
- let fileContents;
98
- try {
99
- fileContents = fs_extra_1.default.readFileSync(filePath);
100
- }
101
- catch (err) {
102
- (0, utils_1.error)(`Failed to read the "${chalk_1.default.green(filePath)}" file for hashing:`, err);
103
- }
104
- const hashSum = crypto_1.default.createHash("sha256");
105
- hashSum.update(fileContents);
106
- return hashSum.digest("hex");
107
- }
108
- exports.hash = hash;
109
98
  function isDir(filePath, verbose) {
110
99
  const fileStats = getFileStats(filePath, verbose);
111
100
  return fileStats.isDirectory();
package/src/file.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../packages/isaacscript-cli/src/file.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubCLIHostsYAML.js","sourceRoot":"","sources":["../../../../../packages/isaacscript-cli/src/interfaces/GitHubCLIHostsYAML.ts"],"names":[],"mappings":""}