@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.
- package/dist/esm/auth-manager.js +94 -167
- package/dist/esm/auth-manager.js.map +1 -1
- package/dist/esm/connect/import.js +131 -0
- package/dist/esm/connect/import.js.map +1 -0
- package/dist/esm/connect/lifecycle.js +235 -0
- package/dist/esm/connect/lifecycle.js.map +1 -0
- package/dist/esm/connect/local.js +91 -0
- package/dist/esm/connect/local.js.map +1 -0
- package/dist/esm/{flows/session-restore.js → connect/restore.js} +34 -56
- package/dist/esm/connect/restore.js.map +1 -0
- package/dist/esm/{flows/wallet-connect.js → connect/wallet.js} +28 -35
- package/dist/esm/connect/wallet.js.map +1 -0
- package/dist/esm/{flows/dwn-discovery.js → discovery.js} +2 -2
- package/dist/esm/discovery.js.map +1 -0
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/{flows/dwn-registration.js → registration.js} +2 -2
- package/dist/esm/registration.js.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/wallet-connect-client.js +188 -0
- package/dist/esm/wallet-connect-client.js.map +1 -0
- package/dist/types/auth-manager.d.ts +20 -6
- package/dist/types/auth-manager.d.ts.map +1 -1
- package/dist/types/connect/import.d.ts +25 -0
- package/dist/types/connect/import.d.ts.map +1 -0
- package/dist/types/connect/lifecycle.d.ts +152 -0
- package/dist/types/connect/lifecycle.d.ts.map +1 -0
- package/dist/types/connect/local.d.ts +18 -0
- package/dist/types/connect/local.d.ts.map +1 -0
- package/dist/types/connect/restore.d.ts +18 -0
- package/dist/types/connect/restore.d.ts.map +1 -0
- package/dist/types/{flows/wallet-connect.d.ts → connect/wallet.d.ts} +5 -14
- package/dist/types/connect/wallet.d.ts.map +1 -0
- package/dist/types/{flows/dwn-discovery.d.ts → discovery.d.ts} +3 -3
- package/dist/types/discovery.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/{flows/dwn-registration.d.ts → registration.d.ts} +2 -2
- package/dist/types/registration.d.ts.map +1 -0
- package/dist/types/types.d.ts +6 -3
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/wallet-connect-client.d.ts +89 -0
- package/dist/types/wallet-connect-client.d.ts.map +1 -0
- package/package.json +9 -5
- package/src/auth-manager.ts +94 -188
- package/src/connect/import.ts +148 -0
- package/src/connect/lifecycle.ts +321 -0
- package/src/connect/local.ts +101 -0
- package/src/connect/restore.ts +117 -0
- package/src/{flows/wallet-connect.ts → connect/wallet.ts} +37 -54
- package/src/{flows/dwn-discovery.ts → discovery.ts} +4 -3
- package/src/index.ts +5 -4
- package/src/{flows/dwn-registration.ts → registration.ts} +2 -2
- package/src/types.ts +7 -3
- package/src/wallet-connect-client.ts +278 -0
- package/dist/esm/flows/dwn-discovery.js.map +0 -1
- package/dist/esm/flows/dwn-registration.js.map +0 -1
- package/dist/esm/flows/import-identity.js +0 -177
- package/dist/esm/flows/import-identity.js.map +0 -1
- package/dist/esm/flows/local-connect.js +0 -158
- package/dist/esm/flows/local-connect.js.map +0 -1
- package/dist/esm/flows/session-restore.js.map +0 -1
- package/dist/esm/flows/wallet-connect.js.map +0 -1
- package/dist/esm/vault/vault-manager.js +0 -95
- package/dist/esm/vault/vault-manager.js.map +0 -1
- package/dist/types/flows/dwn-discovery.d.ts.map +0 -1
- package/dist/types/flows/dwn-registration.d.ts.map +0 -1
- package/dist/types/flows/import-identity.d.ts +0 -35
- package/dist/types/flows/import-identity.d.ts.map +0 -1
- package/dist/types/flows/local-connect.d.ts +0 -31
- package/dist/types/flows/local-connect.d.ts.map +0 -1
- package/dist/types/flows/session-restore.d.ts +0 -29
- package/dist/types/flows/session-restore.d.ts.map +0 -1
- package/dist/types/flows/wallet-connect.d.ts.map +0 -1
- package/dist/types/vault/vault-manager.d.ts +0 -57
- package/dist/types/vault/vault-manager.d.ts.map +0 -1
- package/src/flows/import-identity.ts +0 -219
- package/src/flows/local-connect.ts +0 -192
- package/src/flows/session-restore.ts +0 -155
- 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 '
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
|
41
|
-
|
|
42
|
-
|
|
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
|
|
62
|
-
|
|
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
|
|
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
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
userAgent
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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=
|
|
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 {
|
|
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 {
|
|
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 :
|
|
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
|
-
//
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
|
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 '
|
|
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=
|
|
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 './
|
|
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 './
|
|
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 './
|
|
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
|
package/dist/esm/index.js.map
CHANGED
|
@@ -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,
|
|
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"}
|