@turnkey/react-wallet-kit 1.11.0 → 2.0.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 (86) hide show
  1. package/dist/components/auth/OTP.d.ts +1 -0
  2. package/dist/components/auth/OTP.d.ts.map +1 -1
  3. package/dist/components/auth/OTP.js +8 -2
  4. package/dist/components/auth/OTP.js.map +1 -1
  5. package/dist/components/auth/OTP.mjs +21 -13
  6. package/dist/components/auth/OTP.mjs.map +1 -1
  7. package/dist/components/auth/index.d.ts.map +1 -1
  8. package/dist/components/auth/index.js +11 -3
  9. package/dist/components/auth/index.js.map +1 -1
  10. package/dist/components/auth/index.mjs +12 -5
  11. package/dist/components/auth/index.mjs.map +1 -1
  12. package/dist/components/user/UpdateEmail.js +6 -3
  13. package/dist/components/user/UpdateEmail.js.map +1 -1
  14. package/dist/components/user/UpdateEmail.mjs +6 -4
  15. package/dist/components/user/UpdateEmail.mjs.map +1 -1
  16. package/dist/components/user/UpdatePhoneNumber.js +6 -3
  17. package/dist/components/user/UpdatePhoneNumber.js.map +1 -1
  18. package/dist/components/user/UpdatePhoneNumber.mjs +6 -4
  19. package/dist/components/user/UpdatePhoneNumber.mjs.map +1 -1
  20. package/dist/index.d.ts +1 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +8 -4
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +1 -1
  25. package/dist/providers/client/Provider.d.ts.map +1 -1
  26. package/dist/providers/client/Provider.js +611 -430
  27. package/dist/providers/client/Provider.js.map +1 -1
  28. package/dist/providers/client/Provider.mjs +2055 -1820
  29. package/dist/providers/client/Provider.mjs.map +1 -1
  30. package/dist/providers/client/Types.d.ts +14 -7
  31. package/dist/providers/client/Types.d.ts.map +1 -1
  32. package/dist/providers/client/Types.js.map +1 -1
  33. package/dist/providers/client/Types.mjs.map +1 -1
  34. package/dist/typedoc-entry/index.d.ts +1 -1
  35. package/dist/typedoc-entry/index.d.ts.map +1 -1
  36. package/dist/types/base.d.ts +38 -28
  37. package/dist/types/base.d.ts.map +1 -1
  38. package/dist/types/base.js.map +1 -1
  39. package/dist/types/base.mjs.map +1 -1
  40. package/dist/types/method-types.d.ts +12 -5
  41. package/dist/types/method-types.d.ts.map +1 -1
  42. package/dist/utils/oauth/completion.d.ts +132 -0
  43. package/dist/utils/oauth/completion.d.ts.map +1 -0
  44. package/dist/utils/oauth/completion.js +136 -0
  45. package/dist/utils/oauth/completion.js.map +1 -0
  46. package/dist/utils/oauth/completion.mjs +176 -0
  47. package/dist/utils/oauth/completion.mjs.map +1 -0
  48. package/dist/utils/oauth/config.d.ts +34 -0
  49. package/dist/utils/oauth/config.d.ts.map +1 -0
  50. package/dist/utils/oauth/config.js +69 -0
  51. package/dist/utils/oauth/config.js.map +1 -0
  52. package/dist/utils/oauth/config.mjs +54 -0
  53. package/dist/utils/oauth/config.mjs.map +1 -0
  54. package/dist/utils/oauth/helpers.d.ts +13 -0
  55. package/dist/utils/oauth/helpers.d.ts.map +1 -0
  56. package/dist/utils/oauth/helpers.js +38 -0
  57. package/dist/utils/oauth/helpers.js.map +1 -0
  58. package/dist/utils/oauth/helpers.mjs +35 -0
  59. package/dist/utils/oauth/helpers.mjs.map +1 -0
  60. package/dist/utils/oauth/index.d.ts +7 -0
  61. package/dist/utils/oauth/index.d.ts.map +1 -0
  62. package/dist/utils/oauth/pkce.d.ts +14 -0
  63. package/dist/utils/oauth/pkce.d.ts.map +1 -0
  64. package/dist/utils/oauth/pkce.js +48 -0
  65. package/dist/utils/oauth/pkce.js.map +1 -0
  66. package/dist/utils/oauth/pkce.mjs +85 -0
  67. package/dist/utils/oauth/pkce.mjs.map +1 -0
  68. package/dist/utils/oauth/storage.d.ts +59 -0
  69. package/dist/utils/oauth/storage.d.ts.map +1 -0
  70. package/dist/utils/oauth/storage.js +116 -0
  71. package/dist/utils/oauth/storage.js.map +1 -0
  72. package/dist/utils/oauth/storage.mjs +104 -0
  73. package/dist/utils/oauth/storage.mjs.map +1 -0
  74. package/dist/utils/oauth/url.d.ts +92 -0
  75. package/dist/utils/oauth/url.d.ts.map +1 -0
  76. package/dist/utils/oauth/url.js +231 -0
  77. package/dist/utils/oauth/url.js.map +1 -0
  78. package/dist/utils/oauth/url.mjs +237 -0
  79. package/dist/utils/oauth/url.mjs.map +1 -0
  80. package/package.json +3 -3
  81. package/dist/utils/oauth.d.ts +0 -323
  82. package/dist/utils/oauth.d.ts.map +0 -1
  83. package/dist/utils/oauth.js +0 -613
  84. package/dist/utils/oauth.js.map +0 -1
  85. package/dist/utils/oauth.mjs +0 -670
  86. package/dist/utils/oauth.mjs.map +0 -1
