@dxos/client-services 0.7.5-labs.e27f9b9 → 0.7.5-labs.ea4b4c2

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-OHBCYJRF.mjs → chunk-X65X3DJU.mjs} +104 -20
  2. package/dist/lib/browser/chunk-X65X3DJU.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-X3IYGB6Q.cjs → chunk-2XAKPWJ6.cjs} +107 -23
  7. package/dist/lib/node/chunk-2XAKPWJ6.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-U5S4G236.mjs → chunk-UCFK27SP.mjs} +104 -20
  12. package/dist/lib/node-esm/chunk-UCFK27SP.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/agents/edge-agent-manager.d.ts.map +1 -1
  17. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts +10 -1
  18. package/dist/types/src/packlets/identity/identity-recovery-manager.d.ts.map +1 -1
  19. package/dist/types/src/packlets/identity/identity-service.d.ts +5 -0
  20. package/dist/types/src/packlets/identity/identity-service.d.ts.map +1 -1
  21. package/dist/types/src/version.d.ts +1 -1
  22. package/package.json +38 -38
  23. package/src/packlets/agents/edge-agent-manager.ts +6 -0
  24. package/src/packlets/identity/identity-recovery-manager.ts +64 -2
  25. package/src/packlets/identity/identity-service.ts +12 -1
  26. package/src/packlets/spaces/data-space-manager.ts +2 -2
  27. package/src/version.ts +1 -1
  28. package/dist/lib/browser/chunk-OHBCYJRF.mjs.map +0 -7
  29. package/dist/lib/node/chunk-X3IYGB6Q.cjs.map +0 -7
  30. package/dist/lib/node-esm/chunk-U5S4G236.mjs.map +0 -7
@@ -6,7 +6,7 @@ import {
6
6
  InvitationsManager,
7
7
  ServiceContext,
8
8
  SpaceInvitationProtocol
9
- } from "../chunk-U5S4G236.mjs";
9
+ } from "../chunk-UCFK27SP.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":"edge-agent-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/agents/edge-agent-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAA8B,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAExC,qBAAa,gBAAiB,SAAQ,QAAQ;IAW1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAbrB,kBAAkB,yBAAgC;IAEzD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,qBAAqB,CAA2B;gBAGrC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EACtD,eAAe,EAAE,cAAc,GAAG,SAAS,EAC3C,iBAAiB,EAAE,gBAAgB,EACnC,SAAS,EAAE,QAAQ;IAKtC,IAAW,WAAW,IAAI,eAAe,GAAG,SAAS,CAEpD;IAED,IAAW,WAAW,wBAErB;IAGY,WAAW;cAyBC,KAAK;cA+BL,MAAM;cAKf,iBAAiB;IAuBjC;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,cAAc,EAAE,SAAS;IA0B1D,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"edge-agent-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/agents/edge-agent-manager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAA8B,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAMlD,MAAM,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAExC,qBAAa,gBAAiB,SAAQ,QAAQ;IAW1C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAbrB,kBAAkB,yBAAgC;IAEzD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,qBAAqB,CAA2B;gBAGrC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,EACtD,eAAe,EAAE,cAAc,GAAG,SAAS,EAC3C,iBAAiB,EAAE,gBAAgB,EACnC,SAAS,EAAE,QAAQ;IAKtC,IAAW,WAAW,IAAI,eAAe,GAAG,SAAS,CAEpD;IAED,IAAW,WAAW,wBAErB;IAGY,WAAW;cA+BC,KAAK;cA+BL,MAAM;cAKf,iBAAiB;IAuBjC;;;;OAIG;IACH,SAAS,CAAC,sBAAsB,CAAC,cAAc,EAAE,SAAS;IA0B1D,OAAO,CAAC,aAAa;CAStB"}
@@ -1,5 +1,6 @@
1
1
  import { type EdgeHttpClient } from '@dxos/edge-client';
2
2
  import { type Keyring } from '@dxos/keyring';
3
+ import { PublicKey } from '@dxos/keys';
3
4
  import { type CreateRecoveryCredentialRequest, type RecoverIdentityRequest } from '@dxos/protocols/proto/dxos/client/services';
4
5
  import { type Identity } from './identity';
5
6
  import { type JoinIdentityParams } from './identity-manager';
