@dxos/cli 0.5.1-next.2ad6c47 → 0.5.1-next.39e0ee2

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 (78) hide show
  1. package/bin/handle_invitation +3 -2
  2. package/dist/src/base-command.d.ts +1 -0
  3. package/dist/src/base-command.d.ts.map +1 -1
  4. package/dist/src/base-command.js +13 -5
  5. package/dist/src/base-command.js.map +1 -1
  6. package/dist/src/commands/agent/invitations.d.ts +1 -0
  7. package/dist/src/commands/agent/invitations.d.ts.map +1 -1
  8. package/dist/src/commands/agent/list.d.ts +1 -0
  9. package/dist/src/commands/agent/list.d.ts.map +1 -1
  10. package/dist/src/commands/agent/restart.d.ts +1 -0
  11. package/dist/src/commands/agent/restart.d.ts.map +1 -1
  12. package/dist/src/commands/agent/start.d.ts +1 -0
  13. package/dist/src/commands/agent/start.d.ts.map +1 -1
  14. package/dist/src/commands/{kube/deploy.d.ts → agent/status.d.ts} +4 -6
  15. package/dist/src/commands/agent/status.d.ts.map +1 -0
  16. package/dist/src/commands/agent/status.js +41 -0
  17. package/dist/src/commands/agent/status.js.map +1 -0
  18. package/dist/src/commands/agent/stop.d.ts +1 -0
  19. package/dist/src/commands/agent/stop.d.ts.map +1 -1
  20. package/dist/src/commands/app/create.d.ts +1 -0
  21. package/dist/src/commands/app/create.d.ts.map +1 -1
  22. package/dist/src/commands/app/open.d.ts +1 -0
  23. package/dist/src/commands/app/open.d.ts.map +1 -1
  24. package/dist/src/commands/app/publish.d.ts +1 -0
  25. package/dist/src/commands/app/publish.d.ts.map +1 -1
  26. package/dist/src/commands/debug/diagnostics.d.ts +1 -0
  27. package/dist/src/commands/debug/diagnostics.d.ts.map +1 -1
  28. package/dist/src/commands/debug/generate.d.ts +1 -0
  29. package/dist/src/commands/debug/generate.d.ts.map +1 -1
  30. package/dist/src/commands/debug/status.d.ts +1 -0
  31. package/dist/src/commands/debug/status.d.ts.map +1 -1
  32. package/dist/src/commands/device/list.d.ts +1 -0
  33. package/dist/src/commands/device/list.d.ts.map +1 -1
  34. package/dist/src/commands/device/update.d.ts +1 -0
  35. package/dist/src/commands/device/update.d.ts.map +1 -1
  36. package/dist/src/commands/function/dev.d.ts +1 -0
  37. package/dist/src/commands/function/dev.d.ts.map +1 -1
  38. package/dist/src/commands/halo/create.d.ts +1 -0
  39. package/dist/src/commands/halo/create.d.ts.map +1 -1
  40. package/dist/src/commands/halo/credential/list.d.ts +3 -1
  41. package/dist/src/commands/halo/credential/list.d.ts.map +1 -1
  42. package/dist/src/commands/halo/credential/list.js +21 -1
  43. package/dist/src/commands/halo/credential/list.js.map +1 -1
  44. package/dist/src/commands/halo/join.d.ts +1 -0
  45. package/dist/src/commands/halo/join.d.ts.map +1 -1
  46. package/dist/src/commands/halo/share.d.ts +1 -0
  47. package/dist/src/commands/halo/share.d.ts.map +1 -1
  48. package/dist/src/commands/halo/update.d.ts +1 -0
  49. package/dist/src/commands/halo/update.d.ts.map +1 -1
  50. package/dist/src/commands/reset/index.d.ts +1 -0
  51. package/dist/src/commands/reset/index.d.ts.map +1 -1
  52. package/dist/src/commands/space/close.js +1 -1
  53. package/dist/src/commands/space/close.js.map +1 -1
  54. package/dist/src/commands/space/join.d.ts +1 -0
  55. package/dist/src/commands/space/join.d.ts.map +1 -1
  56. package/dist/src/commands/space/list.d.ts +1 -0
  57. package/dist/src/commands/space/list.d.ts.map +1 -1
  58. package/dist/src/commands/space/members.d.ts +1 -0
  59. package/dist/src/commands/space/members.d.ts.map +1 -1
  60. package/dist/src/commands/space/open.js +1 -1
  61. package/dist/src/commands/space/open.js.map +1 -1
  62. package/dist/src/commands/space/share.d.ts +1 -0
  63. package/dist/src/commands/space/share.d.ts.map +1 -1
  64. package/dist/src/commands/tunnel/index.d.ts +1 -0
  65. package/dist/src/commands/tunnel/index.d.ts.map +1 -1
  66. package/dist/src/util/credentials.d.ts +0 -2
  67. package/dist/src/util/credentials.d.ts.map +1 -1
  68. package/dist/src/util/credentials.js +1 -27
  69. package/dist/src/util/credentials.js.map +1 -1
  70. package/oclif.manifest.json +412 -263
  71. package/package.json +26 -25
  72. package/dist/src/commands/kube/auth.d.ts +0 -9
  73. package/dist/src/commands/kube/auth.d.ts.map +0 -1
  74. package/dist/src/commands/kube/auth.js +0 -77
  75. package/dist/src/commands/kube/auth.js.map +0 -1
  76. package/dist/src/commands/kube/deploy.d.ts.map +0 -1
  77. package/dist/src/commands/kube/deploy.js +0 -52
  78. package/dist/src/commands/kube/deploy.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/cli",
