@enbox/auth 0.5.0 → 0.6.1
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 +240 -171
- 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 +378 -0
- package/dist/esm/connect/lifecycle.js.map +1 -0
- package/dist/esm/connect/local.js +105 -0
- package/dist/esm/connect/local.js.map +1 -0
- package/dist/esm/connect/restore.js +117 -0
- package/dist/esm/connect/restore.js.map +1 -0
- package/dist/esm/connect/wallet.js +80 -0
- 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 +13 -19
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/permissions.js +41 -0
- package/dist/esm/permissions.js.map +1 -0
- package/dist/esm/{flows/dwn-registration.js → registration.js} +2 -2
- package/dist/esm/registration.js.map +1 -0
- package/dist/esm/types.js +4 -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 +89 -11
- 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 +199 -0
- package/dist/types/connect/lifecycle.d.ts.map +1 -0
- package/dist/types/connect/local.d.ts +23 -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/connect/wallet.d.ts +21 -0
- 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 +14 -19
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +18 -0
- package/dist/types/permissions.d.ts.map +1 -0
- 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 +154 -4
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/wallet-connect-client.d.ts +86 -0
- package/dist/types/wallet-connect-client.d.ts.map +1 -0
- package/package.json +9 -5
- package/src/auth-manager.ts +258 -191
- package/src/connect/import.ts +148 -0
- package/src/connect/lifecycle.ts +487 -0
- package/src/connect/local.ts +116 -0
- package/src/connect/restore.ts +133 -0
- package/src/connect/wallet.ts +89 -0
- package/src/{flows/dwn-discovery.ts → discovery.ts} +4 -3
- package/src/index.ts +20 -19
- package/src/permissions.ts +48 -0
- package/src/{flows/dwn-registration.ts → registration.ts} +2 -2
- package/src/types.ts +171 -4
- package/src/wallet-connect-client.ts +275 -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 +0 -125
- package/dist/esm/flows/session-restore.js.map +0 -1
- package/dist/esm/flows/wallet-connect.js +0 -200
- 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 +0 -44
- 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/flows/wallet-connect.ts +0 -226
- package/src/vault/vault-manager.ts +0 -89
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet connect (Enbox Connect relay) flow.
|
|
3
|
+
*
|
|
4
|
+
* Connects to an external wallet via the Enbox Connect relay protocol,
|
|
5
|
+
* importing a delegated DID with permission grants.
|
|
6
|
+
* This replaces the "Mode B/C" paths in Enbox.connect().
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthSession } from '../identity-session.js';
|
|
10
|
+
import type { FlowContext } from './lifecycle.js';
|
|
11
|
+
import type { WalletConnectOptions } from '../types.js';
|
|
12
|
+
export { processConnectedGrants } from './lifecycle.js';
|
|
13
|
+
/**
|
|
14
|
+
* Execute the wallet connect flow.
|
|
15
|
+
*
|
|
16
|
+
* 1. Passes the permission requests directly to `WalletConnect.initClient()`.
|
|
17
|
+
* 2. Imports the delegate DID and processes grants.
|
|
18
|
+
* 3. Sets up sync and returns an AuthSession.
|
|
19
|
+
*/
|
|
20
|
+
export declare function walletConnect(ctx: FlowContext, options: WalletConnectOptions): Promise<AuthSession>;
|
|
21
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../src/connect/wallet.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAQxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAyDtB"}
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
* @module
|
|
26
26
|
*/
|
|
27
27
|
import type { EnboxUserAgent } from '@enbox/agent';
|
|
28
|
-
import type { AuthEventEmitter } from '
|
|
29
|
-
import type { StorageAdapter } from '
|
|
28
|
+
import type { AuthEventEmitter } from './events.js';
|
|
29
|
+
import type { StorageAdapter } from './types.js';
|
|
30
30
|
/**
|
|
31
31
|
* Check the current page URL for a `DwnDiscoveryPayload` in the fragment.
|
|
32
32
|
*
|
|
@@ -141,4 +141,4 @@ export declare function applyLocalDwnDiscovery(agent: EnboxUserAgent, storage: S
|
|
|
141
141
|
* ```
|
|
142
142
|
*/
|
|
143
143
|
export declare function requestLocalDwnDiscovery(callbackUrl?: string): boolean;
|
|
144
|
-
//# sourceMappingURL=
|
|
144
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,SAAS,CAkBnE;AA4BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB7B;AAID;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CA2BlB;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAuBtE"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,44 +5,39 @@
|
|
|
5
5
|
* in both browser and CLI environments. Depends only on `@enbox/agent`
|
|
6
6
|
* and can be used standalone or consumed by `@enbox/api`.
|
|
7
7
|
*
|
|
8
|
-
* @example Standalone auth
|
|
8
|
+
* @example Standalone auth (wallet app)
|
|
9
9
|
* ```ts
|
|
10
10
|
* import { AuthManager } from '@enbox/auth';
|
|
11
11
|
*
|
|
12
12
|
* const auth = await AuthManager.create({ sync: '15s' });
|
|
13
|
-
* const session = await auth.
|
|
14
|
-
*
|
|
15
|
-
* // session.agent — the authenticated Enbox agent
|
|
16
|
-
* // session.did — the connected DID URI
|
|
13
|
+
* const session = await auth.connectLocal({ password: userPin });
|
|
17
14
|
* ```
|
|
18
15
|
*
|
|
19
|
-
* @example
|
|
16
|
+
* @example Dapp with browser connect handler
|
|
20
17
|
* ```ts
|
|
21
18
|
* import { AuthManager } from '@enbox/auth';
|
|
22
|
-
* import {
|
|
23
|
-
*
|
|
24
|
-
* const auth = await AuthManager.create({ sync: '15s' });
|
|
25
|
-
* const session = await auth.connect();
|
|
19
|
+
* import { BrowserConnectHandler } from '@enbox/browser';
|
|
26
20
|
*
|
|
27
|
-
* const
|
|
28
|
-
*
|
|
29
|
-
* connectedDid: session.did,
|
|
30
|
-
* delegateDid: session.delegateDid,
|
|
21
|
+
* const auth = await AuthManager.create({
|
|
22
|
+
* connectHandler: BrowserConnectHandler(),
|
|
31
23
|
* });
|
|
24
|
+
* const session = await auth.connect({ protocols: [NotesProtocol] });
|
|
32
25
|
* ```
|
|
33
26
|
*
|
|
34
27
|
* @packageDocumentation
|
|
35
28
|
*/
|
|
36
29
|
export { AuthManager } from './auth-manager.js';
|
|
37
30
|
export { AuthSession } from './identity-session.js';
|
|
38
|
-
export { VaultManager } from './vault/vault-manager.js';
|
|
39
31
|
export { AuthEventEmitter } from './events.js';
|
|
40
32
|
export { PasswordProvider } from './password-provider.js';
|
|
41
33
|
export type { PasswordContext } from './password-provider.js';
|
|
42
34
|
export { EnboxUserAgent, HdIdentityVault } from '@enbox/agent';
|
|
43
|
-
export { processConnectedGrants } from './
|
|
44
|
-
export {
|
|
45
|
-
export {
|
|
35
|
+
export { processConnectedGrants } from './connect/wallet.js';
|
|
36
|
+
export { normalizeProtocolRequests } from './permissions.js';
|
|
37
|
+
export { WalletConnect } from './wallet-connect-client.js';
|
|
38
|
+
export type { ProtocolPermissionOptions, WalletConnectClientOptions } from './wallet-connect-client.js';
|
|
39
|
+
export { loadTokensFromStorage, saveTokensToStorage } from './registration.js';
|
|
40
|
+
export { applyLocalDwnDiscovery, checkUrlForDwnDiscoveryPayload, clearLocalDwnEndpoint, discoverLocalDwn, persistLocalDwnEndpoint, requestLocalDwnDiscovery, restoreLocalDwnEndpoint, } from './discovery.js';
|
|
46
41
|
export { BrowserStorage, LevelStorage, MemoryStorage, createDefaultStorage } from './storage/storage.js';
|
|
47
|
-
export type { AuthEvent, AuthEventHandler, AuthEventMap, AuthManagerOptions, AuthSessionInfo, AuthState, ConnectPermissionRequest, DisconnectOptions, HeadlessConnectOptions, IdentityInfo, IdentityVaultBackup, ImportFromPhraseOptions, ImportFromPortableOptions, LocalConnectOptions, LocalDwnStrategy, PortableIdentity, ProviderAuthParams, ProviderAuthResult, RegistrationOptions, RegistrationTokenData, RestoreSessionOptions, ShutdownOptions, StorageAdapter, SyncOption, WalletConnectOptions, } from './types.js';
|
|
42
|
+
export type { AuthEvent, AuthEventHandler, AuthEventMap, AuthManagerOptions, AuthSessionInfo, AuthState, ConnectHandler, ConnectOptions, ConnectPermissionRequest, ConnectResult, DisconnectOptions, HandlerConnectOptions, HeadlessConnectOptions, IdentityInfo, IdentityVaultBackup, ImportFromPhraseOptions, ImportFromPortableOptions, LocalConnectOptions, LocalDwnStrategy, Permission, PortableIdentity, ProtocolRequest, ProviderAuthParams, ProviderAuthResult, RegistrationOptions, RegistrationTokenData, RestoreSessionOptions, ShutdownOptions, StorageAdapter, SyncOption, WalletConnectOptions, } from './types.js';
|
|
48
43
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGzG,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,UAAU,EACV,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission request normalization utilities.
|
|
3
|
+
*
|
|
4
|
+
* Converts simplified `ProtocolRequest` entries (just a protocol definition
|
|
5
|
+
* or `{ definition, permissions }`) into agent-level `ConnectPermissionRequest`
|
|
6
|
+
* objects used by connect handlers.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
import type { ConnectPermissionRequest } from '@enbox/agent';
|
|
12
|
+
import type { ProtocolRequest } from './types.js';
|
|
13
|
+
/**
|
|
14
|
+
* Normalize simplified `ProtocolRequest[]` into agent-level
|
|
15
|
+
* `ConnectPermissionRequest[]`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function normalizeProtocolRequests(protocols: ProtocolRequest[] | undefined): ConnectPermissionRequest[];
|
|
18
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAyB,MAAM,cAAc,CAAC;AAEpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,eAAe,EAAE,GAAG,SAAS,GACvC,wBAAwB,EAAE,CAuB5B"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
13
|
import type { EnboxUserAgent } from '@enbox/agent';
|
|
14
|
-
import type { RegistrationOptions, RegistrationTokenData, StorageAdapter } from '
|
|
14
|
+
import type { RegistrationOptions, RegistrationTokenData, StorageAdapter } from './types.js';
|
|
15
15
|
/** @internal */
|
|
16
16
|
export interface RegistrationContext {
|
|
17
17
|
/** The user agent with RPC access for getServerInfo(). */
|
|
@@ -55,4 +55,4 @@ export declare function loadTokensFromStorage(storage: StorageAdapter): Promise<
|
|
|
55
55
|
* @internal
|
|
56
56
|
*/
|
|
57
57
|
export declare function saveTokensToStorage(storage: StorageAdapter, tokens: Record<string, RegistrationTokenData>): Promise<void>;
|
|
58
|
-
//# sourceMappingURL=
|
|
58
|
+
//# sourceMappingURL=registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAMnD,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,SAAS,EAAE,cAAc,CAAC;IAE1B,sCAAsC;IACtC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEvB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,mBAAmB,EACxB,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC,CAqHf;AAID;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAQhD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* @module @enbox/auth
|
|
3
3
|
* Public types for the authentication and identity management SDK.
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
5
|
+
import type { PortableDid } from '@enbox/dids';
|
|
6
|
+
import type { ConnectPermissionRequest, DwnDataEncodedRecordsWriteMessage, DwnProtocolDefinition, EnboxUserAgent, HdIdentityVault, LocalDwnStrategy, PortableIdentity } from '@enbox/agent';
|
|
6
7
|
import type { PasswordProvider } from './password-provider.js';
|
|
7
8
|
export type { ConnectPermissionRequest, HdIdentityVault, IdentityVaultBackup, LocalDwnStrategy, PortableIdentity } from '@enbox/agent';
|
|
8
9
|
export type { EnboxUserAgent } from '@enbox/agent';
|
|
@@ -172,6 +173,49 @@ export interface RegistrationOptions {
|
|
|
172
173
|
*/
|
|
173
174
|
persistTokens?: boolean;
|
|
174
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Result of a successful connect handler invocation.
|
|
178
|
+
*
|
|
179
|
+
* Contains the delegated credentials returned by the wallet.
|
|
180
|
+
* All connect handlers (browser popup, relay, CLI, etc.) must
|
|
181
|
+
* return this shape on success.
|
|
182
|
+
*/
|
|
183
|
+
export interface ConnectResult {
|
|
184
|
+
/** The portable delegate DID (includes private keys). */
|
|
185
|
+
delegatePortableDid: PortableDid;
|
|
186
|
+
/** Permission grants for the requested protocols. */
|
|
187
|
+
delegateGrants: DwnDataEncodedRecordsWriteMessage[];
|
|
188
|
+
/** The DID of the identity the user approved (the wallet owner's DID). */
|
|
189
|
+
connectedDid: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* A connect handler obtains delegated credentials from a wallet.
|
|
193
|
+
*
|
|
194
|
+
* Different environments provide different implementations:
|
|
195
|
+
* - **Browser**: popup + postMessage (`BrowserConnectHandler` from `@enbox/browser`)
|
|
196
|
+
* - **Relay**: QR/PIN relay flow (`WalletConnect.initClient` from `@enbox/auth`)
|
|
197
|
+
* - **CLI**: terminal QR/URL + polling (custom handler)
|
|
198
|
+
* - **Desktop**: native window management (custom handler)
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* import { BrowserConnectHandler } from '@enbox/browser';
|
|
203
|
+
* const auth = await AuthManager.create({
|
|
204
|
+
* connectHandler: BrowserConnectHandler(),
|
|
205
|
+
* });
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export interface ConnectHandler {
|
|
209
|
+
/**
|
|
210
|
+
* Obtain delegated credentials from a wallet.
|
|
211
|
+
*
|
|
212
|
+
* @param params.permissionRequests - Agent-level permission requests.
|
|
213
|
+
* @returns The delegate credentials, or `undefined` if the user denied.
|
|
214
|
+
*/
|
|
215
|
+
requestAccess(params: {
|
|
216
|
+
permissionRequests: ConnectPermissionRequest[];
|
|
217
|
+
}): Promise<ConnectResult | undefined>;
|
|
218
|
+
}
|
|
175
219
|
/** Options for {@link AuthManager.create}. */
|
|
176
220
|
export interface AuthManagerOptions {
|
|
177
221
|
/**
|
|
@@ -251,6 +295,25 @@ export interface AuthManagerOptions {
|
|
|
251
295
|
dwnEndpoints?: string[];
|
|
252
296
|
/** DWN registration configuration. */
|
|
253
297
|
registration?: RegistrationOptions;
|
|
298
|
+
/**
|
|
299
|
+
* Default connect handler for delegated connect flows.
|
|
300
|
+
*
|
|
301
|
+
* Used by `connect()` when the caller provides `protocols` (or other
|
|
302
|
+
* non-local-connect options) but does not pass a per-call handler.
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* ```ts
|
|
306
|
+
* import { BrowserConnectHandler } from '@enbox/browser';
|
|
307
|
+
*
|
|
308
|
+
* const auth = await AuthManager.create({
|
|
309
|
+
* connectHandler: BrowserConnectHandler(),
|
|
310
|
+
* });
|
|
311
|
+
*
|
|
312
|
+
* // Later — uses the default handler automatically
|
|
313
|
+
* const session = await auth.connect({ protocols: [NotesProtocol] });
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
316
|
+
connectHandler?: ConnectHandler;
|
|
254
317
|
}
|
|
255
318
|
/** Options for {@link AuthManager.connect}. */
|
|
256
319
|
export interface LocalConnectOptions {
|
|
@@ -266,7 +329,91 @@ export interface LocalConnectOptions {
|
|
|
266
329
|
metadata?: {
|
|
267
330
|
name?: string;
|
|
268
331
|
};
|
|
332
|
+
/**
|
|
333
|
+
* Whether to create a default identity if none exist.
|
|
334
|
+
*
|
|
335
|
+
* - `false` (default) — Skip automatic identity creation. The session is
|
|
336
|
+
* returned with the **agent DID** as the connected DID and no identity
|
|
337
|
+
* metadata. Use this when the app manages identity creation separately
|
|
338
|
+
* (e.g. a web wallet with an explicit "Create Identity" flow after
|
|
339
|
+
* vault setup).
|
|
340
|
+
*
|
|
341
|
+
* - `true` — If no identities exist after vault initialisation, a new
|
|
342
|
+
* `did:dht` identity is created automatically. Use this when vault
|
|
343
|
+
* setup and identity creation are combined into a single step (e.g.
|
|
344
|
+
* Electrobun's create wizard).
|
|
345
|
+
*
|
|
346
|
+
* @default false
|
|
347
|
+
*/
|
|
348
|
+
createIdentity?: boolean;
|
|
269
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* A protocol permission request in simplified form.
|
|
352
|
+
*
|
|
353
|
+
* Dapp developers can pass just a protocol definition (default permissions:
|
|
354
|
+
* `['read', 'write', 'query', 'subscribe']`), or an object with explicit
|
|
355
|
+
* permissions.
|
|
356
|
+
*/
|
|
357
|
+
export type ProtocolRequest = DwnProtocolDefinition | {
|
|
358
|
+
definition: DwnProtocolDefinition;
|
|
359
|
+
permissions: Permission[];
|
|
360
|
+
};
|
|
361
|
+
/** Shorthand permission names for DWN protocol scopes. */
|
|
362
|
+
export type Permission = 'write' | 'read' | 'delete' | 'query' | 'subscribe' | 'configure';
|
|
363
|
+
/** Default permissions granted when only a protocol definition is provided. */
|
|
364
|
+
export declare const DEFAULT_PERMISSIONS: Permission[];
|
|
365
|
+
/**
|
|
366
|
+
* Options for a handler-based (delegated) connect flow.
|
|
367
|
+
*
|
|
368
|
+
* Used when `connect()` delegates credential acquisition to a
|
|
369
|
+
* {@link ConnectHandler}. The handler is responsible for the
|
|
370
|
+
* environment-specific transport (popup, relay, CLI, etc.).
|
|
371
|
+
*/
|
|
372
|
+
export interface HandlerConnectOptions {
|
|
373
|
+
/**
|
|
374
|
+
* Protocols to request access to.
|
|
375
|
+
*
|
|
376
|
+
* Each entry can be either a protocol definition (uses default permissions)
|
|
377
|
+
* or an object with `{ definition, permissions }` for explicit control.
|
|
378
|
+
*
|
|
379
|
+
* @example
|
|
380
|
+
* ```ts
|
|
381
|
+
* // Default permissions (read, write, query, subscribe)
|
|
382
|
+
* protocols: [NotesProtocol]
|
|
383
|
+
*
|
|
384
|
+
* // Explicit permissions
|
|
385
|
+
* protocols: [
|
|
386
|
+
* { definition: NotesProtocol, permissions: ['read', 'write'] },
|
|
387
|
+
* { definition: PhotosProtocol, permissions: ['read'] },
|
|
388
|
+
* ]
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
protocols?: ProtocolRequest[];
|
|
392
|
+
/**
|
|
393
|
+
* Connect handler for this call. Overrides the default handler set
|
|
394
|
+
* on `AuthManager.create()`.
|
|
395
|
+
*/
|
|
396
|
+
connectHandler?: ConnectHandler;
|
|
397
|
+
/** Override manager default sync interval. */
|
|
398
|
+
sync?: SyncOption;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Unified options for {@link AuthManager.connect}.
|
|
402
|
+
*
|
|
403
|
+
* `connect()` routes to the appropriate flow based on the options:
|
|
404
|
+
*
|
|
405
|
+
* - **Handler-based connect** (dapps): triggered when `protocols` or
|
|
406
|
+
* `connectHandler` is provided. Delegates to the connect handler
|
|
407
|
+
* for credential acquisition.
|
|
408
|
+
*
|
|
409
|
+
* - **Local connect** (wallets / CLI): triggered when `password`,
|
|
410
|
+
* `createIdentity`, or `recoveryPhrase` is provided.
|
|
411
|
+
*
|
|
412
|
+
* In both cases, `connect()` first attempts to restore a previous session
|
|
413
|
+
* from storage. If a valid session exists, it is returned immediately
|
|
414
|
+
* without any user interaction.
|
|
415
|
+
*/
|
|
416
|
+
export type ConnectOptions = HandlerConnectOptions | LocalConnectOptions;
|
|
270
417
|
/** Options for {@link AuthManager.walletConnect}. */
|
|
271
418
|
export interface WalletConnectOptions {
|
|
272
419
|
/** Display name shown in the wallet during the connect flow. */
|
|
@@ -278,9 +425,10 @@ export interface WalletConnectOptions {
|
|
|
278
425
|
/**
|
|
279
426
|
* Protocol permission requests for the wallet connect flow.
|
|
280
427
|
*
|
|
281
|
-
* Each entry is a `ConnectPermissionRequest`
|
|
282
|
-
*
|
|
283
|
-
* `WalletConnect.createPermissionRequestForProtocol()`
|
|
428
|
+
* Each entry is a `ConnectPermissionRequest` containing a
|
|
429
|
+
* `protocolDefinition` and `permissionScopes`. Use
|
|
430
|
+
* `WalletConnect.createPermissionRequestForProtocol()` from `@enbox/auth`
|
|
431
|
+
* to build these.
|
|
284
432
|
*/
|
|
285
433
|
permissionRequests: ConnectPermissionRequest[];
|
|
286
434
|
/** Called when the wallet URI is ready (render as QR code). */
|
|
@@ -384,6 +532,8 @@ export interface StorageAdapter {
|
|
|
384
532
|
}
|
|
385
533
|
/** The insecure default password used when none is provided. */
|
|
386
534
|
export declare const INSECURE_DEFAULT_PASSWORD = "insecure-static-phrase";
|
|
535
|
+
/** Default DWN endpoints for new identities when none are configured. */
|
|
536
|
+
export declare const DEFAULT_DWN_ENDPOINTS: string[];
|
|
387
537
|
/**
|
|
388
538
|
* Storage keys used by the auth manager for session persistence.
|
|
389
539
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WalletConnect client — initiates the relay-mediated connect flow.
|
|
3
|
+
*
|
|
4
|
+
* Moved from `@enbox/agent/src/connect.ts` because `initClient` has zero
|
|
5
|
+
* coupling to agent internals (no vault, no key store, no DWN processing,
|
|
6
|
+
* no sync). Its only consumer is `auth/src/connect/wallet.ts`.
|
|
7
|
+
*
|
|
8
|
+
* The server-side counterpart (`EnboxConnectProtocol`) correctly stays in
|
|
9
|
+
* `@enbox/agent` because it uses `agent.processDwnRequest()`,
|
|
10
|
+
* `agent.sendDwnRequest()`, and `AgentPermissionsApi`.
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
import type { ConnectPermissionRequest, DwnProtocolDefinition } from '@enbox/agent';
|
|
15
|
+
import type { EnboxConnectResponse } from '@enbox/agent';
|
|
16
|
+
/**
|
|
17
|
+
* Options for initiating a wallet connect flow (remote, relay-mediated).
|
|
18
|
+
*
|
|
19
|
+
* This is the agent-level options type used by `initClient()`. The auth-level
|
|
20
|
+
* `WalletConnectOptions` (in `types.ts`) wraps this with additional fields
|
|
21
|
+
* like `sync`.
|
|
22
|
+
*/
|
|
23
|
+
export type WalletConnectClientOptions = {
|
|
24
|
+
/** The user-friendly name of the app, displayed in the wallet consent UI. */
|
|
25
|
+
displayName: string;
|
|
26
|
+
/** The URL of the connect server which relays messages between the app and wallet. */
|
|
27
|
+
connectServerUrl: string;
|
|
28
|
+
/**
|
|
29
|
+
* The URI of the wallet app. Query params (`request_uri`, `encryption_key`)
|
|
30
|
+
* are appended and passed to `onWalletUriReady`.
|
|
31
|
+
* @example `enbox://connect` or `http://localhost:3000/`
|
|
32
|
+
*/
|
|
33
|
+
walletUri: string;
|
|
34
|
+
/**
|
|
35
|
+
* The protocols of permissions requested, along with the definition and
|
|
36
|
+
* permission scopes for each protocol. The key is the protocol URL and
|
|
37
|
+
* the value is an object with the protocol definition and the permission scopes.
|
|
38
|
+
*/
|
|
39
|
+
permissionRequests: ConnectPermissionRequest[];
|
|
40
|
+
/**
|
|
41
|
+
* Called with the wallet URI including query params (`request_uri`, `encryption_key`).
|
|
42
|
+
* The app should render this as a QR code or use it as a deep link.
|
|
43
|
+
*
|
|
44
|
+
* @param uri - The wallet URI with connect payload.
|
|
45
|
+
*/
|
|
46
|
+
onWalletUriReady: (uri: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Called to collect the PIN from the user. The PIN is used as AAD
|
|
49
|
+
* when decrypting the connect response from the relay.
|
|
50
|
+
*
|
|
51
|
+
* @returns A promise that resolves to the PIN as a string.
|
|
52
|
+
*/
|
|
53
|
+
validatePin: () => Promise<string>;
|
|
54
|
+
};
|
|
55
|
+
import type { Permission } from './types.js';
|
|
56
|
+
/**
|
|
57
|
+
* The options for creating a permission request for a given protocol.
|
|
58
|
+
*/
|
|
59
|
+
export type ProtocolPermissionOptions = {
|
|
60
|
+
/** The protocol definition for the protocol being requested */
|
|
61
|
+
definition: DwnProtocolDefinition;
|
|
62
|
+
/** The permissions being requested for the protocol */
|
|
63
|
+
permissions: Permission[];
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Initiates the wallet connect process. Used when a client wants to obtain
|
|
67
|
+
* a did from a provider.
|
|
68
|
+
*/
|
|
69
|
+
declare function initClient({ displayName, connectServerUrl, walletUri, permissionRequests, onWalletUriReady, validatePin, }: WalletConnectClientOptions): Promise<{
|
|
70
|
+
delegateGrants: EnboxConnectResponse['delegateGrants'];
|
|
71
|
+
delegatePortableDid: EnboxConnectResponse['delegatePortableDid'];
|
|
72
|
+
connectedDid: string;
|
|
73
|
+
} | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Creates a set of Dwn Permission Scopes to request for a given protocol.
|
|
76
|
+
*
|
|
77
|
+
* If no permissions are provided, the default is to request all relevant record permissions (write, read, delete, query, subscribe).
|
|
78
|
+
* 'configure' is not included by default, as this gives the application a lot of control over the protocol.
|
|
79
|
+
*/
|
|
80
|
+
declare function createPermissionRequestForProtocol({ definition, permissions }: ProtocolPermissionOptions): ConnectPermissionRequest;
|
|
81
|
+
export declare const WalletConnect: {
|
|
82
|
+
initClient: typeof initClient;
|
|
83
|
+
createPermissionRequestForProtocol: typeof createPermissionRequestForProtocol;
|
|
84
|
+
};
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=wallet-connect-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-connect-client.d.ts","sourceRoot":"","sources":["../../src/wallet-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAsB,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACxG,OAAO,KAAK,EAAyB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAQhF;;;;;;GAMG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IAEpB,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,+DAA+D;IAC/D,UAAU,EAAE,qBAAqB,CAAC;IAElC,uDAAuD;IACvD,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,iBAAe,UAAU,CAAC,EACxB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACZ,EAAE,0BAA0B,GAAG,OAAO,CAAC;IACtC,cAAc,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACvD,mBAAmB,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,SAAS,CAAC,CAkGb;AAED;;;;;GAKG;AACH,iBAAS,kCAAkC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,yBAAyB,GAAG,wBAAwB,CAsE5H;AAED,eAAO,MAAM,aAAa;;;CAAqD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enbox/auth",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Headless authentication and identity management SDK for Enbox",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/esm/index.js",
|
|
@@ -56,15 +56,19 @@
|
|
|
56
56
|
"bun": ">=1.0.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@enbox/agent": "0.
|
|
60
|
-
"@enbox/common": "0.0
|
|
61
|
-
"@enbox/
|
|
62
|
-
"@enbox/
|
|
59
|
+
"@enbox/agent": "0.5.1",
|
|
60
|
+
"@enbox/common": "0.1.0",
|
|
61
|
+
"@enbox/crypto": "0.1.0",
|
|
62
|
+
"@enbox/dids": "0.1.0",
|
|
63
|
+
"@enbox/dwn-clients": "0.2.1",
|
|
64
|
+
"@enbox/dwn-sdk-js": "0.2.0",
|
|
63
65
|
"level": "8.0.1"
|
|
64
66
|
},
|
|
65
67
|
"devDependencies": {
|
|
66
68
|
"@types/node": "22.19.15",
|
|
69
|
+
"@types/sinon": "17.0.3",
|
|
67
70
|
"bun-types": "1.3.10",
|
|
71
|
+
"sinon": "18.0.0",
|
|
68
72
|
"typescript": "5.9.3"
|
|
69
73
|
}
|
|
70
74
|
}
|