@@ -0,0 +1,231 @@
1
+ 'use strict';
2
+
3
+ var sdkTypes = require('@turnkey/sdk-types');
4
+ var config = require('./config.js');
5
+ var storage = require('./storage.js');
6
+
7
+ /**
8
+ * Builds the OAuth state parameter string
9
+ */
10
+ function buildOAuthState(params) {
11
+ const {
12
+ provider,
13
+ flow,
14
+ publicKey,
15
+ nonce,
16
+ additionalState
17
+ } = params;
18
+ let state = `provider=${provider}&flow=${flow}&publicKey=${encodeURIComponent(publicKey)}`;
19
+ if (nonce) {
20
+ state += `&nonce=${nonce}`;
21
+ }
22
+ if (additionalState) {
23
+ const extra = Object.entries(additionalState).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join("&");
24
+ if (extra) {
25
+ state += `&${extra}`;
26
+ }
27
+ }
28
+ return state;
29
+ }
30
+ /**
31
+ * Opens a centered OAuth popup window
32
+ */
33
+ function openOAuthPopup() {
34
+ const width = config.popupWidth;
35
+ const height = config.popupHeight;
36
+ const left = window.screenX + (window.innerWidth - width) / 2;
37
+ const top = window.screenY + (window.innerHeight - height) / 2;
38
+ return window.open("about:blank", "_blank", `width=${width},height=${height},top=${top},left=${left},scrollbars=yes,resizable=yes`);
39
+ }
40
+ /**
41
+ * Redirects to OAuth provider URL
42
+ */
43
+ function redirectToOAuthProvider(url) {
44
+ window.location.href = url;
45
+ const timeLimit = 5 * 60 * 1000; // 5 minutes
46
+ return new Promise((_, reject) => {
47
+ const timeout = setTimeout(() => {
48
+ reject(new Error("Authentication timed out."));
49
+ }, timeLimit);
50
+ window.addEventListener("beforeunload", () => clearTimeout(timeout));
51
+ });
52
+ }
53
+ /**
54
+ * Cleans up OAuth parameters from URL (removes hash and search)
55
+ */
56
+ function cleanupOAuthUrl() {
57
+ window.history.replaceState(null, document.title, window.location.pathname);
58
+ }
59
+ /**
60
+ * Cleans up OAuth hash from URL but preserves search parameters
61
+ */
62
+ function cleanupOAuthUrlPreserveSearch() {
63
+ window.history.replaceState(null, document.title, window.location.pathname + window.location.search);
64
+ }
65
+ /**
66
+ * Parses the OAuth state parameter string into an object
67
+ */
68
+ function parseStateParam(stateParam) {
69
+ if (!stateParam) return {};
70
+ const result = {};
71
+ const pairs = stateParam.split("&");
72
+ for (const pair of pairs) {
73
+ const [key, value] = pair.split("=");
74
+ if (key && value !== undefined) {
75
+ result[key] = decodeURIComponent(value);
76
+ }
77
+ }
78
+ return result;
79
+ }
80
+ /**
81
+ * Unified OAuth response parser for both popup and redirect flows.
82
+ * Handles both:
83
+ * - PKCE flows (Facebook, Discord, X): code in search parameters
84
+ * - Non-PKCE flows (Google, Apple): id_token in hash parameters
85
+ * - Apple's non-standard hash format where state parameters are directly embedded
86
+ *
87
+ * @param url - The full URL to parse (from popup or redirect)
88
+ * @param expectedProvider - Optional provider if already known (for popup flows)
89
+ * @returns Parsed OAuth response data including tokens, codes, and state parameters, or null if invalid
90
+ */
91
+ function parseOAuthResponse(url, expectedProvider) {
92
+ let idToken = null;
93
+ let authCode = null;
94
+ let stateString = null;
95
+ const parsedUrl = new URL(url);
96
+ const search = parsedUrl.search.substring(1); // Remove leading '?'
97
+ const hash = parsedUrl.hash.substring(1); // Remove leading '#'
98
+ // Handle PKCE flows (code in search parameters)
99
+ if (search && search.includes("code=")) {
100
+ const searchParams = new URLSearchParams(search);
101
+ authCode = searchParams.get("code");
102
+ stateString = searchParams.get("state");
103
+ }
104
+ // Handle non-PKCE flows (id_token in hash)
105
+ else if (hash) {
106
+ // Handle Apple's non-standard format: state=provider=apple&flow=redirect&...&code=...&id_token=...
107
+ if (hash.startsWith("state=provider=apple")) {
108
+ // Extract id_token from the end
109
+ const idTokenMatch = hash.match(/id_token=([^&]+)$/);
110
+ idToken = idTokenMatch ? idTokenMatch[1] : null;
111
+ // Extract state content between "state=" and "&code="
112
+ const stateEndIndex = hash.indexOf("&code=");
113
+ if (stateEndIndex !== -1) {
114
+ stateString = hash.substring(6, stateEndIndex); // Remove "state=" prefix
115
+ }
116
+ } else {
117
+ // Standard OAuth format - parse as URLSearchParams
118
+ const hashParams = new URLSearchParams(hash);
119
+ idToken = hashParams.get("id_token");
120
+ stateString = hashParams.get("state");
121
+ }
122
+ }
123
+ if (!stateString) {
124
+ throw new sdkTypes.TurnkeyError("Missing OAuth state in redirect response", sdkTypes.TurnkeyErrorCodes.INVALID_OAUTH_STATE);
125
+ }
126
+ // Validate state parameter
127
+ storage.consumeOAuthState(stateString);
128
+ // Parse state parameters
129
+ const {
130
+ provider,
131
+ flow,
132
+ publicKey,
133
+ openModal,
134
+ sessionKey,
135
+ oauthIntent,
136
+ nonce
137
+ } = parseStateParam(stateString);
138
+ // If we have an expected provider (popup flow), validate it matches
139
+ if (expectedProvider) {
140
+ const config$1 = config.OAUTH_PROVIDER_CONFIGS[expectedProvider];
141
+ if (config$1.usesPKCE) {
142
+ // PKCE providers must have authCode and matching provider in state
143
+ if (!authCode || !stateString || provider !== expectedProvider) {
144
+ return null;
145
+ }
146
+ } else {
147
+ // Non-PKCE providers must have idToken
148
+ if (!idToken) {
149
+ return null;
150
+ }
151
+ }
152
+ }
153
+ return {
154
+ idToken,
155
+ authCode,
156
+ provider: provider ?? null,
157
+ flow: flow ?? null,
158
+ publicKey: publicKey ?? null,
159
+ openModal: openModal ?? null,
160
+ sessionKey: sessionKey ?? undefined,
161
+ oauthIntent: oauthIntent ?? null,
162
+ nonce: nonce ?? null
163
+ };
164
+ }
165
+ /**
166
+ * Builds the complete OAuth authorization URL for a provider
167
+ */
168
+ function buildOAuthUrl(params) {
169
+ const {
170
+ provider,
171
+ clientId,
172
+ redirectUri,
173
+ publicKey,
174
+ nonce,
175
+ flow,
176
+ codeChallenge,
177
+ additionalState
178
+ } = params;
179
+ const config$1 = config.OAUTH_PROVIDER_CONFIGS[provider];
180
+ const authUrl = new URL(config$1.authUrl);
181
+ authUrl.searchParams.set("client_id", clientId);
182
+ authUrl.searchParams.set("redirect_uri", redirectUri);
183
+ authUrl.searchParams.set("response_type", config$1.responseType);
184
+ if (config$1.scopes) {
185
+ authUrl.searchParams.set("scope", config$1.scopes);
186
+ }
187
+ if (config$1.responseMode) {
188
+ authUrl.searchParams.set("response_mode", config$1.responseMode);
189
+ }
190
+ // PKCE parameters
191
+ if (config$1.usesPKCE && codeChallenge) {
192
+ authUrl.searchParams.set("code_challenge", codeChallenge);
193
+ authUrl.searchParams.set("code_challenge_method", "S256");
194
+ }
195
+ // Nonce handling - some providers want it in URL params, others in state
196
+ if (config$1.nonceInParams) {
197
+ authUrl.searchParams.set("nonce", nonce);
198
+ }
199
+ // Google-specific: prompt for account selection
200
+ if (provider === sdkTypes.OAuthProviders.GOOGLE) {
201
+ authUrl.searchParams.set("prompt", "select_account");
202
+ }
203
+ // Build state parameter
204
+ const stateParams = {
205
+ provider,
206
+ flow,
207
+ publicKey
208
+ };
209
+ // Include nonce in state for providers that need it there (not in URL params)
210
+ if (!config$1.nonceInParams) {
211
+ stateParams.nonce = nonce;
212
+ }
213
+ if (additionalState) {
214
+ stateParams.additionalState = additionalState;
215
+ }
216
+ // Generate state string and store for validation
217
+ const state = buildOAuthState(stateParams);
218
+ authUrl.searchParams.set("state", state);
219
+ storage.storeOAuthState(state);
220
+ return authUrl.toString();
221
+ }
222
+
223
+ exports.buildOAuthState = buildOAuthState;
224
+ exports.buildOAuthUrl = buildOAuthUrl;
225
+ exports.cleanupOAuthUrl = cleanupOAuthUrl;
226
+ exports.cleanupOAuthUrlPreserveSearch = cleanupOAuthUrlPreserveSearch;
227
+ exports.openOAuthPopup = openOAuthPopup;
228
+ exports.parseOAuthResponse = parseOAuthResponse;
229
+ exports.parseStateParam = parseStateParam;
230
+ exports.redirectToOAuthProvider = redirectToOAuthProvider;
231
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sources":["../../../src/utils/oauth/url.ts"],"sourcesContent":[null],"names":["buildOAuthState","params","provider","flow","publicKey","nonce","additionalState","state","encodeURIComponent","extra","Object","entries","map","k","v","join","openOAuthPopup","width","popupWidth","height","popupHeight","left","window","screenX","innerWidth","top","screenY","innerHeight","open","redirectToOAuthProvider","url","location","href","timeLimit","Promise","_","reject","timeout","setTimeout","Error","addEventListener","clearTimeout","cleanupOAuthUrl","history","replaceState","document","title","pathname","cleanupOAuthUrlPreserveSearch","search","parseStateParam","stateParam","result","pairs","split","pair","key","value","undefined","decodeURIComponent","parseOAuthResponse","expectedProvider","idToken","authCode","stateString","parsedUrl","URL","substring","hash","includes","searchParams","URLSearchParams","get","startsWith","idTokenMatch","match","stateEndIndex","indexOf","hashParams","TurnkeyError","TurnkeyErrorCodes","INVALID_OAUTH_STATE","consumeOAuthState","openModal","sessionKey","oauthIntent","config","OAUTH_PROVIDER_CONFIGS","usesPKCE","buildOAuthUrl","clientId","redirectUri","codeChallenge","authUrl","set","responseType","scopes","responseMode","nonceInParams","OAuthProviders","GOOGLE","stateParams","storeOAuthState","toString"],"mappings":"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"}
@@ -0,0 +1,237 @@
1
+ import { createForOfIteratorHelper as _createForOfIteratorHelper, slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { TurnkeyError, TurnkeyErrorCodes, OAuthProviders } from '@turnkey/sdk-types';
3
+ import { OAUTH_PROVIDER_CONFIGS, popupWidth, popupHeight } from './config.mjs';
4
+ import { consumeOAuthState, storeOAuthState } from './storage.mjs';
5
+
6
+ /**
7
+ * Builds the OAuth state parameter string
8
+ */
9
+ function buildOAuthState(params) {
10
+ var provider = params.provider,
11
+ flow = params.flow,
12
+ publicKey = params.publicKey,
13
+ nonce = params.nonce,
14
+ additionalState = params.additionalState;
15
+ var state = "provider=".concat(provider, "&flow=").concat(flow, "&publicKey=").concat(encodeURIComponent(publicKey));
16
+ if (nonce) {
17
+ state += "&nonce=".concat(nonce);
18
+ }
19
+ if (additionalState) {
20
+ var extra = Object.entries(additionalState).map(function (_ref) {
21
+ var _ref2 = _slicedToArray(_ref, 2),
22
+ k = _ref2[0],
23
+ v = _ref2[1];
24
+ return "".concat(encodeURIComponent(k), "=").concat(encodeURIComponent(v));
25
+ }).join("&");
26
+ if (extra) {
27
+ state += "&".concat(extra);
28
+ }
29
+ }
30
+ return state;
31
+ }
32
+ /**
33
+ * Opens a centered OAuth popup window
34
+ */
35
+ function openOAuthPopup() {
36
+ var width = popupWidth;
37
+ var height = popupHeight;
38
+ var left = window.screenX + (window.innerWidth - width) / 2;
39
+ var top = window.screenY + (window.innerHeight - height) / 2;
40
+ return window.open("about:blank", "_blank", "width=".concat(width, ",height=").concat(height, ",top=").concat(top, ",left=").concat(left, ",scrollbars=yes,resizable=yes"));
41
+ }
42
+ /**
43
+ * Redirects to OAuth provider URL
44
+ */
45
+ function redirectToOAuthProvider(url) {
46
+ window.location.href = url;
47
+ var timeLimit = 5 * 60 * 1000; // 5 minutes
48
+ return new Promise(function (_, reject) {
49
+ var timeout = setTimeout(function () {
50
+ reject(new Error("Authentication timed out."));
51
+ }, timeLimit);
52
+ window.addEventListener("beforeunload", function () {
53
+ return clearTimeout(timeout);
54
+ });
55
+ });
56
+ }
57
+ /**
58
+ * Cleans up OAuth parameters from URL (removes hash and search)
59
+ */
60
+ function cleanupOAuthUrl() {
61
+ window.history.replaceState(null, document.title, window.location.pathname);
62
+ }
63
+ /**
64
+ * Cleans up OAuth hash from URL but preserves search parameters
65
+ */
66
+ function cleanupOAuthUrlPreserveSearch() {
67
+ window.history.replaceState(null, document.title, window.location.pathname + window.location.search);
68
+ }
69
+ /**
70
+ * Parses the OAuth state parameter string into an object
71
+ */
72
+ function parseStateParam(stateParam) {
73
+ if (!stateParam) return {};
74
+ var result = {};
75
+ var pairs = stateParam.split("&");
76
+ var _iterator = _createForOfIteratorHelper(pairs),
77
+ _step;
78
+ try {
79
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
80
+ var pair = _step.value;
81
+ var _pair$split = pair.split("="),
82
+ _pair$split2 = _slicedToArray(_pair$split, 2),
83
+ key = _pair$split2[0],
84
+ value = _pair$split2[1];
85
+ if (key && value !== undefined) {
86
+ result[key] = decodeURIComponent(value);
87
+ }
88
+ }
89
+ } catch (err) {
90
+ _iterator.e(err);
91
+ } finally {
92
+ _iterator.f();
93
+ }
94
+ return result;
95
+ }
96
+ /**
97
+ * Unified OAuth response parser for both popup and redirect flows.
98
+ * Handles both:
99
+ * - PKCE flows (Facebook, Discord, X): code in search parameters
100
+ * - Non-PKCE flows (Google, Apple): id_token in hash parameters
101
+ * - Apple's non-standard hash format where state parameters are directly embedded
102
+ *
103
+ * @param url - The full URL to parse (from popup or redirect)
104
+ * @param expectedProvider - Optional provider if already known (for popup flows)
105
+ * @returns Parsed OAuth response data including tokens, codes, and state parameters, or null if invalid
106
+ */
107
+ function parseOAuthResponse(url, expectedProvider) {
108
+ var idToken = null;
109
+ var authCode = null;
110
+ var stateString = null;
111
+ var parsedUrl = new URL(url);
112
+ var search = parsedUrl.search.substring(1); // Remove leading '?'
113
+ var hash = parsedUrl.hash.substring(1); // Remove leading '#'
114
+ // Handle PKCE flows (code in search parameters)
115
+ if (search && search.includes("code=")) {
116
+ var searchParams = new URLSearchParams(search);
117
+ authCode = searchParams.get("code");
118
+ stateString = searchParams.get("state");
119
+ }
120
+ // Handle non-PKCE flows (id_token in hash)
121
+ else if (hash) {
122
+ // Handle Apple's non-standard format: state=provider=apple&flow=redirect&...&code=...&id_token=...
123
+ if (hash.startsWith("state=provider=apple")) {
124
+ // Extract id_token from the end
125
+ var idTokenMatch = hash.match(/id_token=([^&]+)$/);
126
+ idToken = idTokenMatch ? idTokenMatch[1] : null;
127
+ // Extract state content between "state=" and "&code="
128
+ var stateEndIndex = hash.indexOf("&code=");
129
+ if (stateEndIndex !== -1) {
130
+ stateString = hash.substring(6, stateEndIndex); // Remove "state=" prefix
131
+ }
132
+ } else {
133
+ // Standard OAuth format - parse as URLSearchParams
134
+ var hashParams = new URLSearchParams(hash);
135
+ idToken = hashParams.get("id_token");
136
+ stateString = hashParams.get("state");
137
+ }
138
+ }
139
+ if (!stateString) {
140
+ throw new TurnkeyError("Missing OAuth state in redirect response", TurnkeyErrorCodes.INVALID_OAUTH_STATE);
141
+ }
142
+ // Validate state parameter
143
+ consumeOAuthState(stateString);
144
+ // Parse state parameters
145
+ var _parseStateParam = parseStateParam(stateString),
146
+ provider = _parseStateParam.provider,
147
+ flow = _parseStateParam.flow,
148
+ publicKey = _parseStateParam.publicKey,
149
+ openModal = _parseStateParam.openModal,
150
+ sessionKey = _parseStateParam.sessionKey,
151
+ oauthIntent = _parseStateParam.oauthIntent,
152
+ nonce = _parseStateParam.nonce;
153
+ // If we have an expected provider (popup flow), validate it matches
154
+ if (expectedProvider) {
155
+ var config = OAUTH_PROVIDER_CONFIGS[expectedProvider];
156
+ if (config.usesPKCE) {
157
+ // PKCE providers must have authCode and matching provider in state
158
+ if (!authCode || !stateString || provider !== expectedProvider) {
159
+ return null;
160
+ }
161
+ } else {
162
+ // Non-PKCE providers must have idToken
163
+ if (!idToken) {
164
+ return null;
165
+ }
166
+ }
167
+ }
168
+ return {
169
+ idToken: idToken,
170
+ authCode: authCode,
171
+ provider: provider !== null && provider !== void 0 ? provider : null,
172
+ flow: flow !== null && flow !== void 0 ? flow : null,
173
+ publicKey: publicKey !== null && publicKey !== void 0 ? publicKey : null,
174
+ openModal: openModal !== null && openModal !== void 0 ? openModal : null,
175
+ sessionKey: sessionKey !== null && sessionKey !== void 0 ? sessionKey : undefined,
176
+ oauthIntent: oauthIntent !== null && oauthIntent !== void 0 ? oauthIntent : null,
177
+ nonce: nonce !== null && nonce !== void 0 ? nonce : null
178
+ };
179
+ }
180
+ /**
181
+ * Builds the complete OAuth authorization URL for a provider
182
+ */
183
+ function buildOAuthUrl(params) {
184
+ var provider = params.provider,
185
+ clientId = params.clientId,
186
+ redirectUri = params.redirectUri,
187
+ publicKey = params.publicKey,
188
+ nonce = params.nonce,
189
+ flow = params.flow,
190
+ codeChallenge = params.codeChallenge,
191
+ additionalState = params.additionalState;
192
+ var config = OAUTH_PROVIDER_CONFIGS[provider];
193
+ var authUrl = new URL(config.authUrl);
194
+ authUrl.searchParams.set("client_id", clientId);
195
+ authUrl.searchParams.set("redirect_uri", redirectUri);
196
+ authUrl.searchParams.set("response_type", config.responseType);
197
+ if (config.scopes) {
198
+ authUrl.searchParams.set("scope", config.scopes);
199
+ }
200
+ if (config.responseMode) {
201
+ authUrl.searchParams.set("response_mode", config.responseMode);
202
+ }
203
+ // PKCE parameters
204
+ if (config.usesPKCE && codeChallenge) {
205
+ authUrl.searchParams.set("code_challenge", codeChallenge);
206
+ authUrl.searchParams.set("code_challenge_method", "S256");
207
+ }
208
+ // Nonce handling - some providers want it in URL params, others in state
209
+ if (config.nonceInParams) {
210
+ authUrl.searchParams.set("nonce", nonce);
211
+ }
212
+ // Google-specific: prompt for account selection
213
+ if (provider === OAuthProviders.GOOGLE) {
214
+ authUrl.searchParams.set("prompt", "select_account");
215
+ }
216
+ // Build state parameter
217
+ var stateParams = {
218
+ provider: provider,
219
+ flow: flow,
220
+ publicKey: publicKey
221
+ };
222
+ // Include nonce in state for providers that need it there (not in URL params)
223
+ if (!config.nonceInParams) {
224
+ stateParams.nonce = nonce;
225
+ }
226
+ if (additionalState) {
227
+ stateParams.additionalState = additionalState;
228
+ }
229
+ // Generate state string and store for validation
230
+ var state = buildOAuthState(stateParams);
231
+ authUrl.searchParams.set("state", state);
232
+ storeOAuthState(state);
233
+ return authUrl.toString();
234
+ }
235
+
236
+ export { buildOAuthState, buildOAuthUrl, cleanupOAuthUrl, cleanupOAuthUrlPreserveSearch, openOAuthPopup, parseOAuthResponse, parseStateParam, redirectToOAuthProvider };
237
+ //# sourceMappingURL=url.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.mjs","sources":["../../../src/utils/oauth/url.ts"],"sourcesContent":[null],"names":["buildOAuthState","params","provider","flow","publicKey","nonce","additionalState","state","concat","encodeURIComponent","extra","Object","entries","map","_ref","_ref2","_slicedToArray","k","v","join","openOAuthPopup","width","popupWidth","height","popupHeight","left","window","screenX","innerWidth","top","screenY","innerHeight","open","redirectToOAuthProvider","url","location","href","timeLimit","Promise","_","reject","timeout","setTimeout","Error","addEventListener","clearTimeout","cleanupOAuthUrl","history","replaceState","document","title","pathname","cleanupOAuthUrlPreserveSearch","search","parseStateParam","stateParam","result","pairs","split","_iterator","_createForOfIteratorHelper","_step","s","n","done","pair","value","_pair$split","_pair$split2","key","undefined","decodeURIComponent","err","e","f","parseOAuthResponse","expectedProvider","idToken","authCode","stateString","parsedUrl","URL","substring","hash","includes","searchParams","URLSearchParams","get","startsWith","idTokenMatch","match","stateEndIndex","indexOf","hashParams","TurnkeyError","TurnkeyErrorCodes","INVALID_OAUTH_STATE","consumeOAuthState","_parseStateParam","openModal","sessionKey","oauthIntent","config","OAUTH_PROVIDER_CONFIGS","usesPKCE","buildOAuthUrl","clientId","redirectUri","codeChallenge","authUrl","set","responseType","scopes","responseMode","nonceInParams","OAuthProviders","GOOGLE","stateParams","storeOAuthState","toString"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turnkey/react-wallet-kit",
3
- "version": "1.11.0",
3
+ "version": "2.0.0",
4
4
  "description": "The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -48,9 +48,9 @@
48
48
  "qrcode.react": "^4.2.0",
49
49
  "react-international-phone": "^4.3.0",
50
50
  "viem": "^2.40.2",
51
- "@turnkey/core": "1.14.0",
52
51
  "@turnkey/iframe-stamper": "^2.11.0",
53
- "@turnkey/sdk-types": "0.13.0"
52
+ "@turnkey/core": "2.0.0",
53
+ "@turnkey/sdk-types": "1.0.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@rollup/plugin-babel": "5.3.0",