@turnkey/sdk-browser 1.8.0 → 1.10.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/CHANGELOG.md +54 -0
- package/README.md +82 -14
- package/dist/__generated__/sdk-client-base.d.ts +76 -0
- package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
- package/dist/__generated__/sdk-client-base.js +1027 -52
- package/dist/__generated__/sdk-client-base.js.map +1 -1
- package/dist/__generated__/sdk-client-base.mjs +1027 -52
- package/dist/__generated__/sdk-client-base.mjs.map +1 -1
- package/dist/__generated__/version.d.ts +1 -1
- package/dist/__generated__/version.d.ts.map +1 -1
- package/dist/__generated__/version.js +1 -1
- package/dist/__generated__/version.mjs +1 -1
- package/dist/__inputs__/public_api.types.d.ts +7 -7
- package/dist/__inputs__/public_api.types.d.ts.map +1 -1
- package/dist/__types__/base.d.ts +18 -0
- package/dist/__types__/base.d.ts.map +1 -1
- package/dist/__types__/base.js +9 -0
- package/dist/__types__/base.js.map +1 -1
- package/dist/__types__/base.mjs +10 -1
- package/dist/__types__/base.mjs.map +1 -1
- package/dist/index.d.ts +9 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -1
- package/dist/index.mjs.map +1 -1
- package/dist/models.d.ts +45 -6
- package/dist/models.d.ts.map +1 -1
- package/dist/sdk-client.d.ts +30 -5
- package/dist/sdk-client.d.ts.map +1 -1
- package/dist/sdk-client.js +91 -44
- package/dist/sdk-client.js.map +1 -1
- package/dist/sdk-client.mjs +93 -47
- package/dist/sdk-client.mjs.map +1 -1
- package/dist/storage.d.ts +12 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +43 -0
- package/dist/storage.js.map +1 -1
- package/dist/storage.mjs +43 -1
- package/dist/storage.mjs.map +1 -1
- package/package.json +6 -5
package/dist/models.d.ts
CHANGED
|
@@ -1,16 +1,55 @@
|
|
|
1
|
+
import type { AuthClient } from "./__types__/base";
|
|
2
|
+
/**
|
|
3
|
+
* This interface defines the structure of user data that will be stored in local storage
|
|
4
|
+
* when using one of the login methods.
|
|
5
|
+
*/
|
|
1
6
|
export interface User {
|
|
2
7
|
userId: string;
|
|
3
8
|
username: string;
|
|
4
|
-
organization:
|
|
5
|
-
|
|
9
|
+
organization: {
|
|
10
|
+
organizationId: string;
|
|
11
|
+
organizationName: string;
|
|
12
|
+
};
|
|
13
|
+
session: {
|
|
14
|
+
read?: ReadOnlySession;
|
|
15
|
+
write?: ReadWriteSession;
|
|
16
|
+
authClient: AuthClient;
|
|
17
|
+
} | undefined;
|
|
6
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Represents an expiring read-only session with a token for read-only requests.
|
|
21
|
+
*/
|
|
7
22
|
export interface ReadOnlySession {
|
|
8
|
-
|
|
9
|
-
|
|
23
|
+
/**
|
|
24
|
+
* This token is generated by the `createReadOnlySession` method in the `TurnkeySDKClientBase` class.
|
|
25
|
+
* It is used in the `X-Session` header for read-only requests to Turnkey's API.
|
|
26
|
+
*
|
|
27
|
+
* @see {@link TurnkeySDKClientBase#createReadOnlySession}
|
|
28
|
+
*/
|
|
29
|
+
token: string;
|
|
30
|
+
/**
|
|
31
|
+
* The expiry time of the token in seconds since the Unix epoch.
|
|
32
|
+
* This indicates when the token will no longer be valid.
|
|
33
|
+
*/
|
|
34
|
+
expiry: number;
|
|
10
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Represents an expiring read-write session with a credential bundle for read-write requests.
|
|
38
|
+
*/
|
|
11
39
|
export interface ReadWriteSession {
|
|
12
|
-
|
|
13
|
-
|
|
40
|
+
/**
|
|
41
|
+
* This bundle is generated by the `createReadWriteSession` and `createApiKeys` methods in the `TurnkeySDKClientBase` and `TurnkeyPasskeyClient` classes.
|
|
42
|
+
* It is injected into the iFrame client to enable read and write operations.
|
|
43
|
+
*
|
|
44
|
+
* @see {@link TurnkeySDKClientBase#createReadWriteSession}
|
|
45
|
+
* @see {@link TurnkeyPasskeyClient#createApiKeys}
|
|
46
|
+
*/
|
|
47
|
+
credentialBundle: string;
|
|
48
|
+
/**
|
|
49
|
+
* The expiry time of the credential bundle in seconds since the Unix epoch.
|
|
50
|
+
* This indicates when the credential bundle will no longer be valid.
|
|
51
|
+
*/
|
|
52
|
+
expiry: number;
|
|
14
53
|
}
|
|
15
54
|
export interface SubOrganization {
|
|
16
55
|
organizationId: string;
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,IAAI;IAEnB,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE;QAEZ,cAAc,EAAE,MAAM,CAAC;QAGvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAGF,OAAO,EACH;QAEE,IAAI,CAAC,EAAE,eAAe,CAAC;QAGvB,KAAK,CAAC,EAAE,gBAAgB,CAAC;QAGzB,UAAU,EAAE,UAAU,CAAC;KACxB,GACD,SAAS,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,CACR,6BAA6B,GAC7B,kCAAkC,GAClC,6BAA6B,GAC7B,6BAA6B,GAC7B,gCAAgC,CACnC,EAAE,CAAC;KACL,CAAC;CACH,CAAC"}
|
package/dist/sdk-client.d.ts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
import { KeyFormat } from "@turnkey/iframe-stamper";
|
|
2
|
-
import
|
|
2
|
+
import { type WalletInterface } from "@turnkey/wallet-stamper";
|
|
3
|
+
import { type TurnkeySDKClientConfig, type TurnkeySDKBrowserConfig, type IframeClientParams, type TurnkeyWalletClientConfig, AuthClient } from "./__types__/base";
|
|
3
4
|
import { TurnkeySDKClientBase } from "./__generated__/sdk-client-base";
|
|
4
5
|
import type * as SdkApiTypes from "./__generated__/sdk_api_types";
|
|
5
6
|
import type { User, SubOrganization, ReadWriteSession, Passkey } from "./models";
|
|
6
7
|
export declare class TurnkeyBrowserSDK {
|
|
7
8
|
config: TurnkeySDKBrowserConfig;
|
|
8
9
|
constructor(config: TurnkeySDKBrowserConfig);
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Creates a passkey client. The parameters are overrides passed to the underlying Turnkey `WebauthnStamper`
|
|
12
|
+
* @param rpId Relying Party ID (defaults to window.location.hostname if not provided)
|
|
13
|
+
* @param timeout optional timeout (defaults to 5mins)
|
|
14
|
+
* @param userVerification optional UV flag (defaults to "preferred")
|
|
15
|
+
* @param allowCredentials optional allowCredentials array (defaults to empty array)
|
|
16
|
+
* @returns new TurnkeyPasskeyClient
|
|
17
|
+
*/
|
|
18
|
+
passkeyClient: (rpId?: string, timeout?: number, userVerification?: UserVerificationRequirement, allowCredentials?: PublicKeyCredentialDescriptor[]) => TurnkeyPasskeyClient;
|
|
10
19
|
iframeClient: (params: IframeClientParams) => Promise<TurnkeyIframeClient>;
|
|
20
|
+
walletClient: (wallet: WalletInterface) => TurnkeyWalletClient;
|
|
11
21
|
serverSign: <TResponseType>(methodName: string, params: any[], serverSignUrl?: string) => Promise<TResponseType>;
|
|
12
22
|
/**
|
|
13
23
|
* If there is a valid, current user session, this will return a read-enabled TurnkeyBrowserClient that can make read requests to Turnkey without additional authentication. This is powered by a session header resulting from a prior successful `login` call.
|
|
@@ -22,6 +32,8 @@ export declare class TurnkeyBrowserSDK {
|
|
|
22
32
|
*/
|
|
23
33
|
getReadWriteSession: () => Promise<ReadWriteSession | undefined>;
|
|
24
34
|
/**
|
|
35
|
+
* @deprecated This method is deprecated and will be removed in future versions.
|
|
36
|
+
* It has been replaced by the `getReadWriteSession` method.
|
|
25
37
|
* Fetches an auth bundle stored in local storage.
|
|
26
38
|
*
|
|
27
39
|
* @returns {Promise<string | undefined>}
|
|
@@ -47,12 +59,15 @@ export declare class TurnkeyBrowserSDK {
|
|
|
47
59
|
logoutUser: () => Promise<boolean>;
|
|
48
60
|
}
|
|
49
61
|
export declare class TurnkeyBrowserClient extends TurnkeySDKClientBase {
|
|
50
|
-
|
|
62
|
+
authClient?: AuthClient | undefined;
|
|
63
|
+
constructor(config: TurnkeySDKClientConfig, authClient?: AuthClient);
|
|
51
64
|
login: (config?: {
|
|
52
65
|
organizationId?: string;
|
|
53
66
|
}) => Promise<SdkApiTypes.TCreateReadOnlySessionResponse>;
|
|
54
67
|
/**
|
|
55
|
-
* Creates a read-write session. This method infers the current user's organization ID and target userId.
|
|
68
|
+
* Creates a read-write session. This method infers the current user's organization ID and target userId.
|
|
69
|
+
* To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be
|
|
70
|
+
* injected into an iframeStamper to create a session that enables both read and write requests.
|
|
56
71
|
*
|
|
57
72
|
* @param email
|
|
58
73
|
* @param targetEmbeddedKey
|
|
@@ -71,7 +86,11 @@ export declare class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
71
86
|
*/
|
|
72
87
|
createUserPasskey: (config?: Record<any, any>) => Promise<Passkey>;
|
|
73
88
|
/**
|
|
74
|
-
* Uses passkey authentication to create a read-write session, via an embedded API key,
|
|
89
|
+
* Uses passkey authentication to create a read-write session, via an embedded API key,
|
|
90
|
+
* and stores + returns the resulting auth bundle that contains the encrypted API key.
|
|
91
|
+
* This auth bundle (also referred to as a credential bundle) can be injected into an `iframeStamper`,
|
|
92
|
+
* resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method
|
|
93
|
+
* assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
|
|
75
94
|
*
|
|
76
95
|
* @param userId
|
|
77
96
|
* @param targetEmbeddedKey
|
|
@@ -91,4 +110,10 @@ export declare class TurnkeyIframeClient extends TurnkeyBrowserClient {
|
|
|
91
110
|
extractWalletEncryptedBundle: () => Promise<string>;
|
|
92
111
|
extractKeyEncryptedBundle: () => Promise<string>;
|
|
93
112
|
}
|
|
113
|
+
export declare class TurnkeyWalletClient extends TurnkeyBrowserClient {
|
|
114
|
+
private wallet;
|
|
115
|
+
constructor(config: TurnkeyWalletClientConfig);
|
|
116
|
+
getPublicKey(): Promise<string>;
|
|
117
|
+
getWalletInterface(): WalletInterface;
|
|
118
|
+
}
|
|
94
119
|
//# sourceMappingURL=sdk-client.d.ts.map
|
package/dist/sdk-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk-client.d.ts","sourceRoot":"","sources":["../src/sdk-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK9E,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAE9B,UAAU,EACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAC;AAelB,qBAAa,iBAAiB;IAC5B,MAAM,EAAE,uBAAuB,CAAC;gBAEpB,MAAM,EAAE,uBAAuB;IAI3C;;;;;;;OAOG;IACH,aAAa,UACJ,MAAM,YACH,MAAM,qBACG,2BAA2B,qBAC3B,6BAA6B,EAAE,KACjD,oBAAoB,CAsBrB;IAEF,YAAY,WACF,kBAAkB,KACzB,QAAQ,mBAAmB,CAAC,CAuB7B;IAEF,YAAY,WAAY,eAAe,KAAG,mBAAmB,CAO3D;IAEF,UAAU,8BACI,MAAM,UACV,GAAG,EAAE,kBACG,MAAM,4BAoCtB;IAEF;;;;OAIG;IACH,kBAAkB,QAAa,QAAQ,oBAAoB,GAAG,SAAS,CAAC,CAmBtE;IAEF;;;;OAIG;IACH,mBAAmB,QAAa,QAAQ,gBAAgB,GAAG,SAAS,CAAC,CAcnE;IAEF;;;;;;OAMG;IACH,aAAa,QAAa,QAAQ,MAAM,GAAG,SAAS,CAAC,CAEnD;IAEF;;;;OAIG;IACH,yBAAyB,QAAa,QACpC,eAAe,GAAG,SAAS,CAC5B,CAGC;IAEF;;;;OAIG;IACH,cAAc,QAAa,QAAQ,IAAI,GAAG,SAAS,CAAC,CAElD;IAEF;;;;OAIG;IACH,UAAU,QAAa,QAAQ,OAAO,CAAC,CAOrC;CACH;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;gBAExB,MAAM,EAAE,sBAAsB,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnE,KAAK,YAAmB;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,KAAG,QAAQ,YAAY,8BAA8B,CAAC,CAQrD;IAEF;;;;;;;;;OASG;IACH,yBAAyB,sBACJ,MAAM,sBACN,MAAM,WAChB,MAAM,KACd,QAAQ,YAAY,+BAA+B,CAAC,CAkBrD;CACH;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;IAC5D,IAAI,EAAE,MAAM,CAAC;gBAED,MAAM,EAAE,sBAAsB;IAK1C;;;;OAIG;IACH,iBAAiB,YACP,OAAO,GAAG,EAAE,GAAG,CAAC,KACvB,QAAQ,OAAO,CAAC,CA4DjB;IAEF;;;;;;;;;;;;OAYG;IACH,oBAAoB,WACV,MAAM,qBACK,MAAM,sBACN,MAAM,mBACR,MAAM,KACtB,QAAQ,gBAAgB,CAAC,CA+C1B;CACH;AAED,qBAAa,mBAAoB,SAAQ,oBAAoB;IAC3D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEnB,MAAM,EAAE,sBAAsB;IAK1C,sBAAsB,qBACF,MAAM,KACvB,QAAQ,OAAO,CAAC,CAGjB;IAEF,wBAAwB,qBACJ,MAAM,kBACR,MAAM,KACrB,QAAQ,OAAO,CAAC,CAMjB;IAEF,qBAAqB,qBACD,MAAM,kBACR,MAAM,cACV,SAAS,GAAG,SAAS,KAChC,QAAQ,OAAO,CAAC,CAOjB;IAEF,kBAAkB,WACR,MAAM,kBACE,MAAM,UACd,MAAM,KACb,QAAQ,OAAO,CAAC,CAGjB;IAEF,4BAA4B,QAAa,QAAQ,MAAM,CAAC,CAGtD;IAEF,yBAAyB,QAAa,QAAQ,MAAM,CAAC,CAGnD;CACH;AAED,qBAAa,mBAAoB,SAAQ,oBAAoB;IAC3D,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,yBAAyB;IAKvC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,kBAAkB,IAAI,eAAe;CAGtC"}
|
package/dist/sdk-client.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var webauthnStamper = require('@turnkey/webauthn-stamper');
|
|
4
4
|
var iframeStamper = require('@turnkey/iframe-stamper');
|
|
5
5
|
var http = require('@turnkey/http');
|
|
6
|
+
var walletStamper = require('@turnkey/wallet-stamper');
|
|
6
7
|
var version = require('./__generated__/version.js');
|
|
7
8
|
var window = require('./__polyfills__/window.js');
|
|
8
9
|
var base = require('./__types__/base.js');
|
|
@@ -13,13 +14,24 @@ var utils = require('./utils.js');
|
|
|
13
14
|
const DEFAULT_SESSION_EXPIRATION = "900"; // default to 15 minutes
|
|
14
15
|
class TurnkeyBrowserSDK {
|
|
15
16
|
constructor(config) {
|
|
16
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Creates a passkey client. The parameters are overrides passed to the underlying Turnkey `WebauthnStamper`
|
|
19
|
+
* @param rpId Relying Party ID (defaults to window.location.hostname if not provided)
|
|
20
|
+
* @param timeout optional timeout (defaults to 5mins)
|
|
21
|
+
* @param userVerification optional UV flag (defaults to "preferred")
|
|
22
|
+
* @param allowCredentials optional allowCredentials array (defaults to empty array)
|
|
23
|
+
* @returns new TurnkeyPasskeyClient
|
|
24
|
+
*/
|
|
25
|
+
this.passkeyClient = (rpId, timeout, userVerification, allowCredentials) => {
|
|
17
26
|
const targetRpId = rpId ?? this.config.rpId ?? window.location.hostname;
|
|
18
27
|
if (!targetRpId) {
|
|
19
28
|
throw new Error("Tried to initialize a passkey client with no rpId defined");
|
|
20
29
|
}
|
|
21
30
|
const webauthnStamper$1 = new webauthnStamper.WebauthnStamper({
|
|
22
31
|
rpId: targetRpId,
|
|
32
|
+
...(timeout !== undefined && { timeout }),
|
|
33
|
+
...(userVerification !== undefined && { userVerification }),
|
|
34
|
+
...(allowCredentials !== undefined && { allowCredentials }),
|
|
23
35
|
});
|
|
24
36
|
return new TurnkeyPasskeyClient({
|
|
25
37
|
stamper: webauthnStamper$1,
|
|
@@ -44,6 +56,14 @@ class TurnkeyBrowserSDK {
|
|
|
44
56
|
organizationId: this.config.defaultOrganizationId,
|
|
45
57
|
});
|
|
46
58
|
};
|
|
59
|
+
this.walletClient = (wallet) => {
|
|
60
|
+
return new TurnkeyWalletClient({
|
|
61
|
+
stamper: new walletStamper.WalletStamper(wallet),
|
|
62
|
+
wallet,
|
|
63
|
+
apiBaseUrl: this.config.apiBaseUrl,
|
|
64
|
+
organizationId: this.config.defaultOrganizationId,
|
|
65
|
+
});
|
|
66
|
+
};
|
|
47
67
|
this.serverSign = async (methodName, params, serverSignUrl) => {
|
|
48
68
|
const targetServerSignUrl = serverSignUrl ?? this.config.serverSignUrl;
|
|
49
69
|
if (!targetServerSignUrl) {
|
|
@@ -82,12 +102,12 @@ class TurnkeyBrowserSDK {
|
|
|
82
102
|
*/
|
|
83
103
|
this.currentUserSession = async () => {
|
|
84
104
|
const currentUser = await this.getCurrentUser();
|
|
85
|
-
if (!currentUser?.
|
|
105
|
+
if (!currentUser?.session?.read) {
|
|
86
106
|
return;
|
|
87
107
|
}
|
|
88
|
-
if (currentUser?.
|
|
108
|
+
if (currentUser?.session?.read?.expiry > Date.now()) {
|
|
89
109
|
return new TurnkeyBrowserClient({
|
|
90
|
-
readOnlySession: currentUser?.
|
|
110
|
+
readOnlySession: currentUser?.session?.read?.token,
|
|
91
111
|
apiBaseUrl: this.config.apiBaseUrl,
|
|
92
112
|
organizationId: currentUser?.organization?.organizationId ??
|
|
93
113
|
this.config.defaultOrganizationId,
|
|
@@ -104,10 +124,10 @@ class TurnkeyBrowserSDK {
|
|
|
104
124
|
* @returns {Promise<ReadWriteSession | undefined>}
|
|
105
125
|
*/
|
|
106
126
|
this.getReadWriteSession = async () => {
|
|
107
|
-
const
|
|
108
|
-
if (
|
|
109
|
-
if (
|
|
110
|
-
return
|
|
127
|
+
const currentUser = await storage.getStorageValue(storage.StorageKeys.UserSession);
|
|
128
|
+
if (currentUser?.session?.write) {
|
|
129
|
+
if (currentUser.session.write.expiry > Date.now()) {
|
|
130
|
+
return currentUser.session.write;
|
|
111
131
|
}
|
|
112
132
|
else {
|
|
113
133
|
await storage.removeStorageValue(storage.StorageKeys.ReadWriteSession);
|
|
@@ -116,12 +136,14 @@ class TurnkeyBrowserSDK {
|
|
|
116
136
|
return;
|
|
117
137
|
};
|
|
118
138
|
/**
|
|
139
|
+
* @deprecated This method is deprecated and will be removed in future versions.
|
|
140
|
+
* It has been replaced by the `getReadWriteSession` method.
|
|
119
141
|
* Fetches an auth bundle stored in local storage.
|
|
120
142
|
*
|
|
121
143
|
* @returns {Promise<string | undefined>}
|
|
122
144
|
*/
|
|
123
145
|
this.getAuthBundle = async () => {
|
|
124
|
-
return await storage.getStorageValue(storage.StorageKeys.AuthBundle);
|
|
146
|
+
return await storage.getStorageValue(storage.StorageKeys.AuthBundle);
|
|
125
147
|
};
|
|
126
148
|
/**
|
|
127
149
|
* Fetches the current user's organization details.
|
|
@@ -138,7 +160,7 @@ class TurnkeyBrowserSDK {
|
|
|
138
160
|
* @returns {Promise<User | undefined>}
|
|
139
161
|
*/
|
|
140
162
|
this.getCurrentUser = async () => {
|
|
141
|
-
return await storage.getStorageValue(storage.StorageKeys.
|
|
163
|
+
return await storage.getStorageValue(storage.StorageKeys.UserSession);
|
|
142
164
|
};
|
|
143
165
|
/**
|
|
144
166
|
* Clears out all data pertaining to a user session.
|
|
@@ -148,6 +170,7 @@ class TurnkeyBrowserSDK {
|
|
|
148
170
|
this.logoutUser = async () => {
|
|
149
171
|
await storage.removeStorageValue(storage.StorageKeys.AuthBundle); // DEPRECATED
|
|
150
172
|
await storage.removeStorageValue(storage.StorageKeys.CurrentUser);
|
|
173
|
+
await storage.removeStorageValue(storage.StorageKeys.UserSession);
|
|
151
174
|
await storage.removeStorageValue(storage.StorageKeys.ReadWriteSession);
|
|
152
175
|
return true;
|
|
153
176
|
};
|
|
@@ -155,28 +178,17 @@ class TurnkeyBrowserSDK {
|
|
|
155
178
|
}
|
|
156
179
|
}
|
|
157
180
|
class TurnkeyBrowserClient extends sdkClientBase.TurnkeySDKClientBase {
|
|
158
|
-
constructor(config) {
|
|
181
|
+
constructor(config, authClient) {
|
|
159
182
|
super(config);
|
|
160
183
|
this.login = async (config) => {
|
|
161
184
|
const readOnlySessionResult = await this.createReadOnlySession(config || {});
|
|
162
|
-
|
|
163
|
-
organizationId: readOnlySessionResult.organizationId,
|
|
164
|
-
organizationName: readOnlySessionResult.organizationName,
|
|
165
|
-
};
|
|
166
|
-
const currentUser = {
|
|
167
|
-
userId: readOnlySessionResult.userId,
|
|
168
|
-
username: readOnlySessionResult.username,
|
|
169
|
-
organization: org,
|
|
170
|
-
readOnlySession: {
|
|
171
|
-
session: readOnlySessionResult.session,
|
|
172
|
-
sessionExpiry: Number(readOnlySessionResult.sessionExpiry),
|
|
173
|
-
},
|
|
174
|
-
};
|
|
175
|
-
await storage.setStorageValue(storage.StorageKeys.CurrentUser, currentUser);
|
|
185
|
+
await storage.saveSession(readOnlySessionResult, this.authClient);
|
|
176
186
|
return readOnlySessionResult;
|
|
177
187
|
};
|
|
178
188
|
/**
|
|
179
|
-
* Creates a read-write session. This method infers the current user's organization ID and target userId.
|
|
189
|
+
* Creates a read-write session. This method infers the current user's organization ID and target userId.
|
|
190
|
+
* To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be
|
|
191
|
+
* injected into an iframeStamper to create a session that enables both read and write requests.
|
|
180
192
|
*
|
|
181
193
|
* @param email
|
|
182
194
|
* @param targetEmbeddedKey
|
|
@@ -189,18 +201,22 @@ class TurnkeyBrowserClient extends sdkClientBase.TurnkeySDKClientBase {
|
|
|
189
201
|
expirationSeconds,
|
|
190
202
|
userId: userId,
|
|
191
203
|
});
|
|
192
|
-
//
|
|
193
|
-
|
|
194
|
-
|
|
204
|
+
// Ensure session and sessionExpiry are included in the object
|
|
205
|
+
const readWriteSessionResultWithSession = {
|
|
206
|
+
...readWriteSessionResult,
|
|
207
|
+
session: readWriteSessionResult.credentialBundle,
|
|
195
208
|
sessionExpiry: Date.now() + Number(expirationSeconds) * 1000,
|
|
196
|
-
}
|
|
197
|
-
|
|
209
|
+
};
|
|
210
|
+
// store auth bundle in local storage
|
|
211
|
+
await storage.saveSession(readWriteSessionResultWithSession, this.authClient);
|
|
212
|
+
return readWriteSessionResultWithSession;
|
|
198
213
|
};
|
|
214
|
+
this.authClient = authClient;
|
|
199
215
|
}
|
|
200
216
|
}
|
|
201
217
|
class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
202
218
|
constructor(config) {
|
|
203
|
-
super(config);
|
|
219
|
+
super(config, base.AuthClient.Passkey);
|
|
204
220
|
/**
|
|
205
221
|
* Create a passkey for an end-user, taking care of various lower-level details.
|
|
206
222
|
*
|
|
@@ -231,6 +247,10 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
231
247
|
type: "public-key",
|
|
232
248
|
alg: -7,
|
|
233
249
|
},
|
|
250
|
+
{
|
|
251
|
+
type: "public-key",
|
|
252
|
+
alg: -257,
|
|
253
|
+
},
|
|
234
254
|
],
|
|
235
255
|
user: {
|
|
236
256
|
id: config.publicKey?.user?.id ?? authenticatorUserId,
|
|
@@ -257,7 +277,11 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
257
277
|
};
|
|
258
278
|
};
|
|
259
279
|
/**
|
|
260
|
-
* Uses passkey authentication to create a read-write session, via an embedded API key,
|
|
280
|
+
* Uses passkey authentication to create a read-write session, via an embedded API key,
|
|
281
|
+
* and stores + returns the resulting auth bundle that contains the encrypted API key.
|
|
282
|
+
* This auth bundle (also referred to as a credential bundle) can be injected into an `iframeStamper`,
|
|
283
|
+
* resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method
|
|
284
|
+
* assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
|
|
261
285
|
*
|
|
262
286
|
* @param userId
|
|
263
287
|
* @param targetEmbeddedKey
|
|
@@ -266,12 +290,16 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
266
290
|
* @returns {Promise<ReadWriteSession>}
|
|
267
291
|
*/
|
|
268
292
|
this.createPasskeySession = async (userId, targetEmbeddedKey, expirationSeconds = DEFAULT_SESSION_EXPIRATION, organizationId) => {
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
293
|
+
const user = await storage.getStorageValue(storage.StorageKeys.UserSession);
|
|
294
|
+
organizationId = organizationId ?? user?.organization.organizationId;
|
|
295
|
+
if (!organizationId) {
|
|
296
|
+
throw new Error("Error creating passkey session: Organization ID is required");
|
|
297
|
+
}
|
|
298
|
+
userId = userId ?? user?.userId;
|
|
299
|
+
const { authBundle: credentialBundle, publicKey } = await utils.createEmbeddedAPIKey(targetEmbeddedKey);
|
|
272
300
|
// add API key to Turnkey User
|
|
273
301
|
await this.createApiKeys({
|
|
274
|
-
organizationId
|
|
302
|
+
organizationId,
|
|
275
303
|
userId,
|
|
276
304
|
apiKeys: [
|
|
277
305
|
{
|
|
@@ -282,20 +310,26 @@ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
|
|
|
282
310
|
},
|
|
283
311
|
],
|
|
284
312
|
});
|
|
285
|
-
const
|
|
286
|
-
|
|
287
|
-
|
|
313
|
+
const expiry = Date.now() + Number(expirationSeconds) * 1000;
|
|
314
|
+
await storage.saveSession({
|
|
315
|
+
organizationId,
|
|
316
|
+
organizationName: user?.organization.organizationName ?? "",
|
|
317
|
+
userId,
|
|
318
|
+
username: user?.username ?? "",
|
|
319
|
+
credentialBundle,
|
|
320
|
+
sessionExpiry: expiry,
|
|
321
|
+
}, this.authClient);
|
|
322
|
+
return {
|
|
323
|
+
credentialBundle,
|
|
324
|
+
expiry,
|
|
288
325
|
};
|
|
289
|
-
// store auth bundle in local storage
|
|
290
|
-
await storage.setStorageValue(storage.StorageKeys.ReadWriteSession, readWriteSession);
|
|
291
|
-
return readWriteSession;
|
|
292
326
|
};
|
|
293
327
|
this.rpId = config.stamper.rpId;
|
|
294
328
|
}
|
|
295
329
|
}
|
|
296
330
|
class TurnkeyIframeClient extends TurnkeyBrowserClient {
|
|
297
331
|
constructor(config) {
|
|
298
|
-
super(config);
|
|
332
|
+
super(config, base.AuthClient.Iframe);
|
|
299
333
|
this.injectCredentialBundle = async (credentialBundle) => {
|
|
300
334
|
const stamper = this.config.stamper;
|
|
301
335
|
return await stamper.injectCredentialBundle(credentialBundle);
|
|
@@ -323,9 +357,22 @@ class TurnkeyIframeClient extends TurnkeyBrowserClient {
|
|
|
323
357
|
this.iframePublicKey = config.stamper.iframePublicKey;
|
|
324
358
|
}
|
|
325
359
|
}
|
|
360
|
+
class TurnkeyWalletClient extends TurnkeyBrowserClient {
|
|
361
|
+
constructor(config) {
|
|
362
|
+
super(config, base.AuthClient.Wallet);
|
|
363
|
+
this.wallet = config.wallet;
|
|
364
|
+
}
|
|
365
|
+
async getPublicKey() {
|
|
366
|
+
return this.wallet.getPublicKey();
|
|
367
|
+
}
|
|
368
|
+
getWalletInterface() {
|
|
369
|
+
return this.wallet;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
326
372
|
|
|
327
373
|
exports.TurnkeyBrowserClient = TurnkeyBrowserClient;
|
|
328
374
|
exports.TurnkeyBrowserSDK = TurnkeyBrowserSDK;
|
|
329
375
|
exports.TurnkeyIframeClient = TurnkeyIframeClient;
|
|
330
376
|
exports.TurnkeyPasskeyClient = TurnkeyPasskeyClient;
|
|
377
|
+
exports.TurnkeyWalletClient = TurnkeyWalletClient;
|
|
331
378
|
//# sourceMappingURL=sdk-client.js.map
|
package/dist/sdk-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-client.js","sources":["../src/sdk-client.ts"],"sourcesContent":[null],"names":["WindowWrapper","webauthnStamper","WebauthnStamper","iframeStamper","IframeStamper","VERSION","TurnkeyRequestError","getStorageValue","StorageKeys","removeStorageValue","TurnkeySDKClientBase","setStorageValue","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation","createEmbeddedAPIKey"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk-client.js","sources":["../src/sdk-client.ts"],"sourcesContent":[null],"names":["WindowWrapper","webauthnStamper","WebauthnStamper","iframeStamper","IframeStamper","WalletStamper","VERSION","TurnkeyRequestError","getStorageValue","StorageKeys","removeStorageValue","TurnkeySDKClientBase","saveSession","AuthClient","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation","createEmbeddedAPIKey"],"mappings":"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"}
|