@enbox/auth 0.5.0 → 0.6.0

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 (81) hide show
  1. package/dist/esm/auth-manager.js +94 -167
  2. package/dist/esm/auth-manager.js.map +1 -1
  3. package/dist/esm/connect/import.js +131 -0
  4. package/dist/esm/connect/import.js.map +1 -0
  5. package/dist/esm/connect/lifecycle.js +235 -0
  6. package/dist/esm/connect/lifecycle.js.map +1 -0
  7. package/dist/esm/connect/local.js +91 -0
  8. package/dist/esm/connect/local.js.map +1 -0
  9. package/dist/esm/{flows/session-restore.js → connect/restore.js} +34 -56
  10. package/dist/esm/connect/restore.js.map +1 -0
  11. package/dist/esm/{flows/wallet-connect.js → connect/wallet.js} +28 -35
  12. package/dist/esm/connect/wallet.js.map +1 -0
  13. package/dist/esm/{flows/dwn-discovery.js → discovery.js} +2 -2
  14. package/dist/esm/discovery.js.map +1 -0
  15. package/dist/esm/index.js +4 -4
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/{flows/dwn-registration.js → registration.js} +2 -2
  18. package/dist/esm/registration.js.map +1 -0
  19. package/dist/esm/types.js +2 -0
  20. package/dist/esm/types.js.map +1 -1
  21. package/dist/esm/wallet-connect-client.js +188 -0
  22. package/dist/esm/wallet-connect-client.js.map +1 -0
  23. package/dist/types/auth-manager.d.ts +20 -6
  24. package/dist/types/auth-manager.d.ts.map +1 -1
  25. package/dist/types/connect/import.d.ts +25 -0
  26. package/dist/types/connect/import.d.ts.map +1 -0
  27. package/dist/types/connect/lifecycle.d.ts +152 -0
  28. package/dist/types/connect/lifecycle.d.ts.map +1 -0
  29. package/dist/types/connect/local.d.ts +18 -0
  30. package/dist/types/connect/local.d.ts.map +1 -0
  31. package/dist/types/connect/restore.d.ts +18 -0
  32. package/dist/types/connect/restore.d.ts.map +1 -0
  33. package/dist/types/{flows/wallet-connect.d.ts → connect/wallet.d.ts} +5 -14
  34. package/dist/types/connect/wallet.d.ts.map +1 -0
  35. package/dist/types/{flows/dwn-discovery.d.ts → discovery.d.ts} +3 -3
  36. package/dist/types/discovery.d.ts.map +1 -0
  37. package/dist/types/index.d.ts +5 -4
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/types/{flows/dwn-registration.d.ts → registration.d.ts} +2 -2
  40. package/dist/types/registration.d.ts.map +1 -0
  41. package/dist/types/types.d.ts +6 -3
  42. package/dist/types/types.d.ts.map +1 -1
  43. package/dist/types/wallet-connect-client.d.ts +89 -0
  44. package/dist/types/wallet-connect-client.d.ts.map +1 -0
  45. package/package.json +9 -5
  46. package/src/auth-manager.ts +94 -188
  47. package/src/connect/import.ts +148 -0
  48. package/src/connect/lifecycle.ts +321 -0
  49. package/src/connect/local.ts +101 -0
  50. package/src/connect/restore.ts +117 -0
  51. package/src/{flows/wallet-connect.ts → connect/wallet.ts} +37 -54
  52. package/src/{flows/dwn-discovery.ts → discovery.ts} +4 -3
  53. package/src/index.ts +5 -4
  54. package/src/{flows/dwn-registration.ts → registration.ts} +2 -2
  55. package/src/types.ts +7 -3
  56. package/src/wallet-connect-client.ts +278 -0
  57. package/dist/esm/flows/dwn-discovery.js.map +0 -1
  58. package/dist/esm/flows/dwn-registration.js.map +0 -1
  59. package/dist/esm/flows/import-identity.js +0 -177
  60. package/dist/esm/flows/import-identity.js.map +0 -1
  61. package/dist/esm/flows/local-connect.js +0 -158
  62. package/dist/esm/flows/local-connect.js.map +0 -1
  63. package/dist/esm/flows/session-restore.js.map +0 -1
  64. package/dist/esm/flows/wallet-connect.js.map +0 -1
  65. package/dist/esm/vault/vault-manager.js +0 -95
  66. package/dist/esm/vault/vault-manager.js.map +0 -1
  67. package/dist/types/flows/dwn-discovery.d.ts.map +0 -1
  68. package/dist/types/flows/dwn-registration.d.ts.map +0 -1
  69. package/dist/types/flows/import-identity.d.ts +0 -35
  70. package/dist/types/flows/import-identity.d.ts.map +0 -1
  71. package/dist/types/flows/local-connect.d.ts +0 -31
  72. package/dist/types/flows/local-connect.d.ts.map +0 -1
  73. package/dist/types/flows/session-restore.d.ts +0 -29
  74. package/dist/types/flows/session-restore.d.ts.map +0 -1
  75. package/dist/types/flows/wallet-connect.d.ts.map +0 -1
  76. package/dist/types/vault/vault-manager.d.ts +0 -57
  77. package/dist/types/vault/vault-manager.d.ts.map +0 -1
  78. package/src/flows/import-identity.ts +0 -219
  79. package/src/flows/local-connect.ts +0 -192
  80. package/src/flows/session-restore.ts +0 -155
  81. package/src/vault/vault-manager.ts +0 -89
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Shared helpers for connect flows.
3
+ *
4
+ * Consolidates duplicated logic across `local-connect`, `session-restore`,
5
+ * `wallet-connect`, and `import-identity` flows:
6
+ *
7
+ * - Password resolution chain
8
+ * - Vault init/start lifecycle
9
+ * - Sync mode/interval calculation and startup
10
+ * - `connectedDid` / `delegateDid` derivation from identity metadata
11
+ * - Session finalization (storage persistence + AuthSession construction + events)
12
+ *
13
+ * @module
14
+ * @internal
15
+ */
16
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
+ return new (P || (P = Promise))(function (resolve, reject) {
19
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
23
+ });
24
+ };
25
+ import { AuthSession } from '../identity-session.js';
26
+ import { DEFAULT_DWN_ENDPOINTS, INSECURE_DEFAULT_PASSWORD, STORAGE_KEYS } from '../types.js';
27
+ // ─── resolvePassword ─────────────────────────────────────────────
28
+ /**
29
+ * Resolve a password through the standard chain:
30
+ * explicit option → manager default → provider → insecure fallback.
31
+ *
32
+ * Emits a console warning when the insecure default is used.
33
+ *
34
+ * @param ctx - The flow context (provides `defaultPassword` and `passwordProvider`).
35
+ * @param explicit - An explicit password from the caller (highest priority).
36
+ * @param isFirstLaunch - Whether the vault has never been initialized.
37
+ * @returns The resolved password string.
38
+ *
39
+ * @internal
40
+ */
41
+ export function resolvePassword(ctx, explicit, isFirstLaunch) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ let password = explicit !== null && explicit !== void 0 ? explicit : ctx.defaultPassword;
44
+ if (!password && ctx.passwordProvider) {
45
+ try {
46
+ password = yield ctx.passwordProvider.getPassword({
47
+ reason: isFirstLaunch ? 'create' : 'unlock',
48
+ });
49
+ }
50
+ catch (_a) {
51
+ // Provider failed — fall through to insecure default.
52
+ }
53
+ }
54
+ password !== null && password !== void 0 ? password : (password = INSECURE_DEFAULT_PASSWORD);
55
+ if (password === INSECURE_DEFAULT_PASSWORD) {
56
+ console.warn('[@enbox/auth] SECURITY WARNING: No password set. Using insecure default. ' +
57
+ 'Set a password via AuthManager.create({ password }) or connect({ password }) ' +
58
+ 'to protect your identity vault.');
59
+ }
60
+ return password;
61
+ });
62
+ }
63
+ // ─── ensureVaultReady ────────────────────────────────────────────
64
+ /**
65
+ * Initialize (on first launch) and start the agent, then emit `vault-unlocked`.
66
+ *
67
+ * This consolidates the 5 copies of:
68
+ * ```ts
69
+ * if (isFirstLaunch) { await userAgent.initialize({ password, ... }); }
70
+ * await userAgent.start({ password });
71
+ * emitter.emit('vault-unlocked', {});
72
+ * ```
73
+ *
74
+ * @returns The recovery phrase if the vault was just initialized, otherwise `undefined`.
75
+ *
76
+ * @internal
77
+ */
78
+ export function ensureVaultReady(params) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ const { userAgent, emitter, password, isFirstLaunch } = params;
81
+ let recoveryPhrase;
82
+ if (isFirstLaunch) {
83
+ recoveryPhrase = yield userAgent.initialize({
84
+ password,
85
+ recoveryPhrase: params.recoveryPhrase,
86
+ dwnEndpoints: params.dwnEndpoints,
87
+ });
88
+ }
89
+ yield userAgent.start({ password });
90
+ emitter.emit('vault-unlocked', {});
91
+ return recoveryPhrase;
92
+ });
93
+ }
94
+ // ─── startSyncIfEnabled ─────────────────────────────────────────
95
+ /**
96
+ * Start DWN synchronisation if `sync` is not `'off'`.
97
+ *
98
+ * Consolidates 6 copies of:
99
+ * ```ts
100
+ * const syncMode = sync === undefined ? 'live' : 'poll';
101
+ * const syncInterval = sync ?? (syncMode === 'live' ? '5m' : '2m');
102
+ * userAgent.sync.startSync({ mode: syncMode, interval: syncInterval })
103
+ * .catch((err) => console.error('[@enbox/auth] Sync failed:', err));
104
+ * ```
105
+ *
106
+ * @internal
107
+ */
108
+ export function startSyncIfEnabled(userAgent, sync) {
109
+ if (sync === 'off') {
110
+ return;
111
+ }
112
+ const syncMode = sync === undefined ? 'live' : 'poll';
113
+ const syncInterval = sync !== null && sync !== void 0 ? sync : (syncMode === 'live' ? '5m' : '2m');
114
+ userAgent.sync.startSync({ mode: syncMode, interval: syncInterval })
115
+ .catch((err) => {
116
+ console.error('[@enbox/auth] Sync failed:', err);
117
+ });
118
+ }
119
+ // ─── createDefaultIdentity ──────────────────────────────────────
120
+ /**
121
+ * Create a new `did:dht` identity with Ed25519 signing and X25519
122
+ * encryption keys, and a DWN service endpoint.
123
+ *
124
+ * This consolidates the identical identity creation block that was
125
+ * duplicated in `localConnect` and `importFromPhrase`.
126
+ *
127
+ * @internal
128
+ */
129
+ export function createDefaultIdentity(userAgent_1) {
130
+ return __awaiter(this, arguments, void 0, function* (userAgent, dwnEndpoints = DEFAULT_DWN_ENDPOINTS, name = 'Default') {
131
+ return userAgent.identity.create({
132
+ didMethod: 'dht',
133
+ metadata: { name },
134
+ didOptions: {
135
+ services: [
136
+ {
137
+ id: 'dwn',
138
+ type: 'DecentralizedWebNode',
139
+ serviceEndpoint: dwnEndpoints,
140
+ }
141
+ ],
142
+ verificationMethods: [
143
+ {
144
+ algorithm: 'Ed25519',
145
+ id: 'sig',
146
+ purposes: ['assertionMethod', 'authentication'],
147
+ },
148
+ {
149
+ algorithm: 'X25519',
150
+ id: 'enc',
151
+ purposes: ['keyAgreement'],
152
+ },
153
+ ],
154
+ },
155
+ });
156
+ });
157
+ }
158
+ // ─── resolveIdentityDids ────────────────────────────────────────
159
+ /**
160
+ * Derive `connectedDid` and `delegateDid` from identity metadata.
161
+ *
162
+ * For a **local** identity: `connectedDid` is the identity's own DID URI
163
+ * and `delegateDid` is `undefined`.
164
+ *
165
+ * For a **wallet-connected** identity: `connectedDid` is the external wallet
166
+ * DID, and `delegateDid` is the local identity's DID URI.
167
+ *
168
+ * @param identity - The bearer identity to extract DIDs from.
169
+ * @param storedDelegateDid - Optional fallback delegate DID from storage,
170
+ * used by session-restore when the identity metadata doesn't include a
171
+ * `connectedDid` but a delegate DID was persisted in a prior session.
172
+ *
173
+ * @internal
174
+ */
175
+ export function resolveIdentityDids(identity, storedDelegateDid) {
176
+ var _a;
177
+ const connectedDid = (_a = identity.metadata.connectedDid) !== null && _a !== void 0 ? _a : identity.did.uri;
178
+ const delegateDid = identity.metadata.connectedDid
179
+ ? identity.did.uri
180
+ : (storedDelegateDid !== null && storedDelegateDid !== void 0 ? storedDelegateDid : undefined);
181
+ return { connectedDid, delegateDid };
182
+ }
183
+ // ─── finalizeSession ────────────────────────────────────────────
184
+ /**
185
+ * Persist session markers, build an `AuthSession`, and emit lifecycle events.
186
+ *
187
+ * Consolidates 5 copies of:
188
+ * ```ts
189
+ * await storage.set(STORAGE_KEYS.PREVIOUSLY_CONNECTED, 'true');
190
+ * await storage.set(STORAGE_KEYS.ACTIVE_IDENTITY, connectedDid);
191
+ * const session = new AuthSession({ ... });
192
+ * emitter.emit('identity-added', { identity: identityInfo });
193
+ * emitter.emit('session-start', { session: { ... } });
194
+ * ```
195
+ *
196
+ * @param params.emitIdentityAdded - Whether to emit `identity-added`. Defaults to `true`.
197
+ * Set to `false` for session-restore (identity was already added in the original flow).
198
+ * @param params.extraStorageKeys - Additional key-value pairs to persist (e.g. delegate/connected DIDs
199
+ * for wallet-connect flows).
200
+ *
201
+ * @internal
202
+ */
203
+ export function finalizeSession(params) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const { userAgent, emitter, storage, connectedDid, delegateDid, recoveryPhrase, identityName, identityConnectedDid, emitIdentityAdded = true, extraStorageKeys, } = params;
206
+ // Persist session markers.
207
+ yield storage.set(STORAGE_KEYS.PREVIOUSLY_CONNECTED, 'true');
208
+ yield storage.set(STORAGE_KEYS.ACTIVE_IDENTITY, connectedDid);
209
+ if (extraStorageKeys) {
210
+ for (const [key, value] of Object.entries(extraStorageKeys)) {
211
+ yield storage.set(key, value);
212
+ }
213
+ }
214
+ const identityInfo = {
215
+ didUri: connectedDid,
216
+ name: identityName,
217
+ connectedDid: identityConnectedDid,
218
+ };
219
+ const session = new AuthSession({
220
+ agent: userAgent,
221
+ did: connectedDid,
222
+ delegateDid,
223
+ recoveryPhrase,
224
+ identity: identityInfo,
225
+ });
226
+ if (emitIdentityAdded) {
227
+ emitter.emit('identity-added', { identity: identityInfo });
228
+ }
229
+ emitter.emit('session-start', {
230
+ session: { did: connectedDid, delegateDid, identity: identityInfo },
231
+ });
232
+ return session;
233
+ });
234
+ }
235
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/connect/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Local DID connect flow.
3
+ *
4
+ * Creates or reconnects a local identity with vault-protected keys.
5
+ * This replaces the "Mode D/E" paths in Enbox.connect().
6
+ * @module
7
+ */
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ import { applyLocalDwnDiscovery } from '../discovery.js';
18
+ import { DEFAULT_DWN_ENDPOINTS } from '../types.js';
19
+ import { registerWithDwnEndpoints } from '../registration.js';
20
+ import { createDefaultIdentity, ensureVaultReady, finalizeSession, resolveIdentityDids, resolvePassword, startSyncIfEnabled } from './lifecycle.js';
21
+ /**
22
+ * Execute the local connect flow.
23
+ *
24
+ * - On first launch: initializes the vault, creates a new DID, returns recovery phrase.
25
+ * - On subsequent launches: unlocks the vault and reconnects to the existing identity.
26
+ */
27
+ export function localConnect(ctx_1) {
28
+ return __awaiter(this, arguments, void 0, function* (ctx, options = {}) {
29
+ var _a, _b, _c, _d, _e;
30
+ const { userAgent, emitter, storage } = ctx;
31
+ // Resolve password through the standard chain.
32
+ const isFirstLaunch = yield userAgent.firstLaunch();
33
+ const password = yield resolvePassword(ctx, options.password, isFirstLaunch);
34
+ const sync = (_a = options.sync) !== null && _a !== void 0 ? _a : ctx.defaultSync;
35
+ const dwnEndpoints = (_c = (_b = options.dwnEndpoints) !== null && _b !== void 0 ? _b : ctx.defaultDwnEndpoints) !== null && _c !== void 0 ? _c : DEFAULT_DWN_ENDPOINTS;
36
+ // Initialize vault on first launch and start the agent.
37
+ const recoveryPhrase = yield ensureVaultReady({
38
+ userAgent,
39
+ emitter,
40
+ password,
41
+ isFirstLaunch,
42
+ recoveryPhrase: options.recoveryPhrase,
43
+ dwnEndpoints,
44
+ });
45
+ // Apply local DWN discovery (browser redirect payload or persisted endpoint).
46
+ // In remote mode, discovery already ran before agent creation — skip.
47
+ if (!userAgent.dwn.isRemoteMode) {
48
+ yield applyLocalDwnDiscovery(userAgent, storage, emitter);
49
+ }
50
+ // Find or create the user identity.
51
+ const identities = yield userAgent.identity.list();
52
+ let identity = identities[0];
53
+ let isNewIdentity = false;
54
+ if (!identity) {
55
+ isNewIdentity = true;
56
+ identity = yield createDefaultIdentity(userAgent, dwnEndpoints, (_e = (_d = options.metadata) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : 'Default');
57
+ }
58
+ const { connectedDid, delegateDid } = resolveIdentityDids(identity);
59
+ // Register with DWN endpoints (if registration options are provided).
60
+ if (ctx.registration) {
61
+ yield registerWithDwnEndpoints({
62
+ userAgent: userAgent,
63
+ dwnEndpoints,
64
+ agentDid: userAgent.agentDid.uri,
65
+ connectedDid,
66
+ storage: storage,
67
+ }, ctx.registration);
68
+ }
69
+ // Register sync for new identities.
70
+ if (isNewIdentity && sync !== 'off') {
71
+ yield userAgent.sync.registerIdentity({
72
+ did: connectedDid,
73
+ options: { delegateDid, protocols: [] },
74
+ });
75
+ }
76
+ // Start sync.
77
+ startSyncIfEnabled(userAgent, sync);
78
+ // Persist session info, build AuthSession, and emit lifecycle events.
79
+ return finalizeSession({
80
+ userAgent,
81
+ emitter,
82
+ storage,
83
+ connectedDid,
84
+ delegateDid,
85
+ recoveryPhrase,
86
+ identityName: identity.metadata.name,
87
+ identityConnectedDid: identity.metadata.connectedDid,
88
+ });
89
+ });
90
+ }
91
+ //# sourceMappingURL=local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/connect/local.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  step((generator = generator.apply(thisArg, _arguments || [])).next());
15
15
  });
