@dxos/client-services 0.1.4 → 0.1.6

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 (160) hide show
  1. package/LICENSE +5 -18
  2. package/README.md +14 -10
  3. package/README.yml +5 -0
  4. package/dist/src/packlets/deprecated/profile.d.ts +2 -5
  5. package/dist/src/packlets/deprecated/profile.d.ts.map +1 -1
  6. package/dist/src/packlets/deprecated/profile.js +1 -73
  7. package/dist/src/packlets/deprecated/profile.js.map +1 -1
  8. package/dist/src/packlets/deprecated/system.d.ts +4 -0
  9. package/dist/src/packlets/deprecated/system.d.ts.map +1 -1
  10. package/dist/src/packlets/deprecated/system.js +6 -0
  11. package/dist/src/packlets/deprecated/system.js.map +1 -1
  12. package/dist/src/packlets/deprecated/tracing.d.ts +1 -1
  13. package/dist/src/packlets/deprecated/tracing.js +1 -1
  14. package/dist/src/packlets/devtools/devtools.d.ts +3 -0
  15. package/dist/src/packlets/devtools/devtools.d.ts.map +1 -1
  16. package/dist/src/packlets/devtools/devtools.js +3 -1
  17. package/dist/src/packlets/devtools/devtools.js.map +1 -1
  18. package/dist/src/packlets/identity/devices-service-impl.d.ts.map +1 -1
  19. package/dist/src/packlets/identity/devices-service-impl.js.map +1 -1
  20. package/dist/src/packlets/identity/identity-manager.d.ts +2 -2
  21. package/dist/src/packlets/identity/identity-manager.d.ts.map +1 -1
  22. package/dist/src/packlets/identity/identity-manager.js +44 -43
  23. package/dist/src/packlets/identity/identity-manager.js.map +1 -1
  24. package/dist/src/packlets/identity/identity.d.ts +3 -0
  25. package/dist/src/packlets/identity/identity.d.ts.map +1 -1
  26. package/dist/src/packlets/identity/identity.js +51 -1
  27. package/dist/src/packlets/identity/identity.js.map +1 -1
  28. package/dist/src/packlets/invitations/halo-invitations-handler.d.ts +23 -0
  29. package/dist/src/packlets/invitations/halo-invitations-handler.d.ts.map +1 -0
  30. package/dist/src/packlets/invitations/halo-invitations-handler.js +231 -0
  31. package/dist/src/packlets/invitations/halo-invitations-handler.js.map +1 -0
  32. package/dist/src/packlets/invitations/halo-invitations-handler.test.d.ts +2 -0
  33. package/dist/src/packlets/invitations/halo-invitations-handler.test.d.ts.map +1 -0
  34. package/dist/src/packlets/invitations/halo-invitations-handler.test.js +69 -0
  35. package/dist/src/packlets/invitations/halo-invitations-handler.test.js.map +1 -0
  36. package/dist/src/packlets/invitations/halo-invitations-proxy.d.ts +8 -0
  37. package/dist/src/packlets/invitations/halo-invitations-proxy.d.ts.map +1 -0
  38. package/dist/src/packlets/invitations/halo-invitations-proxy.js +17 -0
  39. package/dist/src/packlets/invitations/halo-invitations-proxy.js.map +1 -0
  40. package/dist/src/packlets/invitations/halo-invitations-service.d.ts +13 -0
  41. package/dist/src/packlets/invitations/halo-invitations-service.d.ts.map +1 -0
  42. package/dist/src/packlets/invitations/halo-invitations-service.js +20 -0
  43. package/dist/src/packlets/invitations/halo-invitations-service.js.map +1 -0
  44. package/dist/src/packlets/invitations/halo-invitations-service.test.d.ts +2 -0
  45. package/dist/src/packlets/invitations/halo-invitations-service.test.d.ts.map +1 -0
  46. package/dist/src/packlets/invitations/halo-invitations-service.test.js +83 -0
  47. package/dist/src/packlets/invitations/halo-invitations-service.test.js.map +1 -0
  48. package/dist/src/packlets/invitations/index.d.ts +5 -1
  49. package/dist/src/packlets/invitations/index.d.ts.map +1 -1
  50. package/dist/src/packlets/invitations/index.js +5 -1
  51. package/dist/src/packlets/invitations/index.js.map +1 -1
  52. package/dist/src/packlets/invitations/invitations-handler.d.ts +48 -0
  53. package/dist/src/packlets/invitations/invitations-handler.d.ts.map +1 -0
  54. package/dist/src/packlets/invitations/invitations-handler.js +18 -0
  55. package/dist/src/packlets/invitations/invitations-handler.js.map +1 -0
  56. package/dist/src/packlets/invitations/invitations-proxy.d.ts +11 -7
  57. package/dist/src/packlets/invitations/invitations-proxy.d.ts.map +1 -1
  58. package/dist/src/packlets/invitations/invitations-proxy.js +5 -10
  59. package/dist/src/packlets/invitations/invitations-proxy.js.map +1 -1
  60. package/dist/src/packlets/invitations/invitations-service.d.ts +25 -0
  61. package/dist/src/packlets/invitations/invitations-service.d.ts.map +1 -0
  62. package/dist/src/packlets/invitations/invitations-service.js +174 -0
  63. package/dist/src/packlets/invitations/invitations-service.js.map +1 -0
  64. package/dist/src/packlets/invitations/invitations.d.ts +10 -42
  65. package/dist/src/packlets/invitations/invitations.d.ts.map +1 -1
  66. package/dist/src/packlets/invitations/invitations.js +5 -2
  67. package/dist/src/packlets/invitations/invitations.js.map +1 -1
  68. package/dist/src/packlets/invitations/space-invitations-handler.d.ts +6 -6
  69. package/dist/src/packlets/invitations/space-invitations-handler.d.ts.map +1 -1
  70. package/dist/src/packlets/invitations/space-invitations-handler.js +18 -19
  71. package/dist/src/packlets/invitations/space-invitations-handler.js.map +1 -1
  72. package/dist/src/packlets/invitations/space-invitations-handler.test.js +5 -5
  73. package/dist/src/packlets/invitations/space-invitations-handler.test.js.map +1 -1
  74. package/dist/src/packlets/invitations/space-invitations-proxy.d.ts +1 -1
  75. package/dist/src/packlets/invitations/space-invitations-proxy.d.ts.map +1 -1
  76. package/dist/src/packlets/invitations/space-invitations-proxy.js +2 -2
  77. package/dist/src/packlets/invitations/space-invitations-proxy.js.map +1 -1
  78. package/dist/src/packlets/invitations/space-invitations-service.d.ts +8 -14
  79. package/dist/src/packlets/invitations/space-invitations-service.d.ts.map +1 -1
  80. package/dist/src/packlets/invitations/space-invitations-service.js +11 -169
  81. package/dist/src/packlets/invitations/space-invitations-service.js.map +1 -1
  82. package/dist/src/packlets/invitations/space-invitations-service.test.js +4 -4
  83. package/dist/src/packlets/invitations/space-invitations-service.test.js.map +1 -1
  84. package/dist/src/packlets/services/service-context.d.ts +2 -2
  85. package/dist/src/packlets/services/service-context.d.ts.map +1 -1
  86. package/dist/src/packlets/services/service-context.js +8 -8
  87. package/dist/src/packlets/services/service-context.js.map +1 -1
  88. package/dist/src/packlets/services/service-definitions.d.ts +5 -4
  89. package/dist/src/packlets/services/service-definitions.d.ts.map +1 -1
  90. package/dist/src/packlets/services/service-definitions.js +6 -4
  91. package/dist/src/packlets/services/service-definitions.js.map +1 -1
  92. package/dist/src/packlets/services/service-host.d.ts.map +1 -1
  93. package/dist/src/packlets/services/service-host.js +10 -8
  94. package/dist/src/packlets/services/service-host.js.map +1 -1
  95. package/dist/src/packlets/services/service-proxy.js +1 -1
  96. package/dist/src/packlets/services/service-registry.test.js +2 -2
  97. package/dist/src/packlets/services/service-registry.test.js.map +1 -1
  98. package/dist/src/packlets/vault/iframe-runtime.d.ts +5 -4
  99. package/dist/src/packlets/vault/iframe-runtime.d.ts.map +1 -1
  100. package/dist/src/packlets/vault/iframe-runtime.js +4 -12
  101. package/dist/src/packlets/vault/iframe-runtime.js.map +1 -1
  102. package/dist/src/packlets/vault/worker-runtime.d.ts +4 -3
  103. package/dist/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  104. package/dist/src/packlets/vault/worker-runtime.js +29 -24
  105. package/dist/src/packlets/vault/worker-runtime.js.map +1 -1
  106. package/dist/src/packlets/vault/worker-session.d.ts +5 -2
  107. package/dist/src/packlets/vault/worker-session.d.ts.map +1 -1
  108. package/dist/src/packlets/vault/worker-session.js +23 -10
  109. package/dist/src/packlets/vault/worker-session.js.map +1 -1
  110. package/package.json +26 -26
  111. package/src/packlets/deprecated/profile.ts +2 -84
  112. package/src/packlets/deprecated/system.ts +7 -0
  113. package/src/packlets/deprecated/tracing.ts +1 -1
  114. package/src/packlets/devtools/devtools.ts +3 -1
  115. package/src/packlets/identity/devices-service-impl.ts +0 -1
  116. package/src/packlets/identity/identity-manager.ts +50 -49
  117. package/src/packlets/identity/identity.ts +58 -1
  118. package/src/packlets/invitations/halo-invitations-handler.test.ts +79 -0
  119. package/src/packlets/invitations/halo-invitations-handler.ts +255 -0
  120. package/src/packlets/invitations/halo-invitations-proxy.ts +14 -0
  121. package/src/packlets/invitations/halo-invitations-service.test.ts +96 -0
  122. package/src/packlets/invitations/halo-invitations-service.ts +24 -0
  123. package/src/packlets/invitations/index.ts +5 -1
  124. package/src/packlets/invitations/invitations-handler.ts +59 -0
  125. package/src/packlets/invitations/invitations-proxy.ts +15 -13
  126. package/src/packlets/invitations/invitations-service.ts +184 -0
  127. package/src/packlets/invitations/invitations.ts +14 -46
  128. package/src/packlets/invitations/space-invitations-handler.test.ts +6 -6
  129. package/src/packlets/invitations/space-invitations-handler.ts +16 -16
  130. package/src/packlets/invitations/space-invitations-proxy.ts +2 -2
  131. package/src/packlets/invitations/space-invitations-service.test.ts +13 -13
  132. package/src/packlets/invitations/space-invitations-service.ts +16 -177
  133. package/src/packlets/services/service-context.ts +6 -6
  134. package/src/packlets/services/service-definitions.ts +20 -10
  135. package/src/packlets/services/service-host.ts +15 -7
  136. package/src/packlets/services/service-proxy.ts +1 -1
  137. package/src/packlets/services/service-registry.test.ts +5 -5
  138. package/src/packlets/vault/iframe-runtime.ts +8 -15
  139. package/src/packlets/vault/worker-runtime.ts +36 -30
  140. package/src/packlets/vault/worker-session.ts +20 -6
  141. package/dist/src/packlets/invitations/halo-invitations.d.ts +0 -23
  142. package/dist/src/packlets/invitations/halo-invitations.d.ts.map +0 -1
  143. package/dist/src/packlets/invitations/halo-invitations.js +0 -154
  144. package/dist/src/packlets/invitations/halo-invitations.js.map +0 -1
  145. package/dist/src/packlets/invitations/halo-invitations.test.d.ts +0 -2
  146. package/dist/src/packlets/invitations/halo-invitations.test.d.ts.map +0 -1
  147. package/dist/src/packlets/invitations/halo-invitations.test.js +0 -34
  148. package/dist/src/packlets/invitations/halo-invitations.test.js.map +0 -1
  149. package/dist/src/packlets/services/iframe-service-proxy.d.ts +0 -23
  150. package/dist/src/packlets/services/iframe-service-proxy.d.ts.map +0 -1
  151. package/dist/src/packlets/services/iframe-service-proxy.js +0 -53
  152. package/dist/src/packlets/services/iframe-service-proxy.js.map +0 -1
  153. package/dist/src/packlets/services/service-host.test.d.ts +0 -2
  154. package/dist/src/packlets/services/service-host.test.d.ts.map +0 -1
  155. package/dist/src/packlets/services/service-host.test.js +0 -68
  156. package/dist/src/packlets/services/service-host.test.js.map +0 -1
  157. package/src/packlets/invitations/halo-invitations.test.ts +0 -40
  158. package/src/packlets/invitations/halo-invitations.ts +0 -164
  159. package/src/packlets/services/iframe-service-proxy.ts +0 -71
  160. package/src/packlets/services/service-host.test.ts +0 -76
