@dxos/client-services 0.4.10-main.fe71b4c → 0.4.10-next.71cec10

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 (39) hide show
  1. package/dist/lib/browser/{chunk-7S34JE6M.mjs → chunk-5U7G5S73.mjs} +379 -330
  2. package/dist/lib/browser/chunk-5U7G5S73.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +3 -1
  4. package/dist/lib/browser/index.mjs.map +1 -1
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +1 -1
  7. package/dist/lib/node/{chunk-DQMGKBOV.cjs → chunk-Y3ADPF24.cjs} +377 -329
  8. package/dist/lib/node/chunk-Y3ADPF24.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +44 -42
  10. package/dist/lib/node/index.cjs.map +1 -1
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/packlets/testing/index.cjs +6 -6
  13. package/dist/types/src/packlets/indexing/util.d.ts.map +1 -1
  14. package/dist/types/src/packlets/invitations/index.d.ts +1 -0
  15. package/dist/types/src/packlets/invitations/index.d.ts.map +1 -1
  16. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  17. package/dist/types/src/packlets/invitations/invitations-manager.d.ts +42 -0
  18. package/dist/types/src/packlets/invitations/invitations-manager.d.ts.map +1 -0
  19. package/dist/types/src/packlets/invitations/invitations-service.d.ts +7 -23
  20. package/dist/types/src/packlets/invitations/invitations-service.d.ts.map +1 -1
  21. package/dist/types/src/packlets/services/service-context.d.ts +2 -0
  22. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  23. package/dist/types/src/packlets/services/service-host.d.ts +1 -0
  24. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  25. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  26. package/dist/types/src/version.d.ts +1 -1
  27. package/package.json +34 -34
  28. package/src/packlets/indexing/util.ts +13 -6
  29. package/src/packlets/invitations/index.ts +1 -0
  30. package/src/packlets/invitations/invitations-handler.ts +1 -2
  31. package/src/packlets/invitations/invitations-manager.ts +197 -0
  32. package/src/packlets/invitations/invitations-service.ts +21 -168
  33. package/src/packlets/services/automerge-host.test.ts +1 -1
  34. package/src/packlets/services/service-context.ts +11 -0
  35. package/src/packlets/services/service-host.ts +11 -15
  36. package/src/packlets/spaces/data-space.ts +1 -1
  37. package/src/version.ts +1 -1
  38. package/dist/lib/browser/chunk-7S34JE6M.mjs.map +0 -7
  39. package/dist/lib/node/chunk-DQMGKBOV.cjs.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,wBAAwB,EAExB,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAc/B,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AASzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAIjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAE5C,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,qBAAqB;IAgLpG,gBAAgB,CACd,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,qBAAqB,GACpC,wBAAwB;YA0Kb,mBAAmB;YA6BnB,mBAAmB;CAsBlC;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAGzC,CAAC"}
