@dxos/cli 2.18.5-dev.5b370dc9 → 2.19.1-dev.604435f4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -16
- package/dist/dx.yml +13 -0
- package/dist/known-extensions.yml +51 -67
- package/dist/src/extensions/index.d.ts +4 -0
- package/dist/src/extensions/index.d.ts.map +1 -0
- package/dist/src/extensions/index.js +23 -0
- package/dist/src/extensions/index.js.map +1 -0
- package/dist/src/extensions/manager.d.ts +15 -0
- package/dist/src/extensions/manager.d.ts.map +1 -0
- package/dist/src/extensions/manager.js +52 -0
- package/dist/src/extensions/manager.js.map +1 -0
- package/dist/src/extensions/module.d.ts +19 -0
- package/dist/src/extensions/module.d.ts.map +1 -0
- package/dist/src/extensions/module.js +56 -0
- package/dist/src/extensions/module.js.map +1 -0
- package/dist/src/extensions/pluggable.d.ts +67 -0
- package/dist/src/extensions/pluggable.d.ts.map +1 -0
- package/dist/src/{pluggable.js → extensions/pluggable.js} +45 -89
- package/dist/src/extensions/pluggable.js.map +1 -0
- package/dist/src/extensions/utils.d.ts +9 -0
- package/dist/src/extensions/utils.d.ts.map +1 -0
- package/dist/src/extensions/utils.js +58 -0
- package/dist/src/extensions/utils.js.map +1 -0
- package/dist/src/main.js +42 -62
- package/dist/src/main.js.map +1 -1
- package/dist/src/modules/devtools.d.ts +1 -1
- package/dist/src/modules/devtools.d.ts.map +1 -1
- package/dist/src/modules/devtools.js +5 -4
- package/dist/src/modules/devtools.js.map +1 -1
- package/dist/src/modules/extension.d.ts.map +1 -1
- package/dist/src/modules/extension.js +18 -16
- package/dist/src/modules/extension.js.map +1 -1
- package/dist/src/modules/halo.d.ts +1 -1
- package/dist/src/modules/index.d.ts +9 -0
- package/dist/src/modules/index.d.ts.map +1 -0
- package/dist/src/modules/index.js +28 -0
- package/dist/src/modules/index.js.map +1 -0
- package/dist/src/modules/info.d.ts +6 -0
- package/dist/src/modules/info.d.ts.map +1 -0
- package/dist/src/modules/info.js +25 -0
- package/dist/src/modules/info.js.map +1 -0
- package/dist/src/modules/{installation.d.ts → install.d.ts} +1 -1
- package/dist/src/modules/install.d.ts.map +1 -0
- package/dist/src/modules/{installation.js → install.js} +12 -11
- package/dist/src/modules/install.js.map +1 -0
- package/dist/src/modules/profile.d.ts +2 -2
- package/dist/src/modules/profile.d.ts.map +1 -1
- package/dist/src/modules/profile.js.map +1 -1
- package/dist/src/modules/services.d.ts.map +1 -1
- package/dist/src/modules/services.js +8 -5
- package/dist/src/modules/services.js.map +1 -1
- package/dist/src/modules/storage.d.ts.map +1 -1
- package/dist/src/modules/storage.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/dist/src/extensions.d.ts +0 -6
- package/dist/src/extensions.d.ts.map +0 -1
- package/dist/src/extensions.js +0 -47
- package/dist/src/extensions.js.map +0 -1
- package/dist/src/modules/installation.d.ts.map +0 -1
- package/dist/src/modules/installation.js.map +0 -1
- package/dist/src/modules/pluggable.d.ts +0 -14
- package/dist/src/modules/pluggable.d.ts.map +0 -1
- package/dist/src/modules/pluggable.js +0 -48
- package/dist/src/modules/pluggable.js.map +0 -1
- package/dist/src/pluggable.d.ts +0 -68
- package/dist/src/pluggable.d.ts.map +0 -1
- package/dist/src/pluggable.js.map +0 -1
|
@@ -7,101 +7,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.Pluggable = void 0;
|
|
10
|
-
/* eslint import/no-dynamic-require: 0 */
|
|
11
10
|
/* eslint @typescript-eslint/no-var-requires: 0 */
|
|
12
11
|
/* eslint global-require: 0 */
|
|
13
|
-
const child_process_1 = require("child_process");
|
|
14
|
-
const find_root_1 = __importDefault(require("find-root"));
|
|
15
12
|
const fs_1 = __importDefault(require("fs"));
|
|
16
|
-
const ora_1 = __importDefault(require("ora"));
|
|
17
13
|
const path_1 = __importDefault(require("path"));
|
|
18
14
|
const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
|
19
15
|
const strip_json_comments_1 = __importDefault(require("strip-json-comments"));
|
|
20
16
|
const cli_core_1 = require("@dxos/cli-core");
|
|
21
|
-
const
|
|
17
|
+
const manager_1 = require("./manager");
|
|
18
|
+
const utils_1 = require("./utils");
|
|
22
19
|
const pkg = read_pkg_up_1.default.sync({ cwd: path_1.default.join(__dirname, '../') });
|
|
23
|
-
/**
|
|
24
|
-
* @param {String} command
|
|
25
|
-
* @param {Array} args
|
|
26
|
-
* @param {Object} options
|
|
27
|
-
*/
|
|
28
|
-
const runCommand = async (command, args, options) => {
|
|
29
|
-
return new Promise((resolve, reject) => {
|
|
30
|
-
const { spinner: spinnerText } = options;
|
|
31
|
-
const spinner = (0, ora_1.default)(spinnerText);
|
|
32
|
-
spinner.start();
|
|
33
|
-
(0, child_process_1.exec)(`${(0, cli_core_1.prepareExec)(command)} ${args.join(' ')}`, (err) => {
|
|
34
|
-
if (err) {
|
|
35
|
-
spinner.fail();
|
|
36
|
-
reject(err);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
spinner.succeed();
|
|
40
|
-
spinner.clear();
|
|
41
|
-
resolve();
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* Finds root dir of a workspace.
|
|
48
|
-
* @param {String} from
|
|
49
|
-
*/
|
|
50
|
-
const getWorkspaceRoot = from => {
|
|
51
|
-
try {
|
|
52
|
-
return (0, find_root_1.default)(from, dir => {
|
|
53
|
-
const pkgPath = path_1.default.join(dir, 'package.json');
|
|
54
|
-
if (fs_1.default.existsSync(pkgPath)) {
|
|
55
|
-
const { workspaces } = require(pkgPath);
|
|
56
|
-
return workspaces && (Array.isArray(workspaces) || workspaces.packages);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
return '';
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
20
|
/**
|
|
65
21
|
* Pluggable CLI module.
|
|
66
22
|
*/
|
|
67
23
|
class Pluggable {
|
|
68
|
-
/**
|
|
69
|
-
* @constructor
|
|
70
|
-
* @param {String} moduleName
|
|
71
|
-
* @param {String} version
|
|
72
|
-
*/
|
|
73
24
|
constructor({ moduleName, version }) {
|
|
74
25
|
var _a;
|
|
75
26
|
this._moduleName = moduleName;
|
|
76
27
|
this._version = version;
|
|
77
|
-
this._workspaceRoot = getWorkspaceRoot(__dirname);
|
|
78
|
-
this._workspacePackages = this._workspaceRoot &&
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
|
|
28
|
+
this._workspaceRoot = (0, utils_1.getWorkspaceRoot)(__dirname);
|
|
29
|
+
this._workspacePackages = this._workspaceRoot &&
|
|
30
|
+
JSON.parse((0, strip_json_comments_1.default)(fs_1.default.readFileSync(path_1.default.join(this._workspaceRoot, 'rush.json')).toString())).projects;
|
|
31
|
+
this._workspaceInfo = this._workspacePackages &&
|
|
32
|
+
this._workspacePackages.find(module => module.packageName === this._moduleName);
|
|
33
|
+
this._isInWorkspace = this._workspaceInfo &&
|
|
34
|
+
fs_1.default.existsSync(path_1.default.join(this._workspaceRoot, this._workspaceInfo.projectFolder));
|
|
35
|
+
this._isInCWD = fs_1.default.existsSync(path_1.default.join(process.cwd(), 'package.json')) &&
|
|
36
|
+
((_a = require(path_1.default.join(process.cwd(), 'package.json'))) === null || _a === void 0 ? void 0 : _a.name) === this._moduleName;
|
|
82
37
|
this._installed = this.isInstalled();
|
|
83
38
|
}
|
|
84
39
|
/**
|
|
85
40
|
* Pluggable factory.
|
|
86
|
-
* @param {Object} options
|
|
87
41
|
*/
|
|
88
|
-
static create(
|
|
89
|
-
return new Pluggable(
|
|
90
|
-
}
|
|
91
|
-
get moduleName() {
|
|
92
|
-
return this._moduleName;
|
|
93
|
-
}
|
|
94
|
-
get version() {
|
|
95
|
-
return this._version;
|
|
96
|
-
}
|
|
97
|
-
get workspaceRoot() {
|
|
98
|
-
return this._workspaceRoot;
|
|
99
|
-
}
|
|
100
|
-
get installed() {
|
|
101
|
-
return this._installed;
|
|
42
|
+
static create(extension) {
|
|
43
|
+
return new Pluggable(extension);
|
|
102
44
|
}
|
|
103
|
-
|
|
104
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Returns the exported info.
|
|
47
|
+
*/
|
|
48
|
+
get module() {
|
|
49
|
+
var _a;
|
|
50
|
+
const module = require(this.modulePath);
|
|
51
|
+
const cli = (_a = module.default) !== null && _a !== void 0 ? _a : module; // Difference between `module.exports` and `export default`.
|
|
52
|
+
return cli;
|
|
105
53
|
}
|
|
106
54
|
get modulePath() {
|
|
107
55
|
if (!this._modulePath) {
|
|
@@ -120,11 +68,20 @@ class Pluggable {
|
|
|
120
68
|
}
|
|
121
69
|
return this._modulePath;
|
|
122
70
|
}
|
|
123
|
-
get
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return
|
|
71
|
+
get moduleName() {
|
|
72
|
+
return this._moduleName;
|
|
73
|
+
}
|
|
74
|
+
get version() {
|
|
75
|
+
return this._version;
|
|
76
|
+
}
|
|
77
|
+
get workspaceRoot() {
|
|
78
|
+
return this._workspaceRoot;
|
|
79
|
+
}
|
|
80
|
+
get installed() {
|
|
81
|
+
return this._installed;
|
|
82
|
+
}
|
|
83
|
+
get isInWorkspace() {
|
|
84
|
+
return this._isInWorkspace;
|
|
128
85
|
}
|
|
129
86
|
/**
|
|
130
87
|
* Checks if workspace is defined.
|
|
@@ -166,7 +123,7 @@ class Pluggable {
|
|
|
166
123
|
const command = isYarn ? 'yarn' : 'npm';
|
|
167
124
|
const args = isYarn ? ['global', 'add'] : ['install', '-g'];
|
|
168
125
|
args.push(`${moduleName}${version ? `@${version}` : ''}`);
|
|
169
|
-
return runCommand(command, args, options);
|
|
126
|
+
return (0, utils_1.runCommand)(command, args, options);
|
|
170
127
|
}
|
|
171
128
|
/**
|
|
172
129
|
* Uninstall CLI extension.
|
|
@@ -181,34 +138,33 @@ class Pluggable {
|
|
|
181
138
|
const command = isYarn ? 'yarn' : 'npm';
|
|
182
139
|
const args = isYarn ? ['global', 'remove'] : ['uninstall', '-g'];
|
|
183
140
|
args.push(`${moduleName}`);
|
|
184
|
-
return runCommand(command, args, options);
|
|
141
|
+
return (0, utils_1.runCommand)(command, args, options);
|
|
185
142
|
}
|
|
186
143
|
/**
|
|
187
144
|
* Init extension in a scope of main CLI.
|
|
188
|
-
* @param {Object} state
|
|
189
145
|
*/
|
|
190
146
|
async init(state) {
|
|
191
|
-
|
|
147
|
+
var _a, _b;
|
|
148
|
+
return (_b = (_a = this.module).init) === null || _b === void 0 ? void 0 : _b.call(_a, state);
|
|
192
149
|
}
|
|
193
150
|
/**
|
|
194
151
|
* Destroy extension in a scope of main CLI.
|
|
195
|
-
* @param {Object} state
|
|
196
152
|
*/
|
|
197
153
|
async destroy(state) {
|
|
198
|
-
|
|
154
|
+
var _a, _b;
|
|
155
|
+
return (_b = (_a = this.module).destroy) === null || _b === void 0 ? void 0 : _b.call(_a, state);
|
|
199
156
|
}
|
|
200
157
|
/**
|
|
201
158
|
* Runs command of an CLI extension.
|
|
202
|
-
* @param {Object} state
|
|
203
|
-
* @param {Object} argv
|
|
204
159
|
*/
|
|
205
160
|
async run(state, argv) {
|
|
206
161
|
const { installed, moduleName, version } = this;
|
|
207
162
|
if (!installed) {
|
|
208
163
|
const spinner = `Installing ${moduleName}${version ? `@${version}` : ''}`;
|
|
209
164
|
try {
|
|
210
|
-
await this.installModule(
|
|
211
|
-
|
|
165
|
+
await this.installModule(undefined, { spinner });
|
|
166
|
+
const extensionManager = new manager_1.ExtensionManager();
|
|
167
|
+
await extensionManager.add(moduleName, this.getInfo());
|
|
212
168
|
const { init, destroy } = this.module;
|
|
213
169
|
if (init || destroy) {
|
|
214
170
|
console.log(`${moduleName} was successfully installed. Please run your command again.`);
|
|
@@ -228,7 +184,7 @@ class Pluggable {
|
|
|
228
184
|
}
|
|
229
185
|
getDockerCompose() {
|
|
230
186
|
this._cleanCache();
|
|
231
|
-
return this.module.
|
|
187
|
+
return this.module.docker;
|
|
232
188
|
}
|
|
233
189
|
_cleanCache() {
|
|
234
190
|
delete require.cache[require.resolve(this.modulePath)];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluggable.js","sourceRoot":"","sources":["../../../src/extensions/pluggable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asynchronosly run the shell command.
|
|
3
|
+
*/
|
|
4
|
+
export declare const runCommand: (command: string, args: string[], options: any) => Promise<unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Finds root dir of a workspace.
|
|
7
|
+
*/
|
|
8
|
+
export declare const getWorkspaceRoot: (from: string) => string;
|
|
9
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/extensions/utils.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,eAAO,MAAM,UAAU,YAAmB,MAAM,QAAQ,MAAM,EAAE,WAAW,GAAG,qBAiB7E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,WAY5C,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.getWorkspaceRoot = exports.runCommand = void 0;
|
|
10
|
+
/* eslint @typescript-eslint/no-var-requires: 0 */
|
|
11
|
+
/* eslint global-require: 0 */
|
|
12
|
+
const child_process_1 = require("child_process");
|
|
13
|
+
const find_root_1 = __importDefault(require("find-root"));
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const ora_1 = __importDefault(require("ora"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const cli_core_1 = require("@dxos/cli-core");
|
|
18
|
+
/**
|
|
19
|
+
* Asynchronosly run the shell command.
|
|
20
|
+
*/
|
|
21
|
+
const runCommand = async (command, args, options) => {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
const { spinner: spinnerText } = options;
|
|
24
|
+
const spinner = (0, ora_1.default)(spinnerText);
|
|
25
|
+
spinner.start();
|
|
26
|
+
(0, child_process_1.exec)(`${(0, cli_core_1.prepareExec)(command)} ${args.join(' ')}`, (err) => {
|
|
27
|
+
if (err) {
|
|
28
|
+
spinner.fail();
|
|
29
|
+
reject(err);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
spinner.succeed();
|
|
33
|
+
spinner.clear();
|
|
34
|
+
resolve(true);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
exports.runCommand = runCommand;
|
|
40
|
+
/**
|
|
41
|
+
* Finds root dir of a workspace.
|
|
42
|
+
*/
|
|
43
|
+
const getWorkspaceRoot = (from) => {
|
|
44
|
+
try {
|
|
45
|
+
return (0, find_root_1.default)(from, dir => {
|
|
46
|
+
const pkgPath = path_1.default.join(dir, 'package.json');
|
|
47
|
+
if (fs_1.default.existsSync(pkgPath)) {
|
|
48
|
+
const { workspaces } = require(pkgPath);
|
|
49
|
+
return workspaces && (Array.isArray(workspaces) || workspaces.packages);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return '';
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.getWorkspaceRoot = getWorkspaceRoot;
|
|
58
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/extensions/utils.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAAkD;AAClD,8BAA8B;AAE9B,iDAAqC;AACrC,0DAAiC;AACjC,4CAAoB;AACpB,8CAAsB;AACtB,gDAAwB;AAExB,6CAA6C;AAE7C;;GAEG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,IAAc,EAAE,OAAY,EAAE,EAAE;IAChF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACzC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,WAAW,CAAC,CAAC;QACjC,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAA,oBAAI,EAAC,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YACxD,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB;AAEF;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/C,IAAI;QACF,OAAO,IAAA,mBAAQ,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAC1B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAC/C,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;aACzE;QACH,CAAC,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC;AAZW,QAAA,gBAAgB,oBAY3B"}
|
package/dist/src/main.js
CHANGED
|
@@ -7,91 +7,71 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const fs_1 = require("fs");
|
|
10
|
-
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
11
10
|
const lodash_uniqby_1 = __importDefault(require("lodash.uniqby"));
|
|
12
11
|
const path_1 = __importDefault(require("path"));
|
|
13
|
-
const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
|
14
12
|
const cli_core_1 = require("@dxos/cli-core");
|
|
15
13
|
const extensions_1 = require("./extensions");
|
|
16
|
-
const
|
|
17
|
-
const extension_1 = require("./modules/extension");
|
|
18
|
-
const halo_1 = require("./modules/halo");
|
|
19
|
-
const installation_1 = require("./modules/installation");
|
|
20
|
-
const pluggable_1 = require("./modules/pluggable");
|
|
21
|
-
const profile_1 = require("./modules/profile");
|
|
22
|
-
const services_1 = require("./modules/services");
|
|
23
|
-
const storage_1 = require("./modules/storage");
|
|
24
|
-
const KNOWN_EXTENSIONS = (0, fs_1.readFileSync)(path_1.default.join(__dirname, '../known-extensions.yml')).toString();
|
|
25
|
-
const { logError } = (0, cli_core_1.getLoggers)();
|
|
26
|
-
const knownExtensions = js_yaml_1.default.load(KNOWN_EXTENSIONS);
|
|
27
|
-
const pkg = read_pkg_up_1.default.sync({ cwd: __dirname });
|
|
14
|
+
const modules_1 = require("./modules");
|
|
28
15
|
const CLI_BASE_COMMAND = 'dx';
|
|
29
|
-
const
|
|
16
|
+
const { logError } = (0, cli_core_1.getLoggers)();
|
|
30
17
|
const CLI_CONFIG = {
|
|
31
18
|
prompt: CLI_BASE_COMMAND,
|
|
32
19
|
baseCommand: '',
|
|
33
20
|
enableInteractive: true
|
|
34
21
|
};
|
|
35
|
-
const
|
|
36
|
-
|
|
22
|
+
const modules = [
|
|
23
|
+
modules_1.InfoModule,
|
|
24
|
+
modules_1.ProfileModule,
|
|
25
|
+
modules_1.DevtoolsModule,
|
|
26
|
+
modules_1.ServicesModule,
|
|
27
|
+
modules_1.StorageModule,
|
|
28
|
+
modules_1.HaloModule,
|
|
29
|
+
modules_1.UpgradeModule,
|
|
30
|
+
modules_1.UninstallModule,
|
|
31
|
+
modules_1.ExtensionModule
|
|
32
|
+
];
|
|
33
|
+
const pluggableModules = [];
|
|
37
34
|
const init = async (state) => {
|
|
38
|
-
|
|
35
|
+
// Generated by package script from Yargs definitions.
|
|
36
|
+
const knownExtensions = (0, cli_core_1.loadYml)(path_1.default.join(__dirname, '../known-extensions.yml'));
|
|
39
37
|
// If developing new extension - read info from cwd.
|
|
40
|
-
const localExtensionFile = path_1.default.join(process.cwd(),
|
|
38
|
+
const localExtensionFile = path_1.default.join(process.cwd(), cli_core_1.EXTENSION_CONFIG_FILENAME);
|
|
41
39
|
if ((0, fs_1.existsSync)(localExtensionFile)) {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
moduleName: `@${name}`,
|
|
47
|
-
describe: description,
|
|
48
|
-
command,
|
|
49
|
-
initRequired,
|
|
50
|
-
destroyRequired
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
const pluggableModules = (0, lodash_uniqby_1.default)(knownExtensions.concat(installedExtensions), 'moduleName');
|
|
54
|
-
for await (const extension of pluggableModules) {
|
|
55
|
-
const version = extension.version || (pkg === null || pkg === void 0 ? void 0 : pkg.package.version);
|
|
56
|
-
const pluggableModule = new pluggable_1.PluggableModule({ ...extension, version }, state);
|
|
57
|
-
if (extension.initRequired) {
|
|
58
|
-
await pluggableModule.init();
|
|
59
|
-
}
|
|
60
|
-
// eslint-disable-next-line
|
|
61
|
-
extensions.push(...pluggableModule.export.call(pluggableModule));
|
|
62
|
-
if (extension.destroyRequired) {
|
|
63
|
-
destroyers.push(pluggableModule.destroy.bind(pluggableModule));
|
|
40
|
+
const devExtensionInfo = (0, cli_core_1.loadYml)(localExtensionFile);
|
|
41
|
+
// TODO(egorgripasov): Once proper dx.yml in place check if DXNS type == 'extension' instead.
|
|
42
|
+
if (devExtensionInfo.moduleName) {
|
|
43
|
+
knownExtensions.push(devExtensionInfo);
|
|
64
44
|
}
|
|
65
45
|
}
|
|
46
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
47
|
+
const installedExtensions = await extensionManager.list();
|
|
48
|
+
const pluggableExtensions = (0, lodash_uniqby_1.default)(knownExtensions.concat(installedExtensions), 'moduleName');
|
|
49
|
+
for await (const pluggableExtension of pluggableExtensions) {
|
|
50
|
+
const pluggableModule = new extensions_1.PluggableModule(pluggableExtension, state);
|
|
51
|
+
await pluggableModule.init();
|
|
52
|
+
pluggableModules.push(pluggableModule);
|
|
53
|
+
const exportedModules = pluggableModule.export();
|
|
54
|
+
modules.push(...exportedModules);
|
|
55
|
+
}
|
|
66
56
|
};
|
|
67
57
|
const destroy = async () => {
|
|
68
|
-
for await (const
|
|
69
|
-
await
|
|
58
|
+
for await (const pluggableModule of pluggableModules) {
|
|
59
|
+
await pluggableModule.destroy();
|
|
70
60
|
}
|
|
71
61
|
};
|
|
72
|
-
const modules = [
|
|
73
|
-
profile_1.ProfileModule,
|
|
74
|
-
devtools_1.DevToolsModule,
|
|
75
|
-
services_1.ServicesModule,
|
|
76
|
-
storage_1.StorageModule,
|
|
77
|
-
halo_1.HaloModule,
|
|
78
|
-
installation_1.UpgradeModule,
|
|
79
|
-
installation_1.UninstallModule,
|
|
80
|
-
extension_1.ExtensionModule
|
|
81
|
-
];
|
|
82
|
-
module.exports = (0, cli_core_1.createCLI)({
|
|
83
|
-
options: CLI_CONFIG,
|
|
84
|
-
dir: __dirname,
|
|
85
|
-
main: !module.parent,
|
|
86
|
-
init,
|
|
87
|
-
destroy,
|
|
88
|
-
getModules: async () => [...modules, ...extensions],
|
|
89
|
-
info: {}
|
|
90
|
-
});
|
|
91
62
|
const handleError = (err) => {
|
|
92
63
|
logError(err);
|
|
93
64
|
process.exit(1);
|
|
94
65
|
};
|
|
95
66
|
process.on('uncaughtException', handleError);
|
|
96
67
|
process.on('unhandledRejection', handleError);
|
|
68
|
+
module.exports = (0, cli_core_1.createCLI)({
|
|
69
|
+
dir: __dirname,
|
|
70
|
+
main: !module.parent,
|
|
71
|
+
info: (0, cli_core_1.loadYml)(path_1.default.join(__dirname, `../${cli_core_1.EXTENSION_CONFIG_FILENAME}`)),
|
|
72
|
+
init,
|
|
73
|
+
destroy,
|
|
74
|
+
getModules: async () => modules,
|
|
75
|
+
options: CLI_CONFIG
|
|
76
|
+
});
|
|
97
77
|
//# sourceMappingURL=main.js.map
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../src/modules/devtools.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../../src/modules/devtools.js"],"names":[],"mappings":"AAuBO;;IAHM,MAAM,CA6DjB"}
|
|
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
6
6
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.DevtoolsModule = void 0;
|
|
10
10
|
const assert_1 = __importDefault(require("assert"));
|
|
11
11
|
const download_1 = __importDefault(require("download"));
|
|
12
12
|
const octokit_1 = require("octokit");
|
|
@@ -21,9 +21,10 @@ const CONFIG = { timeout: 30000, extract: false, strip: 1, mode: '755' };
|
|
|
21
21
|
* Cert CLI module.
|
|
22
22
|
* @returns {object}
|
|
23
23
|
*/
|
|
24
|
-
|
|
24
|
+
// TODO(burdon): Move to debug CLI?
|
|
25
|
+
const DevtoolsModule = ({ config }) => ({
|
|
25
26
|
command: ['devtools'],
|
|
26
|
-
describe: '
|
|
27
|
+
describe: 'Browser development tools.',
|
|
27
28
|
builder: yargs => yargs
|
|
28
29
|
.command({
|
|
29
30
|
command: ['collect'],
|
|
@@ -61,5 +62,5 @@ const DevToolsModule = ({ config }) => ({
|
|
|
61
62
|
})
|
|
62
63
|
})
|
|
63
64
|
});
|
|
64
|
-
exports.
|
|
65
|
+
exports.DevtoolsModule = DevtoolsModule;
|
|
65
66
|
//# sourceMappingURL=devtools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../../src/modules/devtools.js"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,wDAAgC;AAChC,qCAAkC;AAClC,gDAAwB;AACxB,wDAA+B;AAE/B,6CAA8C;AAE9C,MAAM,KAAK,GAAG,MAAM,CAAC;AACrB,MAAM,IAAI,GAAG,WAAW,CAAC;AACzB,MAAM,aAAa,GAAG,UAAU,CAAC;AAEjC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAEzE;;;GAGG;
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../../src/modules/devtools.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../src/modules/extension.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../src/modules/extension.js"],"names":[],"mappings":"AAmBO;;IAFM,MAAM,CA6LjB"}
|
|
@@ -8,12 +8,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.ExtensionModule = void 0;
|
|
10
10
|
const assert_1 = __importDefault(require("assert"));
|
|
11
|
-
const lodash_get_1 = __importDefault(require("lodash.get"));
|
|
12
11
|
const semver_1 = require("semver");
|
|
13
12
|
const cli_core_1 = require("@dxos/cli-core");
|
|
14
13
|
const debug_1 = require("@dxos/debug");
|
|
15
14
|
const extensions_1 = require("../extensions");
|
|
16
|
-
|
|
15
|
+
// TODO(burdon): Move to config.
|
|
17
16
|
const DEFAULT_TEMPLATE = 'https://github.com/dxos/templates/tree/main/cli-template';
|
|
18
17
|
/**
|
|
19
18
|
* Extension CLI module.
|
|
@@ -30,12 +29,13 @@ const ExtensionModule = ({ getReadlineInterface }) => ({
|
|
|
30
29
|
builder: yargs => yargs,
|
|
31
30
|
handler: (0, cli_core_1.asyncHandler)(async (argv) => {
|
|
32
31
|
const { json } = argv;
|
|
33
|
-
|
|
34
|
-
extensions =
|
|
32
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
33
|
+
let extensions = await extensionManager.list();
|
|
34
|
+
extensions = extensions.map(({ moduleName, version, description, modules }) => ({
|
|
35
35
|
extension: moduleName,
|
|
36
|
-
command,
|
|
36
|
+
modules: modules.map(module => module.command),
|
|
37
37
|
version,
|
|
38
|
-
description
|
|
38
|
+
description
|
|
39
39
|
}));
|
|
40
40
|
(0, cli_core_1.print)(extensions, { json });
|
|
41
41
|
})
|
|
@@ -59,16 +59,16 @@ const ExtensionModule = ({ getReadlineInterface }) => ({
|
|
|
59
59
|
handler: (0, cli_core_1.asyncHandler)(async (argv) => {
|
|
60
60
|
const { module: moduleName, version, npmClient } = argv;
|
|
61
61
|
(0, assert_1.default)(moduleName, 'Invalid extension.');
|
|
62
|
-
const pluggable = new
|
|
62
|
+
const pluggable = new extensions_1.Pluggable({ moduleName, version });
|
|
63
63
|
if (pluggable.isInWorkspace) {
|
|
64
64
|
(0, debug_1.log)(`Local version of "${moduleName}" from workspace is used, aborting.`);
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
if (pluggable.installed) {
|
|
68
68
|
const info = pluggable.getInfo();
|
|
69
|
-
const installedVersion =
|
|
69
|
+
const installedVersion = info.version;
|
|
70
70
|
let action = 'upgrade';
|
|
71
|
-
// TODO(egorgripasov): Read verison number from
|
|
71
|
+
// TODO(egorgripasov): Read verison number from DXNS.
|
|
72
72
|
if (version && (0, semver_1.valid)(version) && installedVersion) {
|
|
73
73
|
const comp = (0, semver_1.compare)(version, installedVersion);
|
|
74
74
|
switch (comp) {
|
|
@@ -94,14 +94,16 @@ const ExtensionModule = ({ getReadlineInterface }) => ({
|
|
|
94
94
|
rl.close();
|
|
95
95
|
if (!(/^y/i.test(wishToUpgrade))) {
|
|
96
96
|
(0, debug_1.log)('Abotring.');
|
|
97
|
-
|
|
97
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
98
|
+
await extensionManager.add(moduleName, info);
|
|
98
99
|
return;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
const spinner = `Installing ${moduleName}${version ? `@${version}` : ''}`;
|
|
102
103
|
await pluggable.installModule(npmClient, { spinner });
|
|
103
104
|
const updatedInfo = pluggable.getInfo();
|
|
104
|
-
|
|
105
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
106
|
+
await extensionManager.add(moduleName, updatedInfo);
|
|
105
107
|
})
|
|
106
108
|
})
|
|
107
109
|
// Uninstall.
|
|
@@ -114,20 +116,20 @@ const ExtensionModule = ({ getReadlineInterface }) => ({
|
|
|
114
116
|
handler: (0, cli_core_1.asyncHandler)(async (argv) => {
|
|
115
117
|
const { module: moduleName, npmClient } = argv;
|
|
116
118
|
(0, assert_1.default)(moduleName, 'Invalid extension.');
|
|
117
|
-
const pluggable = new
|
|
119
|
+
const pluggable = new extensions_1.Pluggable({ moduleName });
|
|
118
120
|
if (pluggable.isInWorkspace) {
|
|
119
121
|
(0, debug_1.log)(`Local version of "${moduleName}" from workspace is used, aborting.`);
|
|
120
122
|
return;
|
|
121
123
|
}
|
|
124
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
122
125
|
if (!pluggable.installed) {
|
|
123
|
-
await
|
|
126
|
+
await extensionManager.remove(moduleName);
|
|
124
127
|
return;
|
|
125
128
|
}
|
|
126
129
|
const info = pluggable.getInfo();
|
|
127
|
-
const installedVersion = (0, lodash_get_1.default)(info, 'package.version');
|
|
128
130
|
const rl = getReadlineInterface();
|
|
129
131
|
const wishToProceed = await new Promise(resolve => {
|
|
130
|
-
rl.question(`Found Extension ${moduleName}${
|
|
132
|
+
rl.question(`Found Extension ${moduleName}${info.version ? `@${info.version}` : ''} installed, do you wish to remove it? (Yes/No): `, answer => {
|
|
131
133
|
resolve(answer);
|
|
132
134
|
});
|
|
133
135
|
});
|
|
@@ -138,7 +140,7 @@ const ExtensionModule = ({ getReadlineInterface }) => ({
|
|
|
138
140
|
}
|
|
139
141
|
const spinner = `Uninstalling ${moduleName}`;
|
|
140
142
|
await pluggable.uninstallModule(npmClient, { spinner });
|
|
141
|
-
await
|
|
143
|
+
await extensionManager.remove(moduleName);
|
|
142
144
|
})
|
|
143
145
|
})
|
|
144
146
|
// Create an app from the template.
|