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