@dxos/cli 0.1.54 → 0.1.55-main.0618d91

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 (226) hide show
  1. package/README.md +426 -176
  2. package/bin/dev +1 -2
  3. package/dist/src/base-command.d.ts +10 -1
  4. package/dist/src/base-command.d.ts.map +1 -1
  5. package/dist/src/base-command.js +59 -11
  6. package/dist/src/base-command.js.map +1 -1
  7. package/dist/src/commands/agent/list.d.ts +19 -1
  8. package/dist/src/commands/agent/list.d.ts.map +1 -1
  9. package/dist/src/commands/agent/list.js +25 -39
  10. package/dist/src/commands/agent/list.js.map +1 -1
  11. package/dist/src/commands/agent/restart.d.ts +1 -0
  12. package/dist/src/commands/agent/restart.d.ts.map +1 -1
  13. package/dist/src/commands/agent/restart.js +2 -2
  14. package/dist/src/commands/agent/restart.js.map +1 -1
  15. package/dist/src/commands/agent/start.d.ts +4 -2
  16. package/dist/src/commands/agent/start.d.ts.map +1 -1
  17. package/dist/src/commands/agent/start.js +21 -8
  18. package/dist/src/commands/agent/start.js.map +1 -1
  19. package/dist/src/commands/agent/stop.d.ts +1 -0
  20. package/dist/src/commands/agent/stop.d.ts.map +1 -1
  21. package/dist/src/commands/agent/stop.js +10 -5
  22. package/dist/src/commands/agent/stop.js.map +1 -1
  23. package/dist/src/commands/app/create.d.ts +1 -0
  24. package/dist/src/commands/app/create.d.ts.map +1 -1
  25. package/dist/src/commands/app/create.js +3 -3
  26. package/dist/src/commands/app/create.js.map +1 -1
  27. package/dist/src/commands/app/open.d.ts +1 -0
  28. package/dist/src/commands/app/open.d.ts.map +1 -1
  29. package/dist/src/commands/app/publish.d.ts +1 -0
  30. package/dist/src/commands/app/publish.d.ts.map +1 -1
  31. package/dist/src/commands/debug/{stats.d.ts → diagnostics.d.ts} +8 -6
  32. package/dist/src/commands/debug/diagnostics.d.ts.map +1 -0
  33. package/dist/src/commands/debug/diagnostics.js +56 -0
  34. package/dist/src/commands/debug/diagnostics.js.map +1 -0
  35. package/dist/src/commands/debug/generate.d.ts +25 -0
  36. package/dist/src/commands/debug/generate.d.ts.map +1 -0
  37. package/dist/src/commands/debug/generate.js +75 -0
  38. package/dist/src/commands/debug/generate.js.map +1 -0
  39. package/dist/src/commands/debug/metrics.d.ts +10 -0
  40. package/dist/src/commands/debug/metrics.d.ts.map +1 -0
  41. package/dist/src/commands/debug/metrics.js +43 -0
  42. package/dist/src/commands/debug/metrics.js.map +1 -0
  43. package/dist/src/commands/{tunnel/set.d.ts → debug/status.d.ts} +4 -5
  44. package/dist/src/commands/debug/status.d.ts.map +1 -0
  45. package/dist/src/commands/debug/status.js +34 -0
  46. package/dist/src/commands/debug/status.js.map +1 -0
  47. package/dist/src/commands/device/list.d.ts +18 -0
  48. package/dist/src/commands/device/list.d.ts.map +1 -1
  49. package/dist/src/commands/device/list.js +5 -0
  50. package/dist/src/commands/device/list.js.map +1 -1
  51. package/dist/src/commands/function/dev-server.d.ts +1 -0
  52. package/dist/src/commands/function/dev-server.d.ts.map +1 -1
  53. package/dist/src/commands/halo/credential/list.d.ts +9 -0
  54. package/dist/src/commands/halo/credential/list.d.ts.map +1 -1
  55. package/dist/src/commands/halo/credential/list.js +7 -7
  56. package/dist/src/commands/halo/credential/list.js.map +1 -1
  57. package/dist/src/commands/halo/{index.d.ts → identity.d.ts} +2 -2
  58. package/dist/src/commands/halo/identity.d.ts.map +1 -0
  59. package/dist/src/commands/halo/{index.js → identity.js} +7 -6
  60. package/dist/src/commands/halo/identity.js.map +1 -0
  61. package/dist/src/commands/halo/join.d.ts +2 -0
  62. package/dist/src/commands/halo/join.d.ts.map +1 -1
  63. package/dist/src/commands/halo/join.js +20 -13
  64. package/dist/src/commands/halo/join.js.map +1 -1
  65. package/dist/src/commands/halo/share.d.ts +1 -0
  66. package/dist/src/commands/halo/share.d.ts.map +1 -1
  67. package/dist/src/commands/halo/share.js +1 -1
  68. package/dist/src/commands/halo/share.js.map +1 -1
  69. package/dist/src/commands/kube/auth.js +1 -1
  70. package/dist/src/commands/kube/auth.js.map +1 -1
  71. package/dist/src/commands/kube/deploy.d.ts +1 -0
  72. package/dist/src/commands/kube/deploy.d.ts.map +1 -1
  73. package/dist/src/commands/kube/deploy.js +16 -25
  74. package/dist/src/commands/kube/deploy.js.map +1 -1
  75. package/dist/src/commands/reset/index.d.ts +1 -0
  76. package/dist/src/commands/reset/index.d.ts.map +1 -1
  77. package/dist/src/commands/reset/index.js +12 -7
  78. package/dist/src/commands/reset/index.js.map +1 -1
  79. package/dist/src/commands/shell/index.d.ts +0 -1
  80. package/dist/src/commands/shell/index.d.ts.map +1 -1
  81. package/dist/src/commands/shell/index.js +0 -4
  82. package/dist/src/commands/shell/index.js.map +1 -1
  83. package/dist/src/commands/space/close.d.ts +9 -0
  84. package/dist/src/commands/space/close.d.ts.map +1 -0
  85. package/dist/src/commands/space/close.js +20 -0
  86. package/dist/src/commands/space/close.js.map +1 -0
  87. package/dist/src/commands/space/create.d.ts.map +1 -1
  88. package/dist/src/commands/space/create.js +9 -5
  89. package/dist/src/commands/space/create.js.map +1 -1
  90. package/dist/src/commands/space/epoch.d.ts +0 -17
  91. package/dist/src/commands/space/epoch.d.ts.map +1 -1
  92. package/dist/src/commands/space/epoch.js +2 -21
  93. package/dist/src/commands/space/epoch.js.map +1 -1
  94. package/dist/src/commands/space/info.d.ts +10 -0
  95. package/dist/src/commands/space/info.d.ts.map +1 -0
  96. package/dist/src/commands/space/info.js +29 -0
  97. package/dist/src/commands/space/info.js.map +1 -0
  98. package/dist/src/commands/space/join.d.ts +1 -0
  99. package/dist/src/commands/space/join.d.ts.map +1 -1
  100. package/dist/src/commands/space/join.js +18 -22
  101. package/dist/src/commands/space/join.js.map +1 -1
  102. package/dist/src/commands/space/list.d.ts +4 -0
  103. package/dist/src/commands/space/list.d.ts.map +1 -1
  104. package/dist/src/commands/space/list.js +48 -4
  105. package/dist/src/commands/space/list.js.map +1 -1
  106. package/dist/src/commands/space/members.d.ts +4 -3
  107. package/dist/src/commands/space/members.d.ts.map +1 -1
  108. package/dist/src/commands/space/members.js +6 -19
  109. package/dist/src/commands/space/members.js.map +1 -1
  110. package/dist/src/commands/space/{invite.d.ts → open.d.ts} +3 -3
  111. package/dist/src/commands/space/open.d.ts.map +1 -0
  112. package/dist/src/commands/space/open.js +20 -0
  113. package/dist/src/commands/space/open.js.map +1 -0
  114. package/dist/src/commands/space/query.d.ts +10 -0
  115. package/dist/src/commands/space/query.d.ts.map +1 -0
  116. package/dist/src/commands/space/query.js +39 -0
  117. package/dist/src/commands/space/query.js.map +1 -0
  118. package/dist/src/commands/space/share.d.ts +21 -0
  119. package/dist/src/commands/space/share.d.ts.map +1 -0
  120. package/dist/src/commands/space/share.js +62 -0
  121. package/dist/src/commands/space/share.js.map +1 -0
  122. package/dist/src/commands/tunnel/index.d.ts +21 -0
  123. package/dist/src/commands/tunnel/index.d.ts.map +1 -0
  124. package/dist/src/commands/tunnel/index.js +41 -0
  125. package/dist/src/commands/tunnel/index.js.map +1 -0
  126. package/dist/src/commands/tunnel/list.d.ts.map +1 -1
  127. package/dist/src/commands/tunnel/list.js +3 -4
  128. package/dist/src/commands/tunnel/list.js.map +1 -1
  129. package/dist/src/components/App.d.ts +10 -0
  130. package/dist/src/components/App.d.ts.map +1 -0
  131. package/dist/src/components/App.js +38 -0
  132. package/dist/src/components/App.js.map +1 -0
  133. package/dist/src/components/SpaceTable.d.ts +10 -0
  134. package/dist/src/components/SpaceTable.d.ts.map +1 -0
  135. package/dist/src/components/SpaceTable.js +60 -0
  136. package/dist/src/components/SpaceTable.js.map +1 -0
  137. package/dist/src/components/SystemTable.d.ts +8 -0
  138. package/dist/src/components/SystemTable.d.ts.map +1 -0
  139. package/dist/src/components/SystemTable.js +87 -0
  140. package/dist/src/components/SystemTable.js.map +1 -0
  141. package/dist/src/components/index.d.ts +4 -0
  142. package/dist/src/components/index.d.ts.map +1 -0
  143. package/dist/src/components/index.js +23 -0
  144. package/dist/src/components/index.js.map +1 -0
  145. package/dist/src/errors.d.ts +4 -0
  146. package/dist/src/errors.d.ts.map +1 -0
  147. package/dist/src/errors.js +13 -0
  148. package/dist/src/errors.js.map +1 -0
  149. package/dist/src/help.d.ts.map +1 -1
  150. package/dist/src/help.js +9 -1
  151. package/dist/src/help.js.map +1 -1
  152. package/dist/src/timeouts.d.ts +2 -0
  153. package/dist/src/timeouts.d.ts.map +1 -0
  154. package/dist/src/timeouts.js +9 -0
  155. package/dist/src/timeouts.js.map +1 -0
  156. package/dist/src/util/agents.d.ts +3 -0
  157. package/dist/src/util/agents.d.ts.map +1 -0
  158. package/dist/src/util/agents.js +44 -0
  159. package/dist/src/util/agents.js.map +1 -0
  160. package/dist/src/util/credentials.d.ts +11 -0
  161. package/dist/src/util/credentials.d.ts.map +1 -0
  162. package/dist/src/util/credentials.js +63 -0
  163. package/dist/src/util/credentials.js.map +1 -0
  164. package/dist/src/util/devices.d.ts +7 -0
  165. package/dist/src/util/devices.d.ts.map +1 -0
  166. package/dist/src/util/devices.js +29 -0
  167. package/dist/src/util/devices.js.map +1 -0
  168. package/dist/src/util/index.d.ts +8 -5
  169. package/dist/src/util/index.d.ts.map +1 -1
  170. package/dist/src/util/index.js +8 -5
  171. package/dist/src/util/index.js.map +1 -1
  172. package/dist/src/util/{invitation.d.ts → invitations.d.ts} +1 -1
  173. package/dist/src/util/invitations.d.ts.map +1 -0
  174. package/dist/src/util/{invitation.js → invitations.js} +2 -2
  175. package/dist/src/util/invitations.js.map +1 -0
  176. package/dist/src/util/provider/digital-ocean.js +11 -7
  177. package/dist/src/util/provider/digital-ocean.js.map +1 -1
  178. package/dist/src/util/random.d.ts +13 -0
  179. package/dist/src/util/random.d.ts.map +1 -0
  180. package/dist/src/util/random.js +27 -0
  181. package/dist/src/util/random.js.map +1 -0
  182. package/dist/src/util/spaces.d.ts +29 -0
  183. package/dist/src/util/spaces.d.ts.map +1 -0
  184. package/dist/src/util/spaces.js +173 -0
  185. package/dist/src/util/spaces.js.map +1 -0
  186. package/dist/src/util/telemetryrc.json +2 -2
  187. package/dist/src/util/{test-util.d.ts → testing.d.ts} +1 -1
  188. package/dist/src/util/testing.d.ts.map +1 -0
  189. package/dist/src/util/{test-util.js → testing.js} +1 -1
  190. package/dist/src/util/testing.js.map +1 -0
  191. package/dist/src/util/{util.d.ts → types.d.ts} +1 -3
  192. package/dist/src/util/types.d.ts.map +1 -0
  193. package/dist/src/util/types.js +20 -0
  194. package/dist/src/util/types.js.map +1 -0
  195. package/oclif.manifest.json +1435 -527
  196. package/package.json +21 -25
  197. package/dist/src/commands/debug/stats.d.ts.map +0 -1
  198. package/dist/src/commands/debug/stats.js +0 -58
  199. package/dist/src/commands/debug/stats.js.map +0 -1
  200. package/dist/src/commands/halo/index.d.ts.map +0 -1
  201. package/dist/src/commands/halo/index.js.map +0 -1
  202. package/dist/src/commands/space/index.d.ts +0 -6
  203. package/dist/src/commands/space/index.d.ts.map +0 -1
  204. package/dist/src/commands/space/index.js +0 -19
  205. package/dist/src/commands/space/index.js.map +0 -1
  206. package/dist/src/commands/space/invite.d.ts.map +0 -1
  207. package/dist/src/commands/space/invite.js +0 -48
  208. package/dist/src/commands/space/invite.js.map +0 -1
  209. package/dist/src/commands/tunnel/set.d.ts.map +0 -1
  210. package/dist/src/commands/tunnel/set.js +0 -42
  211. package/dist/src/commands/tunnel/set.js.map +0 -1
  212. package/dist/src/util/credential.d.ts +0 -4
  213. package/dist/src/util/credential.d.ts.map +0 -1
  214. package/dist/src/util/credential.js +0 -33
  215. package/dist/src/util/credential.js.map +0 -1
  216. package/dist/src/util/invitation.d.ts.map +0 -1
  217. package/dist/src/util/invitation.js.map +0 -1
  218. package/dist/src/util/print.d.ts +0 -26
  219. package/dist/src/util/print.d.ts.map +0 -1
  220. package/dist/src/util/print.js +0 -118
  221. package/dist/src/util/print.js.map +0 -1
  222. package/dist/src/util/test-util.d.ts.map +0 -1
  223. package/dist/src/util/test-util.js.map +0 -1
  224. package/dist/src/util/util.d.ts.map +0 -1
  225. package/dist/src/util/util.js +0 -41
  226. package/dist/src/util/util.js.map +0 -1
