serverless-spy 0.0.41 → 0.0.42
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/.jsii +2 -3
- package/cli/cli.ts +53 -12
- package/cli/package.json +1 -4
- package/dist/releasetag.txt +1 -1
- package/lib/cli/cli.js +37 -13
- package/lib/cli/cli.mjs +37 -13
- package/lib/cli/cli.ts +53 -12
- package/lib/cli/package.json +1 -4
- package/lib/src/ServerlessSpy.js +1 -1
- package/package.json +1 -3
- package/node_modules/expand-tilde/LICENSE +0 -21
- package/node_modules/expand-tilde/README.md +0 -80
- package/node_modules/expand-tilde/index.js +0 -22
- package/node_modules/expand-tilde/package.json +0 -67
- package/node_modules/get-installed-path/CHANGELOG.md +0 -99
- package/node_modules/get-installed-path/LICENSE +0 -21
- package/node_modules/get-installed-path/README.md +0 -282
- package/node_modules/get-installed-path/dist/index.es.js +0 -181
- package/node_modules/get-installed-path/dist/index.js +0 -188
- package/node_modules/get-installed-path/package.json +0 -101
- package/node_modules/global-modules/LICENSE +0 -21
- package/node_modules/global-modules/README.md +0 -75
- package/node_modules/global-modules/index.js +0 -31
- package/node_modules/global-modules/package.json +0 -72
- package/node_modules/global-prefix/LICENSE +0 -21
- package/node_modules/global-prefix/README.md +0 -78
- package/node_modules/global-prefix/index.js +0 -96
- package/node_modules/global-prefix/node_modules/which/CHANGELOG.md +0 -152
- package/node_modules/global-prefix/node_modules/which/LICENSE +0 -15
- package/node_modules/global-prefix/node_modules/which/README.md +0 -51
- package/node_modules/global-prefix/node_modules/which/bin/which +0 -52
- package/node_modules/global-prefix/node_modules/which/package.json +0 -30
- package/node_modules/global-prefix/node_modules/which/which.js +0 -135
- package/node_modules/global-prefix/package.json +0 -75
- package/node_modules/homedir-polyfill/LICENSE +0 -21
- package/node_modules/homedir-polyfill/README.md +0 -96
- package/node_modules/homedir-polyfill/index.js +0 -9
- package/node_modules/homedir-polyfill/package.json +0 -62
- package/node_modules/homedir-polyfill/polyfill.js +0 -81
- package/node_modules/ini/LICENSE +0 -15
- package/node_modules/ini/README.md +0 -102
- package/node_modules/ini/ini.js +0 -206
- package/node_modules/ini/package.json +0 -33
- package/node_modules/is-windows/LICENSE +0 -21
- package/node_modules/is-windows/README.md +0 -95
- package/node_modules/is-windows/index.js +0 -27
- package/node_modules/is-windows/package.json +0 -71
- package/node_modules/isexe/.npmignore +0 -2
- package/node_modules/isexe/LICENSE +0 -15
- package/node_modules/isexe/README.md +0 -51
- package/node_modules/isexe/index.js +0 -57
- package/node_modules/isexe/mode.js +0 -41
- package/node_modules/isexe/package.json +0 -31
- package/node_modules/isexe/test/basic.js +0 -221
- package/node_modules/isexe/windows.js +0 -42
- package/node_modules/parse-passwd/LICENSE +0 -21
- package/node_modules/parse-passwd/README.md +0 -86
- package/node_modules/parse-passwd/index.js +0 -56
- package/node_modules/parse-passwd/package.json +0 -55
- package/node_modules/resolve-dir/LICENSE +0 -21
- package/node_modules/resolve-dir/README.md +0 -88
- package/node_modules/resolve-dir/index.js +0 -22
- package/node_modules/resolve-dir/package.json +0 -73
package/.jsii
CHANGED
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
"bootstrap": "^5.2.1",
|
|
29
29
|
"bootstrap-icons": "^1.9.1",
|
|
30
30
|
"caporal": "^1.4.0",
|
|
31
|
-
"get-installed-path": "^4.0.8",
|
|
32
31
|
"json-format-highlight": "^1.0.4",
|
|
33
32
|
"open": "^8.4.0",
|
|
34
33
|
"ws": "^8.9.0"
|
|
@@ -3545,6 +3544,6 @@
|
|
|
3545
3544
|
"symbolId": "src/ServerlessSpy:SpyFilter"
|
|
3546
3545
|
}
|
|
3547
3546
|
},
|
|
3548
|
-
"version": "0.0.
|
|
3549
|
-
"fingerprint": "
|
|
3547
|
+
"version": "0.0.42",
|
|
3548
|
+
"fingerprint": "FkpLMmbunFaFfMfPx/u3+Ga3z7yogdXMmPX+LAo0Dtw="
|
|
3550
3549
|
}
|
package/cli/cli.ts
CHANGED
|
@@ -4,12 +4,17 @@ import * as http from 'http';
|
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
import * as progam from 'caporal';
|
|
7
|
-
import
|
|
8
|
-
import open from 'open';
|
|
7
|
+
import * as open from 'open';
|
|
9
8
|
import { getSignedWebSocketUrl } from '../common/getWebSocketUrl';
|
|
10
9
|
|
|
11
10
|
const readFileAsync = promisify(fs.readFile);
|
|
12
11
|
|
|
12
|
+
//resolve issue with module import
|
|
13
|
+
let opener = open;
|
|
14
|
+
if ((open as any).default) {
|
|
15
|
+
opener = (open as any).default;
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
async function run() {
|
|
14
19
|
let stackList: string[] | undefined;
|
|
15
20
|
let cdkOutput: Record<string, Record<string, string>>;
|
|
@@ -27,11 +32,11 @@ async function run() {
|
|
|
27
32
|
'--cdkstack <cdkstack>',
|
|
28
33
|
'CDK stack in cdk output file. If not specified the first one is picked.'
|
|
29
34
|
)
|
|
30
|
-
.option('--open', 'Open browser',
|
|
35
|
+
.option('--open <open>', 'Open browser', progam.BOOL, true)
|
|
31
36
|
.option(
|
|
32
37
|
'--port <p>',
|
|
33
38
|
`CDK stack in cdk output file. If not specified the first one is picked.`,
|
|
34
|
-
|
|
39
|
+
progam.INT,
|
|
35
40
|
'3456'
|
|
36
41
|
)
|
|
37
42
|
.action((_args, opt, _logger) => {
|
|
@@ -62,19 +67,19 @@ async function run() {
|
|
|
62
67
|
|
|
63
68
|
if (request.url?.startsWith('/webServerlessSpy.js')) {
|
|
64
69
|
//get transpiled TS to JS files
|
|
65
|
-
rootFolder =
|
|
70
|
+
rootFolder = getCompiledJsPath();
|
|
66
71
|
} else if (request.url?.startsWith('/bootstrap/')) {
|
|
67
72
|
filePath = filePath.substring('/bootstrap/'.length);
|
|
68
|
-
const bootstrapFolder = await
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
const bootstrapFolder = await getNpmModuleInstalledPath(
|
|
74
|
+
'bootstrap'
|
|
75
|
+
);
|
|
71
76
|
|
|
72
77
|
rootFolder = bootstrapFolder;
|
|
73
78
|
} else if (request.url?.startsWith('/bootstrap-icons/')) {
|
|
74
79
|
filePath = filePath.substring('/bootstrap-icons/'.length);
|
|
75
|
-
const bootstrapFolder = await
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
const bootstrapFolder = await getNpmModuleInstalledPath(
|
|
81
|
+
'bootstrap-icons'
|
|
82
|
+
);
|
|
78
83
|
|
|
79
84
|
rootFolder = bootstrapFolder;
|
|
80
85
|
} else {
|
|
@@ -171,7 +176,43 @@ async function run() {
|
|
|
171
176
|
console.log(
|
|
172
177
|
`ServerlessSoy console runing at http://localhost:${options.port}`
|
|
173
178
|
);
|
|
174
|
-
|
|
179
|
+
if (options.open) {
|
|
180
|
+
await opener(`http://localhost:${options.port}`);
|
|
181
|
+
}
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
run().catch(console.error);
|
|
185
|
+
|
|
186
|
+
function getNpmModuleInstalledPath(npm: string) {
|
|
187
|
+
let folder = path.join(__dirname, '../', 'node_modules', npm);
|
|
188
|
+
if (fs.existsSync(folder)) {
|
|
189
|
+
return folder;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
let folderAsPackage = path.join(__dirname, '../../', 'node_modules', npm);
|
|
193
|
+
|
|
194
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
195
|
+
return folderAsPackage;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
throw new Error(
|
|
199
|
+
`Can not find package in folder ${folder} and ${folderAsPackage}`
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function getCompiledJsPath() {
|
|
204
|
+
let folder = path.join(__dirname, '../', 'lib/cli');
|
|
205
|
+
if (fs.existsSync(folder)) {
|
|
206
|
+
return folder;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
let folderAsPackage = path.join(__dirname, '../../', 'lib/cli');
|
|
210
|
+
|
|
211
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
212
|
+
return folderAsPackage;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
throw new Error(
|
|
216
|
+
`Can not find compiled files in folder ${folder} and ${folderAsPackage}`
|
|
217
|
+
);
|
|
218
|
+
}
|
package/cli/package.json
CHANGED
|
@@ -13,11 +13,8 @@
|
|
|
13
13
|
"bootstrap": "^5.2.1",
|
|
14
14
|
"bootstrap-icons": "^1.9.1",
|
|
15
15
|
"caporal": "^1.4.0",
|
|
16
|
-
"get-installed-path": "^4.0.8",
|
|
17
16
|
"json-format-highlight": "^1.0.4",
|
|
18
17
|
"open": "^8.4.0"
|
|
19
18
|
},
|
|
20
|
-
"devDependencies": {
|
|
21
|
-
"@types/get-installed-path": "^4.0.1"
|
|
22
|
-
}
|
|
19
|
+
"devDependencies": {}
|
|
23
20
|
}
|
package/dist/releasetag.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
v0.0.
|
|
1
|
+
v0.0.42
|
package/lib/cli/cli.js
CHANGED
|
@@ -6,10 +6,14 @@ const http = require("http");
|
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const util_1 = require("util");
|
|
8
8
|
const progam = require("caporal");
|
|
9
|
-
const
|
|
10
|
-
const open_1 = require("open");
|
|
9
|
+
const open = require("open");
|
|
11
10
|
const getWebSocketUrl_1 = require("../common/getWebSocketUrl");
|
|
12
11
|
const readFileAsync = (0, util_1.promisify)(fs.readFile);
|
|
12
|
+
//resolve issue with module import
|
|
13
|
+
let opener = open;
|
|
14
|
+
if (open.default) {
|
|
15
|
+
opener = open.default;
|
|
16
|
+
}
|
|
13
17
|
async function run() {
|
|
14
18
|
let stackList;
|
|
15
19
|
let cdkOutput;
|
|
@@ -19,8 +23,8 @@ async function run() {
|
|
|
19
23
|
.option('--ws <ws>', 'Websocket link')
|
|
20
24
|
.option('--cdkoutput <cdkoutput>', 'CDK output file that contains Websocket link in a property ServerlessSpyWsUrl')
|
|
21
25
|
.option('--cdkstack <cdkstack>', 'CDK stack in cdk output file. If not specified the first one is picked.')
|
|
22
|
-
.option('--open', 'Open browser',
|
|
23
|
-
.option('--port <p>', `CDK stack in cdk output file. If not specified the first one is picked.`,
|
|
26
|
+
.option('--open <open>', 'Open browser', progam.BOOL, true)
|
|
27
|
+
.option('--port <p>', `CDK stack in cdk output file. If not specified the first one is picked.`, progam.INT, '3456')
|
|
24
28
|
.action((_args, opt, _logger) => {
|
|
25
29
|
options = opt;
|
|
26
30
|
});
|
|
@@ -44,20 +48,16 @@ async function run() {
|
|
|
44
48
|
let rootFolder = __dirname;
|
|
45
49
|
if (request.url?.startsWith('/webServerlessSpy.js')) {
|
|
46
50
|
//get transpiled TS to JS files
|
|
47
|
-
rootFolder =
|
|
51
|
+
rootFolder = getCompiledJsPath();
|
|
48
52
|
}
|
|
49
53
|
else if (request.url?.startsWith('/bootstrap/')) {
|
|
50
54
|
filePath = filePath.substring('/bootstrap/'.length);
|
|
51
|
-
const bootstrapFolder = await (
|
|
52
|
-
local: true,
|
|
53
|
-
});
|
|
55
|
+
const bootstrapFolder = await getNpmModuleInstalledPath('bootstrap');
|
|
54
56
|
rootFolder = bootstrapFolder;
|
|
55
57
|
}
|
|
56
58
|
else if (request.url?.startsWith('/bootstrap-icons/')) {
|
|
57
59
|
filePath = filePath.substring('/bootstrap-icons/'.length);
|
|
58
|
-
const bootstrapFolder = await (
|
|
59
|
-
local: true,
|
|
60
|
-
});
|
|
60
|
+
const bootstrapFolder = await getNpmModuleInstalledPath('bootstrap-icons');
|
|
61
61
|
rootFolder = bootstrapFolder;
|
|
62
62
|
}
|
|
63
63
|
else {
|
|
@@ -146,7 +146,31 @@ async function run() {
|
|
|
146
146
|
})
|
|
147
147
|
.listen(options.port);
|
|
148
148
|
console.log(`ServerlessSoy console runing at http://localhost:${options.port}`);
|
|
149
|
-
|
|
149
|
+
if (options.open) {
|
|
150
|
+
await opener(`http://localhost:${options.port}`);
|
|
151
|
+
}
|
|
150
152
|
}
|
|
151
153
|
run().catch(console.error);
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUM3QiwrQkFBaUM7QUFDakMsa0NBQWtDO0FBQ2xDLDJEQUFzRDtBQUN0RCwrQkFBd0I7QUFDeEIsK0RBQWtFO0FBRWxFLE1BQU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFN0MsS0FBSyxVQUFVLEdBQUc7SUFDaEIsSUFBSSxTQUErQixDQUFDO0lBQ3BDLElBQUksU0FBaUQsQ0FBQztJQUV0RCxJQUFJLE9BQVksQ0FBQztJQUVqQixNQUFNO1NBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztTQUM1QixNQUFNLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO1NBQ3JDLE1BQU0sQ0FDTCx5QkFBeUIsRUFDekIsK0VBQStFLENBQ2hGO1NBQ0EsTUFBTSxDQUNMLHVCQUF1QixFQUN2Qix5RUFBeUUsQ0FDMUU7U0FDQSxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO1NBQ2pELE1BQU0sQ0FDTCxZQUFZLEVBQ1oseUVBQXlFLEVBQ3pFLFNBQVMsRUFDVCxNQUFNLENBQ1A7U0FDQSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzlCLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFFTCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzQixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsSUFBSSxPQUFP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QUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDcEM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1AsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV4QixPQUFPLENBQUMsR0FBRyxDQUNULG9EQUFvRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQ25FLENBQUM7SUFDRixNQUFNLElBQUEsY0FBSSxFQUFDLG9CQUFvQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBwcm9nYW0gZnJvbSAnY2Fwb3JhbCc7XG5pbXBvcnQgeyBnZXRJbnN0YWxsZWRQYXRoIH0gZnJvbSAnZ2V0LWluc3RhbGxlZC1wYXRoJztcbmltcG9ydCBvcGVuIGZyb20gJ29wZW4nO1xuaW1wb3J0IHsgZ2V0U2lnbmVkV2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmNvbnN0IHJlYWRGaWxlQXN5bmMgPSBwcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIGxldCBzdGFja0xpc3Q6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBsZXQgY2RrT3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICBsZXQgb3B0aW9uczogYW55O1xuXG4gIHByb2dhbVxuICAgIC5kZXNjcmlwdGlvbignU2VydmVybGVzc1NweScpXG4gICAgLm9wdGlvbignLS13cyA8d3M+JywgJ1dlYnNvY2tldCBsaW5rJylcbiAgICAub3B0aW9uKFxuICAgICAgJy0tY2Rrb3V0cHV0IDxjZGtvdXRwdXQ+JyxcbiAgICAgICdDREsgb3V0cHV0IGZpbGUgdGhhdCBjb250YWlucyBXZWJzb2NrZXQgbGluayBpbiBhIHByb3BlcnR5IFNlcnZlcmxlc3NTcHlXc1VybCdcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICctLWNka3N0YWNrIDxjZGtzdGFjaz4nLFxuICAgICAgJ0NESyBzdGFjayBpbiBjZGsgb3V0cHV0IGZpbGUuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGZpcnN0IG9uZSBpcyBwaWNrZWQuJ1xuICAgIClcbiAgICAub3B0aW9uKCctLW9wZW4nLCAnT3BlbiBicm93c2VyJywgdW5kZWZpbmVkLCB0cnVlKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1wb3J0IDxwPicsXG4gICAgICBgQ0RLIHN0YWNrIGluIGNkayBvdXRwdXQgZmlsZS4gSWYgbm90IHNwZWNpZmllZCB0aGUgZmlyc3Qgb25lIGlzIHBpY2tlZC5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgJzM0NTYnXG4gICAgKVxuICAgIC5hY3Rpb24oKF9hcmdzLCBvcHQsIF9sb2dnZXIpID0+IHtcbiAgICAgIG9wdGlvbnMgPSBvcHQ7XG4gICAgfSk7XG5cbiAgcHJvZ2FtLnBhcnNlKHByb2Nlc3MuYXJndik7XG5cbiAgaWYgKCFvcHRpb25zLndzICYmICFvcHRpb25zLmNka291dHB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLS13cyBvciAtLWNka3N0YWNrIHBhcmFtZXRlciBub3Qgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5jZGtvdXRwdXQpIHtcbiAgICBjb25zdCByYXdkYXRhID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsIG9wdGlvbnMuY2Rrb3V0cHV0KSk7XG4gICAgY2RrT3V0cHV0ID0gSlNPTi5wYXJzZShyYXdkYXRhLnRvU3RyaW5nKCkpO1xuICAgIHN0YWNrTGlzdCA9IE9iamVjdC5rZXlzKGNka091dHB1dCk7XG4gIH1cblxuICBodHRwXG4gICAgLmNyZWF0ZVNlcnZlcigocmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCdyZXF1ZXN0ICcsIHJlcXVlc3QudXJsKTtcbiAgICAgICAgICBsZXQgZmlsZVBhdGg6IHN0cmluZyA9IGAuJHtyZXF1ZXN0LnVybH1gO1xuICAgICAgICAgIC8vcmVtb3ZlIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICAgICAgICBmaWxlUGF0aCA9IGZpbGVQYXRoLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgbGV0IHJvb3RGb2xkZXIgPSBfX2Rpcm5hbWU7XG5cbiAgICAgICAgICBpZiAocmVxdWVzdC51cmw/LnN0YXJ0c1dpdGgoJy93ZWJTZXJ2ZXJsZXNzU3B5LmpzJykpIHtcbiAgICAgICAgICAgIC8vZ2V0IHRyYW5zcGlsZWQgVFMgdG8gSlMgZmlsZXNcbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBgLi4vbGliL2NsaWApO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC51cmw/LnN0YXJ0c1dpdGgoJy9ib290c3RyYXAvJykpIHtcbiAgICAgICAgICAgIGZpbGVQYXRoID0gZmlsZVBhdGguc3Vic3RyaW5nKCcvYm9vdHN0cmFwLycubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJvb3RzdHJhcEZvbGRlciA9IGF3YWl0IGdldEluc3RhbGxlZFBhdGgoJ2Jvb3RzdHJhcCcsIHtcbiAgICAgICAgICAgICAgbG9jYWw6IHRydWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcm9vdEZvbGRlciA9IGJvb3RzdHJhcEZvbGRlcjtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcXVlc3QudXJsPy5zdGFydHNXaXRoKCcvYm9vdHN0cmFwLWljb25zLycpKSB7XG4gICAgICAgICAgICBmaWxlUGF0aCA9IGZpbGVQYXRoLnN1YnN0cmluZygnL2Jvb3RzdHJhcC1pY29ucy8nLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBib290c3RyYXBGb2xkZXIgPSBhd2FpdCBnZXRJbnN0YWxsZWRQYXRoKCdib290c3RyYXAtaWNvbnMnLCB7XG4gICAgICAgICAgICAgIGxvY2FsOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCA9PT0gJy4vJykge1xuICAgICAgICAgICAgICBmaWxlUGF0aCA9ICcuL2luZGV4Lmh0bWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbGVQYXRoID0gcGF0aC5qb2luKHJvb3RGb2xkZXIsIGZpbGVQYXRoKTtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKGAke3JlcXVlc3QudXJsfSAtLT4gJHtmaWxlUGF0aH1gKTtcblxuICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBtaW1lVHlwZXM6IGFueSA9IHtcbiAgICAgICAgICAgICcuaHRtbCc6ICd0ZXh0L2h0bWwnLFxuICAgICAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICAgICAgICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICcuanBnJzogJ2ltYWdlL2pwZycsXG4gICAgICAgICAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAgICAgJy5tcDQnOiAndmlkZW8vbXA0JyxcbiAgICAgICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAgICAgJy50dGYnOiAnYXBwbGljYXRpb24vZm9udC10dGYnLFxuICAgICAgICAgICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAgICAgJy53YXNtJzogJ2FwcGxpY2F0aW9uL3dhc20nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zdGFja0xpc3QnKSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkoc3RhY2tMaXN0KSwgJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8ubWF0Y2goJ14vd3NVcmwnKSkge1xuICAgICAgICAgICAgbGV0IHdzVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy53cykge1xuICAgICAgICAgICAgICB3c1VybCA9IG9wdGlvbnMud3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvcHRpb25zLmNka291dHB1dFxuICAgICAgICAgICAgICBjb25zdCB1cmxQYXRocyA9IHJlcXVlc3QudXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCBzdGFjayA9IHVybFBhdGhzWzJdO1xuXG4gICAgICAgICAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgICAgICAgICBzdGFjayA9IG9wdGlvbnMuY2Rrc3RhY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgICB3c1VybCA9IGNka091dHB1dFtzdGFja10uU2VydmVybGVzc1NweVdzVXJsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjZGtPdXRwdXQgJiYgY2RrT3V0cHV0W09iamVjdC5rZXlzKGNka091dHB1dClbMF1dKSB7XG4gICAgICAgICAgICAgICAgICB3c1VybCA9XG4gICAgICAgICAgICAgICAgICAgIGNka091dHB1dFtPYmplY3Qua2V5cyhjZGtPdXRwdXQpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghd3NVcmwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHdlYnNvY2tldCB1cmwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgV1MgVVJMOiAke3dzVXJsfWApO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVkV1NVcmwgPSBhd2FpdCBnZXRTaWduZWRXZWJTb2NrZXRVcmwod3NVcmwpO1xuICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoc2lnbmVkV1NVcmwsICd1dGYtOCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGVBc3luYyhmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICAgICAgYE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgJHtyZXF1ZXN0LnVybH1gLFxuICAgICAgICAgICAgICAgICAgJ3V0Zi04J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGBFcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg1MDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLmVuZChlcnIubWVzc2FnZSwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgfSlcbiAgICAubGlzdGVuKG9wdGlvbnMucG9ydCk7XG5cbiAgY29uc29sZS5sb2coXG4gICAgYFNlcnZlcmxlc3NTb3kgY29uc29sZSBydW5pbmcgYXQgaHR0cDovL2xvY2FsaG9zdDoke29wdGlvbnMucG9ydH1gXG4gICk7XG4gIGF3YWl0IG9wZW4oYGh0dHA6Ly9sb2NhbGhvc3Q6JHtvcHRpb25zLnBvcnR9YCk7XG59XG5cbnJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19
|
|
154
|
+
function getNpmModuleInstalledPath(npm) {
|
|
155
|
+
let folder = path.join(__dirname, '../', 'node_modules', npm);
|
|
156
|
+
if (fs.existsSync(folder)) {
|
|
157
|
+
return folder;
|
|
158
|
+
}
|
|
159
|
+
let folderAsPackage = path.join(__dirname, '../../', 'node_modules', npm);
|
|
160
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
161
|
+
return folderAsPackage;
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`Can not find package in folder ${folder} and ${folderAsPackage}`);
|
|
164
|
+
}
|
|
165
|
+
function getCompiledJsPath() {
|
|
166
|
+
let folder = path.join(__dirname, '../', 'lib/cli');
|
|
167
|
+
if (fs.existsSync(folder)) {
|
|
168
|
+
return folder;
|
|
169
|
+
}
|
|
170
|
+
let folderAsPackage = path.join(__dirname, '../../', 'lib/cli');
|
|
171
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
172
|
+
return folderAsPackage;
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Can not find compiled files in folder ${folder} and ${folderAsPackage}`);
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUM3QiwrQkFBaUM7QUFDakMsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUM3QiwrREFBa0U7QUFFbEUsTUFBTSxhQUFhLEdBQUcsSUFBQSxnQkFBUyxFQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU3QyxrQ0FBa0M7QUFDbEMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLElBQUssSUFBWSxDQUFDLE9BQU8sRUFBRTtJQUN6QixNQUFNLEdBQUksSUFBWSxDQUFDLE9BQU8sQ0FBQztDQUNoQztBQUVELEtBQUssVUFBVSxHQUFHO0lBQ2hCLElBQUksU0FBK0IsQ0FBQztJQUNwQyxJQUFJLFNBQWlELENBQUM7SUFFdEQsSUFBSSxPQUFZLENBQUM7SUFFakIsTUFBTTtTQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7U0FDNUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztTQUNyQyxNQUFNLENBQ0wseUJBQXlCLEVBQ3pCLCtFQUErRSxDQUNoRjtTQUNBLE1BQU0sQ0FDTCx1QkFBdUIsRUFDdkIseUVBQXlFLENBQzFFO1NBQ0EsTUFBTSxDQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7U0FDMUQsTUFBTSxDQUNMLFlBQVksRUFDWix5RUFBeUUsRUFDekUsTUFBTSxDQUFDLEdBQUcsRUFDVixNQUFNLENBQ1A7U0FDQSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQzlCLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFFTCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJ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RUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWhFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNsQyxPQUFPLGVBQWUsQ0FBQztLQUN4QjtJQUVELE1BQU0sSUFBSSxLQUFLLENBQ2IseUNBQXlDLE1BQU0sUUFBUSxlQUFlLEVBQUUsQ0FDekUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgcHJvZ2FtIGZyb20gJ2NhcG9yYWwnO1xuaW1wb3J0ICogYXMgb3BlbiBmcm9tICdvcGVuJztcbmltcG9ydCB7IGdldFNpZ25lZFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5jb25zdCByZWFkRmlsZUFzeW5jID0gcHJvbWlzaWZ5KGZzLnJlYWRGaWxlKTtcblxuLy9yZXNvbHZlIGlzc3VlIHdpdGggbW9kdWxlIGltcG9ydFxubGV0IG9wZW5lciA9IG9wZW47XG5pZiAoKG9wZW4gYXMgYW55KS5kZWZhdWx0KSB7XG4gIG9wZW5lciA9IChvcGVuIGFzIGFueSkuZGVmYXVsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuKCkge1xuICBsZXQgc3RhY2tMaXN0OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNka091dHB1dDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbiAgbGV0IG9wdGlvbnM6IGFueTtcblxuICBwcm9nYW1cbiAgICAuZGVzY3JpcHRpb24oJ1NlcnZlcmxlc3NTcHknKVxuICAgIC5vcHRpb24oJy0td3MgPHdzPicsICdXZWJzb2NrZXQgbGluaycpXG4gICAgLm9wdGlvbihcbiAgICAgICctLWNka291dHB1dCA8Y2Rrb3V0cHV0PicsXG4gICAgICAnQ0RLIG91dHB1dCBmaWxlIHRoYXQgY29udGFpbnMgV2Vic29ja2V0IGxpbmsgaW4gYSBwcm9wZXJ0eSBTZXJ2ZXJsZXNzU3B5V3NVcmwnXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1jZGtzdGFjayA8Y2Rrc3RhY2s+JyxcbiAgICAgICdDREsgc3RhY2sgaW4gY2RrIG91dHB1dCBmaWxlLiBJZiBub3Qgc3BlY2lmaWVkIHRoZSBmaXJzdCBvbmUgaXMgcGlja2VkLidcbiAgICApXG4gICAgLm9wdGlvbignLS1vcGVuIDxvcGVuPicsICdPcGVuIGJyb3dzZXInLCBwcm9nYW0uQk9PTCwgdHJ1ZSlcbiAgICAub3B0aW9uKFxuICAgICAgJy0tcG9ydCA8cD4nLFxuICAgICAgYENESyBzdGFjayBpbiBjZGsgb3V0cHV0IGZpbGUuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGZpcnN0IG9uZSBpcyBwaWNrZWQuYCxcbiAgICAgIHByb2dhbS5JTlQsXG4gICAgICAnMzQ1NidcbiAgICApXG4gICAgLmFjdGlvbigoX2FyZ3MsIG9wdCwgX2xvZ2dlcikgPT4ge1xuICAgICAgb3B0aW9ucyA9IG9wdDtcbiAgICB9KTtcblxuICBwcm9nYW0ucGFyc2UocHJvY2Vzcy5hcmd2KTtcblxuICBpZiAoIW9wdGlvbnMud3MgJiYgIW9wdGlvbnMuY2Rrb3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCctLXdzIG9yIC0tY2Rrc3RhY2sgcGFyYW1ldGVyIG5vdCBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmNka291dHB1dCkge1xuICAgIGNvbnN0IHJhd2RhdGEgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgb3B0aW9ucy5jZGtvdXRwdXQpKTtcbiAgICBjZGtPdXRwdXQgPSBKU09OLnBhcnNlKHJhd2RhdGEudG9TdHJpbmcoKSk7XG4gICAgc3RhY2tMaXN0ID0gT2JqZWN0LmtleXMoY2RrT3V0cHV0KTtcbiAgfVxuXG4gIGh0dHBcbiAgICAuY3JlYXRlU2VydmVyKChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vY29uc29sZS5sb2coJ3JlcXVlc3QgJywgcmVxdWVzdC51cmwpO1xuICAgICAgICAgIGxldCBmaWxlUGF0aDogc3RyaW5nID0gYC4ke3JlcXVlc3QudXJsfWA7XG4gICAgICAgICAgLy9yZW1vdmUgcXVlcnkgcGFyYW1ldGVyc1xuICAgICAgICAgIGZpbGVQYXRoID0gZmlsZVBhdGguc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICBsZXQgcm9vdEZvbGRlciA9IF9fZGlybmFtZTtcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL3dlYlNlcnZlcmxlc3NTcHkuanMnKSkge1xuICAgICAgICAgICAgLy9nZXQgdHJhbnNwaWxlZCBUUyB0byBKUyBmaWxlc1xuICAgICAgICAgICAgcm9vdEZvbGRlciA9IGdldENvbXBpbGVkSnNQYXRoKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL2Jvb3RzdHJhcC8nKSkge1xuICAgICAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoJy9ib290c3RyYXAvJy5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgYm9vdHN0cmFwRm9sZGVyID0gYXdhaXQgZ2V0TnBtTW9kdWxlSW5zdGFsbGVkUGF0aChcbiAgICAgICAgICAgICAgJ2Jvb3RzdHJhcCdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL2Jvb3RzdHJhcC1pY29ucy8nKSkge1xuICAgICAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoJy9ib290c3RyYXAtaWNvbnMvJy5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgYm9vdHN0cmFwRm9sZGVyID0gYXdhaXQgZ2V0TnBtTW9kdWxlSW5zdGFsbGVkUGF0aChcbiAgICAgICAgICAgICAgJ2Jvb3RzdHJhcC1pY29ucydcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCA9PT0gJy4vJykge1xuICAgICAgICAgICAgICBmaWxlUGF0aCA9ICcuL2luZGV4Lmh0bWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbGVQYXRoID0gcGF0aC5qb2luKHJvb3RGb2xkZXIsIGZpbGVQYXRoKTtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKGAke3JlcXVlc3QudXJsfSAtLT4gJHtmaWxlUGF0aH1gKTtcblxuICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBtaW1lVHlwZXM6IGFueSA9IHtcbiAgICAgICAgICAgICcuaHRtbCc6ICd0ZXh0L2h0bWwnLFxuICAgICAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICAgICAgICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICcuanBnJzogJ2ltYWdlL2pwZycsXG4gICAgICAgICAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAgICAgJy5tcDQnOiAndmlkZW8vbXA0JyxcbiAgICAgICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAgICAgJy50dGYnOiAnYXBwbGljYXRpb24vZm9udC10dGYnLFxuICAgICAgICAgICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAgICAgJy53YXNtJzogJ2FwcGxpY2F0aW9uL3dhc20nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zdGFja0xpc3QnKSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkoc3RhY2tMaXN0KSwgJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8ubWF0Y2goJ14vd3NVcmwnKSkge1xuICAgICAgICAgICAgbGV0IHdzVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy53cykge1xuICAgICAgICAgICAgICB3c1VybCA9IG9wdGlvbnMud3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvcHRpb25zLmNka291dHB1dFxuICAgICAgICAgICAgICBjb25zdCB1cmxQYXRocyA9IHJlcXVlc3QudXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCBzdGFjayA9IHVybFBhdGhzWzJdO1xuXG4gICAgICAgICAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgICAgICAgICBzdGFjayA9IG9wdGlvbnMuY2Rrc3RhY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgICB3c1VybCA9IGNka091dHB1dFtzdGFja10uU2VydmVybGVzc1NweVdzVXJsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjZGtPdXRwdXQgJiYgY2RrT3V0cHV0W09iamVjdC5rZXlzKGNka091dHB1dClbMF1dKSB7XG4gICAgICAgICAgICAgICAgICB3c1VybCA9XG4gICAgICAgICAgICAgICAgICAgIGNka091dHB1dFtPYmplY3Qua2V5cyhjZGtPdXRwdXQpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghd3NVcmwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHdlYnNvY2tldCB1cmwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgV1MgVVJMOiAke3dzVXJsfWApO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVkV1NVcmwgPSBhd2FpdCBnZXRTaWduZWRXZWJTb2NrZXRVcmwod3NVcmwpO1xuICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoc2lnbmVkV1NVcmwsICd1dGYtOCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGVBc3luYyhmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICAgICAgYE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgJHtyZXF1ZXN0LnVybH1gLFxuICAgICAgICAgICAgICAgICAgJ3V0Zi04J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGBFcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg1MDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLmVuZChlcnIubWVzc2FnZSwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgfSlcbiAgICAubGlzdGVuKG9wdGlvbnMucG9ydCk7XG5cbiAgY29uc29sZS5sb2coXG4gICAgYFNlcnZlcmxlc3NTb3kgY29uc29sZSBydW5pbmcgYXQgaHR0cDovL2xvY2FsaG9zdDoke29wdGlvbnMucG9ydH1gXG4gICk7XG4gIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICBhd2FpdCBvcGVuZXIoYGh0dHA6Ly9sb2NhbGhvc3Q6JHtvcHRpb25zLnBvcnR9YCk7XG4gIH1cbn1cblxucnVuKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XG5cbmZ1bmN0aW9uIGdldE5wbU1vZHVsZUluc3RhbGxlZFBhdGgobnBtOiBzdHJpbmcpIHtcbiAgbGV0IGZvbGRlciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8nLCAnbm9kZV9tb2R1bGVzJywgbnBtKTtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoZm9sZGVyKSkge1xuICAgIHJldHVybiBmb2xkZXI7XG4gIH1cblxuICBsZXQgZm9sZGVyQXNQYWNrYWdlID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLycsICdub2RlX21vZHVsZXMnLCBucG0pO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlckFzUGFja2FnZSkpIHtcbiAgICByZXR1cm4gZm9sZGVyQXNQYWNrYWdlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBDYW4gbm90IGZpbmQgcGFja2FnZSBpbiBmb2xkZXIgJHtmb2xkZXJ9IGFuZCAke2ZvbGRlckFzUGFja2FnZX1gXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBpbGVkSnNQYXRoKCkge1xuICBsZXQgZm9sZGVyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLycsICdsaWIvY2xpJyk7XG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlcikpIHtcbiAgICByZXR1cm4gZm9sZGVyO1xuICB9XG5cbiAgbGV0IGZvbGRlckFzUGFja2FnZSA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8nLCAnbGliL2NsaScpO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlckFzUGFja2FnZSkpIHtcbiAgICByZXR1cm4gZm9sZGVyQXNQYWNrYWdlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBDYW4gbm90IGZpbmQgY29tcGlsZWQgZmlsZXMgaW4gZm9sZGVyICR7Zm9sZGVyfSBhbmQgJHtmb2xkZXJBc1BhY2thZ2V9YFxuICApO1xufVxuIl19
|
package/lib/cli/cli.mjs
CHANGED
|
@@ -4,10 +4,14 @@ import * as http from 'http';
|
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
import * as progam from 'caporal';
|
|
7
|
-
import
|
|
8
|
-
import open from 'open';
|
|
7
|
+
import * as open from 'open';
|
|
9
8
|
import { getSignedWebSocketUrl } from '../common/getWebSocketUrl';
|
|
10
9
|
const readFileAsync = promisify(fs.readFile);
|
|
10
|
+
//resolve issue with module import
|
|
11
|
+
let opener = open;
|
|
12
|
+
if (open.default) {
|
|
13
|
+
opener = open.default;
|
|
14
|
+
}
|
|
11
15
|
async function run() {
|
|
12
16
|
let stackList;
|
|
13
17
|
let cdkOutput;
|
|
@@ -17,8 +21,8 @@ async function run() {
|
|
|
17
21
|
.option('--ws <ws>', 'Websocket link')
|
|
18
22
|
.option('--cdkoutput <cdkoutput>', 'CDK output file that contains Websocket link in a property ServerlessSpyWsUrl')
|
|
19
23
|
.option('--cdkstack <cdkstack>', 'CDK stack in cdk output file. If not specified the first one is picked.')
|
|
20
|
-
.option('--open', 'Open browser',
|
|
21
|
-
.option('--port <p>', `CDK stack in cdk output file. If not specified the first one is picked.`,
|
|
24
|
+
.option('--open <open>', 'Open browser', progam.BOOL, true)
|
|
25
|
+
.option('--port <p>', `CDK stack in cdk output file. If not specified the first one is picked.`, progam.INT, '3456')
|
|
22
26
|
.action((_args, opt, _logger) => {
|
|
23
27
|
options = opt;
|
|
24
28
|
});
|
|
@@ -42,20 +46,16 @@ async function run() {
|
|
|
42
46
|
let rootFolder = __dirname;
|
|
43
47
|
if (request.url?.startsWith('/webServerlessSpy.js')) {
|
|
44
48
|
//get transpiled TS to JS files
|
|
45
|
-
rootFolder =
|
|
49
|
+
rootFolder = getCompiledJsPath();
|
|
46
50
|
}
|
|
47
51
|
else if (request.url?.startsWith('/bootstrap/')) {
|
|
48
52
|
filePath = filePath.substring('/bootstrap/'.length);
|
|
49
|
-
const bootstrapFolder = await
|
|
50
|
-
local: true,
|
|
51
|
-
});
|
|
53
|
+
const bootstrapFolder = await getNpmModuleInstalledPath('bootstrap');
|
|
52
54
|
rootFolder = bootstrapFolder;
|
|
53
55
|
}
|
|
54
56
|
else if (request.url?.startsWith('/bootstrap-icons/')) {
|
|
55
57
|
filePath = filePath.substring('/bootstrap-icons/'.length);
|
|
56
|
-
const bootstrapFolder = await
|
|
57
|
-
local: true,
|
|
58
|
-
});
|
|
58
|
+
const bootstrapFolder = await getNpmModuleInstalledPath('bootstrap-icons');
|
|
59
59
|
rootFolder = bootstrapFolder;
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
@@ -144,7 +144,31 @@ async function run() {
|
|
|
144
144
|
})
|
|
145
145
|
.listen(options.port);
|
|
146
146
|
console.log(`ServerlessSoy console runing at http://localhost:${options.port}`);
|
|
147
|
-
|
|
147
|
+
if (options.open) {
|
|
148
|
+
await opener(`http://localhost:${options.port}`);
|
|
149
|
+
}
|
|
148
150
|
}
|
|
149
151
|
run().catch(console.error);
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFbEUsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUU3QyxLQUFLLFVBQVUsR0FBRztJQUNoQixJQUFJLFNBQStCLENBQUM7SUFDcEMsSUFBSSxTQUFpRCxDQUFDO0lBRXRELElBQUksT0FBWSxDQUFDO0lBRWpCLE1BQU07U0FDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1NBQzVCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7U0FDckMsTUFBTSxDQUNMLHlCQUF5QixFQUN6QiwrRUFBK0UsQ0FDaEY7U0FDQSxNQUFNLENBQ0wsdUJBQXVCLEVBQ3ZCLHlFQUF5RSxDQUMxRTtTQUNBLE1BQU0sQ0FBQyxRQUFRLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDakQsTUFBTSxDQUNMLFlBQVksRUFDWix5RUFBeUUsRUFDekUsU0FBUyxFQUNULE1BQU0sQ0FDUDtTQUNBLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQztJ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QUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDO3lCQUMzQztxQkFDRjtpQkFDRjthQUNGO1lBQUMsT0FBTyxHQUFRLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhCLE9BQU8sQ0FBQyxHQUFHLENBQ1Qsb0RBQW9ELE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FDbkUsQ0FBQztJQUNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgKiBhcyBwcm9nYW0gZnJvbSAnY2Fwb3JhbCc7XG5pbXBvcnQgeyBnZXRJbnN0YWxsZWRQYXRoIH0gZnJvbSAnZ2V0LWluc3RhbGxlZC1wYXRoJztcbmltcG9ydCBvcGVuIGZyb20gJ29wZW4nO1xuaW1wb3J0IHsgZ2V0U2lnbmVkV2ViU29ja2V0VXJsIH0gZnJvbSAnLi4vY29tbW9uL2dldFdlYlNvY2tldFVybCc7XG5cbmNvbnN0IHJlYWRGaWxlQXN5bmMgPSBwcm9taXNpZnkoZnMucmVhZEZpbGUpO1xuXG5hc3luYyBmdW5jdGlvbiBydW4oKSB7XG4gIGxldCBzdGFja0xpc3Q6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBsZXQgY2RrT3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuICBsZXQgb3B0aW9uczogYW55O1xuXG4gIHByb2dhbVxuICAgIC5kZXNjcmlwdGlvbignU2VydmVybGVzc1NweScpXG4gICAgLm9wdGlvbignLS13cyA8d3M+JywgJ1dlYnNvY2tldCBsaW5rJylcbiAgICAub3B0aW9uKFxuICAgICAgJy0tY2Rrb3V0cHV0IDxjZGtvdXRwdXQ+JyxcbiAgICAgICdDREsgb3V0cHV0IGZpbGUgdGhhdCBjb250YWlucyBXZWJzb2NrZXQgbGluayBpbiBhIHByb3BlcnR5IFNlcnZlcmxlc3NTcHlXc1VybCdcbiAgICApXG4gICAgLm9wdGlvbihcbiAgICAgICctLWNka3N0YWNrIDxjZGtzdGFjaz4nLFxuICAgICAgJ0NESyBzdGFjayBpbiBjZGsgb3V0cHV0IGZpbGUuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGZpcnN0IG9uZSBpcyBwaWNrZWQuJ1xuICAgIClcbiAgICAub3B0aW9uKCctLW9wZW4nLCAnT3BlbiBicm93c2VyJywgdW5kZWZpbmVkLCB0cnVlKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1wb3J0IDxwPicsXG4gICAgICBgQ0RLIHN0YWNrIGluIGNkayBvdXRwdXQgZmlsZS4gSWYgbm90IHNwZWNpZmllZCB0aGUgZmlyc3Qgb25lIGlzIHBpY2tlZC5gLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgJzM0NTYnXG4gICAgKVxuICAgIC5hY3Rpb24oKF9hcmdzLCBvcHQsIF9sb2dnZXIpID0+IHtcbiAgICAgIG9wdGlvbnMgPSBvcHQ7XG4gICAgfSk7XG5cbiAgcHJvZ2FtLnBhcnNlKHByb2Nlc3MuYXJndik7XG5cbiAgaWYgKCFvcHRpb25zLndzICYmICFvcHRpb25zLmNka291dHB1dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLS13cyBvciAtLWNka3N0YWNrIHBhcmFtZXRlciBub3Qgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5jZGtvdXRwdXQpIHtcbiAgICBjb25zdCByYXdkYXRhID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsIG9wdGlvbnMuY2Rrb3V0cHV0KSk7XG4gICAgY2RrT3V0cHV0ID0gSlNPTi5wYXJzZShyYXdkYXRhLnRvU3RyaW5nKCkpO1xuICAgIHN0YWNrTGlzdCA9IE9iamVjdC5rZXlzKGNka091dHB1dCk7XG4gIH1cblxuICBodHRwXG4gICAgLmNyZWF0ZVNlcnZlcigocmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCdyZXF1ZXN0ICcsIHJlcXVlc3QudXJsKTtcbiAgICAgICAgICBsZXQgZmlsZVBhdGg6IHN0cmluZyA9IGAuJHtyZXF1ZXN0LnVybH1gO1xuICAgICAgICAgIC8vcmVtb3ZlIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICAgICAgICBmaWxlUGF0aCA9IGZpbGVQYXRoLnNwbGl0KCc/JylbMF07XG4gICAgICAgICAgbGV0IHJvb3RGb2xkZXIgPSBfX2Rpcm5hbWU7XG5cbiAgICAgICAgICBpZiAocmVxdWVzdC51cmw/LnN0YXJ0c1dpdGgoJy93ZWJTZXJ2ZXJsZXNzU3B5LmpzJykpIHtcbiAgICAgICAgICAgIC8vZ2V0IHRyYW5zcGlsZWQgVFMgdG8gSlMgZmlsZXNcbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBgLi4vbGliL2NsaWApO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVxdWVzdC51cmw/LnN0YXJ0c1dpdGgoJy9ib290c3RyYXAvJykpIHtcbiAgICAgICAgICAgIGZpbGVQYXRoID0gZmlsZVBhdGguc3Vic3RyaW5nKCcvYm9vdHN0cmFwLycubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGJvb3RzdHJhcEZvbGRlciA9IGF3YWl0IGdldEluc3RhbGxlZFBhdGgoJ2Jvb3RzdHJhcCcsIHtcbiAgICAgICAgICAgICAgbG9jYWw6IHRydWUsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcm9vdEZvbGRlciA9IGJvb3RzdHJhcEZvbGRlcjtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcXVlc3QudXJsPy5zdGFydHNXaXRoKCcvYm9vdHN0cmFwLWljb25zLycpKSB7XG4gICAgICAgICAgICBmaWxlUGF0aCA9IGZpbGVQYXRoLnN1YnN0cmluZygnL2Jvb3RzdHJhcC1pY29ucy8nLmxlbmd0aCk7XG4gICAgICAgICAgICBjb25zdCBib290c3RyYXBGb2xkZXIgPSBhd2FpdCBnZXRJbnN0YWxsZWRQYXRoKCdib290c3RyYXAtaWNvbnMnLCB7XG4gICAgICAgICAgICAgIGxvY2FsOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCA9PT0gJy4vJykge1xuICAgICAgICAgICAgICBmaWxlUGF0aCA9ICcuL2luZGV4Lmh0bWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbGVQYXRoID0gcGF0aC5qb2luKHJvb3RGb2xkZXIsIGZpbGVQYXRoKTtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKGAke3JlcXVlc3QudXJsfSAtLT4gJHtmaWxlUGF0aH1gKTtcblxuICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBtaW1lVHlwZXM6IGFueSA9IHtcbiAgICAgICAgICAgICcuaHRtbCc6ICd0ZXh0L2h0bWwnLFxuICAgICAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICAgICAgICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICcuanBnJzogJ2ltYWdlL2pwZycsXG4gICAgICAgICAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAgICAgJy5tcDQnOiAndmlkZW8vbXA0JyxcbiAgICAgICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAgICAgJy50dGYnOiAnYXBwbGljYXRpb24vZm9udC10dGYnLFxuICAgICAgICAgICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAgICAgJy53YXNtJzogJ2FwcGxpY2F0aW9uL3dhc20nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zdGFja0xpc3QnKSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkoc3RhY2tMaXN0KSwgJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8ubWF0Y2goJ14vd3NVcmwnKSkge1xuICAgICAgICAgICAgbGV0IHdzVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy53cykge1xuICAgICAgICAgICAgICB3c1VybCA9IG9wdGlvbnMud3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvcHRpb25zLmNka291dHB1dFxuICAgICAgICAgICAgICBjb25zdCB1cmxQYXRocyA9IHJlcXVlc3QudXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCBzdGFjayA9IHVybFBhdGhzWzJdO1xuXG4gICAgICAgICAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgICAgICAgICBzdGFjayA9IG9wdGlvbnMuY2Rrc3RhY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgICB3c1VybCA9IGNka091dHB1dFtzdGFja10uU2VydmVybGVzc1NweVdzVXJsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjZGtPdXRwdXQgJiYgY2RrT3V0cHV0W09iamVjdC5rZXlzKGNka091dHB1dClbMF1dKSB7XG4gICAgICAgICAgICAgICAgICB3c1VybCA9XG4gICAgICAgICAgICAgICAgICAgIGNka091dHB1dFtPYmplY3Qua2V5cyhjZGtPdXRwdXQpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghd3NVcmwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHdlYnNvY2tldCB1cmwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgV1MgVVJMOiAke3dzVXJsfWApO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVkV1NVcmwgPSBhd2FpdCBnZXRTaWduZWRXZWJTb2NrZXRVcmwod3NVcmwpO1xuICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoc2lnbmVkV1NVcmwsICd1dGYtOCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGVBc3luYyhmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICAgICAgYE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgJHtyZXF1ZXN0LnVybH1gLFxuICAgICAgICAgICAgICAgICAgJ3V0Zi04J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGBFcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg1MDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLmVuZChlcnIubWVzc2FnZSwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgfSlcbiAgICAubGlzdGVuKG9wdGlvbnMucG9ydCk7XG5cbiAgY29uc29sZS5sb2coXG4gICAgYFNlcnZlcmxlc3NTb3kgY29uc29sZSBydW5pbmcgYXQgaHR0cDovL2xvY2FsaG9zdDoke29wdGlvbnMucG9ydH1gXG4gICk7XG4gIGF3YWl0IG9wZW4oYGh0dHA6Ly9sb2NhbGhvc3Q6JHtvcHRpb25zLnBvcnR9YCk7XG59XG5cbnJ1bigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuIl19
|
|
152
|
+
function getNpmModuleInstalledPath(npm) {
|
|
153
|
+
let folder = path.join(__dirname, '../', 'node_modules', npm);
|
|
154
|
+
if (fs.existsSync(folder)) {
|
|
155
|
+
return folder;
|
|
156
|
+
}
|
|
157
|
+
let folderAsPackage = path.join(__dirname, '../../', 'node_modules', npm);
|
|
158
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
159
|
+
return folderAsPackage;
|
|
160
|
+
}
|
|
161
|
+
throw new Error(`Can not find package in folder ${folder} and ${folderAsPackage}`);
|
|
162
|
+
}
|
|
163
|
+
function getCompiledJsPath() {
|
|
164
|
+
let folder = path.join(__dirname, '../', 'lib/cli');
|
|
165
|
+
if (fs.existsSync(folder)) {
|
|
166
|
+
return folder;
|
|
167
|
+
}
|
|
168
|
+
let folderAsPackage = path.join(__dirname, '../../', 'lib/cli');
|
|
169
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
170
|
+
return folderAsPackage;
|
|
171
|
+
}
|
|
172
|
+
throw new Error(`Can not find compiled files in folder ${folder} and ${folderAsPackage}`);
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vY2xpL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRTdDLGtDQUFrQztBQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDbEIsSUFBSyxJQUFZLENBQUMsT0FBTyxFQUFFO0lBQ3pCLE1BQU0sR0FBSSxJQUFZLENBQUMsT0FBTyxDQUFDO0NBQ2hDO0FBRUQsS0FBSyxVQUFVLEdBQUc7SUFDaEIsSUFBSSxTQUErQixDQUFDO0lBQ3BDLElBQUksU0FBaUQsQ0FBQztJQUV0RCxJQUFJLE9BQVksQ0FBQztJQUVqQixNQUFNO1NBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztTQUM1QixNQUFNLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO1NBQ3JDLE1BQU0sQ0FDTCx5QkFBeUIsRUFDekIsK0VBQStFLENBQ2hGO1NBQ0EsTUFBTSxDQUNMLHVCQUF1QixFQUN2Qix5RUFBeUUsQ0FDMUU7U0FDQSxNQUFNLENBQUMsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUMxRCxNQUFNLENBQ0wsWUFBWSxFQUNaLHlFQUF5RSxFQUN6RSxNQUFNLENBQUMsR0FBRyxFQUNWLE1BQU0sQ0FDUDtTQUNBLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUVMLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtRQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7S0FDL0Q7SUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7UUFDckIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN6RSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMzQyxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNwQztJQUVELElBQUk7U0FDRCxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDbEMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2YsSUFBSTtnQkFDRix1Q0FBdUM7Z0JBQ3ZDLElBQUksUUFBUSxHQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN6Qyx5QkFBeUI7Z0JBQ3pCLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBRTNCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsc0JBQXNCLENBQUMsRUFBRTtvQkFDbkQsK0JBQStCO29CQUMvQixVQUFVLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztpQkFDbEM7cUJBQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDakQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwRCxNQUFNLGVBQWUsR0FBRyxNQUFNLHlCQUF5QixDQUNyRCxXQUFXLENBQ1osQ0FBQztvQkFFRixVQUFVLEdBQUcsZUFBZSxDQUFDO2lCQUM5QjtxQkFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7b0JBQ3ZELFFBQVEsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxRCxNQUFNLGVBQWUsR0FBRyxNQUFNLHlCQUF5QixDQUNyRCxpQkFBaUIsQ0FDbEIsQ0FBQztvQkFFRixVQUFVLEdBQUcsZUFBZSxDQUFDO2lCQUM5QjtxQkFBTTtvQkFDTCxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7d0JBQ3JCLFFBQVEsR0FBRyxjQUFjLENBQUM7cUJBQzNCO2lCQUNGO2dCQUVELFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDM0MsZ0RBQWdEO2dCQUVoRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUM3RCxNQUFNLFNBQVMsR0FBUTtvQkFDckIsT0FBTyxFQUFFLFdBQVc7b0JBQ3BCLEtBQUssRUFBRSxpQkFBaUI7b0JBQ3hCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixNQUFNLEVBQUUsV0FBVztvQkFDbkIsTUFBTSxFQUFFLFdBQVc7b0JBQ25CLE1BQU0sRUFBRSxXQUFXO29CQUNuQixNQUFNLEVBQUUsZUFBZTtvQkFDdkIsTUFBTSxFQUFFLFdBQVc7b0JBQ25CLE1BQU0sRUFBRSxXQUFXO29CQUNuQixPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxNQUFNLEVBQUUsc0JBQXNCO29CQUM5QixNQUFNLEVBQUUsK0JBQStCO29CQUN2QyxNQUFNLEVBQUUsc0JBQXNCO29CQUM5QixPQUFPLEVBQUUsa0JBQWtCO2lCQUM1QixDQUFDO2dCQUVGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSwwQkFBMEIsQ0FBQztnQkFFckUsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRTtvQkFDaEMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO29CQUNoRSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ2xEO3FCQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3hDLElBQUksS0FBeUIsQ0FBQztvQkFDOUIsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFO3dCQUNkLEtBQUssR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO3FCQUNwQjt5QkFBTTt3QkFDTCxvQkFBb0I7d0JBQ3BCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUN4QyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRXhCLElBQUksQ0FBQyxLQUFLLEVBQUU7NEJBQ1YsS0FBSyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7eUJBQzFCO3dCQUVELElBQUksS0FBSyxFQUFFOzRCQUNULEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUM7eUJBQzdDOzZCQUFNOzRCQUNMLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0NBQ3JELEtBQUs7b0NBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQzs2QkFDM0Q7eUJBQ0Y7cUJBQ0Y7b0JBRUQsSUFBSSxDQUFDLEtBQUssRUFBRTt3QkFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7cUJBQzFDO29CQUVELGtDQUFrQztvQkFDbEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdkQsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDekQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ3BDO3FCQUFNO29CQUNMLElBQUk7d0JBQ0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBRTlDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7d0JBQ3pELFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUNoQztvQkFBQyxPQUFPLEtBQVUsRUFBRTt3QkFDbkIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTs0QkFDM0IsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzs0QkFDekQsUUFBUSxDQUFDLEdBQUcsQ0FDViw2QkFBNkIsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUMxQyxPQUFPLENBQ1IsQ0FBQzt5QkFDSDs2QkFBTTs0QkFDTCxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUN4QixRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLENBQUM7eUJBQzNDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFBQyxPQUFPLEdBQVEsRUFBRTtnQkFDakIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDekQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3BDO1FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUMsQ0FBQztTQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxvREFBb0QsT0FBTyxDQUFDLElBQUksRUFBRSxDQUNuRSxDQUFDO0lBQ0YsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2hCLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNsRDtBQUNILENBQUM7QUFFRCxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRTNCLFNBQVMseUJBQXlCLENBQUMsR0FBVztJQUM1QyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUxRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUU7UUFDbEMsT0FBTyxlQUFlLENBQUM7S0FDeEI7SUFFRCxNQUFNLElBQUksS0FBSyxDQUNiLGtDQUFrQyxNQUFNLFFBQVEsZUFBZSxFQUFFLENBQ2xFLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUI7SUFDeEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN6QixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRWhFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNsQyxPQUFPLGVBQWUsQ0FBQztLQUN4QjtJQUVELE1BQU0sSUFBSSxLQUFLLENBQ2IseUNBQXlDLE1BQU0sUUFBUSxlQUFlLEVBQUUsQ0FDekUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0ICogYXMgcHJvZ2FtIGZyb20gJ2NhcG9yYWwnO1xuaW1wb3J0ICogYXMgb3BlbiBmcm9tICdvcGVuJztcbmltcG9ydCB7IGdldFNpZ25lZFdlYlNvY2tldFVybCB9IGZyb20gJy4uL2NvbW1vbi9nZXRXZWJTb2NrZXRVcmwnO1xuXG5jb25zdCByZWFkRmlsZUFzeW5jID0gcHJvbWlzaWZ5KGZzLnJlYWRGaWxlKTtcblxuLy9yZXNvbHZlIGlzc3VlIHdpdGggbW9kdWxlIGltcG9ydFxubGV0IG9wZW5lciA9IG9wZW47XG5pZiAoKG9wZW4gYXMgYW55KS5kZWZhdWx0KSB7XG4gIG9wZW5lciA9IChvcGVuIGFzIGFueSkuZGVmYXVsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuKCkge1xuICBsZXQgc3RhY2tMaXN0OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNka091dHB1dDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5cbiAgbGV0IG9wdGlvbnM6IGFueTtcblxuICBwcm9nYW1cbiAgICAuZGVzY3JpcHRpb24oJ1NlcnZlcmxlc3NTcHknKVxuICAgIC5vcHRpb24oJy0td3MgPHdzPicsICdXZWJzb2NrZXQgbGluaycpXG4gICAgLm9wdGlvbihcbiAgICAgICctLWNka291dHB1dCA8Y2Rrb3V0cHV0PicsXG4gICAgICAnQ0RLIG91dHB1dCBmaWxlIHRoYXQgY29udGFpbnMgV2Vic29ja2V0IGxpbmsgaW4gYSBwcm9wZXJ0eSBTZXJ2ZXJsZXNzU3B5V3NVcmwnXG4gICAgKVxuICAgIC5vcHRpb24oXG4gICAgICAnLS1jZGtzdGFjayA8Y2Rrc3RhY2s+JyxcbiAgICAgICdDREsgc3RhY2sgaW4gY2RrIG91dHB1dCBmaWxlLiBJZiBub3Qgc3BlY2lmaWVkIHRoZSBmaXJzdCBvbmUgaXMgcGlja2VkLidcbiAgICApXG4gICAgLm9wdGlvbignLS1vcGVuIDxvcGVuPicsICdPcGVuIGJyb3dzZXInLCBwcm9nYW0uQk9PTCwgdHJ1ZSlcbiAgICAub3B0aW9uKFxuICAgICAgJy0tcG9ydCA8cD4nLFxuICAgICAgYENESyBzdGFjayBpbiBjZGsgb3V0cHV0IGZpbGUuIElmIG5vdCBzcGVjaWZpZWQgdGhlIGZpcnN0IG9uZSBpcyBwaWNrZWQuYCxcbiAgICAgIHByb2dhbS5JTlQsXG4gICAgICAnMzQ1NidcbiAgICApXG4gICAgLmFjdGlvbigoX2FyZ3MsIG9wdCwgX2xvZ2dlcikgPT4ge1xuICAgICAgb3B0aW9ucyA9IG9wdDtcbiAgICB9KTtcblxuICBwcm9nYW0ucGFyc2UocHJvY2Vzcy5hcmd2KTtcblxuICBpZiAoIW9wdGlvbnMud3MgJiYgIW9wdGlvbnMuY2Rrb3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCctLXdzIG9yIC0tY2Rrc3RhY2sgcGFyYW1ldGVyIG5vdCBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmNka291dHB1dCkge1xuICAgIGNvbnN0IHJhd2RhdGEgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgb3B0aW9ucy5jZGtvdXRwdXQpKTtcbiAgICBjZGtPdXRwdXQgPSBKU09OLnBhcnNlKHJhd2RhdGEudG9TdHJpbmcoKSk7XG4gICAgc3RhY2tMaXN0ID0gT2JqZWN0LmtleXMoY2RrT3V0cHV0KTtcbiAgfVxuXG4gIGh0dHBcbiAgICAuY3JlYXRlU2VydmVyKChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgdm9pZCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vY29uc29sZS5sb2coJ3JlcXVlc3QgJywgcmVxdWVzdC51cmwpO1xuICAgICAgICAgIGxldCBmaWxlUGF0aDogc3RyaW5nID0gYC4ke3JlcXVlc3QudXJsfWA7XG4gICAgICAgICAgLy9yZW1vdmUgcXVlcnkgcGFyYW1ldGVyc1xuICAgICAgICAgIGZpbGVQYXRoID0gZmlsZVBhdGguc3BsaXQoJz8nKVswXTtcbiAgICAgICAgICBsZXQgcm9vdEZvbGRlciA9IF9fZGlybmFtZTtcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL3dlYlNlcnZlcmxlc3NTcHkuanMnKSkge1xuICAgICAgICAgICAgLy9nZXQgdHJhbnNwaWxlZCBUUyB0byBKUyBmaWxlc1xuICAgICAgICAgICAgcm9vdEZvbGRlciA9IGdldENvbXBpbGVkSnNQYXRoKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL2Jvb3RzdHJhcC8nKSkge1xuICAgICAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoJy9ib290c3RyYXAvJy5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgYm9vdHN0cmFwRm9sZGVyID0gYXdhaXQgZ2V0TnBtTW9kdWxlSW5zdGFsbGVkUGF0aChcbiAgICAgICAgICAgICAgJ2Jvb3RzdHJhcCdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8uc3RhcnRzV2l0aCgnL2Jvb3RzdHJhcC1pY29ucy8nKSkge1xuICAgICAgICAgICAgZmlsZVBhdGggPSBmaWxlUGF0aC5zdWJzdHJpbmcoJy9ib290c3RyYXAtaWNvbnMvJy5sZW5ndGgpO1xuICAgICAgICAgICAgY29uc3QgYm9vdHN0cmFwRm9sZGVyID0gYXdhaXQgZ2V0TnBtTW9kdWxlSW5zdGFsbGVkUGF0aChcbiAgICAgICAgICAgICAgJ2Jvb3RzdHJhcC1pY29ucydcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHJvb3RGb2xkZXIgPSBib290c3RyYXBGb2xkZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCA9PT0gJy4vJykge1xuICAgICAgICAgICAgICBmaWxlUGF0aCA9ICcuL2luZGV4Lmh0bWwnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbGVQYXRoID0gcGF0aC5qb2luKHJvb3RGb2xkZXIsIGZpbGVQYXRoKTtcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKGAke3JlcXVlc3QudXJsfSAtLT4gJHtmaWxlUGF0aH1gKTtcblxuICAgICAgICAgIGNvbnN0IGV4dG5hbWUgPSBTdHJpbmcocGF0aC5leHRuYW1lKGZpbGVQYXRoKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICBjb25zdCBtaW1lVHlwZXM6IGFueSA9IHtcbiAgICAgICAgICAgICcuaHRtbCc6ICd0ZXh0L2h0bWwnLFxuICAgICAgICAgICAgJy5qcyc6ICd0ZXh0L2phdmFzY3JpcHQnLFxuICAgICAgICAgICAgJy5jc3MnOiAndGV4dC9jc3MnLFxuICAgICAgICAgICAgJy5qc29uJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgJy5wbmcnOiAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICcuanBnJzogJ2ltYWdlL2pwZycsXG4gICAgICAgICAgICAnLmdpZic6ICdpbWFnZS9naWYnLFxuICAgICAgICAgICAgJy5zdmcnOiAnaW1hZ2Uvc3ZnK3htbCcsXG4gICAgICAgICAgICAnLndhdic6ICdhdWRpby93YXYnLFxuICAgICAgICAgICAgJy5tcDQnOiAndmlkZW8vbXA0JyxcbiAgICAgICAgICAgICcud29mZic6ICdhcHBsaWNhdGlvbi9mb250LXdvZmYnLFxuICAgICAgICAgICAgJy50dGYnOiAnYXBwbGljYXRpb24vZm9udC10dGYnLFxuICAgICAgICAgICAgJy5lb3QnOiAnYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QnLFxuICAgICAgICAgICAgJy5vdGYnOiAnYXBwbGljYXRpb24vZm9udC1vdGYnLFxuICAgICAgICAgICAgJy53YXNtJzogJ2FwcGxpY2F0aW9uL3dhc20nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IG1pbWVUeXBlc1tleHRuYW1lXSB8fCAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJztcblxuICAgICAgICAgIGlmIChyZXF1ZXN0LnVybCA9PT0gJy9zdGFja0xpc3QnKSB7XG4gICAgICAgICAgICByZXNwb25zZS53cml0ZUhlYWQoMjAwLCB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoSlNPTi5zdHJpbmdpZnkoc3RhY2tMaXN0KSwgJ3V0Zi04Jyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXF1ZXN0LnVybD8ubWF0Y2goJ14vd3NVcmwnKSkge1xuICAgICAgICAgICAgbGV0IHdzVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy53cykge1xuICAgICAgICAgICAgICB3c1VybCA9IG9wdGlvbnMud3M7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBvcHRpb25zLmNka291dHB1dFxuICAgICAgICAgICAgICBjb25zdCB1cmxQYXRocyA9IHJlcXVlc3QudXJsLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgIGxldCBzdGFjayA9IHVybFBhdGhzWzJdO1xuXG4gICAgICAgICAgICAgIGlmICghc3RhY2spIHtcbiAgICAgICAgICAgICAgICBzdGFjayA9IG9wdGlvbnMuY2Rrc3RhY2s7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAoc3RhY2spIHtcbiAgICAgICAgICAgICAgICB3c1VybCA9IGNka091dHB1dFtzdGFja10uU2VydmVybGVzc1NweVdzVXJsO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjZGtPdXRwdXQgJiYgY2RrT3V0cHV0W09iamVjdC5rZXlzKGNka091dHB1dClbMF1dKSB7XG4gICAgICAgICAgICAgICAgICB3c1VybCA9XG4gICAgICAgICAgICAgICAgICAgIGNka091dHB1dFtPYmplY3Qua2V5cyhjZGtPdXRwdXQpWzBdXS5TZXJ2ZXJsZXNzU3B5V3NVcmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghd3NVcmwpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHdlYnNvY2tldCB1cmwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhgV1MgVVJMOiAke3dzVXJsfWApO1xuICAgICAgICAgICAgY29uc3Qgc2lnbmVkV1NVcmwgPSBhd2FpdCBnZXRTaWduZWRXZWJTb2NrZXRVcmwod3NVcmwpO1xuICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICByZXNwb25zZS5lbmQoc2lnbmVkV1NVcmwsICd1dGYtOCcpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGVBc3luYyhmaWxlUGF0aCk7XG5cbiAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogY29udGVudFR5cGUgfSk7XG4gICAgICAgICAgICAgIHJlc3BvbnNlLmVuZChjb250ZW50LCAndXRmLTgnKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgICAgICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDQwNCwgeyAnQ29udGVudC1UeXBlJzogJ3RleHQvaHRtbCcgfSk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKFxuICAgICAgICAgICAgICAgICAgYE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkgJHtyZXF1ZXN0LnVybH1gLFxuICAgICAgICAgICAgICAgICAgJ3V0Zi04J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVIZWFkKDUwMCk7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZW5kKGBFcnJvcjogJHtlcnJvci5jb2RlfSAuLlxcbmApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkge1xuICAgICAgICAgIHJlc3BvbnNlLndyaXRlSGVhZCg1MDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnIH0pO1xuICAgICAgICAgIHJlc3BvbnNlLmVuZChlcnIubWVzc2FnZSwgJ3V0Zi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG4gICAgfSlcbiAgICAubGlzdGVuKG9wdGlvbnMucG9ydCk7XG5cbiAgY29uc29sZS5sb2coXG4gICAgYFNlcnZlcmxlc3NTb3kgY29uc29sZSBydW5pbmcgYXQgaHR0cDovL2xvY2FsaG9zdDoke29wdGlvbnMucG9ydH1gXG4gICk7XG4gIGlmIChvcHRpb25zLm9wZW4pIHtcbiAgICBhd2FpdCBvcGVuZXIoYGh0dHA6Ly9sb2NhbGhvc3Q6JHtvcHRpb25zLnBvcnR9YCk7XG4gIH1cbn1cblxucnVuKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XG5cbmZ1bmN0aW9uIGdldE5wbU1vZHVsZUluc3RhbGxlZFBhdGgobnBtOiBzdHJpbmcpIHtcbiAgbGV0IGZvbGRlciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8nLCAnbm9kZV9tb2R1bGVzJywgbnBtKTtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoZm9sZGVyKSkge1xuICAgIHJldHVybiBmb2xkZXI7XG4gIH1cblxuICBsZXQgZm9sZGVyQXNQYWNrYWdlID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLycsICdub2RlX21vZHVsZXMnLCBucG0pO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlckFzUGFja2FnZSkpIHtcbiAgICByZXR1cm4gZm9sZGVyQXNQYWNrYWdlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBDYW4gbm90IGZpbmQgcGFja2FnZSBpbiBmb2xkZXIgJHtmb2xkZXJ9IGFuZCAke2ZvbGRlckFzUGFja2FnZX1gXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBpbGVkSnNQYXRoKCkge1xuICBsZXQgZm9sZGVyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLycsICdsaWIvY2xpJyk7XG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlcikpIHtcbiAgICByZXR1cm4gZm9sZGVyO1xuICB9XG5cbiAgbGV0IGZvbGRlckFzUGFja2FnZSA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8nLCAnbGliL2NsaScpO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGZvbGRlckFzUGFja2FnZSkpIHtcbiAgICByZXR1cm4gZm9sZGVyQXNQYWNrYWdlO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgIGBDYW4gbm90IGZpbmQgY29tcGlsZWQgZmlsZXMgaW4gZm9sZGVyICR7Zm9sZGVyfSBhbmQgJHtmb2xkZXJBc1BhY2thZ2V9YFxuICApO1xufVxuIl19
|
package/lib/cli/cli.ts
CHANGED
|
@@ -4,12 +4,17 @@ import * as http from 'http';
|
|
|
4
4
|
import * as path from 'path';
|
|
5
5
|
import { promisify } from 'util';
|
|
6
6
|
import * as progam from 'caporal';
|
|
7
|
-
import
|
|
8
|
-
import open from 'open';
|
|
7
|
+
import * as open from 'open';
|
|
9
8
|
import { getSignedWebSocketUrl } from '../common/getWebSocketUrl';
|
|
10
9
|
|
|
11
10
|
const readFileAsync = promisify(fs.readFile);
|
|
12
11
|
|
|
12
|
+
//resolve issue with module import
|
|
13
|
+
let opener = open;
|
|
14
|
+
if ((open as any).default) {
|
|
15
|
+
opener = (open as any).default;
|
|
16
|
+
}
|
|
17
|
+
|
|
13
18
|
async function run() {
|
|
14
19
|
let stackList: string[] | undefined;
|
|
15
20
|
let cdkOutput: Record<string, Record<string, string>>;
|
|
@@ -27,11 +32,11 @@ async function run() {
|
|
|
27
32
|
'--cdkstack <cdkstack>',
|
|
28
33
|
'CDK stack in cdk output file. If not specified the first one is picked.'
|
|
29
34
|
)
|
|
30
|
-
.option('--open', 'Open browser',
|
|
35
|
+
.option('--open <open>', 'Open browser', progam.BOOL, true)
|
|
31
36
|
.option(
|
|
32
37
|
'--port <p>',
|
|
33
38
|
`CDK stack in cdk output file. If not specified the first one is picked.`,
|
|
34
|
-
|
|
39
|
+
progam.INT,
|
|
35
40
|
'3456'
|
|
36
41
|
)
|
|
37
42
|
.action((_args, opt, _logger) => {
|
|
@@ -62,19 +67,19 @@ async function run() {
|
|
|
62
67
|
|
|
63
68
|
if (request.url?.startsWith('/webServerlessSpy.js')) {
|
|
64
69
|
//get transpiled TS to JS files
|
|
65
|
-
rootFolder =
|
|
70
|
+
rootFolder = getCompiledJsPath();
|
|
66
71
|
} else if (request.url?.startsWith('/bootstrap/')) {
|
|
67
72
|
filePath = filePath.substring('/bootstrap/'.length);
|
|
68
|
-
const bootstrapFolder = await
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
const bootstrapFolder = await getNpmModuleInstalledPath(
|
|
74
|
+
'bootstrap'
|
|
75
|
+
);
|
|
71
76
|
|
|
72
77
|
rootFolder = bootstrapFolder;
|
|
73
78
|
} else if (request.url?.startsWith('/bootstrap-icons/')) {
|
|
74
79
|
filePath = filePath.substring('/bootstrap-icons/'.length);
|
|
75
|
-
const bootstrapFolder = await
|
|
76
|
-
|
|
77
|
-
|
|
80
|
+
const bootstrapFolder = await getNpmModuleInstalledPath(
|
|
81
|
+
'bootstrap-icons'
|
|
82
|
+
);
|
|
78
83
|
|
|
79
84
|
rootFolder = bootstrapFolder;
|
|
80
85
|
} else {
|
|
@@ -171,7 +176,43 @@ async function run() {
|
|
|
171
176
|
console.log(
|
|
172
177
|
`ServerlessSoy console runing at http://localhost:${options.port}`
|
|
173
178
|
);
|
|
174
|
-
|
|
179
|
+
if (options.open) {
|
|
180
|
+
await opener(`http://localhost:${options.port}`);
|
|
181
|
+
}
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
run().catch(console.error);
|
|
185
|
+
|
|
186
|
+
function getNpmModuleInstalledPath(npm: string) {
|
|
187
|
+
let folder = path.join(__dirname, '../', 'node_modules', npm);
|
|
188
|
+
if (fs.existsSync(folder)) {
|
|
189
|
+
return folder;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
let folderAsPackage = path.join(__dirname, '../../', 'node_modules', npm);
|
|
193
|
+
|
|
194
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
195
|
+
return folderAsPackage;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
throw new Error(
|
|
199
|
+
`Can not find package in folder ${folder} and ${folderAsPackage}`
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function getCompiledJsPath() {
|
|
204
|
+
let folder = path.join(__dirname, '../', 'lib/cli');
|
|
205
|
+
if (fs.existsSync(folder)) {
|
|
206
|
+
return folder;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
let folderAsPackage = path.join(__dirname, '../../', 'lib/cli');
|
|
210
|
+
|
|
211
|
+
if (fs.existsSync(folderAsPackage)) {
|
|
212
|
+
return folderAsPackage;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
throw new Error(
|
|
216
|
+
`Can not find compiled files in folder ${folder} and ${folderAsPackage}`
|
|
217
|
+
);
|
|
218
|
+
}
|
package/lib/cli/package.json
CHANGED
|
@@ -13,11 +13,8 @@
|
|
|
13
13
|
"bootstrap": "^5.2.1",
|
|
14
14
|
"bootstrap-icons": "^1.9.1",
|
|
15
15
|
"caporal": "^1.4.0",
|
|
16
|
-
"get-installed-path": "^4.0.8",
|
|
17
16
|
"json-format-highlight": "^1.0.4",
|
|
18
17
|
"open": "^8.4.0"
|
|
19
18
|
},
|
|
20
|
-
"devDependencies": {
|
|
21
|
-
"@types/get-installed-path": "^4.0.1"
|
|
22
|
-
}
|
|
19
|
+
"devDependencies": {}
|
|
23
20
|
}
|