@dxos/client-services 0.1.34 → 0.1.36-next.ef27157

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 (87) hide show
  1. package/dist/lib/browser/{chunk-H5IXSSI7.mjs → chunk-OINEQJWM.mjs} +783 -924
  2. package/dist/lib/browser/chunk-OINEQJWM.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +9 -11
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/packlets/testing/index.mjs +212 -74
  6. package/dist/lib/browser/packlets/testing/index.mjs.map +3 -3
  7. package/dist/lib/node/index.cjs +897 -1039
  8. package/dist/lib/node/index.cjs.map +4 -4
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/packlets/testing/index.cjs +1057 -1061
  11. package/dist/lib/node/packlets/testing/index.cjs.map +4 -4
  12. package/dist/types/src/packlets/identity/identity.d.ts +3 -3
  13. package/dist/types/src/packlets/identity/identity.d.ts.map +1 -1
  14. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts +18 -0
  15. package/dist/types/src/packlets/invitations/device-invitation-protocol.d.ts.map +1 -0
  16. package/dist/types/src/packlets/invitations/device-invitation-protocol.test.d.ts +2 -0
  17. package/dist/types/src/packlets/invitations/device-invitation-protocol.test.d.ts.map +1 -0
  18. package/dist/types/src/packlets/invitations/index.d.ts +4 -4
  19. package/dist/types/src/packlets/invitations/index.d.ts.map +1 -1
  20. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts +12 -0
  21. package/dist/types/src/packlets/invitations/invitation-protocol.d.ts.map +1 -0
  22. package/dist/types/src/packlets/invitations/invitations-handler.d.ts +38 -0
  23. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -0
  24. package/dist/types/src/packlets/invitations/invitations-service.d.ts +13 -15
  25. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  26. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts +22 -0
  27. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -0
  28. package/dist/types/src/packlets/invitations/space-invitation-protocol.test.d.ts +2 -0
  29. package/dist/types/src/packlets/invitations/space-invitation-protocol.test.d.ts.map +1 -0
  30. package/dist/types/src/packlets/services/service-context.d.ts +6 -4
  31. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  32. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  33. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  34. package/dist/types/src/packlets/testing/invitation-utils.d.ts +31 -2
  35. package/dist/types/src/packlets/testing/invitation-utils.d.ts.map +1 -1
  36. package/dist/types/src/packlets/testing/test-builder.d.ts.map +1 -1
  37. package/dist/types/src/packlets/tests/invitations.test.d.ts +2 -0
  38. package/dist/types/src/packlets/tests/invitations.test.d.ts.map +1 -0
  39. package/dist/types/src/packlets/vault/worker-runtime.d.ts +2 -0
  40. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  41. package/package.json +30 -30
  42. package/src/packlets/identity/identity.ts +3 -3
  43. package/src/packlets/invitations/{device-invitations-handler.test.ts → device-invitation-protocol.test.ts} +3 -3
  44. package/src/packlets/invitations/device-invitation-protocol.ts +83 -0
  45. package/src/packlets/invitations/index.ts +4 -4
  46. package/src/packlets/invitations/invitation-protocol.ts +21 -0
  47. package/src/packlets/invitations/invitations-handler.ts +462 -0
  48. package/src/packlets/invitations/invitations-service.ts +127 -104
  49. package/src/packlets/invitations/space-invitation-protocol.test.ts +221 -0
  50. package/src/packlets/invitations/space-invitation-protocol.ts +117 -0
  51. package/src/packlets/services/service-context.test.ts +11 -4
  52. package/src/packlets/services/service-context.ts +34 -17
  53. package/src/packlets/services/service-host.ts +4 -12
  54. package/src/packlets/services/service-registry.test.ts +23 -25
  55. package/src/packlets/spaces/spaces-service.ts +7 -2
  56. package/src/packlets/testing/invitation-utils.ts +219 -31
  57. package/src/packlets/testing/test-builder.ts +30 -19
  58. package/src/packlets/tests/client-services.test.ts +33 -76
  59. package/src/packlets/tests/halo-profile.test.ts +2 -28
  60. package/src/packlets/tests/invitations.test.ts +389 -0
  61. package/src/packlets/tests/spaces-invitations.test.ts +12 -30
  62. package/src/packlets/tests/spaces.test.ts +6 -28
  63. package/src/packlets/vault/worker-runtime.ts +4 -0
  64. package/dist/lib/browser/chunk-H5IXSSI7.mjs.map +0 -7
  65. package/dist/types/src/packlets/invitations/device-invitations-handler.d.ts +0 -30
  66. package/dist/types/src/packlets/invitations/device-invitations-handler.d.ts.map +0 -1
  67. package/dist/types/src/packlets/invitations/device-invitations-handler.test.d.ts +0 -2
  68. package/dist/types/src/packlets/invitations/device-invitations-handler.test.d.ts.map +0 -1
  69. package/dist/types/src/packlets/invitations/device-invitations-service.d.ts +0 -13
  70. package/dist/types/src/packlets/invitations/device-invitations-service.d.ts.map +0 -1
  71. package/dist/types/src/packlets/invitations/device-invitations-service.test.d.ts +0 -2
  72. package/dist/types/src/packlets/invitations/device-invitations-service.test.d.ts.map +0 -1
  73. package/dist/types/src/packlets/invitations/space-invitations-handler.d.ts +0 -26
  74. package/dist/types/src/packlets/invitations/space-invitations-handler.d.ts.map +0 -1
  75. package/dist/types/src/packlets/invitations/space-invitations-handler.test.d.ts +0 -2
  76. package/dist/types/src/packlets/invitations/space-invitations-handler.test.d.ts.map +0 -1
  77. package/dist/types/src/packlets/invitations/space-invitations-service.d.ts +0 -16
  78. package/dist/types/src/packlets/invitations/space-invitations-service.d.ts.map +0 -1
  79. package/dist/types/src/packlets/invitations/space-invitations-service.test.d.ts +0 -2
  80. package/dist/types/src/packlets/invitations/space-invitations-service.test.d.ts.map +0 -1
  81. package/src/packlets/invitations/device-invitations-handler.ts +0 -370
  82. package/src/packlets/invitations/device-invitations-service.test.ts +0 -96
  83. package/src/packlets/invitations/device-invitations-service.ts +0 -24
  84. package/src/packlets/invitations/space-invitations-handler.test.ts +0 -246
  85. package/src/packlets/invitations/space-invitations-handler.ts +0 -463
  86. package/src/packlets/invitations/space-invitations-service.test.ts +0 -129
  87. package/src/packlets/invitations/space-invitations-service.ts +0 -35
