@interopio/iocd-cli 1.1.0 → 1.1.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 (53) hide show
  1. package/README.md +2 -865
  2. package/changelog.md +24 -0
  3. package/dist/cli.js +1 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/apps.command.js +1 -6
  6. package/dist/commands/apps.command.js.map +1 -1
  7. package/dist/commands/modifications.command.js +2 -2
  8. package/dist/commands/modifications.command.js.map +1 -1
  9. package/dist/commands/test.command.js +6 -0
  10. package/dist/commands/test.command.js.map +1 -1
  11. package/dist/services/components/components.service.js +17 -3
  12. package/dist/services/components/components.service.js.map +1 -1
  13. package/dist/services/components/stores/github.store.js +129 -3
  14. package/dist/services/components/stores/github.store.js.map +1 -1
  15. package/dist/services/components/version.selector.js +20 -26
  16. package/dist/services/components/version.selector.js.map +1 -1
  17. package/dist/services/installer/electronForge.js +5 -0
  18. package/dist/services/installer/electronForge.js.map +1 -1
  19. package/dist/services/installer/installer.service.js +26 -0
  20. package/dist/services/installer/installer.service.js.map +1 -1
  21. package/dist/services/installer/prerequisites.js +10 -3
  22. package/dist/services/installer/prerequisites.js.map +1 -1
  23. package/dist/services/installer/windows.helper.js +17 -1
  24. package/dist/services/installer/windows.helper.js.map +1 -1
  25. package/dist/services/installer/zip-maker.js +122 -0
  26. package/dist/services/installer/zip-maker.js.map +1 -0
  27. package/dist/services/installer/zip.helper.js +94 -0
  28. package/dist/services/installer/zip.helper.js.map +1 -0
  29. package/dist/services/license.service.js +58 -8
  30. package/dist/services/license.service.js.map +1 -1
  31. package/dist/services/modifications/modifications.service.js +22 -1
  32. package/dist/services/modifications/modifications.service.js.map +1 -1
  33. package/dist/services/modifications/windows.helper.js +95 -49
  34. package/dist/services/modifications/windows.helper.js.map +1 -1
  35. package/dist/services/test-infrastructure.service.js +23 -0
  36. package/dist/services/test-infrastructure.service.js.map +1 -1
  37. package/dist/services/test.service.js +57 -21
  38. package/dist/services/test.service.js.map +1 -1
  39. package/dist/templates/ioconnect-desktop/README.md +2 -865
  40. package/dist/templates/ioconnect-desktop/config/forge.config.js +2 -2
  41. package/dist/templates/ioconnect-desktop/package.json +1 -2
  42. package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/configuration.md +7 -3
  43. package/dist/utils/error.handler.js +6 -2
  44. package/dist/utils/error.handler.js.map +1 -1
  45. package/dist/utils/external-tool.js +34 -0
  46. package/dist/utils/external-tool.js.map +1 -0
  47. package/dist/utils/template-update.js +10 -1
  48. package/dist/utils/template-update.js.map +1 -1
  49. package/dist/utils/terminal-output-guard.js +5 -0
  50. package/dist/utils/terminal-output-guard.js.map +1 -0
  51. package/dist/utils/terminal-output.js +25 -0
  52. package/dist/utils/terminal-output.js.map +1 -0
  53. package/package.json +2 -1
@@ -10,7 +10,7 @@ module.exports = {
10
10
  loadingGif: "assets/install.gif" // The local path to a .gif file to display during install.
11
11
  }
12
12
  },
13
- { name: '@electron-forge/maker-zip' },
13
+ { name: require.resolve('@interopio/iocd-cli/dist/services/installer/zip-maker') },
14
14
  { name: '@electron-forge/maker-dmg' },
15
15
  ],
16
16
  publishers: [
@@ -44,4 +44,4 @@ module.exports = {
44
44
  return packageJson;
45
45
  }
46
46
  },
47
- };
47
+ };
@@ -27,9 +27,8 @@
27
27
  "@electron-forge/core": "^7.9.0",
28
28
  "@electron-forge/maker-dmg": "^7.9.0",
29
29
  "@electron-forge/maker-squirrel": "^7.9.0",
30
- "@electron-forge/maker-zip": "^7.9.0",
31
30
  "@electron-forge/publisher-github": "^7.9.0",
32
31
  "@electron-forge/publisher-electron-release-server": "^7.9.0",
33
32
  "@electron-forge/publisher-s3": "^7.9.0"
34
33
  }
35
- }
34
+ }
@@ -115,7 +115,7 @@ A seed configured with an interactive login (`ssoAuth` in the system config) rep
115
115
  **after** someone signs in — without automation, `npm test` sits on the login window until the
116
116
  startup timeout and no spec runs. The service's `login` option drives that window while the
117
117
  platform boots. Requires `@interopio/wdio-iocd-service` 1.0.0-next.3+ (the version currently
118
- generated); older test packages must update `tests/package.json` first.
118
+ generated) and io.Connect Desktop 10.4+; older test packages must update `tests/package.json` first.
119
119
 
