@beecode/msh-cli 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/bin/msh.js +1 -1
  3. package/dist/app/cli-app.js +5 -5
  4. package/dist/app/http-server-app.js +2 -2
  5. package/dist/app/init/parse-and-route-args.js +20 -0
  6. package/dist/app/tui-app.js +2 -2
  7. package/dist/controller/cli-menu/main-menu.js +5 -5
  8. package/dist/controller/yargs-router/cli-router.js +77 -0
  9. package/dist/controller/yargs-router/git-router.js +82 -0
  10. package/dist/controller/yargs-router/npm-router.js +39 -0
  11. package/dist/dal/shell-dal.js +28 -2
  12. package/dist/index-cli.js +9 -0
  13. package/dist/index-init.js +12 -0
  14. package/dist/index-server.js +9 -0
  15. package/dist/index-terminal-ui.js +9 -0
  16. package/dist/model/command/init-config.js +9 -2
  17. package/dist/model/command/interfaces.js +3 -0
  18. package/dist/model/command/project-command/git-clone-project-command.js +22 -8
  19. package/dist/model/command/project-command/git-simple-project-command.js +15 -5
  20. package/dist/model/command/project-command/git-tag-project-command.js +27 -0
  21. package/dist/model/command/project-command/npm-global-project-command.js +112 -0
  22. package/dist/model/command/project-command/npm-install-project-command.js +15 -5
  23. package/dist/model/command/project-command/project-command.js +24 -0
  24. package/dist/service/clear-service.js +16 -14
  25. package/dist/service/file-service.js +11 -0
  26. package/dist/service/init-config-service.js +2 -2
  27. package/dist/service/shell-service.js +15 -8
  28. package/dist/service/terminal-wrapper.js +22 -0
  29. package/dist/util/base-menu.js +11 -8
  30. package/dist/util/config.js +13 -5
  31. package/dist/util/constant.js +5 -5
  32. package/dist/util/logger.js +10 -52
  33. package/dist/util/object-util.js +14 -0
  34. package/dist/util/sub-menu.js +2 -3
  35. package/package-lock.json +4801 -5806
  36. package/package.json +68 -58
  37. package/dist/app/index.js +0 -28
  38. package/dist/app/init/exec-args-as-command.js +0 -22
  39. package/dist/index.js +0 -14
  40. package/dist/model/command/index.js +0 -3
  41. package/dist/model/command/print-help.js +0 -11
  42. package/dist/model/command/print-version.js +0 -11
  43. package/dist/model/command/project-command/index.js +0 -23
  44. package/dist/service/args-service.js +0 -54
  45. package/dist/service/cli-service.js +0 -11
  46. package/dist/service/git-service.js +0 -28
  47. package/dist/service/help-service.js +0 -38
  48. package/dist/service/npm-service.js +0 -92
  49. package/dist/use-case/cli-init.js +0 -54
package/package.json CHANGED
@@ -20,14 +20,16 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@beecode/msh-node-app": "0.0.4",
24
- "@beecode/msh-node-env": "0.2.1",
23
+ "@beecode/msh-node-app": "1.0.0",
24
+ "@beecode/msh-node-env": "1.1.0",
25
+ "@beecode/msh-node-log": "2.2.0",
26
+ "@beecode/msh-node-util": "2.2.1",
25
27
  "async-shelljs": "0.1.4",
26
- "chalk": "4.1.0",
27
- "compare-versions": "3.6.0",
28
- "dotenv": "8.2.0",
28
+ "chalk": "4.1.2",
29
+ "compare-versions": "4.1.1",
30
+ "dotenv": "10.0.0",
29
31
  "fast-json-stable-stringify": "2.1.0",
30
- "inquirer": "8.0.0",
32
+ "inquirer": "8.2.0",
31
33
  "lodash": "4.17.21",
32
34
  "minimist": "1.2.5",
33
35
  "minimist-options": "4.1.0",
@@ -35,60 +37,62 @@
35
37
  "mz": "2.7.0",
36
38
  "request": "2.88.2",
37
39
  "request-promise-native": "1.0.9",
38
- "source-map-support": "0.5.19"
40
+ "source-map-support": "0.5.21",
41
+ "yargs": "17.3.0"
39
42
  },
40
43
  "description": "MicroService Shell helper",
41
44
  "devDependencies": {
42
- "@commitlint/cli": "12.0.0",
43
- "@commitlint/config-conventional": "12.0.0",
44
- "@commitlint/prompt": "12.0.0",
45
- "@istanbuljs/nyc-config-typescript": "1.0.1",
46
- "@semantic-release/changelog": "5.0.1",
47
- "@semantic-release/commit-analyzer": "8.0.1",
48
- "@semantic-release/exec": "5.0.0",
49
- "@semantic-release/git": "9.0.0",
50
- "@semantic-release/github": "7.2.0",
51
- "@semantic-release/release-notes-generator": "9.0.1",
52
- "@types/chai": "4.2.15",
45
+ "@commitlint/cli": "15.0.0",
46
+ "@commitlint/config-conventional": "15.0.0",
47
+ "@commitlint/prompt": "15.0.0",
48
+ "@istanbuljs/nyc-config-typescript": "1.0.2",
49
+ "@semantic-release/changelog": "6.0.1",
50
+ "@semantic-release/commit-analyzer": "9.0.2",
51
+ "@semantic-release/exec": "6.0.2",
52
+ "@semantic-release/git": "10.0.1",
53
+ "@semantic-release/github": "8.0.2",
54
+ "@semantic-release/release-notes-generator": "10.0.3",
55
+ "@types/chai": "4.2.22",
53
56
  "@types/chalk": "2.2.0",
54
57
  "@types/compare-versions": "3.3.0",
55
58
  "@types/dotenv": "8.2.0",
56
59
  "@types/fast-json-stable-stringify": "2.0.0",
57
- "@types/inquirer": "7.3.1",
58
- "@types/lodash": "4.14.168",
59
- "@types/minimist": "1.2.1",
60
+ "@types/inquirer": "8.1.3",
61
+ "@types/lodash": "4.14.177",
62
+ "@types/minimist": "1.2.2",
60
63
  "@types/minimist-options": "3.0.0",
61
- "@types/mocha": "8.2.1",
62
- "@types/module-alias": "2.0.0",
63
- "@types/mz": "2.7.3",
64
- "@types/node": "14.14.31",
65
- "@types/request": "2.48.5",
66
- "@types/shelljs": "0.8.8",
67
- "@types/sinon": "9.0.10",
68
- "@types/source-map-support": "0.5.3",
69
- "@typescript-eslint/eslint-plugin": "4.15.2",
70
- "@typescript-eslint/parser": "4.15.2",
71
- "chai": "4.3.0",
72
- "codecov": "3.8.1",
73
- "commitizen": "4.2.3",
74
- "eslint": "7.20.0",
75
- "eslint-config-prettier": "8.1.0",
76
- "eslint-plugin-import": "2.22.1",
77
- "husky": "5.1.1",
64
+ "@types/mocha": "9.0.0",
65
+ "@types/module-alias": "2.0.1",
66
+ "@types/mz": "2.7.4",
67
+ "@types/node": "16.11.11",
68
+ "@types/request": "2.48.7",
69
+ "@types/shelljs": "0.8.9",
70
+ "@types/sinon": "10.0.6",
71
+ "@types/source-map-support": "0.5.4",
72
+ "@types/yargs": "17.0.7",
73
+ "@typescript-eslint/eslint-plugin": "5.5.0",
74
+ "@typescript-eslint/parser": "5.5.0",
75
+ "chai": "4.3.4",
76
+ "codecov": "3.8.2",
77
+ "commitizen": "4.2.4",
78
+ "eslint": "8.4.0",
79
+ "eslint-config-prettier": "8.3.0",
80
+ "eslint-plugin-import": "2.25.3",
81
+ "husky": "7.0.4",
78
82
  "markdown-toc": "1.2.0",
79
- "mocha": "8.3.0",
80
- "npm-force-resolutions": "0.0.6",
83
+ "mocha": "9.1.3",
81
84
  "nyc": "15.1.0",
82
85
  "pinst": "2.1.6",
83
- "prettier": "2.2.1",
84
- "replace-json-property": "1.6.3",
86
+ "prettier": "2.5.1",
87
+ "replace-json-property": "1.8.0",
85
88
  "rimraf": "3.0.2",
86
- "semantic-release": "17.4.0",
87
- "sinon": "9.2.4",
88
- "ts-node": "9.1.1",
89
- "tsc-watch-2": "0.0.2",
90
- "tsconfig-lint": "0.10.0",
91
- "typescript": "4.2.2"
89
+ "semantic-release": "18.0.1",
90
+ "sinon": "12.0.1",
91
+ "ts-cleaner": "1.0.5",
92
+ "ts-node": "10.4.0",
93
+ "tsc-watch": "4.5.0",
94
+ "tsconfig-lint": "0.12.0",
95
+ "typescript": "4.5.2"
92
96
  },