@@ -4,7 +4,7 @@ import { Signer } from '@dxos/crypto';
4
4
  import { Space } from '@dxos/echo-pipeline';
5
5
  import { PublicKey } from '@dxos/keys';
6
6
  import { ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
7
- import { HaloAdmissionCredentials } from '@dxos/protocols/proto/dxos/halo/invitations';
7
+ import { DeviceAdmissionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
8
8
  import { ComplexSet } from '@dxos/util';
9
9
  import { TrustedKeySetAuthVerifier } from './authenticator';
10
10
  export declare type IdentityParams = {
@@ -38,7 +38,7 @@ export declare class Identity {
38
38
  get haloSpaceKey(): PublicKey;
39
39
  get haloGenesisFeedKey(): PublicKey;
40
40
  get deviceCredentialChain(): import("@dxos/protocols/proto/dxos/halo/credentials").Chain | undefined;
41
- getAdmissionCredentials(): HaloAdmissionCredentials;
41
+ getAdmissionCredentials(): DeviceAdmissionRequest;
42
42
  /**
43
43
  * Issues credentials as identity.
44
44
  * Requires identity to be ready.
@@ -48,6 +48,6 @@ export declare class Identity {
48
48
  * Issues credentials as device.
49
49
  */
50
50
  getDeviceCredentialSigner(): CredentialSigner;
51
- admitDevice({ deviceKey, controlFeedKey, dataFeedKey }: HaloAdmissionCredentials): Promise<void>;
51
+ admitDevice({ deviceKey, controlFeedKey, dataFeedKey }: DeviceAdmissionRequest): Promise<void>;
52
52
  }
53
53
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAEL,gBAAgB,EAKjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAgB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAO5D,oBAAY,cAAc,GAAG;IAC3B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,qBAAa,QAAQ;IACnB,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyC;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0C;IAC/E,SAAgB,YAAY,EAAE,yBAAyB,CAAC;IAExD,SAAgB,WAAW,EAAE,SAAS,CAAC;IACvC,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,SAAgB,WAAW,cAAe;gBAE9B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,cAAc;IA6BrE,IAAI,oBAAoB,IAAI,UAAU,CAAC,SAAS,CAAC,CAEhD;IAEK,IAAI;IAMJ,KAAK;IAOL,KAAK;IAMX,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,CAEjD;IAED;;OAEG;IACH,IAAI,eAAe,mDAElB;IAED,IAAI,YAAY,cAEf;IAED,IAAI,kBAAkB,cAErB;IAED,IAAI,qBAAqB,4EAExB;IAED,uBAAuB,IAAI,wBAAwB;IAQnD;;;OAGG;IACH,2BAA2B,IAAI,gBAAgB;IAS/C;;OAEG;IACH,yBAAyB,IAAI,gBAAgB;IAIvC,WAAW,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,wBAAwB;CA2CvF"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAEL,gBAAgB,EAKjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAgB,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAO5D,oBAAY,cAAc,GAAG;IAC3B,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,qBAAa,QAAQ;IACnB,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAyC;IAC7E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0C;IAC/E,SAAgB,YAAY,EAAE,yBAAyB,CAAC;IAExD,SAAgB,WAAW,EAAE,SAAS,CAAC;IACvC,SAAgB,SAAS,EAAE,SAAS,CAAC;IAErC,SAAgB,WAAW,cAAe;gBAE9B,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,cAAc;IA6BrE,IAAI,oBAAoB,IAAI,UAAU,CAAC,SAAS,CAAC,CAEhD;IAEK,IAAI;IAMJ,KAAK;IAOL,KAAK;IAMX,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,CAEjD;IAED;;OAEG;IACH,IAAI,eAAe,mDAElB;IAED,IAAI,YAAY,cAEf;IAED,IAAI,kBAAkB,cAErB;IAED,IAAI,qBAAqB,4EAExB;IAED,uBAAuB,IAAI,sBAAsB;IAQjD;;;OAGG;IACH,2BAA2B,IAAI,gBAAgB;IAS/C;;OAEG;IACH,yBAAyB,IAAI,gBAAgB;IAIvC,WAAW,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,sBAAsB;CA2CrF"}
@@ -0,0 +1,18 @@
1
+ import { Keyring } from '@dxos/keyring';
2
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { AdmissionRequest, AdmissionResponse, IntroductionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
4
+ import { Identity, JoinIdentityParams } from '../identity';
5
+ import { InvitationProtocol } from './invitation-protocol';
6
+ export declare class DeviceInvitationProtocol implements InvitationProtocol {
7
+ private readonly _keyring;
8
+ private readonly _getIdentity;
9
+ private readonly _acceptIdentity;
10
+ constructor(_keyring: Keyring, _getIdentity: () => Identity, _acceptIdentity: (identity: JoinIdentityParams) => Promise<Identity>);
11
+ toJSON(): object;
12
+ getInvitationContext(): Partial<Invitation> & Pick<Invitation, 'kind'>;
13
+ admit(request: AdmissionRequest): Promise<AdmissionResponse>;
14
+ createIntroduction(): IntroductionRequest;
15
+ createAdmissionRequest(): Promise<AdmissionRequest>;
16
+ accept(response: AdmissionResponse, request: AdmissionRequest): Promise<Partial<Invitation>>;
17
+ }
18
+ //# sourceMappingURL=device-invitation-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-invitation-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/device-invitation-protocol.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEvH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAAa,wBAAyB,YAAW,kBAAkB;IAE/D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFf,QAAQ,EAAE,OAAO,EACjB,YAAY,EAAE,MAAM,QAAQ,EAC5B,eAAe,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC;IAGvF,MAAM,IAAI,MAAM;IAIhB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;IAMhE,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAelE,kBAAkB,IAAI,mBAAmB;IAInC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAcnD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAmBnG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=device-invitation-protocol.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-invitation-protocol.test.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/device-invitation-protocol.test.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
- export * from './device-invitations-handler';
2
- export * from './device-invitations-service';
1
+ export * from './device-invitation-protocol';
2
+ export * from './invitation-protocol';
3
+ export * from './invitations-handler';
3
4
  export * from './invitations-service';
4
- export * from './space-invitations-handler';
5
- export * from './space-invitations-service';
5
+ export * from './space-invitation-protocol';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/index.ts"],"names":[],"mappings":"AAIA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/index.ts"],"names":[],"mappings":"AAIA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
2
+ import { ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
3
+ import { AdmissionRequest, AdmissionResponse, IntroductionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
4
+ export interface InvitationProtocol {
5
+ toJSON(): object;
6
+ getInvitationContext(): Partial<Invitation> & Pick<Invitation, 'kind'>;
7
+ admit(request: AdmissionRequest, guestProfile?: ProfileDocument): Promise<AdmissionResponse>;
8
+ createIntroduction(): IntroductionRequest;
9
+ createAdmissionRequest(): Promise<AdmissionRequest>;
10
+ accept(response: AdmissionResponse, request: AdmissionRequest): Promise<Partial<Invitation>>;
11
+ }
12
+ //# sourceMappingURL=invitation-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitation-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitation-protocol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEvH,MAAM,WAAW,kBAAkB;IAEjC,MAAM,IAAI,MAAM,CAAC;IAGjB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvE,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAG7F,kBAAkB,IAAI,mBAAmB,CAAC;IAC1C,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;CAC9F"}
@@ -0,0 +1,38 @@
1
+ import { CancellableInvitationObservable, AuthenticatingInvitationObservable } from '@dxos/client';
2
+ import { NetworkManager } from '@dxos/network-manager';
3
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
4
+ import { InvitationProtocol } from './invitation-protocol';
5
+ /**
6
+ * Generic handler for Halo and Space invitations.
7
+ * Handles the life-cycle of invitations between peers.
8
+ *
9
+ * Host
10
+ * - Creates an invitation containing a swarm topic (which can be shared via a URL, QR code, or direct message).
11
+ * - Joins the swarm with the topic and waits for guest's introduction.
12
+ * - Wait for guest to authenticate with OTP.
13
+ * - Waits for guest to present credentials (containing local device and feed keys).
14
+ * - Writes credentials to control feed then exits.
15
+ *
16
+ * Guest
17
+ * - Joins the swarm with the topic.
18
+ * - Sends an introduction.
19
+ * - Sends authentication OTP.
20
+ * - If Space handler then creates a local cloned space (with genesis block).
21
+ * - Sends admission credentials.
22
+ *
23
+ * TODO(burdon): Show proxy/service relationship and reference design doc/diagram.
24
+ *
25
+ * ```
26
+ * [Guest] [Host]
27
+ * |------------------------------------Introduce-->|
28
+ * |-------------------------------[Authenticate]-->|
29
+ * |----------------------------------------Admit-->|
30
+ * ```
31
+ */
32
+ export declare class InvitationsHandler {
33
+ private readonly _networkManager;
34
+ constructor(_networkManager: NetworkManager);
35
+ createInvitation(protocol: InvitationProtocol, options?: Partial<Invitation>): CancellableInvitationObservable;
36
+ acceptInvitation(protocol: InvitationProtocol, invitation: Invitation): AuthenticatingInvitationObservable;
37
+ }
38
+ //# 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":"AAOA,OAAO,EAEL,+BAA+B,EAG/B,kCAAkC,EACnC,MAAM,cAAc,CAAC;AAKtB,OAAO,EAAiC,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAaxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,cAAc;IAE5D,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,+BAA+B;IAiL9G,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,GAAG,kCAAkC;CA6I3G"}
@@ -1,24 +1,22 @@
1
- import { InvitationsService, InvitationsHandler, InvitationsOptions } from '@dxos/client';
2
1
  import { Stream } from '@dxos/codec-protobuf';
3
- import { AuthenticationRequest, Invitation } from '@dxos/protocols/proto/dxos/client/services';
4
- import { Provider } from '@dxos/util';
5
- import { IdentityManager } from '../identity';
2
+ import { AuthenticationRequest, Invitation, InvitationsService } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { InvitationProtocol } from './invitation-protocol';
4
+ import { InvitationsHandler } from './invitations-handler';
6
5
  /**
7
6
  * Adapts invitation service observable to client/service stream.
8
7
  */
9
- export declare abstract class AbstractInvitationsService<T = void> implements InvitationsService {
10
- private readonly _identityManager;
11
- private readonly _getInvitationsHandler;
8
+ export declare class InvitationsServiceImpl implements InvitationsService {
9
+ private readonly _invitationsHandler;
10
+ private readonly _getHandler;
12
11
  private readonly _createInvitations;
13
12
  private readonly _acceptInvitations;
14
- protected constructor(_identityManager: IdentityManager, _getInvitationsHandler: Provider<InvitationsHandler<T>>);
15
- getLoggingContext(): {
16
- deviceKey: import("@dxos/client").PublicKey | undefined;
17
- };
18
- abstract getContext(invitation: Invitation): T;
13
+ constructor(_invitationsHandler: InvitationsHandler, _getHandler: (invitation: Invitation) => InvitationProtocol);
14
+ getLoggingContext(): {};
19
15
  createInvitation(invitation: Invitation): Stream<Invitation>;
20
- acceptInvitation(invitation: Invitation, options?: InvitationsOptions): Stream<Invitation>;
21
- authenticate({ invitationId, authenticationCode }: AuthenticationRequest): Promise<void>;
22
- cancelInvitation(invitation: Invitation): Promise<void>;
16
+ acceptInvitation(invitation: Invitation): Stream<Invitation>;
17
+ authenticate({ invitationId, authCode }: AuthenticationRequest): Promise<void>;
18
+ cancelInvitation({ invitationId }: {
19
+ invitationId: string;
20
+ }): Promise<void>;
23
21
  }
24
22
  //# sourceMappingURL=invitations-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-service.ts"],"names":[],"mappings":"AAOA,OAAO,EAGL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,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;AAE9C;;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"}
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,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAEnH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAK7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAsD;IACzF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyD;gBAGzE,mBAAmB,EAAE,kBAAkB,EACvC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,kBAAkB;IAI9E,iBAAiB;IAMjB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IA+E5D,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IA8EtD,YAAY,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAUlF"}
@@ -0,0 +1,22 @@
1
+ import { SigningContext } from '@dxos/echo-pipeline';
2
+ import { Keyring } from '@dxos/keyring';
3
+ import { PublicKey } from '@dxos/keys';
4
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
5
+ import { ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
6
+ import { AdmissionRequest, AdmissionResponse, IntroductionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
7
+ import { DataSpaceManager } from '../spaces';
8
+ import { InvitationProtocol } from './invitation-protocol';
9
+ export declare class SpaceInvitationProtocol implements InvitationProtocol {
10
+ private readonly _spaceManager;
11
+ private readonly _signingContext;
12
+ private readonly _keyring;
13
+ private readonly _spaceKey?;
14
+ constructor(_spaceManager: DataSpaceManager, _signingContext: SigningContext, _keyring: Keyring, _spaceKey?: PublicKey | undefined);
15
+ toJSON(): object;
16
+ getInvitationContext(): Partial<Invitation> & Pick<Invitation, 'kind'>;
17
+ admit(request: AdmissionRequest, guestProfile?: ProfileDocument | undefined): Promise<AdmissionResponse>;
18
+ createIntroduction(): IntroductionRequest;
19
+ createAdmissionRequest(): Promise<AdmissionRequest>;
20
+ accept(response: AdmissionResponse): Promise<Partial<Invitation>>;
21
+ }
22
+ //# sourceMappingURL=space-invitation-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-invitation-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitation-protocol.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAAa,uBAAwB,YAAW,kBAAkB;IAE9D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAHV,aAAa,EAAE,gBAAgB,EAC/B,eAAe,EAAE,cAAc,EAC/B,QAAQ,EAAE,OAAO,EACjB,SAAS,CAAC,uBAAW;IAGxC,MAAM,IAAI,MAAM;IAOhB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;IAOhE,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,EAAE,eAAe,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkC9G,kBAAkB,IAAI,mBAAmB;IAMnC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAenD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAmBxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=space-invitation-protocol.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-invitation-protocol.test.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitation-protocol.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { Trigger } from '@dxos/async';
2
+ import { Invitation } from '@dxos/client';
2
3
  import { MetadataStore, SpaceManager, DataServiceSubscriptions, SnapshotStore } from '@dxos/echo-pipeline';
3
4
  import { FeedStore } from '@dxos/feed-store';
4
5
  import { Keyring } from '@dxos/keyring';
@@ -7,7 +8,7 @@ import { NetworkManager } from '@dxos/network-manager';
7
8
  import type { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
8
9
  import { Storage } from '@dxos/random-access-storage';
9
10
  import { CreateIdentityOptions, IdentityManager } from '../identity';
10
- import { DeviceInvitationsHandler, SpaceInvitationsHandler } from '../invitations';
11
+ import { InvitationsHandler, InvitationProtocol } from '../invitations';
11
12
  import { DataSpaceManager } from '../spaces';
12
13
  /**
13
14
  * Shared backend for all client services.
@@ -24,16 +25,17 @@ export declare class ServiceContext {
24
25
  readonly keyring: Keyring;
25
26
  readonly spaceManager: SpaceManager;
26
27
  readonly identityManager: IdentityManager;
27
- readonly deviceInvitations: DeviceInvitationsHandler;
28
- private _deviceSpaceSync?;
28
+ readonly invitations: InvitationsHandler;
29
29
  dataSpaceManager?: DataSpaceManager;
30
- spaceInvitations?: SpaceInvitationsHandler;
30
+ private readonly _handlerFactories;
31
+ private _deviceSpaceSync?;
31
32
  private readonly _instanceId;
32
33
  constructor(storage: Storage, networkManager: NetworkManager, modelFactory: ModelFactory);
33
34
  open(): Promise<void>;
34
35
  close(): Promise<void>;
35
36
  reset(): Promise<void>;
36
37
  createIdentity(params?: CreateIdentityOptions): Promise<import("../identity").Identity>;
38
+ getInvitationHandler(invitation: Partial<Invitation> & Pick<Invitation, 'kind'>): InvitationProtocol;
37
39
  private _acceptIdentity;
38
40
  private _initialize;
39
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EAEL,aAAa,EACb,YAAY,EAEZ,wBAAwB,EACxB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAsB,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;GAEG;AAEH,qBAAa,cAAc;aAqBP,OAAO,EAAE,OAAO;aAChB,cAAc,EAAE,cAAc;aAC9B,YAAY,EAAE,YAAY;IAtB5C,SAAgB,WAAW,gBAAiB;IAC5C,SAAgB,wBAAwB,2BAAkC;IAC1E,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,iBAAiB,EAAE,wBAAwB,CAAC;IAE5D,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAG5C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAElD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAIxC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY;IAuCtC,IAAI;IAaJ,KAAK;IAcL,KAAK;IAOL,cAAc,CAAC,MAAM,GAAE,qBAA0B;YAOzC,eAAe;YAQf,WAAW;CAiE1B"}
1
+ {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAEL,aAAa,EACb,YAAY,EAEZ,wBAAwB,EACxB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAsB,MAAM,aAAa,CAAC;AACzF,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C;;GAEG;AAEH,qBAAa,cAAc;aAyBP,OAAO,EAAE,OAAO;aAChB,cAAc,EAAE,cAAc;aAC9B,YAAY,EAAE,YAAY;IA1B5C,SAAgB,WAAW,gBAAiB;IAC5C,SAAgB,wBAAwB,2BAAkC;IAC1E,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAGzC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAG9B;IAEJ,OAAO,CAAC,gBAAgB,CAAC,CAA0B;IAEnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAIxC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY;IAwCtC,IAAI;IAaJ,KAAK;IAcL,KAAK;IAOL,cAAc,CAAC,MAAM,GAAE,qBAA0B;IAOvD,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,kBAAkB;YAMtF,eAAe;YAQf,WAAW;CA+D1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,cAAc,EAAwC,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAatD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,oBAAY,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAM3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,EACV,MAAM,EACN,YAA0C,EAE1C,cAAc,EACd,OAAO,EAEP,OAAO,EACR,GAAE,wBAA6B;IA6ChC,IAAI,MAAM,YAET;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,iBAAiB;IAkBlD,IAAI;IAqEJ,KAAK;CAeZ"}
1
+ {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,cAAc,EAAwC,MAAM,cAAc,CAAC;AACzG,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAatD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,oBAAY,wBAAwB,GAAG;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IAEnD,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAM3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE9C,EACV,MAAM,EACN,YAA0C,EAE1C,cAAc,EACd,OAAO,EAEP,OAAO,EACR,GAAE,wBAA6B;IA6ChC,IAAI,MAAM,YAET;IAED,IAAI,eAAe,oCAElB;IAED,IAAI,WAAW,sDAEd;IAED,IAAI,QAAQ,4BAEX;IAED;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,iBAAiB;IAkBlD,IAAI;IA8DJ,KAAK;CAeZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"spaces-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/spaces-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,EAEL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAY,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAHpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,yBAAyB,EAAE,wBAAwB,EACnD,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAS7B,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAI7C,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IAoDpC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB;IAMpE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAajE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAcrE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAOzE,OAAO,CAAC,eAAe;CAyBxB"}
1
+ {"version":3,"file":"spaces-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/spaces-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC;AAEjG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,EAEL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAY,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBAHpB,gBAAgB,EAAE,eAAe,EACjC,aAAa,EAAE,YAAY,EAC3B,yBAAyB,EAAE,wBAAwB,EACnD,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGtE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;IAS7B,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAI7C,WAAW,IAAI,MAAM,CAAC,mBAAmB,CAAC;IAoDpC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB;IAMpE,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,wBAAwB;IAajE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAcrE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAOzE,OAAO,CAAC,eAAe;CA8BxB"}
@@ -1,3 +1,32 @@
1
- import { InvitationsHandler } from '@dxos/client';
2
- export declare const performInvitation: <T>(host: InvitationsHandler<T>, guest: InvitationsHandler<T>, context: T) => Promise<void>;
1
+ import { AuthenticatingInvitationObservable, CancellableInvitationObservable, Client, EchoProxy, HaloProxy, InvitationsProxy, SpaceProxy } from '@dxos/client';
2
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { ServiceContext } from '../services';
4
+ /**
5
+ * Strip secrets from invitation before giving it to the peer.
6
+ */
7
+ export declare const sanitizeInvitation: (invitation: Invitation) => Invitation;
8
+ export declare type PerformInvitationCallbacks<T> = {
9
+ onConnecting?: (value: T) => boolean | void;
10
+ onConnected?: (value: T) => boolean | void;
11
+ onReady?: (value: T) => boolean | void;
12
+ onAuthenticating?: (value: T) => boolean | void;
13
+ onSuccess?: (value: T) => boolean | void;
14
+ onCancelled?: (value: T) => boolean | void;
15
+ onTimeout?: (value: T) => boolean | void;
16
+ onError?: (value: T) => boolean | void;
17
+ };
18
+ export declare type PerformInvitationParams = {
19
+ host: ServiceContext | InvitationsProxy | HaloProxy | SpaceProxy;
20
+ guest: ServiceContext | InvitationsProxy | HaloProxy | EchoProxy | Client;
21
+ options?: Partial<Invitation>;
22
+ hooks?: {
23
+ host?: PerformInvitationCallbacks<CancellableInvitationObservable>;
24
+ guest?: PerformInvitationCallbacks<AuthenticatingInvitationObservable>;
25
+ };
26
+ };
27
+ export declare type Result = {
28
+ invitation?: Invitation;
29
+ error?: Error;
30
+ };
31
+ export declare const performInvitation: ({ host, guest, options, hooks }: PerformInvitationParams) => [Promise<Result>, Promise<Result>];
3
32
  //# sourceMappingURL=invitation-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invitation-utils.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/invitation-utils.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIlD,eAAO,MAAM,iBAAiB,6FA+B7B,CAAC"}
1
+ {"version":3,"file":"invitation-utils.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/invitation-utils.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,kCAAkC,EAClC,+BAA+B,EAC/B,MAAM,EACN,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAgB,UAAU,KAAG,UAU3D,CAAC;AAEF,oBAAY,0BAA0B,CAAC,CAAC,IAAI;IAC1C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAC5C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,oBAAY,uBAAuB,GAAG;IACpC,IAAI,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;IACjE,KAAK,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,0BAA0B,CAAC,+BAA+B,CAAC,CAAC;QACnE,KAAK,CAAC,EAAE,0BAA0B,CAAC,kCAAkC,CAAC,CAAC;KACxE,CAAC;CACH,CAAC;AAEF,oBAAY,MAAM,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhE,eAAO,MAAM,iBAAiB,oCAK3B,uBAAuB,KAAG,CAAC,QAAQ,MAAM,CAAC,EAAE,QAAQ,MAAM,CAAC,CAmI7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAA8E,MAAM,cAAc,CAAC;AAClH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,oBAAoB,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAuB,0BAA0B,EAA0B,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAwD,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAyC,YAAY,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,yBAAyB,QAUpC,CAAC;AAEH;;GAEG;AACH,qBAAa,WAAW;IAQpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IARxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC;gBAIvB,MAAM,CAAC,EAAE,MAAM,EACE,aAAa,6CAA8B,EAC3C,qBAAqB,6BAAmC;IAK3E,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,cAAc,mBAkBjB;IAED;;OAEG;IACH,wBAAwB;IASxB;;OAEG;IACH,WAAW;IASX;;OAEG;IACH,kBAAkB,CAAC,IAAI,GAAE,kBAAoD,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CAY3G;AAED,eAAO,MAAM,SAAS,WAAkB,oBAAoB,UAAS,oBAAoB,kDAexF,CAAC;AAEF,eAAO,MAAM,SAAS,QAAe,oBAAoB,OAAO,oBAAoB,kBAMnF,CAAC;AAEF,eAAO,MAAM,eAAe,4BAAmC,MAAM,EAAE,aAAa,SAAS,KAAG,QAAQ,SAAS,CAoChH,CAAC"}
1
+ {"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/testing/test-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAA8E,MAAM,cAAc,CAAC;AAClH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,oBAAoB,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAuB,0BAA0B,EAA0B,MAAM,iBAAiB,CAAC;AAC1G,OAAO,EAAwD,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAyC,YAAY,EAAE,MAAM,WAAW,CAAC;AAEhF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEtE,eAAO,MAAM,yBAAyB,QAUpC,CAAC;AAEH;;GAEG;AACH,qBAAa,WAAW;IAQpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IARxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAE1B,OAAO,CAAC,EAAE,OAAO,CAAC;gBAIvB,MAAM,CAAC,EAAE,MAAM,EACE,aAAa,6CAA8B,EAC3C,qBAAqB,6BAAmC;IAK3E,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,cAAc,mBAkBjB;IAED;;OAEG;IACH,wBAAwB;IASxB;;OAEG;IACH,WAAW;IASX;;OAEG;IACH,kBAAkB,CAAC,IAAI,GAAE,kBAAoD,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CAY3G;AAED,eAAO,MAAM,SAAS,WAAkB,oBAAoB,UAAS,oBAAoB,kDAexF,CAAC;AAEF,eAAO,MAAM,SAAS,QAAe,oBAAoB,OAAO,oBAAoB,kBAMnF,CAAC;AAEF,eAAO,MAAM,eAAe,4BAAmC,MAAM,EAAE,aAAa,SAAS,KAAG,QAAQ,SAAS,CA+ChH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=invitations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations.test.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/tests/invitations.test.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  import { Config } from '@dxos/config';
2
2
  import { RpcPort } from '@dxos/rpc';
3
3
  import { MaybePromise } from '@dxos/util';
4
+ import { ClientServicesHost } from '../services';
4
5
  export declare type CreateSessionParams = {
5
6
  appPort: RpcPort;
6
7
  systemPort: RpcPort;
@@ -20,6 +21,7 @@ export declare class WorkerRuntime {
20
21
  private _clientServices;
21
22
  private _config;
22
23
  constructor(_configProvider: () => MaybePromise<Config>);
24
+ get host(): ClientServicesHost;
23
25
  start(): Promise<void>;
24
26
  stop(): Promise<void>;
25
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IAUtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IATlC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,qBAAqB,CAAC,CAAgB;IAC9C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,OAAO,CAAU;gBAIN,eAAe,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC;IAKxD,KAAK;IAyBL,IAAI;IAKV;;OAEG;IACG,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAqB3E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAmBzB"}
1
+ {"version":3,"file":"worker-runtime.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/vault/worker-runtime.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjD,oBAAY,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,qBAAa,aAAa;IAUtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IATlC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,qBAAqB,CAAC,CAAgB;IAC9C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,OAAO,CAAU;gBAIN,eAAe,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC;IAK9D,IAAI,IAAI,uBAEP;IAEK,KAAK;IAyBL,IAAI;IAKV;;OAEG;IACG,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,mBAAmB;IAqB3E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAmBzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.1.34",
3
+ "version": "0.1.36-next.ef27157",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -20,39 +20,39 @@
20
20
  "src"
21
21
  ],
22
22
  "dependencies": {
23
- "@dxos/async": "0.1.34",
24
- "@dxos/client": "0.1.34",
25
- "@dxos/codec-protobuf": "0.1.34",
26
- "@dxos/config": "0.1.34",
27
- "@dxos/context": "0.1.34",
28
- "@dxos/credentials": "0.1.34",
29
- "@dxos/crypto": "0.1.34",
30
- "@dxos/debug": "0.1.34",
31
- "@dxos/document-model": "0.1.34",
32
- "@dxos/echo-db": "0.1.34",
33
- "@dxos/echo-pipeline": "0.1.34",
34
- "@dxos/errors": "0.1.34",
35
- "@dxos/feed-store": "0.1.34",
36
- "@dxos/keyring": "0.1.34",
37
- "@dxos/keys": "0.1.34",
38
- "@dxos/log": "0.1.34",
39
- "@dxos/messaging": "0.1.34",
40
- "@dxos/model-factory": "0.1.34",
41
- "@dxos/network-manager": "0.1.34",
42
- "@dxos/node-std": "0.1.34",
43
- "@dxos/protocols": "0.1.34",
44
- "@dxos/random-access-storage": "0.1.34",
45
- "@dxos/rpc": "0.1.34",
46
- "@dxos/teleport": "0.1.34",
47
- "@dxos/teleport-extension-gossip": "0.1.34",
48
- "@dxos/text-model": "0.1.34",
49
- "@dxos/timeframe": "0.1.34",
50
- "@dxos/util": "0.1.34"
23
+ "@dxos/async": "0.1.36-next.ef27157",
24
+ "@dxos/client": "0.1.36-next.ef27157",
25
+ "@dxos/codec-protobuf": "0.1.36-next.ef27157",
26
+ "@dxos/config": "0.1.36-next.ef27157",
27
+ "@dxos/context": "0.1.36-next.ef27157",
28
+ "@dxos/credentials": "0.1.36-next.ef27157",
29
+ "@dxos/crypto": "0.1.36-next.ef27157",
30
+ "@dxos/debug": "0.1.36-next.ef27157",
31
+ "@dxos/document-model": "0.1.36-next.ef27157",
32
+ "@dxos/echo-db": "0.1.36-next.ef27157",
33
+ "@dxos/echo-pipeline": "0.1.36-next.ef27157",
34
+ "@dxos/errors": "0.1.36-next.ef27157",
35
+ "@dxos/feed-store": "0.1.36-next.ef27157",
36
+ "@dxos/keyring": "0.1.36-next.ef27157",
37
+ "@dxos/keys": "0.1.36-next.ef27157",
38
+ "@dxos/log": "0.1.36-next.ef27157",
39
+ "@dxos/messaging": "0.1.36-next.ef27157",
40
+ "@dxos/model-factory": "0.1.36-next.ef27157",
41
+ "@dxos/network-manager": "0.1.36-next.ef27157",
42
+ "@dxos/node-std": "0.1.36-next.ef27157",
43
+ "@dxos/protocols": "0.1.36-next.ef27157",
44
+ "@dxos/random-access-storage": "0.1.36-next.ef27157",
45
+ "@dxos/rpc": "0.1.36-next.ef27157",
46
+ "@dxos/teleport": "0.1.36-next.ef27157",
47
+ "@dxos/teleport-extension-gossip": "0.1.36-next.ef27157",
48
+ "@dxos/text-model": "0.1.36-next.ef27157",
49
+ "@dxos/timeframe": "0.1.36-next.ef27157",
50
+ "@dxos/util": "0.1.36-next.ef27157"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/readable-stream": "^2.3.9",
54
54
  "fast-check": "~3.3.0",
55
- "@dxos/signal": "0.1.34"
55
+ "@dxos/signal": "0.1.36-next.ef27157"
56
56
  },
57
57
  "publishConfig": {
58
58
  "access": "public"
@@ -21,7 +21,7 @@ import { PublicKey } from '@dxos/keys';
21
21
  import { log } from '@dxos/log';
22
22
  import { FeedMessage } from '@dxos/protocols/proto/dxos/echo/feed';
23
23
  import { AdmittedFeed, ProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
24
- import { HaloAdmissionCredentials } from '@dxos/protocols/proto/dxos/halo/invitations';
24
+ import { DeviceAdmissionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
25
25
  import { ComplexSet } from '@dxos/util';
26
26
 
27
27
  import { TrustedKeySetAuthVerifier } from './authenticator';
@@ -128,7 +128,7 @@ export class Identity {
128
128
  return this._deviceStateMachine.processor.deviceCredentialChain;
129
129
  }
130
130
 
131
- getAdmissionCredentials(): HaloAdmissionCredentials {
131
+ getAdmissionCredentials(): DeviceAdmissionRequest {
132
132
  return {
133
133
  deviceKey: this.deviceKey,
134
134
  controlFeedKey: this.space.controlFeedKey ?? failUndefined(),
@@ -156,7 +156,7 @@ export class Identity {
156
156
  return createCredentialSignerWithKey(this._signer, this.deviceKey);
157
157
  }
158
158
 
159
- async admitDevice({ deviceKey, controlFeedKey, dataFeedKey }: HaloAdmissionCredentials) {
159
+ async admitDevice({ deviceKey, controlFeedKey, dataFeedKey }: DeviceAdmissionRequest) {
160
160
  log('Admitting device:', {
161
161
  identityKey: this.identityKey,
162
162
  hostDevice: this.deviceKey,
@@ -5,11 +5,11 @@
5
5
  import { expect } from 'chai';
6
6
 
7
7
  import { asyncChain } from '@dxos/async';
8
+ import { Invitation } from '@dxos/client';
8
9
  import { describe, test, afterTest } from '@dxos/test';
9
10
 
10
11
  import { ServiceContext } from '../services';
11
- import { createPeers, createServiceContext } from '../testing';
12
- import { performInvitation } from '../testing/invitation-utils';
12
+ import { createPeers, createServiceContext, performInvitation } from '../testing';
13
13
 
14
14
  const closeAfterTest = async (peer: ServiceContext) => {
15
15
  afterTest(() => peer.close());
@@ -32,7 +32,7 @@ describe('services/device', () => {
32
32
  const identity1 = await host.createIdentity();
33
33
  expect(host.identityManager.identity).to.eq(identity1);
34
34
 
35
- await performInvitation(host.deviceInvitations, guest.deviceInvitations, undefined);
35
+ await Promise.all(performInvitation({ host, guest, options: { kind: Invitation.Kind.DEVICE } }));
36
36
  expect(guest.identityManager.identity?.identityKey).to.deep.eq(identity1.identityKey);
37
37
  });
38
38
  });
@@ -0,0 +1,83 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import assert from 'node:assert';
6
+
7
+ import { Keyring } from '@dxos/keyring';
8
+ import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
9
+ import { AdmissionRequest, AdmissionResponse, IntroductionRequest } from '@dxos/protocols/proto/dxos/halo/invitations';
10
+
11
+ import { Identity, JoinIdentityParams } from '../identity';
12
+ import { InvitationProtocol } from './invitation-protocol';
13
+
14
+ export class DeviceInvitationProtocol implements InvitationProtocol {
15
+ constructor(
16
+ private readonly _keyring: Keyring,
17
+ private readonly _getIdentity: () => Identity,
18
+ private readonly _acceptIdentity: (identity: JoinIdentityParams) => Promise<Identity>
19
+ ) {}
20
+
21
+ toJSON(): object {
22
+ return {};
23
+ }
24
+
25
+ getInvitationContext(): Partial<Invitation> & Pick<Invitation, 'kind'> {
26
+ return {
27
+ kind: Invitation.Kind.DEVICE
28
+ };
29
+ }
30
+
31
+ async admit(request: AdmissionRequest): Promise<AdmissionResponse> {
32
+ assert(request.device);
33
+ const identity = this._getIdentity();
34
+ await identity.admitDevice(request.device);
35
+
36
+ return {
37
+ device: {
38
+ identityKey: identity.identityKey,
39
+ haloSpaceKey: identity.haloSpaceKey,
40
+ genesisFeedKey: identity.haloGenesisFeedKey,
41
+ controlTimeframe: identity.controlPipeline.state.timeframe
42
+ }
43
+ };
44
+ }
45
+
46
+ createIntroduction(): IntroductionRequest {
47
+ return {};
48
+ }
49
+
50
+ async createAdmissionRequest(): Promise<AdmissionRequest> {
51
+ const deviceKey = await this._keyring.createKey();
52
+ const controlFeedKey = await this._keyring.createKey();
53
+ const dataFeedKey = await this._keyring.createKey();
54
+
55
+ return {
56
+ device: {
57
+ deviceKey,
58
+ controlFeedKey,
59
+ dataFeedKey
60
+ }
61
+ };
62
+ }
63
+
64
+ async accept(response: AdmissionResponse, request: AdmissionRequest): Promise<Partial<Invitation>> {
65
+ assert(response.device);
66
+ const { identityKey, haloSpaceKey, genesisFeedKey, controlTimeframe } = response.device;
67
+
68
+ assert(request.device);
69
+ const { deviceKey, controlFeedKey, dataFeedKey } = request.device;
70
+
71
+ await this._acceptIdentity({
72
+ identityKey,
73
+ deviceKey,
74
+ haloSpaceKey,
75
+ haloGenesisFeedKey: genesisFeedKey,
76
+ controlFeedKey,
77
+ dataFeedKey,
78
+ controlTimeframe
79
+ });
80
+
81
+ return { identityKey };
82
+ }
83
+ }
@@ -2,8 +2,8 @@
2
2
  // Copyright 2022 DXOS.org
3
3
  //
4
4
 
5
- export * from './device-invitations-handler';
6
- export * from './device-invitations-service';
5
+ export * from './device-invitation-protocol';
6
+ export * from './invitation-protocol';
7
+ export * from './invitations-handler';
7
8
  export * from './invitations-service';
8
- export * from './space-invitations-handler';
9
- export * from './space-invitations-service';
9
+ export * from './space-invitation-protocol';