@@ -0,0 +1,48 @@
1
+ import { NetworkManager } from '@dxos/network-manager';
2
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { AuthenticatingInvitationObservable, InvitationObservable } from './invitations';
4
+ export declare type InvitationsOptions = {
5
+ type?: Invitation.Type;
6
+ timeout?: number;
7
+ };
8
+ /**
9
+ * Common interface for Halo and Space invitation proxies and handlers.
10
+ * Handles the life-cycle of Space invitations between peers.
11
+ *
12
+ * Host
13
+ * - Creates an invitation containing a swarm topic.
14
+ * - Joins the swarm with the topic and waits for guest's admission request.
15
+ * - Responds with admission offer then waits for guest's credentials.
16
+ * - Writes credentials to control feed then exits.
17
+ *
18
+ * Guest
19
+ * - Joins the swarm with the topic.
20
+ * - NOTE: The topic is transmitted out-of-band (e.g., via a QR code).
21
+ * - Sends an admission request.
22
+ * - If Space handler then creates a local cloned space (with genesis block).
23
+ * - Sends admission credentials (containing local device and feed keys).
24
+ *
25
+ * TODO(burdon): Show proxy/service relationship and reference design doc/diagram.
26
+ *
27
+ * ```
28
+ * [Guest] [Host]
29
+ * |-------------------------------------RequestAdmission-->|
30
+ * |<--AdmissionOffer---------------------------------------|
31
+ * |
32
+ * |--------------------------PresentAdmissionCredentials-->|
33
+ * ```
34
+ */
35
+ export interface InvitationsHandler<T = void> {
36
+ createInvitation(context: T, options?: InvitationsOptions): InvitationObservable;
37
+ acceptInvitation(invitation: Invitation, options?: InvitationsOptions): AuthenticatingInvitationObservable;
38
+ }
39
+ /**
40
+ * Base class for Halo/Space invitations handlers.
41
+ */
42
+ export declare abstract class AbstractInvitationsHandler<T = void> implements InvitationsHandler<T> {
43
+ protected readonly _networkManager: NetworkManager;
44
+ protected constructor(_networkManager: NetworkManager);
45
+ abstract createInvitation(context: T, options?: InvitationsOptions): InvitationObservable;
46
+ abstract acceptInvitation(invitation: Invitation, options?: InvitationsOptions): AuthenticatingInvitationObservable;
47
+ }
48
+ //# sourceMappingURL=invitations-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,OAAO,EAAE,kCAAkC,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEzF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,IAAI;IAC1C,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IACjF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,kCAAkC,CAAC;CAC5G;AAED;;GAEG;AAEH,8BAAsB,0BAA0B,CAAC,CAAC,GAAG,IAAI,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;IAGvF,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc;IADpD,SAAS,aACY,eAAe,EAAE,cAAc;IAGpD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,oBAAoB;IACzF,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,kCAAkC;CACpH"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AbstractInvitationsHandler = void 0;
7
+ /**
8
+ * Base class for Halo/Space invitations handlers.
9
+ */
10
+ // TODO(burdon): Extract common functionality.
11
+ class AbstractInvitationsHandler {
12
+ // prettier-ignore
13
+ constructor(_networkManager) {
14
+ this._networkManager = _networkManager;
15
+ }
16
+ }
17
+ exports.AbstractInvitationsHandler = AbstractInvitationsHandler;
18
+ //# sourceMappingURL=invitations-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-handler.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;AA4CF;;GAEG;AACH,8CAA8C;AAC9C,MAAsB,0BAA0B;IAC9C,kBAAkB;IAClB,YACqB,eAA+B;QAA/B,oBAAe,GAAf,eAAe,CAAgB;IACjD,CAAC;CAIL;AARD,gEAQC"}
@@ -1,14 +1,18 @@
1
- import { Invitation, InvitationsService } from '@dxos/protocols/proto/dxos/client/services';
2
- import { AuthenticatingInvitationObservable, CreateInvitationsOptions, InvitationsProxy, InvitationObservable } from './invitations';
1
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
2
+ import { AuthenticatingInvitationObservable, InvitationObservable, InvitationsService } from './invitations';
3
+ import { InvitationsOptions, InvitationsHandler } from './invitations-handler';
3
4
  /**
4
5
  * Adapts invitations service observable to client/service stream.
5
- * Used by both HALO and Spaces client/service interfaces.
6
+ * Common base class for HALO and Spaces implementations.
6
7
  */
