@dxos/cli 2.18.5-dev.5b370dc9 → 2.19.1-dev.2b9c1a6a
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 +14 -0
- package/dist/known-extensions.yml +47 -69
- 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 +20 -0
- package/dist/src/extensions/module.d.ts.map +1 -0
- package/dist/src/extensions/module.js +61 -0
- package/dist/src/extensions/module.js.map +1 -0
- package/dist/src/extensions/pluggable.d.ts +68 -0
- package/dist/src/extensions/pluggable.d.ts.map +1 -0
- package/dist/src/{pluggable.js → extensions/pluggable.js} +49 -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 +51 -62
- package/dist/src/main.js.map +1 -1
- package/dist/src/modules/device/commands/index.d.ts +4 -0
- package/dist/src/modules/device/commands/index.d.ts.map +1 -0
- package/dist/src/modules/device/commands/index.js +23 -0
- package/dist/src/modules/device/commands/index.js.map +1 -0
- package/dist/src/modules/device/commands/info.d.ts +7 -0
- package/dist/src/modules/device/commands/info.d.ts.map +1 -0
- package/dist/src/modules/device/commands/info.js +24 -0
- package/dist/src/modules/device/commands/info.js.map +1 -0
- package/dist/src/modules/device/commands/invite.d.ts +9 -0
- package/dist/src/modules/device/commands/invite.d.ts.map +1 -0
- package/dist/src/modules/device/commands/invite.js +25 -0
- package/dist/src/modules/device/commands/invite.js.map +1 -0
- package/dist/src/modules/device/commands/join.d.ts +23 -0
- package/dist/src/modules/device/commands/join.d.ts.map +1 -0
- package/dist/src/modules/device/commands/join.js +46 -0
- package/dist/src/modules/device/commands/join.js.map +1 -0
- package/dist/src/modules/device/device.d.ts +10 -0
- package/dist/src/modules/device/device.d.ts.map +1 -0
- package/dist/src/modules/device/device.js +40 -0
- package/dist/src/modules/device/device.js.map +1 -0
- package/dist/src/modules/device/device.test.d.ts +2 -0
- package/dist/src/modules/device/device.test.d.ts.map +1 -0
- package/dist/src/modules/device/device.test.js +79 -0
- package/dist/src/modules/device/device.test.js.map +1 -0
- package/dist/src/modules/device/index.d.ts +2 -0
- package/dist/src/modules/device/index.d.ts.map +1 -0
- package/dist/src/modules/device/index.js +21 -0
- package/dist/src/modules/device/index.js.map +1 -0
- 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 +10 -0
- package/dist/src/modules/index.d.ts.map +1 -0
- package/dist/src/modules/index.js +29 -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 +23 -15
- 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
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 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.joinCommand = void 0;
|
|
10
|
+
const assert_1 = __importDefault(require("assert"));
|
|
11
|
+
const cli_core_1 = require("@dxos/cli-core");
|
|
12
|
+
const echo_db_1 = require("@dxos/echo-db");
|
|
13
|
+
const options = (yargs) => {
|
|
14
|
+
return yargs
|
|
15
|
+
.option('interactive', { hidden: true, default: true }) // override the default.
|
|
16
|
+
.option('name', { type: 'string', required: true })
|
|
17
|
+
.option('code', { type: 'string', required: true });
|
|
18
|
+
};
|
|
19
|
+
const joinCommand = ({ storage, profilePath, cliState, getClient }, secretProvider) => ({
|
|
20
|
+
command: ['join'],
|
|
21
|
+
describe: 'Join device invitation.',
|
|
22
|
+
builder: (yargs) => options(yargs),
|
|
23
|
+
handler: (0, cli_core_1.asyncHandler)(async (argv) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const { code, name } = argv;
|
|
26
|
+
if (cliState.interactive) {
|
|
27
|
+
throw new Error('Can not join from interactive mode.');
|
|
28
|
+
}
|
|
29
|
+
const persistent = (_a = storage === null || storage === void 0 ? void 0 : storage.persistent) !== null && _a !== void 0 ? _a : cli_core_1.CLI_DEFAULT_PERSISTENT;
|
|
30
|
+
if (persistent && !name) {
|
|
31
|
+
throw new Error('Profile name is not provided.');
|
|
32
|
+
}
|
|
33
|
+
if (persistent) {
|
|
34
|
+
(0, assert_1.default)(profilePath, 'Missing profile path.');
|
|
35
|
+
(0, cli_core_1.resetStorageForClientProfile)(storage === null || storage === void 0 ? void 0 : storage.path, name);
|
|
36
|
+
}
|
|
37
|
+
const client = await getClient(name);
|
|
38
|
+
const invitationDescriptor = echo_db_1.InvitationDescriptor.decode(code);
|
|
39
|
+
const invitation = await client.halo.acceptInvitation(invitationDescriptor);
|
|
40
|
+
const secret = await secretProvider();
|
|
41
|
+
invitation.authenticate(secret);
|
|
42
|
+
await invitation.wait();
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
exports.joinCommand = joinCommand;
|
|
46
|
+
//# sourceMappingURL=join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../../src/modules/device/commands/join.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAG5B,6CAA+G;AAE/G,2CAAqD;AAiBrD,MAAM,OAAO,GAAG,CAAC,KAA8B,EAA2B,EAAE;IAC1E,OAAO,KAAK;SACT,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,wBAAwB;SAC/E,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAClD,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAA4B,EAAE,cAAwB,EAAE,EAAE,CAAC,CAAC;IACjI,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,CAAC,KAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,OAAO,EAAE,IAAA,uBAAY,EAAC,KAAK,EAAE,IAAkC,EAAE,EAAE;;QACjE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,QAAQ,CAAC,WAAW,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QAED,MAAM,UAAU,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,iCAAsB,CAAC;QACjE,IAAI,UAAU,IAAI,CAAC,IAAI,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,UAAU,EAAE;YACd,IAAA,gBAAM,EAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;YAC7C,IAAA,uCAA4B,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACnD;QAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,oBAAoB,GAAG,8BAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,CAAC;CACH,CAAC,CAAC;AA9BU,QAAA,WAAW,eA8BrB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Argv } from 'yargs';
|
|
2
|
+
import { CoreOptions, CoreState } from '@dxos/cli-core';
|
|
3
|
+
export declare type DeviceOptions = CoreOptions;
|
|
4
|
+
export declare const DeviceModule: ({ config, profilePath, getReadlineInterface, cliState }: CoreState) => {
|
|
5
|
+
command: string[];
|
|
6
|
+
describe: string;
|
|
7
|
+
handler: any;
|
|
8
|
+
builder: (yargs: Argv<CoreOptions>) => Argv<CoreOptions>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../../src/modules/device/device.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAKtE,oBAAY,aAAa,GAAG,WAAW,CAAA;AAMvC,eAAO,MAAM,YAAY,4DAA6D,SAAS;;;;qBAwB1E,KAAK,WAAW,CAAC;CAKrC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DeviceModule = void 0;
|
|
7
|
+
const cli_core_1 = require("@dxos/cli-core");
|
|
8
|
+
const debug_1 = require("@dxos/debug");
|
|
9
|
+
const commands_1 = require("./commands");
|
|
10
|
+
const deviceOptions = (yargs) => {
|
|
11
|
+
return yargs;
|
|
12
|
+
};
|
|
13
|
+
const DeviceModule = ({ config, profilePath, getReadlineInterface, cliState }) => {
|
|
14
|
+
const secretProvider = async () => {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
const rl = getReadlineInterface();
|
|
17
|
+
rl.question('Passcode: ', (pin) => {
|
|
18
|
+
resolve(pin);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
const onPinGenerated = (pin) => {
|
|
23
|
+
(0, debug_1.log)('Pin: ', pin);
|
|
24
|
+
};
|
|
25
|
+
const getClient = async (name) => {
|
|
26
|
+
return (0, cli_core_1.createClient)(config, [], { name, initProfile: false });
|
|
27
|
+
};
|
|
28
|
+
const storage = config.get('runtime.client.storage');
|
|
29
|
+
return {
|
|
30
|
+
command: ['device'],
|
|
31
|
+
describe: 'Device management.',
|
|
32
|
+
handler: undefined,
|
|
33
|
+
builder: (yargs) => deviceOptions(yargs)
|
|
34
|
+
.command((0, commands_1.joinCommand)({ storage, profilePath, cliState, getClient }, secretProvider))
|
|
35
|
+
.command((0, commands_1.infoCommand)({ getClient }))
|
|
36
|
+
.command((0, commands_1.inviteCommand)({ getClient }, onPinGenerated))
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
exports.DeviceModule = DeviceModule;
|
|
40
|
+
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../../../src/modules/device/device.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIF,6CAAsE;AACtE,uCAAkC;AAElC,yCAAqE;AAIrE,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAuB,EAAE;IACtE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,EAAE,QAAQ,EAAa,EAAE,EAAE;IACjG,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,EAAE,GAAG,oBAAqB,EAAE,CAAC;YACnC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAW,EAAE,EAAE;gBACxC,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;QACrC,IAAA,WAAG,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE;QACxC,OAAO,IAAA,uBAAY,EAAC,MAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,MAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtD,OAAO;QACL,OAAO,EAAE,CAAC,QAAQ,CAAC;QACnB,QAAQ,EAAE,oBAAoB;QAC9B,OAAO,EAAE,SAAgB;QACzB,OAAO,EAAE,CAAC,KAAwB,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;aACxD,OAAO,CAAC,IAAA,sBAAW,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;aACnF,OAAO,CAAC,IAAA,sBAAW,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;aACnC,OAAO,CAAC,IAAA,wBAAa,EAAC,EAAE,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;KACzD,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,YAAY,gBA6BvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.test.d.ts","sourceRoot":"","sources":["../../../../src/modules/device/device.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
const expect_1 = __importDefault(require("expect"));
|
|
10
|
+
const wait_for_expect_1 = __importDefault(require("wait-for-expect"));
|
|
11
|
+
const async_1 = require("@dxos/async");
|
|
12
|
+
const client_1 = require("@dxos/client");
|
|
13
|
+
const crypto_1 = require("@dxos/crypto");
|
|
14
|
+
const signal_1 = require("@dxos/signal");
|
|
15
|
+
const commands_1 = require("./commands");
|
|
16
|
+
const DEFAULT_ARGS = { $0: '', _: [], return: true };
|
|
17
|
+
const NEW_PROFILE_NAME = 'test';
|
|
18
|
+
class PinHelper {
|
|
19
|
+
setPin(value) {
|
|
20
|
+
this._pin = value;
|
|
21
|
+
}
|
|
22
|
+
async getPin() {
|
|
23
|
+
await (0, async_1.waitForCondition)(() => !!this._pin);
|
|
24
|
+
return this._pin;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
describe('cli-party: Device', () => {
|
|
28
|
+
let signalBroker;
|
|
29
|
+
let alice;
|
|
30
|
+
let bob;
|
|
31
|
+
let aliceGetClient;
|
|
32
|
+
let bobGetClient;
|
|
33
|
+
before(async () => {
|
|
34
|
+
signalBroker = await (0, signal_1.createTestBroker)(4002);
|
|
35
|
+
});
|
|
36
|
+
beforeEach(async () => {
|
|
37
|
+
[alice, bob] = await Promise.all(['Alice', 'Bob'].map(async (username) => {
|
|
38
|
+
const client = new client_1.Client({ version: 1, runtime: { services: { signal: { server: 'ws://localhost:4002' } } } });
|
|
39
|
+
await client.initialize();
|
|
40
|
+
if (username === 'Alice') {
|
|
41
|
+
// Bob will be joining Alice's device invitation.
|
|
42
|
+
await client.halo.createProfile({ ...(0, crypto_1.createKeyPair)(), username });
|
|
43
|
+
}
|
|
44
|
+
return client;
|
|
45
|
+
}));
|
|
46
|
+
aliceGetClient = async () => alice;
|
|
47
|
+
bobGetClient = async () => bob;
|
|
48
|
+
});
|
|
49
|
+
afterEach(async () => {
|
|
50
|
+
await (0, async_1.sleep)(200); // Issue on `protocols` side - require some time before destroying.
|
|
51
|
+
await (alice === null || alice === void 0 ? void 0 : alice.destroy());
|
|
52
|
+
await (bob === null || bob === void 0 ? void 0 : bob.destroy());
|
|
53
|
+
});
|
|
54
|
+
after(async () => {
|
|
55
|
+
await signalBroker.stop();
|
|
56
|
+
});
|
|
57
|
+
it('Alice has identity and Bob has not.', async () => {
|
|
58
|
+
const aliceInfo = await (0, commands_1.infoCommand)({ getClient: aliceGetClient }).handler(DEFAULT_ARGS);
|
|
59
|
+
const bobInfo = await (0, commands_1.infoCommand)({ getClient: bobGetClient }).handler(DEFAULT_ARGS);
|
|
60
|
+
(0, expect_1.default)(aliceInfo.displayName).toEqual('Alice');
|
|
61
|
+
(0, expect_1.default)(bobInfo.displayName).toBeUndefined();
|
|
62
|
+
// expect(bobInfo.identityKey).toBeUndefined();
|
|
63
|
+
// expect(bobInfo.deviceKey).toBeUndefined();
|
|
64
|
+
// PublicKey.assertValidPublicKey(PublicKey.from(aliceInfo.identityKey));
|
|
65
|
+
// PublicKey.assertValidPublicKey(PublicKey.from(aliceInfo.deviceKey));
|
|
66
|
+
});
|
|
67
|
+
it('Can join a device invitation.', async () => {
|
|
68
|
+
const pinHelper = new PinHelper();
|
|
69
|
+
const onInvitationGenerated = async (code) => {
|
|
70
|
+
await (0, commands_1.joinCommand)({ getClient: bobGetClient, cliState: { interactive: false }, storage: { persistent: false } }, pinHelper.getPin.bind(pinHelper)).handler({ ...DEFAULT_ARGS, code, name: `${NEW_PROFILE_NAME}-1` });
|
|
71
|
+
};
|
|
72
|
+
await (0, commands_1.inviteCommand)({ getClient: aliceGetClient }, pinHelper.setPin.bind(pinHelper), onInvitationGenerated).handler(DEFAULT_ARGS);
|
|
73
|
+
await (0, wait_for_expect_1.default)(async () => {
|
|
74
|
+
(0, expect_1.default)((await (0, commands_1.infoCommand)({ getClient: aliceGetClient }).handler(DEFAULT_ARGS)).displayName).toEqual('Alice');
|
|
75
|
+
(0, expect_1.default)((await (0, commands_1.infoCommand)({ getClient: bobGetClient }).handler(DEFAULT_ARGS)).displayName).toEqual('Alice'); // Got replaced because it is now Alice's device.
|
|
76
|
+
}, 3000, 1000);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=device.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.test.js","sourceRoot":"","sources":["../../../../src/modules/device/device.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/device/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2020 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./device"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/device/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,2CAAyB"}
|
|
@@ -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.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/modules/extension.js"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../src/modules/extension.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './device';
|
|
2
|
+
export * from './devtools';
|
|
3
|
+
export * from './extension';
|
|
4
|
+
export * from './halo';
|
|
5
|
+
export * from './info';
|
|
6
|
+
export * from './install';
|
|
7
|
+
export * from './profile';
|
|
8
|
+
export * from './services';
|
|
9
|
+
export * from './storage';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 DXOS.org
|
|
4
|
+
//
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
__exportStar(require("./device"), exports);
|
|
21
|
+
__exportStar(require("./devtools"), exports);
|
|
22
|
+
__exportStar(require("./extension"), exports);
|
|
23
|
+
__exportStar(require("./halo"), exports);
|
|
24
|
+
__exportStar(require("./info"), exports);
|
|
25
|
+
__exportStar(require("./install"), exports);
|
|
26
|
+
__exportStar(require("./profile"), exports);
|
|
27
|
+
__exportStar(require("./services"), exports);
|
|
28
|
+
__exportStar(require("./storage"), exports);
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/modules/info.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU;;;;CAYrB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
//
|
|
3
|
+
// Copyright 2022 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.InfoModule = void 0;
|
|
10
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
11
|
+
const InfoModule = () => ({
|
|
12
|
+
command: ['info'],
|
|
13
|
+
describe: 'CLI basic information.',
|
|
14
|
+
handler: () => {
|
|
15
|
+
yargs_1.default.showVersion(version => {
|
|
16
|
+
console.log({
|
|
17
|
+
root: __dirname,
|
|
18
|
+
version,
|
|
19
|
+
argv: yargs_1.default.argv
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
exports.InfoModule = InfoModule;
|
|
25
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/modules/info.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,kDAA0B;AAEnB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC;IAC/B,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,QAAQ,EAAE,wBAAwB;IAClC,OAAO,EAAE,GAAG,EAAE;QACZ,eAAK,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,IAAI,EAAE,eAAK,CAAC,IAAI;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAZU,QAAA,UAAU,cAYpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/modules/install.js"],"names":[],"mappings":"AAmBO,mCAFM,MAAM,CAgCjB;AAMK;;IAFM,MAAM,CAoDjB"}
|
|
@@ -13,7 +13,6 @@ const read_pkg_up_1 = __importDefault(require("read-pkg-up"));
|
|
|
13
13
|
const cli_core_1 = require("@dxos/cli-core");
|
|
14
14
|
const debug_1 = require("@dxos/debug");
|
|
15
15
|
const extensions_1 = require("../extensions");
|
|
16
|
-
const pluggable_1 = require("../pluggable");
|
|
17
16
|
const pkg = read_pkg_up_1.default.sync({ cwd: path_1.default.join(__dirname, '../') });
|
|
18
17
|
/**
|
|
19
18
|
* Uninstall CLI module.
|
|
@@ -27,19 +26,20 @@ const UninstallModule = () => ({
|
|
|
27
26
|
.option('npm-client'),
|
|
28
27
|
handler: (0, cli_core_1.asyncHandler)(async (argv) => {
|
|
29
28
|
const { npmClient } = argv;
|
|
30
|
-
const
|
|
29
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
30
|
+
const extensions = await extensionManager.list();
|
|
31
31
|
// Remove extensions.
|
|
32
32
|
if (extensions.length) {
|
|
33
33
|
(0, debug_1.log)(`Found extensions: ${extensions.map(({ moduleName }) => moduleName).join(', ')}`);
|
|
34
|
-
const pluggableModules = extensions.map(module => new
|
|
34
|
+
const pluggableModules = extensions.map(module => new extensions_1.Pluggable(module));
|
|
35
35
|
for await (const pluggableModule of pluggableModules) {
|
|
36
36
|
const spinner = `Uninstalling ${pluggableModule.moduleName}`;
|
|
37
37
|
await pluggableModule.uninstallModule(npmClient, { spinner });
|
|
38
|
-
await
|
|
38
|
+
await extensionManager.remove(pluggableModule.moduleName);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
// Remove main cli.
|
|
42
|
-
const cli = new
|
|
42
|
+
const cli = new extensions_1.Pluggable({ moduleName: pkg.package.name });
|
|
43
43
|
const spinner = `Uninstalling ${cli.moduleName}`;
|
|
44
44
|
await cli.uninstallModule(npmClient, { spinner });
|
|
45
45
|
})
|
|
@@ -62,14 +62,15 @@ const UpgradeModule = ({ config }) => ({
|
|
|
62
62
|
const { channel, version, force, npmClient } = argv;
|
|
63
63
|
const newVersion = version || channel;
|
|
64
64
|
(0, assert_1.default)(newVersion, 'Invalid Version.');
|
|
65
|
-
const
|
|
65
|
+
const extensionManager = new extensions_1.ExtensionManager();
|
|
66
|
+
const extensions = await extensionManager.list();
|
|
66
67
|
let modules = [];
|
|
67
68
|
if (force) {
|
|
68
69
|
if (extensions.length) {
|
|
69
70
|
(0, debug_1.log)(`Found extensions: ${extensions.map(({ moduleName }) => moduleName).join(', ')}`);
|
|
70
|
-
modules = extensions.map(({ moduleName }) => new
|
|
71
|
+
modules = extensions.map(({ moduleName }) => new extensions_1.Pluggable({ moduleName, version: newVersion }));
|
|
71
72
|
}
|
|
72
|
-
modules.push(new
|
|
73
|
+
modules.push(new extensions_1.Pluggable({ moduleName: pkg.package.name, version: newVersion }));
|
|
73
74
|
}
|
|
74
75
|
// Remove old modules.
|
|
75
76
|
for await (const module of modules) {
|
|
@@ -80,17 +81,17 @@ const UpgradeModule = ({ config }) => ({
|
|
|
80
81
|
catch (error) {
|
|
81
82
|
(0, debug_1.log)(`Unable to uninstall ${module.moduleName}: ${error.message}`);
|
|
82
83
|
}
|
|
83
|
-
await
|
|
84
|
+
await extensions.remove(module.moduleName);
|
|
84
85
|
}
|
|
85
86
|
// Install new modules.
|
|
86
87
|
for await (const module of modules.reverse()) {
|
|
87
88
|
const spinner = `Installing ${module.moduleName}`;
|
|
88
89
|
await module.installModule(npmClient, { spinner });
|
|
89
90
|
if (module.moduleName !== pkg.package.name) {
|
|
90
|
-
await
|
|
91
|
+
await extensions.add(module.moduleName, module.getInfo());
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
})
|
|
94
95
|
});
|
|
95
96
|
exports.UpgradeModule = UpgradeModule;
|
|
96
|
-
//# sourceMappingURL=
|
|
97
|
+
//# sourceMappingURL=install.js.map
|