3
- "version": "0.5.1-next.2ad6c47",
3
+ "version": "0.5.1-next.39e0ee2",
4
4
  "description": "DXOS CLI",
5
5
  "keywords": [
6
6
  "dxos",
@@ -36,39 +36,40 @@
36
36
  "ink": "^3.2.0",
37
37
  "ink-table": "~3.0.0",
38
38
  "inquirer": "^8.2.0",
39
- "isomorphic-ws": "^4.0.1",
39
+ "isomorphic-ws": "^5.0.0",
40
40
  "js-yaml": "^4.1.0",
41
- "kubo-rpc-client": "^3.0.2",
41
+ "kubo-rpc-client": "^4.1.1",
42
42
  "lodash.defaultsdeep": "^4.6.1",
43
43
  "node-fetch": "^2.6.0",
44
44
  "pkg-up": "^3.1.0",
45
45
  "platform": "^1.3.6",
46
46
  "react": "^18.2.0",
47
+ "undici": "*",
47
48
  "uuid": "^8.3.2",
48
49
  "ws": "^8.14.2",
49
50
  "wtfnode": "^0.9.1",
50
- "@dxos/async": "0.5.1-next.2ad6c47",
51
- "@dxos/agent": "0.5.1-next.2ad6c47",
52
- "@dxos/bare-template": "0.5.1-next.2ad6c47",
53
- "@dxos/client-protocol": "0.5.1-next.2ad6c47",
54
- "@dxos/client": "0.5.1-next.2ad6c47",
55
- "@dxos/config": "0.5.1-next.2ad6c47",
56
- "@dxos/client-services": "0.5.1-next.2ad6c47",
57
- "@dxos/context": "0.5.1-next.2ad6c47",
58
- "@dxos/functions": "0.5.1-next.2ad6c47",
59
- "@dxos/debug": "0.5.1-next.2ad6c47",
60
- "@dxos/invariant": "0.5.1-next.2ad6c47",
61
- "@dxos/hello-template": "0.5.1-next.2ad6c47",
62
- "@dxos/network-manager": "0.5.1-next.2ad6c47",
63
- "@dxos/log": "0.5.1-next.2ad6c47",
64
- "@dxos/observability": "0.5.1-next.2ad6c47",
65
- "@dxos/process": "0.5.1-next.2ad6c47",
66
- "@dxos/plate": "0.5.1-next.2ad6c47",
67
- "@dxos/protocols": "0.5.1-next.2ad6c47",
68
- "@dxos/random": "0.5.1-next.2ad6c47",
69
- "@dxos/rpc": "0.5.1-next.2ad6c47",
70
- "@dxos/tasks-template": "0.5.1-next.2ad6c47",
71
- "@dxos/util": "0.5.1-next.2ad6c47"
51
+ "@dxos/agent": "0.5.1-next.39e0ee2",
52
+ "@dxos/async": "0.5.1-next.39e0ee2",
53
+ "@dxos/client": "0.5.1-next.39e0ee2",
54
+ "@dxos/bare-template": "0.5.1-next.39e0ee2",
55
+ "@dxos/client-services": "0.5.1-next.39e0ee2",
56
+ "@dxos/config": "0.5.1-next.39e0ee2",
57
+ "@dxos/debug": "0.5.1-next.39e0ee2",
58
+ "@dxos/client-protocol": "0.5.1-next.39e0ee2",
59
+ "@dxos/functions": "0.5.1-next.39e0ee2",
60
+ "@dxos/context": "0.5.1-next.39e0ee2",
61
+ "@dxos/hello-template": "0.5.1-next.39e0ee2",
62
+ "@dxos/log": "0.5.1-next.39e0ee2",
63
+ "@dxos/invariant": "0.5.1-next.39e0ee2",
64
+ "@dxos/network-manager": "0.5.1-next.39e0ee2",
65
+ "@dxos/observability": "0.5.1-next.39e0ee2",
66
+ "@dxos/plate": "0.5.1-next.39e0ee2",
67
+ "@dxos/process": "0.5.1-next.39e0ee2",
68
+ "@dxos/protocols": "0.5.1-next.39e0ee2",
69
+ "@dxos/random": "0.5.1-next.39e0ee2",
70
+ "@dxos/rpc": "0.5.1-next.39e0ee2",
71
+ "@dxos/tasks-template": "0.5.1-next.39e0ee2",
72
+ "@dxos/util": "0.5.1-next.39e0ee2"
72
73
  },
