@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.
Files changed (41) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +82 -14
  3. package/dist/__generated__/sdk-client-base.d.ts +76 -0
  4. package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
  5. package/dist/__generated__/sdk-client-base.js +1027 -52
  6. package/dist/__generated__/sdk-client-base.js.map +1 -1
  7. package/dist/__generated__/sdk-client-base.mjs +1027 -52
  8. package/dist/__generated__/sdk-client-base.mjs.map +1 -1
  9. package/dist/__generated__/version.d.ts +1 -1
  10. package/dist/__generated__/version.d.ts.map +1 -1
  11. package/dist/__generated__/version.js +1 -1
  12. package/dist/__generated__/version.mjs +1 -1
  13. package/dist/__inputs__/public_api.types.d.ts +7 -7
  14. package/dist/__inputs__/public_api.types.d.ts.map +1 -1
  15. package/dist/__types__/base.d.ts +18 -0
  16. package/dist/__types__/base.d.ts.map +1 -1
  17. package/dist/__types__/base.js +9 -0
  18. package/dist/__types__/base.js.map +1 -1
  19. package/dist/__types__/base.mjs +10 -1
  20. package/dist/__types__/base.mjs.map +1 -1
  21. package/dist/index.d.ts +9 -14
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +2 -1
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/models.d.ts +45 -6
  28. package/dist/models.d.ts.map +1 -1
  29. package/dist/sdk-client.d.ts +30 -5
  30. package/dist/sdk-client.d.ts.map +1 -1
  31. package/dist/sdk-client.js +91 -44
  32. package/dist/sdk-client.js.map +1 -1
  33. package/dist/sdk-client.mjs +93 -47
  34. package/dist/sdk-client.mjs.map +1 -1
  35. package/dist/storage.d.ts +12 -0
  36. package/dist/storage.d.ts.map +1 -1
  37. package/dist/storage.js +43 -0
  38. package/dist/storage.js.map +1 -1
  39. package/dist/storage.mjs +43 -1
  40. package/dist/storage.mjs.map +1 -1
  41. 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: SubOrganization;
5
- readOnlySession?: ReadOnlySession;
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
- session: string;
9
- sessionExpiry: number;
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
- authBundle: string;
13
- sessionExpiry: number;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,eAAe,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;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"}
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"}
@@ -1,13 +1,23 @@
1
1
  import { KeyFormat } from "@turnkey/iframe-stamper";
2
- import type { TurnkeySDKClientConfig, TurnkeySDKBrowserConfig, IframeClientParams } from "./__types__/base";
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
- passkeyClient: (rpId?: string) => TurnkeyPasskeyClient;
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
- constructor(config: TurnkeySDKClientConfig);
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. To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be injected into an iframeStamper to create a session that enables both read and write requests.
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, and stores + returns the resulting auth bundle that contains the encrypted API key. This auth bundle (also referred to as a credential bundle) can be injected into an iframeStamper, resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
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
@@ -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;AAMnE,OAAO,KAAK,EAEV,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAI1B,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,aAAa,UAAW,MAAM,KAAG,oBAAoB,CAmBnD;IAEF,YAAY,WACF,kBAAkB,KACzB,QAAQ,mBAAmB,CAAC,CAuB7B;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,CAanE;IAEF;;;;OAIG;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,CAMrC;CACH;AAED,qBAAa,oBAAqB,SAAQ,oBAAoB;gBAChD,MAAM,EAAE,sBAAsB;IAI1C,KAAK,YAAmB;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,KAAG,QAAQ,YAAY,8BAA8B,CAAC,CAsBrD;IAEF;;;;;;;OAOG;IACH,yBAAyB,sBACJ,MAAM,sBACN,MAAM,WAChB,MAAM,KACd,QAAQ,YAAY,+BAA+B,CAAC,CAcrD;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,CAwDjB;IAEF;;;;;;;;OAQG;IACH,oBAAoB,WACV,MAAM,qBACK,MAAM,sBACN,MAAM,mBACR,MAAM,KACtB,QAAQ,gBAAgB,CAAC,CA+B1B;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"}
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"}
@@ -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
- this.passkeyClient = (rpId) => {
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?.readOnlySession) {
105
+ if (!currentUser?.session?.read) {
86
106
  return;
87
107
  }
88
- if (currentUser?.readOnlySession?.sessionExpiry > Date.now()) {
108
+ if (currentUser?.session?.read?.expiry > Date.now()) {
89
109
  return new TurnkeyBrowserClient({
90
- readOnlySession: currentUser?.readOnlySession?.session,
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 readWriteSession = await storage.getStorageValue(storage.StorageKeys.ReadWriteSession);
108
- if (readWriteSession) {
109
- if (readWriteSession.sessionExpiry > Date.now()) {
110
- return readWriteSession;
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); // DEPRECATED
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.CurrentUser);
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
- const org = {
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. To be used in conjunction with an `iframeStamper`: the resulting session's credential bundle can be injected into an iframeStamper to create a session that enables both read and write requests.
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
- // store auth bundle in local storage
193
- await storage.setStorageValue(storage.StorageKeys.ReadWriteSession, {
194
- authBundle: readWriteSessionResult.credentialBundle,
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
- return readWriteSessionResult;
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, and stores + returns the resulting auth bundle that contains the encrypted API key. This auth bundle (also referred to as a credential bundle) can be injected into an iframeStamper, resulting in a touch-free authenticator. Unlike `loginWithReadWriteSession`, this method assumes the end-user's organization ID (i.e. the sub-organization ID) is already known.
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 localStorageUser = await storage.getStorageValue(storage.StorageKeys.CurrentUser);
270
- userId = userId ?? localStorageUser?.userId;
271
- const { authBundle, publicKey } = await utils.createEmbeddedAPIKey(targetEmbeddedKey);
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: 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 readWriteSession = {
286
- authBundle: authBundle,
287
- sessionExpiry: Date.now() + Number(expirationSeconds) * 1000,
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
@@ -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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"}