@@ -8,7 +8,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const core_1 = require("@oclif/core");
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
- const node_assert_1 = __importDefault(require("node:assert"));
11
+ const async_1 = require("@dxos/async");
12
12
  const invitations_1 = require("@dxos/client/invitations");
13
13
  const base_command_1 = require("../../base-command");
14
14
  const util_1 = require("../../util");
@@ -16,40 +16,36 @@ class Join extends base_command_1.BaseCommand {
16
16
  async run() {
17
17
  return await this.execWithClient(async (client) => {
18
18
  var _a;
19
- let { invitation: encoded, secret, json } = this.flags;
19
+ let { invitation: encoded, secret } = this.flags;
20
20
  if (!encoded) {
21
21
  encoded = await core_1.ux.prompt((0, chalk_1.default) `\n{blue Invitation}`);
22
22
  }
23
23
  if (encoded.startsWith('http')) {
24
24
  const searchParams = new URLSearchParams(encoded.substring(encoded.lastIndexOf('?')));
25
- encoded = (_a = searchParams.get('spaceInvitationCode')) !== null && _a !== void 0 ? _a : encoded;
25
+ encoded = (_a = searchParams.get('spaceInvitationCode')) !== null && _a !== void 0 ? _a : encoded; // TODO(burdon): Const.
26
26
  }
27
- let invitation = invitations_1.InvitationEncoder.decode(encoded);
28
- const observable = client.acceptInvitation(invitation);
27
+ core_1.ux.log('');
29
28
  core_1.ux.action.start('Waiting for peer to connect');
30
- const invitationSuccess = (0, util_1.acceptInvitation)({
31
- observable,
29
+ const done = new async_1.Trigger();
30
+ // TODO(burdon): Error code if joining same space (don't throw!)
31
+ const invitation = await (0, util_1.acceptInvitation)({
32
+ observable: client.acceptInvitation(invitations_1.InvitationEncoder.decode(encoded)),
32
33
  callbacks: {
33
- onConnecting: async () => {
34
- core_1.ux.action.stop();
35
- },
34
+ onConnecting: async () => core_1.ux.action.stop(),
36
35
  onReadyForAuth: async () => secret !== null && secret !== void 0 ? secret : core_1.ux.prompt((0, chalk_1.default) `\n{red Secret}`),
36
+ onSuccess: async () => {
37
+ done.wake();
38
+ },
37
39
  },
38
40
  });
39
- core_1.ux.action.start('Waiting for peer to finish invitation');
40
- invitation = await invitationSuccess;
41
- core_1.ux.action.stop();
42
- (0, node_assert_1.default)(invitation.spaceKey);
41
+ await done.wait();
42
+ // TODO(burdon): Race condition.
43
+ await (0, async_1.sleep)(1000);
43
44
  const space = client.getSpace(invitation.spaceKey);
44
- await space.waitUntilReady();
45
- const members = space.members.get();
46
- if (!json) {
47
- (0, util_1.printMembers)(members);
48
- }
45
+ core_1.ux.log();
46
+ core_1.ux.log((0, chalk_1.default) `{green Joined}: ${space.key.truncate()}`);
49
47
  return {
50
- key: space.key.toHex(),
51
- name: space.properties.name,
52
- members: (0, util_1.mapMembers)(members),
48
+ key: space.key,
53
49
  };
54
50
  });
55
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/commands/space/join.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,sCAAwC;AACxC,kDAA0B;AAC1B,8DAAiC;AAGjC,0DAA6D;AAE7D,qDAAiD;AACjD,qCAAwE;AAExE,MAAqB,IAAK,SAAQ,0BAAwB;IAaxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;;YACxD,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAG,MAAM,SAAE,CAAC,MAAM,CAAC,IAAA,eAAK,EAAA,qBAAqB,CAAC,CAAC;aACvD;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC9B,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtF,OAAO,GAAG,MAAA,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,mCAAI,OAAO,CAAC;aAC9D;YAED,IAAI,UAAU,GAAG,+BAAiB,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC;YAEpD,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACvD,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,MAAM,iBAAiB,GAAG,IAAA,uBAAgB,EAAC;gBACzC,UAAU;gBACV,SAAS,EAAE;oBACT,YAAY,EAAE,KAAK,IAAI,EAAE;wBACvB,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACnB,CAAC;oBACD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAE,CAAC,MAAM,CAAC,IAAA,eAAK,EAAA,gBAAgB,CAAC;iBACvE;aACF,CAAC,CAAC;YAEH,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACzD,UAAU,GAAG,MAAM,iBAAiB,CAAC;YACrC,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAEjB,IAAA,qBAAM,EAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;YACpD,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE;gBACT,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;aACvB;YAED,OAAO;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE;gBACtB,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;gBAC3B,OAAO,EAAE,IAAA,iBAAU,EAAC,OAAO,CAAC;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;;AAvDe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,uBAAuB,CAAC;AACtC,UAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,UAAU,EAAE,YAAK,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE,iBAAiB;KAC/B,CAAC;IACF,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,mBAAmB;KACjC,CAAC;CACH,CAAC;kBAXiB,IAAI"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../../src/commands/space/join.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,sCAAwC;AACxC,kDAA0B;AAE1B,uCAA6C;AAE7C,0DAA6D;AAE7D,qDAAiD;AACjD,qCAA8C;AAE9C,MAAqB,IAAK,SAAQ,0BAAwB;IAaxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;;YACxD,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,GAAG,MAAM,SAAE,CAAC,MAAM,CAAC,IAAA,eAAK,EAAA,qBAAqB,CAAC,CAAC;aACvD;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC9B,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtF,OAAO,GAAG,MAAA,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,mCAAI,OAAO,CAAC,CAAC,uBAAuB;aACtF;YAED,SAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACX,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,eAAO,EAAE,CAAC;YAC3B,gEAAgE;YAChE,MAAM,UAAU,GAAG,MAAM,IAAA,uBAAgB,EAAC;gBACxC,UAAU,EAAE,MAAM,CAAC,gBAAgB,CAAC,+BAAiB,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC;gBACvE,SAAS,EAAE;oBACT,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC1C,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,SAAE,CAAC,MAAM,CAAC,IAAA,eAAK,EAAA,gBAAgB,CAAC;oBACtE,SAAS,EAAE,KAAK,IAAI,EAAE;wBACpB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,gCAAgC;YAChC,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAS,CAAE,CAAC;YAErD,SAAE,CAAC,GAAG,EAAE,CAAC;YACT,SAAE,CAAC,GAAG,CAAC,IAAA,eAAK,EAAA,mBAAmB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEvD,OAAO;gBACL,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;;AAlDe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,uBAAuB,CAAC;AACtC,UAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,UAAU,EAAE,YAAK,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE,iBAAiB;KAC/B,CAAC;IACF,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,mBAAmB;KACjC,CAAC;CACH,CAAC;kBAXiB,IAAI"}
@@ -1,8 +1,10 @@
1
+ import { Client } from '@dxos/client';
1
2
  import { BaseCommand } from '../../base-command';
2
3
  export default class List extends BaseCommand<typeof List> {
3
4
  static enableJsonFlag: boolean;
4
5
  static description: string;
5
6
  static flags: {
7
+ live: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
6
8
  columns: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
7
9
  sort: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
8
10
  filter: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
@@ -18,7 +20,9 @@ export default class List extends BaseCommand<typeof List> {
18
20
  config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
19
21
  'no-agent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
22
  timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
23
+ 'no-wait': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
21
24
  };
22
25
  run(): Promise<any>;
26
+ _startLiveUpdate(client: Client): Promise<void>;
23
27
  }
24
28
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/list.ts"],"names":[],"mappings":"AAQA,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,SAAkB;IAC7C,OAAgB,KAAK;;;;;;;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAW1B"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/list.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,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,SAAkB;IAC7C,OAAgB,KAAK;;;;;;;;;;;;;;;;;;MAMnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAkBnB,gBAAgB,CAAC,MAAM,EAAE,MAAM;CAwCtC"}
@@ -4,25 +4,69 @@
4
4
  //
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const core_1 = require("@oclif/core");
7
+ const async_1 = require("@dxos/async");
8
+ const context_1 = require("@dxos/context");
7
9
  const base_command_1 = require("../../base-command");
8
10
  const util_1 = require("../../util");
9
11
  class List extends base_command_1.BaseCommand {
10
12
  async run() {
11
13
  return await this.execWithClient(async (client) => {
12
- const spaces = client.spaces.get();
13
- await Promise.all(spaces.map((space) => space.waitUntilReady()));
14
- if (!this.flags.json) {
14
+ const spaces = await this.getSpaces(client);
15
+ if (this.flags.json) {
16
+ return (0, util_1.mapSpaces)(spaces);
17
+ }
18
+ else {
15
19
  (0, util_1.printSpaces)(spaces, this.flags);
20
+ if (this.flags.live) {
21
+ // TODO(burdon): Use https://www.npmjs.com/package/ansi-escapes to reset screen.
22
+ console.clear();
23
+ await this._startLiveUpdate(client);
24
+ await new Promise((resolve, reject) => { });
25
+ }
16
26
  }
17
- return (0, util_1.mapSpaces)(spaces);
18
27
  });
19
28
  }
29
+ async _startLiveUpdate(client) {
30
+ const ctx = new context_1.Context();
31
+ const subscriptions = new Map();
32
+ ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
33
+ const update = new async_1.Event().debounce(1000);
34
+ update.on(ctx, async () => {
35
+ console.clear();
36
+ (0, util_1.printSpaces)(spaces, this.flags);
37
+ });
38
+ const subscribeToSpaceUpdate = (space) => space.pipeline.subscribe({
39
+ next: () => {
40
+ update.emit();
41
+ },
42
+ });
43
+ // Monitor space updates.
44
+ let spaces = await this.getSpaces(client);
45
+ spaces.forEach((space) => {
46
+ subscriptions.set(space.key.toHex(), subscribeToSpaceUpdate(space));
47
+ });
48
+ // Monitor new spaces.
49
+ subscriptions.set('client', client.spaces.subscribe({
50
+ next: async () => {
51
+ spaces = await this.getSpaces(client);
52
+ // Monitor space updates for new spaces.
53
+ spaces
54
+ .filter((space) => !subscriptions.has(space.key.toHex()))
55
+ .forEach((space) => {
56
+ subscriptions.set(space.key.toHex(), subscribeToSpaceUpdate(space));
57
+ });
58
+ },
59
+ }));
60
+ }
20
61
  }
21
62
  List.enableJsonFlag = true;
22
63
  List.description = 'List spaces.';
23
64
  List.flags = {
24
65
  ...base_command_1.BaseCommand.flags,
25
66
  ...core_1.ux.table.flags(),
67
+ live: core_1.Flags.boolean({
68
+ description: 'Live update.',
69
+ }),
26
70
  };
27
71
  exports.default = List;
28
72
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/space/list.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAiC;AAIjC,qDAAiD;AACjD,qCAAoD;AAEpD,MAAqB,IAAK,SAAQ,0BAAwB;IAQxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpB,IAAA,kBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjC;YAED,OAAO,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;;AAjBe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,cAAc,CAAC;AAC7B,UAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,GAAG,SAAE,CAAC,KAAK,CAAC,KAAK,EAAE;CACpB,CAAC;kBANiB,IAAI"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/space/list.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAwC;AAExC,uCAAoC;AAGpC,2CAAwC;AAExC,qDAAiD;AACjD,qCAAoD;AAEpD,MAAqB,IAAK,SAAQ,0BAAwB;IAWxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACnB,OAAO,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAC;aAC1B;iBAAM;gBACL,IAAA,kBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;oBACnB,gFAAgF;oBAChF,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC;iBAC5C;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,MAAM,GAAG,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;QACrE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,MAAM,GAAG,IAAI,aAAK,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,IAAA,kBAAW,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,CAAC,KAAY,EAAE,EAAE,CAC9C,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YACvB,IAAI,EAAE,GAAG,EAAE;gBACT,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEL,yBAAyB;QACzB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,aAAa,CAAC,GAAG,CACf,QAAQ,EACR,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YACtB,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACtC,wCAAwC;gBACxC,MAAM;qBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;qBACxD,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACjB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;YACP,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC;;AAnEe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,cAAc,CAAC;AAC7B,UAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,GAAG,SAAE,CAAC,KAAK,CAAC,KAAK,EAAE;IACnB,IAAI,EAAE,YAAK,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,cAAc;KAC5B,CAAC;CACH,CAAC;kBATiB,IAAI"}
@@ -2,6 +2,9 @@ import { BaseCommand } from '../../base-command';
2
2
  export default class Members extends BaseCommand<typeof Members> {
3
3
  static enableJsonFlag: boolean;
4
4
  static description: string;
5
+ static args: {
6
+ key: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
7
+ };
5
8
  static flags: {
6
9
  columns: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
7
10
  sort: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
@@ -18,9 +21,7 @@ export default class Members extends BaseCommand<typeof Members> {
18
21
  config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
19
22
  'no-agent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
20
23
  timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
21
- };
22
- static args: {
23
- key: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
24
+ 'no-wait': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
24
25
  };
25
26
  run(): Promise<any>;
26
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/members.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW,CAAC,OAAO,OAAO,CAAC;IAC9D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAyB;IACpD,OAAgB,KAAK;;;;;;;;;;;;;;;;MAGnB;IAEF,OAAgB,IAAI;;MAAmE;IAEjF,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CA2B1B"}
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/members.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW,CAAC,OAAO,OAAO,CAAC;IAC9D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAyB;IACpD,OAAgB,IAAI;;MAAmE;IACvF,OAAgB,KAAK;;;;;;;;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAW1B"}
@@ -2,43 +2,30 @@
2
2
  //
3
3
  // Copyright 2022 DXOS.org
4
4
  //
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
5
  Object.defineProperty(exports, "__esModule", { value: true });
9
6
  const core_1 = require("@oclif/core");
10
- const node_assert_1 = __importDefault(require("node:assert"));
11
7
  const base_command_1 = require("../../base-command");
12
8
  const util_1 = require("../../util");
13
9
  class Members extends base_command_1.BaseCommand {
14
10
  async run() {
15
- let { key } = this.args;
16
11
  return await this.execWithClient(async (client) => {
17
- const spaces = client.spaces.get();
18
- if (!key) {
19
- key = await (0, util_1.selectSpace)(spaces);
20
- }
21
- (0, node_assert_1.default)(key);
22
- const space = spaces.find((space) => space.key.toHex().startsWith(key));
23
- if (!space) {
24
- this.log('Invalid key');
25
- return;
26
- }
27
- await space.waitUntilReady();
12
+ const space = await this.getSpace(client, this.args.key);
28
13
  const members = space.members.get();
29
- if (!this.flags.json) {
14
+ if (this.flags.json) {
15
+ return (0, util_1.mapMembers)(members);
16
+ }
17
+ else {
30
18
  (0, util_1.printMembers)(members, this.flags);
31
19
  }
32
- return (0, util_1.mapMembers)(members);
33
20
  });
34
21
  }
35
22
  }
36
23
  Members.enableJsonFlag = true;
37
24
  Members.description = 'List space members.';
25
+ Members.args = { key: core_1.Args.string({ description: 'Space key head in hex.' }) };
38
26
  Members.flags = {
39
27
  ...base_command_1.BaseCommand.flags,
40
28
  ...core_1.ux.table.flags(),
41
29
  };
42
- Members.args = { key: core_1.Args.string({ description: 'Space key head in hex.' }) };
43
30
  exports.default = Members;
44
31
  //# sourceMappingURL=members.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"members.js","sourceRoot":"","sources":["../../../../src/commands/space/members.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,sCAAuC;AACvC,8DAAiC;AAIjC,qDAAiD;AACjD,qCAAmE;AAEnE,MAAqB,OAAQ,SAAQ,0BAA2B;IAU9D,KAAK,CAAC,GAAG;QACP,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,EAAE;gBACR,GAAG,GAAG,MAAM,IAAA,kBAAW,EAAC,MAAM,CAAC,CAAC;aACjC;YAED,IAAA,qBAAM,EAAC,GAAG,CAAC,CAAC;YAEZ,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,GAAI,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACxB,OAAO;aACR;YAED,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpB,IAAA,mBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;YAED,OAAO,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;;AAnCe,sBAAc,GAAG,IAAI,CAAC;AACtB,mBAAW,GAAG,qBAAqB,CAAC;AACpC,aAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,GAAG,SAAE,CAAC,KAAK,CAAC,KAAK,EAAE;CACpB,CAAC;AAEc,YAAI,GAAG,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;kBARpE,OAAO"}
1
+ {"version":3,"file":"members.js","sourceRoot":"","sources":["../../../../src/commands/space/members.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAuC;AAIvC,qDAAiD;AACjD,qCAAsD;AAEtD,MAAqB,OAAQ,SAAQ,0BAA2B;IAS9D,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACnB,OAAO,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAC;aAC5B;iBAAM;gBACL,IAAA,mBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACnC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAlBe,sBAAc,GAAG,IAAI,CAAC;AACtB,mBAAW,GAAG,qBAAqB,CAAC;AACpC,YAAI,GAAG,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;AACvE,aAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,GAAG,SAAE,CAAC,KAAK,CAAC,KAAK,EAAE;CACpB,CAAC;kBAPiB,OAAO"}
@@ -1,9 +1,9 @@
1
1
  import { BaseCommand } from '../../base-command';
2
- export default class Invite extends BaseCommand<typeof Invite> {
2
+ export default class Open extends BaseCommand<typeof Open> {
3
3
  static description: string;
4
4
  static args: {
5
- key: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
5
+ key: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
6
6
  };
7
7
  run(): Promise<any>;
8
8
  }
9
- //# sourceMappingURL=invite.d.ts.map
9
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/open.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,OAAgB,WAAW,SAAiB;IAC5C,OAAgB,IAAI;;MAA0B;IAExC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAO1B"}
@@ -0,0 +1,20 @@
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
+ class Open extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { key } = this.args;
11
+ return await this.execWithClient(async (client) => {
12
+ const space = await this.getSpace(client, key, false);
13
+ await space.internal.open();
14
+ });
15
+ }
16
+ }
17
+ Open.description = 'Open space.';
18
+ Open.args = { key: core_1.Args.string() };
19
+ exports.default = Open;
20
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../../src/commands/space/open.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAmC;AAInC,qDAAiD;AAEjD,MAAqB,IAAK,SAAQ,0BAAwB;IAIxD,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;;AATe,gBAAW,GAAG,aAAa,CAAC;AAC5B,SAAI,GAAG,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,CAAC;kBAF3B,IAAI"}
@@ -0,0 +1,10 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class Query extends BaseCommand<typeof Query> {
3
+ static enableJsonFlag: boolean;
4
+ static description: string;
5
+ static args: {
6
+ key: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
7
+ };
8
+ run(): Promise<any>;
9
+ }
10
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/query.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IAC1D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAAqB;IAIhD,OAAgB,IAAI;;MAAmE;IAEjF,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAqB1B"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2023 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
+ class Query extends base_command_1.BaseCommand {
9
+ async run() {
10
+ const { key } = this.args;
11
+ return await this.execWithClient(async (client) => {
12
+ const space = await this.getSpace(client, key);
13
+ const { objects } = space.db.query({ type: 'test' });
14
+ if (this.flags.json) {
15
+ if (this.flags.verbose) {
16
+ return { objects };
17
+ }
18
+ else {
19
+ return { objects: objects.length };
20
+ }
21
+ }
22
+ else {
23
+ this.log('Objects:', objects.length);
24
+ if (this.flags.verbose) {
25
+ for (const object of objects) {
26
+ this.log(`- ${object.id}`);
27
+ }
28
+ }
29
+ }
30
+ });
31
+ }
32
+ }
33
+ Query.enableJsonFlag = true;
34
+ Query.description = 'Query database.';
35
+ // TODO(burdon): Implement basic predicates.
36
+ // TODO(burdon): Standardize and factor out selector.
37
+ Query.args = { key: core_1.Args.string({ description: 'Space key head in hex.' }) };
38
+ exports.default = Query;
39
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/commands/space/query.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,sCAAmC;AAInC,qDAAiD;AAEjD,MAAqB,KAAM,SAAQ,0BAAyB;IAQ1D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACnB,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,OAAO,EAAE,OAAO,EAAE,CAAC;iBACpB;qBAAM;oBACL,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;iBACpC;aACF;iBAAM;gBACL,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;wBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;qBAC5B;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AA3Be,oBAAc,GAAG,IAAI,CAAC;AACtB,iBAAW,GAAG,iBAAiB,CAAC;AAEhD,4CAA4C;AAC5C,qDAAqD;AACrC,UAAI,GAAG,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;kBANpE,KAAK"}
@@ -0,0 +1,21 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class Share extends BaseCommand<typeof Share> {
3
+ static description: string;
4
+ static args: {
5
+ key: import("@oclif/core/lib/interfaces/parser").Arg<string | undefined, Record<string, unknown>>;
6
+ };
7
+ static flags: {
8
+ multiple: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
+ 'no-auth': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
+ timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
11
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ 'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ profile: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
15
+ config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
16
+ 'no-agent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
+ 'no-wait': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
+ };
19
+ run(): Promise<any>;
20
+ }
21
+ //# sourceMappingURL=share.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../../../src/commands/space/share.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IAC1D,OAAgB,WAAW,SAA8B;IACzD,OAAgB,IAAI;;MAAmE;IACvF,OAAgB,KAAK;;;;;;;;;;;MAYnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CA8B1B"}
@@ -0,0 +1,62 @@
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
+ const core_1 = require("@oclif/core");
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const invitations_1 = require("@dxos/client/invitations");
12
+ const services_1 = require("@dxos/protocols/proto/dxos/client/services");
13
+ const base_command_1 = require("../../base-command");
14
+ const util_1 = require("../../util");
15
+ class Share extends base_command_1.BaseCommand {
16
+ async run() {
17
+ const { key } = this.args;
18
+ return await this.execWithClient(async (client) => {
19
+ const space = await this.getSpace(client, key);
20
+ // TODO(burdon): Timeout error not propagated.
21
+ const type = this.flags.multiple ? services_1.Invitation.Type.MULTIUSE : undefined;
22
+ const authMethod = this.flags['no-auth'] ? services_1.Invitation.AuthMethod.NONE : undefined;
23
+ const observable = space.createInvitation({ type, authMethod, timeout: this.flags.timeout });
24
+ const invitationSuccess = (0, util_1.hostInvitation)({
25
+ observable,
26
+ callbacks: {
27
+ onConnecting: async () => {
28
+ const invitationCode = invitations_1.InvitationEncoder.encode(observable.get());
29
+ this.log((0, chalk_1.default) `\n{blue Invitation}: ${invitationCode}`);
30
+ if (authMethod !== services_1.Invitation.AuthMethod.NONE) {
31
+ this.log((0, chalk_1.default) `\n{red Secret}: ${observable.get().authCode}\n`);
32
+ }
33
+ else {
34
+ this.log('');
35
+ }
36
+ },
37
+ },
38
+ });
39
+ // TODO(burdon): Display joined peer?
40
+ core_1.ux.action.start('Waiting for peer to connect');
41
+ await invitationSuccess;
42
+ core_1.ux.action.stop();
43
+ });
44
+ }
45
+ }
46
+ Share.description = 'Create space invitation.';
47
+ Share.args = { key: core_1.Args.string({ description: 'Space key head in hex.' }) };
48
+ Share.flags = {
49
+ ...base_command_1.BaseCommand.flags,
50
+ multiple: core_1.Flags.boolean({
51
+ description: 'Multiple use.',
52
+ }),
53
+ 'no-auth': core_1.Flags.boolean({
54
+ description: 'Skip authentication challenge.',
55
+ }),
56
+ timeout: core_1.Flags.integer({
57
+ description: 'Timeout in milliseconds.',
58
+ default: 5000,
59
+ }),
60
+ };
61
+ exports.default = Share;
62
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../../../src/commands/space/share.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,sCAA8C;AAC9C,kDAA0B;AAG1B,0DAA6D;AAC7D,yEAAwE;AAExE,qDAAiD;AACjD,qCAA4C;AAE5C,MAAqB,KAAM,SAAQ,0BAAyB;IAiB1D,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAE/C,8CAA8C;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,qBAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YAClF,MAAM,UAAU,GAAG,KAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9F,MAAM,iBAAiB,GAAG,IAAA,qBAAc,EAAC;gBACvC,UAAU;gBACV,SAAS,EAAE;oBACT,YAAY,EAAE,KAAK,IAAI,EAAE;wBACvB,MAAM,cAAc,GAAG,+BAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;wBAClE,IAAI,CAAC,GAAG,CAAC,IAAA,eAAK,EAAA,wBAAwB,cAAc,EAAE,CAAC,CAAC;wBACxD,IAAI,UAAU,KAAK,qBAAU,CAAC,UAAU,CAAC,IAAI,EAAE;4BAC7C,IAAI,CAAC,GAAG,CAAC,IAAA,eAAK,EAAA,mBAAmB,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC;yBACjE;6BAAM;4BACL,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;yBACd;oBACH,CAAC;iBACF;aACF,CAAC,CAAC;YAEH,qCAAqC;YACrC,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC/C,MAAM,iBAAiB,CAAC;YACxB,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;;AA7Ce,iBAAW,GAAG,0BAA0B,CAAC;AACzC,UAAI,GAAG,EAAE,GAAG,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;AACvE,WAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,QAAQ,EAAE,YAAK,CAAC,OAAO,CAAC;QACtB,WAAW,EAAE,eAAe;KAC7B,CAAC;IACF,SAAS,EAAE,YAAK,CAAC,OAAO,CAAC;QACvB,WAAW,EAAE,gCAAgC;KAC9C,CAAC;IACF,OAAO,EAAE,YAAK,CAAC,OAAO,CAAC;QACrB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,IAAK;KACf,CAAC;CACH,CAAC;kBAfiB,KAAK"}
@@ -0,0 +1,21 @@
1
+ import { BaseCommand } from '../../base-command';
2
+ export default class Tunnel extends BaseCommand<typeof Tunnel> {
3
+ static enableJsonFlag: boolean;
4
+ static description: string;
5
+ static args: {
6
+ command: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ name: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ 'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ profile: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
14
+ config: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
15
+ 'no-agent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
17
+ 'no-wait': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
+ };
19
+ run(): Promise<any>;
20
+ }
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/tunnel/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,OAAgB,cAAc,UAAQ;IACtC,OAAgB,WAAW,SAA+B;IAC1D,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;;;MAQnB;IAEI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAS1B"}
@@ -0,0 +1,41 @@
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 core_1 = require("@oclif/core");
10
+ const node_assert_1 = __importDefault(require("node:assert"));
11
+ const keys_1 = require("@dxos/keys");
12
+ const util_1 = require("@dxos/util");
13
+ const base_command_1 = require("../../base-command");
14
+ const util_2 = require("../../util");
15
+ class Tunnel extends base_command_1.BaseCommand {
16
+ async run() {
17
+ return await this.execWithTunneling(async (tunnel) => {
18
+ const { command } = this.args;
19
+ const { name } = this.flags;
20
+ const response = await tunnel.rpc.tunnel({ name, enabled: command === 'start' });
21
+ (0, node_assert_1.default)(response, 'Unable to set tunnel.');
22
+ (0, util_2.printTunnels)([response], this.flags);
23
+ });
24
+ }
25
+ }
26
+ Tunnel.enableJsonFlag = true;
27
+ Tunnel.description = 'Enable or disable tunnel.';
28
+ Tunnel.args = {
29
+ command: core_1.Args.string({ description: 'Start.', values: ['start', 'stop'], required: true }),
30
+ };
31
+ Tunnel.flags = {
32
+ ...base_command_1.BaseCommand.flags,
33
+ name: core_1.Flags.string({
34
+ description: 'Tunnel name',
35
+ async default() {
36
+ return (0, util_1.humanize)(keys_1.PublicKey.random());
37
+ },
38
+ }),
39
+ };
40
+ exports.default = Tunnel;
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/tunnel/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;AAEF,sCAA0C;AAC1C,8DAAiC;AAEjC,qCAAuC;AACvC,qCAAsC;AAEtC,qDAAiD;AACjD,qCAAyD;AAEzD,MAAqB,MAAO,SAAQ,0BAA0B;IAiB5D,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAqB,EAAE,EAAE;YAClE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC;YACjF,IAAA,qBAAM,EAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;YAC1C,IAAA,mBAAY,EAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;;AAxBe,qBAAc,GAAG,IAAI,CAAC;AACtB,kBAAW,GAAG,2BAA2B,CAAC;AAC1C,WAAI,GAAG;IACrB,OAAO,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;CAC3F,CAAC;AAEc,YAAK,GAAG;IACtB,GAAG,0BAAW,CAAC,KAAK;IACpB,IAAI,EAAE,YAAK,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,aAAa;QAC1B,KAAK,CAAC,OAAO;YACX,OAAO,IAAA,eAAQ,EAAC,gBAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;CACH,CAAC;kBAfiB,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/tunnel/list.ts"],"names":[],"mappings":"AAIA,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,SAAmB;IAExC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAS1B"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/tunnel/list.ts"],"names":[],"mappings":"AAIA,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,SAAmB;IAExC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;CAQ1B"}
@@ -8,11 +8,10 @@ const util_1 = require("../../util");
8
8
  class List extends base_command_1.BaseCommand {
9
9
  async run() {
10
10
  return await this.execWithTunneling(async (tunnel) => {
11
- const listResponse = await tunnel.rpc.listTunnels();
12
- if (!listResponse.tunnels) {
13
- throw new Error();
11
+ const response = await tunnel.rpc.listTunnels();
12
+ if (response.tunnels) {
13
+ (0, util_1.printTunnels)(response.tunnels, this.flags);
14
14
  }
15
- (0, util_1.printTunnels)(listResponse.tunnels, this.flags);
16
15
  });
17
16
  }
18
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/tunnel/list.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,qDAAiD;AACjD,qCAAyD;AAEzD,MAAqB,IAAK,SAAQ,0BAAwB;IAIxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAqB,EAAE,EAAE;YAClE,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBACzB,MAAM,IAAI,KAAK,EAAE,CAAC;aACnB;YACD,IAAA,mBAAY,EAAC,YAAY,CAAC,OAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;;AAXe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,eAAe,CAAC;kBAF3B,IAAI"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/tunnel/list.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;AAEF,qDAAiD;AACjD,qCAAyD;AAEzD,MAAqB,IAAK,SAAQ,0BAAwB;IAIxD,KAAK,CAAC,GAAG;QACP,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAqB,EAAE,EAAE;YAClE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACpB,IAAA,mBAAY,EAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAVe,mBAAc,GAAG,IAAI,CAAC;AACtB,gBAAW,GAAG,eAAe,CAAC;kBAF3B,IAAI"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { Client } from '@dxos/client';
3
+ /**
4
+ * Spaces list table.
5
+ */
6
+ export declare const App: FC<{
7
+ client: Client;
8
+ interval?: number;
9
+ }>;
10
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../src/components/App.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE,EAAE,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAuBzD,CAAC"}