@0xsequence/wallet-wdk 3.0.2 → 3.0.4
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-typecheck.log +1 -1
- package/CHANGELOG.md +24 -0
- package/dist/sequence/handlers/authcode.d.ts.map +1 -1
- package/dist/sequence/handlers/authcode.js +6 -0
- package/dist/sequence/handlers/identity.d.ts +1 -0
- package/dist/sequence/handlers/identity.d.ts.map +1 -1
- package/dist/sequence/handlers/identity.js +3 -0
- package/dist/sequence/handlers/idtoken.d.ts +33 -0
- package/dist/sequence/handlers/idtoken.d.ts.map +1 -0
- package/dist/sequence/handlers/idtoken.js +113 -0
- package/dist/sequence/handlers/index.d.ts +1 -0
- package/dist/sequence/handlers/index.d.ts.map +1 -1
- package/dist/sequence/handlers/index.js +1 -0
- package/dist/sequence/manager.d.ts +23 -14
- package/dist/sequence/manager.d.ts.map +1 -1
- package/dist/sequence/manager.js +28 -4
- package/dist/sequence/sessions.d.ts.map +1 -1
- package/dist/sequence/sessions.js +5 -1
- package/dist/sequence/signers.d.ts.map +1 -1
- package/dist/sequence/signers.js +4 -0
- package/dist/sequence/types/signer.d.ts +1 -1
- package/dist/sequence/types/signer.js +1 -1
- package/dist/sequence/types/wallet.d.ts +1 -1
- package/dist/sequence/wallets.d.ts +7 -1
- package/dist/sequence/wallets.d.ts.map +1 -1
- package/dist/sequence/wallets.js +73 -7
- package/package.json +6 -6
- package/src/sequence/handlers/authcode.ts +6 -0
- package/src/sequence/handlers/identity.ts +4 -0
- package/src/sequence/handlers/idtoken.ts +146 -0
- package/src/sequence/handlers/index.ts +1 -0
- package/src/sequence/manager.ts +110 -43
- package/src/sequence/sessions.ts +7 -1
- package/src/sequence/signers.ts +5 -0
- package/src/sequence/types/signer.ts +1 -1
- package/src/sequence/types/wallet.ts +1 -1
- package/src/sequence/wallets.ts +98 -9
- package/test/authcode-pkce.test.ts +1 -1
- package/test/authcode.test.ts +2 -2
- package/test/identity-auth-dbs.test.ts +122 -2
- package/test/identity-signer.test.ts +1 -1
- package/test/idtoken.test.ts +343 -0
- package/test/sessions-idtoken.test.ts +98 -0
- package/test/signers-kindof.test.ts +22 -0
- package/test/wallets.test.ts +202 -1
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-lint.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @0xsequence/wallet-wdk
|
|
2
2
|
|
|
3
|
+
## 3.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- id-token login support
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @0xsequence/guard@3.0.4
|
|
10
|
+
- @0xsequence/identity-instrument@3.0.4
|
|
11
|
+
- @0xsequence/relayer@3.0.4
|
|
12
|
+
- @0xsequence/wallet-core@3.0.4
|
|
13
|
+
- @0xsequence/wallet-primitives@3.0.4
|
|
14
|
+
|
|
15
|
+
## 3.0.3
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 3.0.3
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @0xsequence/guard@3.0.3
|
|
22
|
+
- @0xsequence/identity-instrument@3.0.3
|
|
23
|
+
- @0xsequence/relayer@3.0.3
|
|
24
|
+
- @0xsequence/wallet-core@3.0.3
|
|
25
|
+
- @0xsequence/wallet-primitives@3.0.3
|
|
26
|
+
|
|
3
27
|
## 3.0.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authcode.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/authcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAS,MAAM,IAAI,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"authcode.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/authcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAS,MAAM,IAAI,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAkB,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1D,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,OAAO;aAInD,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,MAAM,EAAE;aACxD,MAAM,EAAE,MAAM;IAC9B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;aACnB,QAAQ,EAAE,MAAM;IAGhC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,eAAe;IATpD,SAAS,CAAC,WAAW,EAAE,MAAM,CAAK;gBAGhB,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,MAAM,EAAE,EACxD,MAAM,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,UAAU,EAAE,UAAU,EACH,WAAW,EAAE,EAAE,CAAC,eAAe,EAClD,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,GAAG,CAAC,EAAE,MAAM;IAKd,IAAW,IAAI,WAOd;IAEM,cAAc,CAAC,WAAW,EAAE,MAAM;IAI5B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAyB7E,YAAY,CACvB,UAAU,EAAE,EAAE,CAAC,cAAc,EAC7B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAWjD,MAAM,CACV,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;IA4B9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAUhE,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Hex, Bytes } from 'ox';
|
|
2
2
|
import * as Identity from '@0xsequence/identity-instrument';
|
|
3
3
|
import { IdentityHandler } from './identity.js';
|
|
4
|
+
import { Kinds } from '../types/signer.js';
|
|
4
5
|
export class AuthCodeHandler extends IdentityHandler {
|
|
5
6
|
signupKind;
|
|
6
7
|
issuer;
|
|
@@ -17,6 +18,11 @@ export class AuthCodeHandler extends IdentityHandler {
|
|
|
17
18
|
this.commitments = commitments;
|
|
18
19
|
}
|
|
19
20
|
get kind() {
|
|
21
|
+
if (this.signupKind === 'google-pkce') {
|
|
22
|
+
// Keep Google PKCE on the canonical kind so Google signers created before
|
|
23
|
+
// canonicalization still resolve as `login-google`.
|
|
24
|
+
return Kinds.LoginGoogle;
|
|
25
|
+
}
|
|
20
26
|
return 'login-' + this.signupKind;
|
|
21
27
|
}
|
|
22
28
|
setRedirectUri(redirectUri) {
|
|
@@ -21,6 +21,7 @@ export declare class IdentityHandler {
|
|
|
21
21
|
}>;
|
|
22
22
|
protected sign(signer: IdentitySigner, request: BaseSignatureRequest): Promise<void>;
|
|
23
23
|
protected getAuthKeySigner(address: string): Promise<IdentitySigner | undefined>;
|
|
24
|
+
protected clearAuthKeySigner(address: string): Promise<void>;
|
|
24
25
|
private getAuthKey;
|
|
25
26
|
}
|
|
26
27
|
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,iBAAiB,GAAI,eAAe,QAAQ,CAAC,YAAY,KAAG,GAAG,CAAC,GAW5E,CAAA;AAED,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;aACX,YAAY,EAAE,QAAQ,CAAC,YAAY;IANrD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;gBAGX,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,UAAU,EAAE,UAAU,EACvB,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnD,GAAG,CAAC,EAAE,MAAM;IAKP,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;cAIjC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS;cAWjD,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS;;;;cAkB/C,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB;cAQ1D,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,cAAc,EAAqB,MAAM,0BAA0B,CAAA;AAC5E,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,iBAAiB,GAAI,eAAe,QAAQ,CAAC,YAAY,KAAG,GAAG,CAAC,GAW5E,CAAA;AAED,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;aACX,YAAY,EAAE,QAAQ,CAAC,YAAY;IANrD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;gBAGX,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,UAAU,EAAE,UAAU,EACvB,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnD,GAAG,CAAC,EAAE,MAAM;IAKP,cAAc,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;cAIjC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS;cAWjD,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS;;;;cAkB/C,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,oBAAoB;cAQ1D,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;cAQtE,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIpD,UAAU;CA0BzB"}
|
|
@@ -67,6 +67,9 @@ export class IdentityHandler {
|
|
|
67
67
|
}
|
|
68
68
|
return new IdentitySigner(this.nitro, authKey, this.env.crypto);
|
|
69
69
|
}
|
|
70
|
+
async clearAuthKeySigner(address) {
|
|
71
|
+
await this.authKeys.delBySigner(address);
|
|
72
|
+
}
|
|
70
73
|
async getAuthKey(signer) {
|
|
71
74
|
let authKey = await this.authKeys.getBySigner(signer);
|
|
72
75
|
if (!signer && !authKey) {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Address, Hex } from 'ox';
|
|
2
|
+
import { Signers } from '@0xsequence/wallet-core';
|
|
3
|
+
import { Handler } from './handler.js';
|
|
4
|
+
import * as Identity from '@0xsequence/identity-instrument';
|
|
5
|
+
import * as Db from '../../dbs/index.js';
|
|
6
|
+
import { Signatures } from '../signatures.js';
|
|
7
|
+
import { SignerActionable, SignerReady, SignerUnavailable, BaseSignatureRequest } from '../types/signature-request.js';
|
|
8
|
+
import { IdentitySigner } from '../../identity/signer.js';
|
|
9
|
+
import { IdentityHandler } from './identity.js';
|
|
10
|
+
import type { WdkEnv } from '../../env.js';
|
|
11
|
+
type RespondFn = (idToken: string) => Promise<void>;
|
|
12
|
+
export type PromptIdTokenHandler = (kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`, respond: RespondFn) => Promise<void>;
|
|
13
|
+
export declare class IdTokenHandler extends IdentityHandler implements Handler {
|
|
14
|
+
readonly signupKind: 'google-id-token' | 'apple-id-token' | `custom-${string}`;
|
|
15
|
+
readonly issuer: string;
|
|
16
|
+
readonly audience: string;
|
|
17
|
+
private onPromptIdToken;
|
|
18
|
+
constructor(signupKind: 'google-id-token' | 'apple-id-token' | `custom-${string}`, issuer: string, audience: string, nitro: Identity.IdentityInstrument, signatures: Signatures, authKeys: Db.AuthKeys, env?: WdkEnv);
|
|
19
|
+
get kind(): string;
|
|
20
|
+
registerUI(onPromptIdToken: PromptIdTokenHandler): () => void;
|
|
21
|
+
unregisterUI(): void;
|
|
22
|
+
completeAuth(idToken: string): Promise<[IdentitySigner, {
|
|
23
|
+
[key: string]: string;
|
|
24
|
+
}]>;
|
|
25
|
+
getSigner(): Promise<{
|
|
26
|
+
signer: Signers.Signer & Signers.Witnessable;
|
|
27
|
+
email: string;
|
|
28
|
+
}>;
|
|
29
|
+
status(address: Address.Address, _imageHash: Hex.Hex | undefined, request: BaseSignatureRequest): Promise<SignerUnavailable | SignerReady | SignerActionable>;
|
|
30
|
+
private handleAuth;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=idtoken.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idtoken.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/idtoken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,QAAQ,MAAM,iCAAiC,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACtH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE1C,KAAK,SAAS,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnD,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE,EAC/D,OAAO,EAAE,SAAS,KACf,OAAO,CAAC,IAAI,CAAC,CAAA;AAElB,qBAAa,cAAe,SAAQ,eAAgB,YAAW,OAAO;aAIlD,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE;aACrE,MAAM,EAAE,MAAM;aACd,QAAQ,EAAE,MAAM;IALlC,OAAO,CAAC,eAAe,CAAkC;gBAGvC,UAAU,EAAE,iBAAiB,GAAG,gBAAgB,GAAG,UAAU,MAAM,EAAE,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChC,KAAK,EAAE,QAAQ,CAAC,kBAAkB,EAClC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACrB,GAAG,CAAC,EAAE,MAAM;IAKd,IAAW,IAAI,WAQd;IAEM,UAAU,CAAC,eAAe,EAAE,oBAAoB;IAOhD,YAAY;IAIN,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAQnF,SAAS,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAS5F,MAAM,CACV,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;IAgD9D,OAAO,CAAC,UAAU;CAqBnB"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Address } from 'ox';
|
|
2
|
+
import * as Identity from '@0xsequence/identity-instrument';
|
|
3
|
+
import { IdentityHandler } from './identity.js';
|
|
4
|
+
import { Kinds } from '../types/signer.js';
|
|
5
|
+
export class IdTokenHandler extends IdentityHandler {
|
|
6
|
+
signupKind;
|
|
7
|
+
issuer;
|
|
8
|
+
audience;
|
|
9
|
+
onPromptIdToken;
|
|
10
|
+
constructor(signupKind, issuer, audience, nitro, signatures, authKeys, env) {
|
|
11
|
+
super(nitro, authKeys, signatures, Identity.IdentityType.OIDC, env);
|
|
12
|
+
this.signupKind = signupKind;
|
|
13
|
+
this.issuer = issuer;
|
|
14
|
+
this.audience = audience;
|
|
15
|
+
}
|
|
16
|
+
get kind() {
|
|
17
|
+
if (this.signupKind === 'google-id-token') {
|
|
18
|
+
return Kinds.LoginGoogle;
|
|
19
|
+
}
|
|
20
|
+
if (this.signupKind === 'apple-id-token') {
|
|
21
|
+
return Kinds.LoginApple;
|
|
22
|
+
}
|
|
23
|
+
return 'login-' + this.signupKind;
|
|
24
|
+
}
|
|
25
|
+
registerUI(onPromptIdToken) {
|
|
26
|
+
this.onPromptIdToken = onPromptIdToken;
|
|
27
|
+
return () => {
|
|
28
|
+
this.onPromptIdToken = undefined;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
unregisterUI() {
|
|
32
|
+
this.onPromptIdToken = undefined;
|
|
33
|
+
}
|
|
34
|
+
async completeAuth(idToken) {
|
|
35
|
+
const challenge = new Identity.IdTokenChallenge(this.issuer, this.audience, idToken);
|
|
36
|
+
await this.nitroCommitVerifier(challenge);
|
|
37
|
+
const { signer: identitySigner, email } = await this.nitroCompleteAuth(challenge);
|
|
38
|
+
return [identitySigner, { email }];
|
|
39
|
+
}
|
|
40
|
+
async getSigner() {
|
|
41
|
+
const onPromptIdToken = this.onPromptIdToken;
|
|
42
|
+
if (!onPromptIdToken) {
|
|
43
|
+
throw new Error('id-token-handler-ui-not-registered');
|
|
44
|
+
}
|
|
45
|
+
return await this.handleAuth(onPromptIdToken);
|
|
46
|
+
}
|
|
47
|
+
async status(address, _imageHash, request) {
|
|
48
|
+
const signer = await this.getAuthKeySigner(address);
|
|
49
|
+
if (signer) {
|
|
50
|
+
return {
|
|
51
|
+
address,
|
|
52
|
+
handler: this,
|
|
53
|
+
status: 'ready',
|
|
54
|
+
handle: async () => {
|
|
55
|
+
await this.sign(signer, request);
|
|
56
|
+
return true;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const onPromptIdToken = this.onPromptIdToken;
|
|
61
|
+
if (!onPromptIdToken) {
|
|
62
|
+
return {
|
|
63
|
+
address,
|
|
64
|
+
handler: this,
|
|
65
|
+
reason: 'ui-not-registered',
|
|
66
|
+
status: 'unavailable',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
address,
|
|
71
|
+
handler: this,
|
|
72
|
+
status: 'actionable',
|
|
73
|
+
message: 'request-id-token',
|
|
74
|
+
handle: async () => {
|
|
75
|
+
try {
|
|
76
|
+
const { signer } = await this.handleAuth(onPromptIdToken);
|
|
77
|
+
const signerAddress = (await signer.address);
|
|
78
|
+
if (!Address.isEqual(signerAddress, address)) {
|
|
79
|
+
// ID-token auth prompts are keyed by provider kind, not the requested signer address.
|
|
80
|
+
// For example, a user can pick a different Google account in the account picker and
|
|
81
|
+
// return a token for a different identity than this request expects.
|
|
82
|
+
await this.clearAuthKeySigner(signerAddress);
|
|
83
|
+
throw new Error('id-token-signer-mismatch');
|
|
84
|
+
}
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
handleAuth(onPromptIdToken) {
|
|
94
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
95
|
+
return new Promise(async (resolve, reject) => {
|
|
96
|
+
try {
|
|
97
|
+
const respond = async (idToken) => {
|
|
98
|
+
try {
|
|
99
|
+
const [signer, metadata] = await this.completeAuth(idToken);
|
|
100
|
+
resolve({ signer, email: metadata.email || '' });
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
reject(error);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
await onPromptIdToken(this.signupKind, respond);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
reject(error);
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -3,5 +3,6 @@ export { DevicesHandler } from './devices.js';
|
|
|
3
3
|
export { PasskeysHandler } from './passkeys.js';
|
|
4
4
|
export { OtpHandler } from './otp.js';
|
|
5
5
|
export { AuthCodePkceHandler } from './authcode-pkce.js';
|
|
6
|
+
export { IdTokenHandler } from './idtoken.js';
|
|
6
7
|
export { MnemonicHandler } from './mnemonic.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sequence/handlers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -2,4 +2,5 @@ export { DevicesHandler } from './devices.js';
|
|
|
2
2
|
export { PasskeysHandler } from './passkeys.js';
|
|
3
3
|
export { OtpHandler } from './otp.js';
|
|
4
4
|
export { AuthCodePkceHandler } from './authcode-pkce.js';
|
|
5
|
+
export { IdTokenHandler } from './idtoken.js';
|
|
5
6
|
export { MnemonicHandler } from './mnemonic.js';
|
|
@@ -19,8 +19,21 @@ import { Wallets, WalletsInterface } from './wallets.js';
|
|
|
19
19
|
import { PromptCodeHandler } from './handlers/guard.js';
|
|
20
20
|
import { PasskeyCredential } from '../dbs/index.js';
|
|
21
21
|
import { PromptMnemonicHandler } from './handlers/mnemonic.js';
|
|
22
|
+
import { PromptIdTokenHandler } from './handlers/idtoken.js';
|
|
22
23
|
import { PromptOtpHandler } from './handlers/otp.js';
|
|
23
24
|
import { type PasskeyProvider } from './passkeys-provider.js';
|
|
25
|
+
type CustomIdentityProvider = {
|
|
26
|
+
kind: `custom-${string}`;
|
|
27
|
+
authMethod: 'id-token';
|
|
28
|
+
issuer: string;
|
|
29
|
+
clientId: string;
|
|
30
|
+
} | {
|
|
31
|
+
kind: `custom-${string}`;
|
|
32
|
+
authMethod: 'authcode' | 'authcode-pkce';
|
|
33
|
+
issuer: string;
|
|
34
|
+
oauthUrl: string;
|
|
35
|
+
clientId: string;
|
|
36
|
+
};
|
|
24
37
|
export type ManagerOptions = {
|
|
25
38
|
verbose?: boolean;
|
|
26
39
|
extensions?: Extensions.Extensions;
|
|
@@ -61,18 +74,14 @@ export type ManagerOptions = {
|
|
|
61
74
|
google?: {
|
|
62
75
|
enabled: boolean;
|
|
63
76
|
clientId: string;
|
|
77
|
+
authMethod?: 'authcode-pkce' | 'id-token';
|
|
64
78
|
};
|
|
65
79
|
apple?: {
|
|
66
80
|
enabled: boolean;
|
|
67
81
|
clientId: string;
|
|
82
|
+
authMethod?: 'authcode' | 'id-token';
|
|
68
83
|
};
|
|
69
|
-
customProviders?:
|
|
70
|
-
kind: `custom-${string}`;
|
|
71
|
-
authMethod: 'id-token' | 'authcode' | 'authcode-pkce';
|
|
72
|
-
issuer: string;
|
|
73
|
-
oauthUrl: string;
|
|
74
|
-
clientId: string;
|
|
75
|
-
}[];
|
|
84
|
+
customProviders?: CustomIdentityProvider[];
|
|
76
85
|
};
|
|
77
86
|
};
|
|
78
87
|
export type ResolvedIdentityOptions = {
|
|
@@ -87,18 +96,14 @@ export type ResolvedIdentityOptions = {
|
|
|
87
96
|
google: {
|
|
88
97
|
enabled: boolean;
|
|
89
98
|
clientId: string;
|
|
99
|
+
authMethod: 'authcode-pkce' | 'id-token';
|
|
90
100
|
};
|
|
91
101
|
apple: {
|
|
92
102
|
enabled: boolean;
|
|
93
103
|
clientId: string;
|
|
104
|
+
authMethod: 'authcode' | 'id-token';
|
|
94
105
|
};
|
|
95
|
-
customProviders?:
|
|
96
|
-
kind: `custom-${string}`;
|
|
97
|
-
authMethod: 'id-token' | 'authcode' | 'authcode-pkce';
|
|
98
|
-
issuer: string;
|
|
99
|
-
oauthUrl: string;
|
|
100
|
-
clientId: string;
|
|
101
|
-
}[];
|
|
106
|
+
customProviders?: CustomIdentityProvider[];
|
|
102
107
|
};
|
|
103
108
|
export type ResolvedManagerOptions = {
|
|
104
109
|
verbose: boolean;
|
|
@@ -172,10 +177,12 @@ export declare const ManagerOptionsDefaults: {
|
|
|
172
177
|
google: {
|
|
173
178
|
enabled: boolean;
|
|
174
179
|
clientId: string;
|
|
180
|
+
authMethod: "authcode-pkce";
|
|
175
181
|
};
|
|
176
182
|
apple: {
|
|
177
183
|
enabled: boolean;
|
|
178
184
|
clientId: string;
|
|
185
|
+
authMethod: "authcode";
|
|
179
186
|
};
|
|
180
187
|
};
|
|
181
188
|
};
|
|
@@ -349,6 +356,7 @@ export declare class Manager {
|
|
|
349
356
|
constructor(options?: ManagerOptions);
|
|
350
357
|
registerMnemonicUI(onPromptMnemonic: PromptMnemonicHandler): () => void;
|
|
351
358
|
registerOtpUI(onPromptOtp: PromptOtpHandler): () => void;
|
|
359
|
+
registerIdTokenUI(onPromptIdToken: PromptIdTokenHandler): () => void;
|
|
352
360
|
registerGuardUI(onPromptCode: PromptCodeHandler): () => void;
|
|
353
361
|
setRedirectPrefix(prefix: string): Promise<void>;
|
|
354
362
|
getNetworks(): Network.Network[];
|
|
@@ -356,4 +364,5 @@ export declare class Manager {
|
|
|
356
364
|
getPasskeyCredentials(): Promise<PasskeyCredential[]>;
|
|
357
365
|
stop(): Promise<void>;
|
|
358
366
|
}
|
|
367
|
+
export {};
|
|
359
368
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EAAE,MAAM,EAAa,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAGL,OAAO,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/sequence/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EAAE,MAAM,EAAa,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EAGL,OAAO,EAKR,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAErF,KAAK,sBAAsB,GACvB;IACE,IAAI,EAAE,UAAU,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GACD;IACE,IAAI,EAAE,UAAU,MAAM,EAAE,CAAA;IACxB,UAAU,EAAE,UAAU,GAAG,eAAe,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAA;IAEvB,cAAc,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAA;IACxD,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,EAAE,CAAC,YAAY,CAAA;IAChC,YAAY,CAAC,EAAE,EAAE,CAAC,UAAU,CAAA;IAC5B,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,iBAAiB,CAAC,EAAE,EAAE,CAAC,eAAe,CAAA;IACtC,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAA;IACxB,oBAAoB,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAA;IAE5C,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,eAAe,CAAC,EAAE,eAAe,CAAA;IAEjC,aAAa,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD,qBAAqB,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAGzC,oBAAoB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAA;IACtC,uBAAuB,CAAC,EAAE,gBAAgB,CAAA;IAG1C,8BAA8B,CAAC,EAAE,OAAO,CAAA;IAExC,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;QACpB,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;QACvB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE;YACN,OAAO,EAAE,OAAO,CAAA;SACjB,CAAA;QACD,MAAM,CAAC,EAAE;YACP,OAAO,EAAE,OAAO,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,CAAC,EAAE,eAAe,GAAG,UAAU,CAAA;SAC1C,CAAA;QACD,KAAK,CAAC,EAAE;YACN,OAAO,EAAE,OAAO,CAAA;YAChB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAAA;SACrC,CAAA;QACD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAA;KAC3C,CAAA;CACF,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAA;KACjB,CAAA;IACD,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,eAAe,GAAG,UAAU,CAAA;KACzC,CAAA;IACD,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,UAAU,GAAG,UAAU,CAAA;KACpC,CAAA;IACD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAA;IAEhB,UAAU,EAAE,UAAU,CAAC,UAAU,CAAA;IACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAA;IAC5B,KAAK,EAAE,OAAO,CAAC,OAAO,CAAA;IAEtB,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAA;IACvD,SAAS,EAAE,EAAE,CAAC,OAAO,CAAA;IACrB,cAAc,EAAE,EAAE,CAAC,YAAY,CAAA;IAC/B,YAAY,EAAE,EAAE,CAAC,UAAU,CAAA;IAC3B,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAA;IACvB,iBAAiB,EAAE,EAAE,CAAC,eAAe,CAAA;IACrC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAA;IACvB,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAA;IACvB,oBAAoB,EAAE,EAAE,CAAC,kBAAkB,CAAA;IAE3C,iBAAiB,EAAE,MAAM,CAAA;IAEzB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,eAAe,CAAA;IAEhC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC3B,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACvD,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAElD,qBAAqB,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAExC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAA;IACrC,uBAAuB,EAAE,gBAAgB,CAAA;IAEzC,8BAA8B,EAAE,OAAO,CAAA;IAEvC,QAAQ,EAAE,uBAAuB,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;2BAgCJ,OAAO,CAAC,OAAO,EAAE;;oBAMzC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC;0BAmBlC,MAAM,CAAC,UAAU;6BAKjB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CA4B7D,CAAA;AAED,eAAO,MAAM,2BAA2B;;CAEvC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAyG5F;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,EAAE,MAAM,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,cAAc,CAAA;IAC9D,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAA;IACtC,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAA;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAA;IAElD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAA;IACrC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAA;IAC1C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAA;IAE/B,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAA;IAEtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,CAAA;IAEpC,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAA;IAC9C,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAA;IAElD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IAEzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IAEzC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEvC,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAE3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAY;IAIxC;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,OAAO,EAAE,gBAAgB,CAAA;IAEzC;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAgB,UAAU,EAAE,mBAAmB,CAAA;IAE/C;;;;;;;;;;;;;;OAcG;IACH,SAAgB,YAAY,EAAE,qBAAqB,CAAA;IAEnD;;;;;;;;;;;;;OAaG;IACH,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;IAE3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;IAE3C;;;;;;;;;;;;OAYG;IACH,SAAgB,QAAQ,EAAE,iBAAiB,CAAA;gBAI/B,OAAO,CAAC,EAAE,cAAc;IAuP7B,kBAAkB,CAAC,gBAAgB,EAAE,qBAAqB;IAI1D,aAAa,CAAC,WAAW,EAAE,gBAAgB;IAI3C,iBAAiB,CAAC,eAAe,EAAE,oBAAoB;IAcvD,eAAe,CAAC,YAAY,EAAE,iBAAiB;IAIzC,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAQtC,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE;IAIhC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS;IAIlD,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAMrD,IAAI;CAYlB"}
|
package/dist/sequence/manager.js
CHANGED
|
@@ -10,7 +10,7 @@ import { Cron } from './cron.js';
|
|
|
10
10
|
import { Devices } from './devices.js';
|
|
11
11
|
import { Guards } from './guards.js';
|
|
12
12
|
import { AuthCodeHandler } from './handlers/authcode.js';
|
|
13
|
-
import { AuthCodePkceHandler, DevicesHandler, MnemonicHandler, OtpHandler, PasskeysHandler, } from './handlers/index.js';
|
|
13
|
+
import { AuthCodePkceHandler, DevicesHandler, IdTokenHandler, MnemonicHandler, OtpHandler, PasskeysHandler, } from './handlers/index.js';
|
|
14
14
|
import { RecoveryHandler } from './handlers/recovery.js';
|
|
15
15
|
import { Logger } from './logger.js';
|
|
16
16
|
import { Messages } from './messages.js';
|
|
@@ -93,10 +93,12 @@ export const ManagerOptionsDefaults = {
|
|
|
93
93
|
google: {
|
|
94
94
|
enabled: false,
|
|
95
95
|
clientId: '',
|
|
96
|
+
authMethod: 'authcode-pkce',
|
|
96
97
|
},
|
|
97
98
|
apple: {
|
|
98
99
|
enabled: false,
|
|
99
100
|
clientId: '',
|
|
101
|
+
authMethod: 'authcode',
|
|
100
102
|
},
|
|
101
103
|
},
|
|
102
104
|
};
|
|
@@ -393,16 +395,27 @@ export class Manager {
|
|
|
393
395
|
shared.handlers.set(Kinds.LoginEmailOtp, this.otpHandler);
|
|
394
396
|
}
|
|
395
397
|
if (ops.identity.google?.enabled) {
|
|
396
|
-
|
|
398
|
+
if (ops.identity.google.authMethod === 'id-token') {
|
|
399
|
+
shared.handlers.set(Kinds.LoginGoogle, new IdTokenHandler('google-id-token', 'https://accounts.google.com', ops.identity.google.clientId, identityInstrument, modules.signatures, shared.databases.authKeys, shared.env));
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
shared.handlers.set(Kinds.LoginGoogle, new AuthCodePkceHandler('google-pkce', 'https://accounts.google.com', 'https://accounts.google.com/o/oauth2/v2/auth', ops.identity.google.clientId, identityInstrument, modules.signatures, shared.databases.authCommitments, shared.databases.authKeys, shared.env));
|
|
403
|
+
}
|
|
397
404
|
}
|
|
398
405
|
if (ops.identity.apple?.enabled) {
|
|
399
|
-
|
|
406
|
+
if (ops.identity.apple.authMethod === 'id-token') {
|
|
407
|
+
shared.handlers.set(Kinds.LoginApple, new IdTokenHandler('apple-id-token', 'https://appleid.apple.com', ops.identity.apple.clientId, identityInstrument, modules.signatures, shared.databases.authKeys, shared.env));
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
shared.handlers.set(Kinds.LoginApple, new AuthCodeHandler('apple', 'https://appleid.apple.com', 'https://appleid.apple.com/auth/authorize', ops.identity.apple.clientId, identityInstrument, modules.signatures, shared.databases.authCommitments, shared.databases.authKeys, shared.env));
|
|
411
|
+
}
|
|
400
412
|
}
|
|
401
413
|
if (ops.identity.customProviders?.length) {
|
|
402
414
|
for (const provider of ops.identity.customProviders) {
|
|
403
415
|
switch (provider.authMethod) {
|
|
404
416
|
case 'id-token':
|
|
405
|
-
|
|
417
|
+
shared.handlers.set(provider.kind, new IdTokenHandler(provider.kind, provider.issuer, provider.clientId, identityInstrument, modules.signatures, shared.databases.authKeys, shared.env));
|
|
418
|
+
break;
|
|
406
419
|
case 'authcode':
|
|
407
420
|
shared.handlers.set(provider.kind, new AuthCodeHandler(provider.kind, provider.issuer, provider.oauthUrl, provider.clientId, identityInstrument, modules.signatures, shared.databases.authCommitments, shared.databases.authKeys, shared.env));
|
|
408
421
|
break;
|
|
@@ -429,6 +442,17 @@ export class Manager {
|
|
|
429
442
|
registerOtpUI(onPromptOtp) {
|
|
430
443
|
return this.otpHandler?.registerUI(onPromptOtp) || (() => { });
|
|
431
444
|
}
|
|
445
|
+
registerIdTokenUI(onPromptIdToken) {
|
|
446
|
+
const unregisters = [];
|
|
447
|
+
this.shared.handlers.forEach((handler) => {
|
|
448
|
+
if (handler instanceof IdTokenHandler) {
|
|
449
|
+
unregisters.push(handler.registerUI(onPromptIdToken));
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
return () => {
|
|
453
|
+
unregisters.forEach((unregister) => unregister());
|
|
454
|
+
};
|
|
455
|
+
}
|
|
432
456
|
registerGuardUI(onPromptCode) {
|
|
433
457
|
return this.guardHandler?.registerUI(onPromptCode) || (() => { });
|
|
434
458
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/sequence/sessions.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EACL,WAAW,EACX,MAAM,EAGN,SAAS,IAAI,iBAAiB,EAC9B,aAAa,EACd,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,OAAO,EAAoB,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/sequence/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Envelope } from '@0xsequence/wallet-core';
|
|
2
2
|
import { Config, GenericTree, Payload, SessionConfig, } from '@0xsequence/wallet-primitives';
|
|
3
3
|
import { Address, Bytes, Hash, Hex } from 'ox';
|
|
4
|
+
import { AuthCodeHandler } from './handlers/authcode.js';
|
|
4
5
|
import { AuthCodePkceHandler } from './handlers/authcode-pkce.js';
|
|
6
|
+
import { IdTokenHandler } from './handlers/idtoken.js';
|
|
5
7
|
import { IdentityHandler, identityTypeToHex } from './handlers/identity.js';
|
|
6
8
|
import { ManagerOptionsDefaults } from './manager.js';
|
|
7
9
|
import { Kinds } from './types/index.js';
|
|
@@ -166,7 +168,9 @@ export class Sessions {
|
|
|
166
168
|
let audienceHash = '0x';
|
|
167
169
|
if (handler instanceof IdentityHandler) {
|
|
168
170
|
identityType = handler.identityType;
|
|
169
|
-
if (handler instanceof
|
|
171
|
+
if (handler instanceof AuthCodeHandler ||
|
|
172
|
+
handler instanceof AuthCodePkceHandler ||
|
|
173
|
+
handler instanceof IdTokenHandler) {
|
|
170
174
|
issuerHash = Hash.keccak256(Hex.fromString(handler.issuer));
|
|
171
175
|
audienceHash = Hash.keccak256(Hex.fromString(handler.audience));
|
|
172
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/sequence/signers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAS,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAEpF;
|
|
1
|
+
{"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/sequence/signers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAS,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAEvF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,sBAAsB,CAEpF;AAwBD,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IA6DzG,YAAY,CAChB,MAAM,EAAE,OAAO,CAAC,OAAO,EACvB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;KAAE,CAAC,EAAE,GAC9E,OAAO,CAAC,cAAc,EAAE,CAAC;CAoB7B"}
|
package/dist/sequence/signers.js
CHANGED
|
@@ -8,6 +8,10 @@ function toKnownKind(kind) {
|
|
|
8
8
|
if (kind.startsWith('custom-')) {
|
|
9
9
|
return kind;
|
|
10
10
|
}
|
|
11
|
+
if (kind === 'login-google-pkce') {
|
|
12
|
+
// Normalize legacy Google PKCE witnesses while the canonical signer kind is `login-google`.
|
|
13
|
+
return Kinds.LoginGoogle;
|
|
14
|
+
}
|
|
11
15
|
if (Object.values(Kinds).includes(kind)) {
|
|
12
16
|
return kind;
|
|
13
17
|
}
|
|
@@ -4,7 +4,7 @@ export declare const Kinds: {
|
|
|
4
4
|
readonly LoginPasskey: "login-passkey";
|
|
5
5
|
readonly LoginMnemonic: "login-mnemonic";
|
|
6
6
|
readonly LoginEmailOtp: "login-email-otp";
|
|
7
|
-
readonly
|
|
7
|
+
readonly LoginGoogle: "login-google";
|
|
8
8
|
readonly LoginApple: "login-apple";
|
|
9
9
|
readonly Recovery: "recovery-extension";
|
|
10
10
|
readonly Guard: "guard-extension";
|
|
@@ -3,7 +3,7 @@ export const Kinds = {
|
|
|
3
3
|
LoginPasskey: 'login-passkey',
|
|
4
4
|
LoginMnemonic: 'login-mnemonic', // Todo: do not name it login-mnemonic, just mnemonic
|
|
5
5
|
LoginEmailOtp: 'login-email-otp',
|
|
6
|
-
|
|
6
|
+
LoginGoogle: 'login-google',
|
|
7
7
|
LoginApple: 'login-apple',
|
|
8
8
|
Recovery: 'recovery-extension',
|
|
9
9
|
Guard: 'guard-extension',
|
|
@@ -31,7 +31,7 @@ export interface Wallet {
|
|
|
31
31
|
device: Address.Address;
|
|
32
32
|
/**
|
|
33
33
|
* A string identifier for the authentication method used for this session.
|
|
34
|
-
* Examples: 'login-mnemonic', 'login-passkey', 'login-google
|
|
34
|
+
* Examples: 'login-mnemonic', 'login-passkey', 'login-google'.
|
|
35
35
|
* @property
|
|
36
36
|
*/
|
|
37
37
|
loginType: string;
|
|
@@ -46,6 +46,10 @@ export type EmailOtpSignupArgs = CommonSignupArgs & {
|
|
|
46
46
|
kind: 'email-otp';
|
|
47
47
|
email: string;
|
|
48
48
|
};
|
|
49
|
+
export type IdTokenSignupArgs = CommonSignupArgs & {
|
|
50
|
+
kind: 'google-id-token' | 'apple-id-token' | `custom-${string}`;
|
|
51
|
+
idToken: string;
|
|
52
|
+
};
|
|
49
53
|
export type CompleteRedirectArgs = CommonSignupArgs & {
|
|
50
54
|
state: string;
|
|
51
55
|
code: string;
|
|
@@ -57,7 +61,7 @@ export type AuthCodeSignupArgs = CommonSignupArgs & {
|
|
|
57
61
|
target: string;
|
|
58
62
|
isRedirect: boolean;
|
|
59
63
|
};
|
|
60
|
-
export type SignupArgs = PasskeySignupArgs | MnemonicSignupArgs | EmailOtpSignupArgs | AuthCodeSignupArgs;
|
|
64
|
+
export type SignupArgs = PasskeySignupArgs | MnemonicSignupArgs | EmailOtpSignupArgs | IdTokenSignupArgs | AuthCodeSignupArgs;
|
|
61
65
|
export type LoginToWalletArgs = {
|
|
62
66
|
wallet: Address.Address;
|
|
63
67
|
};
|
|
@@ -163,6 +167,7 @@ export interface WalletsInterface {
|
|
|
163
167
|
* - `kind: 'mnemonic'`: Uses a mnemonic phrase as the login credential.
|
|
164
168
|
* - `kind: 'passkey'`: Prompts the user to create a WebAuthn passkey.
|
|
165
169
|
* - `kind: 'email-otp'`: Initiates an OTP flow to the user's email.
|
|
170
|
+
* - `kind: 'google-id-token' | 'apple-id-token'`: Completes an OIDC ID token flow when the provider is configured with `authMethod: 'id-token'`.
|
|
166
171
|
* - `kind: 'google-pkce' | 'apple'`: Completes an OAuth redirect flow.
|
|
167
172
|
* Common options like `noGuard` or `noRecovery` can customize the wallet's security features.
|
|
168
173
|
* @returns A promise that resolves to the address of the newly created wallet, or `undefined` if the sign-up was aborted.
|
|
@@ -326,6 +331,7 @@ export declare function isLoginToWalletArgs(args: LoginArgs): args is LoginToWal
|
|
|
326
331
|
export declare function isLoginToMnemonicArgs(args: LoginArgs): args is LoginToMnemonicArgs;
|
|
327
332
|
export declare function isLoginToPasskeyArgs(args: LoginArgs): args is LoginToPasskeyArgs;
|
|
328
333
|
export declare function isAuthCodeArgs(args: SignupArgs): args is AuthCodeSignupArgs;
|
|
334
|
+
export declare function isIdTokenArgs(args: SignupArgs): args is IdTokenSignupArgs;
|
|
329
335
|
declare function fromConfig(config: Config.Config): {
|
|
330
336
|
loginTopology: Config.Topology;
|
|
331
337
|
devicesTopology: Config.Topology;
|