@@ -12,6 +13,14 @@ export declare class EdgeIdentityRecoveryManager {
12
13
  createRecoveryCredential({ recoveryKey, algorithm }: CreateRecoveryCredentialRequest): Promise<{
13
14
  recoveryCode: string | undefined;
14
15
  }>;
15
- recoverIdentity({ recoveryCode }: RecoverIdentityRequest): Promise<void>;
16
+ requestRecoveryChallenge(): Promise<{
17
+ deviceKey: PublicKey;
18
+ controlFeedKey: PublicKey;
19
+ challenge: string;
20
+ }>;
21
+ recoverIdentityWithExternalSignature({ identityDid, deviceKey, controlFeedKey, signature, clientDataJson, authenticatorData, }: RecoverIdentityRequest.ExternalSignature): Promise<void>;
22
+ recoverIdentity({ recoveryCode }: {
23
+ recoveryCode: string;
24
+ }): Promise<void>;
16
25
  }
17
26
  //# sourceMappingURL=identity-recovery-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-recovery-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-recovery-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAS7C,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC5B,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAHxB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,QAAQ,GAAG,SAAS,EAC7C,wBAAwB,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC;IAGjF,wBAAwB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,+BAA+B;;;IA8BpF,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE,sBAAsB;CAuCtE"}
1
+ {"version":3,"file":"identity-recovery-manager.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-recovery-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQvC,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,sBAAsB,EAC5B,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,qBAAa,2BAA2B;IAEpC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAHxB,QAAQ,EAAE,OAAO,EACjB,WAAW,EAAE,cAAc,GAAG,SAAS,EACvC,iBAAiB,EAAE,MAAM,QAAQ,GAAG,SAAS,EAC7C,wBAAwB,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC;IAGjF,wBAAwB,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,+BAA+B;;;IA8BpF,wBAAwB;;;;;IAyBxB,oCAAoC,CAAC,EAChD,WAAW,EACX,SAAS,EACT,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,GAClB,EAAE,sBAAsB,CAAC,iBAAiB;IA8B9B,eAAe,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE;CAuCxE"}
@@ -24,6 +24,11 @@ export declare class IdentityServiceImpl extends Resource implements IdentitySer
24
24
  createRecoveryCredential(request: CreateRecoveryCredentialRequest): Promise<{
25
25
  recoveryCode: string | undefined;
26
26
  }>;
27
+ requestRecoveryChallenge(): Promise<{
28
+ deviceKey: import("packages/common/keys/dist/types/src").PublicKey;
29
+ controlFeedKey: import("packages/common/keys/dist/types/src").PublicKey;
30
+ challenge: string;
31
+ }>;
27
32
  recoverIdentity(request: RecoverIdentityRequest): Promise<IdentityProto>;
28
33
  signPresentation({ presentation, nonce }: SignPresentationRequest): Promise<Presentation>;
29
34
  createAuthCredential(): Promise<import("@dxos/protocols/proto/dxos/halo/credentials").Credential>;