7
- export declare abstract class AbstractInvitationsProxy<T> implements InvitationsProxy<T> {
8
+ export interface InvitationsProxy<T = void> extends InvitationsHandler<T> {
9
+ getInvitationOptions(context: T): Invitation;
10
+ }
11
+ export declare abstract class AbstractInvitationsProxy<T = void> implements InvitationsProxy<T> {
8
12
  private readonly _invitationsService;
9
13
  constructor(_invitationsService: InvitationsService);
10
- abstract createInvitationObject(context: T): Invitation;
11
- createInvitation(context: T, options?: CreateInvitationsOptions): InvitationObservable;
12
- acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;
14
+ abstract getInvitationOptions(context: T): Invitation;
15
+ createInvitation(context: T, options?: InvitationsOptions): InvitationObservable;
16
+ acceptInvitation(invitation: Invitation, options?: InvitationsOptions): AuthenticatingInvitationObservable;
13
17
  }
14
18
  //# sourceMappingURL=invitations-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-proxy.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-proxy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,EACL,kCAAkC,EAElC,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EAErB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,8BAAsB,wBAAwB,CAAC,CAAC,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAG5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,kBAAkB;IAG1D,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU;IAEvD,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,oBAAoB;IA4DtF,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,kCAAkC;CAgE7E"}
1
+ {"version":3,"file":"invitations-proxy.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-proxy.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,OAAO,EACL,kCAAkC,EAElC,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IACvE,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;CAC9C;AAED,8BAAsB,wBAAwB,CAAC,CAAC,GAAG,IAAI,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;IAGnF,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,kBAAkB;IAG1D,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU;IAErD,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,oBAAoB;IA0DhF,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,kCAAkC;CAgE3G"}
@@ -12,24 +12,19 @@ const async_1 = require("@dxos/async");
12
12
  const log_1 = require("@dxos/log");
13
13
  const services_1 = require("@dxos/protocols/proto/dxos/client/services");
14
14
  const invitations_1 = require("./invitations");
15
- /**
16
- * Adapts invitations service observable to client/service stream.
17
- * Used by both HALO and Spaces client/service interfaces.
18
- */
19
15
  class AbstractInvitationsProxy {
20
16
  // prettier-ignore
21
17
  constructor(_invitationsService) {
22
18
  this._invitationsService = _invitationsService;
23
19
  }
24
20
  createInvitation(context, options) {
25
- (0, assert_1.default)(context);
26
21
  let invitationId;
27
22
  const observable = new invitations_1.InvitationObservableProvider(async () => {
28
23
  if (invitationId) {
29
24
  await this._invitationsService.cancelInvitation({ invitationId });
30
25
  }
31
26
  });
32
- const invitation = { ...this.createInvitationObject(context), ...options };
27
+ const invitation = { ...this.getInvitationOptions(context), ...options };
33
28
  const stream = this._invitationsService.createInvitation(invitation);
34
29
  stream.subscribe((invitation) => {
35
30
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
@@ -58,7 +53,7 @@ class AbstractInvitationsProxy {
58
53
  break;
59
54
  }
60
55
  default: {
61
- log_1.log.error(`Invalid state: ${invitation.state}`, {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-proxy.ts", line: 79 });
56
+ log_1.log.error(`Invalid state: ${invitation.state}`, {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-proxy.ts", line: 81 });
62
57
  }
63
58
  }
64
59
  }, (err) => {
@@ -68,7 +63,7 @@ class AbstractInvitationsProxy {
68
63
  });
69
64
  return observable;
70
65
  }
71
- acceptInvitation(invitation) {
66
+ acceptInvitation(invitation, options) {
72
67
  (0, assert_1.default)(invitation && invitation.swarmKey);
73
68
  const observable = new invitations_1.AuthenticatingInvitationProvider({
74
69
  onCancel: async () => {
@@ -84,7 +79,7 @@ class AbstractInvitationsProxy {
84
79
  await this._invitationsService.authenticate({ invitationId, authenticationCode });
85
80
  }
86
81
  });
87
- const stream = this._invitationsService.acceptInvitation(invitation);
82
+ const stream = this._invitationsService.acceptInvitation({ ...invitation, ...options });
88
83
  stream.subscribe((invitation) => {
89
84
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
90
85
  (0, assert_1.default)(invitation.invitationId);
@@ -111,7 +106,7 @@ class AbstractInvitationsProxy {
111
106
  break;
112
107
  }
113
108
  default: {
114
- log_1.log.error(`Invalid state: ${invitation.state}`, {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-proxy.ts", line: 144 });
109
+ log_1.log.error(`Invalid state: ${invitation.state}`, {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-proxy.ts", line: 146 });
115
110
  }
116
111
  }
117
112
  }, (err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-proxy.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invitations-proxy.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-proxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Stream } from '@dxos/codec-protobuf';
2
+ import { AuthenticationRequest, Invitation } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { Provider } from '@dxos/util';
4
+ import { IdentityManager } from '../identity';
5
+ import { InvitationsService } from './invitations';
6
+ import { InvitationsHandler, InvitationsOptions } from './invitations-handler';
7
+ /**
8
+ * Adapts invitation service observable to client/service stream.
9
+ */
10
+ export declare abstract class AbstractInvitationsService<T = void> implements InvitationsService {
11
+ private readonly _identityManager;
12
+ private readonly _getInvitationsHandler;
13
+ private readonly _createInvitations;
14
+ private readonly _acceptInvitations;
15
+ protected constructor(_identityManager: IdentityManager, _getInvitationsHandler: Provider<InvitationsHandler<T>>);
16
+ getLoggingContext(): {
17
+ deviceKey: import("@dxos/keys").PublicKey | undefined;
18
+ };
19
+ abstract getContext(invitation: Invitation): T;
20
+ createInvitation(invitation: Invitation): Stream<Invitation>;
21
+ acceptInvitation(invitation: Invitation, options?: InvitationsOptions): Stream<Invitation>;
22
+ authenticate({ invitationId, authenticationCode }: AuthenticationRequest): Promise<void>;
23
+ cancelInvitation(invitation: Invitation): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=invitations-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-service.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAuE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E;;GAEG;AACH,8BAAsB,0BAA0B,CAAC,CAAC,GAAG,IAAI,CAAE,YAAW,kBAAkB;IAMpF,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IANzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsD;IACzF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyD;IAG5F,SAAS,aACU,gBAAgB,EAAE,eAAe,EACjC,sBAAsB,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAI1E,iBAAiB;;;IAMjB,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC;IAE9C,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IA+D5D,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;IA4DpF,YAAY,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxF,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAW9D"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ //
3
+ // Copyright 2022 DXOS.org
4
+ //
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AbstractInvitationsService = void 0;
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const codec_protobuf_1 = require("@dxos/codec-protobuf");
12
+ const log_1 = require("@dxos/log");
13
+ const services_1 = require("@dxos/protocols/proto/dxos/client/services");
14
+ /**
15
+ * Adapts invitation service observable to client/service stream.
16
+ */
17
+ class AbstractInvitationsService {
18
+ // prettier-ignore
19
+ constructor(_identityManager, _getInvitationsHandler) {
20
+ this._identityManager = _identityManager;
21
+ this._getInvitationsHandler = _getInvitationsHandler;
22
+ this._createInvitations = new Map();
23
+ this._acceptInvitations = new Map();
24
+ }
25
+ // TODO(burdon): Guest/host label.
26
+ getLoggingContext() {
27
+ var _a;
28
+ return {
29
+ deviceKey: (_a = this._identityManager.identity) === null || _a === void 0 ? void 0 : _a.deviceKey
30
+ };
31
+ }
32
+ createInvitation(invitation) {
33
+ return new codec_protobuf_1.Stream(({ next, close }) => {
34
+ const invitationsHandler = this._getInvitationsHandler();
35
+ const context = this.getContext(invitation);
36
+ (0, log_1.log)('stream opened', this.getLoggingContext(), { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 43 });
37
+ let invitationId;
38
+ const { type } = invitation;
39
+ const observable = invitationsHandler.createInvitation(context, { type });
40
+ observable.subscribe({
41
+ onConnecting: (invitation) => {
42
+ (0, assert_1.default)(invitation.invitationId);
43
+ invitationId = invitation.invitationId;
44
+ this._createInvitations.set(invitation.invitationId, observable);
45
+ invitation.state = services_1.Invitation.State.CONNECTING;
46
+ next(invitation);
47
+ },
48
+ onConnected: (invitation) => {
49
+ (0, assert_1.default)(invitation.invitationId);
50
+ invitation.state = services_1.Invitation.State.CONNECTED;
51
+ next(invitation);
52
+ },
53
+ onAuthenticating: (invitation) => {
54
+ (0, assert_1.default)(invitation.invitationId);
55
+ invitation.state = services_1.Invitation.State.AUTHENTICATING;
56
+ next(invitation);
57
+ },
58
+ onSuccess: (invitation) => {
59
+ (0, assert_1.default)(invitation.invitationId);
60
+ invitation.state = services_1.Invitation.State.SUCCESS;
61
+ next(invitation);
62
+ close();
63
+ },
64
+ onCancelled: () => {
65
+ (0, assert_1.default)(invitationId);
66
+ invitation.invitationId = invitationId;
67
+ invitation.state = services_1.Invitation.State.CANCELLED;
68
+ next(invitation);
69
+ close();
70
+ },
71
+ onTimeout: (err) => {
72
+ invitation.state = services_1.Invitation.State.TIMEOUT;
73
+ close(err);
74
+ },
75
+ onError: (err) => {
76
+ invitation.state = services_1.Invitation.State.ERROR;
77
+ close(err);
78
+ }
79
+ });
80
+ return (err) => {
81
+ const context = this.getLoggingContext();
82
+ if (err) {
83
+ log_1.log.warn('stream closed', { ...context, err }, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 92 });
84
+ }
85
+ else {
86
+ (0, log_1.log)('stream closed', context, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 94 });
87
+ }
88
+ this._createInvitations.delete(invitation.invitationId);
89
+ };
90
+ });
91
+ }
92
+ acceptInvitation(invitation, options) {
93
+ return new codec_protobuf_1.Stream(({ next, close }) => {
94
+ (0, log_1.log)('stream opened', this.getLoggingContext(), { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 104 });
95
+ const invitationsHandler = this._getInvitationsHandler();
96
+ let invitationId;
97
+ const observable = invitationsHandler.acceptInvitation(invitation, options);
98
+ observable.subscribe({
99
+ onConnecting: (invitation) => {
100
+ (0, assert_1.default)(invitation.invitationId);
101
+ invitationId = invitation.invitationId;
102
+ this._acceptInvitations.set(invitation.invitationId, observable);
103
+ invitation.state = services_1.Invitation.State.CONNECTING;
104
+ next(invitation);
105
+ },
106
+ onConnected: (invitation) => {
107
+ (0, assert_1.default)(invitation.invitationId);
108
+ invitation.state = services_1.Invitation.State.CONNECTED;
109
+ next(invitation);
110
+ },
111
+ onAuthenticating: (invitation) => {
112
+ (0, assert_1.default)(invitation.invitationId);
113
+ invitation.state = services_1.Invitation.State.AUTHENTICATING;
114
+ next(invitation);
115
+ },
116
+ onSuccess: (invitation) => {
117
+ invitation.state = services_1.Invitation.State.SUCCESS;
118
+ next(invitation);
119
+ close();
120
+ },
121
+ onCancelled: () => {
122
+ (0, assert_1.default)(invitationId);
123
+ invitation.invitationId = invitationId;
124
+ invitation.state = services_1.Invitation.State.CANCELLED;
125
+ next(invitation);
126
+ close();
127
+ },
128
+ onTimeout: (err) => {
129
+ invitation.state = services_1.Invitation.State.TIMEOUT;
130
+ close(err);
131
+ },
132
+ onError: (err) => {
133
+ invitation.state = services_1.Invitation.State.ERROR;
134
+ close(err);
135
+ }
136
+ });
137
+ return (err) => {
138
+ const context = this.getLoggingContext();
139
+ if (err) {
140
+ log_1.log.warn('stream closed', { ...context, err }, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 152 });
141
+ }
142
+ else {
143
+ (0, log_1.log)('stream closed', context, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 154 });
144
+ }
145
+ this._acceptInvitations.delete(invitation.invitationId);
146
+ };
147
+ });
148
+ }
149
+ async authenticate({ invitationId, authenticationCode }) {
150
+ (0, log_1.log)('authenticating...', {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 163 });
151
+ (0, assert_1.default)(invitationId);
152
+ const observable = this._acceptInvitations.get(invitationId);
153
+ if (!observable) {
154
+ log_1.log.warn('invalid invitation', { invitationId }, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 167 });
155
+ }
156
+ else {
157
+ await observable.authenticate(authenticationCode);
158
+ }
159
+ }
160
+ async cancelInvitation(invitation) {
161
+ var _a;
162
+ (0, log_1.log)('cancelling...', {}, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 174 });
163
+ (0, assert_1.default)(invitation.invitationId);
164
+ const observable = (_a = this._createInvitations.get(invitation.invitationId)) !== null && _a !== void 0 ? _a : this._acceptInvitations.get(invitation.invitationId);
165
+ if (!observable) {
166
+ log_1.log.warn('invalid invitation', { invitationId: invitation.invitationId }, { file: "packages/sdk/client-services/src/packlets/invitations/invitations-service.ts", line: 179 });
167
+ }
168
+ else {
169
+ await (observable === null || observable === void 0 ? void 0 : observable.cancel());
170
+ }
171
+ }
172
+ }
173
+ exports.AbstractInvitationsService = AbstractInvitationsService;
174
+ //# sourceMappingURL=invitations-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-service.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations-service.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAG5B,yDAA8C;AAC9C,mCAAgC;AAChC,yEAA+F;AAO/F;;GAEG;AACH,MAAsB,0BAA0B;IAI9C,kBAAkB;IAClB,YACmB,gBAAiC,EACjC,sBAAuD;QADvD,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,2BAAsB,GAAtB,sBAAsB,CAAiC;QANzD,uBAAkB,GAAG,IAAI,GAAG,EAA2C,CAAC;QACxE,uBAAkB,GAAG,IAAI,GAAG,EAA8C,CAAC;IAMzF,CAAC;IAEJ,kCAAkC;IAClC,iBAAiB;;QACf,OAAO;YACL,SAAS,EAAE,MAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,0CAAE,SAAS;SACrD,CAAC;IACJ,CAAC;IAID,gBAAgB,CAAC,UAAsB;QACrC,OAAO,IAAI,uBAAM,CAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAChD,MAAM,kBAAkB,GAA0B,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAA,SAAG,EAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,qGAAC,CAAC;YAE/C,IAAI,YAAoB,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;YAC5B,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,UAAU,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC3B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;oBACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACjE,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC1B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC/B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,cAAc,CAAC;oBACnD,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;oBACxB,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjB,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,WAAW,EAAE,GAAG,EAAE;oBAChB,IAAA,gBAAM,EAAC,YAAY,CAAC,CAAC;oBACrB,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;oBACvC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjB,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,SAAS,EAAE,CAAC,GAAiB,EAAE,EAAE;oBAC/B,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5C,KAAK,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;gBACD,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACpB,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,GAAW,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzC,IAAI,GAAG,EAAE;oBACP,SAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,qGAAC,CAAC;iBAChD;qBAAM;oBACL,IAAA,SAAG,EAAC,eAAe,EAAE,OAAO,qGAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC;YAC3D,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,UAAsB,EAAE,OAA4B;QACnE,OAAO,IAAI,uBAAM,CAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;YAChD,IAAA,SAAG,EAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,sGAAC,CAAC;YAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAEzD,IAAI,YAAoB,CAAC;YACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC5E,UAAU,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC3B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;oBACvC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;oBACjE,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,UAAU,CAAC;oBAC/C,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC1B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE;oBAC/B,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,cAAc,CAAC;oBACnD,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnB,CAAC;gBACD,SAAS,EAAE,CAAC,UAAU,EAAE,EAAE;oBACxB,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5C,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjB,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,WAAW,EAAE,GAAG,EAAE;oBAChB,IAAA,gBAAM,EAAC,YAAY,CAAC,CAAC;oBACrB,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;oBACvC,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,SAAS,CAAC;oBAC9C,IAAI,CAAC,UAAU,CAAC,CAAC;oBACjB,KAAK,EAAE,CAAC;gBACV,CAAC;gBACD,SAAS,EAAE,CAAC,GAAiB,EAAE,EAAE;oBAC/B,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5C,KAAK,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;gBACD,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACpB,UAAU,CAAC,KAAK,GAAG,qBAAU,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC1C,KAAK,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,GAAW,EAAE,EAAE;gBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzC,IAAI,GAAG,EAAE;oBACP,SAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,sGAAC,CAAC;iBAChD;qBAAM;oBACL,IAAA,SAAG,EAAC,eAAe,EAAE,OAAO,sGAAC,CAAC;iBAC/B;gBAED,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,YAAa,CAAC,CAAC;YAC3D,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,kBAAkB,EAAyB;QAC5E,IAAA,SAAG,EAAC,mBAAmB,0GAAC,CAAC;QACzB,IAAA,gBAAM,EAAC,YAAY,CAAC,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE;YACf,SAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,sGAAC,CAAC;SAClD;aAAM;YACL,MAAM,UAAU,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;SACnD;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,UAAsB;;QAC3C,IAAA,SAAG,EAAC,eAAe,0GAAC,CAAC;QACrB,IAAA,gBAAM,EAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChC,MAAM,UAAU,GACd,MAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,mCAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/G,IAAI,CAAC,UAAU,EAAE;YACf,SAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,sGAAC,CAAC;SAC3E;aAAM;YACL,MAAM,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,EAAE,CAAA,CAAC;SAC5B;IACH,CAAC;CACF;AApKD,gEAoKC"}
@@ -1,10 +1,15 @@
1
1
  import { AsyncEvents, CancellableObservable, CancellableObservableEvents, Observable, CancellableObservableProvider } from '@dxos/async';
2
- import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
2
+ import type { Stream } from '@dxos/codec-protobuf';
3
+ import { AuthenticationRequest, CancelInvitationRequest, Invitation } from '@dxos/protocols/proto/dxos/client/services';
3
4
  export declare const AUTHENTICATION_CODE_LENGTH = 6;
4
- export declare type CreateInvitationsOptions = {
5
- type?: Invitation.Type;
6
- timeout?: number;
7
- };
5
+ export declare const INVITATION_TIMEOUT: number;
6
+ export declare const ON_CLOSE_DELAY = 500;
7
+ export interface InvitationsService {
8
+ createInvitation(invitation: Invitation): Stream<Invitation>;
9
+ authenticate(request: AuthenticationRequest): Promise<void>;
10
+ acceptInvitation(invitation: Invitation): Stream<Invitation>;
11
+ cancelInvitation(request: CancelInvitationRequest): Promise<void>;
12
+ }
8
13
  /**
9
14
  * Common invitation events (callbacks) for creating and accepting invitations.
10
15
  */
@@ -45,43 +50,6 @@ export declare class AuthenticatingInvitationProvider extends InvitationObservab
45
50
  constructor(_actions: AuthenticatingInvitationProviderActions);
46
51
  authenticate(authenticationCode: string): Promise<void>;
47
52
  }
48
- /**
49
- * Common interface for Halo and Space invitation proxies and handlers.
50
- * Handles the life-cycle of Space invitations between peers.
51
- *
52
- * Host
53
- * - Creates an invitation containing a swarm topic.
54
- * - Joins the swarm with the topic and waits for guest's admission request.
55
- * - Responds with admission offer then waits for guest's credentials.
56
- * - Writes credentials to control feed then exits.
57
- *
58
- * Guest
59
- * - Joins the swarm with the topic.
60
- * - NOTE: The topic is transmitted out-of-band (e.g., via a QR code).
61
- * - Sends an admission request.
62
- * - If Space handler then creates a local cloned space (with genesis block).
63
- * - Sends admission credentials (containing local device and feed keys).
64
- *
65
- * TODO(burdon): Show proxy/service relationship and reference design doc/diagram.
66
- *
67
- * ```
68
- * [Guest] [Host]
69
- * |-------------------------------------RequestAdmission-->|
70
- * |<--AdmissionOffer---------------------------------------|
71
- * |
72
- * |--------------------------PresentAdmissionCredentials-->|
73
- * ```
74
- */
75
- export interface InvitationsHandler<T> {
76
- createInvitation(context: T, options?: CreateInvitationsOptions): InvitationObservable;
77
- acceptInvitation(invitation: Invitation): AuthenticatingInvitationObservable;
78
- }
79
- /**
80
- * Common interface for Halo and Space proxies.
81
- */
82
- export interface InvitationsProxy<T> extends InvitationsHandler<T> {
83
- createInvitationObject(context: T): Invitation;
84
- }
85
53
  /**
86
54
  * Util to wrap observable with promise.
87
55
  * @deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,oBAAY,wBAAwB,GAAG;IACrC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AAEH,MAAM,WAAW,gBAAiB,SAAQ,WAAW,EAAE,2BAA2B;IAChF,YAAY,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,gBAAgB,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB,CAAC,gBAAgB,CAAC;IACnF,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,4BACX,SAAQ,6BAA6B,CAAC,gBAAgB,CACtD,YAAW,oBAAoB;IAE/B,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;IAED,aAAa,CAAC,UAAU,EAAE,UAAU;CAGrC;AAED;;GAEG;AACH,oBAAY,+BAA+B,GAAG,oBAAoB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,+BAA+B;IACzF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,gCACX,SAAQ,4BACR,YAAW,kCAAkC;IAI3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,uCAAuC;IAK9D,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAEnC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,oBAAoB,CAAC;IACvF,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,kCAAkC,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAChE,sBAAsB,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;CAChD;AAED;;;GAGG;AAEH,eAAO,MAAM,oBAAoB,eAAsB,WAAW,gBAAgB,CAAC,KAAG,QAAQ,UAAU,CAcvG,CAAC"}
1
+ {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,6BAA6B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExH,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAG7C,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AAED;;GAEG;AAEH,MAAM,WAAW,gBAAiB,SAAQ,WAAW,EAAE,2BAA2B;IAChF,YAAY,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3C,gBAAgB,CAAC,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB,CAAC,gBAAgB,CAAC;IACnF,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,4BACX,SAAQ,6BAA6B,CAAC,gBAAgB,CACtD,YAAW,oBAAoB;IAE/B,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;IAED,aAAa,CAAC,UAAU,EAAE,UAAU;CAGrC;AAED;;GAEG;AACH,oBAAY,+BAA+B,GAAG,oBAAoB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,+BAA+B;IACzF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,gCACX,SAAQ,4BACR,YAAW,kCAAkC;IAI3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,uCAAuC;IAK9D,YAAY,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9D;AAED;;;GAGG;AAEH,eAAO,MAAM,oBAAoB,eAAsB,WAAW,gBAAgB,CAAC,KAAG,QAAQ,UAAU,CAcvG,CAAC"}
@@ -6,11 +6,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.invitationObservable = exports.AuthenticatingInvitationProvider = exports.InvitationObservableProvider = exports.AUTHENTICATION_CODE_LENGTH = void 0;
9
+ exports.invitationObservable = exports.AuthenticatingInvitationProvider = exports.InvitationObservableProvider = exports.ON_CLOSE_DELAY = exports.INVITATION_TIMEOUT = exports.AUTHENTICATION_CODE_LENGTH = void 0;
10
10
  const assert_1 = __importDefault(require("assert"));
11
11
  const async_1 = require("@dxos/async");
12
12
  const services_1 = require("@dxos/protocols/proto/dxos/client/services");
13
13
  exports.AUTHENTICATION_CODE_LENGTH = 6;
14
+ exports.INVITATION_TIMEOUT = 3 * 60000; // 3 mins.
15
+ // TODO(burdon): Don't close until RPC has complete (bug).
16
+ exports.ON_CLOSE_DELAY = 500;
14
17
  class InvitationObservableProvider extends async_1.CancellableObservableProvider {
15
18
  get invitation() {
16
19
  return this._invitation;
@@ -35,7 +38,7 @@ exports.AuthenticatingInvitationProvider = AuthenticatingInvitationProvider;
35
38
  * Util to wrap observable with promise.
36
39
  * @deprecated
37
40
  */
38
- // TODO(burdon): Replace with InvitationObservableProvider.
41
+ // TODO(burdon): Replace with ObservableInvitationProvider.
39
42
  const invitationObservable = async (observable) => {
40
43
  return new Promise((resolve, reject) => {
41
44
  const unsubscribe = observable.subscribe({
@@ -1 +1 @@
1
- {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAE5B,uCAMqB;AACrB,yEAAwE;AAE3D,QAAA,0BAA0B,GAAG,CAAC,CAAC;AA0B5C,MAAa,4BACX,SAAQ,qCAA+C;IAKvD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;CACF;AAbD,oEAaC;AAmBD,MAAa,gCACX,SAAQ,4BAA4B;IAGpC,kBAAkB;IAClB,YACmB,QAAiD;QAElE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAFrB,aAAQ,GAAR,QAAQ,CAAyC;IAGpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,kBAA0B;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;CACF;AAdD,4EAcC;AA0CD;;;GAGG;AACH,2DAA2D;AACpD,MAAM,oBAAoB,GAAG,KAAK,EAAE,UAAwC,EAAuB,EAAE;IAC1G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,CAAC,UAAsB,EAAE,EAAE;gBACpC,IAAA,gBAAM,EAAC,UAAU,CAAC,KAAK,KAAK,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtD,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACtB,WAAW,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B"}
1
+ {"version":3,"file":"invitations.js","sourceRoot":"","sources":["../../../../src/packlets/invitations/invitations.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;AAEF,oDAA4B;AAE5B,uCAMqB;AAErB,yEAAwH;AAE3G,QAAA,0BAA0B,GAAG,CAAC,CAAC;AAE/B,QAAA,kBAAkB,GAAG,CAAC,GAAG,KAAM,CAAC,CAAC,UAAU;AAExD,0DAA0D;AAC7C,QAAA,cAAc,GAAG,GAAG,CAAC;AA4BlC,MAAa,4BACX,SAAQ,qCAA+C;IAKvD,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;CACF;AAbD,oEAaC;AAmBD,MAAa,gCACX,SAAQ,4BAA4B;IAGpC,kBAAkB;IAClB,YACmB,QAAiD;QAElE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAFrB,aAAQ,GAAR,QAAQ,CAAyC;IAGpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,kBAA0B;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;CACF;AAdD,4EAcC;AAED;;;GAGG;AACH,2DAA2D;AACpD,MAAM,oBAAoB,GAAG,KAAK,EAAE,UAAwC,EAAuB,EAAE;IAC1G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC;YACvC,SAAS,EAAE,CAAC,UAAsB,EAAE,EAAE;gBACpC,IAAA,gBAAM,EAAC,UAAU,CAAC,KAAK,KAAK,qBAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtD,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACtB,WAAW,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B"}
@@ -1,24 +1,24 @@
1
1
  import { SigningContext, Space, SpaceManager } from '@dxos/echo-db';
2
2
  import { NetworkManager } from '@dxos/network-manager';
3
3
  import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
4
- import { AuthenticatingInvitationProvider, CreateInvitationsOptions, InvitationsHandler, InvitationObservable } from './invitations';
4
+ import { AuthenticatingInvitationProvider, InvitationObservable } from './invitations';
5
+ import { AbstractInvitationsHandler, InvitationsOptions } from './invitations-handler';
5
6
  /**
6
7
  * Handles the life-cycle of Space invitations between peers.
7
8
  */
8
- export declare class SpaceInvitationsHandler implements InvitationsHandler<Space> {
9
+ export declare class SpaceInvitationsHandler extends AbstractInvitationsHandler<Space> {
9
10
  private readonly _spaceManager;
10
- private readonly _networkManager;
11
11
  private readonly _signingContext;
12
- constructor(_spaceManager: SpaceManager, _networkManager: NetworkManager, _signingContext: SigningContext);
12
+ constructor(networkManager: NetworkManager, _spaceManager: SpaceManager, _signingContext: SigningContext);
13
13
  /**
14
14
  * Creates an invitation and listens for a join request from the invited (guest) peer.
15
15
  */
16
- createInvitation(space: Space, options?: CreateInvitationsOptions): InvitationObservable;
16
+ createInvitation(space: Space, options?: InvitationsOptions): InvitationObservable;
17
17
  /**
18
18
  * Waits for the host peer (inviter) to accept our join request.
19
19
  * The local guest peer (invitee) then sends the local space invitation to the host,
20
20
  * which then writes the guest's credentials to the space.
21
21
  */
22
- acceptInvitation(invitation: Invitation): AuthenticatingInvitationProvider;
22
+ acceptInvitation(invitation: Invitation, options?: InvitationsOptions): AuthenticatingInvitationProvider;
23
23
  }
24
24
  //# sourceMappingURL=space-invitations-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"space-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/space-invitations-handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIpE,OAAO,EAAyB,cAAc,EAAiC,MAAM,uBAAuB,CAAC;AAG7G,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGxE,OAAO,EACL,gCAAgC,EAChC,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EAGrB,MAAM,eAAe,CAAC;AAOvB;;GAEG;AACH,qBAAa,uBAAwB,YAAW,kBAAkB,CAAC,KAAK,CAAC;IAErE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,aAAa,EAAE,YAAY,EAC3B,eAAe,EAAE,cAAc,EAC/B,eAAe,EAAE,cAAc;IAGlD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,oBAAoB;IAyHxF;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,gCAAgC;CA8F3E"}
1
+ {"version":3,"file":"space-invitations-handler.d.ts","sourceRoot":"","sources":["../../../../src/packlets/invitations/space-invitations-handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAIpE,OAAO,EAAyB,cAAc,EAAiC,MAAM,uBAAuB,CAAC;AAG7G,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAGxE,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EAKrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEvF;;GAEG;AAEH,qBAAa,uBAAwB,SAAQ,0BAA0B,CAAC,KAAK,CAAC;IAG1E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFhC,cAAc,EAAE,cAAc,EACb,aAAa,EAAE,YAAY,EAC3B,eAAe,EAAE,cAAc;IAKlD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,oBAAoB;IAyHlF;;;;OAIG;IACH,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gCAAgC;CA+FzG"}