@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.
Files changed (96) hide show
  1. package/README.md +25 -16
  2. package/dist/dx.yml +14 -0
  3. package/dist/known-extensions.yml +47 -69
  4. package/dist/src/extensions/index.d.ts +4 -0
  5. package/dist/src/extensions/index.d.ts.map +1 -0
  6. package/dist/src/extensions/index.js +23 -0
  7. package/dist/src/extensions/index.js.map +1 -0
  8. package/dist/src/extensions/manager.d.ts +15 -0
  9. package/dist/src/extensions/manager.d.ts.map +1 -0
  10. package/dist/src/extensions/manager.js +52 -0
  11. package/dist/src/extensions/manager.js.map +1 -0
  12. package/dist/src/extensions/module.d.ts +20 -0
  13. package/dist/src/extensions/module.d.ts.map +1 -0
  14. package/dist/src/extensions/module.js +61 -0
  15. package/dist/src/extensions/module.js.map +1 -0
  16. package/dist/src/extensions/pluggable.d.ts +68 -0
  17. package/dist/src/extensions/pluggable.d.ts.map +1 -0
  18. package/dist/src/{pluggable.js → extensions/pluggable.js} +49 -89
  19. package/dist/src/extensions/pluggable.js.map +1 -0
  20. package/dist/src/extensions/utils.d.ts +9 -0
  21. package/dist/src/extensions/utils.d.ts.map +1 -0
  22. package/dist/src/extensions/utils.js +58 -0
  23. package/dist/src/extensions/utils.js.map +1 -0
  24. package/dist/src/main.js +51 -62
  25. package/dist/src/main.js.map +1 -1
  26. package/dist/src/modules/device/commands/index.d.ts +4 -0
  27. package/dist/src/modules/device/commands/index.d.ts.map +1 -0
  28. package/dist/src/modules/device/commands/index.js +23 -0
  29. package/dist/src/modules/device/commands/index.js.map +1 -0
  30. package/dist/src/modules/device/commands/info.d.ts +7 -0
  31. package/dist/src/modules/device/commands/info.d.ts.map +1 -0
  32. package/dist/src/modules/device/commands/info.js +24 -0
  33. package/dist/src/modules/device/commands/info.js.map +1 -0
  34. package/dist/src/modules/device/commands/invite.d.ts +9 -0
  35. package/dist/src/modules/device/commands/invite.d.ts.map +1 -0
  36. package/dist/src/modules/device/commands/invite.js +25 -0
  37. package/dist/src/modules/device/commands/invite.js.map +1 -0
  38. package/dist/src/modules/device/commands/join.d.ts +23 -0
  39. package/dist/src/modules/device/commands/join.d.ts.map +1 -0
  40. package/dist/src/modules/device/commands/join.js +46 -0
  41. package/dist/src/modules/device/commands/join.js.map +1 -0
  42. package/dist/src/modules/device/device.d.ts +10 -0
  43. package/dist/src/modules/device/device.d.ts.map +1 -0
  44. package/dist/src/modules/device/device.js +40 -0
  45. package/dist/src/modules/device/device.js.map +1 -0
  46. package/dist/src/modules/device/device.test.d.ts +2 -0
  47. package/dist/src/modules/device/device.test.d.ts.map +1 -0
  48. package/dist/src/modules/device/device.test.js +79 -0
  49. package/dist/src/modules/device/device.test.js.map +1 -0
  50. package/dist/src/modules/device/index.d.ts +2 -0
  51. package/dist/src/modules/device/index.d.ts.map +1 -0
  52. package/dist/src/modules/device/index.js +21 -0
  53. package/dist/src/modules/device/index.js.map +1 -0
  54. package/dist/src/modules/devtools.d.ts +1 -1
  55. package/dist/src/modules/devtools.d.ts.map +1 -1
  56. package/dist/src/modules/devtools.js +5 -4
  57. package/dist/src/modules/devtools.js.map +1 -1
  58. package/dist/src/modules/extension.d.ts.map +1 -1
  59. package/dist/src/modules/extension.js +18 -16
  60. package/dist/src/modules/extension.js.map +1 -1
  61. package/dist/src/modules/halo.d.ts +1 -1
  62. package/dist/src/modules/index.d.ts +10 -0
  63. package/dist/src/modules/index.d.ts.map +1 -0
  64. package/dist/src/modules/index.js +29 -0
  65. package/dist/src/modules/index.js.map +1 -0
  66. package/dist/src/modules/info.d.ts +6 -0
  67. package/dist/src/modules/info.d.ts.map +1 -0
  68. package/dist/src/modules/info.js +25 -0
  69. package/dist/src/modules/info.js.map +1 -0
  70. package/dist/src/modules/{installation.d.ts → install.d.ts} +1 -1
  71. package/dist/src/modules/install.d.ts.map +1 -0
  72. package/dist/src/modules/{installation.js → install.js} +12 -11
  73. package/dist/src/modules/install.js.map +1 -0
  74. package/dist/src/modules/profile.d.ts +2 -2
  75. package/dist/src/modules/profile.d.ts.map +1 -1
  76. package/dist/src/modules/profile.js.map +1 -1
  77. package/dist/src/modules/services.d.ts.map +1 -1
  78. package/dist/src/modules/services.js +8 -5
  79. package/dist/src/modules/services.js.map +1 -1
  80. package/dist/src/modules/storage.d.ts.map +1 -1
  81. package/dist/src/modules/storage.js.map +1 -1
  82. package/dist/tsconfig.tsbuildinfo +1 -1
  83. package/package.json +23 -15
  84. package/dist/src/extensions.d.ts +0 -6
  85. package/dist/src/extensions.d.ts.map +0 -1
  86. package/dist/src/extensions.js +0 -47
  87. package/dist/src/extensions.js.map +0 -1
  88. package/dist/src/modules/installation.d.ts.map +0 -1
  89. package/dist/src/modules/installation.js.map +0 -1
  90. package/dist/src/modules/pluggable.d.ts +0 -14
  91. package/dist/src/modules/pluggable.d.ts.map +0 -1
  92. package/dist/src/modules/pluggable.js +0 -48
  93. package/dist/src/modules/pluggable.js.map +0 -1
  94. package/dist/src/pluggable.d.ts +0 -68
  95. package/dist/src/pluggable.d.ts.map +0 -1
  96. 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 extensions_1 = require("./extensions");
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 && JSON.parse((0, strip_json_comments_1.default)(fs_1.default.readFileSync(path_1.default.join(this._workspaceRoot, 'rush.json')).toString())).projects;
79
- this._workspaceInfo = this._workspacePackages && this._workspacePackages.find(module => module.packageName === this._moduleName);
80
- this._isInWorkspace = this._workspaceInfo && fs_1.default.existsSync(path_1.default.join(this._workspaceRoot, this._workspaceInfo.projectFolder));
81
- this._isInCWD = fs_1.default.existsSync(path_1.default.join(process.cwd(), 'package.json')) && ((_a = require(path_1.default.join(process.cwd(), 'package.json'))) === null || _a === void 0 ? void 0 : _a.name) === this._moduleName;
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(options) {
89
- return new Pluggable(options);
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
- get isInWorkspace() {
104
- return this._isInWorkspace;
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 module() {
124
- var _a;
125
- const module = require(this.modulePath);
126
- const moduleCli = (_a = module.default) !== null && _a !== void 0 ? _a : module; // Difference between `module.exports` and `export default`.
127
- return moduleCli;
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,37 @@ 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
- return this.module.init(state);
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
- return this.module.destroy(state);
154
+ var _a, _b;
155
+ return (_b = (_a = this.module).destroy) === null || _b === void 0 ? void 0 : _b.call(_a, state);
156
+ }
157
+ async handleExit(state) {
158
+ var _a, _b;
159
+ return (_b = (_a = this.module).onExit) === null || _b === void 0 ? void 0 : _b.call(_a, state);
199
160
  }
200
161
  /**
201
162
  * Runs command of an CLI extension.
202
- * @param {Object} state
203
- * @param {Object} argv
204
163
  */
205
164
  async run(state, argv) {
206
165
  const { installed, moduleName, version } = this;
207
166
  if (!installed) {
208
167
  const spinner = `Installing ${moduleName}${version ? `@${version}` : ''}`;
209
168
  try {
210
- await this.installModule(null, { spinner });
211
- await (0, extensions_1.addInstalled)(moduleName, this.getInfo());
169
+ await this.installModule(undefined, { spinner });
170
+ const extensionManager = new manager_1.ExtensionManager();
171
+ await extensionManager.add(moduleName, this.getInfo());
212
172
  const { init, destroy } = this.module;
213
173
  if (init || destroy) {
214
174
  console.log(`${moduleName} was successfully installed. Please run your command again.`);
@@ -228,7 +188,7 @@ class Pluggable {
228
188
  }
229
189
  getDockerCompose() {
230
190
  this._cleanCache();
231
- return this.module.dockerCompose;
191
+ return this.module.docker;
232
192
  }
233
193
  _cleanCache() {
234
194
  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,80 @@ 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 devtools_1 = require("./modules/devtools");
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 EXTENSION_INFO_FILE = 'extension.yml';
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 extensions = [];
36
- const destroyers = [];
22
+ const modules = [
23
+ modules_1.DeviceModule,
24
+ modules_1.InfoModule,
25
+ modules_1.ProfileModule,
26
+ modules_1.DevtoolsModule,
27
+ modules_1.ServicesModule,
28
+ modules_1.StorageModule,
29
+ modules_1.HaloModule,
30
+ modules_1.UpgradeModule,
31
+ modules_1.UninstallModule,
32
+ modules_1.ExtensionModule
33
+ ];
34
+ const pluggableModules = [];
37
35
  const init = async (state) => {
38
- const installedExtensions = await (0, extensions_1.listInstalled)();
36
+ // Generated by package script from Yargs definitions.
37
+ const knownExtensions = (0, cli_core_1.loadYml)(path_1.default.join(__dirname, '../known-extensions.yml'));
39
38
  // If developing new extension - read info from cwd.
40
- const localExtensionFile = path_1.default.join(process.cwd(), EXTENSION_INFO_FILE);
39
+ const localExtensionFile = path_1.default.join(process.cwd(), cli_core_1.EXTENSION_CONFIG_FILENAME);
41
40
  if ((0, fs_1.existsSync)(localExtensionFile)) {
42
- const devExtension = ((0, fs_1.readFileSync)(localExtensionFile)).toString();
43
- const devExtensionInfo = js_yaml_1.default.load(devExtension);
44
- const { name, description, command, initRequired, destroyRequired } = devExtensionInfo;
45
- knownExtensions.push({
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));
41
+ const devExtensionInfo = (0, cli_core_1.loadYml)(localExtensionFile);
42
+ // TODO(egorgripasov): Once proper dx.yml in place check if DXNS type == 'extension' instead.
43
+ if (devExtensionInfo.moduleName) {
44
+ knownExtensions.push(devExtensionInfo);
64
45
  }
65
46
  }
47
+ const extensionManager = new extensions_1.ExtensionManager();
48
+ const installedExtensions = await extensionManager.list();
49
+ const pluggableExtensions = (0, lodash_uniqby_1.default)(knownExtensions.concat(installedExtensions), 'moduleName');
50
+ for await (const pluggableExtension of pluggableExtensions) {
51
+ const pluggableModule = new extensions_1.PluggableModule(pluggableExtension, state);
52
+ await pluggableModule.init();
53
+ pluggableModules.push(pluggableModule);
54
+ const exportedModules = pluggableModule.export();
55
+ modules.push(...exportedModules);
56
+ }
66
57
  };
67
58
  const destroy = async () => {
68
- for await (const destroyer of destroyers) {
69
- await destroyer();
59
+ for await (const pluggableModule of pluggableModules) {
60
+ await pluggableModule.destroy();
70
61
  }
71
62
  };
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
- ];
63
+ const handleExit = async () => {
64
+ for await (const pluggableModule of pluggableModules) {
65
+ await pluggableModule.handleExit();
66
+ }
67
+ };
68
+ const handleError = async (err) => {
69
+ await handleExit();
70
+ logError(err);
71
+ process.exit(1);
72
+ };
73
+ process.on('uncaughtException', handleError);
74
+ process.on('unhandledRejection', handleError);
75
+ process.on('SIGINT', handleExit);
76
+ process.on('SIGTERM', handleExit);
82
77
  module.exports = (0, cli_core_1.createCLI)({
83
- options: CLI_CONFIG,
84
78
  dir: __dirname,
85
79
  main: !module.parent,
80
+ info: (0, cli_core_1.loadYml)(path_1.default.join(__dirname, `../${cli_core_1.EXTENSION_CONFIG_FILENAME}`)),
86
81
  init,
87
82
  destroy,
88
- getModules: async () => [...modules, ...extensions],
89
- info: {}
83
+ getModules: async () => modules,
84
+ options: CLI_CONFIG
90
85
  });
91
- const handleError = (err) => {
92
- logError(err);
93
- process.exit(1);
94
- };
95
- process.on('uncaughtException', handleError);
96
- process.on('unhandledRejection', handleError);
97
86
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,2BAA8C;AAC9C,sDAA2B;AAC3B,kEAAmC;AACnC,gDAAwB;AACxB,8DAAoC;AAEpC,6CAAkE;AAElE,6CAA6C;AAC7C,iDAAoD;AACpD,mDAAsD;AACtD,yCAA4C;AAC5C,yDAAwE;AACxE,mDAAsD;AACtD,+CAAkD;AAClD,iDAAoD;AACpD,+CAAkD;AAElD,MAAM,gBAAgB,GAAG,IAAA,iBAAY,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAElG,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,qBAAU,GAAE,CAAC;AAElC,MAAM,eAAe,GAAG,iBAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEpD,MAAM,GAAG,GAAG,qBAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAE/C,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B,MAAM,mBAAmB,GAAG,eAAe,CAAC;AAE5C,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,EAAE;IACf,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,MAAM,UAAU,GAAU,EAAE,CAAC;AAC7B,MAAM,UAAU,GAAU,EAAE,CAAC;AAE7B,MAAM,IAAI,GAAG,KAAK,EAAE,KAAgB,EAAE,EAAE;IACtC,MAAM,mBAAmB,GAAG,MAAM,IAAA,0BAAa,GAAE,CAAC;IAElD,oDAAoD;IACpD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;IACzE,IAAI,IAAA,eAAU,EAAC,kBAAkB,CAAC,EAAE;QAClC,MAAM,YAAY,GAAG,CAAC,IAAA,iBAAY,EAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnE,MAAM,gBAAgB,GAAG,iBAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC;QAEvF,eAAe,CAAC,IAAI,CAAC;YACnB,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,QAAQ,EAAE,WAAW;YACrB,OAAO;YACP,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;KACJ;IAED,MAAM,gBAAgB,GAAG,IAAA,uBAAM,EAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,YAAY,CAAC,CAAC;IAE3F,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,gBAAgB,EAAE;QAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,KAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,OAAO,CAAA,CAAC;QAC1D,MAAM,eAAe,GAAG,IAAI,2BAAe,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9E,IAAI,SAAS,CAAC,YAAY,EAAE;YAC1B,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;SAC9B;QAED,2BAA2B;QAC3B,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAEjE,IAAI,SAAS,CAAC,eAAe,EAAE;YAC7B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;SAChE;KACF;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;IACzB,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,UAAU,EAAE;QACxC,MAAM,SAAS,EAAE,CAAC;KACnB;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG;IACd,uBAAa;IACb,yBAAc;IACd,yBAAc;IACd,uBAAa;IACb,iBAAU;IACV,4BAAa;IACb,8BAAe;IACf,2BAAe;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,IAAA,oBAAS,EAAC;IACzB,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM;IACpB,IAAI;IACJ,OAAO;IACP,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC;IACnD,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE;IAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC;IACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAC7C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './info';
2
+ export * from './invite';
3
+ export * from './join';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/modules/device/commands/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,23 @@
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("./info"), exports);
21
+ __exportStar(require("./invite"), exports);
22
+ __exportStar(require("./join"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/device/commands/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;AAEF,yCAAuB;AACvB,2CAAyB;AACzB,yCAAuB"}
@@ -0,0 +1,7 @@
1
+ import { CommandModule } from 'yargs';
2
+ import type { Client } from '@dxos/client';
3
+ import { DeviceOptions } from '..';
4
+ export declare const infoCommand: ({ getClient }: {
5
+ getClient: (name?: string | undefined) => Promise<Client>;
6
+ }) => CommandModule<DeviceOptions, DeviceOptions>;
7
+ //# sourceMappingURL=info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../../../src/modules/device/commands/info.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,aAAa,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEnC,eAAO,MAAM,WAAW;8CAAmD,QAAQ,MAAM,CAAC;MAAK,cAAc,aAAa,EAAE,aAAa,CAevI,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2020 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.infoCommand = void 0;
7
+ const cli_core_1 = require("@dxos/cli-core");
8
+ const infoCommand = ({ getClient }) => ({
9
+ command: ['info'],
10
+ describe: 'Current device info.',
11
+ builder: yargs => yargs,
12
+ handler: (0, cli_core_1.asyncHandler)(async (argv) => {
13
+ var _a;
14
+ const client = await getClient();
15
+ const data = {
16
+ displayName: (_a = client.halo.profile) === null || _a === void 0 ? void 0 : _a.username
17
+ // identityKey: client.echo.halo.identity.identityKey?.publicKey.toHex(),
18
+ // deviceKey: client.echo.halo.identity.deviceKey?.publicKey.toHex()
19
+ };
20
+ return (0, cli_core_1.print)(data, argv);
21
+ })
22
+ });
23
+ exports.infoCommand = infoCommand;
24
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../../src/modules/device/commands/info.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIF,6CAAqD;AAK9C,MAAM,WAAW,GAAG,CAAC,EAAE,SAAS,EAAqD,EAA+C,EAAE,CAAC,CAAC;IAC7I,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,QAAQ,EAAE,sBAAsB;IAChC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;IACvB,OAAO,EAAE,IAAA,uBAAY,EAAC,KAAK,EAAE,IAA8B,EAAE,EAAE;;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAEjC,MAAM,IAAI,GAAG;YACX,WAAW,EAAE,MAAA,MAAM,CAAC,IAAI,CAAC,OAAO,0CAAE,QAAQ;YAC1C,yEAAyE;YACzE,oEAAoE;SACrE,CAAC;QAEF,OAAO,IAAA,gBAAK,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;CACH,CAAC,CAAC;AAfU,QAAA,WAAW,eAerB"}
@@ -0,0 +1,9 @@
1
+ import { CommandModule } from 'yargs';
2
+ import type { Client } from '@dxos/client';
3
+ import { DeviceOptions } from '../device';
4
+ declare type DeviceInviteOptions = {
5
+ getClient: (name?: string) => Promise<Client>;
6
+ };
7
+ export declare const inviteCommand: ({ getClient }: DeviceInviteOptions, onPinGenerated: (pin: string) => void, onGenerated?: ((code: string) => void) | undefined) => CommandModule<DeviceOptions, DeviceOptions>;
8
+ export {};
9
+ //# sourceMappingURL=invite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.d.ts","sourceRoot":"","sources":["../../../../../src/modules/device/commands/invite.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,aAAa,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAO1C,aAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,aAAa,kBAAmB,mBAAmB,wBAAwB,MAAM,KAAK,IAAI,wBAAuB,MAAM,KAAK,IAAI,kBAAG,cAAc,aAAa,EAAE,aAAa,CAcxL,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2020 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.inviteCommand = void 0;
7
+ const cli_core_1 = require("@dxos/cli-core");
8
+ const options = (yargs) => {
9
+ return yargs
10
+ .option('interactive', { hidden: true, default: true }); // override the default.
11
+ };
12
+ const inviteCommand = ({ getClient }, onPinGenerated, onGenerated) => ({
13
+ command: ['invite'],
14
+ describe: 'Invite another device.',
15
+ builder: yargs => options(yargs),
16
+ handler: (0, cli_core_1.asyncHandler)(async (argv) => {
17
+ const client = await getClient();
18
+ const invitation = await client.halo.createInvitation();
19
+ invitation.connected.on(() => { var _a, _b; return onPinGenerated((_b = (_a = invitation.descriptor.secret) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : ''); });
20
+ onGenerated && await onGenerated(invitation.descriptor.encode());
21
+ (0, cli_core_1.print)({ code: invitation.descriptor.encode() }, argv);
22
+ })
23
+ });
24
+ exports.inviteCommand = inviteCommand;
25
+ //# sourceMappingURL=invite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invite.js","sourceRoot":"","sources":["../../../../../src/modules/device/commands/invite.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AAIF,6CAAqD;AAKrD,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAuB,EAAE;IAClE,OAAO,KAAK;SACT,MAAM,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,wBAAwB;AACrF,CAAC,CAAC;AAMK,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAuB,EAAE,cAAqC,EAAE,WAAoC,EAA+C,EAAE,CAAC,CAAC;IAC9L,OAAO,EAAE,CAAC,QAAQ,CAAC;IACnB,QAAQ,EAAE,wBAAwB;IAClC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAChC,OAAO,EAAE,IAAA,uBAAY,EAAC,KAAK,EAAE,IAA8B,EAAE,EAAE;QAC7D,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QAEjC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxD,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,eAAC,OAAA,cAAc,CAAC,MAAA,MAAA,UAAU,CAAC,UAAU,CAAC,MAAM,0CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;QAE9F,WAAW,IAAI,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjE,IAAA,gBAAK,EAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;CACH,CAAC,CAAC;AAdU,QAAA,aAAa,iBAcvB"}
@@ -0,0 +1,23 @@
1
+ import { Argv } from 'yargs';
2
+ import { CoreState } from '@dxos/cli-core';
3
+ import type { Client } from '@dxos/client';
4
+ import { DeviceOptions } from '../device';
5
+ declare type DeviceJoinCommandOptions = Pick<CoreState, 'profilePath' | 'cliState'> & {
6
+ getClient: (name?: string) => Promise<Client>;
7
+ storage?: {
8
+ persistent?: boolean;
9
+ path?: string;
10
+ };
11
+ };
12
+ export interface DeviceJoinOptions extends DeviceOptions {
13
+ code: string;
14
+ name: string;
15
+ }
16
+ export declare const joinCommand: ({ storage, profilePath, cliState, getClient }: DeviceJoinCommandOptions, secretProvider: Function) => {
17
+ command: string[];
18
+ describe: string;
19
+ builder: (yargs: Argv<any>) => Argv<DeviceJoinOptions>;
20
+ handler: (argv: any) => Promise<any>;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=join.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../../../src/modules/device/commands/join.ts"],"names":[],"mappings":"AAKA,OAAO,EAAa,IAAI,EAAE,MAAM,OAAO,CAAC;AAExC,OAAO,EAA0B,SAAS,EAA8C,MAAM,gBAAgB,CAAC;AAC/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,aAAK,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAI,aAAa,GAAG,UAAU,CAAC,GAAG;IAC9E,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AASD,eAAO,MAAM,WAAW,kDAAmD,wBAAwB,kBAAkB,QAAQ;;;qBAG1G,KAAK,GAAG,CAAC;;CA2B1B,CAAC"}