@@ -1 +1 @@
1
- {"version":3,"file":"identity-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,QAAQ,IAAI,aAAa,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGtG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,eAAe;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBALjB,gBAAgB,EAAE,eAAe,EACjC,gBAAgB,EAAE,2BAA2B,EAC7C,QAAQ,EAAE,OAAO,EACjB,yBAAyB,EAAE,MAAM,gBAAgB,EACjD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,gBAAgB,CAAC,GAAE,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,aAAA;cAKpE,KAAK;IAOxB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;YAO9D,mBAAmB;IAOjC,aAAa,IAAI,MAAM,CAAC,qBAAqB,CAAC;IAS9C,OAAO,CAAC,YAAY;IAad,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAO/D,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;;;IAIjE,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAMxE,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAYzF,oBAAoB;YAeZ,+BAA+B;CA6C9C"}
1
+ {"version":3,"file":"identity-service.d.ts","sourceRoot":"","sources":["../../../../../src/packlets/identity/identity-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,QAAQ,IAAI,aAAa,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAGtG,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIlD,qBAAa,mBAAoB,SAAQ,QAAS,YAAW,eAAe;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBALjB,gBAAgB,EAAE,eAAe,EACjC,gBAAgB,EAAE,2BAA2B,EAC7C,QAAQ,EAAE,OAAO,EACjB,yBAAyB,EAAE,MAAM,gBAAgB,EACjD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,gBAAgB,CAAC,GAAE,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,aAAA;cAKpE,KAAK;IAOxB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;YAO9D,mBAAmB;IAOjC,aAAa,IAAI,MAAM,CAAC,qBAAqB,CAAC;IAS9C,OAAO,CAAC,YAAY;IAad,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAO/D,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;;;IAIjE,wBAAwB;;;;;IAIxB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC;IAaxE,gBAAgB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAYzF,oBAAoB;YAeZ,+BAA+B;CA6C9C"}
@@ -1,2 +1,2 @@
1
- export declare const DXOS_VERSION = "0.7.5-labs.e27f9b9";
1
+ export declare const DXOS_VERSION = "0.7.5-labs.ea4b4c2";
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-labs.e27f9b9",
3
+ "version": "0.7.5-labs.ea4b4c2",
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-labs.e27f9b9",
46
- "@dxos/client-protocol": "0.7.5-labs.e27f9b9",
47
- "@dxos/codec-protobuf": "0.7.5-labs.e27f9b9",
48
- "@dxos/config": "0.7.5-labs.e27f9b9",
49
- "@dxos/automerge": "0.7.5-labs.e27f9b9",
50
- "@dxos/context": "0.7.5-labs.e27f9b9",
51
- "@dxos/credentials": "0.7.5-labs.e27f9b9",
52
- "@dxos/crypto": "0.7.5-labs.e27f9b9",
53
- "@dxos/echo-db": "0.7.5-labs.e27f9b9",
54
- "@dxos/debug": "0.7.5-labs.e27f9b9",
55
- "@dxos/echo-pipeline": "0.7.5-labs.e27f9b9",
56
- "@dxos/echo-protocol": "0.7.5-labs.e27f9b9",
57
- "@dxos/echo-schema": "0.7.5-labs.e27f9b9",
58
- "@dxos/feed-store": "0.7.5-labs.e27f9b9",
59
- "@dxos/edge-client": "0.7.5-labs.e27f9b9",
60
- "@dxos/keyring": "0.7.5-labs.e27f9b9",
61
- "@dxos/indexing": "0.7.5-labs.e27f9b9",
62
- "@dxos/keys": "0.7.5-labs.e27f9b9",
63
- "@dxos/invariant": "0.7.5-labs.e27f9b9",
64
- "@dxos/kv-store": "0.7.5-labs.e27f9b9",
65
- "@dxos/lock-file": "0.7.5-labs.e27f9b9",
66
- "@dxos/log": "0.7.5-labs.e27f9b9",
67
- "@dxos/network-manager": "0.7.5-labs.e27f9b9",
68
- "@dxos/messaging": "0.7.5-labs.e27f9b9",
69
- "@dxos/protocols": "0.7.5-labs.e27f9b9",
70
- "@dxos/random-access-storage": "0.7.5-labs.e27f9b9",
71
- "@dxos/rpc": "0.7.5-labs.e27f9b9",
72
- "@dxos/teleport": "0.7.5-labs.e27f9b9",
73
- "@dxos/node-std": "0.7.5-labs.e27f9b9",
74
- "@dxos/teleport-extension-object-sync": "0.7.5-labs.e27f9b9",
75
- "@dxos/teleport-extension-gossip": "0.7.5-labs.e27f9b9",
76
- "@dxos/timeframe": "0.7.5-labs.e27f9b9",
77
- "@dxos/tracing": "0.7.5-labs.e27f9b9",
78
- "@dxos/util": "0.7.5-labs.e27f9b9",
79
- "@dxos/websocket-rpc": "0.7.5-labs.e27f9b9"
45
+ "@dxos/async": "0.7.5-labs.ea4b4c2",
46
+ "@dxos/automerge": "0.7.5-labs.ea4b4c2",
47
+ "@dxos/client-protocol": "0.7.5-labs.ea4b4c2",
48
+ "@dxos/config": "0.7.5-labs.ea4b4c2",
49
+ "@dxos/codec-protobuf": "0.7.5-labs.ea4b4c2",
50
+ "@dxos/context": "0.7.5-labs.ea4b4c2",
51
+ "@dxos/credentials": "0.7.5-labs.ea4b4c2",
52
+ "@dxos/crypto": "0.7.5-labs.ea4b4c2",
53
+ "@dxos/debug": "0.7.5-labs.ea4b4c2",
54
+ "@dxos/echo-db": "0.7.5-labs.ea4b4c2",
55
+ "@dxos/echo-schema": "0.7.5-labs.ea4b4c2",
56
+ "@dxos/echo-protocol": "0.7.5-labs.ea4b4c2",
57
+ "@dxos/echo-pipeline": "0.7.5-labs.ea4b4c2",
58
+ "@dxos/feed-store": "0.7.5-labs.ea4b4c2",
59
+ "@dxos/edge-client": "0.7.5-labs.ea4b4c2",
60
+ "@dxos/indexing": "0.7.5-labs.ea4b4c2",
61
+ "@dxos/invariant": "0.7.5-labs.ea4b4c2",
62
+ "@dxos/keyring": "0.7.5-labs.ea4b4c2",
63
+ "@dxos/keys": "0.7.5-labs.ea4b4c2",
64
+ "@dxos/log": "0.7.5-labs.ea4b4c2",
65
+ "@dxos/lock-file": "0.7.5-labs.ea4b4c2",
66
+ "@dxos/network-manager": "0.7.5-labs.ea4b4c2",
67
+ "@dxos/messaging": "0.7.5-labs.ea4b4c2",
68
+ "@dxos/node-std": "0.7.5-labs.ea4b4c2",
69
+ "@dxos/kv-store": "0.7.5-labs.ea4b4c2",
70
+ "@dxos/protocols": "0.7.5-labs.ea4b4c2",
71
+ "@dxos/rpc": "0.7.5-labs.ea4b4c2",
72
+ "@dxos/random-access-storage": "0.7.5-labs.ea4b4c2",
73
+ "@dxos/teleport": "0.7.5-labs.ea4b4c2",
74
+ "@dxos/teleport-extension-object-sync": "0.7.5-labs.ea4b4c2",
75
+ "@dxos/teleport-extension-gossip": "0.7.5-labs.ea4b4c2",
76
+ "@dxos/timeframe": "0.7.5-labs.ea4b4c2",
77
+ "@dxos/tracing": "0.7.5-labs.ea4b4c2",
78
+ "@dxos/util": "0.7.5-labs.ea4b4c2",
79
+ "@dxos/websocket-rpc": "0.7.5-labs.ea4b4c2"
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-labs.e27f9b9",
86
- "@dxos/test-utils": "0.7.5-labs.e27f9b9"
85
+ "@dxos/test-utils": "0.7.5-labs.ea4b4c2",
86
+ "@dxos/signal": "0.7.5-labs.ea4b4c2"
87
87
  },
