@dxos/client-services 0.7.5-main.9d2a38b → 0.7.5-main.e9bb01b

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 (30) hide show
  1. package/dist/lib/browser/{chunk-RFZHCLFI.mjs → chunk-O46EJ5BJ.mjs} +69 -55
  2. package/dist/lib/browser/chunk-O46EJ5BJ.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +1 -1
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/browser/testing/index.mjs +1 -1
  6. package/dist/lib/node/{chunk-WCTGAZLA.cjs → chunk-WFDMSV4I.cjs} +67 -53
  7. package/dist/lib/node/chunk-WFDMSV4I.cjs.map +7 -0
  8. package/dist/lib/node/index.cjs +47 -47
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/testing/index.cjs +8 -8
  11. package/dist/lib/node-esm/{chunk-RSOLUJE6.mjs → chunk-UWR5XM7L.mjs} +69 -55
  12. package/dist/lib/node-esm/chunk-UWR5XM7L.mjs.map +7 -0
  13. package/dist/lib/node-esm/index.mjs +1 -1
  14. package/dist/lib/node-esm/meta.json +1 -1
  15. package/dist/lib/node-esm/testing/index.mjs +1 -1
  16. package/dist/types/src/packlets/invitations/invitations-handler.d.ts.map +1 -1
  17. package/dist/types/src/packlets/invitations/space-invitation-protocol.d.ts.map +1 -1
  18. package/dist/types/src/packlets/invitations/utils.d.ts +1 -0
  19. package/dist/types/src/packlets/invitations/utils.d.ts.map +1 -1
  20. package/dist/types/src/version.d.ts +1 -1
  21. package/package.json +38 -38
  22. package/src/packlets/invitations/invitations-handler.ts +15 -6
  23. package/src/packlets/invitations/invitations-manager.ts +1 -1
  24. package/src/packlets/invitations/space-invitation-protocol.ts +2 -3
  25. package/src/packlets/invitations/utils.ts +7 -0
  26. package/src/packlets/spaces/data-space-manager.ts +1 -1
  27. package/src/version.ts +1 -1
  28. package/dist/lib/browser/chunk-RFZHCLFI.mjs.map +0 -7
  29. package/dist/lib/node/chunk-WCTGAZLA.cjs.map +0 -7
  30. package/dist/lib/node-esm/chunk-RSOLUJE6.mjs.map +0 -7
@@ -6,7 +6,7 @@ import {
6
6
  InvitationsManager,
7
7
  ServiceContext,
8
8
  SpaceInvitationProtocol
9
- } from "../chunk-RSOLUJE6.mjs";
9
+ } from "../chunk-UWR5XM7L.mjs";
10
10
 
11
11
  // packages/sdk/client-services/src/packlets/testing/credential-utils.ts
12
12
  import { createCredential } from "@dxos/credentials";
