@interopio/iocd-cli 0.0.64 → 0.0.65
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/changelog.md +4 -5
- package/dist/commands/create.command.js +10 -2
- package/dist/commands/create.command.js.map +1 -1
- package/dist/services/dev.service.js +1 -2
- package/dist/services/dev.service.js.map +1 -1
- package/dist/services/modifications/modifications.service.js +77 -41
- package/dist/services/modifications/modifications.service.js.map +1 -1
- package/dist/services/modifications/modifications.tracker.js +101 -16
- package/dist/services/modifications/modifications.tracker.js.map +1 -1
- package/dist/utils/fs.helper.js +39 -0
- package/dist/utils/fs.helper.js.map +1 -0
- package/package.json +2 -1
package/changelog.md
CHANGED
|
@@ -5,15 +5,14 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [0.0.
|
|
8
|
+
## [0.0.65](https://github.com/InteropIO/iocd-seed-temp/compare/iocd-cli-v0.0.64...iocd-cli-v0.0.65) (2026-01-13)
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### Bug Fixes
|
|
12
12
|
|
|
13
|
-
*
|
|
14
|
-
* **G4E-10203:** add tracking and resetting for modifications. ([957fa05](https://github.com/InteropIO/iocd-seed-temp/commit/957fa05a8a398815ed1319576a69f361d33f8ed4))
|
|
15
|
-
* replace PowerShell zip extraction with extract-zip library ([710555a](https://github.com/InteropIO/iocd-seed-temp/commit/710555aa7c798dc29679b22e67af8de8954bc5ca))
|
|
13
|
+
* removing modification file does not remove the new file from the component ([#14](https://github.com/InteropIO/iocd-seed-temp/issues/14)) ([767ce7c](https://github.com/InteropIO/iocd-seed-temp/commit/767ce7ca450ae08c0cd7d947e831c44b0718e962))
|
|
16
14
|
|
|
15
|
+
## [0.0.64](https://github.com/InteropIO/iocd-seed-temp/compare/iocd-cli-v0.0.63...iocd-cli-v0.0.64) (2026-01-10)
|
|
17
16
|
|
|
18
17
|
### Bug Fixes
|
|
19
18
|
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createCommand = void 0;
|
|
4
7
|
const commander_1 = require("commander");
|
|
5
8
|
const error_handler_1 = require("../utils/error.handler");
|
|
6
9
|
const create_service_1 = require("../services/create.service");
|
|
10
|
+
const license_service_1 = __importDefault(require("../services/license.service"));
|
|
7
11
|
exports.createCommand = new commander_1.Command("create")
|
|
8
12
|
.description("Create a new io.Connect Desktop project")
|
|
9
13
|
.option("--source <url/path>", "Override component source during setup")
|
|
@@ -12,7 +16,7 @@ exports.createCommand = new commander_1.Command("create")
|
|
|
12
16
|
.option("--folder-name <name>", "Folder name for non-interactive mode")
|
|
13
17
|
.option("--components <components>", 'Comma-separated list of components (e.g., "iocd,demos,devTools")')
|
|
14
18
|
.option("--applications <applications>", 'Comma-separated list of applications (e.g., "groups,workspaces")')
|
|
15
|
-
.option("--license-key <key>", "License key for non-interactive mode")
|
|
19
|
+
.option("--license-key <key>", "License key for non-interactive mode (required)")
|
|
16
20
|
.option("--use-current-folder", "Install in current folder (non-interactive mode)")
|
|
17
21
|
.action(async (options) => {
|
|
18
22
|
try {
|
|
@@ -22,6 +26,10 @@ exports.createCommand = new commander_1.Command("create")
|
|
|
22
26
|
if (!options.productName || !options.folderName) {
|
|
23
27
|
throw new Error("Non-interactive mode requires --product-name and --folder-name options");
|
|
24
28
|
}
|
|
29
|
+
const resolvedLicenseKey = options.licenseKey ?? license_service_1.default.getLicenseKey();
|
|
30
|
+
if (!resolvedLicenseKey) {
|
|
31
|
+
throw new Error("Non-interactive mode requires a license key. Provide --license-key or set IOCD_LICENSE_KEY / config/iocd.license.key");
|
|
32
|
+
}
|
|
25
33
|
await setupService.runNonInteractiveSetup({
|
|
26
34
|
productName: options.productName,
|
|
27
35
|
folderName: options.folderName,
|
|
@@ -31,7 +39,7 @@ exports.createCommand = new commander_1.Command("create")
|
|
|
31
39
|
applications: options.applications
|
|
32
40
|
? options.applications.split(",").map((a) => a.trim())
|
|
33
41
|
: [],
|
|
34
|
-
licenseKey:
|
|
42
|
+
licenseKey: resolvedLicenseKey,
|
|
35
43
|
source: options.source,
|
|
36
44
|
useCurrentFolder: options.useCurrentFolder,
|
|
37
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.command.js","sourceRoot":"","sources":["../../src/commands/create.command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.command.js","sourceRoot":"","sources":["../../src/commands/create.command.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,0DAAsD;AACtD,+DAA2D;AAC3D,kFAAyD;AAE5C,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,wCAAwC,CAAC;KACvE,MAAM,CACL,mBAAmB,EACnB,oDAAoD,CACrD;KACA,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC;KACxE,MAAM,CAAC,sBAAsB,EAAE,sCAAsC,CAAC;KACtE,MAAM,CACL,2BAA2B,EAC3B,kEAAkE,CACnE;KACA,MAAM,CACL,+BAA+B,EAC/B,kEAAkE,CACnE;KACA,MAAM,CACL,qBAAqB,EACrB,iDAAiD,CAClD;KACA,MAAM,CACL,sBAAsB,EACtB,kDAAkD,CACnD;KACA,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;IACtB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,8BAAa,EAAE,CAAC;QAEzC,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,qDAAqD;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;YACJ,CAAC;YAED,MAAM,kBAAkB,GACtB,OAAO,CAAC,UAAU,IAAI,yBAAc,CAAC,aAAa,EAAE,CAAC;YACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,sHAAsH,CACvH,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,CAAC,sBAAsB,CAAC;gBACxC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC5B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5D,CAAC,CAAC,CAAC,MAAM,CAAC;gBACZ,YAAY,EAAE,OAAO,CAAC,YAAY;oBAChC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC9D,CAAC,CAAC,EAAE;gBACN,UAAU,EAAE,kBAAkB;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4BAAY,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -7,7 +7,6 @@ exports.startDevMode = startDevMode;
|
|
|
7
7
|
const modifications_service_1 = require("./modifications/modifications.service");
|
|
8
8
|
const child_process_1 = require("child_process");
|
|
9
9
|
const logger_1 = require("../utils/logger");
|
|
10
|
-
const child_process_2 = require("child_process");
|
|
11
10
|
const path_1 = require("../utils/path");
|
|
12
11
|
const fs_1 = require("fs");
|
|
13
12
|
const ensure_iocd_exists_1 = require("../utils/ensure.iocd.exists");
|
|
@@ -56,7 +55,7 @@ async function launchIocdComponent(extraArgs) {
|
|
|
56
55
|
if (extraArgs.length > 0)
|
|
57
56
|
startingMessage += ` with arguments: ${extraArgs.join(" ")}`;
|
|
58
57
|
logger.debug(startingMessage);
|
|
59
|
-
(0,
|
|
58
|
+
(0, child_process_1.spawnSync)(executablePath, extraArgs, {
|
|
60
59
|
stdio: "inherit",
|
|
61
60
|
cwd: path_1.PathUtils.getComponentDir("iocd"),
|
|
62
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.service.js","sourceRoot":"","sources":["../../src/services/dev.service.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"dev.service.js","sourceRoot":"","sources":["../../src/services/dev.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,19 @@ const getVars = () => {
|
|
|
61
61
|
async function applyModifications(mode) {
|
|
62
62
|
try {
|
|
63
63
|
logger.info(`Resetting previous modifications...`);
|
|
64
|
+
// Reset regular modifications (without basePath)
|
|
64
65
|
modifications_tracker_1.ModificationsTracker.resetAll();
|
|
66
|
+
// On macOS, also reset iocd component modifications that use basePath tracking
|
|
67
|
+
if (process.platform === "darwin") {
|
|
68
|
+
const componentsDir = (0, path_1.join)(process.cwd(), "components");
|
|
69
|
+
const iocdDir = (0, path_1.join)(componentsDir, "iocd");
|
|
70
|
+
const appBundleName = config_service_1.ConfigManager.config.mac?.appBundleName;
|
|
71
|
+
if (appBundleName && (0, fs_1.existsSync)(iocdDir)) {
|
|
72
|
+
const targetAppBundlePath = (0, path_1.join)(iocdDir, appBundleName);
|
|
73
|
+
// Reset modifications tracked relative to the app bundle
|
|
74
|
+
modifications_tracker_1.ModificationsTracker.resetAll(targetAppBundlePath);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
65
77
|
logger.info(`Applying modifications in ${mode} mode...`);
|
|
66
78
|
const componentsDir = (0, path_1.join)(process.cwd(), "components");
|
|
67
79
|
if (!(0, fs_1.existsSync)(componentsDir)) {
|
|
@@ -139,8 +151,13 @@ async function applyModifications(mode) {
|
|
|
139
151
|
}
|
|
140
152
|
/**
|
|
141
153
|
* Recursively process a modification directory and apply changes to the target
|
|
154
|
+
* @param modDir - The modifications source directory
|
|
155
|
+
* @param targetDir - The target directory to apply modifications to
|
|
156
|
+
* @param mode - The mode (dev or build)
|
|
157
|
+
* @param basePath - Optional base path for tracking (used for macOS iocd component)
|
|
158
|
+
* @param physicalBasePath - Optional physical base path where files actually exist (for computing relative paths)
|
|
142
159
|
*/
|
|
143
|
-
async function processModificationDirectory(modDir, targetDir, mode) {
|
|
160
|
+
async function processModificationDirectory(modDir, targetDir, mode, basePath, physicalBasePath) {
|
|
144
161
|
const items = (0, fs_1.readdirSync)(modDir, { withFileTypes: true });
|
|
145
162
|
logger.debug(`Processing modifications in ${modDir} with targetDir ${targetDir}`);
|
|
146
163
|
for (const item of items) {
|
|
@@ -148,17 +165,17 @@ async function processModificationDirectory(modDir, targetDir, mode) {
|
|
|
148
165
|
const modItemPath = (0, path_1.join)(modDir, item.name);
|
|
149
166
|
const targetItemPath = (0, path_1.join)(targetDir, item.name);
|
|
150
167
|
if (item.isDirectory()) {
|
|
151
|
-
await processDirectory(modItemPath, targetItemPath, mode);
|
|
168
|
+
await processDirectory(modItemPath, targetItemPath, mode, basePath, physicalBasePath);
|
|
152
169
|
}
|
|
153
170
|
else {
|
|
154
|
-
await processFile(modItemPath, targetItemPath, item.name, mode);
|
|
171
|
+
await processFile(modItemPath, targetItemPath, item.name, mode, basePath, physicalBasePath);
|
|
155
172
|
}
|
|
156
173
|
}
|
|
157
174
|
}
|
|
158
175
|
/**
|
|
159
176
|
* Process a directory modification
|
|
160
177
|
*/
|
|
161
|
-
async function processDirectory(modDirPath, targetDirPath, mode) {
|
|
178
|
+
async function processDirectory(modDirPath, targetDirPath, mode, basePath, physicalBasePath) {
|
|
162
179
|
logger.debug(`Processing directory ${modDirPath} with targetDir ${targetDirPath}`);
|
|
163
180
|
// Check for .replace marker in the modification directory
|
|
164
181
|
const replaceMarkerPath = (0, path_1.join)(modDirPath, ".replace");
|
|
@@ -170,7 +187,7 @@ async function processDirectory(modDirPath, targetDirPath, mode) {
|
|
|
170
187
|
// Delete the entire target directory
|
|
171
188
|
if ((0, fs_1.existsSync)(targetDirPath)) {
|
|
172
189
|
logger.debug(` Deleting directory: ${(0, path_1.relative)(process.cwd(), targetDirPath)}`);
|
|
173
|
-
trackAndRemove(targetDirPath);
|
|
190
|
+
trackAndRemove(targetDirPath, basePath, physicalBasePath);
|
|
174
191
|
logger.debug(`Deleted directory: ${(0, path_1.relative)(process.cwd(), targetDirPath)}`);
|
|
175
192
|
}
|
|
176
193
|
return;
|
|
@@ -179,7 +196,7 @@ async function processDirectory(modDirPath, targetDirPath, mode) {
|
|
|
179
196
|
// Replace the entire directory
|
|
180
197
|
if ((0, fs_1.existsSync)(targetDirPath)) {
|
|
181
198
|
logger.debug(`Replacing directory: ${(0, path_1.relative)(process.cwd(), targetDirPath)}`);
|
|
182
|
-
trackAndRemove(targetDirPath);
|
|
199
|
+
trackAndRemove(targetDirPath, basePath, physicalBasePath);
|
|
183
200
|
}
|
|
184
201
|
// Create target directory
|
|
185
202
|
(0, fs_1.mkdirSync)(targetDirPath, { recursive: true });
|
|
@@ -206,13 +223,13 @@ async function processDirectory(modDirPath, targetDirPath, mode) {
|
|
|
206
223
|
if (!(0, fs_1.existsSync)(targetDirPath)) {
|
|
207
224
|
(0, fs_1.mkdirSync)(targetDirPath, { recursive: true });
|
|
208
225
|
}
|
|
209
|
-
await processModificationDirectory(modDirPath, targetDirPath, mode);
|
|
226
|
+
await processModificationDirectory(modDirPath, targetDirPath, mode, basePath, physicalBasePath);
|
|
210
227
|
}
|
|
211
228
|
}
|
|
212
229
|
/**
|
|
213
230
|
* Process a file modification
|
|
214
231
|
*/
|
|
215
|
-
async function processFile(modFilePath, targetFilePath, fileName, mode) {
|
|
232
|
+
async function processFile(modFilePath, targetFilePath, fileName, mode, basePath, physicalBasePath) {
|
|
216
233
|
if (fileName.endsWith(".gitkeep")) {
|
|
217
234
|
// ignore .gitkeep files
|
|
218
235
|
return;
|
|
@@ -223,7 +240,7 @@ async function processFile(modFilePath, targetFilePath, fileName, mode) {
|
|
|
223
240
|
const actualTargetPath = (0, path_1.join)((0, path_1.dirname)(targetFilePath), targetFile);
|
|
224
241
|
logger.debug(`Deleting file: ${(0, path_1.relative)(process.cwd(), actualTargetPath)}`);
|
|
225
242
|
if ((0, fs_1.existsSync)(actualTargetPath)) {
|
|
226
|
-
trackAndRemove(actualTargetPath);
|
|
243
|
+
trackAndRemove(actualTargetPath, basePath, physicalBasePath);
|
|
227
244
|
logger.debug(`Deleted file: ${(0, path_1.relative)(process.cwd(), actualTargetPath)}`);
|
|
228
245
|
}
|
|
229
246
|
else {
|
|
@@ -253,14 +270,14 @@ async function processFile(modFilePath, targetFilePath, fileName, mode) {
|
|
|
253
270
|
const baseFileName = fileName.split(".json.merge")[0];
|
|
254
271
|
const targetFile = baseFileName + ".json"; // Remove '.merge' and ensure .json
|
|
255
272
|
const actualTargetPath = (0, path_1.join)((0, path_1.dirname)(targetFilePath), targetFile);
|
|
256
|
-
modifications_tracker_1.ModificationsTracker.add(actualTargetPath);
|
|
273
|
+
modifications_tracker_1.ModificationsTracker.add(actualTargetPath, basePath, physicalBasePath);
|
|
257
274
|
await mergeJsonFile(modFilePath, actualTargetPath);
|
|
258
275
|
expandVarsSync(actualTargetPath, mode);
|
|
259
276
|
return;
|
|
260
277
|
}
|
|
261
278
|
// Handle regular file replacement
|
|
262
279
|
ensureDirectoryExists((0, path_1.dirname)(targetFilePath));
|
|
263
|
-
modifications_tracker_1.ModificationsTracker.add(targetFilePath);
|
|
280
|
+
modifications_tracker_1.ModificationsTracker.add(targetFilePath, basePath, physicalBasePath);
|
|
264
281
|
(0, fs_1.copyFileSync)(modFilePath, targetFilePath);
|
|
265
282
|
if (fileName.endsWith(".json")) {
|
|
266
283
|
// expand vars in the final file only if json
|
|
@@ -364,20 +381,24 @@ function getActualComponentPath(baseComponentPath, componentName) {
|
|
|
364
381
|
* Special handling for iocd component on macOS app bundles.
|
|
365
382
|
*
|
|
366
383
|
* This function handles the complex process of applying modifications to macOS .app bundles,
|
|
367
|
-
* which require special handling due to code signing and permission constraints.
|
|
368
|
-
* involves copying the entire app bundle to a temporary location, applying modifications there,
|
|
369
|
-
* and then moving it back to replace the original.
|
|
384
|
+
* which require special handling due to code signing and permission constraints.
|
|
370
385
|
*
|
|
371
|
-
*
|
|
372
|
-
* 1.
|
|
373
|
-
* 2.
|
|
374
|
-
* 3.
|
|
375
|
-
* 4.
|
|
376
|
-
* 5.
|
|
377
|
-
*
|
|
386
|
+
* Strategy (optimized for performance and symlink preservation):
|
|
387
|
+
* 1. Reset any previous modifications tracked with the target bundle as basePath
|
|
388
|
+
* 2. Move the original bundle to temp (fast, no copy overhead)
|
|
389
|
+
* 3. Apply modifications to the temp bundle, tracking individual files with basePath
|
|
390
|
+
* 4. Rename app bundle contents (executable, Info.plist, Helper apps)
|
|
391
|
+
* 5. Move the modified bundle back to the target location
|
|
392
|
+
*
|
|
393
|
+
* This approach:
|
|
394
|
+
* - Tracks individual modified files instead of the whole bundle
|
|
395
|
+
* - Uses move instead of copy for ~500MB bundles (much faster)
|
|
396
|
+
* - Preserves Electron Framework symlinks (avoids codesign failures)
|
|
397
|
+
* - Supports proper incremental restore on subsequent runs
|
|
378
398
|
*
|
|
379
399
|
* @param modComponentDir - Path to the modifications directory for the iocd component
|
|
380
400
|
* @param baseTargetComponentDir - Path to the base target component directory (components/iocd)
|
|
401
|
+
* @param mode - The mode (dev or build)
|
|
381
402
|
* @throws {Error} When macOS helper is not available or app bundle cannot be found
|
|
382
403
|
* @throws {Error} When file operations fail during the modification process
|
|
383
404
|
*/
|
|
@@ -402,51 +423,66 @@ async function processIocdComponentOnMacOS(modComponentDir, baseTargetComponentD
|
|
|
402
423
|
throw new Error(`App bundle path not found: ${currentAppBundlePath}`);
|
|
403
424
|
}
|
|
404
425
|
}
|
|
405
|
-
//
|
|
406
|
-
const tempDir = (0, path_1.join)(process.cwd(), "temp");
|
|
407
|
-
const tempAppPath = (0, path_1.join)(tempDir,
|
|
426
|
+
// Temp directory structure: .iocd-cli/temp/components/iocd/<bundle>.app
|
|
427
|
+
const tempDir = (0, path_1.join)(process.cwd(), ".iocd-cli", "temp", "components", "iocd");
|
|
428
|
+
const tempAppPath = (0, path_1.join)(tempDir, appBundleName);
|
|
408
429
|
try {
|
|
409
430
|
// Create temp directory
|
|
410
431
|
if (!(0, fs_1.existsSync)(tempDir)) {
|
|
411
432
|
(0, fs_1.mkdirSync)(tempDir, { recursive: true });
|
|
412
433
|
}
|
|
413
|
-
// Remove any existing temp app
|
|
434
|
+
// Remove any existing temp app from previous failed runs
|
|
414
435
|
if ((0, fs_1.existsSync)(tempAppPath)) {
|
|
415
436
|
(0, fs_1.rmSync)(tempAppPath, { recursive: true, force: true });
|
|
416
437
|
}
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
(0, child_process_1.execSync)(`
|
|
438
|
+
// Step 1: Move the bundle to temp (fast, preserves symlinks)
|
|
439
|
+
logger.debug(`Moving app bundle to temp location: ${tempAppPath}`);
|
|
440
|
+
(0, child_process_1.execSync)(`mv "${currentAppBundlePath}" "${tempAppPath}"`, {
|
|
420
441
|
stdio: "pipe",
|
|
421
442
|
});
|
|
422
|
-
// Apply modifications to the temp
|
|
443
|
+
// Step 2: Apply modifications to the temp bundle
|
|
444
|
+
// Track individual files with targetAppBundlePath as basePath so resetAll() can find them later
|
|
445
|
+
// Pass tempAppPath as physicalBasePath since files are physically there during processing
|
|
423
446
|
const tempContentsPath = (0, path_1.join)(tempAppPath, "Contents");
|
|
424
|
-
await processModificationDirectory(modComponentDir, tempContentsPath, mode);
|
|
447
|
+
await processModificationDirectory(modComponentDir, tempContentsPath, mode, targetAppBundlePath, tempAppPath);
|
|
448
|
+
// Step 3: Rename app bundle contents (executable, Info.plist, Helper apps)
|
|
425
449
|
await macOSHelper.renameAppBundleContents(tempAppPath, appBundleName);
|
|
426
|
-
//
|
|
427
|
-
logger.debug(`Removing original app bundle: ${currentAppBundlePath}`);
|
|
428
|
-
trackAndRemove(currentAppBundlePath);
|
|
429
|
-
// Move the modified temp app back
|
|
450
|
+
// Step 4: Move the modified bundle back to target location
|
|
430
451
|
logger.debug(`Moving modified app bundle back: ${targetAppBundlePath}`);
|
|
431
452
|
(0, child_process_1.execSync)(`mv "${tempAppPath}" "${targetAppBundlePath}"`, { stdio: "pipe" });
|
|
453
|
+
// Step 5: Clean up temp directory if empty
|
|
454
|
+
try {
|
|
455
|
+
// Remove the iocd temp dir if it's now empty
|
|
456
|
+
if ((0, fs_1.existsSync)(tempDir) && (0, fs_1.readdirSync)(tempDir).length === 0) {
|
|
457
|
+
(0, fs_1.rmSync)(tempDir, { recursive: true, force: true });
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
catch (cleanupError) {
|
|
461
|
+
// Ignore cleanup errors - not critical
|
|
462
|
+
logger.debug(`Temp cleanup skipped: ${cleanupError}`);
|
|
463
|
+
}
|
|
432
464
|
logger.debug("Successfully applied modifications to macOS app bundle");
|
|
433
465
|
}
|
|
434
466
|
catch (error) {
|
|
435
467
|
logger.error(`Failed to process iocd component on macOS: ${error}`);
|
|
436
|
-
//
|
|
437
|
-
if ((0, fs_1.existsSync)(tempAppPath)) {
|
|
468
|
+
// Recovery: Try to move the bundle back if it's still in temp
|
|
469
|
+
if ((0, fs_1.existsSync)(tempAppPath) && !(0, fs_1.existsSync)(targetAppBundlePath)) {
|
|
438
470
|
try {
|
|
439
|
-
|
|
471
|
+
logger.warn("Attempting to recover by moving bundle back from temp...");
|
|
472
|
+
(0, child_process_1.execSync)(`mv "${tempAppPath}" "${targetAppBundlePath}"`, {
|
|
473
|
+
stdio: "pipe",
|
|
474
|
+
});
|
|
475
|
+
logger.info("Recovery successful - bundle restored to original location");
|
|
440
476
|
}
|
|
441
|
-
catch (
|
|
442
|
-
logger.
|
|
477
|
+
catch (recoveryError) {
|
|
478
|
+
logger.error(`Recovery failed: ${recoveryError}`);
|
|
443
479
|
}
|
|
444
480
|
}
|
|
445
481
|
throw error;
|
|
446
482
|
}
|
|
447
483
|
}
|
|
448
|
-
function trackAndRemove(targetPath) {
|
|
449
|
-
modifications_tracker_1.ModificationsTracker.add(targetPath);
|
|
484
|
+
function trackAndRemove(targetPath, basePath, physicalBasePath) {
|
|
485
|
+
modifications_tracker_1.ModificationsTracker.add(targetPath, basePath, physicalBasePath);
|
|
450
486
|
(0, fs_1.rmSync)(targetPath, { recursive: true, force: true });
|
|
451
487
|
}
|
|
452
488
|
//# sourceMappingURL=modifications.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifications.service.js","sourceRoot":"","sources":["../../../src/services/modifications/modifications.service.ts"],"names":[],"mappings":";;AAoEA,gDAoHC;AAxLD,2BAQY;AACZ,+BAA+C;AAC/C,iDAAyC;AACzC,+CAA4C;AAC5C,6DAAyD;AACzD,uDAAmD;AACnD,qDAA6C;AAC7C,mEAA+D;AAE/D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC5C,kDAAkD;AAClD,IAAI,WAAW,GAAQ,IAAI,CAAC;AAC5B,IAAI,KAAK,EAAE,CAAC;IACV,IAAI,CAAC;QACH,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,oCAAoC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAE3D,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO;QACL,GAAG,EAAE;YACH;gBACE,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB;aACnE;YACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO;aAC/C;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,WAAW,IAAI,oBAAoB;aAChE;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,WAAW,IAAI,oBAAoB;aAChE;SACF;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,6BAA6B,EAAE;YACjE;gBACE,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO;aAC/C;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,WAAW,IAAI,oBAAoB;aAChE;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,8BAAa,CAAC,MAAM,CAAC,WAAW,IAAI,oBAAoB;aAChE;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,KAAK,UAAU,kBAAkB,CAAC,IAAqB;IAC5D,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,4CAAoB,CAAC,QAAQ,EAAE,CAAC;QAEhC,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,UAAU,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CACV,oEAAoE,CACrE,CAAC;YACF,MAAM,IAAA,0BAAS,GAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACvE,CAAC;QAED,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG;YACvB;gBACE,IAAI,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC;gBAClD,IAAI,EAAE,oBAAoB;aAC3B;YACD;gBACE,IAAI,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC;gBAChD,IAAI,EAAE,GAAG,IAAI,yBAAyB;aACvC;SACF,CAAC;QAEF,IAAI,yBAAyB,GAAG,CAAC,CAAC;QAElC,kDAAkD;QAClD,KAAK,MAAM,EACT,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,cAAc,GACrB,IAAI,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,IAAA,eAAU,EAAC,gBAAgB,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,MAAM,cAAc,6BAA6B,CAAC,CAAC;gBAChE,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CACT,cAAc,cAAc,UAAU,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAClF,CAAC;YAEF,6DAA6D;YAC7D,MAAM,aAAa,GAAG,IAAA,gBAAW,EAAC,gBAAgB,EAAE;gBAClD,aAAa,EAAE,IAAI;aACpB,CAAC;iBACC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;iBACtC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,uCAAuC,cAAc,EAAE,CAAC,CAAC;gBACtE,SAAS;YACX,CAAC;YAED,KAAK,MAAM,aAAa,IAAI,aAAa,EAAE,CAAC;gBAC1C,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;gBAC9D,MAAM,sBAAsB,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;gBAElE,IAAI,CAAC,IAAA,eAAU,EAAC,sBAAsB,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CACT,8BAA8B,aAAa,uBAAuB,CACnE,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,uDAAuD;gBACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAC9D,MAAM,2BAA2B,CAC/B,eAAe,EACf,sBAAsB,EACtB,IAAI,CACL,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,kBAAkB,GAAG,sBAAsB,CAC/C,sBAAsB,EACtB,aAAa,CACd,CAAC;oBACF,IAAI,CAAC,IAAA,eAAU,EAAC,kBAAkB,CAAC,EAAE,CAAC;wBACpC,MAAM,CAAC,IAAI,CACT,yBAAyB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,uBAAuB,CAC5F,CAAC;wBACF,SAAS;oBACX,CAAC;oBAED,MAAM,CAAC,IAAI,CACT,YAAY,cAAc,mBAAmB,aAAa,EAAE,CAC7D,CAAC;oBACF,MAAM,4BAA4B,CAChC,eAAe,EACf,kBAAkB,EAClB,IAAI,CACL,CAAC;gBACJ,CAAC;gBACD,yBAAyB,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,yBAAyB,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,4CAA4C,yBAAyB,yCAAyC,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,4BAA4B,CACzC,MAAc,EACd,SAAiB,EACjB,IAAqB;IAErB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,CACV,+BAA+B,MAAM,mBAAmB,SAAS,EAAE,CACpE,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,UAAkB,EAClB,aAAqB,EACrB,IAAqB;IAErB,MAAM,CAAC,KAAK,CACV,wBAAwB,UAAU,mBAAmB,aAAa,EAAE,CACrE,CAAC;IAEF,0DAA0D;IAC1D,MAAM,iBAAiB,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,IAAA,eAAU,EAAC,iBAAiB,CAAC,CAAC;IAEvD,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,IAAA,eAAU,EAAC,gBAAgB,CAAC,CAAC;IAErD,IAAI,eAAe,EAAE,CAAC;QACpB,qCAAqC;QACrC,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CACV,wBAAwB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,EAAE,CACjE,CAAC;YACF,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CACV,sBAAsB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,+BAA+B;QAC/B,IAAI,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,CACV,wBAAwB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,EAAE,CACjE,CAAC;YACF,cAAc,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QAED,0BAA0B;QAC1B,IAAA,cAAS,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE9C,4CAA4C;QAC5C,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;gBAAE,SAAS;YAEvC,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,qBAAqB,CAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC,CAAC;gBACzC,IAAA,iBAAY,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CACV,uBAAuB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,EAAE,CAChE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,IAAA,cAAS,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,4BAA4B,CAAC,UAAU,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,WAAmB,EACnB,cAAsB,EACtB,QAAgB,EAChB,IAAqB;IAErB,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,wBAAwB;QACxB,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QACpE,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC5E,IAAI,IAAA,eAAU,EAAC,gBAAgB,CAAC,EAAE,CAAC;YACjC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CACV,iBAAiB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAC7D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CACV,mBAAmB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,kEAAkE;IAClE,MAAM,eAAe,GACnB,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,eAAe,EAAE,CAAC;QACpB,uDAAuD;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;QACzC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,oCAAoC;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9B,iDAAiD;YACjD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1E,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,eAAe,EAAE,CAAC;gBAC7D,MAAM,CAAC,KAAK,CACV,YAAY,QAAQ,4BAA4B,gBAAgB,yBAAyB,eAAe,EAAE,CAC3G,CAAC;gBACF,OAAO,CAAC,iBAAiB;YAC3B,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC,mCAAmC;QAC9E,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;QACnE,4CAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,aAAa,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QACnD,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,qBAAqB,CAAC,IAAA,cAAO,EAAC,cAAc,CAAC,CAAC,CAAC;IAC/C,4CAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,IAAA,iBAAY,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,6CAA6C;QAC7C,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB,EAAE,IAAqB;IAC7D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnC,wBAAwB;IACxB,IAAI,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9C,qDAAqD;IACrD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QACzD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,CAAkC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC3D,EAAE,KAAK,CAAC;QACT,MAAM,KAAK,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtD,+DAA+D;QAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,OAAO,UAAU,EAAE,CAAC,CAAC;QAC9D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,IAAA,kBAAa,EAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,UAAkB;IAElB,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,sBAAsB,SAAS,SAAS,UAAU,EAAE,CAAC,CAAC;QACnE,sBAAsB;QACtB,MAAM,YAAY,GAAG,IAAA,iBAAY,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE3C,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,yCAAyC;QACzC,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;QAED,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAA,sBAAS,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEpD,0BAA0B;QAC1B,qBAAqB,CAAC,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC,CAAC;QAC3C,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAExE,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,SAAS,KAAK,KAAK,EAAE,CAAC,CAAC;QACjE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAc,EACd,OAAe;IAEf,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,IAAA,iBAAY,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAC7B,iBAAyB,EACzB,aAAqB;IAErB,uDAAuD;IACvD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC9D,+DAA+D;QAC/D,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CACzD,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAErD,uCAAuC;YACvC,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,KAAK,CACV,gCAAgC,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,CACxE,CAAC;gBACF,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,KAAK,UAAU,2BAA2B,CACxC,eAAuB,EACvB,sBAA8B,EAC9B,IAAqB;IAErB,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,8BAAa,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IAC7D,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC,CAAC,kDAAkD;IAC3H,IAAI,oBAAoB,GAAG,mBAAmB,CAAC,CAAC,oCAAoC;IACpF,qCAAqC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,IAAA,eAAU,EAAC,mBAAmB,CAAC,EAAE,CAAC;QACrC,+DAA+D;QAC/D,MAAM,qBAAqB,GAAG,IAAA,WAAI,EAChC,sBAAsB,EACtB,wBAAwB,CACzB,CAAC;QACF,IAAI,IAAA,eAAU,EAAC,qBAAqB,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CACV,8BAA8B,IAAA,eAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAC/E,CAAC;YACF,oBAAoB,GAAG,qBAAqB,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,oBAAoB,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,aAAa,OAAO,CAAC,CAAC;IAE3D,IAAI,CAAC;QACH,wBAAwB;QACxB,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAA,WAAM,EAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAC;QAEpE,kGAAkG;QAClG,IAAA,wBAAQ,EAAC,UAAU,oBAAoB,MAAM,WAAW,GAAG,EAAE;YAC3D,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,4BAA4B,CAAC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B;QAC1G,MAAM,WAAW,CAAC,uBAAuB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEtE,iCAAiC;QACjC,MAAM,CAAC,KAAK,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;QACtE,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAErC,kCAAkC;QAClC,MAAM,CAAC,KAAK,CAAC,oCAAoC,mBAAmB,EAAE,CAAC,CAAC;QACxE,IAAA,wBAAQ,EAAC,OAAO,WAAW,MAAM,mBAAmB,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAE5E,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QAEpE,sCAAsC;QACtC,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,IAAA,WAAM,EAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,sCAAsC,YAAY,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,4CAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,IAAA,WAAM,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"modifications.service.js","sourceRoot":"","sources":["../../../src/services/modifications/modifications.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,15 @@ const crypto_1 = require("crypto");
|
|
|
10
10
|
const logger_1 = require("../../utils/logger");
|
|
11
11
|
const path_2 = require("../../utils/path");
|
|
12
12
|
const error_handler_1 = require("../../utils/error.handler");
|
|
13
|
+
const fs_helper_1 = require("../../utils/fs.helper");
|
|
13
14
|
const logger = logger_1.Logger.getInstance("modifications.tracker");
|
|
15
|
+
/**
|
|
16
|
+
* Convert a path to POSIX format (forward slashes) for cross-platform storage.
|
|
17
|
+
* This ensures stored paths are consistent regardless of the platform.
|
|
18
|
+
*/
|
|
19
|
+
function toPosixPath(p) {
|
|
20
|
+
return p.replace(/\\/g, "/");
|
|
21
|
+
}
|
|
14
22
|
/**
|
|
15
23
|
* Tracks and resets the local changes (modifications/* -> components/*) during dev or build runs.
|
|
16
24
|
* The paths in each record are relative to the project root.
|
|
@@ -25,27 +33,45 @@ class ModificationsTracker {
|
|
|
25
33
|
static get bakDirPath() {
|
|
26
34
|
return path_1.default.resolve(this.bakDirPathRelative);
|
|
27
35
|
}
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Add a file or directory to the modification tracker.
|
|
38
|
+
* If basePath is provided, paths are stored relative to basePath instead of process.cwd().
|
|
39
|
+
* This is used for macOS app bundle modifications where files are tracked relative to the bundle path.
|
|
40
|
+
*
|
|
41
|
+
* @param srcPath - Absolute path to the file/directory being modified
|
|
42
|
+
* @param basePath - Optional base path for storing in records (used for resetAll() matching)
|
|
43
|
+
* @param physicalBasePath - Optional base path where the file physically exists (for computing relative paths).
|
|
44
|
+
* If not provided, defaults to basePath. This is used when files are in a temp location
|
|
45
|
+
* but will be moved to basePath later (e.g., macOS iocd bundle processing).
|
|
46
|
+
*/
|
|
47
|
+
static add(srcPath, basePath, physicalBasePath) {
|
|
48
|
+
// Skip tracking if outside components directory AND no basePath provided
|
|
49
|
+
if (!basePath && !this.isComponentsSubPath(srcPath)) {
|
|
30
50
|
logger.debug(`Skipped tracking modification outside components directory: ${srcPath}`);
|
|
31
51
|
return;
|
|
32
52
|
}
|
|
53
|
+
// Use physicalBasePath for computing relative path (where file actually is)
|
|
54
|
+
// Use basePath for storing in records (where file will be after processing)
|
|
55
|
+
const relativeToPhysical = physicalBasePath || basePath || process.cwd();
|
|
56
|
+
const srcPathRelative = toPosixPath(path_1.default.relative(relativeToPhysical, srcPath));
|
|
33
57
|
const record = {
|
|
34
|
-
srcPathRelative
|
|
58
|
+
srcPathRelative,
|
|
35
59
|
bakPathRelative: fs_extra_1.default.existsSync(srcPath)
|
|
36
60
|
? path_1.default.join(this.bakDirPathRelative, (0, crypto_1.randomBytes)(8).toString("hex"))
|
|
37
61
|
: null,
|
|
62
|
+
basePath: basePath
|
|
63
|
+
? toPosixPath(path_1.default.relative(process.cwd(), basePath))
|
|
64
|
+
: undefined,
|
|
38
65
|
};
|
|
39
66
|
const records = this.readRecords();
|
|
40
|
-
if (records.some(e => e.srcPathRelative === record.srcPathRelative
|
|
67
|
+
if (records.some(e => e.srcPathRelative === record.srcPathRelative &&
|
|
68
|
+
e.basePath === record.basePath)) {
|
|
41
69
|
return; // Skip backup if the path is already tracked.
|
|
42
70
|
}
|
|
43
71
|
records.push(record);
|
|
44
72
|
try {
|
|
45
73
|
if (record.bakPathRelative) {
|
|
46
|
-
|
|
47
|
-
recursive: true,
|
|
48
|
-
});
|
|
74
|
+
(0, fs_helper_1.copyBundleSafe)(srcPath, path_1.default.resolve(record.bakPathRelative));
|
|
49
75
|
}
|
|
50
76
|
fs_extra_1.default.writeFileSync(this.recordsFilePath, JSON.stringify(records, null, 2), "utf-8");
|
|
51
77
|
}
|
|
@@ -53,15 +79,30 @@ class ModificationsTracker {
|
|
|
53
79
|
logger.warn(`Failed to make a record for ${srcPath}: `, e);
|
|
54
80
|
return;
|
|
55
81
|
}
|
|
56
|
-
logger.debug(`Recorded the modification on ${srcPath}`);
|
|
82
|
+
logger.debug(`Recorded the modification on ${srcPath}${basePath ? ` (relative to ${basePath})` : ""}`);
|
|
57
83
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Reset all tracked modifications, restoring files to their original state.
|
|
86
|
+
* If basePath is provided, only resets records that match that basePath.
|
|
87
|
+
*
|
|
88
|
+
* @param basePath - Optional base path to filter which records to reset (used for macOS iocd component)
|
|
89
|
+
*/
|
|
90
|
+
static resetAll(basePath) {
|
|
91
|
+
let records = this.readRecords(true);
|
|
92
|
+
// Migrate old-style .app bundle records to new individual file tracking
|
|
93
|
+
records = this.migrateOldAppBundleRecords(records);
|
|
94
|
+
// Filter records if basePath is provided
|
|
95
|
+
const recordsToReset = basePath
|
|
96
|
+
? records.filter(r => r.basePath === toPosixPath(path_1.default.relative(process.cwd(), basePath)))
|
|
97
|
+
: records.filter(r => !r.basePath); // Only reset records without basePath when no basePath provided
|
|
98
|
+
for (const record of [...recordsToReset]) {
|
|
61
99
|
try {
|
|
62
100
|
this.reset(record);
|
|
63
|
-
//
|
|
64
|
-
records.
|
|
101
|
+
// Remove the processed record from the full list
|
|
102
|
+
const idx = records.findIndex(r => r === record);
|
|
103
|
+
if (idx !== -1) {
|
|
104
|
+
records.splice(idx, 1);
|
|
105
|
+
}
|
|
65
106
|
fs_extra_1.default.writeFileSync(this.recordsFilePath, JSON.stringify(records, null, 2), "utf-8");
|
|
66
107
|
if (record.bakPathRelative) {
|
|
67
108
|
fs_extra_1.default.removeSync(path_1.default.resolve(record.bakPathRelative));
|
|
@@ -71,7 +112,10 @@ class ModificationsTracker {
|
|
|
71
112
|
const suggestions = [
|
|
72
113
|
`Verify that the records.json contains valid JSON array: ${this.recordsFilePath}`,
|
|
73
114
|
];
|
|
74
|
-
const
|
|
115
|
+
const resolveBase = record.basePath
|
|
116
|
+
? path_1.default.resolve(record.basePath)
|
|
117
|
+
: process.cwd();
|
|
118
|
+
const srcPath = path_1.default.resolve(resolveBase, record.srcPathRelative);
|
|
75
119
|
if (fs_extra_1.default.existsSync(srcPath)) {
|
|
76
120
|
suggestions.push(`Verify that the source path is not locked: ${srcPath}`);
|
|
77
121
|
}
|
|
@@ -84,12 +128,53 @@ class ModificationsTracker {
|
|
|
84
128
|
}
|
|
85
129
|
}
|
|
86
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Migrate old-style whole .app bundle records to the new individual file tracking approach.
|
|
133
|
+
* This detects records pointing to .app bundles, restores them, and removes them from tracking.
|
|
134
|
+
*
|
|
135
|
+
* @param records - Current modification records
|
|
136
|
+
* @returns Updated records array with old .app bundle records removed
|
|
137
|
+
*/
|
|
138
|
+
static migrateOldAppBundleRecords(records) {
|
|
139
|
+
const oldAppBundleRecords = records.filter(r => !r.basePath && r.srcPathRelative.endsWith(".app"));
|
|
140
|
+
if (oldAppBundleRecords.length === 0) {
|
|
141
|
+
return records;
|
|
142
|
+
}
|
|
143
|
+
logger.info(`Migrating ${oldAppBundleRecords.length} old .app bundle record(s) to new tracking format...`);
|
|
144
|
+
for (const record of oldAppBundleRecords) {
|
|
145
|
+
try {
|
|
146
|
+
// Restore the old .app bundle using the old reset logic
|
|
147
|
+
this.reset(record);
|
|
148
|
+
// Clean up the backup
|
|
149
|
+
if (record.bakPathRelative) {
|
|
150
|
+
fs_extra_1.default.removeSync(path_1.default.resolve(record.bakPathRelative));
|
|
151
|
+
}
|
|
152
|
+
// Remove from records
|
|
153
|
+
const idx = records.findIndex(r => r === record);
|
|
154
|
+
if (idx !== -1) {
|
|
155
|
+
records.splice(idx, 1);
|
|
156
|
+
}
|
|
157
|
+
logger.debug(`Migrated old .app bundle record: ${record.srcPathRelative}`);
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
logger.warn(`Failed to migrate old .app bundle record ${record.srcPathRelative}: ${e}`);
|
|
161
|
+
// Continue with other records even if one fails
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// Save the updated records
|
|
165
|
+
fs_extra_1.default.writeFileSync(this.recordsFilePath, JSON.stringify(records, null, 2), "utf-8");
|
|
166
|
+
return records;
|
|
167
|
+
}
|
|
87
168
|
static clearAll() {
|
|
88
169
|
fs_extra_1.default.emptyDirSync(this.bakDirPath);
|
|
89
170
|
logger.info(`Cleared backup directory: ${this.bakDirPath}`);
|
|
90
171
|
}
|
|
91
172
|
static reset(record) {
|
|
92
|
-
|
|
173
|
+
// Resolve srcPath using basePath if present, otherwise use process.cwd()
|
|
174
|
+
const resolveBase = record.basePath
|
|
175
|
+
? path_1.default.resolve(record.basePath)
|
|
176
|
+
: process.cwd();
|
|
177
|
+
const srcPath = path_1.default.resolve(resolveBase, record.srcPathRelative);
|
|
93
178
|
const bakPath = record.bakPathRelative
|
|
94
179
|
? path_1.default.resolve(record.bakPathRelative)
|
|
95
180
|
: null;
|
|
@@ -100,7 +185,7 @@ class ModificationsTracker {
|
|
|
100
185
|
fs_extra_1.default.removeSync(srcPath);
|
|
101
186
|
if (bakPath) {
|
|
102
187
|
// Restore only if backup path is not null (i.e. the original operation was not an addition).
|
|
103
|
-
|
|
188
|
+
(0, fs_helper_1.copyBundleSafe)(bakPath, srcPath);
|
|
104
189
|
}
|
|
105
190
|
logger.debug(`Reset the modification on ${srcPath}`);
|
|
106
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modifications.tracker.js","sourceRoot":"","sources":["../../../src/services/modifications/modifications.tracker.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA2B;AAC3B,gDAAwB;AACxB,mCAAqC;AACrC,+CAA4C;AAC5C,2CAA6C;AAC7C,6DAAqD;
|
|
1
|
+
{"version":3,"file":"modifications.tracker.js","sourceRoot":"","sources":["../../../src/services/modifications/modifications.tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.copyBundleSafe = copyBundleSafe;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const logger_1 = require("./logger");
|
|
10
|
+
const logger = logger_1.Logger.getInstance("fs.helper");
|
|
11
|
+
/**
|
|
12
|
+
* Safely copies a directory or file, preserving symlinks on macOS.
|
|
13
|
+
*
|
|
14
|
+
* On macOS, uses the native `cp -R` command which properly preserves symlinks
|
|
15
|
+
* within .app bundles (critical for Electron Framework's versioned symlink structure).
|
|
16
|
+
*
|
|
17
|
+
* On Windows/other platforms, uses `fse.cpSync` which handles symlinks correctly
|
|
18
|
+
* since Windows doesn't use the same symlink structure for app bundles.
|
|
19
|
+
*
|
|
20
|
+
* @param src - Source path to copy from
|
|
21
|
+
* @param dest - Destination path to copy to
|
|
22
|
+
* @throws Error if the copy operation fails
|
|
23
|
+
*/
|
|
24
|
+
function copyBundleSafe(src, dest) {
|
|
25
|
+
if (process.platform === "darwin") {
|
|
26
|
+
logger.debug(`Using cp -R to preserve symlinks: ${src} -> ${dest}`);
|
|
27
|
+
try {
|
|
28
|
+
(0, child_process_1.execSync)(`cp -R "${src}" "${dest}"`, { stdio: "pipe" });
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new Error(`Failed to copy bundle with cp -R: ${error}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
logger.debug(`Using fse.cpSync: ${src} -> ${dest}`);
|
|
36
|
+
fs_extra_1.default.cpSync(src, dest, { recursive: true });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=fs.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.helper.js","sourceRoot":"","sources":["../../src/utils/fs.helper.ts"],"names":[],"mappings":";;;;;AAmBA,wCAYC;AA/BD,iDAAyC;AACzC,wDAA2B;AAC3B,qCAAkC;AAElC,MAAM,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,SAAgB,cAAc,CAAC,GAAW,EAAE,IAAY;IACtD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,qCAAqC,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,UAAU,GAAG,MAAM,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC;QACpD,kBAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@interopio/iocd-cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.65",
|
|
4
4
|
"description": "CLI tool for setting up, building and packaging io.Connect Desktop platforms",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.0.0",
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"undici": "^7.16.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
+
"@interopio/desktop": "^6.15.0",
|
|
64
65
|
"@types/electron-builder": "^2.0.29",
|
|
65
66
|
"@types/fs-extra": "^11.0.4",
|
|
66
67
|
"@types/jest": "^29.5.5",
|