@turnkey/sdk-browser 0.0.1 → 0.2.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 (49) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
  3. package/dist/__generated__/sdk-client-base.js +173 -43
  4. package/dist/__generated__/sdk-client-base.js.map +1 -1
  5. package/dist/__generated__/sdk-client-base.mjs +173 -43
  6. package/dist/__generated__/sdk-client-base.mjs.map +1 -1
  7. package/dist/__generated__/version.d.ts +1 -1
  8. package/dist/__generated__/version.js +1 -1
  9. package/dist/__generated__/version.mjs +1 -1
  10. package/dist/__polyfills__/window.d.ts +15 -0
  11. package/dist/__polyfills__/window.d.ts.map +1 -0
  12. package/dist/__polyfills__/window.js +30 -0
  13. package/dist/__polyfills__/window.js.map +1 -0
  14. package/dist/__polyfills__/window.mjs +28 -0
  15. package/dist/__polyfills__/window.mjs.map +1 -0
  16. package/dist/__types__/base.d.ts +5 -1
  17. package/dist/__types__/base.d.ts.map +1 -1
  18. package/dist/index.d.ts +5 -5
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +2 -2
  23. package/dist/models.d.ts +0 -5
  24. package/dist/models.d.ts.map +1 -1
  25. package/dist/sdk-client.d.ts +23 -23
  26. package/dist/sdk-client.d.ts.map +1 -1
  27. package/dist/sdk-client.js +87 -133
  28. package/dist/sdk-client.js.map +1 -1
  29. package/dist/sdk-client.mjs +86 -134
  30. package/dist/sdk-client.mjs.map +1 -1
  31. package/dist/storage.d.ts +2 -6
  32. package/dist/storage.d.ts.map +1 -1
  33. package/dist/storage.js +5 -9
  34. package/dist/storage.js.map +1 -1
  35. package/dist/storage.mjs +5 -9
  36. package/dist/storage.mjs.map +1 -1
  37. package/dist/turnkey-helpers.d.ts +2 -0
  38. package/dist/turnkey-helpers.d.ts.map +1 -1
  39. package/dist/turnkey-helpers.js +13 -0
  40. package/dist/turnkey-helpers.js.map +1 -1
  41. package/dist/turnkey-helpers.mjs +12 -1
  42. package/dist/turnkey-helpers.mjs.map +1 -1
  43. package/package.json +4 -3
  44. package/dist/constants.d.ts +0 -4
  45. package/dist/constants.d.ts.map +0 -1
  46. package/dist/constants.js +0 -18
  47. package/dist/constants.js.map +0 -1
  48. package/dist/constants.mjs +0 -15
  49. package/dist/constants.mjs.map +0 -1
@@ -1,16 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var apiKeyStamper = require('@turnkey/api-key-stamper');
4
3
  var webauthnStamper = require('@turnkey/webauthn-stamper');
5
4
  var iframeStamper = require('@turnkey/iframe-stamper');
6
5
  var http = require('@turnkey/http');
7
6
  var version = require('./__generated__/version.js');
7
+ var window = require('./__polyfills__/window.js');
8
8
  var base = require('./__types__/base.js');
9
9
  var sdkClientBase = require('./__generated__/sdk-client-base.js');
10
- var elliptic = require('elliptic');
11
10
  var storage = require('./storage.js');
12
11
  var utils = require('./utils.js');
13
- var constants = require('./constants.js');
14
12
 