93
97
  "files": [
94
98
  "dist",
@@ -110,14 +114,16 @@
110
114
  "url": "https://github.com/beecode-rs/msh-cli.git"
111
115
  },
112
116
  "resolutions": {
113
- "ini": "^1.3.6",
114
- "lodash": "^4.17.19",
115
- "minimist": "^1.2.3"
117
+ "ansi-regex": "^5.0.1",
118
+ "diff": "^3.5.0",
119
+ "json-schema": "^0.4.0",
120
+ "minimist": "^0.2.1",
121
+ "y18n": "^5.0.8"
116
122
  },
117
123
  "scripts": {
118
- "audit": "#npm audit --json | npx npm-audit-helper",
119
- "build": "npm run clean && tsc -p ./tsconfig-build.json",
120
- "build:watch": "npm run clean && tsc-watch -p tsconfig-build.json --preserveWatchOutput",
124
+ "audit:fix": "npx --yes npm-force-resolutions",
125
+ "build": "npm run clean && npm run tsc",
126
+ "build:watch": "npm run tsc:watch -- --preserveWatchOutput --onSuccess \"npm run tsc:cleaner\"",
121
127
  "bump-version": "rjp package.json version",
122
128
  "clean": "rimraf ./dist/*",
123
129
  "commit": "git-cz",
@@ -131,7 +137,6 @@
131
137
  "lint:fix": "npm run eslint:fix && npm run prettier:fix",
132
138
  "_postinstall": "husky install",
133
139
  "postpublish": "pinst --enable",
134
- "preinstall": "#npx npm-force-resolutions@0.0.6",
135
140
  "prepublishOnly": "pinst --disable",
136
141
  "prettier": "prettier --check \"./src/**/*.{ts,json}\"",
137
142
  "prettier:fix": "prettier --write \"./src/**/*.{ts,json}\"",
@@ -140,8 +145,13 @@
140
145
  "start": "node ./dist/index.js",
141
146
  "start:ts": "ts-node ./src/index.ts",
142
147
  "test": "npm run test:unit -- --forbid-only && npm run test:int -- --forbid-only",
143
- "test:int": "mocha ./src/test/{**/,/}*.ts",
144
- "test:unit": "mocha ./src/{**/,/}*.test.ts"
148
+ "test:int": "#mocha ./src/test/{**/,/}*.ts",
149
+ "test:unit": "mocha ./src/{**/,/}*.test.ts",
150
+ "tsc": "tsc -p ./tsconfig-build.json",
151
+ "tsc:check": "npm run tsc -- --noEmit",
152
+ "tsc:cleaner": "ts-cleaner --dist dist",
153
+ "tsc:cleaner:watch": "npm run tsc:cleaner -- --watch",
154
+ "tsc:watch": "tsc-watch -p tsconfig-build.json"
145
155
  },
146
- "version": "1.0.2"
156
+ "version": "1.1.0"
147
157
  }