120
120
  ```ts
121
121
  // tests/wdio.config.ts
@@ -123,8 +123,12 @@ services: IOCDService({
123
123
  login: {
124
124
  window: { url: /login\.mycompany\.com/ }, // substring or RegExp; `title` also works
125
125
  handler: async (browser) => {
126
- await browser.$("#username").setValue(process.env.IOCD_TEST_USER!);
127
- await browser.$("#password").setValue(process.env.IOCD_TEST_PASSWORD!);
126
+ const username = browser.$("#username");
127
+ const password = browser.$("#password");
128
+ await username.waitForExist({ timeout: 30000 });
129
+ await password.waitForExist({ timeout: 30000 });
130
+ await username.setValue(process.env.IOCD_TEST_USER!);
131
+ await password.setValue(process.env.IOCD_TEST_PASSWORD!);
128
132
  await browser.$("button[type=submit]").click();
129
133
  },
130
134
  },
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ErrorHandler = exports.CLIError = exports.ErrorCode = void 0;
36
+ exports.ErrorHandler = exports.shouldReportErrorToSentry = exports.CLIError = exports.ErrorCode = void 0;
37
37
  const logger_1 = require("./logger");
38
38
  const colors_1 = require("./colors");
39
39
  const clack = __importStar(require("@clack/prompts"));
@@ -58,6 +58,7 @@ class CLIError extends Error {
58
58
  cause;
59
59
  suggestions;
60
60
  showLogPath;
61
+ reportToSentry;
61
62
  constructor(message, options = {}) {
62
63
  super(message);
63
64
  this.name = "CLIError";
@@ -65,9 +66,12 @@ class CLIError extends Error {
65
66
  this.cause = options.cause;
66
67
  this.suggestions = options.suggestions ?? [];
67
68
  this.showLogPath = options.showLogPath ?? true;
69
+ this.reportToSentry = options.reportToSentry ?? true;
68
70
  }
69
71
  }
70
72
  exports.CLIError = CLIError;
73
+ const shouldReportErrorToSentry = (error) => !(error instanceof CLIError) || error.reportToSentry;
74
+ exports.shouldReportErrorToSentry = shouldReportErrorToSentry;
71
75
  class ErrorHandler {
72
76
  static logger = logger_1.Logger.getInstance("error.handler");
73
77
  static async handle(error) {
@@ -98,7 +102,7 @@ class ErrorHandler {
98
102
  this.logger.flush();
99
103
  // Give a small delay to ensure flush completes, then exit
100
104
  await (0, delay_1.delay)(100);
101
- if (config_service_1.ConfigManager.config.sentry) {
105
+ if (config_service_1.ConfigManager.config.sentry && (0, exports.shouldReportErrorToSentry)(error)) {
102
106
  this.sendToSentry(error);
103
107
  // Wait a bit to ensure Sentry sends the error before exiting
104
108
  await (0, delay_1.delay)(100);
@@ -1 +1 @@
1
- {"version":3,"file":"error.handler.js","sourceRoot":"","sources":["../../src/utils/error.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.handler.js","sourceRoot":"","sources":["../../src/utils/error.handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMissingExecutableError = isMissingExecutableError;
4
+ exports.formatCommandForLog = formatCommandForLog;
5
+ const isSigntoolCommand = (command) => /(^|[\\/])signtool(?:\.exe)?$/i.test(command);
6
+ function isMissingExecutableError(error) {
7
+ return (error instanceof Error && error.code === "ENOENT");
8
+ }
9
+ function formatCommandForLog(command, args) {
10
+ if (!isSigntoolCommand(command)) {
11
+ return [command, ...args].join(" ");
12
+ }
13
+ const safeArgs = [];
14
+ let redactNextArgument = false;
15
+ for (const arg of args) {
16
+ if (redactNextArgument) {
17
+ safeArgs.push("[redacted]");
18
+ redactNextArgument = false;
19
+ continue;
20
+ }
21
+ if (/^[/-]p$/i.test(arg)) {
22
+ safeArgs.push(arg);
23
+ redactNextArgument = true;
24
+ continue;
25
+ }
26
+ if (/^[/-]p[:=]/i.test(arg)) {
27
+ safeArgs.push(`${arg.slice(0, 3)}[redacted]`);
28
+ continue;
29
+ }
30
+ safeArgs.push(arg);
31
+ }
32
+ return [command, ...safeArgs].join(" ");
33
+ }
34
+ //# sourceMappingURL=external-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-tool.js","sourceRoot":"","sources":["../../src/utils/external-tool.ts"],"names":[],"mappings":";;AAOA,4DAIC;AAED,kDAiCC;AA1CD,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAW,EAAE,CACrD,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAEhD,SAAgB,wBAAwB,CAAC,KAAc;IACrD,OAAO,CACL,KAAK,YAAY,KAAK,IAAK,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAC1E,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CACjC,OAAe,EACf,IAAuB;IAEvB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,kBAAkB,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5B,kBAAkB,GAAG,KAAK,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,kBAAkB,GAAG,IAAI,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC"}
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTemplateUpdateWarning = void 0;
3
+ exports.createTemplateUpdateConfirmationError = exports.getTemplateUpdateWarning = void 0;
4
+ const error_handler_1 = require("./error.handler");
4
5
  const getTemplateUpdateWarning = (appNames) => `Updating ${appNames.join(", ")} will permanently delete the existing template application files and replace them with the current CLI templates. Any customizations in those app directories will be lost. Commit or copy your work before continuing.`;
5
6
  exports.getTemplateUpdateWarning = getTemplateUpdateWarning;
7
+ const createTemplateUpdateConfirmationError = (appName) => new error_handler_1.CLIError("Template application update requires confirmation in an interactive terminal", {
8
+ code: error_handler_1.ErrorCode.VALIDATION_ERROR,
9
+ suggestions: [
10
+ `After saving your work, run: iocd apps update ${appName} --yes`,
11
+ ],
12
+ reportToSentry: false,
13
+ });
14
+ exports.createTemplateUpdateConfirmationError = createTemplateUpdateConfirmationError;
6
15
  //# sourceMappingURL=template-update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-update.js","sourceRoot":"","sources":["../../src/utils/template-update.ts"],"names":[],"mappings":";;;AAAO,MAAM,wBAAwB,GAAG,CAAC,QAAkB,EAAU,EAAE,CACrE,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yNAAyN,CAAC;AAD9O,QAAA,wBAAwB,4BACsN"}
1
+ {"version":3,"file":"template-update.js","sourceRoot":"","sources":["../../src/utils/template-update.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AAE/C,MAAM,wBAAwB,GAAG,CAAC,QAAkB,EAAU,EAAE,CACrE,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yNAAyN,CAAC;AAD9O,QAAA,wBAAwB,4BACsN;AAEpP,MAAM,qCAAqC,GAAG,CACnD,OAAe,EACL,EAAE,CACZ,IAAI,wBAAQ,CACV,8EAA8E,EAC9E;IACE,IAAI,EAAE,yBAAS,CAAC,gBAAgB;IAChC,WAAW,EAAE;QACX,iDAAiD,OAAO,QAAQ;KACjE;IACD,cAAc,EAAE,KAAK;CACtB,CACF,CAAC;AAZS,QAAA,qCAAqC,yCAY9C"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const terminal_output_1 = require("./terminal-output");
4
+ (0, terminal_output_1.installTerminalOutputErrorHandlers)();
5
+ //# sourceMappingURL=terminal-output-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-output-guard.js","sourceRoot":"","sources":["../../src/utils/terminal-output-guard.ts"],"names":[],"mappings":";;AAAA,uDAAuE;AAEvE,IAAA,oDAAkC,GAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTerminalDisconnectError = isTerminalDisconnectError;
4
+ exports.handleTerminalOutputError = handleTerminalOutputError;
5
+ exports.installTerminalOutputErrorHandlers = installTerminalOutputErrorHandlers;
6
+ const TERMINAL_DISCONNECT_ERROR_CODES = new Set(["EIO", "EPIPE"]);
7
+ function isTerminalDisconnectError(error) {
8
+ if (!(error instanceof Error)) {
9
+ return false;
10
+ }
11
+ const errorCode = error.code;
12
+ return (errorCode !== undefined && TERMINAL_DISCONNECT_ERROR_CODES.has(errorCode));
13
+ }
14
+ function handleTerminalOutputError(error) {
15
+ if (isTerminalDisconnectError(error)) {
16
+ return;
17
+ }
18
+ throw error;
19
+ }
20
+ function installTerminalOutputErrorHandlers(streams = [process.stdout, process.stderr]) {
21
+ for (const stream of streams) {
22
+ stream.on("error", handleTerminalOutputError);
23
+ }
24
+ }
25
+ //# sourceMappingURL=terminal-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-output.js","sourceRoot":"","sources":["../../src/utils/terminal-output.ts"],"names":[],"mappings":";;AAQA,8DASC;AAED,8DAMC;AAED,gFAMC;AAjCD,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAQlE,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAI,KAAuB,CAAC,IAAI,CAAC;IAChD,OAAO,CACL,SAAS,KAAK,SAAS,IAAI,+BAA+B,CAAC,GAAG,CAAC,SAAS,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED,SAAgB,yBAAyB,CAAC,KAAY;IACpD,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,kCAAkC,CAChD,UAA2C,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IAE3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@interopio/iocd-cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "CLI tool for setting up, building and packaging io.Connect Desktop platforms",
5
5
  "engines": {
6
6
  "node": ">=22.0.0",
@@ -49,6 +49,7 @@
49
49
  ],
50
50
  "dependencies": {
51
51
  "@clack/prompts": "^0.7.0",
52
+ "@electron-forge/maker-base": "^7.11.2",
52
53
  "@electron/notarize": "^3.1.0",
53
54
  "@electron/osx-sign": "^2.2.0",
54
55
  "@sentry/node": "^10.17.0",