@@ -1 +1 @@
1
- {"version":3,"file":"invitations-handler.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/invitations-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAA8B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAQnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGzF,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIpG,OAAO,EAAE,KAAK,oBAAoB,EAAyB,MAAM,2BAA2B,CAAC;AAG7F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQhE,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAGrC,oBAAoB,CAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,GACrB,IAAI;IAwIP,gBAAgB,CACd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,EAClC,aAAa,CAAC,EAAE,qBAAqB,GACpC,IAAI;YAuMO,UAAU;YA0BV,mBAAmB;YA6BnB,mBAAmB;CAqBlC;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":"AAIA,OAAO,EAAE,KAAK,UAAU,EAA8B,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AAQnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAGzF,OAAO,EAAiD,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIpG,OAAO,EAAE,KAAK,oBAAoB,EAAyB,MAAM,2BAA2B,CAAC;AAG7F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAQhE,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,kBAAkB;IAK3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAGrC,oBAAoB,CAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,GACrB,IAAI;IAyIP,gBAAgB,CACd,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,EAClC,aAAa,CAAC,EAAE,qBAAqB,GACpC,IAAI;YAuMO,UAAU;YA0BV,mBAAmB;YA6BnB,mBAAmB;CAqBlC;AAUD,eAAO,MAAM,sBAAsB,QAAO,gBAGzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"space-invitation-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitation-protocol.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAClB,KAAK,QAAQ,EAEb,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAEvE,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,EAAE,SAAS,YAAA;IAGxC,MAAM,IAAI,MAAM;IAQhB,wBAAwB,IAAI,QAAQ,GAAG,SAAS;IAchD,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;IAWhE,KAAK,CACT,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,EACzB,YAAY,CAAC,EAAE,eAAe,GAAG,SAAS,GACzC,OAAO,CAAC,iBAAiB,CAAC;IAqBvB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAiCpD,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7D,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;IAS/C,kBAAkB,IAAI,mBAAmB;IAMnC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAenD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAuBxE"}
1
+ {"version":3,"file":"space-invitation-protocol.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/space-invitation-protocol.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,kBAAkB,EAClB,KAAK,QAAQ,EAEb,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAEvE,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,EAAE,SAAS,YAAA;IAGxC,MAAM,IAAI,MAAM;IAQhB,wBAAwB,IAAI,QAAQ,GAAG,SAAS;IAchD,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;IAWhE,KAAK,CACT,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,EACzB,YAAY,CAAC,EAAE,eAAe,GAAG,SAAS,GACzC,OAAO,CAAC,iBAAiB,CAAC;IAqBvB,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IA+BpD,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7D,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC;IAS/C,kBAAkB,IAAI,mBAAmB;IAMnC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAenD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;CAuBxE"}
@@ -2,5 +2,6 @@ import { type Mutex, type MutexGuard } from '@dxos/async';
2
2
  import { type Context } from '@dxos/context';
3
3
  import { Invitation } from '@dxos/protocols/proto/dxos/client/services';
4
4
  export declare const stateToString: (state: Invitation.State) => string;
5
+ export declare const computeExpirationTime: (invitation: Partial<Invitation>) => Date | undefined;
5
6
  export declare const tryAcquireBeforeContextDisposed: (ctx: Context, mutex: Mutex) => Promise<MutexGuard>;
6
7
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAqB,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,eAAO,MAAM,aAAa,UAAW,UAAU,CAAC,KAAK,KAAG,MAEvD,CAAC;AAEF,eAAO,MAAM,+BAA+B,QAAe,OAAO,SAAS,KAAK,KAAG,OAAO,CAAC,UAAU,CAcpG,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/invitations/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAqB,KAAK,OAAO,EAAwB,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAExE,eAAO,MAAM,aAAa,UAAW,UAAU,CAAC,KAAK,KAAG,MAEvD,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAgB,OAAO,CAAC,UAAU,CAAC,KAAG,IAAI,GAAG,SAK9E,CAAC;AAEF,eAAO,MAAM,+BAA+B,QAAe,OAAO,SAAS,KAAK,KAAG,OAAO,CAAC,UAAU,CAcpG,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.7.5-main.9d2a38b";
1
+ export declare const DXOS_VERSION = "0.7.5-main.e9bb01b";
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.7.5-main.9d2a38b",
3
+ "version": "0.7.5-main.e9bb01b",
4
4
  "description": "DXOS client services implementation",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -42,48 +42,48 @@
42
42
  "dependencies": {
43
43
  "cbor-x": "^1.5.4",
44
44
  "platform": "^1.3.6",
45
- "@dxos/async": "0.7.5-main.9d2a38b",
46
- "@dxos/automerge": "0.7.5-main.9d2a38b",
47
- "@dxos/client-protocol": "0.7.5-main.9d2a38b",
48
- "@dxos/codec-protobuf": "0.7.5-main.9d2a38b",
49
- "@dxos/config": "0.7.5-main.9d2a38b",
50
- "@dxos/context": "0.7.5-main.9d2a38b",
51
- "@dxos/credentials": "0.7.5-main.9d2a38b",
52
- "@dxos/crypto": "0.7.5-main.9d2a38b",
53
- "@dxos/debug": "0.7.5-main.9d2a38b",
54
- "@dxos/echo-db": "0.7.5-main.9d2a38b",
55
- "@dxos/echo-pipeline": "0.7.5-main.9d2a38b",
56
- "@dxos/echo-protocol": "0.7.5-main.9d2a38b",
57
- "@dxos/echo-schema": "0.7.5-main.9d2a38b",
58
- "@dxos/edge-client": "0.7.5-main.9d2a38b",
59
- "@dxos/feed-store": "0.7.5-main.9d2a38b",
60
- "@dxos/indexing": "0.7.5-main.9d2a38b",
61
- "@dxos/invariant": "0.7.5-main.9d2a38b",
62
- "@dxos/keyring": "0.7.5-main.9d2a38b",
63
- "@dxos/keys": "0.7.5-main.9d2a38b",
64
- "@dxos/kv-store": "0.7.5-main.9d2a38b",
65
- "@dxos/lock-file": "0.7.5-main.9d2a38b",
66
- "@dxos/log": "0.7.5-main.9d2a38b",
67
- "@dxos/messaging": "0.7.5-main.9d2a38b",
68
- "@dxos/network-manager": "0.7.5-main.9d2a38b",
69
- "@dxos/node-std": "0.7.5-main.9d2a38b",
70
- "@dxos/protocols": "0.7.5-main.9d2a38b",
71
- "@dxos/random-access-storage": "0.7.5-main.9d2a38b",
72
- "@dxos/rpc": "0.7.5-main.9d2a38b",
73
- "@dxos/teleport-extension-gossip": "0.7.5-main.9d2a38b",
74
- "@dxos/teleport-extension-object-sync": "0.7.5-main.9d2a38b",
75
- "@dxos/timeframe": "0.7.5-main.9d2a38b",
76
- "@dxos/teleport": "0.7.5-main.9d2a38b",
77
- "@dxos/tracing": "0.7.5-main.9d2a38b",
78
- "@dxos/util": "0.7.5-main.9d2a38b",
79
- "@dxos/websocket-rpc": "0.7.5-main.9d2a38b"
45
+ "@dxos/async": "0.7.5-main.e9bb01b",
46
+ "@dxos/automerge": "0.7.5-main.e9bb01b",
47
+ "@dxos/client-protocol": "0.7.5-main.e9bb01b",
48
+ "@dxos/config": "0.7.5-main.e9bb01b",
49
+ "@dxos/codec-protobuf": "0.7.5-main.e9bb01b",
50
+ "@dxos/credentials": "0.7.5-main.e9bb01b",
51
+ "@dxos/context": "0.7.5-main.e9bb01b",
52
+ "@dxos/crypto": "0.7.5-main.e9bb01b",
53
+ "@dxos/debug": "0.7.5-main.e9bb01b",
54
+ "@dxos/echo-db": "0.7.5-main.e9bb01b",
55
+ "@dxos/echo-pipeline": "0.7.5-main.e9bb01b",
56
+ "@dxos/echo-protocol": "0.7.5-main.e9bb01b",
57
+ "@dxos/echo-schema": "0.7.5-main.e9bb01b",
58
+ "@dxos/edge-client": "0.7.5-main.e9bb01b",
59
+ "@dxos/feed-store": "0.7.5-main.e9bb01b",
60
+ "@dxos/indexing": "0.7.5-main.e9bb01b",
61
+ "@dxos/kv-store": "0.7.5-main.e9bb01b",
62
+ "@dxos/keys": "0.7.5-main.e9bb01b",
63
+ "@dxos/invariant": "0.7.5-main.e9bb01b",
64
+ "@dxos/keyring": "0.7.5-main.e9bb01b",
65
+ "@dxos/lock-file": "0.7.5-main.e9bb01b",
66
+ "@dxos/log": "0.7.5-main.e9bb01b",
67
+ "@dxos/messaging": "0.7.5-main.e9bb01b",
68
+ "@dxos/network-manager": "0.7.5-main.e9bb01b",
69
+ "@dxos/node-std": "0.7.5-main.e9bb01b",
70
+ "@dxos/random-access-storage": "0.7.5-main.e9bb01b",
71
+ "@dxos/protocols": "0.7.5-main.e9bb01b",
72
+ "@dxos/teleport": "0.7.5-main.e9bb01b",
73
+ "@dxos/teleport-extension-gossip": "0.7.5-main.e9bb01b",
74
+ "@dxos/rpc": "0.7.5-main.e9bb01b",
75
+ "@dxos/teleport-extension-object-sync": "0.7.5-main.e9bb01b",
76
+ "@dxos/timeframe": "0.7.5-main.e9bb01b",
77
+ "@dxos/tracing": "0.7.5-main.e9bb01b",
78
+ "@dxos/util": "0.7.5-main.e9bb01b",
79
+ "@dxos/websocket-rpc": "0.7.5-main.e9bb01b"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@types/platform": "^1.3.4",
83
83
  "@types/readable-stream": "^2.3.9",
84
84
  "get-port-please": "^3.1.1",
85
- "@dxos/signal": "0.7.5-main.9d2a38b",
86
- "@dxos/test-utils": "0.7.5-main.9d2a38b"
85
+ "@dxos/signal": "0.7.5-main.e9bb01b",
86
+ "@dxos/test-utils": "0.7.5-main.e9bb01b"
87
87
  },
88
88
  "publishConfig": {
89
89
  "access": "public"
@@ -3,7 +3,7 @@
3
3
  //
4
4
 
5
5
  import { type PushStream, scheduleTask, TimeoutError, type Trigger } from '@dxos/async';
6
- import { INVITATION_TIMEOUT } from '@dxos/client-protocol';
6
+ import { INVITATION_TIMEOUT, getExpirationTime } from '@dxos/client-protocol';
7
7
  import { type Context, ContextDisposedError } from '@dxos/context';
8
8
  import { createKeyPair, sign } from '@dxos/crypto';
9
9
  import { type EdgeHttpClient } from '@dxos/edge-client';
@@ -11,7 +11,7 @@ import { invariant } from '@dxos/invariant';
11
11
  import { PublicKey } from '@dxos/keys';
12
12
  import { log } from '@dxos/log';
13
13
  import { createTeleportProtocolFactory, type SwarmNetworkManager, type SwarmConnection } from '@dxos/network-manager';
14
- import { InvalidInvitationExtensionRoleError, trace } from '@dxos/protocols';
14
+ import { InvalidInvitationError, InvalidInvitationExtensionRoleError, trace } from '@dxos/protocols';
15
15
  import { type AdmissionKeypair, Invitation } from '@dxos/protocols/proto/dxos/client/services';
16
16
  import { type DeviceProfileDocument } from '@dxos/protocols/proto/dxos/halo/credentials';
17
17
  import { AuthenticationResponse, type IntroductionResponse } from '@dxos/protocols/proto/dxos/halo/invitations';
@@ -188,8 +188,9 @@ export class InvitationsHandler {
188
188
  return extension;
189
189
  };
190
190
 
191
- if (invitation.lifetime && invitation.created) {
192
- if (invitation.created.getTime() + invitation.lifetime * 1000 < Date.now()) {
191
+ const expiresOn = getExpirationTime(invitation);
192
+ if (expiresOn) {
193
+ if (expiresOn.getTime() < Date.now()) {
193
194
  log.warn('invitation has already expired');
194
195
  guardedState.set(null, Invitation.State.EXPIRED);
195
196
  void ctx.dispose().catch((err) => log.catch(err));
@@ -204,7 +205,7 @@ export class InvitationsHandler {
204
205
  metrics.increment('dxos.invitation.expired');
205
206
  await ctx.dispose();
206
207
  },
207
- invitation.created.getTime() + invitation.lifetime * 1000 - Date.now(),
208
+ expiresOn.getTime() - Date.now(),
208
209
  );
209
210
  }
210
211
 
@@ -397,7 +398,7 @@ export class InvitationsHandler {
397
398
  edgeInvitationHandler.handle(ctx, guardedState, protocol, deviceProfile);
398
399
 
399
400
  scheduleTask(ctx, async () => {
400
- const error = protocol.checkInvitation(invitation);
401
+ const error = checkInvitation(protocol, invitation);
401
402
  if (error) {
402
403
  stream.error(error);
403
404
  await ctx.dispose();
@@ -499,6 +500,14 @@ export class InvitationsHandler {
499
500
  }
500
501
  }
501
502
 
503
+ const checkInvitation = (protocol: InvitationProtocol, invitation: Partial<Invitation>) => {
504
+ const expiresOn = getExpirationTime(invitation);
505
+ if (expiresOn && expiresOn.getTime() < Date.now()) {
506
+ return new InvalidInvitationError('Invitation already expired.');
507
+ }
508
+ return protocol.checkInvitation(invitation);
509
+ };
510
+
502
511
  export const createAdmissionKeypair = (): AdmissionKeypair => {
503
512
  const keypair = createKeyPair();
504
513
  return { publicKey: PublicKey.from(keypair.publicKey), privateKey: keypair.secretKey };
@@ -202,7 +202,7 @@ export class InvitationsManager {
202
202
  created = new Date(),
203
203
  guestKeypair = undefined,
204
204
  role = SpaceMember.Role.ADMIN,
205
- lifetime = 86400, // 1 day,
205
+ lifetime = 86400 * 7, // 7 days,
206
206
  multiUse = false,
207
207
  ...options
208
208
  } = _options ?? {};
@@ -28,6 +28,7 @@ import {
28
28
  } from '@dxos/protocols/proto/dxos/halo/invitations';
29
29
 
30
30
  import { type InvitationProtocol } from './invitation-protocol';
31
+ import { computeExpirationTime } from './utils';
31
32
  import { type DataSpaceManager, type SigningContext } from '../spaces';
32
33
 
33
34
  export class SpaceInvitationProtocol implements InvitationProtocol {
@@ -113,9 +114,7 @@ export class SpaceInvitationProtocol implements InvitationProtocol {
113
114
  authMethod: invitation.authMethod,
114
115
  swarmKey: invitation.swarmKey,
115
116
  role: invitation.role ?? SpaceMember.Role.ADMIN,
116
- expiresOn: invitation.lifetime
117
- ? new Date((invitation.created?.getTime() ?? Date.now()) + invitation.lifetime)
118
- : undefined,
117
+ expiresOn: computeExpirationTime(invitation),
119
118
  multiUse: invitation.multiUse ?? false,
120
119
  guestKey:
121
120
  invitation.authMethod === Invitation.AuthMethod.KNOWN_PUBLIC_KEY
@@ -10,6 +10,13 @@ export const stateToString = (state: Invitation.State): string => {
10
10
  return Object.entries(Invitation.State).find(([key, val]) => val === state)?.[0] ?? 'unknown';
11
11
  };
12
12
 
13
+ export const computeExpirationTime = (invitation: Partial<Invitation>): Date | undefined => {
14
+ if (!invitation.lifetime) {
15
+ return;
16
+ }
17
+ return new Date((invitation.created?.getTime() ?? Date.now()) + invitation.lifetime * 1000);
18
+ };
19
+
13
20
  export const tryAcquireBeforeContextDisposed = async (ctx: Context, mutex: Mutex): Promise<MutexGuard> => {
14
21
  let guard: MutexGuard | undefined;
15
22
  return cancelWithContext(
@@ -609,7 +609,7 @@ export class DataSpaceManager extends Resource {
609
609
  invitationId: invitation.invitationId,
610
610
  swarmKey: invitation.swarmKey,
611
611
  guestKeypair: invitation.guestKey ? { publicKey: invitation.guestKey } : undefined,
612
- lifetime: invitation.expiresOn ? invitation.expiresOn.getTime() - Date.now() : undefined,
612
+ lifetime: invitation.expiresOn ? (invitation.expiresOn.getTime() - Date.now()) / 1000 : undefined,
613
613
  multiUse: invitation.multiUse,
614
614
  delegationCredentialId: credentialId,
615
615
  persistent: false,
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const DXOS_VERSION = "0.7.5-main.9d2a38b";
1
+ export const DXOS_VERSION = "0.7.5-main.e9bb01b";