package/dist/app/index.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.app = void 0;
4
- const cli_app_1 = require("src/app/cli-app");
5
- const http_server_app_1 = require("src/app/http-server-app");
6
- const tui_app_1 = require("src/app/tui-app");
7
- const args_service_1 = require("src/service/args-service");
8
- const shell_service_1 = require("src/service/shell-service");
9
- exports.app = {
10
- start: () => {
11
- exports.app._start().catch(exports.app._onError);
12
- },
13
- _start: async () => {
14
- const args = process.argv.slice(2);
15
- const appCommands = args_service_1.argsService.argToObject({ args, options: args_service_1.argsService.appCommandOptions });
16
- if (appCommands['http-server'])
17
- await new http_server_app_1.HttpServerApp().initiate();
18
- else if (appCommands.tui)
19
- await new tui_app_1.TuiApp().initiate();
20
- else
21
- await new cli_app_1.CliApp(args).initiate();
22
- },
23
- _onError: (err) => {
24
- shell_service_1.shellService.printError(err.message);
25
- process.exit(1);
26
- },
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF3QztBQUN4Qyw2REFBdUQ7QUFDdkQsNkNBQXdDO0FBQ3hDLDJEQUFtRTtBQUNuRSw2REFBd0Q7QUFFM0MsUUFBQSxHQUFHLEdBQUc7SUFDakIsS0FBSyxFQUFFLEdBQVMsRUFBRTtRQUNoQixXQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBQ0QsTUFBTSxFQUFFLEtBQUssSUFBbUIsRUFBRTtRQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNsQyxNQUFNLFdBQVcsR0FBRywwQkFBVyxDQUFDLFdBQVcsQ0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsMEJBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUE7UUFFMUcsSUFBSSxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQUUsTUFBTSxJQUFJLCtCQUFhLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTthQUMvRCxJQUFJLFdBQVcsQ0FBQyxHQUFHO1lBQUUsTUFBTSxJQUFJLGdCQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTs7WUFDbEQsTUFBTSxJQUFJLGdCQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUNELFFBQVEsRUFBRSxDQUFDLEdBQVEsRUFBUSxFQUFFO1FBQzNCLDRCQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpQXBwIH0gZnJvbSAnc3JjL2FwcC9jbGktYXBwJ1xuaW1wb3J0IHsgSHR0cFNlcnZlckFwcCB9IGZyb20gJ3NyYy9hcHAvaHR0cC1zZXJ2ZXItYXBwJ1xuaW1wb3J0IHsgVHVpQXBwIH0gZnJvbSAnc3JjL2FwcC90dWktYXBwJ1xuaW1wb3J0IHsgYXBwQ29tbWFuZHMsIGFyZ3NTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2UvYXJncy1zZXJ2aWNlJ1xuaW1wb3J0IHsgc2hlbGxTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2Uvc2hlbGwtc2VydmljZSdcblxuZXhwb3J0IGNvbnN0IGFwcCA9IHtcbiAgc3RhcnQ6ICgpOiB2b2lkID0+IHtcbiAgICBhcHAuX3N0YXJ0KCkuY2F0Y2goYXBwLl9vbkVycm9yKVxuICB9LFxuICBfc3RhcnQ6IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBhcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDIpXG4gICAgY29uc3QgYXBwQ29tbWFuZHMgPSBhcmdzU2VydmljZS5hcmdUb09iamVjdDxhcHBDb21tYW5kcz4oeyBhcmdzLCBvcHRpb25zOiBhcmdzU2VydmljZS5hcHBDb21tYW5kT3B0aW9ucyB9KVxuXG4gICAgaWYgKGFwcENvbW1hbmRzWydodHRwLXNlcnZlciddKSBhd2FpdCBuZXcgSHR0cFNlcnZlckFwcCgpLmluaXRpYXRlKClcbiAgICBlbHNlIGlmIChhcHBDb21tYW5kcy50dWkpIGF3YWl0IG5ldyBUdWlBcHAoKS5pbml0aWF0ZSgpXG4gICAgZWxzZSBhd2FpdCBuZXcgQ2xpQXBwKGFyZ3MpLmluaXRpYXRlKClcbiAgfSxcbiAgX29uRXJyb3I6IChlcnI6IGFueSk6IHZvaWQgPT4ge1xuICAgIHNoZWxsU2VydmljZS5wcmludEVycm9yKGVyci5tZXNzYWdlKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9LFxufVxuIl19
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExecArgsAsCommand = void 0;
4
- const msh_node_app_1 = require("@beecode/msh-node-app");
5
- const cli_init_1 = require("src/use-case/cli-init");
6
- class ExecArgsAsCommand extends msh_node_app_1.Initiate {
7
- constructor(args) {
8
- super();
9
- this.__args = args;
10
- }
11
- get Name() {
12
- return 'ArgsToCommand';
13
- }
14
- async _initFn() {
15
- await cli_init_1.cliInit.execArgsAsCommand(this.__args);
16
- }
17
- async _destroyFn() {
18
- // throw new Error('Method not implemented.')
19
- }
20
- }
21
- exports.ExecArgsAsCommand = ExecArgsAsCommand;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlYy1hcmdzLWFzLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2luaXQvZXhlYy1hcmdzLWFzLWNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0RBQWdEO0FBQ2hELG9EQUErQztBQUUvQyxNQUFhLGlCQUFrQixTQUFRLHVCQUFRO0lBRTdDLFlBQVksSUFBYztRQUN4QixLQUFLLEVBQUUsQ0FBQTtRQUNQLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLGVBQWUsQ0FBQTtJQUN4QixDQUFDO0lBQ1MsS0FBSyxDQUFDLE9BQU87UUFDckIsTUFBTSxrQkFBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBQ1MsS0FBSyxDQUFDLFVBQVU7UUFDeEIsNkNBQTZDO0lBQy9DLENBQUM7Q0FDRjtBQWhCRCw4Q0FnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbml0aWF0ZSB9IGZyb20gJ0BiZWVjb2RlL21zaC1ub2RlLWFwcCdcbmltcG9ydCB7IGNsaUluaXQgfSBmcm9tICdzcmMvdXNlLWNhc2UvY2xpLWluaXQnXG5cbmV4cG9ydCBjbGFzcyBFeGVjQXJnc0FzQ29tbWFuZCBleHRlbmRzIEluaXRpYXRlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfX2FyZ3M6IHN0cmluZ1tdXG4gIGNvbnN0cnVjdG9yKGFyZ3M6IHN0cmluZ1tdKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuX19hcmdzID0gYXJnc1xuICB9XG5cbiAgZ2V0IE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0FyZ3NUb0NvbW1hbmQnXG4gIH1cbiAgcHJvdGVjdGVkIGFzeW5jIF9pbml0Rm4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY2xpSW5pdC5leGVjQXJnc0FzQ29tbWFuZCh0aGlzLl9fYXJncylcbiAgfVxuICBwcm90ZWN0ZWQgYXN5bmMgX2Rlc3Ryb3lGbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJylcbiAgfVxufVxuIl19
package/dist/index.js DELETED
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("module-alias/register");
4
- require("source-map-support/register");
5
- const unhandledFn = (errorType) => (err) => {
6
- // eslint-disable-next-line no-console
7
- console.error(errorType, err);
8
- process.exit(1);
9
- };
10
- process.on('uncaughtException', unhandledFn('Uncaught Exception'));
11
- process.on('unhandledRejection', unhandledFn('Unhandled Rejection'));
12
- // eslint-disable-next-line @typescript-eslint/no-var-requires
13
- require('src/app').app.start();
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBOEI7QUFDOUIsdUNBQW9DO0FBRXBDLE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBUSxFQUFFO0lBQy9DLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUVELE9BQU8sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtBQUNsRSxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUE7QUFFcEUsOERBQThEO0FBQzlELE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ21vZHVsZS1hbGlhcy9yZWdpc3RlcidcbmltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyJ1xuXG5jb25zdCB1bmhhbmRsZWRGbiA9IChlcnJvclR5cGUpID0+IChlcnIpOiB2b2lkID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlcnJvclR5cGUsIGVycilcbiAgcHJvY2Vzcy5leGl0KDEpXG59XG5cbnByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uJywgdW5oYW5kbGVkRm4oJ1VuY2F1Z2h0IEV4Y2VwdGlvbicpKVxucHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgdW5oYW5kbGVkRm4oJ1VuaGFuZGxlZCBSZWplY3Rpb24nKSlcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbnJlcXVpcmUoJ3NyYy9hcHAnKS5hcHAuc3RhcnQoKVxuIl19
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvY29tbWFuZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZCB7XG4gIGV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPlxufVxuIl19
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrintHelp = void 0;
4
- const cli_service_1 = require("src/service/cli-service");
5
- class PrintHelp {
6
- async execute() {
7
- cli_service_1.cliService.printHelp();
8
- }
9
- }
10
- exports.PrintHelp = PrintHelp;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtaGVscC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9jb21tYW5kL3ByaW50LWhlbHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQW9EO0FBRXBELE1BQWEsU0FBUztJQUNiLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLHdCQUFVLENBQUMsU0FBUyxFQUFFLENBQUE7SUFDeEIsQ0FBQztDQUNGO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29tbWFuZCB9IGZyb20gJ3NyYy9tb2RlbC9jb21tYW5kL2luZGV4J1xuaW1wb3J0IHsgY2xpU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlL2NsaS1zZXJ2aWNlJ1xuXG5leHBvcnQgY2xhc3MgUHJpbnRIZWxwIGltcGxlbWVudHMgSUNvbW1hbmQge1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjbGlTZXJ2aWNlLnByaW50SGVscCgpXG4gIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PrintVersion = void 0;
4
- const cli_service_1 = require("src/service/cli-service");
5
- class PrintVersion {
6
- async execute() {
7
- cli_service_1.cliService.printVersion();
8
- }
9
- }
10
- exports.PrintVersion = PrintVersion;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9jb21tYW5kL3ByaW50LXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQW9EO0FBRXBELE1BQWEsWUFBWTtJQUNoQixLQUFLLENBQUMsT0FBTztRQUNsQix3QkFBVSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzNCLENBQUM7Q0FDRjtBQUpELG9DQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbW1hbmQgfSBmcm9tICdzcmMvbW9kZWwvY29tbWFuZC9pbmRleCdcbmltcG9ydCB7IGNsaVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZS9jbGktc2VydmljZSdcblxuZXhwb3J0IGNsYXNzIFByaW50VmVyc2lvbiBpbXBsZW1lbnRzIElDb21tYW5kIHtcbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY2xpU2VydmljZS5wcmludFZlcnNpb24oKVxuICB9XG59XG4iXX0=
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ProjectCommand = void 0;
4
- const shell_service_1 = require("src/service/shell-service");
5
- class ProjectCommand {
6
- constructor(params) {
7
- this.__projects = params.projects;
8
- this.__projectExecuteCmd = params.projectExecuteCmd;
9
- }
10
- async execute() {
11
- if (this.__projects.length === 0)
12
- throw new Error('No Project selected, check .msh config file for [PROJECTS=]');
13
- const promises = this.__projects.map(async (pr) => {
14
- const result = await this.__projectExecuteCmd.execute(pr);
15
- shell_service_1.shellService.printSuccess(`${pr} - DONE`);
16
- return { [pr]: result };
17
- });
18
- const results = await Promise.all(promises);
19
- shell_service_1.shellService.printStdMessage(...results);
20
- }
21
- }
22
- exports.ProjectCommand = ProjectCommand;
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWwvY29tbWFuZC9wcm9qZWN0LWNvbW1hbmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkRBQXdEO0FBV3hELE1BQWEsY0FBYztJQUl6QixZQUFZLE1BQTZCO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQTtRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFBO0lBQ3JELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUE7UUFDaEgsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN6RCw0QkFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDekMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUE7UUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDM0MsNEJBQVksQ0FBQyxlQUFlLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0NBQ0Y7QUFuQkQsd0NBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhlY1Jlc3VsdCB9IGZyb20gJ3NyYy9kYWwvc2hlbGwtZGFsJ1xuaW1wb3J0IHsgSUNvbW1hbmQgfSBmcm9tICdzcmMvbW9kZWwvY29tbWFuZCdcbmltcG9ydCB7IHNoZWxsU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlL3NoZWxsLXNlcnZpY2UnXG5cbmV4cG9ydCB0eXBlIFByb2plY3RFeGVjdXRvclBhcmFtcyA9IHtcbiAgcHJvamVjdHM6IHN0cmluZ1tdXG4gIHByb2plY3RFeGVjdXRlQ21kOiBJUHJvamVjdENvbW1hbmRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUHJvamVjdENvbW1hbmQge1xuICBleGVjdXRlKHByb2plY3Q6IHN0cmluZyk6IFByb21pc2U8RXhlY1Jlc3VsdD5cbn1cblxuZXhwb3J0IGNsYXNzIFByb2plY3RDb21tYW5kIGltcGxlbWVudHMgSUNvbW1hbmQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9fcHJvamVjdHM6IHN0cmluZ1tdXG4gIHByaXZhdGUgcmVhZG9ubHkgX19wcm9qZWN0RXhlY3V0ZUNtZDogSVByb2plY3RDb21tYW5kXG5cbiAgY29uc3RydWN0b3IocGFyYW1zOiBQcm9qZWN0RXhlY3V0b3JQYXJhbXMpIHtcbiAgICB0aGlzLl9fcHJvamVjdHMgPSBwYXJhbXMucHJvamVjdHNcbiAgICB0aGlzLl9fcHJvamVjdEV4ZWN1dGVDbWQgPSBwYXJhbXMucHJvamVjdEV4ZWN1dGVDbWRcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9fcHJvamVjdHMubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ05vIFByb2plY3Qgc2VsZWN0ZWQsIGNoZWNrIC5tc2ggY29uZmlnIGZpbGUgZm9yIFtQUk9KRUNUUz1dJylcbiAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMuX19wcm9qZWN0cy5tYXAoYXN5bmMgKHByKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9fcHJvamVjdEV4ZWN1dGVDbWQuZXhlY3V0ZShwcilcbiAgICAgIHNoZWxsU2VydmljZS5wcmludFN1Y2Nlc3MoYCR7cHJ9IC0gRE9ORWApXG4gICAgICByZXR1cm4geyBbcHJdOiByZXN1bHQgfVxuICAgIH0pXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgIHNoZWxsU2VydmljZS5wcmludFN0ZE1lc3NhZ2UoLi4ucmVzdWx0cylcbiAgfVxufVxuIl19
@@ -1,54 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.argsService = void 0;
7
- const minimist_1 = __importDefault(require("minimist"));
8
- const minimist_options_1 = __importDefault(require("minimist-options"));
9
- exports.argsService = {
10
- appCommandOptions: {
11
- 'http-server': {
12
- type: 'boolean',
13
- alias: 'H',
14
- },
15
- tui: {
16
- type: 'boolean',
17
- alias: 'T',
18
- },
19
- },
20
- cliCommandOptions: {
21
- help: {
22
- type: 'boolean',
23
- alias: 'h',
24
- },
25
- version: {
26
- type: 'boolean',
27
- alias: 'v',
28
- },
29
- git: {
30
- type: 'boolean',
31
- alias: 'g',
32
- },
33
- npm: {
34
- type: 'boolean',
35
- alias: 'n',
36
- },
37
- init: {
38
- type: 'boolean',
39
- alias: 'i',
40
- },
41
- },
42
- selectedCommandCount: (params) => {
43
- const miniOpts = minimist_options_1.default(params.options);
44
- const commands = exports.argsService.argToObject(params);
45
- return miniOpts.boolean.reduce((sum, cmd) => {
46
- return commands[cmd] ? ++sum : sum;
47
- }, 0);
48
- },
49
- argToObject: (params) => {
50
- const miniOpts = minimist_options_1.default(params.options);
51
- return minimist_1.default(params.args, miniOpts);
52
- },
53
- };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UvYXJncy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHdEQUErQjtBQUMvQix3RUFBMkQ7QUF5QjlDLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLGlCQUFpQixFQUFFO1FBQ2pCLGFBQWEsRUFBRTtZQUNiLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLEdBQUc7U0FDWDtRQUNELEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLEdBQUc7U0FDWDtLQUNTO0lBQ1osaUJBQWlCLEVBQUU7UUFDakIsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsR0FBRztTQUNYO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsR0FBRztTQUNYO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsR0FBRztTQUNYO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsR0FBRztTQUNYO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsR0FBRztTQUNYO0tBQ1M7SUFDWixvQkFBb0IsRUFBRSxDQUFDLE1BQXlCLEVBQVUsRUFBRTtRQUMxRCxNQUFNLFFBQVEsR0FBRywwQkFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNoRCxNQUFNLFFBQVEsR0FBRyxtQkFBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNoRCxPQUFRLFFBQVEsQ0FBQyxPQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN4RCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUNwQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDO0lBQ0QsV0FBVyxFQUFFLENBQWdDLE1BQXlCLEVBQUssRUFBRTtRQUMzRSxNQUFNLFFBQVEsR0FBRywwQkFBZSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNoRCxPQUFPLGtCQUFRLENBQUksTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW5pbWlzdCBmcm9tICdtaW5pbWlzdCdcbmltcG9ydCBtaW5pbWlzdE9wdGlvbnMsIHsgT3B0aW9ucyB9IGZyb20gJ21pbmltaXN0LW9wdGlvbnMnXG5cbmV4cG9ydCB0eXBlIGFyZ3NTZXJ2aWNlUGFyYW1zID0ge1xuICBhcmdzOiBzdHJpbmdbXVxuICBvcHRpb25zOiBPcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIGFwcENvbW1hbmRzID0gbWluaW1pc3QuUGFyc2VkQXJncyAmIHtcbiAgJ2h0dHAtc2VydmVyJzogYm9vbGVhblxuICBIOiBib29sZWFuXG4gIHR1aTogYm9vbGVhblxuICBUOiBib29sZWFuXG59XG5leHBvcnQgdHlwZSBjbGlDb21tYW5kcyA9IG1pbmltaXN0LlBhcnNlZEFyZ3MgJiB7XG4gIGhlbHA6IGJvb2xlYW5cbiAgaDogYm9vbGVhblxuICB2ZXJzaW9uOiBib29sZWFuXG4gIHY6IGJvb2xlYW5cbiAgZ2l0OiBib29sZWFuXG4gIGc6IGJvb2xlYW5cbiAgbnBtOiBib29sZWFuXG4gIG46IGJvb2xlYW5cbiAgaW5pdDogYm9vbGVhblxuICBpOiBib29sZWFuXG59XG5leHBvcnQgY29uc3QgYXJnc1NlcnZpY2UgPSB7XG4gIGFwcENvbW1hbmRPcHRpb25zOiB7XG4gICAgJ2h0dHAtc2VydmVyJzoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgYWxpYXM6ICdIJyxcbiAgICB9LFxuICAgIHR1aToge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgYWxpYXM6ICdUJyxcbiAgICB9LFxuICB9IGFzIE9wdGlvbnMsXG4gIGNsaUNvbW1hbmRPcHRpb25zOiB7XG4gICAgaGVscDoge1xuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgYWxpYXM6ICdoJyxcbiAgICB9LFxuICAgIHZlcnNpb246IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGFsaWFzOiAndicsXG4gICAgfSxcbiAgICBnaXQ6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGFsaWFzOiAnZycsXG4gICAgfSxcbiAgICBucG06IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIGFsaWFzOiAnbicsXG4gICAgfSxcbiAgICBpbml0OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICBhbGlhczogJ2knLFxuICAgIH0sXG4gIH0gYXMgT3B0aW9ucyxcbiAgc2VsZWN0ZWRDb21tYW5kQ291bnQ6IChwYXJhbXM6IGFyZ3NTZXJ2aWNlUGFyYW1zKTogbnVtYmVyID0+IHtcbiAgICBjb25zdCBtaW5pT3B0cyA9IG1pbmltaXN0T3B0aW9ucyhwYXJhbXMub3B0aW9ucylcbiAgICBjb25zdCBjb21tYW5kcyA9IGFyZ3NTZXJ2aWNlLmFyZ1RvT2JqZWN0KHBhcmFtcylcbiAgICByZXR1cm4gKG1pbmlPcHRzLmJvb2xlYW4gYXMgc3RyaW5nW10pLnJlZHVjZSgoc3VtLCBjbWQpID0+IHtcbiAgICAgIHJldHVybiBjb21tYW5kc1tjbWRdID8gKytzdW0gOiBzdW1cbiAgICB9LCAwKVxuICB9LFxuICBhcmdUb09iamVjdDogPFQgZXh0ZW5kcyBtaW5pbWlzdC5QYXJzZWRBcmdzPihwYXJhbXM6IGFyZ3NTZXJ2aWNlUGFyYW1zKTogVCA9PiB7XG4gICAgY29uc3QgbWluaU9wdHMgPSBtaW5pbWlzdE9wdGlvbnMocGFyYW1zLm9wdGlvbnMpXG4gICAgcmV0dXJuIG1pbmltaXN0PFQ+KHBhcmFtcy5hcmdzLCBtaW5pT3B0cylcbiAgfSxcbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cliService = void 0;
4
- const help_service_1 = require("src/service/help-service");
5
- const shell_service_1 = require("src/service/shell-service");
6
- const constant_1 = require("src/util/constant");
7
- exports.cliService = {
8
- printVersion: () => shell_service_1.shellService.print(`v${constant_1.constant.projectVersion}`),
9
- printHelp: () => shell_service_1.shellService.print(help_service_1.helpService.text()),
10
- };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9jbGktc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBc0Q7QUFDdEQsNkRBQXdEO0FBQ3hELGdEQUE0QztBQUUvQixRQUFBLFVBQVUsR0FBRztJQUN4QixZQUFZLEVBQUUsR0FBUyxFQUFFLENBQUMsNEJBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNFLFNBQVMsRUFBRSxHQUFTLEVBQUUsQ0FBQyw0QkFBWSxDQUFDLEtBQUssQ0FBQywwQkFBVyxDQUFDLElBQUksRUFBRSxDQUFDO0NBQzlELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoZWxwU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlL2hlbHAtc2VydmljZSdcbmltcG9ydCB7IHNoZWxsU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlL3NoZWxsLXNlcnZpY2UnXG5pbXBvcnQgeyBjb25zdGFudCB9IGZyb20gJ3NyYy91dGlsL2NvbnN0YW50J1xuXG5leHBvcnQgY29uc3QgY2xpU2VydmljZSA9IHtcbiAgcHJpbnRWZXJzaW9uOiAoKTogdm9pZCA9PiBzaGVsbFNlcnZpY2UucHJpbnQoYHYke2NvbnN0YW50LnByb2plY3RWZXJzaW9ufWApLFxuICBwcmludEhlbHA6ICgpOiB2b2lkID0+IHNoZWxsU2VydmljZS5wcmludChoZWxwU2VydmljZS50ZXh0KCkpLFxufVxuIl19
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gitService = void 0;
4
- const git_clone_project_command_1 = require("src/model/command/project-command/git-clone-project-command");
5
- const git_simple_project_command_1 = require("src/model/command/project-command/git-simple-project-command");
6
- const config_1 = require("src/util/config");
7
- exports.gitService = {
8
- createCommand: (commandType) => {
9
- if (commandType === 'clone') {
10
- if (!config_1.config.git.team)
11
- throw new Error('You need to specify GIT_TEAM env variable');
12
- return new git_clone_project_command_1.GitCloneProjectCommand({
13
- gitHost: config_1.config.git.host,
14
- gitTeam: config_1.config.git.team,
15
- projectPrefix: config_1.config.git.projectPrefix,
16
- rootDir: config_1.config.rootDir,
17
- });
18
- }
19
- if (Object.values(git_simple_project_command_1.GitSimpleCommand).includes(commandType)) {
20
- return new git_simple_project_command_1.GitSimpleProjectCommand({
21
- rootDir: config_1.config.rootDir,
22
- gitSimpleCommand: commandType,
23
- });
24
- }
25
- throw new Error(`Unsupported git command [${commandType}]`);
26
- },
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9naXQtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyR0FBb0c7QUFDcEcsNkdBQXdIO0FBQ3hILDRDQUF3QztBQUUzQixRQUFBLFVBQVUsR0FBRztJQUN4QixhQUFhLEVBQUUsQ0FBQyxXQUFtQixFQUFtQixFQUFFO1FBQ3RELElBQUksV0FBVyxLQUFLLE9BQU8sRUFBRTtZQUMzQixJQUFJLENBQUMsZUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQTtZQUNsRixPQUFPLElBQUksa0RBQXNCLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxlQUFNLENBQUMsR0FBRyxDQUFDLElBQUk7Z0JBQ3hCLE9BQU8sRUFBRSxlQUFNLENBQUMsR0FBRyxDQUFDLElBQUk7Z0JBQ3hCLGFBQWEsRUFBRSxlQUFNLENBQUMsR0FBRyxDQUFDLGFBQWE7Z0JBQ3ZDLE9BQU8sRUFBRSxlQUFNLENBQUMsT0FBTzthQUN4QixDQUFDLENBQUE7U0FDSDtRQUNELElBQVUsTUFBTyxDQUFDLE1BQU0sQ0FBQyw2Q0FBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoRSxPQUFPLElBQUksb0RBQXVCLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxlQUFNLENBQUMsT0FBTztnQkFDdkIsZ0JBQWdCLEVBQUUsV0FBK0I7YUFDbEQsQ0FBQyxDQUFBO1NBQ0g7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQzdELENBQUM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVByb2plY3RDb21tYW5kIH0gZnJvbSAnc3JjL21vZGVsL2NvbW1hbmQvcHJvamVjdC1jb21tYW5kJ1xuaW1wb3J0IHsgR2l0Q2xvbmVQcm9qZWN0Q29tbWFuZCB9IGZyb20gJ3NyYy9tb2RlbC9jb21tYW5kL3Byb2plY3QtY29tbWFuZC9naXQtY2xvbmUtcHJvamVjdC1jb21tYW5kJ1xuaW1wb3J0IHsgR2l0U2ltcGxlQ29tbWFuZCwgR2l0U2ltcGxlUHJvamVjdENvbW1hbmQgfSBmcm9tICdzcmMvbW9kZWwvY29tbWFuZC9wcm9qZWN0LWNvbW1hbmQvZ2l0LXNpbXBsZS1wcm9qZWN0LWNvbW1hbmQnXG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdzcmMvdXRpbC9jb25maWcnXG5cbmV4cG9ydCBjb25zdCBnaXRTZXJ2aWNlID0ge1xuICBjcmVhdGVDb21tYW5kOiAoY29tbWFuZFR5cGU6IHN0cmluZyk6IElQcm9qZWN0Q29tbWFuZCA9PiB7XG4gICAgaWYgKGNvbW1hbmRUeXBlID09PSAnY2xvbmUnKSB7XG4gICAgICBpZiAoIWNvbmZpZy5naXQudGVhbSkgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBzcGVjaWZ5IEdJVF9URUFNIGVudiB2YXJpYWJsZScpXG4gICAgICByZXR1cm4gbmV3IEdpdENsb25lUHJvamVjdENvbW1hbmQoe1xuICAgICAgICBnaXRIb3N0OiBjb25maWcuZ2l0Lmhvc3QsXG4gICAgICAgIGdpdFRlYW06IGNvbmZpZy5naXQudGVhbSxcbiAgICAgICAgcHJvamVjdFByZWZpeDogY29uZmlnLmdpdC5wcm9qZWN0UHJlZml4LFxuICAgICAgICByb290RGlyOiBjb25maWcucm9vdERpcixcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmICgoPGFueT5PYmplY3QpLnZhbHVlcyhHaXRTaW1wbGVDb21tYW5kKS5pbmNsdWRlcyhjb21tYW5kVHlwZSkpIHtcbiAgICAgIHJldHVybiBuZXcgR2l0U2ltcGxlUHJvamVjdENvbW1hbmQoe1xuICAgICAgICByb290RGlyOiBjb25maWcucm9vdERpcixcbiAgICAgICAgZ2l0U2ltcGxlQ29tbWFuZDogY29tbWFuZFR5cGUgYXMgR2l0U2ltcGxlQ29tbWFuZCxcbiAgICAgIH0pXG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZ2l0IGNvbW1hbmQgWyR7Y29tbWFuZFR5cGV9XWApXG4gIH0sXG59XG4iXX0=
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.helpService = void 0;
4
- exports.helpService = {
5
- text: () => {
6
- return [
7
- 'Usage: msh [command]',
8
- '',
9
- 'Command:',
10
- '',
11
- ' -i | --init Initiate .msh config file with default values',
12
- '',
13
- ' -g | --git [option]',
14
- ' options:',
15
- ' clone Clone all project',
16
- ' pull Pull all projects',
17
- ' fetch Fetch all projects',
18
- ' status Get status for all projects',
19
- '',
20
- ' -n | --npm [option] Run npm i in all containers',
21
- ' options:',
22
- ' install Run npm i for all projects',
23
- // ' global !!!Not Implemented yet!!! Gather all npm packages to a global package.json',
24
- // '',
25
- // ' -c | --clean [option]',
26
- // ' options:',
27
- // ' npm Clean all node_modules folders',
28
- // ' docker Remove all docker images (do a "docker-compose down" command first)',
29
- // '',
30
- // ' -p | --pr Generate PR for all projects (added option to auto merge)',
31
- '',
32
- ' -v | --version Display cli version',
33
- '',
34
- ' -h | --help Display this help',
35
- ].join('\n');
36
- },
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2UvaGVscC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLElBQUksRUFBRSxHQUFXLEVBQUU7UUFDakIsT0FBTztZQUNMLHNCQUFzQjtZQUN0QixFQUFFO1lBQ0YsVUFBVTtZQUNWLEVBQUU7WUFDRiwwRUFBMEU7WUFDMUUsRUFBRTtZQUNGLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsOENBQThDO1lBQzlDLDhDQUE4QztZQUM5QywrQ0FBK0M7WUFDL0Msd0RBQXdEO1lBQ3hELEVBQUU7WUFDRix3REFBd0Q7WUFDeEQsaUJBQWlCO1lBQ2pCLHVEQUF1RDtZQUN2RCwyR0FBMkc7WUFDM0csTUFBTTtZQUNOLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsK0RBQStEO1lBQy9ELG9HQUFvRztZQUNwRyxNQUFNO1lBQ04sMEZBQTBGO1lBQzFGLEVBQUU7WUFDRixnREFBZ0Q7WUFDaEQsRUFBRTtZQUNGLDhDQUE4QztTQUMvQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNkLENBQUM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGhlbHBTZXJ2aWNlID0ge1xuICB0ZXh0OiAoKTogc3RyaW5nID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgJ1VzYWdlOiBtc2ggW2NvbW1hbmRdJyxcbiAgICAgICcnLFxuICAgICAgJ0NvbW1hbmQ6JyxcbiAgICAgICcnLFxuICAgICAgJyAgIC1pIHwgLS1pbml0ICAgICAgICAgICAgIEluaXRpYXRlIC5tc2ggY29uZmlnIGZpbGUgd2l0aCBkZWZhdWx0IHZhbHVlcycsXG4gICAgICAnJyxcbiAgICAgICcgICAtZyB8IC0tZ2l0IFtvcHRpb25dJyxcbiAgICAgICcgICAgICAgb3B0aW9uczonLFxuICAgICAgJyAgICAgICAgICBjbG9uZSAgICAgICAgICAgIENsb25lIGFsbCBwcm9qZWN0JyxcbiAgICAgICcgICAgICAgICAgcHVsbCAgICAgICAgICAgICBQdWxsIGFsbCBwcm9qZWN0cycsXG4gICAgICAnICAgICAgICAgIGZldGNoICAgICAgICAgICAgRmV0Y2ggYWxsIHByb2plY3RzJyxcbiAgICAgICcgICAgICAgICAgc3RhdHVzICAgICAgICAgICBHZXQgc3RhdHVzIGZvciBhbGwgcHJvamVjdHMnLFxuICAgICAgJycsXG4gICAgICAnICAgLW4gfCAtLW5wbSAgW29wdGlvbl0gICAgUnVuIG5wbSBpIGluIGFsbCBjb250YWluZXJzJyxcbiAgICAgICcgICAgICAgb3B0aW9uczonLFxuICAgICAgJyAgICAgICAgICBpbnN0YWxsICAgICAgICAgIFJ1biBucG0gaSBmb3IgYWxsIHByb2plY3RzJyxcbiAgICAgIC8vICcgICAgICAgICAgZ2xvYmFsICAgICAgICAgICAhISFOb3QgSW1wbGVtZW50ZWQgeWV0ISEhIEdhdGhlciBhbGwgbnBtIHBhY2thZ2VzIHRvIGEgZ2xvYmFsIHBhY2thZ2UuanNvbicsXG4gICAgICAvLyAnJyxcbiAgICAgIC8vICcgICAtYyB8IC0tY2xlYW4gW29wdGlvbl0nLFxuICAgICAgLy8gJyAgICAgICBvcHRpb25zOicsXG4gICAgICAvLyAnICAgICAgICAgIG5wbSAgICAgICAgICAgICAgQ2xlYW4gYWxsIG5vZGVfbW9kdWxlcyBmb2xkZXJzJyxcbiAgICAgIC8vICcgICAgICAgICAgZG9ja2VyICAgICAgICAgICBSZW1vdmUgYWxsIGRvY2tlciBpbWFnZXMgKGRvIGEgXCJkb2NrZXItY29tcG9zZSBkb3duXCIgY29tbWFuZCBmaXJzdCknLFxuICAgICAgLy8gJycsXG4gICAgICAvLyAnICAgLXAgfCAtLXByICAgICAgICAgICAgICAgR2VuZXJhdGUgUFIgZm9yIGFsbCBwcm9qZWN0cyAoYWRkZWQgb3B0aW9uIHRvIGF1dG8gbWVyZ2UpJyxcbiAgICAgICcnLFxuICAgICAgJyAgIC12IHwgLS12ZXJzaW9uICAgICAgICAgIERpc3BsYXkgY2xpIHZlcnNpb24nLFxuICAgICAgJycsXG4gICAgICAnICAgLWggfCAtLWhlbHAgICAgICAgICAgICAgRGlzcGxheSB0aGlzIGhlbHAnLFxuICAgIF0uam9pbignXFxuJylcbiAgfSxcbn1cbiJdfQ==
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __importDefault = (this && this.__importDefault) || function (mod) {
22
- return (mod && mod.__esModule) ? mod : { "default": mod };
23
- };
24
- Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.npmService = void 0;
26
- const compare_versions_1 = __importDefault(require("compare-versions"));
27
- const fast_json_stable_stringify_1 = __importDefault(require("fast-json-stable-stringify"));
28
- const fs_1 = __importDefault(require("fs"));
29
- const path = __importStar(require("path"));
30
- const npm_install_project_command_1 = require("src/model/command/project-command/npm-install-project-command");
31
- const config_1 = require("src/util/config");
32
- const logger_1 = require("src/util/logger");
33
- exports.npmService = {
34
- createCommand: (commandType) => {
35
- switch (commandType) {
36
- case 'install':
37
- return new npm_install_project_command_1.NpmInstallProjectCommand({ rootDir: config_1.config.rootDir });
38
- default:
39
- throw new Error(`Unsupported npm command [${commandType}]`);
40
- }
41
- },
42
- global: () => {
43
- throw new Error('not implemented yet');
44
- const gDeps = {};
45
- const gDepsNewer = {};
46
- const gDepsOlder = {};
47
- for (const project of config_1.config.projects) {
48
- // eslint-disable-next-line @typescript-eslint/no-var-requires
49
- const packageJs = require(path.join(process.cwd(), `${project}/package.json`));
50
- const allDeps = { ...packageJs.dependencies, ...packageJs.devDependencies };
51
- for (const key of Object.keys(allDeps)) {
52
- gDeps[key] = gDeps[key] || {};
53
- gDeps[key][allDeps[key]] = gDeps[key][allDeps[key]] || [];
54
- gDeps[key][allDeps[key]].push(project);
55
- }
56
- }
57
- for (const key of Object.keys(gDeps)) {
58
- if (Object.keys(gDeps[key]).length > 1) {
59
- const sortedVersionsAsc = Object.keys(gDeps[key]).sort(compare_versions_1.default);
60
- gDepsNewer[key] = sortedVersionsAsc.pop();
61
- for (const oldVer of sortedVersionsAsc) {
62
- gDepsOlder[key] = gDepsOlder[key] || {};
63
- gDepsOlder[key][oldVer] = gDeps[key][oldVer];
64
- }
65
- }
66
- else {
67
- gDepsNewer[key] = Object.keys(gDeps[key])[0];
68
- }
69
- }
70
- // revert gDepsOlder result to print by project
71
- const gDepsReverted = {};
72
- for (const pack of Object.keys(gDepsOlder)) {
73
- const versions = gDepsOlder[pack];
74
- for (const ver of Object.keys(versions)) {
75
- const projs = versions[ver];
76
- for (const proj of projs) {
77
- gDepsReverted[proj] = gDepsReverted[proj] || {};
78
- gDepsReverted[proj][pack] = ver;
79
- }
80
- }
81
- }
82
- logger_1.logger.debug('Old Deps (by project):');
83
- logger_1.logger.debug(JSON.stringify(gDepsReverted, null, 2));
84
- logger_1.logger.debug('Old Deps (by package):');
85
- logger_1.logger.debug(JSON.stringify(gDepsOlder, null, 2));
86
- // eslint-disable-next-line @typescript-eslint/no-var-requires
87
- const globalPackageJs = require(path.join(process.cwd(), `package.json`));
88
- globalPackageJs.dependencies = gDepsNewer;
89
- fs_1.default.writeFileSync('package.json', JSON.stringify(JSON.parse(fast_json_stable_stringify_1.default(globalPackageJs)), null, 4), 'utf8');
90
- },
91
- };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZS9ucG0tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0VBQW1DO0FBQ25DLDRGQUFrRDtBQUNsRCw0Q0FBbUI7QUFDbkIsMkNBQTRCO0FBRTVCLCtHQUF3RztBQUN4Ryw0Q0FBd0M7QUFDeEMsNENBQXdDO0FBRTNCLFFBQUEsVUFBVSxHQUFHO0lBQ3hCLGFBQWEsRUFBRSxDQUFDLFdBQW1CLEVBQW1CLEVBQUU7UUFDdEQsUUFBUSxXQUFXLEVBQUU7WUFDbkIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sSUFBSSxzREFBd0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNsRTtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixXQUFXLEdBQUcsQ0FBQyxDQUFBO1NBQzlEO0lBQ0gsQ0FBQztJQUNELE1BQU0sRUFBRSxHQUFTLEVBQUU7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQTtRQUNoQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDckIsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFBO1FBRXJCLEtBQUssTUFBTSxPQUFPLElBQUksZUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNyQyw4REFBOEQ7WUFDOUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFBO1lBQzlFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFBO1lBQzNFLEtBQUss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RXpDLFlBQUUsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQ0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNHLENBQUM7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNWZXIgZnJvbSAnY29tcGFyZS12ZXJzaW9ucydcbmltcG9ydCBzdHJpbmdpZnkgZnJvbSAnZmFzdC1qc29uLXN0YWJsZS1zdHJpbmdpZnknXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgeyBJUHJvamVjdENvbW1hbmQgfSBmcm9tICdzcmMvbW9kZWwvY29tbWFuZC9wcm9qZWN0LWNvbW1hbmQnXG5pbXBvcnQgeyBOcG1JbnN0YWxsUHJvamVjdENvbW1hbmQgfSBmcm9tICdzcmMvbW9kZWwvY29tbWFuZC9wcm9qZWN0LWNvbW1hbmQvbnBtLWluc3RhbGwtcHJvamVjdC1jb21tYW5kJ1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnc3JjL3V0aWwvY29uZmlnJ1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnc3JjL3V0aWwvbG9nZ2VyJ1xuXG5leHBvcnQgY29uc3QgbnBtU2VydmljZSA9IHtcbiAgY3JlYXRlQ29tbWFuZDogKGNvbW1hbmRUeXBlOiBzdHJpbmcpOiBJUHJvamVjdENvbW1hbmQgPT4ge1xuICAgIHN3aXRjaCAoY29tbWFuZFR5cGUpIHtcbiAgICAgIGNhc2UgJ2luc3RhbGwnOlxuICAgICAgICByZXR1cm4gbmV3IE5wbUluc3RhbGxQcm9qZWN0Q29tbWFuZCh7IHJvb3REaXI6IGNvbmZpZy5yb290RGlyIH0pXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIG5wbSBjb21tYW5kIFske2NvbW1hbmRUeXBlfV1gKVxuICAgIH1cbiAgfSxcbiAgZ2xvYmFsOiAoKTogdm9pZCA9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQgeWV0JylcbiAgICBjb25zdCBnRGVwcyA9IHt9XG4gICAgY29uc3QgZ0RlcHNOZXdlciA9IHt9XG4gICAgY29uc3QgZ0RlcHNPbGRlciA9IHt9XG5cbiAgICBmb3IgKGNvbnN0IHByb2plY3Qgb2YgY29uZmlnLnByb2plY3RzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgICAgY29uc3QgcGFja2FnZUpzID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgYCR7cHJvamVjdH0vcGFja2FnZS5qc29uYCkpXG4gICAgICBjb25zdCBhbGxEZXBzID0geyAuLi5wYWNrYWdlSnMuZGVwZW5kZW5jaWVzLCAuLi5wYWNrYWdlSnMuZGV2RGVwZW5kZW5jaWVzIH1cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGFsbERlcHMpKSB7XG4gICAgICAgIGdEZXBzW2tleV0gPSBnRGVwc1trZXldIHx8IHt9XG4gICAgICAgIGdEZXBzW2tleV1bYWxsRGVwc1trZXldXSA9IGdEZXBzW2tleV1bYWxsRGVwc1trZXldXSB8fCBbXVxuICAgICAgICBnRGVwc1trZXldW2FsbERlcHNba2V5XV0ucHVzaChwcm9qZWN0KVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdEZXBzKSkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGdEZXBzW2tleV0pLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3Qgc29ydGVkVmVyc2lvbnNBc2MgPSBPYmplY3Qua2V5cyhnRGVwc1trZXldKS5zb3J0KGNWZXIpXG4gICAgICAgIGdEZXBzTmV3ZXJba2V5XSA9IHNvcnRlZFZlcnNpb25zQXNjLnBvcCgpXG5cbiAgICAgICAgZm9yIChjb25zdCBvbGRWZXIgb2Ygc29ydGVkVmVyc2lvbnNBc2MpIHtcbiAgICAgICAgICBnRGVwc09sZGVyW2tleV0gPSBnRGVwc09sZGVyW2tleV0gfHwge31cbiAgICAgICAgICBnRGVwc09sZGVyW2tleV1bb2xkVmVyXSA9IGdEZXBzW2tleV1bb2xkVmVyXVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnRGVwc05ld2VyW2tleV0gPSBPYmplY3Qua2V5cyhnRGVwc1trZXldKVswXVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHJldmVydCBnRGVwc09sZGVyIHJlc3VsdCB0byBwcmludCBieSBwcm9qZWN0XG4gICAgY29uc3QgZ0RlcHNSZXZlcnRlZCA9IHt9XG4gICAgZm9yIChjb25zdCBwYWNrIG9mIE9iamVjdC5rZXlzKGdEZXBzT2xkZXIpKSB7XG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IGdEZXBzT2xkZXJbcGFja11cbiAgICAgIGZvciAoY29uc3QgdmVyIG9mIE9iamVjdC5rZXlzKHZlcnNpb25zKSkge1xuICAgICAgICBjb25zdCBwcm9qcyA9IHZlcnNpb25zW3Zlcl1cbiAgICAgICAgZm9yIChjb25zdCBwcm9qIG9mIHByb2pzKSB7XG4gICAgICAgICAgZ0RlcHNSZXZlcnRlZFtwcm9qXSA9IGdEZXBzUmV2ZXJ0ZWRbcHJval0gfHwge31cbiAgICAgICAgICBnRGVwc1JldmVydGVkW3Byb2pdW3BhY2tdID0gdmVyXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgbG9nZ2VyLmRlYnVnKCdPbGQgRGVwcyAoYnkgcHJvamVjdCk6JylcbiAgICBsb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZ0RlcHNSZXZlcnRlZCwgbnVsbCwgMikpXG4gICAgbG9nZ2VyLmRlYnVnKCdPbGQgRGVwcyAoYnkgcGFja2FnZSk6JylcbiAgICBsb2dnZXIuZGVidWcoSlNPTi5zdHJpbmdpZnkoZ0RlcHNPbGRlciwgbnVsbCwgMikpXG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgIGNvbnN0IGdsb2JhbFBhY2thZ2VKcyA9IHJlcXVpcmUocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGBwYWNrYWdlLmpzb25gKSlcbiAgICBnbG9iYWxQYWNrYWdlSnMuZGVwZW5kZW5jaWVzID0gZ0RlcHNOZXdlclxuXG4gICAgZnMud3JpdGVGaWxlU3luYygncGFja2FnZS5qc29uJywgSlNPTi5zdHJpbmdpZnkoSlNPTi5wYXJzZShzdHJpbmdpZnkoZ2xvYmFsUGFja2FnZUpzKSksIG51bGwsIDQpLCAndXRmOCcpXG4gIH0sXG59XG4iXX0=