16
16
  };
17
- import { applyLocalDwnDiscovery } from './dwn-discovery.js';
18
- import { AuthSession } from '../identity-session.js';
19
- import { INSECURE_DEFAULT_PASSWORD, STORAGE_KEYS } from '../types.js';
17
+ import { applyLocalDwnDiscovery } from '../discovery.js';
18
+ import { STORAGE_KEYS } from '../types.js';
19
+ import { ensureVaultReady, finalizeSession, resolveIdentityDids, resolvePassword, startSyncIfEnabled } from './lifecycle.js';
20
20
  /**
21
21
  * Attempt to restore a previous session.
22
22
  *
@@ -25,7 +25,6 @@ import { INSECURE_DEFAULT_PASSWORD, STORAGE_KEYS } from '../types.js';
25
25
  */
26
26
  export function restoreSession(ctx_1) {
27
27
  return __awaiter(this, arguments, void 0, function* (ctx, options = {}) {
28
- var _a, _b;
29
28
  const { userAgent, emitter, storage } = ctx;
30
29
  // Check if there was a previous session.
31
30
  const previouslyConnected = yield storage.get(STORAGE_KEYS.PREVIOUSLY_CONNECTED);
@@ -33,33 +32,28 @@ export function restoreSession(ctx_1) {
33
32
  return undefined;
34
33
  }
35
34
  // Resolve password: explicit option → callback → provider → manager default → insecure fallback.
36
- let password = (_a = options.password) !== null && _a !== void 0 ? _a : ctx.defaultPassword;
37
- if (!password && options.onPasswordRequired) {
38
- password = yield options.onPasswordRequired();
35
+ // Note: restoreSession has an extra `onPasswordRequired` callback that sits between
36
+ // the explicit password and the provider. We handle that here, then delegate the
37
+ // remainder of the chain to `resolvePassword()`.
38
+ let explicitPassword = options.password;
39
+ if (!explicitPassword && !ctx.defaultPassword && options.onPasswordRequired) {
40
+ explicitPassword = yield options.onPasswordRequired();
39
41
  }
40
- if (!password && ctx.passwordProvider) {
41
- try {
42
- password = yield ctx.passwordProvider.getPassword({ reason: 'unlock' });
43
- }
44
- catch (_c) {
45
- // Provider failed — fall through to insecure default.
46
- }
47
- }
48
- password !== null && password !== void 0 ? password : (password = INSECURE_DEFAULT_PASSWORD);
49
- // Warn if using insecure default.
50
- if (password === INSECURE_DEFAULT_PASSWORD) {
51
- console.warn('[@enbox/auth] SECURITY WARNING: No password set. Using insecure default. ' +
52
- 'Set a password to protect your identity vault.');
53
- }
54
- // Start the agent (initializes + unlocks vault).
55
- if (yield userAgent.firstLaunch()) {
56
- // Vault doesn't exist yet — this shouldn't happen if previouslyConnected is true.
57
- // Clean up the stale flag and return undefined.
42
+ // Check for stale session marker: if the vault was never initialized,
43
+ // previouslyConnected is a leftover — clean up and bail.
44
+ const isFirstLaunch = yield userAgent.firstLaunch();
45
+ if (isFirstLaunch) {
58
46
  yield storage.remove(STORAGE_KEYS.PREVIOUSLY_CONNECTED);
59
47
  return undefined;
60
48
  }
61
- yield userAgent.start({ password });
62
- emitter.emit('vault-unlocked', {});
49
+ const password = yield resolvePassword(ctx, explicitPassword, false);
50
+ // Start the agent (vault is known to exist).
51
+ yield ensureVaultReady({
52
+ userAgent,
53
+ emitter,
54
+ password,
55
+ isFirstLaunch: false,
56
+ });
63
57
  // Apply local DWN discovery (browser redirect payload or persisted endpoint).
64
58
  // In remote mode, discovery already ran before agent creation — skip.
65
59
  if (!userAgent.dwn.isRemoteMode) {
@@ -89,37 +83,21 @@ export function restoreSession(ctx_1) {
89
83
  yield storage.remove(STORAGE_KEYS.CONNECTED_DID);
90
84
  return undefined;
91
85
  }
92
- const connectedDid = (_b = identity.metadata.connectedDid) !== null && _b !== void 0 ? _b : identity.did.uri;
93
- const delegateDid = identity.metadata.connectedDid
94
- ? identity.did.uri
95
- : (storedDelegateDid !== null && storedDelegateDid !== void 0 ? storedDelegateDid : undefined);
86
+ const { connectedDid, delegateDid } = resolveIdentityDids(identity, storedDelegateDid !== null && storedDelegateDid !== void 0 ? storedDelegateDid : undefined);
96
87
  // Start sync.
97
- const sync = ctx.defaultSync;
98
- if (sync !== 'off') {
99
- const syncMode = sync === undefined ? 'live' : 'poll';
100
- const syncInterval = sync !== null && sync !== void 0 ? sync : (syncMode === 'live' ? '5m' : '2m');
101
- userAgent.sync.startSync({ mode: syncMode, interval: syncInterval })
102
- .catch((err) => {
103
- console.error('[@enbox/auth] Sync failed:', err);
104
- });
105
- }
106
- // Update persisted session info.
107
- yield storage.set(STORAGE_KEYS.ACTIVE_IDENTITY, connectedDid);
108
- const identityInfo = {
109
- didUri: connectedDid,
110
- name: identity.metadata.name,
111
- connectedDid: identity.metadata.connectedDid,
112
- };
113
- const session = new AuthSession({
114
- agent: userAgent,
115
- did: connectedDid,
88
+ startSyncIfEnabled(userAgent, ctx.defaultSync);
89
+ // Persist session info, build AuthSession, and emit lifecycle events.
90
+ // Session restore does not emit `identity-added` (identity was already added in the original flow).
91
+ return finalizeSession({
92
+ userAgent,
93
+ emitter,
94
+ storage,
95
+ connectedDid,
116
96
  delegateDid,
117
- identity: identityInfo,
118
- });
119
- emitter.emit('session-start', {
120
- session: { did: connectedDid, delegateDid, identity: identityInfo },
97
+ identityName: identity.metadata.name,
98
+ identityConnectedDid: identity.metadata.connectedDid,
99
+ emitIdentityAdded: false,
121
100
  });
122
- return session;
123
101
  });
124
102
  }
125
- //# sourceMappingURL=session-restore.js.map
103
+ //# sourceMappingURL=restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/connect/restore.ts"],"names":[],"mappings":"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"}
@@ -27,11 +27,11 @@ var __rest = (this && this.__rest) || function (s, e) {
27
27
  return t;
28
28
  };
29
29
  import { Convert } from '@enbox/common';
30
- import { WalletConnect } from '@enbox/agent';
30
+ import { registerWithDwnEndpoints } from '../registration.js';
31
+ import { WalletConnect } from '../wallet-connect-client.js';
32
+ import { DEFAULT_DWN_ENDPOINTS, STORAGE_KEYS } from '../types.js';
31
33
  import { DwnInterface, DwnPermissionGrant } from '@enbox/agent';
32
- import { AuthSession } from '../identity-session.js';
33
- import { registerWithDwnEndpoints } from './dwn-registration.js';
34
- import { STORAGE_KEYS } from '../types.js';
34
+ import { ensureVaultReady, finalizeSession, resolvePassword, startSyncIfEnabled } from './lifecycle.js';
35
35
  /**
36
36
  * Process connected grants by storing them in the local DWN as the owner.
37
37
  *
@@ -87,6 +87,15 @@ export function walletConnect(ctx, options) {
87
87
  throw new Error('[@enbox/auth] Sync must be enabled when using wallet connect. ' +
88
88
  'Remove sync: "off" or set an interval like "15s".');
89
89
  }
90
+ // Ensure the agent is initialized and started before the relay flow.
91
+ const isFirstLaunch = yield userAgent.firstLaunch();
92
+ const password = yield resolvePassword(ctx, undefined, isFirstLaunch);
93
+ yield ensureVaultReady({
94
+ userAgent,
95
+ emitter,
96
+ password,
97
+ isFirstLaunch,
98
+ });
90
99
  // Run the Enbox Connect relay flow.
91
100
  // permissionRequests are already agent-level ConnectPermissionRequest objects.
92
101
  const result = yield WalletConnect.initClient({
@@ -123,7 +132,7 @@ export function walletConnect(ctx, options) {
123
132
  });
124
133
  // Register with DWN endpoints (if registration options are provided).
125
134
  if (ctx.registration) {
126
- const dwnEndpoints = (_c = ctx.defaultDwnEndpoints) !== null && _c !== void 0 ? _c : ['https://enbox-dwn.fly.dev'];
135
+ const dwnEndpoints = (_c = ctx.defaultDwnEndpoints) !== null && _c !== void 0 ? _c : DEFAULT_DWN_ENDPOINTS;
127
136
  yield registerWithDwnEndpoints({
128
137
  userAgent: userAgent,
129
138
  dwnEndpoints,
@@ -162,39 +171,23 @@ export function walletConnect(ctx, options) {
162
171
  const message = error instanceof Error ? error.message : String(error);
163
172
  throw new Error(`[@enbox/auth] Wallet connect failed: ${message}`);
164
173
  }
165
- // Start sync.
166
- const syncMode = sync === undefined ? 'live' : 'poll';
167
- const syncInterval = sync !== null && sync !== void 0 ? sync : (syncMode === 'live' ? '5m' : '2m');
168
- userAgent.sync.startSync({ mode: syncMode, interval: syncInterval })
169
- .catch((err) => {
170
- console.error('[@enbox/auth] Sync failed:', err);
171
- });
172
174
  const delegateDid = delegatePortableDid.uri;
173
- // Persist session info.
174
- yield storage.set(STORAGE_KEYS.PREVIOUSLY_CONNECTED, 'true');
175
- yield storage.set(STORAGE_KEYS.ACTIVE_IDENTITY, connectedDid);
176
- yield storage.set(STORAGE_KEYS.DELEGATE_DID, delegateDid);
177
- yield storage.set(STORAGE_KEYS.CONNECTED_DID, connectedDid);
178
- const identityInfo = {
179
- didUri: connectedDid,
180
- name: identity.metadata.name,
181
- connectedDid: identity.metadata.connectedDid,
182
- };
183
- const session = new AuthSession({
184
- agent: userAgent,
185
- did: connectedDid,
175
+ // Start sync.
176
+ startSyncIfEnabled(userAgent, sync);
177
+ // Persist session info, build AuthSession, and emit lifecycle events.
178
+ return finalizeSession({
179
+ userAgent,
180
+ emitter,
181
+ storage,
182
+ connectedDid,
186
183
  delegateDid,
187
- identity: identityInfo,
188
- });
189
- emitter.emit('identity-added', { identity: identityInfo });
190
- emitter.emit('session-start', {
191
- session: {
192
- did: session.did,
193
- delegateDid,
194
- identity: identityInfo,
184
+ identityName: identity.metadata.name,
185
+ identityConnectedDid: identity.metadata.connectedDid,
186
+ extraStorageKeys: {
187
+ [STORAGE_KEYS.DELEGATE_DID]: delegateDid,
188
+ [STORAGE_KEYS.CONNECTED_DID]: connectedDid,
195
189
  },
196
190
  });
197
- return session;
198
191
  });
199
192
  }
200
- //# sourceMappingURL=wallet-connect.js.map
193
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/connect/wallet.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
35
35
  };
36
36
  import { EnboxRpcClient } from '@enbox/dwn-clients';
37
37
  import { buildDwnConnectUrl, localDwnServerName, normalizeBaseUrl, readDwnDiscoveryPayloadFromUrl } from '@enbox/agent';
38
- import { STORAGE_KEYS } from '../types.js';
38
+ import { STORAGE_KEYS } from './types.js';
39
39
  /**
40
40
  * Check the current page URL for a `DwnDiscoveryPayload` in the fragment.
41
41
  *
@@ -293,4 +293,4 @@ function currentPageUrl() {
293
293
  }
294
294
  return globalThis.location.href.split('#')[0];
295
295
  }
296
- //# sourceMappingURL=dwn-discovery.js.map
296
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -36,7 +36,6 @@
36
36
  // Core classes
37
37
  export { AuthManager } from './auth-manager.js';
38
38
  export { AuthSession } from './identity-session.js';
39
- export { VaultManager } from './vault/vault-manager.js';
40
39
  export { AuthEventEmitter } from './events.js';
41
40
  // Password providers
42
41
  export { PasswordProvider } from './password-provider.js';
@@ -44,11 +43,12 @@ export { PasswordProvider } from './password-provider.js';
44
43
  // without a direct @enbox/agent dependency.
45
44
  export { EnboxUserAgent, HdIdentityVault } from '@enbox/agent';
46
45
  // Wallet-connect helpers
47
- export { processConnectedGrants } from './flows/wallet-connect.js';
46
+ export { processConnectedGrants } from './connect/wallet.js';
47
+ export { WalletConnect } from './wallet-connect-client.js';
48
48
  // Registration token storage helpers
49
- export { loadTokensFromStorage, saveTokensToStorage } from './flows/dwn-registration.js';
49
+ export { loadTokensFromStorage, saveTokensToStorage } from './registration.js';
50
50
  // Local DWN discovery (browser dwn:// protocol integration)
51
- export { applyLocalDwnDiscovery, checkUrlForDwnDiscoveryPayload, clearLocalDwnEndpoint, discoverLocalDwn, persistLocalDwnEndpoint, requestLocalDwnDiscovery, restoreLocalDwnEndpoint, } from './flows/dwn-discovery.js';
51
+ export { applyLocalDwnDiscovery, checkUrlForDwnDiscoveryPayload, clearLocalDwnEndpoint, discoverLocalDwn, persistLocalDwnEndpoint, requestLocalDwnDiscovery, restoreLocalDwnEndpoint, } from './discovery.js';
52
52
  // Storage adapters
53
53
  export { BrowserStorage, LevelStorage, MemoryStorage, createDefaultStorage } from './storage/storage.js';
54
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,0EAA0E;AAC1E,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,qCAAqC;AACrC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEzF,4DAA4D;AAC5D,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,qBAAqB;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,0EAA0E;AAC1E,4CAA4C;AAC5C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/D,yBAAyB;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,qCAAqC;AACrC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,4DAA4D;AAC5D,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}