@interopio/iocd-cli 0.0.47 → 0.0.49
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/README.md +28 -15
- package/dist/commands/apps.command.js +20 -21
- package/dist/commands/apps.command.js.map +1 -1
- package/dist/commands/build.command.js +5 -5
- package/dist/commands/build.command.js.map +1 -1
- package/dist/commands/components.command.js +19 -20
- package/dist/commands/components.command.js.map +1 -1
- package/dist/commands/create.command.js +18 -14
- package/dist/commands/create.command.js.map +1 -1
- package/dist/commands/dev.command.js +2 -2
- package/dist/commands/license.command.js +11 -10
- package/dist/commands/license.command.js.map +1 -1
- package/dist/commands/modifications.command.js +3 -4
- package/dist/commands/modifications.command.js.map +1 -1
- package/dist/commands/setup.command.js +4 -4
- package/dist/commands/setup.command.js.map +1 -1
- package/dist/commands/test.command.js +2 -2
- package/dist/commands/test.command.js.map +1 -1
- package/dist/schemas/iocd.cli.config.schema.json +6 -7
- package/dist/services/app.service.js +29 -29
- package/dist/services/app.service.js.map +1 -1
- package/dist/services/components/components.registry.js +6 -6
- package/dist/services/components/components.registry.js.map +1 -1
- package/dist/services/components/platform.utils.js +9 -10
- package/dist/services/components/platform.utils.js.map +1 -1
- package/dist/services/components/stores/s3.store.js +1 -1
- package/dist/services/components/stores/s3.store.js.map +1 -1
- package/dist/services/config/config.service.js +28 -12
- package/dist/services/config/config.service.js.map +1 -1
- package/dist/services/create.service.js +146 -67
- package/dist/services/create.service.js.map +1 -1
- package/dist/services/dev.service.js +11 -11
- package/dist/services/dev.service.js.map +1 -1
- package/dist/services/installer/prerequisites.js +3 -3
- package/dist/services/installer/prerequisites.js.map +1 -1
- package/dist/services/installer/windows.helper.js +17 -14
- package/dist/services/installer/windows.helper.js.map +1 -1
- package/dist/services/license-file.service.js +1 -1
- package/dist/services/license-file.service.js.map +1 -1
- package/dist/services/license.service.js +18 -17
- package/dist/services/license.service.js.map +1 -1
- package/dist/services/modifications/modifications.service.js +49 -18
- package/dist/services/modifications/modifications.service.js.map +1 -1
- package/dist/services/template.service.js +72 -59
- package/dist/services/template.service.js.map +1 -1
- package/dist/services/test.service.js +4 -4
- package/dist/services/test.service.js.map +1 -1
- package/dist/templates/ioconnect-desktop/README.md +28 -15
- package/dist/templates/ioconnect-desktop/config/iocd.cli.config.json +0 -3
- package/dist/templates/ioconnect-desktop/modifications/base/iocd/config/system.json.merge +2 -1
- package/dist/templates/ioconnect-desktop/package.json +2 -2
- package/dist/templates/tests/tests/package-lock.json +5 -11
- package/dist/templates/tests/tests/package.json +2 -6
- package/dist/templates/tests/tests/tests/sample.spec.ts +65 -22
- package/dist/templates/tests/tests/tsconfig.json +10 -10
- package/dist/templates/tests/tests/wdio.config.ts +29 -26
- package/dist/utils/colors.js +31 -31
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/deep.merge.js +3 -3
- package/dist/utils/deep.merge.js.map +1 -1
- package/dist/utils/electron.builder.config.helper.js +2 -2
- package/dist/utils/ensure.iocd.exists.js +5 -7
- package/dist/utils/ensure.iocd.exists.js.map +1 -1
- package/dist/utils/error.handler.js +23 -20
- package/dist/utils/error.handler.js.map +1 -1
- package/dist/utils/file.js +1 -1
- package/dist/utils/file.js.map +1 -1
- package/dist/utils/logger.js +17 -15
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pacakge.json.helper.js +48 -2
- package/dist/utils/pacakge.json.helper.js.map +1 -1
- package/dist/utils/path.js +23 -23
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/sentry.js +15 -5
- package/dist/utils/sentry.js.map +1 -1
- package/dist/utils/version.js +2 -2
- package/package.json +5 -5
- package/dist/templates/launchpad/apps/launchpad/.eslintrc.json +0 -3
|
@@ -1,30 +1,73 @@
|
|
|
1
1
|
describe('Example usage of @interopio/wdio-iocd-service', () => {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
it('should have access to browser.io()', async () => {
|
|
3
|
+
// A fully working io.Connect Desktop client
|
|
4
|
+
const io = await browser.io();
|
|
5
|
+
|
|
6
|
+
expect(io).toHaveAttribute('appManager');
|
|
7
|
+
expect(io).toHaveAttribute('contexts');
|
|
8
|
+
expect(io).toHaveAttribute('channels');
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('should raise a test notifications, and then navigate to notifications panel', async () => {
|
|
12
|
+
const io = await browser.io();
|
|
13
|
+
await io.notifications.configure({ enable: true });
|
|
14
|
+
await io.notifications.raise({
|
|
15
|
+
title: 'Test Notification title',
|
|
16
|
+
body: 'Test Notification body',
|
|
17
|
+
toastExpiry: 999999,
|
|
11
18
|
});
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
body: 'Test Notification body',
|
|
19
|
-
toastExpiry: 999999,
|
|
20
|
-
});
|
|
20
|
+
await browser.switchToLaunchpad();
|
|
21
|
+
await browser.$('.notifications-button button').waitAndClick();
|
|
22
|
+
await browser.switchToNotificationPanel();
|
|
23
|
+
await browser.pause(2000);
|
|
24
|
+
});
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
it('should allow using the desktop-client prefs API', async () => {
|
|
27
|
+
const io = await browser.io();
|
|
23
28
|
|
|
24
|
-
|
|
29
|
+
const sampleApp = 'ExampleApplication';
|
|
30
|
+
const mockedAppPrefs = { lazyLoadAssets: true };
|
|
25
31
|
|
|
26
|
-
|
|
32
|
+
// used to store the "update" for app prefs
|
|
33
|
+
let expectedSetPrefs = null;
|
|
27
34
|
|
|
28
|
-
|
|
29
|
-
});
|
|
35
|
+
// Subscribe for changes on the sampleApp prefs
|
|
36
|
+
io.prefs.subscribeFor(sampleApp, ({ data }) => (expectedSetPrefs = data));
|
|
37
|
+
|
|
38
|
+
await io.prefs.setFor(sampleApp, mockedAppPrefs);
|
|
39
|
+
|
|
40
|
+
// expect the changed prefs to match what was set
|
|
41
|
+
expect(expectedSetPrefs).toMatchObject(mockedAppPrefs);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should allow opening apps from the appManager API', async () => {
|
|
45
|
+
const io = await browser.io();
|
|
46
|
+
|
|
47
|
+
// Start the client list app
|
|
48
|
+
const instanceClientList = await io.appManager
|
|
49
|
+
.application('channelsclientlist')
|
|
50
|
+
.start();
|
|
51
|
+
|
|
52
|
+
// Switch to the client list window
|
|
53
|
+
const clientListWindow = await instanceClientList.getWindow();
|
|
54
|
+
await browser.switchById(clientListWindow.id);
|
|
55
|
+
|
|
56
|
+
// Check that the app-client-list element exists in DOM
|
|
57
|
+
const appClientListElement = await $('app-client-list');
|
|
58
|
+
await expect(appClientListElement).toBeExisting();
|
|
59
|
+
|
|
60
|
+
// Start the client portfolio app
|
|
61
|
+
const instancePortfolio = await io.appManager
|
|
62
|
+
.application('channelsclientportfolio')
|
|
63
|
+
.start();
|
|
64
|
+
|
|
65
|
+
// Switch to the client portfolio window
|
|
66
|
+
const clientPortfolioList = await instancePortfolio.getWindow();
|
|
67
|
+
await browser.switchById(clientPortfolioList.id);
|
|
68
|
+
|
|
69
|
+
// Check that the app-client-portfolio element exists in DOM
|
|
70
|
+
const clientPortfolioElement = await $('app-client-portfolio');
|
|
71
|
+
await expect(clientPortfolioElement).toBeExisting();
|
|
72
|
+
});
|
|
30
73
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "CommonJS",
|
|
5
|
+
"moduleResolution": "Node",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"esModuleInterop": true,
|
|
8
|
+
"types": ["node", "@wdio/globals/types", "@wdio/mocha-framework"]
|
|
9
|
+
},
|
|
10
|
+
"include": ["wdio.config.ts", "tests/**/*.ts"]
|
|
11
|
+
}
|
|
@@ -1,33 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
IOCDBaseConfiguration,
|
|
3
|
+
IOCDService,
|
|
4
|
+
} from '@interopio/wdio-iocd-service';
|
|
2
5
|
|
|
3
6
|
export const config: WebdriverIO.Config = {
|
|
4
|
-
|
|
7
|
+
...IOCDBaseConfiguration,
|
|
5
8
|
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
// Services
|
|
10
|
+
services: IOCDService(),
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
// Capabilities
|
|
13
|
+
capabilities: [
|
|
14
|
+
{
|
|
15
|
+
browserName: 'iocd',
|
|
16
|
+
'wdio:specs': ['./tests/**/*.spec.ts'],
|
|
17
|
+
'iocd:options': {
|
|
18
|
+
binary: '%BINARY_PATH%',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
],
|
|
19
22
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
// WDIO Options
|
|
24
|
+
logLevel: 'warn',
|
|
25
|
+
framework: 'mocha',
|
|
26
|
+
reporters: ['spec'],
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
28
|
+
// TypeScript Autocompile
|
|
29
|
+
autoCompileOpts: {
|
|
30
|
+
autoCompile: true,
|
|
31
|
+
tsNodeOpts: {
|
|
32
|
+
transpileOnly: true,
|
|
33
|
+
project: './tsconfig.json',
|
|
32
34
|
},
|
|
33
|
-
}
|
|
35
|
+
},
|
|
36
|
+
};
|
package/dist/utils/colors.js
CHANGED
|
@@ -8,43 +8,43 @@ exports.bgCyanBlack = exports.strikethrough = exports.underline = exports.italic
|
|
|
8
8
|
// ANSI color codes
|
|
9
9
|
const COLORS = {
|
|
10
10
|
// Text colors
|
|
11
|
-
red:
|
|
12
|
-
green:
|
|
13
|
-
yellow:
|
|
14
|
-
blue:
|
|
15
|
-
magenta:
|
|
16
|
-
cyan:
|
|
17
|
-
white:
|
|
18
|
-
gray:
|
|
19
|
-
grey:
|
|
20
|
-
black:
|
|
11
|
+
red: "\x1b[31m",
|
|
12
|
+
green: "\x1b[32m",
|
|
13
|
+
yellow: "\x1b[33m",
|
|
14
|
+
blue: "\x1b[34m",
|
|
15
|
+
magenta: "\x1b[35m",
|
|
16
|
+
cyan: "\x1b[36m",
|
|
17
|
+
white: "\x1b[37m",
|
|
18
|
+
gray: "\x1b[90m",
|
|
19
|
+
grey: "\x1b[90m",
|
|
20
|
+
black: "\x1b[30m",
|
|
21
21
|
// Background colors
|
|
22
|
-
bgRed:
|
|
23
|
-
bgGreen:
|
|
24
|
-
bgYellow:
|
|
25
|
-
bgBlue:
|
|
26
|
-
bgMagenta:
|
|
27
|
-
bgCyan:
|
|
28
|
-
bgWhite:
|
|
29
|
-
bgBlack:
|
|
22
|
+
bgRed: "\x1b[41m",
|
|
23
|
+
bgGreen: "\x1b[42m",
|
|
24
|
+
bgYellow: "\x1b[43m",
|
|
25
|
+
bgBlue: "\x1b[44m",
|
|
26
|
+
bgMagenta: "\x1b[45m",
|
|
27
|
+
bgCyan: "\x1b[46m",
|
|
28
|
+
bgWhite: "\x1b[47m",
|
|
29
|
+
bgBlack: "\x1b[40m",
|
|
30
30
|
// Text styles
|
|
31
|
-
bold:
|
|
32
|
-
dim:
|
|
33
|
-
italic:
|
|
34
|
-
underline:
|
|
35
|
-
blink:
|
|
36
|
-
reverse:
|
|
37
|
-
strikethrough:
|
|
31
|
+
bold: "\x1b[1m",
|
|
32
|
+
dim: "\x1b[2m",
|
|
33
|
+
italic: "\x1b[3m",
|
|
34
|
+
underline: "\x1b[4m",
|
|
35
|
+
blink: "\x1b[5m",
|
|
36
|
+
reverse: "\x1b[7m",
|
|
37
|
+
strikethrough: "\x1b[9m",
|
|
38
38
|
// Reset
|
|
39
|
-
reset:
|
|
39
|
+
reset: "\x1b[0m",
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Check if colors should be disabled (for CI environments, non-TTY, etc.)
|
|
43
43
|
*/
|
|
44
44
|
function shouldDisableColors() {
|
|
45
45
|
return (process.env["NO_COLOR"] !== undefined ||
|
|
46
|
-
process.env["NODE_DISABLE_COLORS"] ===
|
|
47
|
-
process.env["CI"] ===
|
|
46
|
+
process.env["NODE_DISABLE_COLORS"] === "1" ||
|
|
47
|
+
process.env["CI"] === "true" ||
|
|
48
48
|
!process.stdout.isTTY);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -63,7 +63,7 @@ function combineStyles(styles, text) {
|
|
|
63
63
|
if (shouldDisableColors()) {
|
|
64
64
|
return text;
|
|
65
65
|
}
|
|
66
|
-
return `${styles.join(
|
|
66
|
+
return `${styles.join("")}${text}${COLORS.reset}`;
|
|
67
67
|
}
|
|
68
68
|
// Main color functions
|
|
69
69
|
const red = (text) => colorize(COLORS.red, text);
|
|
@@ -144,8 +144,8 @@ const colors = {
|
|
|
144
144
|
strikethrough: exports.strikethrough,
|
|
145
145
|
// Special combined styles
|
|
146
146
|
bgCyan: {
|
|
147
|
-
black: exports.bgCyanBlack
|
|
148
|
-
}
|
|
147
|
+
black: exports.bgCyanBlack,
|
|
148
|
+
},
|
|
149
149
|
};
|
|
150
150
|
exports.default = colors;
|
|
151
151
|
//# sourceMappingURL=colors.js.map
|
package/dist/utils/colors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/deep.merge.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deepMerge = deepMerge;
|
|
4
4
|
/**
|
|
5
|
-
* Deep merge two objects
|
|
6
|
-
*/
|
|
5
|
+
* Deep merge two objects
|
|
6
|
+
*/
|
|
7
7
|
function deepMerge(target, source) {
|
|
8
8
|
const result = { ...target };
|
|
9
9
|
for (const key in source) {
|
|
@@ -22,6 +22,6 @@ function deepMerge(target, source) {
|
|
|
22
22
|
* Check if a value is a plain object
|
|
23
23
|
*/
|
|
24
24
|
function isObject(obj) {
|
|
25
|
-
return obj !== null && typeof obj ===
|
|
25
|
+
return obj !== null && typeof obj === "object" && !Array.isArray(obj);
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=deep.merge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep.merge.js","sourceRoot":"","sources":["../../src/utils/deep.merge.ts"],"names":[],"mappings":";;AAGA,8BAcC;
|
|
1
|
+
{"version":3,"file":"deep.merge.js","sourceRoot":"","sources":["../../src/utils/deep.merge.ts"],"names":[],"mappings":";;AAGA,8BAcC;AAjBD;;GAEG;AACH,SAAgB,SAAS,CAAC,MAAW,EAAE,MAAW;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAQ;IACxB,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -7,7 +7,7 @@ exports.ElectronBuilderConfigHelper = void 0;
|
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const file_1 = require("./file");
|
|
9
9
|
class ElectronBuilderConfigHelper {
|
|
10
|
-
static configPath = path_1.default.resolve(
|
|
10
|
+
static configPath = path_1.default.resolve("config/electron-builder.json");
|
|
11
11
|
static config = null;
|
|
12
12
|
static getConfig() {
|
|
13
13
|
if (this.config) {
|
|
@@ -15,7 +15,7 @@ class ElectronBuilderConfigHelper {
|
|
|
15
15
|
}
|
|
16
16
|
const fileContents = file_1.FileUtils.readJson(this.configPath);
|
|
17
17
|
if (!fileContents) {
|
|
18
|
-
throw new Error(
|
|
18
|
+
throw new Error("electron-builder.json not found ");
|
|
19
19
|
}
|
|
20
20
|
this.config = fileContents;
|
|
21
21
|
return this.config;
|
|
@@ -7,20 +7,18 @@ const path_1 = require("./path");
|
|
|
7
7
|
function ensureIOCDComponentExists() {
|
|
8
8
|
// Check if components are installed
|
|
9
9
|
const componentsDir = path_1.PathUtils.getComponentsDir();
|
|
10
|
-
if (!(
|
|
11
|
-
throw new error_handler_1.CLIError(
|
|
12
|
-
suggestions: [
|
|
13
|
-
'Run "npm run setup" to download components.'
|
|
14
|
-
]
|
|
10
|
+
if (!(0, fs_1.existsSync)(componentsDir)) {
|
|
11
|
+
throw new error_handler_1.CLIError("Components directory not found.", {
|
|
12
|
+
suggestions: ['Run "npm run setup" to download components.'],
|
|
15
13
|
});
|
|
16
14
|
}
|
|
17
15
|
const iocdDir = path_1.PathUtils.getComponentDir("iocd");
|
|
18
16
|
if (!(0, fs_1.existsSync)(iocdDir)) {
|
|
19
|
-
throw new error_handler_1.CLIError(
|
|
17
|
+
throw new error_handler_1.CLIError("Required iocd component not found.", {
|
|
20
18
|
suggestions: [
|
|
21
19
|
'Run "npm run setup" to download components',
|
|
22
20
|
'Make sure you have iocd component listed in iocd.cli.config.json under "components.list"',
|
|
23
|
-
]
|
|
21
|
+
],
|
|
24
22
|
});
|
|
25
23
|
}
|
|
26
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure.iocd.exists.js","sourceRoot":"","sources":["../../src/utils/ensure.iocd.exists.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"ensure.iocd.exists.js","sourceRoot":"","sources":["../../src/utils/ensure.iocd.exists.ts"],"names":[],"mappings":";;AAIA,8DAkBC;AAtBD,2BAAgC;AAChC,mDAA2C;AAC3C,iCAAmC;AAEnC,SAAgB,yBAAyB;IACvC,oCAAoC;IACpC,MAAM,aAAa,GAAG,gBAAS,CAAC,gBAAgB,EAAE,CAAC;IACnD,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,wBAAQ,CAAC,iCAAiC,EAAE;YACpD,WAAW,EAAE,CAAC,6CAA6C,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,gBAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAQ,CAAC,oCAAoC,EAAE;YACvD,WAAW,EAAE;gBACX,4CAA4C;gBAC5C,0FAA0F;aAC3F;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -60,7 +60,7 @@ class CLIError extends Error {
|
|
|
60
60
|
showLogPath;
|
|
61
61
|
constructor(message, options = {}) {
|
|
62
62
|
super(message);
|
|
63
|
-
this.name =
|
|
63
|
+
this.name = "CLIError";
|
|
64
64
|
this.code = options.code ?? ErrorCode.GENERAL;
|
|
65
65
|
this.cause = options.cause;
|
|
66
66
|
this.suggestions = options.suggestions ?? [];
|
|
@@ -71,25 +71,28 @@ exports.CLIError = CLIError;
|
|
|
71
71
|
class ErrorHandler {
|
|
72
72
|
static logger = logger_1.Logger.getInstance("error.handler");
|
|
73
73
|
static async handle(error) {
|
|
74
|
-
this.logger.error((0, colors_1.red)(
|
|
74
|
+
this.logger.error((0, colors_1.red)("✖"), (0, colors_1.bold)("Error:"), error);
|
|
75
75
|
if (error.cause) {
|
|
76
|
-
this.logger.error(
|
|
76
|
+
this.logger.error("Caused by:", error.cause);
|
|
77
77
|
}
|
|
78
78
|
const exitCode = error instanceof CLIError ? error.code : ErrorCode.GENERAL;
|
|
79
|
-
if (error instanceof CLIError) {
|
|
79
|
+
if (error instanceof CLIError) {
|
|
80
|
+
// Show suggestions if available
|
|
80
81
|
if (error.suggestions.length > 0) {
|
|
81
|
-
clack.note(error.suggestions
|
|
82
|
+
clack.note(error.suggestions
|
|
83
|
+
.map(suggestion => (0, colors_1.yellow)(` • ${suggestion}`))
|
|
84
|
+
.join("\n"), "Suggestions:");
|
|
82
85
|
}
|
|
83
86
|
// Show log path for troubleshooting
|
|
84
87
|
if (error.showLogPath) {
|
|
85
|
-
this.logger.error((0, colors_1.gray)(
|
|
86
|
-
this.logger.error((0, colors_1.gray)(
|
|
88
|
+
this.logger.error((0, colors_1.gray)("For detailed logs, check:"));
|
|
89
|
+
this.logger.error((0, colors_1.gray)(" " + this.logger.getLogPath()));
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
92
|
else {
|
|
90
93
|
// Generic error handling
|
|
91
|
-
this.logger.error((0, colors_1.gray)(
|
|
92
|
-
this.logger.error((0, colors_1.gray)(
|
|
94
|
+
this.logger.error((0, colors_1.gray)("For detailed logs, check:"));
|
|
95
|
+
this.logger.error((0, colors_1.gray)(" " + this.logger.getLogPath()));
|
|
93
96
|
}
|
|
94
97
|
// Ensure all logs are flushed before exit
|
|
95
98
|
this.logger.flush();
|
|
@@ -111,33 +114,33 @@ class ErrorHandler {
|
|
|
111
114
|
try {
|
|
112
115
|
Sentry.withScope((scope) => {
|
|
113
116
|
// Set error context
|
|
114
|
-
scope.setTag(
|
|
115
|
-
scope.setLevel(
|
|
117
|
+
scope.setTag("errorCode", error instanceof CLIError ? error.code : "GENERAL");
|
|
118
|
+
scope.setLevel("error");
|
|
116
119
|
// Add log file as attachment
|
|
117
120
|
try {
|
|
118
|
-
const logContent = (0, fs_1.readFileSync)(this.logger.getLogPath(),
|
|
121
|
+
const logContent = (0, fs_1.readFileSync)(this.logger.getLogPath(), "utf8");
|
|
119
122
|
scope.addAttachment({
|
|
120
|
-
filename:
|
|
123
|
+
filename: "cli.log",
|
|
121
124
|
data: logContent,
|
|
122
|
-
contentType:
|
|
125
|
+
contentType: "text/plain",
|
|
123
126
|
});
|
|
124
127
|
}
|
|
125
128
|
catch (logError) {
|
|
126
|
-
console.error(
|
|
129
|
+
console.error("Failed to attach log file to Sentry:", logError);
|
|
127
130
|
}
|
|
128
131
|
// Add CLI-specific context
|
|
129
|
-
scope.setContext(
|
|
130
|
-
version: require(
|
|
131
|
-
command: process.argv.slice(2).join(
|
|
132
|
+
scope.setContext("cli", {
|
|
133
|
+
version: require("../../package.json").version,
|
|
134
|
+
command: process.argv.slice(2).join(" "),
|
|
132
135
|
platform: process.platform,
|
|
133
|
-
nodeVersion: process.version
|
|
136
|
+
nodeVersion: process.version,
|
|
134
137
|
});
|
|
135
138
|
// Capture the error
|
|
136
139
|
Sentry.captureException(error);
|
|
137
140
|
});
|
|
138
141
|
}
|
|
139
142
|
catch (sentryError) {
|
|
140
|
-
console.error(
|
|
143
|
+
console.error("Failed to send error to Sentry:", sentryError);
|
|
141
144
|
}
|
|
142
145
|
}
|
|
143
146
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.handler.js","sourceRoot":"","sources":["../../src/utils/error.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAClC,qCAAmD;AACnD,sDAAwC;AACxC,sEAAkE;AAClE,2BAAkC;AAClC,qDAAuC;AACvC,mCAAgC;AAEhC,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,6DAAkB,CAAA;IAClB,2DAAiB,CAAA;IACjB,mEAAqB,CAAA;IACrB,+DAAmB,CAAA;IACnB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,mDAAa,CAAA;IACb,uDAAe,CAAA;AACjB,CAAC,EAVW,SAAS,yBAAT,SAAS,QAUpB;AASD,MAAa,QAAS,SAAQ,KAAK;IACjB,IAAI,CAAY;IACP,KAAK,CAAqB;IACnC,WAAW,CAAW;IACtB,WAAW,CAAU;IAErC,YAAY,OAAe,EAAE,UAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;IACjD,CAAC;CACF;AAdD,4BAcC;AAED,MAAa,YAAY;IACf,MAAM,CAAC,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAErD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAuB;
|
|
1
|
+
{"version":3,"file":"error.handler.js","sourceRoot":"","sources":["../../src/utils/error.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;AAClC,qCAAmD;AACnD,sDAAwC;AACxC,sEAAkE;AAClE,2BAAkC;AAClC,qDAAuC;AACvC,mCAAgC;AAEhC,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,6DAAkB,CAAA;IAClB,2DAAiB,CAAA;IACjB,mEAAqB,CAAA;IACrB,+DAAmB,CAAA;IACnB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,mDAAa,CAAA;IACb,uDAAe,CAAA;AACjB,CAAC,EAVW,SAAS,yBAAT,SAAS,QAUpB;AASD,MAAa,QAAS,SAAQ,KAAK;IACjB,IAAI,CAAY;IACP,KAAK,CAAqB;IACnC,WAAW,CAAW;IACtB,WAAW,CAAU;IAErC,YAAY,OAAe,EAAE,UAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;IACjD,CAAC;CACF;AAdD,4BAcC;AAED,MAAa,YAAY;IACf,MAAM,CAAC,MAAM,GAAG,eAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAErD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAuB;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,YAAG,EAAC,GAAG,CAAC,EAAE,IAAA,aAAI,EAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;QAE5E,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,gCAAgC;YAChC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,WAAW;qBACd,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAA,eAAM,EAAC,OAAO,UAAU,EAAE,CAAC,CAAC;qBAC9C,IAAI,CAAC,IAAI,CAAC,EACb,cAAc,CACf,CAAC;YACJ,CAAC;YAED,oCAAoC;YACpC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAI,EAAC,2BAA2B,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAI,EAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAI,EAAC,2BAA2B,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAI,EAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAEpB,0DAA0D;QAC1D,MAAM,IAAA,aAAK,EAAC,GAAG,CAAC,CAAC;QACjB,IAAI,8BAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,6DAA6D;YAC7D,MAAM,IAAA,aAAK,EAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,EAAsB;QACvC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,KAAuB;QACjD,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC9B,oBAAoB;gBACpB,KAAK,CAAC,MAAM,CACV,WAAW,EACX,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CACnD,CAAC;gBACF,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAExB,6BAA6B;gBAC7B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;oBAClE,KAAK,CAAC,aAAa,CAAC;wBAClB,QAAQ,EAAE,SAAS;wBACnB,IAAI,EAAE,UAAU;wBAChB,WAAW,EAAE,YAAY;qBAC1B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,QAAQ,CAAC,CAAC;gBAClE,CAAC;gBAED,2BAA2B;gBAC3B,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE;oBACtB,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO;oBAC9C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;oBACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;;AAzFH,oCA0FC"}
|
package/dist/utils/file.js
CHANGED
|
@@ -33,7 +33,7 @@ class FileUtils {
|
|
|
33
33
|
await fs_extra_1.default.writeJson(filePath, data, { spaces: 2 });
|
|
34
34
|
}
|
|
35
35
|
static async writeFile(filePath, content) {
|
|
36
|
-
await fs_extra_1.default.writeFile(filePath, content,
|
|
36
|
+
await fs_extra_1.default.writeFile(filePath, content, "utf8");
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.FileUtils = FileUtils;
|
package/dist/utils/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAE1B,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/utils/file.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAE1B,MAAa,SAAS;IACpB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAClC,IAAI,CAAC;YACH,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAe;QACpC,MAAM,kBAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,IAAY;QAC7C,MAAM,kBAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB;QACtC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,kBAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAI,QAAgB;QACjC,OAAO,kBAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,IAAS;QAChD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAe;QACtD,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;CACF;AAnCD,8BAmCC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -46,9 +46,9 @@ const colors_1 = require("./colors");
|
|
|
46
46
|
class Logger {
|
|
47
47
|
static inited;
|
|
48
48
|
logger;
|
|
49
|
-
static timestamp = new Date().toISOString().replace(/[:.]/g,
|
|
49
|
+
static timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
50
50
|
static logFileName = `cli-${Logger.timestamp}.log`;
|
|
51
|
-
static logDir = (0, node_path_1.join)((0, node_os_1.tmpdir)(),
|
|
51
|
+
static logDir = (0, node_path_1.join)((0, node_os_1.tmpdir)(), "@interopio-iocd-cli");
|
|
52
52
|
static logPath = (0, node_path_1.join)(Logger.logDir, Logger.logFileName);
|
|
53
53
|
constructor(name) {
|
|
54
54
|
this.logger = log4js_1.default.getLogger(name);
|
|
@@ -73,7 +73,8 @@ class Logger {
|
|
|
73
73
|
if (loggingEvent.level.level < 20000) {
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
|
-
const fullMessage = loggingEvent.data
|
|
76
|
+
const fullMessage = loggingEvent.data
|
|
77
|
+
.map(d => {
|
|
77
78
|
// check if error and format properly to string
|
|
78
79
|
if (d instanceof Error) {
|
|
79
80
|
return d.stack || d.message;
|
|
@@ -81,11 +82,12 @@ class Logger {
|
|
|
81
82
|
if (d.stack || d.message) {
|
|
82
83
|
return d.stack || d.message;
|
|
83
84
|
}
|
|
84
|
-
if (typeof d ===
|
|
85
|
+
if (typeof d === "string") {
|
|
85
86
|
return d;
|
|
86
87
|
}
|
|
87
88
|
return JSON.stringify(d, null, 4);
|
|
88
|
-
})
|
|
89
|
+
})
|
|
90
|
+
.join(" ");
|
|
89
91
|
// check if level is error user error
|
|
90
92
|
if (loggingEvent.level.level >= 40000) {
|
|
91
93
|
clack.log.error(fullMessage);
|
|
@@ -101,7 +103,7 @@ class Logger {
|
|
|
101
103
|
if (firstMessage.toLowerCase().includes("successfully")) {
|
|
102
104
|
clack.log.success((0, colors_1.green)(fullMessage));
|
|
103
105
|
}
|
|
104
|
-
else if (firstWord.endsWith(
|
|
106
|
+
else if (firstWord.endsWith("ing")) {
|
|
105
107
|
clack.log.step(fullMessage);
|
|
106
108
|
}
|
|
107
109
|
else if (firstMessage.toLowerCase().includes("failed")) {
|
|
@@ -120,19 +122,19 @@ class Logger {
|
|
|
120
122
|
level: "info",
|
|
121
123
|
},
|
|
122
124
|
file: {
|
|
123
|
-
type:
|
|
125
|
+
type: "file",
|
|
124
126
|
filename: Logger.logPath,
|
|
125
|
-
maxLogSize: 10485760, // 10MB in bytes
|
|
127
|
+
maxLogSize: 10485760, // 10MB in bytes
|
|
126
128
|
layout: {
|
|
127
|
-
type:
|
|
128
|
-
pattern:
|
|
129
|
-
}
|
|
129
|
+
type: "pattern",
|
|
130
|
+
pattern: "[%d] [%p] %c - %m",
|
|
131
|
+
},
|
|
130
132
|
},
|
|
131
133
|
};
|
|
132
134
|
const categories = {
|
|
133
135
|
default: {
|
|
134
|
-
appenders: [
|
|
135
|
-
level:
|
|
136
|
+
appenders: ["console-info", "file"],
|
|
137
|
+
level: "debug",
|
|
136
138
|
},
|
|
137
139
|
};
|
|
138
140
|
log4js_1.default.configure({
|
|
@@ -162,10 +164,10 @@ class Logger {
|
|
|
162
164
|
}
|
|
163
165
|
setVerbose(verbose) {
|
|
164
166
|
if (verbose) {
|
|
165
|
-
this.logger.level =
|
|
167
|
+
this.logger.level = "debug";
|
|
166
168
|
}
|
|
167
169
|
else {
|
|
168
|
-
this.logger.level =
|
|
170
|
+
this.logger.level = "info";
|
|
169
171
|
}
|
|
170
172
|
}
|
|
171
173
|
shutdown() {
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAC5B,qCAAiC;AACjC,yCAAiC;AACjC,qCAAoC;AACpC,sDAAwC;AACxC,qCAAiC;AAEjC,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|