88
88
  "publishConfig": {
89
89
  "access": "public"
@@ -63,6 +63,12 @@ export class EdgeAgentManager extends Resource {
63
63
 
64
64
  const deviceKey = PublicKey.fromHex(response.deviceKey);
65
65
 
66
+ if (await this._identity.authorizedDeviceKeys.has(deviceKey)) {
67
+ log.info('agent was already added to HALO, ignoring response', { response });
68
+ this._updateStatus(EdgeAgentStatus.ACTIVE, deviceKey);
69
+ return;
70
+ }
71
+
66
72
  await this._identity.admitDevice({
67
73
  deviceKey,
68
74
  controlFeedKey: PublicKey.fromHex(response.feedKey),
@@ -41,7 +41,7 @@ export class EdgeIdentityRecoveryManager {
41
41
  recoveryCode = generateSeedPhrase();
42
42
  const keypair = keyPairFromSeedPhrase(recoveryCode);
43
43
  recoveryKey = PublicKey.from(keypair.publicKey);
44
- algorithm = -8; // Ed25519
44
+ algorithm = 'ED25519';
45
45
  }
46
46
 
47
47
  invariant(algorithm, 'Algorithm is required.');
@@ -62,7 +62,69 @@ export class EdgeIdentityRecoveryManager {
62
62
  return { recoveryCode };
63
63
  }
64
64
 
65
- public async recoverIdentity({ recoveryCode }: RecoverIdentityRequest) {
65
+ public async requestRecoveryChallenge() {
66
+ invariant(this._edgeClient, 'Not connected to EDGE.');
67
+
68
+ const deviceKey = await this._keyring.createKey();
69
+ const controlFeedKey = await this._keyring.createKey();
70
+ const request: EdgeRecoverIdentityRequest = {
71
+ deviceKey: deviceKey.toHex(),
72
+ controlFeedKey: controlFeedKey.toHex(),
73
+ };
74
+
75
+ try {
76
+ await this._edgeClient.recoverIdentity(request);
77
+ throw new Error('No challenge received.');
78
+ } catch (error: any) {
79
+ if (!(error instanceof EdgeAuthChallengeError)) {
80
+ throw error;
81
+ }
82
+ return {
83
+ deviceKey,
84
+ controlFeedKey,
85
+ challenge: error.challenge,
86
+ };
87
+ }
88
+ }
89
+
90
+ public async recoverIdentityWithExternalSignature({
91
+ identityDid,
92
+ deviceKey,
93
+ controlFeedKey,
94
+ signature,
95
+ clientDataJson,
96
+ authenticatorData,
97
+ }: RecoverIdentityRequest.ExternalSignature) {
98
+ invariant(this._edgeClient, 'Not connected to EDGE.');
99
+
100
+ const request: EdgeRecoverIdentityRequest = {
101
+ identityDid,
102
+ deviceKey: deviceKey.toHex(),
103
+ controlFeedKey: controlFeedKey.toHex(),
104
+ signature:
105
+ clientDataJson && authenticatorData
106
+ ? {
107
+ signature: Buffer.from(signature).toString('base64'),
108
+ clientDataJson: Buffer.from(clientDataJson).toString('base64'),
109
+ authenticatorData: Buffer.from(authenticatorData).toString('base64'),
110
+ }
111
+ : Buffer.from(signature).toString('base64'),
112
+ };
113
+
114
+ const response = await this._edgeClient.recoverIdentity(request);
115
+
116
+ await this._acceptRecoveredIdentity({
117
+ authorizedDeviceCredential: decodeCredential(response.deviceAuthCredential),
118
+ haloGenesisFeedKey: PublicKey.fromHex(response.genesisFeedKey),
119
+ haloSpaceKey: PublicKey.fromHex(response.haloSpaceKey),
120
+ identityKey: PublicKey.fromHex(response.identityKey),
121
+ deviceKey,
122
+ controlFeedKey,
123
+ dataFeedKey: await this._keyring.createKey(),
124
+ });
125
+ }
126
+
127
+ public async recoverIdentity({ recoveryCode }: { recoveryCode: string }) {
66
128
  invariant(this._edgeClient, 'Not connected to EDGE.');
67
129
 
68
130
  const recoveryKeypair = keyPairFromSeedPhrase(recoveryCode);
@@ -95,8 +95,19 @@ export class IdentityServiceImpl extends Resource implements IdentityService {
95
95
  return this._recoveryManager.createRecoveryCredential(request);
96
96
  }
97
97
 
98
+ async requestRecoveryChallenge() {
99
+ return this._recoveryManager.requestRecoveryChallenge();
100
+ }
101
+
98
102
  async recoverIdentity(request: RecoverIdentityRequest): Promise<IdentityProto> {
99
- await this._recoveryManager.recoverIdentity(request);
103
+ if (request.recoveryCode) {
104
+ await this._recoveryManager.recoverIdentity({ recoveryCode: request.recoveryCode });
105
+ } else if (request.external) {
106
+ await this._recoveryManager.recoverIdentityWithExternalSignature(request.external);
107
+ } else {
108
+ throw new Error('Invalid request.');
109
+ }
110
+
100
111
  return this._getIdentity()!;
101
112
  }
102
113
 
@@ -503,7 +503,7 @@ export class DataSpaceManager extends Resource {
503
503
  });
504
504
  dataSpace.postOpen.append(async () => {
505
505
  const setting = dataSpace.getEdgeReplicationSetting();
506
- if (setting === EdgeReplicationSetting.ENABLED) {
506
+ if (!setting || setting === EdgeReplicationSetting.ENABLED) {
507
507
  await this._echoEdgeReplicator?.connectToSpace(dataSpace.id);
508
508
  } else if (this._echoEdgeReplicator) {
509
509
  log('not connecting EchoEdgeReplicator because of EdgeReplicationSetting', { spaceId: dataSpace.id });
@@ -511,7 +511,7 @@ export class DataSpaceManager extends Resource {
511
511
  });
512
512
  dataSpace.preClose.append(async () => {
513
513
  const setting = dataSpace.getEdgeReplicationSetting();
514
- if (setting === EdgeReplicationSetting.ENABLED) {
514
+ if (!setting || setting === EdgeReplicationSetting.ENABLED) {
515
515
  await this._echoEdgeReplicator?.disconnectFromSpace(dataSpace.id);
516
516
  }
517
517
  });
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const DXOS_VERSION = "0.7.5-labs.e27f9b9";
1
+ export const DXOS_VERSION = "0.7.5-labs.ea4b4c2";