15
13
  class TurnkeyBrowserSDK {
16
14
  constructor(config) {
@@ -20,10 +18,11 @@ class TurnkeyBrowserSDK {
20
18
  return;
21
19
  }
22
20
  if (currentUser?.readOnlySession?.sessionExpiry > Date.now()) {
23
- return new TurnkeySDKBrowserClient({
21
+ return new TurnkeyBrowserClient({
24
22
  readOnlySession: currentUser?.readOnlySession?.session,
25
23
  apiBaseUrl: this.config.apiBaseUrl,
26
- organizationId: this.config.defaultOrganizationId,
24
+ organizationId: currentUser?.organization?.organizationId ??
25
+ this.config.defaultOrganizationId,
27
26
  });
28
27
  }
29
28
  else {
@@ -31,50 +30,37 @@ class TurnkeyBrowserSDK {
31
30
  }
32
31
  return;
33
32
  };
34
- this.passkeySigner = async (rpId) => {
33
+ this.passkeyClient = (rpId) => {
35
34
  const targetRpId = rpId ?? this.config.rpId ?? window.location.hostname;
36
35
  if (!targetRpId) {
37
- throw new Error("Tried to initialize a passkey signer with no rpId defined");
36
+ throw new Error("Tried to initialize a passkey client with no rpId defined");
38
37
  }
39
38
  const webauthnStamper$1 = new webauthnStamper.WebauthnStamper({
40
39
  rpId: targetRpId,
41
40
  });
42
- return new TurnkeySDKBrowserClient({
41
+ return new TurnkeyPasskeyClient({
43
42
  stamper: webauthnStamper$1,
44
43
  apiBaseUrl: this.config.apiBaseUrl,
45
44
  organizationId: this.config.defaultOrganizationId,
46
45
  });
47
46
  };
48
- this.iframeSigner = async (iframeContainer, iframeUrl) => {
49
- const targetIframeUrl = iframeUrl ?? this.config.iframeUrl;
50
- if (!targetIframeUrl) {
51
- throw new Error("Tried to initialize iframeSigner with no iframeUrl defined");
47
+ this.iframeClient = async (params) => {
48
+ if (!params.iframeUrl) {
49
+ throw new Error("Tried to initialize iframeClient with no iframeUrl defined");
52
50
  }
53
- const TurnkeyIframeElementId = "turnkey-auth-iframe-element-id";
51
+ const TurnkeyIframeElementId = params.iframeElementId ?? "turnkey-default-iframe-element-id";
54
52
  const iframeStamper$1 = new iframeStamper.IframeStamper({
55
- iframeUrl: targetIframeUrl,
53
+ iframeContainer: params.iframeContainer,
54
+ iframeUrl: params.iframeUrl,
56
55
  iframeElementId: TurnkeyIframeElementId,
57
- iframeContainer: iframeContainer,
58
56
  });
59
57
  await iframeStamper$1.init();
60
- return new TurnkeySDKBrowserClient({
58
+ return new TurnkeyIframeClient({
61
59
  stamper: iframeStamper$1,
62
60
  apiBaseUrl: this.config.apiBaseUrl,
63
61
  organizationId: this.config.defaultOrganizationId,
64
62
  });
65
63
  };
66
- this.sessionSigner = async () => {
67
- const signingSession = await storage.getStorageValue(storage.StorageKeys.CurrentSigningSession);
68
- const sessionStamper = new apiKeyStamper.ApiKeyStamper({
69
- apiPublicKey: signingSession.publicKey,
70
- apiPrivateKey: signingSession.privateKey,
71
- });
72
- return new TurnkeySDKBrowserClient({
73
- stamper: sessionStamper,
74
- apiBaseUrl: this.config.apiBaseUrl,
75
- organizationId: this.config.defaultOrganizationId,
76
- });
77
- };
78
64
  this.serverSign = async (methodName, params, serverSignUrl) => {
79
65
  const targetServerSignUrl = serverSignUrl ?? this.config.serverSignUrl;
80
66
  if (!targetServerSignUrl) {
@@ -107,14 +93,62 @@ class TurnkeyBrowserSDK {
107
93
  return data;
108
94
  };
109
95
  // Local
96
+ this.getCurrentSubOrganization = async () => {
97
+ const currentUser = await this.getCurrentUser();
98
+ return currentUser?.organization;
99
+ };
100
+ this.getCurrentUser = async () => {
101
+ return await storage.getStorageValue(storage.StorageKeys.CurrentUser);
102
+ };
103
+ this.logoutUser = async () => {
104
+ await storage.removeStorageValue(storage.StorageKeys.CurrentUser);
105
+ return true;
106
+ };
107
+ this.config = config;
108
+ }
109
+ }
110
+ class TurnkeyBrowserClient extends sdkClientBase.TurnkeySDKClientBase {
111
+ constructor(config) {
112
+ super(config);
113
+ this.login = async () => {
114
+ const readOnlySessionResult = await this.createReadOnlySession({});
115
+ const org = {
116
+ organizationId: readOnlySessionResult.organizationId,
117
+ organizationName: readOnlySessionResult.organizationName,
118
+ };
119
+ const currentUser = {
120
+ userId: readOnlySessionResult.userId,
121
+ username: readOnlySessionResult.username,
122
+ organization: org,
123
+ readOnlySession: {
124
+ session: readOnlySessionResult.session,
125
+ sessionExpiry: Number(readOnlySessionResult.sessionExpiry),
126
+ },
127
+ };
128
+ await storage.setStorageValue(storage.StorageKeys.CurrentUser, currentUser);
129
+ return readOnlySessionResult;
130
+ };
131
+ }
132
+ }
133
+ class TurnkeyPasskeyClient extends TurnkeyBrowserClient {
134
+ constructor(config) {
135
+ super(config);
110
136
  this.createUserPasskey = async (config = {}) => {
111
137
  const challenge = utils.generateRandomBuffer();
112
138
  const encodedChallenge = utils.base64UrlEncode(challenge);
113
139
  const authenticatorUserId = utils.generateRandomBuffer();
140
+ // WebAuthn credential options options can be found here:
141
+ // https://www.w3.org/TR/webauthn-2/#sctn-sample-registration
142
+ //
143
+ // All pubkey algorithms can be found here: https://www.iana.org/assignments/cose/cose.xhtml#algorithms
144
+ // Turnkey only supports ES256 (-7) and RS256 (-257)
145
+ //
146
+ // The pubkey type only supports one value, "public-key"
147
+ // See https://www.w3.org/TR/webauthn-2/#enumdef-publickeycredentialtype for more details
114
148
  const webauthnConfig = {
115
149
  publicKey: {
116
150
  rp: {
117
- id: config.publicKey?.rp?.id ?? "",
151
+ id: config.publicKey?.rp?.id ?? this.rpId,
118
152
  name: config.publicKey?.rp?.name ?? "",
119
153
  },
120
154
  challenge: config.publicKey?.challenge ?? challenge,
@@ -126,8 +160,8 @@ class TurnkeyBrowserSDK {
126
160
  ],
127
161
  user: {
128
162
  id: config.publicKey?.user?.id ?? authenticatorUserId,
129
- name: config.publicKey?.user?.name ?? "",
130
- displayName: config.publicKey?.user?.displayName ?? "",
163
+ name: config.publicKey?.user?.name ?? "Default User",
164
+ displayName: config.publicKey?.user?.displayName ?? "Default User",
131
165
  },
132
166
  authenticatorSelection: {
133
167
  requireResidentKey: config.publicKey?.authenticatorSelection?.requireResidentKey ??
@@ -146,118 +180,38 @@ class TurnkeyBrowserSDK {
146
180
  attestation: attestation,
147
181
  };
148
182
  };
149
- this.getCurrentSubOrganization = async () => {
150
- const currentUser = await this.getCurrentUser();
151
- return currentUser?.organization;
152
- };
153
- this.getCurrentUser = async () => {
154
- return await storage.getStorageValue(storage.StorageKeys.CurrentUser);
155
- };
156
- this.getCurrentSigningSession = async () => {
157
- return await storage.getStorageValue(storage.StorageKeys.CurrentSigningSession);
158
- };
159
- this.isSigningSessionActive = async () => {
160
- const signingSession = await this.getCurrentSigningSession();
161
- if (signingSession && signingSession.expiration > Date.now()) {
162
- return true;
163
- }
164
- return false;
165
- };
166
- this.logoutUser = async () => {
167
- await storage.removeStorageValue(storage.StorageKeys.CurrentUser);
168
- await storage.removeStorageValue(storage.StorageKeys.CurrentSubOrganization);
169
- return true;
170
- };
171
- this.config = config;
183
+ this.rpId = config.stamper.rpId;
172
184
  }
173
185
  }
174
- class TurnkeySDKBrowserClient extends sdkClientBase.TurnkeySDKClientBase {
186
+ class TurnkeyIframeClient extends TurnkeyBrowserClient {
175
187
  constructor(config) {
176
188
  super(config);
177
- this.createWalletWithAccount = async (params) => {
178
- switch (params.accountChain) {
179
- case "solana": {
180
- return await this.createWallet({
181
- walletName: params.walletName,
182
- accounts: [constants.DEFAULT_SOLANA_WALLET_ACCOUNT],
183
- });
184
- }
185
- default: {
186
- return await this.createWallet({
187
- walletName: params.walletName,
188
- accounts: [constants.DEFAULT_ETHEREUM_WALLET_ACCOUNT],
189
- });
190
- }
191
- }
189
+ this.injectCredentialBundle = async (credentialBundle) => {
190
+ const stamper = this.config.stamper;
191
+ return await stamper.injectCredentialBundle(credentialBundle);
192
192
  };
193
- this.createNextWalletAccount = async (params) => {
194
- const walletAccounts = await this.getWalletAccounts({
195
- walletId: params.walletId,
196
- });
197
- const lastAccount = walletAccounts.accounts[walletAccounts.accounts.length - 1];
198
- const lastAccountPath = lastAccount.path.split("/");
199
- const lastAccountPathIndex = lastAccountPath[3].replace(/[^0-9]/g, "");
200
- const nextPathIndex = Number(lastAccountPathIndex) + 1;
201
- lastAccountPath[3] = `${nextPathIndex}'`;
202
- const nextAccountPath = lastAccountPath.join("/");
203
- return await this.createWalletAccounts({
204
- walletId: params.walletId,
205
- accounts: [
206
- {
207
- curve: lastAccount.curve,
208
- pathFormat: lastAccount.pathFormat,
209
- addressFormat: lastAccount.addressFormat,
210
- path: nextAccountPath,
211
- },
212
- ],
213
- });
193
+ this.injectWalletExportBundle = async (credentialBundle, organizationId) => {
194
+ const stamper = this.config.stamper;
195
+ return await stamper.injectWalletExportBundle(credentialBundle, organizationId);
214
196
  };
215
- this.login = async () => {
216
- const readOnlySessionResult = await this.createReadOnlySession({});
217
- const org = {
218
- organizationId: readOnlySessionResult.organizationId,
219
- organizationName: readOnlySessionResult.organizationName,
220
- };
221
- const currentUser = {
222
- userId: readOnlySessionResult.userId,
223
- username: readOnlySessionResult.username,
224
- organization: org,
225
- readOnlySession: {
226
- session: readOnlySessionResult.session,
227
- sessionExpiry: Number(readOnlySessionResult.sessionExpiry),
228
- },
229
- };
230
- await storage.setStorageValue(storage.StorageKeys.CurrentUser, currentUser);
231
- await storage.setStorageValue(storage.StorageKeys.CurrentSubOrganization, org);
232
- return readOnlySessionResult;
197
+ this.injectKeyExportBundle = async (credentialBundle, organizationId) => {
198
+ const stamper = this.config.stamper;
199
+ return await stamper.injectKeyExportBundle(credentialBundle, organizationId);
233
200
  };
234
- this.createSigningSessionKey = async (params) => {
235
- const currentUser = await storage.getStorageValue(storage.StorageKeys.CurrentUser);
236
- const ec = new elliptic.ec("p256");
237
- const keyPair = ec.genKeyPair();
238
- const signingSession = {
239
- publicKey: keyPair.getPublic(true, "hex"),
240
- privateKey: keyPair.getPrivate("hex"),
241
- expiration: Date.now() + params.duration * 1000,
242
- };
243
- const response = await this.createApiKeys({
244
- apiKeys: [
245
- {
246
- apiKeyName: `Short-lived Signing Session Key ${Date.now()}`,
247
- publicKey: signingSession.publicKey,
248
- expirationSeconds: `${params.duration}`,
249
- },
250
- ],
251
- userId: currentUser.userId,
252
- });
253
- if (response) {
254
- storage.setStorageValue(storage.StorageKeys.CurrentSigningSession, signingSession);
255
- }
256
- return response;
201
+ this.injectImportBundle = async (bundle, organizationId, userId) => {
202
+ const stamper = this.config.stamper;
203
+ return await stamper.injectImportBundle(bundle, organizationId, userId);
204
+ };
205
+ this.extractWalletEncryptedBundle = async () => {
206
+ const stamper = this.config.stamper;
207
+ return await stamper.extractWalletEncryptedBundle();
257
208
  };
209
+ this.iframePublicKey = config.stamper.iframePublicKey;
258
210
  }
259
211
  }
260
212
 
213
+ exports.TurnkeyBrowserClient = TurnkeyBrowserClient;
261
214
  exports.TurnkeyBrowserSDK = TurnkeyBrowserSDK;
262
- exports.TurnkeySDKBrowserClient = TurnkeySDKBrowserClient;
215
+ exports.TurnkeyIframeClient = TurnkeyIframeClient;
216
+ exports.TurnkeyPasskeyClient = TurnkeyPasskeyClient;
263
217
  //# sourceMappingURL=sdk-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-client.js","sources":["../src/sdk-client.ts"],"sourcesContent":[null],"names":["webauthnStamper","WebauthnStamper","iframeStamper","IframeStamper","getStorageValue","StorageKeys","ApiKeyStamper","VERSION","TurnkeyRequestError","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation","removeStorageValue","TurnkeySDKClientBase","DEFAULT_SOLANA_WALLET_ACCOUNT","DEFAULT_ETHEREUM_WALLET_ACCOUNT","setStorageValue"],"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","VERSION","TurnkeyRequestError","getStorageValue","StorageKeys","removeStorageValue","TurnkeySDKClientBase","setStorageValue","generateRandomBuffer","base64UrlEncode","getWebAuthnAttestation"],"mappings":"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"}