1
+ {"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,wBAAwB,EAExB,qBAAqB,EAEtB,MAAM,uBAAuB,CAAC;AAc/B,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AASzF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAIjB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAE5C,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,qBAAqB;IAgLpG,gBAAgB,CACd,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,CAAC,EAAE,qBAAqB,GACpC,wBAAwB;YAyKb,mBAAmB;YA6BnB,mBAAmB;CAsBlC;AAED,eAAO,MAAM,sBAAsB,QAAO,gBAGzC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Event } from '@dxos/async';
2
+ import type { AuthenticatingInvitation, CancellableInvitation } from '@dxos/client-protocol';
3
+ import { type Context } from '@dxos/context';
4
+ import { type MetadataStore } from '@dxos/echo-pipeline';
5
+ import { type AcceptInvitationRequest, type Invitation, type AuthenticationRequest } from '@dxos/protocols/proto/dxos/client/services';
6
+ import type { InvitationProtocol } from './invitation-protocol';
7
+ import type { InvitationsHandler } from './invitations-handler';
8
+ /**
9
+ * Entry point for creating and accepting invitations, keeps track of existing invitation set and
10
+ * emits events when the set changes.
11
+ */
12
+ export declare class InvitationsManager {
13
+ private readonly _invitationsHandler;
14
+ private readonly _getHandler;
15
+ private readonly _metadataStore;
16
+ private readonly _createInvitations;
17
+ private readonly _acceptInvitations;
18
+ readonly invitationCreated: Event<Invitation>;
19
+ readonly invitationAccepted: Event<Invitation>;
20
+ readonly removedCreated: Event<Invitation>;
21
+ readonly removedAccepted: Event<Invitation>;
22
+ readonly saved: Event<Invitation>;
23
+ private readonly _persistentInvitationsLoadedEvent;
24
+ private _persistentInvitationsLoaded;
25
+ constructor(_invitationsHandler: InvitationsHandler, _getHandler: (invitation: Invitation) => InvitationProtocol, _metadataStore: MetadataStore);
26
+ createInvitation(options: Invitation): CancellableInvitation;
27
+ loadPersistentInvitations(): Promise<{
28
+ invitations: Invitation[];
29
+ }>;
30
+ acceptInvitation(request: AcceptInvitationRequest): AuthenticatingInvitation;
31
+ authenticate({ invitationId, authCode }: AuthenticationRequest): Promise<void>;
32
+ cancelInvitation({ invitationId }: {
33
+ invitationId: string;
34
+ }): Promise<void>;
35
+ getCreatedInvitations(): Invitation[];
36
+ getAcceptedInvitations(): Invitation[];
37
+ onPersistentInvitationsLoaded(ctx: Context, callback: () => void): void;
38
+ private _safePersistInBackground;
39
+ private _safeDeleteInvitation;
40
+ private _onInvitationComplete;
41
+ }
42
+ //# sourceMappingURL=invitations-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC7F,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC3B,MAAM,4CAA4C,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;GAGG;AACH,qBAAa,kBAAkB;IAc3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAfjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAC/E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+C;IAElF,SAAgB,iBAAiB,oBAA2B;IAC5D,SAAgB,kBAAkB,oBAA2B;IAC7D,SAAgB,cAAc,oBAA2B;IACzD,SAAgB,eAAe,oBAA2B;IAC1D,SAAgB,KAAK,oBAA2B;IAEhD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAe;IACjE,OAAO,CAAC,4BAA4B,CAAS;gBAG1B,mBAAmB,EAAE,kBAAkB,EACvC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,kBAAkB,EAC3D,cAAc,EAAE,aAAa;IAGhD,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,qBAAqB;IA4BtD,yBAAyB,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAyBzE,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,wBAAwB;IAoBtE,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;IAuBjF,qBAAqB,IAAI,UAAU,EAAE;IAIrC,sBAAsB,IAAI,UAAU,EAAE;IAItC,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI;IAQhE,OAAO,CAAC,wBAAwB;YAgBlB,qBAAqB;IAQnC,OAAO,CAAC,qBAAqB;CAO9B"}
@@ -1,33 +1,17 @@
1
1
  import { Stream } from '@dxos/codec-protobuf';
2
- import { type MetadataStore } from '@dxos/echo-pipeline';
3
- import { type AuthenticationRequest, type AcceptInvitationRequest, Invitation, type InvitationsService, QueryInvitationsResponse } from '@dxos/protocols/proto/dxos/client/services';
4
- import { type InvitationProtocol } from './invitation-protocol';
5
- import { type InvitationsHandler } from './invitations-handler';
2
+ import { type AuthenticationRequest, type AcceptInvitationRequest, type Invitation, type InvitationsService, QueryInvitationsResponse } from '@dxos/protocols/proto/dxos/client/services';
3
+ import { type InvitationsManager } from './invitations-manager';
6
4
  /**
7
5
  * Adapts invitation service observable to client/service stream.
8
6
  */
9
7
  export declare class InvitationsServiceImpl implements InvitationsService {
10
- private readonly _invitationsHandler;
11
- private readonly _getHandler;
12
- private readonly _metadataStore;
13
- private readonly _createInvitations;
14
- private readonly _acceptInvitations;
15
- private readonly _invitationCreated;
16
- private readonly _invitationAccepted;
17
- private readonly _removedCreated;
18
- private readonly _removedAccepted;
19
- private readonly _saved;
20
- private readonly _persistentInvitationsLoadedEvent;
21
- private _persistentInvitationsLoaded;
22
- constructor(_invitationsHandler: InvitationsHandler, _getHandler: (invitation: Invitation) => InvitationProtocol, _metadataStore: MetadataStore);
8
+ private readonly _invitationsManager;
9
+ constructor(_invitationsManager: InvitationsManager);
23
10
  getLoggingContext(): {};
24
11
  createInvitation(options: Invitation): Stream<Invitation>;
25
- loadPersistentInvitations(): Promise<{
26
- invitations: Invitation[];
27
- }>;
28
- acceptInvitation({ invitation: options, deviceProfile }: AcceptInvitationRequest): Stream<Invitation>;
29
- authenticate({ invitationId, authCode }: AuthenticationRequest): Promise<void>;
30
- cancelInvitation({ invitationId }: {
12
+ acceptInvitation(request: AcceptInvitationRequest): Stream<Invitation>;
13
+ authenticate(request: AuthenticationRequest): Promise<void>;
14
+ cancelInvitation(request: {
31
15
  invitationId: string;
32
16
  }): Promise<void>;
33
17
  queryInvitations(): Stream<QueryInvitationsResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,UAAU,EACV,KAAK,kBAAkB,EACvB,wBAAwB,EACzB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IAY7D,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAbjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAC/E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+C;IAClF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAe;IACjE,OAAO,CAAC,4BAA4B,CAAS;gBAG1B,mBAAmB,EAAE,kBAAkB,EACvC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,kBAAkB,EAC3D,cAAc,EAAE,aAAa;IAIhD,iBAAiB;IAMjB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAoDnD,yBAAyB;;;IAoB/B,gBAAgB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAqC/F,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;IAmBjF,gBAAgB,IAAI,MAAM,CAAC,wBAAwB,CAAC;CA+ErD"}
1
+ {"version":3,"file":"invitations-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,wBAAwB,EACzB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,qBAAa,sBAAuB,YAAW,kBAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,kBAAkB;IAGpE,iBAAiB;IAMjB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAOzD,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAAC,UAAU,CAAC;IAOhE,YAAY,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,gBAAgB,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,gBAAgB,IAAI,MAAM,CAAC,wBAAwB,CAAC;CAsErD"}
@@ -14,6 +14,7 @@ import { type Storage } from '@dxos/random-access-storage';
14
14
  import { BlobStore } from '@dxos/teleport-extension-object-sync';
15
15
  import { IdentityManager, type CreateIdentityOptions, type IdentityManagerRuntimeParams } from '../identity';
16
16
  import { InvitationsHandler, type InvitationProtocol } from '../invitations';
17
+ import { InvitationsManager } from '../invitations/invitations-manager';
17
18
  import { DataSpaceManager, type DataSpaceManagerRuntimeParams } from '../spaces';
18
19
  export type ServiceContextRuntimeParams = IdentityManagerRuntimeParams & DataSpaceManagerRuntimeParams;
19
20
  /**
@@ -37,6 +38,7 @@ export declare class ServiceContext extends Resource {
37
38
  readonly spaceManager: SpaceManager;
38
39
  readonly identityManager: IdentityManager;
39
40
  readonly invitations: InvitationsHandler;
41
+ readonly invitationsManager: InvitationsManager;
40
42
  readonly automergeHost: AutomergeHost;
41
43
  readonly indexMetadata: IndexMetadataStore;
42
44
  readonly indexer: Indexer;
@@ -1 +1 @@
1
- {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-context.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-context.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ export declare class ClientServicesHost {
39
39
  private readonly _systemService;
40
40
  private readonly _loggingService;
41
41
  private readonly _tracingService;
42
+ private _queryService;
42
43
  private _config?;
43
44
  private readonly _statusUpdate;
44
45
  private _signalManager?;
@@ -1 +1 @@
1
- {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service-host.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/services/service-host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-space.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/spaces/data-space.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.4.10-main.fe71b4c";
1
+ export declare const DXOS_VERSION = "0.4.10-next.71cec10";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/client-services",
3
- "version": "0.4.10-main.fe71b4c",
3
+ "version": "0.4.10-next.71cec10",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -24,43 +24,43 @@
24
24
  "dependencies": {
25
25
  "level": "^8.0.1",
26
26
  "platform": "^1.3.6",
27
- "@dxos/async": "0.4.10-main.fe71b4c",
28
- "@dxos/client-protocol": "0.4.10-main.fe71b4c",
29
- "@dxos/context": "0.4.10-main.fe71b4c",
30
- "@dxos/automerge": "0.4.10-main.fe71b4c",
31
- "@dxos/codec-protobuf": "0.4.10-main.fe71b4c",
32
- "@dxos/config": "0.4.10-main.fe71b4c",
33
- "@dxos/crypto": "0.4.10-main.fe71b4c",
34
- "@dxos/credentials": "0.4.10-main.fe71b4c",
35
- "@dxos/debug": "0.4.10-main.fe71b4c",
36
- "@dxos/echo-db": "0.4.10-main.fe71b4c",
37
- "@dxos/echo-schema": "0.4.10-main.fe71b4c",
38
- "@dxos/echo-pipeline": "0.4.10-main.fe71b4c",
39
- "@dxos/feed-store": "0.4.10-main.fe71b4c",
40
- "@dxos/invariant": "0.4.10-main.fe71b4c",
41
- "@dxos/indexing": "0.4.10-main.fe71b4c",
42
- "@dxos/keys": "0.4.10-main.fe71b4c",
43
- "@dxos/lock-file": "0.4.10-main.fe71b4c",
44
- "@dxos/log": "0.4.10-main.fe71b4c",
45
- "@dxos/messaging": "0.4.10-main.fe71b4c",
46
- "@dxos/keyring": "0.4.10-main.fe71b4c",
47
- "@dxos/network-manager": "0.4.10-main.fe71b4c",
48
- "@dxos/node-std": "0.4.10-main.fe71b4c",
49
- "@dxos/protocols": "0.4.10-main.fe71b4c",
50
- "@dxos/teleport": "0.4.10-main.fe71b4c",
51
- "@dxos/rpc": "0.4.10-main.fe71b4c",
52
- "@dxos/random-access-storage": "0.4.10-main.fe71b4c",
53
- "@dxos/teleport-extension-gossip": "0.4.10-main.fe71b4c",
54
- "@dxos/teleport-extension-object-sync": "0.4.10-main.fe71b4c",
55
- "@dxos/tracing": "0.4.10-main.fe71b4c",
56
- "@dxos/util": "0.4.10-main.fe71b4c",
57
- "@dxos/websocket-rpc": "0.4.10-main.fe71b4c",
58
- "@dxos/timeframe": "0.4.10-main.fe71b4c"
27
+ "@dxos/async": "0.4.10-next.71cec10",
28
+ "@dxos/automerge": "0.4.10-next.71cec10",
29
+ "@dxos/client-protocol": "0.4.10-next.71cec10",
30
+ "@dxos/config": "0.4.10-next.71cec10",
31
+ "@dxos/codec-protobuf": "0.4.10-next.71cec10",
32
+ "@dxos/context": "0.4.10-next.71cec10",
33
+ "@dxos/credentials": "0.4.10-next.71cec10",
34
+ "@dxos/crypto": "0.4.10-next.71cec10",
35
+ "@dxos/debug": "0.4.10-next.71cec10",
36
+ "@dxos/echo-pipeline": "0.4.10-next.71cec10",
37
+ "@dxos/echo-db": "0.4.10-next.71cec10",
38
+ "@dxos/feed-store": "0.4.10-next.71cec10",
39
+ "@dxos/indexing": "0.4.10-next.71cec10",
40
+ "@dxos/invariant": "0.4.10-next.71cec10",
41
+ "@dxos/keyring": "0.4.10-next.71cec10",
42
+ "@dxos/echo-schema": "0.4.10-next.71cec10",
43
+ "@dxos/keys": "0.4.10-next.71cec10",
44
+ "@dxos/messaging": "0.4.10-next.71cec10",
45
+ "@dxos/log": "0.4.10-next.71cec10",
46
+ "@dxos/lock-file": "0.4.10-next.71cec10",
47
+ "@dxos/node-std": "0.4.10-next.71cec10",
48
+ "@dxos/protocols": "0.4.10-next.71cec10",
49
+ "@dxos/network-manager": "0.4.10-next.71cec10",
50
+ "@dxos/rpc": "0.4.10-next.71cec10",
51
+ "@dxos/random-access-storage": "0.4.10-next.71cec10",
52
+ "@dxos/teleport": "0.4.10-next.71cec10",
53
+ "@dxos/teleport-extension-gossip": "0.4.10-next.71cec10",
54
+ "@dxos/teleport-extension-object-sync": "0.4.10-next.71cec10",
55
+ "@dxos/timeframe": "0.4.10-next.71cec10",
56
+ "@dxos/tracing": "0.4.10-next.71cec10",
57
+ "@dxos/util": "0.4.10-next.71cec10",
58
+ "@dxos/websocket-rpc": "0.4.10-next.71cec10"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/platform": "^1.3.4",
62
62
  "@types/readable-stream": "^2.3.9",
63
- "@dxos/signal": "0.4.10-main.fe71b4c"
63
+ "@dxos/signal": "0.4.10-next.71cec10"
64
64
  },
65
65
  "publishConfig": {
66
66
  "access": "public"
@@ -3,8 +3,7 @@
3
3
  //
4
4
 
5
5
  import { getHeads } from '@dxos/automerge/automerge';
6
- import { type DocHandle } from '@dxos/automerge/automerge-repo';
7
- import { warnAfterTimeout } from '@dxos/debug';
6
+ import { type DocumentId, type DocHandle } from '@dxos/automerge/automerge-repo';
8
7
  import { type AutomergeHost } from '@dxos/echo-pipeline';
9
8
  import { type ObjectSnapshot } from '@dxos/indexing';
10
9
  import { type ObjectPointerEncoded, idCodec } from '@dxos/protocols';
@@ -21,8 +20,12 @@ export const createSelectedDocumentsIterator = (automergeHost: AutomergeHost) =>
21
20
  async function* loadDocuments(ids: ObjectPointerEncoded[]) {
22
21
  for (const id of ids) {
23
22
  const { documentId, objectId } = idCodec.decode(id);
24
- const handle = automergeHost.repo.find(documentId as any);
25
- await warnAfterTimeout(5000, 'to long to load doc', () => handle.whenReady());
23
+ const handle =
24
+ automergeHost.repo.handles[documentId as DocumentId] ?? automergeHost.repo.find(documentId as DocumentId);
25
+ if (!handle.isReady()) {
26
+ // `whenReady` creates a timeout so we guard it with an if to skip it if the handle is already ready.
27
+ await handle.whenReady();
28
+ }
26
29
  const doc = handle.docSync();
27
30
  const hash = getHeads(doc).join('');
28
31
  yield doc.objects?.[objectId] ? [{ id, object: doc.objects[objectId], currentHash: hash }] : [];
@@ -47,7 +50,10 @@ export const createDocumentsIterator = (automergeHost: AutomergeHost) =>
47
50
  return;
48
51
  }
49
52
 
50
- await warnAfterTimeout(5000, 'to long to load doc', () => handle.whenReady());
53
+ if (!handle.isReady()) {
54
+ // `whenReady` creates a timeout so we guard it with an if to skip it if the handle is already ready.
55
+ await handle.whenReady();
56
+ }
51
57
  const doc = handle.docSync();
52
58
 
53
59
  const heads = getHeads(doc);
@@ -67,7 +73,7 @@ export const createDocumentsIterator = (automergeHost: AutomergeHost) =>
67
73
  if (visited.has(id)) {
68
74
  continue;
69
75
  }
70
- const linkHandle = automergeHost.repo.find(id as any);
76
+ const linkHandle = automergeHost.repo.handles[id as DocumentId] ?? automergeHost.repo.find(id as DocumentId);
71
77
  for await (const result of getObjectsFromHandle(linkHandle)) {
72
78
  yield result;
73
79
  }
@@ -77,6 +83,7 @@ export const createDocumentsIterator = (automergeHost: AutomergeHost) =>
77
83
  visited.add(handle.documentId);
78
84
  }
79
85
 
86
+ // TODO(mykola): Use list of roots instead of iterating over all handles.
80
87
  for (const handle of Object.values(automergeHost.repo.handles)) {
81
88
  if (visited.has(handle.documentId)) {
82
89
  continue;
@@ -7,3 +7,4 @@ export * from './invitation-protocol';
7
7
  export * from './invitations-handler';
8
8
  export * from './invitations-service';
9
9
  export * from './space-invitation-protocol';
10
+ export * from './invitations-manager';
@@ -193,7 +193,7 @@ export class InvitationsHandler {
193
193
  return extension;
194
194
  };
195
195
 
196
- if (invitation.lifetime && invitation.created && invitation.lifetime !== 0) {
196
+ if (invitation.lifetime && invitation.created) {
197
197
  if (invitation.created.getTime() + invitation.lifetime * 1000 < Date.now()) {
198
198
  log.warn('invitation has already expired');
199
199
  } else {
@@ -251,7 +251,6 @@ export class InvitationsHandler {
251
251
  const { timeout = INVITATION_TIMEOUT } = invitation;
252
252
  invariant(protocol);
253
253
 
254
- // TODO(nf): duplicate check in InvitationsService
255
254
  if (deviceProfile) {
256
255
  invariant(invitation.kind === Invitation.Kind.DEVICE, 'deviceProfile provided for non-device invitation');
257
256
  }
@@ -0,0 +1,197 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { Event } from '@dxos/async';
6
+ import type { AuthenticatingInvitation, CancellableInvitation } from '@dxos/client-protocol';
7
+ import { type Context } from '@dxos/context';
8
+ import { hasInvitationExpired, type MetadataStore } from '@dxos/echo-pipeline';
9
+ import { invariant } from '@dxos/invariant';
10
+ import { log } from '@dxos/log';
11
+ import {
12
+ type AcceptInvitationRequest,
13
+ type Invitation,
14
+ type AuthenticationRequest,
15
+ } from '@dxos/protocols/proto/dxos/client/services';
16
+
17
+ import type { InvitationProtocol } from './invitation-protocol';
18
+ import type { InvitationsHandler } from './invitations-handler';
19
+
20
+ /**
21
+ * Entry point for creating and accepting invitations, keeps track of existing invitation set and
22
+ * emits events when the set changes.
23
+ */
24
+ export class InvitationsManager {
25
+ private readonly _createInvitations = new Map<string, CancellableInvitation>();
26
+ private readonly _acceptInvitations = new Map<string, AuthenticatingInvitation>();
27
+
28
+ public readonly invitationCreated = new Event<Invitation>();
29
+ public readonly invitationAccepted = new Event<Invitation>();
30
+ public readonly removedCreated = new Event<Invitation>();
31
+ public readonly removedAccepted = new Event<Invitation>();
32
+ public readonly saved = new Event<Invitation>();
33
+
34
+ private readonly _persistentInvitationsLoadedEvent = new Event();
35
+ private _persistentInvitationsLoaded = false;
36
+
37
+ constructor(
38
+ private readonly _invitationsHandler: InvitationsHandler,
39
+ private readonly _getHandler: (invitation: Invitation) => InvitationProtocol,
40
+ private readonly _metadataStore: MetadataStore,
41
+ ) {}
42
+
43
+ createInvitation(options: Invitation): CancellableInvitation {
44
+ const existingInvitation = this._createInvitations.get(options.invitationId);
45
+ if (existingInvitation) {
46
+ return existingInvitation;
47
+ }
48
+
49
+ const handler = this._getHandler(options);
50
+ const invitation = this._invitationsHandler.createInvitation(handler, options);
51
+ this._createInvitations.set(invitation.get().invitationId, invitation);
52
+ this.invitationCreated.emit(invitation.get());
53
+
54
+ const saveInvitationTask = invitation.get().persistent
55
+ ? this._safePersistInBackground(invitation)
56
+ : Promise.resolve();
57
+
58
+ // onComplete is called on cancel, expiration, or redemption of a single-use invitation
59
+ this._onInvitationComplete(invitation, async () => {
60
+ this._createInvitations.delete(invitation.get().invitationId);
61
+ this.removedCreated.emit(invitation.get());
62
+ if (invitation.get().persistent) {
63
+ await saveInvitationTask;
64
+ await this._safeDeleteInvitation(invitation.get());
65
+ }
66
+ });
67
+
68
+ return invitation;
69
+ }
70
+
71
+ async loadPersistentInvitations(): Promise<{ invitations: Invitation[] }> {
72
+ if (this._persistentInvitationsLoaded) {
73
+ const invitations = this.getCreatedInvitations().filter((i) => i.persistent);
74
+ return { invitations };
75
+ }
76
+ try {
77
+ const persistentInvitations = this._metadataStore.getInvitations();
78
+ // get saved persistent invitations, filter and remove from storage those that have expired.
79
+ const freshInvitations = persistentInvitations.filter((invitation) => !hasInvitationExpired(invitation));
80
+
81
+ const cInvitations = freshInvitations.map((persistentInvitation) => {
82
+ invariant(!this._createInvitations.get(persistentInvitation.invitationId), 'invitation already exists');
83
+ return this.createInvitation({ ...persistentInvitation, persistent: false }).get();
84
+ });
85
+
86
+ return { invitations: cInvitations };
87
+ } catch (err) {
88
+ log.catch(err);
89
+ return { invitations: [] };
90
+ } finally {
91
+ this._persistentInvitationsLoadedEvent.emit();
92
+ this._persistentInvitationsLoaded = true;
93
+ }
94
+ }
95
+
96
+ acceptInvitation(request: AcceptInvitationRequest): AuthenticatingInvitation {
97
+ const options = request.invitation;
98
+ const existingInvitation = this._acceptInvitations.get(options.invitationId);
99
+ if (existingInvitation) {
100
+ return existingInvitation;
101
+ }
102
+
103
+ const handler = this._getHandler(options);
104
+ const invitation = this._invitationsHandler.acceptInvitation(handler, options, request.deviceProfile);
105
+ this._acceptInvitations.set(invitation.get().invitationId, invitation);
106
+ this.invitationAccepted.emit(invitation.get());
107
+
108
+ this._onInvitationComplete(invitation, () => {
109
+ this._acceptInvitations.delete(invitation.get().invitationId);
110
+ this.removedAccepted.emit(invitation.get());
111
+ });
112
+
113
+ return invitation;
114
+ }
115
+
116
+ async authenticate({ invitationId, authCode }: AuthenticationRequest): Promise<void> {
117
+ log('authenticating...');
118
+ invariant(invitationId);
119
+ const observable = this._acceptInvitations.get(invitationId);
120
+ if (!observable) {
121
+ log.warn('invalid invitation', { invitationId });
122
+ } else {
123
+ await observable.authenticate(authCode);
124
+ }
125
+ }
126
+
127
+ async cancelInvitation({ invitationId }: { invitationId: string }): Promise<void> {
128
+ log('cancelInvitation...', { invitationId });
129
+ invariant(invitationId);
130
+ const created = this._createInvitations.get(invitationId);
131
+ if (created) {
132
+ // remove from storage before modifying in-memory state, higher chance of failing
133
+ if (created.get().persistent) {
134
+ await this._metadataStore.removeInvitation(invitationId);
135
+ }
136
+ await created.cancel();
137
+ this._createInvitations.delete(invitationId);
138
+ this.removedCreated.emit(created.get());
139
+ return;
140
+ }
141
+
142
+ const accepted = this._acceptInvitations.get(invitationId);
143
+ if (accepted) {
144
+ await accepted.cancel();
145
+ this._acceptInvitations.delete(invitationId);
146
+ this.removedAccepted.emit(accepted.get());
147
+ }
148
+ }
149
+
150
+ getCreatedInvitations(): Invitation[] {
151
+ return [...this._createInvitations.values()].map((i) => i.get());
152
+ }
153
+
154
+ getAcceptedInvitations(): Invitation[] {
155
+ return [...this._acceptInvitations.values()].map((i) => i.get());
156
+ }
157
+
158
+ onPersistentInvitationsLoaded(ctx: Context, callback: () => void) {
159
+ if (this._persistentInvitationsLoaded) {
160
+ callback();
161
+ } else {
162
+ this._persistentInvitationsLoadedEvent.once(ctx, () => callback());
163
+ }
164
+ }
165
+
166
+ private _safePersistInBackground(invitation: CancellableInvitation): Promise<void> {
167
+ return new Promise((resolve) => {
168
+ setTimeout(async () => {
169
+ try {
170
+ await this._metadataStore.addInvitation(invitation.get());
171
+ this.saved.emit(invitation.get());
172
+ } catch (err: any) {
173
+ log.catch(err);
174
+ await invitation.cancel();
175
+ } finally {
176
+ resolve();
177
+ }
178
+ });
179
+ });
180
+ }
181
+
182
+ private async _safeDeleteInvitation(invitation: Invitation): Promise<void> {
183
+ try {
184
+ await this._metadataStore.removeInvitation(invitation.invitationId);
185
+ } catch (err) {
186
+ log.catch(err);
187
+ }
188
+ }
189
+
190
+ private _onInvitationComplete(invitation: CancellableInvitation, callback: () => void) {
191
+ invitation.subscribe(
192
+ () => {},
193
+ () => {},
194
+ callback,
195
+ );
196
+ }
197
+ }