73
74
  "devDependencies": {
74
75
  "@oclif/test": "^2.3.31",
@@ -1,9 +0,0 @@
1
- import { type Client } from '@dxos/client';
2
- import { BaseCommand } from '../../base-command';
3
- export default class Auth extends BaseCommand<typeof Auth> {
4
- static enableJsonFlag: boolean;
5
- static description: string;
6
- presentAuthCredentials(client: Client): Promise<any>;
7
- run(): Promise<any>;
8
- }
9
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/commands/kube/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA6B;IAElD,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAwCpD,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CA0B1B"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2023 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 chalk_1 = __importDefault(require("chalk"));
10
- const invariant_1 = require("@dxos/invariant");
11
- const keys_1 = require("@dxos/keys");
12
- const base_command_1 = require("../../base-command");
13
- const util_1 = require("../../util");
14
- class Auth extends base_command_1.BaseCommand {
15
- async presentAuthCredentials(client) {
16
- this.log((0, chalk_1.default) `{gray Initiating presentation sequence..}`);
17
- // TODO(egorgripasov): Find AuthorizedDevice by KubeAccess credential.
18
- const { deviceKey } = client.halo.device;
19
- const authDeviceCreds = await (0, util_1.queryCredentials)(client, 'dxos.halo.credentials.AuthorizedDevice', (cred) => keys_1.PublicKey.equals(cred.subject.id, deviceKey));
20
- if (!authDeviceCreds.length) {
21
- this.catch('No authorized devices');
22
- }
23
- // Init auth sequence.
24
- return this.execWithSupervisor(async (supervisor) => {
25
- var _a;
26
- const { nonce, kubeKey } = await supervisor.rpc.initAuthSequence();
27
- // Find proper KubeAccess credential.
28
- const kubeAccessCreds = await (0, util_1.queryCredentials)(client, 'dxos.halo.credentials.KubeAccess', (cred) => keys_1.PublicKey.equals(cred.issuer, kubeKey));
29
- if (!kubeAccessCreds.length) {
30
- this.log((0, chalk_1.default) `{gray No KUBE access credentials - requesting..}`);
31
- }
32
- else {
33
- this.log((0, chalk_1.default) `{gray KUBE access credentials found - requesting session token..}`);
34
- }
35
- const credsToPresent = [authDeviceCreds[0].id, (_a = kubeAccessCreds[0]) === null || _a === void 0 ? void 0 : _a.id].filter(Boolean);
36
- // Create presentation.
37
- const presentation = await client.halo.presentCredentials({
38
- ids: credsToPresent,
39
- nonce,
40
- });
41
- return supervisor.rpc.authenticate({
42
- presentation,
43
- });
44
- });
45
- }
46
- async run() {
47
- return await this.execWithClient(async (client) => {
48
- const identity = client.halo.identity;
49
- if (!identity) {
50
- // TODO(burdon): Error if called twice with no halo.
51
- this.log((0, chalk_1.default) `{red Profile not initialized.}`);
52
- }
53
- else {
54
- const { credential, token } = await this.presentAuthCredentials(client);
55
- (0, invariant_1.invariant)(!!credential || !!token, 'No credentials or token received.');
56
- if (token) {
57
- this.log((0, chalk_1.default) `{green Authenticated with session token ${token}}`);
58
- }
59
- else {
60
- this.log((0, chalk_1.default) `{gray Writing KUBE access credential..}`);
61
- await client.halo.writeCredentials([credential]);
62
- const { token } = await this.presentAuthCredentials(client);
63
- if (token) {
64
- this.log((0, chalk_1.default) `{green Authenticated with session token: ${token}}`);
65
- }
66
- else {
67
- this.log((0, chalk_1.default) `{red Failed to authenticate.}`);
68
- }
69
- }
70
- }
71
- });
72
- }
73
- }
74
- Auth.enableJsonFlag = true;
75
- Auth.description = 'Authenticate with KUBE.';
76
- exports.default = Auth;
77
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/commands/kube/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../../src/commands/kube/deploy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,OAAgB,WAAW,SAAkB;IAC7C,OAAgB,KAAK;;;;;;;;;;;;;;;;MAiBnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAwB1B"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- //
3
- // Copyright 2022 DXOS.org
4
- //
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const core_1 = require("@oclif/core");
7
- const base_command_1 = require("../../base-command");
8
- const provider_1 = require("../../util/provider");
9
- class Deploy extends base_command_1.BaseCommand {
10
- async run() {
11
- const { hostname, provider: providerName, dev, accessToken } = this.flags;
12
- return await this.execWithClient(async (client) => {
13
- if (!client.halo.identity) {
14
- this.catch('Client identity not initialized.');
15
- }
16
- // TODO(egorgripasov): HALO <-> KUBE integration.
17
- let provider;
18
- switch (providerName) {
19
- case provider_1.DEFAULT_PROVIDER: {
20
- provider = new provider_1.DigitalOceanProvider(this.clientConfig);
21
- break;
22
- }
23
- default: {
24
- this.catch(`Unknown provider: ${providerName}`);
25
- }
26
- }
27
- const kube = await provider.deploy({ hostname, dev, accessToken });
28
- (0, provider_1.printKubes)([kube]);
29
- });
30
- }
31
- }
32
- Deploy.description = 'Deploy KUBE.';
33
- Deploy.flags = {
34
- ...base_command_1.BaseCommand.flags,
35
- hostname: core_1.Flags.string({
36
- description: 'Hostname',
37
- required: true,
38
- }),
39
- provider: core_1.Flags.string({
40
- description: 'Cloud Provider',
41
- default: provider_1.DEFAULT_PROVIDER,
42
- }),
43
- accessToken: core_1.Flags.string({
44
- description: 'Access token for seeding admin identity',
45
- }),
46
- dev: core_1.Flags.boolean({
47
- description: 'Deploy latest version from dev channel',
48
- default: false,
49
- }),
50
- };
51
- exports.default = Deploy;
52
- //# sourceMappingURL=deploy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../../src/commands/kube/deploy.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAoC;AAIpC,qDAAiD;AACjD,kDAAiH;AAEjH,MAAqB,MAAO,SAAQ,0BAA0B;IAqB5D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1E,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACzB,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;aAChD;YAED,iDAAiD;YACjD,IAAI,QAA2B,CAAC;YAChC,QAAQ,YAAY,EAAE;gBACpB,KAAK,2BAAgB,CAAC,CAAC;oBACrB,QAAQ,GAAG,IAAI,+BAAoB,CAAC,IAAI,CAAC,YAAa,CAAC,CAAC;oBACxD,MAAM;iBACP;gBAED,OAAO,CAAC,CAAC;oBACP,IAAI,CAAC,KAAK,CAAC,qBAAqB,YAAY,EAAE,CAAC,CAAC;iBACjD;aACF;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACnE,IAAA,qBAAU,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;;AA3Ce,kBAAW,GAAG,cAAc,CAAC;AAC7B,YAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,2BAAgB;KAC1B,CAAC;IACF,WAAW,EAAE,YAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,yCAAyC;KACvD,CAAC;IACF,GAAG,EAAE,YAAK,CAAC,OAAO,CAAC;QACjB,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBAnBiB,MAAM"}