@0xkey-io/react-wallet-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.MD +116 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +307 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
- package/dist/components/auth/Action.d.ts +10 -0
- package/dist/components/auth/Action.d.ts.map +1 -0
- package/dist/components/auth/Action.js +76 -0
- package/dist/components/auth/Action.js.map +1 -0
- package/dist/components/auth/Action.mjs +97 -0
- package/dist/components/auth/Action.mjs.map +1 -0
- package/dist/components/auth/Email.d.ts +6 -0
- package/dist/components/auth/Email.d.ts.map +1 -0
- package/dist/components/auth/Email.js +77 -0
- package/dist/components/auth/Email.js.map +1 -0
- package/dist/components/auth/Email.mjs +98 -0
- package/dist/components/auth/Email.mjs.map +1 -0
- package/dist/components/auth/OAuth.d.ts +13 -0
- package/dist/components/auth/OAuth.d.ts.map +1 -0
- package/dist/components/auth/OAuth.js +63 -0
- package/dist/components/auth/OAuth.js.map +1 -0
- package/dist/components/auth/OAuth.mjs +68 -0
- package/dist/components/auth/OAuth.mjs.map +1 -0
- package/dist/components/auth/OTP.d.ts +21 -0
- package/dist/components/auth/OTP.d.ts.map +1 -0
- package/dist/components/auth/OTP.js +218 -0
- package/dist/components/auth/OTP.js.map +1 -0
- package/dist/components/auth/OTP.mjs +301 -0
- package/dist/components/auth/OTP.mjs.map +1 -0
- package/dist/components/auth/OrSeparator.d.ts +2 -0
- package/dist/components/auth/OrSeparator.d.ts.map +1 -0
- package/dist/components/auth/OrSeparator.js +20 -0
- package/dist/components/auth/OrSeparator.js.map +1 -0
- package/dist/components/auth/OrSeparator.mjs +18 -0
- package/dist/components/auth/OrSeparator.mjs.map +1 -0
- package/dist/components/auth/Passkey.d.ts +7 -0
- package/dist/components/auth/Passkey.d.ts.map +1 -0
- package/dist/components/auth/Passkey.js +34 -0
- package/dist/components/auth/Passkey.js.map +1 -0
- package/dist/components/auth/Passkey.mjs +30 -0
- package/dist/components/auth/Passkey.mjs.map +1 -0
- package/dist/components/auth/Phone.d.ts +6 -0
- package/dist/components/auth/Phone.d.ts.map +1 -0
- package/dist/components/auth/Phone.js +67 -0
- package/dist/components/auth/Phone.js.map +1 -0
- package/dist/components/auth/Phone.mjs +92 -0
- package/dist/components/auth/Phone.mjs.map +1 -0
- package/dist/components/auth/Wallet.d.ts +34 -0
- package/dist/components/auth/Wallet.d.ts.map +1 -0
- package/dist/components/auth/Wallet.js +517 -0
- package/dist/components/auth/Wallet.js.map +1 -0
- package/dist/components/auth/Wallet.mjs +618 -0
- package/dist/components/auth/Wallet.mjs.map +1 -0
- package/dist/components/auth/index.d.ts +9 -0
- package/dist/components/auth/index.d.ts.map +1 -0
- package/dist/components/auth/index.js +457 -0
- package/dist/components/auth/index.js.map +1 -0
- package/dist/components/auth/index.mjs +672 -0
- package/dist/components/auth/index.mjs.map +1 -0
- package/dist/components/design/Buttons.d.ts +29 -0
- package/dist/components/design/Buttons.d.ts.map +1 -0
- package/dist/components/design/Buttons.js +87 -0
- package/dist/components/design/Buttons.js.map +1 -0
- package/dist/components/design/Buttons.mjs +79 -0
- package/dist/components/design/Buttons.mjs.map +1 -0
- package/dist/components/design/Failure.d.ts +9 -0
- package/dist/components/design/Failure.d.ts.map +1 -0
- package/dist/components/design/Failure.js +33 -0
- package/dist/components/design/Failure.js.map +1 -0
- package/dist/components/design/Failure.mjs +34 -0
- package/dist/components/design/Failure.mjs.map +1 -0
- package/dist/components/design/Inputs.d.ts +9 -0
- package/dist/components/design/Inputs.d.ts.map +1 -0
- package/dist/components/design/Inputs.js +135 -0
- package/dist/components/design/Inputs.js.map +1 -0
- package/dist/components/design/Inputs.mjs +133 -0
- package/dist/components/design/Inputs.mjs.map +1 -0
- package/dist/components/design/Lottie/Dynamic.d.ts +2 -0
- package/dist/components/design/Lottie/Dynamic.d.ts.map +1 -0
- package/dist/components/design/Lottie/Dynamic.js +9 -0
- package/dist/components/design/Lottie/Dynamic.js.map +1 -0
- package/dist/components/design/Lottie/Dynamic.mjs +24 -0
- package/dist/components/design/Lottie/Dynamic.mjs.map +1 -0
- package/dist/components/design/Lottie/Wrapper.d.ts +8 -0
- package/dist/components/design/Lottie/Wrapper.d.ts.map +1 -0
- package/dist/components/design/Lottie/Wrapper.js +26 -0
- package/dist/components/design/Lottie/Wrapper.js.map +1 -0
- package/dist/components/design/Lottie/Wrapper.mjs +42 -0
- package/dist/components/design/Lottie/Wrapper.mjs.map +1 -0
- package/dist/components/design/Spinners.d.ts +9 -0
- package/dist/components/design/Spinners.d.ts.map +1 -0
- package/dist/components/design/Spinners.js +38 -0
- package/dist/components/design/Spinners.js.map +1 -0
- package/dist/components/design/Spinners.mjs +37 -0
- package/dist/components/design/Spinners.mjs.map +1 -0
- package/dist/components/design/Success.d.ts +8 -0
- package/dist/components/design/Success.d.ts.map +1 -0
- package/dist/components/design/Success.js +82 -0
- package/dist/components/design/Success.js.map +1 -0
- package/dist/components/design/Success.mjs +86 -0
- package/dist/components/design/Success.mjs.map +1 -0
- package/dist/components/design/Svg.d.ts +13 -0
- package/dist/components/design/Svg.d.ts.map +1 -0
- package/dist/components/design/Svg.js +165 -0
- package/dist/components/design/Svg.js.map +1 -0
- package/dist/components/design/Svg.mjs +161 -0
- package/dist/components/design/Svg.mjs.map +1 -0
- package/dist/components/export/Export.d.ts +13 -0
- package/dist/components/export/Export.d.ts.map +1 -0
- package/dist/components/export/Export.js +169 -0
- package/dist/components/export/Export.js.map +1 -0
- package/dist/components/export/Export.mjs +213 -0
- package/dist/components/export/Export.mjs.map +1 -0
- package/dist/components/export/ExportWarning.d.ts +15 -0
- package/dist/components/export/ExportWarning.d.ts.map +1 -0
- package/dist/components/export/ExportWarning.js +141 -0
- package/dist/components/export/ExportWarning.js.map +1 -0
- package/dist/components/export/ExportWarning.mjs +174 -0
- package/dist/components/export/ExportWarning.mjs.map +1 -0
- package/dist/components/import/Import.d.ts +20 -0
- package/dist/components/import/Import.d.ts.map +1 -0
- package/dist/components/import/Import.js +290 -0
- package/dist/components/import/Import.js.map +1 -0
- package/dist/components/import/Import.mjs +422 -0
- package/dist/components/import/Import.mjs.map +1 -0
- package/dist/components/onramp/OnRamp.d.ts +14 -0
- package/dist/components/onramp/OnRamp.d.ts.map +1 -0
- package/dist/components/onramp/OnRamp.js +61 -0
- package/dist/components/onramp/OnRamp.js.map +1 -0
- package/dist/components/onramp/OnRamp.mjs +79 -0
- package/dist/components/onramp/OnRamp.mjs.map +1 -0
- package/dist/components/send-transaction/SendTransaction.d.ts +12 -0
- package/dist/components/send-transaction/SendTransaction.d.ts.map +1 -0
- package/dist/components/send-transaction/SendTransaction.js +65 -0
- package/dist/components/send-transaction/SendTransaction.js.map +1 -0
- package/dist/components/send-transaction/SendTransaction.mjs +89 -0
- package/dist/components/send-transaction/SendTransaction.mjs.map +1 -0
- package/dist/components/send-transaction/helpers.d.ts +4 -0
- package/dist/components/send-transaction/helpers.d.ts.map +1 -0
- package/dist/components/send-transaction/helpers.js +37 -0
- package/dist/components/send-transaction/helpers.js.map +1 -0
- package/dist/components/send-transaction/helpers.mjs +34 -0
- package/dist/components/send-transaction/helpers.mjs.map +1 -0
- package/dist/components/sign/Message.d.ts +18 -0
- package/dist/components/sign/Message.d.ts.map +1 -0
- package/dist/components/sign/Message.js +132 -0
- package/dist/components/sign/Message.js.map +1 -0
- package/dist/components/sign/Message.mjs +148 -0
- package/dist/components/sign/Message.mjs.map +1 -0
- package/dist/components/user/ConnectWallet.d.ts +8 -0
- package/dist/components/user/ConnectWallet.d.ts.map +1 -0
- package/dist/components/user/ConnectWallet.js +114 -0
- package/dist/components/user/ConnectWallet.js.map +1 -0
- package/dist/components/user/ConnectWallet.mjs +194 -0
- package/dist/components/user/ConnectWallet.mjs.map +1 -0
- package/dist/components/user/RemoveEmail.d.ts +12 -0
- package/dist/components/user/RemoveEmail.d.ts.map +1 -0
- package/dist/components/user/RemoveEmail.js +105 -0
- package/dist/components/user/RemoveEmail.js.map +1 -0
- package/dist/components/user/RemoveEmail.mjs +124 -0
- package/dist/components/user/RemoveEmail.mjs.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts +12 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.js +110 -0
- package/dist/components/user/RemoveOAuthProvider.js.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.mjs +131 -0
- package/dist/components/user/RemoveOAuthProvider.mjs.map +1 -0
- package/dist/components/user/RemovePasskey.d.ts +12 -0
- package/dist/components/user/RemovePasskey.d.ts.map +1 -0
- package/dist/components/user/RemovePasskey.js +114 -0
- package/dist/components/user/RemovePasskey.js.map +1 -0
- package/dist/components/user/RemovePasskey.mjs +135 -0
- package/dist/components/user/RemovePasskey.mjs.map +1 -0
- package/dist/components/user/RemovePhoneNumber.d.ts +12 -0
- package/dist/components/user/RemovePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/RemovePhoneNumber.js +105 -0
- package/dist/components/user/RemovePhoneNumber.js.map +1 -0
- package/dist/components/user/RemovePhoneNumber.mjs +124 -0
- package/dist/components/user/RemovePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateEmail.d.ts +12 -0
- package/dist/components/user/UpdateEmail.d.ts.map +1 -0
- package/dist/components/user/UpdateEmail.js +154 -0
- package/dist/components/user/UpdateEmail.js.map +1 -0
- package/dist/components/user/UpdateEmail.mjs +197 -0
- package/dist/components/user/UpdateEmail.mjs.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts +12 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.js +151 -0
- package/dist/components/user/UpdatePhoneNumber.js.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.mjs +198 -0
- package/dist/components/user/UpdatePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateUserName.d.ts +13 -0
- package/dist/components/user/UpdateUserName.d.ts.map +1 -0
- package/dist/components/user/UpdateUserName.js +113 -0
- package/dist/components/user/UpdateUserName.js.map +1 -0
- package/dist/components/user/UpdateUserName.mjs +139 -0
- package/dist/components/user/UpdateUserName.mjs.map +1 -0
- package/dist/components/verify/Verify.d.ts +9 -0
- package/dist/components/verify/Verify.d.ts.map +1 -0
- package/dist/components/verify/Verify.js +121 -0
- package/dist/components/verify/Verify.js.map +1 -0
- package/dist/components/verify/Verify.mjs +149 -0
- package/dist/components/verify/Verify.mjs.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +8 -0
- package/dist/index.mjs.map +1 -0
- package/dist/providers/ZeroXKeyProvider.d.ts +9 -0
- package/dist/providers/ZeroXKeyProvider.d.ts.map +1 -0
- package/dist/providers/ZeroXKeyProvider.js +36 -0
- package/dist/providers/ZeroXKeyProvider.js.map +1 -0
- package/dist/providers/ZeroXKeyProvider.mjs +34 -0
- package/dist/providers/ZeroXKeyProvider.mjs.map +1 -0
- package/dist/providers/client/Hook.d.ts +4 -0
- package/dist/providers/client/Hook.d.ts.map +1 -0
- package/dist/providers/client/Hook.js +15 -0
- package/dist/providers/client/Hook.js.map +1 -0
- package/dist/providers/client/Hook.mjs +13 -0
- package/dist/providers/client/Hook.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts +39 -0
- package/dist/providers/client/Provider.d.ts.map +1 -0
- package/dist/providers/client/Provider.js +3934 -0
- package/dist/providers/client/Provider.js.map +1 -0
- package/dist/providers/client/Provider.mjs +6895 -0
- package/dist/providers/client/Provider.mjs.map +1 -0
- package/dist/providers/client/Types.d.ts +711 -0
- package/dist/providers/client/Types.d.ts.map +1 -0
- package/dist/providers/client/Types.js +10 -0
- package/dist/providers/client/Types.js.map +1 -0
- package/dist/providers/client/Types.mjs +8 -0
- package/dist/providers/client/Types.mjs.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/modal/Hook.d.ts +4 -0
- package/dist/providers/modal/Hook.d.ts.map +1 -0
- package/dist/providers/modal/Hook.js +15 -0
- package/dist/providers/modal/Hook.js.map +1 -0
- package/dist/providers/modal/Hook.mjs +13 -0
- package/dist/providers/modal/Hook.mjs.map +1 -0
- package/dist/providers/modal/Provider.d.ts +27 -0
- package/dist/providers/modal/Provider.d.ts.map +1 -0
- package/dist/providers/modal/Provider.js +48 -0
- package/dist/providers/modal/Provider.js.map +1 -0
- package/dist/providers/modal/Provider.mjs +68 -0
- package/dist/providers/modal/Provider.mjs.map +1 -0
- package/dist/providers/modal/Root.d.ts +7 -0
- package/dist/providers/modal/Root.d.ts.map +1 -0
- package/dist/providers/modal/Root.js +345 -0
- package/dist/providers/modal/Root.js.map +1 -0
- package/dist/providers/modal/Root.mjs +352 -0
- package/dist/providers/modal/Root.mjs.map +1 -0
- package/dist/providers/theme/Overrides.d.ts +18 -0
- package/dist/providers/theme/Overrides.d.ts.map +1 -0
- package/dist/providers/theme/Overrides.js +35 -0
- package/dist/providers/theme/Overrides.js.map +1 -0
- package/dist/providers/theme/Overrides.mjs +37 -0
- package/dist/providers/theme/Overrides.mjs.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/tests/oauth-test.d.ts +2 -0
- package/dist/tests/oauth-test.d.ts.map +1 -0
- package/dist/tests/timers-test.d.ts +2 -0
- package/dist/tests/timers-test.d.ts.map +1 -0
- package/dist/tests/utils-test.d.ts +2 -0
- package/dist/tests/utils-test.d.ts.map +1 -0
- package/dist/typedoc-entry/index.d.ts +5 -0
- package/dist/typedoc-entry/index.d.ts.map +1 -0
- package/dist/types/base.d.ts +178 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +55 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/base.mjs +50 -0
- package/dist/types/base.mjs.map +1 -0
- package/dist/types/method-types.d.ts +258 -0
- package/dist/types/method-types.d.ts.map +1 -0
- 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 +94 -0
- package/dist/utils/oauth/url.d.ts.map +1 -0
- package/dist/utils/oauth/url.js +224 -0
- package/dist/utils/oauth/url.js.map +1 -0
- package/dist/utils/oauth/url.mjs +230 -0
- package/dist/utils/oauth/url.mjs.map +1 -0
- package/dist/utils/timers.d.ts +73 -0
- package/dist/utils/timers.d.ts.map +1 -0
- package/dist/utils/timers.js +133 -0
- package/dist/utils/timers.js.map +1 -0
- package/dist/utils/timers.mjs +142 -0
- package/dist/utils/timers.mjs.map +1 -0
- package/dist/utils/utils.d.ts +40 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +116 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/utils.mjs +164 -0
- package/dist/utils/utils.mjs.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { ZeroXKeyError, ZeroXKeyErrorCodes } from '@0xkey-io/sdk-types';
|
|
3
|
+
import { consumePKCEVerifier } from './storage.mjs';
|
|
4
|
+
import { OAUTH_PROVIDER_CONFIGS } from './config.mjs';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Unified OAuth completion handler.
|
|
8
|
+
* Routes to the appropriate completion handler based on params:
|
|
9
|
+
* Priority: onAddProvider > onOauthSuccess > callbacks.onOauthRedirect > completeOauth
|
|
10
|
+
*
|
|
11
|
+
* This is the core completion logic used by both popup and redirect flows.
|
|
12
|
+
*/
|
|
13
|
+
function completeOAuthFlow(_x) {
|
|
14
|
+
return _completeOAuthFlow.apply(this, arguments);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Completes OAuth flow in popup - handles both PKCE and non-PKCE providers
|
|
18
|
+
*/
|
|
19
|
+
function _completeOAuthFlow() {
|
|
20
|
+
_completeOAuthFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(params) {
|
|
21
|
+
var provider, publicKey, oidcToken, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider;
|
|
22
|
+
return _regenerator().w(function (_context) {
|
|
23
|
+
while (1) switch (_context.n) {
|
|
24
|
+
case 0:
|
|
25
|
+
provider = params.provider, publicKey = params.publicKey, oidcToken = params.oidcToken, sessionKey = params.sessionKey, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, onAddProvider = params.onAddProvider;
|
|
26
|
+
if (!onAddProvider) {
|
|
27
|
+
_context.n = 2;
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
_context.n = 1;
|
|
31
|
+
return onAddProvider(oidcToken);
|
|
32
|
+
case 1:
|
|
33
|
+
_context.n = 5;
|
|
34
|
+
break;
|
|
35
|
+
case 2:
|
|
36
|
+
if (!onOauthSuccess) {
|
|
37
|
+
_context.n = 3;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
onOauthSuccess(_objectSpread2({
|
|
41
|
+
publicKey: publicKey,
|
|
42
|
+
oidcToken: oidcToken,
|
|
43
|
+
providerName: provider
|
|
44
|
+
}, sessionKey && {
|
|
45
|
+
sessionKey: sessionKey
|
|
46
|
+
}));
|
|
47
|
+
_context.n = 5;
|
|
48
|
+
break;
|
|
49
|
+
case 3:
|
|
50
|
+
if (!(callbacks !== null && callbacks !== void 0 && callbacks.onOauthRedirect)) {
|
|
51
|
+
_context.n = 4;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
callbacks.onOauthRedirect(_objectSpread2({
|
|
55
|
+
idToken: oidcToken,
|
|
56
|
+
publicKey: publicKey
|
|
57
|
+
}, sessionKey && {
|
|
58
|
+
sessionKey: sessionKey
|
|
59
|
+
}));
|
|
60
|
+
_context.n = 5;
|
|
61
|
+
break;
|
|
62
|
+
case 4:
|
|
63
|
+
_context.n = 5;
|
|
64
|
+
return completeOauth(_objectSpread2({
|
|
65
|
+
oidcToken: oidcToken,
|
|
66
|
+
publicKey: publicKey,
|
|
67
|
+
providerName: provider
|
|
68
|
+
}, sessionKey && {
|
|
69
|
+
sessionKey: sessionKey
|
|
70
|
+
}));
|
|
71
|
+
case 5:
|
|
72
|
+
return _context.a(2);
|
|
73
|
+
}
|
|
74
|
+
}, _callee);
|
|
75
|
+
}));
|
|
76
|
+
return _completeOAuthFlow.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
function completeOAuthPopup(_x2) {
|
|
79
|
+
return _completeOAuthPopup.apply(this, arguments);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Unified PKCE flow handler for all PKCE-based OAuth providers.
|
|
83
|
+
* Handles the complete PKCE flow: verifier retrieval, token exchange, and completion routing.
|
|
84
|
+
*
|
|
85
|
+
* This function abstracts the common logic shared between popup and redirect flows
|
|
86
|
+
* for Facebook, Discord, and Twitter/X.
|
|
87
|
+
*
|
|
88
|
+
* @param params - The PKCE flow parameters
|
|
89
|
+
* @returns A promise that resolves when the flow is complete
|
|
90
|
+
*/
|
|
91
|
+
function _completeOAuthPopup() {
|
|
92
|
+
_completeOAuthPopup = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(params) {
|
|
93
|
+
var provider, publicKey, result, callbacks, completeOauth, onOauthSuccess, exchangeCodeForToken, config;
|
|
94
|
+
return _regenerator().w(function (_context2) {
|
|
95
|
+
while (1) switch (_context2.n) {
|
|
96
|
+
case 0:
|
|
97
|
+
provider = params.provider, publicKey = params.publicKey, result = params.result, callbacks = params.callbacks, completeOauth = params.completeOauth, onOauthSuccess = params.onOauthSuccess, exchangeCodeForToken = params.exchangeCodeForToken;
|
|
98
|
+
config = OAUTH_PROVIDER_CONFIGS[provider];
|
|
99
|
+
if (!config.usesPKCE) {
|
|
100
|
+
_context2.n = 3;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
if (exchangeCodeForToken) {
|
|
104
|
+
_context2.n = 1;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
throw new ZeroXKeyError("exchangeCodeForToken is required for PKCE providers", ZeroXKeyErrorCodes.INTERNAL_ERROR);
|
|
108
|
+
case 1:
|
|
109
|
+
_context2.n = 2;
|
|
110
|
+
return completePKCEFlow({
|
|
111
|
+
publicKey: publicKey,
|
|
112
|
+
providerName: provider,
|
|
113
|
+
sessionKey: result.sessionKey,
|
|
114
|
+
callbacks: callbacks,
|
|
115
|
+
completeOauth: completeOauth,
|
|
116
|
+
onOauthSuccess: onOauthSuccess,
|
|
117
|
+
exchangeCodeForToken: exchangeCodeForToken
|
|
118
|
+
});
|
|
119
|
+
case 2:
|
|
120
|
+
_context2.n = 4;
|
|
121
|
+
break;
|
|
122
|
+
case 3:
|
|
123
|
+
_context2.n = 4;
|
|
124
|
+
return completeOAuthFlow({
|
|
125
|
+
provider: provider,
|
|
126
|
+
publicKey: publicKey,
|
|
127
|
+
oidcToken: result.idToken,
|
|
128
|
+
sessionKey: result.sessionKey,
|
|
129
|
+
callbacks: callbacks,
|
|
130
|
+
completeOauth: completeOauth,
|
|
131
|
+
onOauthSuccess: onOauthSuccess
|
|
132
|
+
});
|
|
133
|
+
case 4:
|
|
134
|
+
return _context2.a(2);
|
|
135
|
+
}
|
|
136
|
+
}, _callee2);
|
|
137
|
+
}));
|
|
138
|
+
return _completeOAuthPopup.apply(this, arguments);
|
|
139
|
+
}
|
|
140
|
+
function completePKCEFlow(_x3) {
|
|
141
|
+
return _completePKCEFlow.apply(this, arguments);
|
|
142
|
+
}
|
|
143
|
+
function _completePKCEFlow() {
|
|
144
|
+
_completePKCEFlow = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(_ref) {
|
|
145
|
+
var publicKey, providerName, sessionKey, callbacks, completeOauth, onOauthSuccess, onAddProvider, exchangeCodeForToken, verifier, oidcToken;
|
|
146
|
+
return _regenerator().w(function (_context3) {
|
|
147
|
+
while (1) switch (_context3.n) {
|
|
148
|
+
case 0:
|
|
149
|
+
publicKey = _ref.publicKey, providerName = _ref.providerName, sessionKey = _ref.sessionKey, callbacks = _ref.callbacks, completeOauth = _ref.completeOauth, onOauthSuccess = _ref.onOauthSuccess, onAddProvider = _ref.onAddProvider, exchangeCodeForToken = _ref.exchangeCodeForToken;
|
|
150
|
+
// Consume the verifier (retrieves and removes from storage)
|
|
151
|
+
verifier = consumePKCEVerifier(providerName); // Exchange the code for an OIDC token using the provider-specific function
|
|
152
|
+
_context3.n = 1;
|
|
153
|
+
return exchangeCodeForToken(verifier);
|
|
154
|
+
case 1:
|
|
155
|
+
oidcToken = _context3.v;
|
|
156
|
+
_context3.n = 2;
|
|
157
|
+
return completeOAuthFlow({
|
|
158
|
+
provider: providerName,
|
|
159
|
+
publicKey: publicKey,
|
|
160
|
+
oidcToken: oidcToken,
|
|
161
|
+
sessionKey: sessionKey,
|
|
162
|
+
callbacks: callbacks,
|
|
163
|
+
completeOauth: completeOauth,
|
|
164
|
+
onOauthSuccess: onOauthSuccess,
|
|
165
|
+
onAddProvider: onAddProvider
|
|
166
|
+
});
|
|
167
|
+
case 2:
|
|
168
|
+
return _context3.a(2);
|
|
169
|
+
}
|
|
170
|
+
}, _callee3);
|
|
171
|
+
}));
|
|
172
|
+
return _completePKCEFlow.apply(this, arguments);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { completeOAuthFlow, completeOAuthPopup, completePKCEFlow };
|
|
176
|
+
//# sourceMappingURL=completion.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.mjs","sources":["../../../src/utils/oauth/completion.ts"],"sourcesContent":[null],"names":["completeOAuthFlow","_x","_completeOAuthFlow","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","params","provider","publicKey","oidcToken","sessionKey","callbacks","completeOauth","onOauthSuccess","onAddProvider","w","_context","n","_objectSpread","providerName","onOauthRedirect","idToken","a","completeOAuthPopup","_x2","_completeOAuthPopup","_callee2","result","exchangeCodeForToken","config","_context2","OAUTH_PROVIDER_CONFIGS","usesPKCE","ZeroXKeyError","ZeroXKeyErrorCodes","INTERNAL_ERROR","completePKCEFlow","_x3","_completePKCEFlow","_callee3","_ref","verifier","_context3","consumePKCEVerifier","v"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OAuthProviders } from "@0xkey-io/sdk-types";
|
|
2
|
+
export declare const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
3
|
+
export declare const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
4
|
+
export declare const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
5
|
+
export declare const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
6
|
+
export declare const APPLE_AUTH_SCRIPT_URL = "https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js";
|
|
7
|
+
export declare const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
8
|
+
export declare const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
9
|
+
export declare const popupWidth = 500;
|
|
10
|
+
export declare const popupHeight = 600;
|
|
11
|
+
/**
|
|
12
|
+
* OAuth provider configuration for unified OAuth flow handling
|
|
13
|
+
*/
|
|
14
|
+
export interface OAuthProviderConfig {
|
|
15
|
+
/** The provider identifier */
|
|
16
|
+
provider: OAuthProviders;
|
|
17
|
+
/** The base OAuth authorization URL */
|
|
18
|
+
authUrl: string;
|
|
19
|
+
/** OAuth scopes to request */
|
|
20
|
+
scopes: string;
|
|
21
|
+
/** Whether this provider uses PKCE */
|
|
22
|
+
usesPKCE: boolean;
|
|
23
|
+
/** Response type for the OAuth request */
|
|
24
|
+
responseType: string;
|
|
25
|
+
/** Optional response mode (e.g., 'fragment' for Apple) */
|
|
26
|
+
responseMode?: string;
|
|
27
|
+
/** Whether to include nonce in the URL params (vs state) */
|
|
28
|
+
nonceInParams?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Pre-configured OAuth provider settings
|
|
32
|
+
*/
|
|
33
|
+
export declare const OAUTH_PROVIDER_CONFIGS: Record<OAuthProviders, OAuthProviderConfig>;
|
|
34
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,gBAAgB,yCAAyC,CAAC;AACvE,eAAO,MAAM,UAAU,qCAAqC,CAAC;AAC7D,eAAO,MAAM,eAAe,iDAAiD,CAAC;AAC9E,eAAO,MAAM,cAAc,6CAA6C,CAAC;AACzE,eAAO,MAAM,qBAAqB,yFACsD,CAAC;AACzF,eAAO,MAAM,iBAAiB,gDAAgD,CAAC;AAC/E,eAAO,MAAM,kBAAkB,wDACwB,CAAC;AAExD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,cAAc,EACd,mBAAmB,CA2CpB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@0xkey-io/sdk-types');
|
|
4
|
+
|
|
5
|
+
const DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
6
|
+
const X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
7
|
+
const GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
8
|
+
const APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
9
|
+
const FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
10
|
+
const FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
11
|
+
const popupWidth = 500;
|
|
12
|
+
const popupHeight = 600;
|
|
13
|
+
/**
|
|
14
|
+
* Pre-configured OAuth provider settings
|
|
15
|
+
*/
|
|
16
|
+
const OAUTH_PROVIDER_CONFIGS = {
|
|
17
|
+
[sdkTypes.OAuthProviders.GOOGLE]: {
|
|
18
|
+
provider: sdkTypes.OAuthProviders.GOOGLE,
|
|
19
|
+
authUrl: GOOGLE_AUTH_URL,
|
|
20
|
+
scopes: "openid email profile",
|
|
21
|
+
usesPKCE: false,
|
|
22
|
+
responseType: "id_token",
|
|
23
|
+
nonceInParams: true
|
|
24
|
+
},
|
|
25
|
+
[sdkTypes.OAuthProviders.APPLE]: {
|
|
26
|
+
provider: sdkTypes.OAuthProviders.APPLE,
|
|
27
|
+
authUrl: APPLE_AUTH_URL,
|
|
28
|
+
scopes: "",
|
|
29
|
+
usesPKCE: false,
|
|
30
|
+
responseType: "code id_token",
|
|
31
|
+
responseMode: "fragment",
|
|
32
|
+
nonceInParams: true
|
|
33
|
+
},
|
|
34
|
+
[sdkTypes.OAuthProviders.FACEBOOK]: {
|
|
35
|
+
provider: sdkTypes.OAuthProviders.FACEBOOK,
|
|
36
|
+
authUrl: FACEBOOK_AUTH_URL,
|
|
37
|
+
scopes: "openid",
|
|
38
|
+
usesPKCE: true,
|
|
39
|
+
responseType: "code",
|
|
40
|
+
nonceInParams: true
|
|
41
|
+
},
|
|
42
|
+
[sdkTypes.OAuthProviders.DISCORD]: {
|
|
43
|
+
provider: sdkTypes.OAuthProviders.DISCORD,
|
|
44
|
+
authUrl: DISCORD_AUTH_URL,
|
|
45
|
+
scopes: "identify email",
|
|
46
|
+
usesPKCE: true,
|
|
47
|
+
responseType: "code",
|
|
48
|
+
nonceInParams: false
|
|
49
|
+
},
|
|
50
|
+
[sdkTypes.OAuthProviders.X]: {
|
|
51
|
+
provider: sdkTypes.OAuthProviders.X,
|
|
52
|
+
authUrl: X_AUTH_URL,
|
|
53
|
+
scopes: "tweet.read users.read",
|
|
54
|
+
usesPKCE: true,
|
|
55
|
+
responseType: "code",
|
|
56
|
+
nonceInParams: false
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.APPLE_AUTH_URL = APPLE_AUTH_URL;
|
|
61
|
+
exports.DISCORD_AUTH_URL = DISCORD_AUTH_URL;
|
|
62
|
+
exports.FACEBOOK_AUTH_URL = FACEBOOK_AUTH_URL;
|
|
63
|
+
exports.FACEBOOK_GRAPH_URL = FACEBOOK_GRAPH_URL;
|
|
64
|
+
exports.GOOGLE_AUTH_URL = GOOGLE_AUTH_URL;
|
|
65
|
+
exports.OAUTH_PROVIDER_CONFIGS = OAUTH_PROVIDER_CONFIGS;
|
|
66
|
+
exports.X_AUTH_URL = X_AUTH_URL;
|
|
67
|
+
exports.popupHeight = popupHeight;
|
|
68
|
+
exports.popupWidth = popupWidth;
|
|
69
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;;AAEO,MAAMA,gBAAgB,GAAG;AACzB,MAAMC,UAAU,GAAG;AACnB,MAAMC,eAAe,GAAG;AACxB,MAAMC,cAAc,GAAG;AAGvB,MAAMC,iBAAiB,GAAG;AAC1B,MAAMC,kBAAkB,GAC7B;AAEK,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;AAsB3B;;AAEG;AACI,MAAMC,sBAAsB,GAG/B;EACF,CAACC,uBAAc,CAACC,MAAM,GAAG;IACvBC,QAAQ,EAAEF,uBAAc,CAACC,MAAM;AAC/BE,IAAAA,OAAO,EAAEV,eAAe;AACxBW,IAAAA,MAAM,EAAE,sBAAsB;AAC9BC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,UAAU;AACxBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACQ,KAAK,GAAG;IACtBN,QAAQ,EAAEF,uBAAc,CAACQ,KAAK;AAC9BL,IAAAA,OAAO,EAAET,cAAc;AACvBU,IAAAA,MAAM,EAAE,EAAE;AACVC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,YAAY,EAAE,eAAe;AAC7BG,IAAAA,YAAY,EAAE,UAAU;AACxBF,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACU,QAAQ,GAAG;IACzBR,QAAQ,EAAEF,uBAAc,CAACU,QAAQ;AACjCP,IAAAA,OAAO,EAAER,iBAAiB;AAC1BS,IAAAA,MAAM,EAAE,QAAQ;AAChBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACW,OAAO,GAAG;IACxBT,QAAQ,EAAEF,uBAAc,CAACW,OAAO;AAChCR,IAAAA,OAAO,EAAEZ,gBAAgB;AACzBa,IAAAA,MAAM,EAAE,gBAAgB;AACxBC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;GAChB;EACD,CAACP,uBAAc,CAACY,CAAC,GAAG;IAClBV,QAAQ,EAAEF,uBAAc,CAACY,CAAC;AAC1BT,IAAAA,OAAO,EAAEX,UAAU;AACnBY,IAAAA,MAAM,EAAE,uBAAuB;AAC/BC,IAAAA,QAAQ,EAAE,IAAI;AACdC,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE;AAChB;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { defineProperty as _defineProperty } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { OAuthProviders } from '@0xkey-io/sdk-types';
|
|
3
|
+
|
|
4
|
+
var DISCORD_AUTH_URL = "https://discord.com/oauth2/authorize";
|
|
5
|
+
var X_AUTH_URL = "https://x.com/i/oauth2/authorize";
|
|
6
|
+
var GOOGLE_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
7
|
+
var APPLE_AUTH_URL = "https://account.apple.com/auth/authorize";
|
|
8
|
+
var FACEBOOK_AUTH_URL = "https://www.facebook.com/v11.0/dialog/oauth";
|
|
9
|
+
var FACEBOOK_GRAPH_URL = "https://graph.facebook.com/v11.0/oauth/access_token";
|
|
10
|
+
var popupWidth = 500;
|
|
11
|
+
var popupHeight = 600;
|
|
12
|
+
/**
|
|
13
|
+
* Pre-configured OAuth provider settings
|
|
14
|
+
*/
|
|
15
|
+
var OAUTH_PROVIDER_CONFIGS = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, OAuthProviders.GOOGLE, {
|
|
16
|
+
provider: OAuthProviders.GOOGLE,
|
|
17
|
+
authUrl: GOOGLE_AUTH_URL,
|
|
18
|
+
scopes: "openid email profile",
|
|
19
|
+
usesPKCE: false,
|
|
20
|
+
responseType: "id_token",
|
|
21
|
+
nonceInParams: true
|
|
22
|
+
}), OAuthProviders.APPLE, {
|
|
23
|
+
provider: OAuthProviders.APPLE,
|
|
24
|
+
authUrl: APPLE_AUTH_URL,
|
|
25
|
+
scopes: "",
|
|
26
|
+
usesPKCE: false,
|
|
27
|
+
responseType: "code id_token",
|
|
28
|
+
responseMode: "fragment",
|
|
29
|
+
nonceInParams: true
|
|
30
|
+
}), OAuthProviders.FACEBOOK, {
|
|
31
|
+
provider: OAuthProviders.FACEBOOK,
|
|
32
|
+
authUrl: FACEBOOK_AUTH_URL,
|
|
33
|
+
scopes: "openid",
|
|
34
|
+
usesPKCE: true,
|
|
35
|
+
responseType: "code",
|
|
36
|
+
nonceInParams: true
|
|
37
|
+
}), OAuthProviders.DISCORD, {
|
|
38
|
+
provider: OAuthProviders.DISCORD,
|
|
39
|
+
authUrl: DISCORD_AUTH_URL,
|
|
40
|
+
scopes: "identify email",
|
|
41
|
+
usesPKCE: true,
|
|
42
|
+
responseType: "code",
|
|
43
|
+
nonceInParams: false
|
|
44
|
+
}), OAuthProviders.X, {
|
|
45
|
+
provider: OAuthProviders.X,
|
|
46
|
+
authUrl: X_AUTH_URL,
|
|
47
|
+
scopes: "tweet.read users.read",
|
|
48
|
+
usesPKCE: true,
|
|
49
|
+
responseType: "code",
|
|
50
|
+
nonceInParams: false
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
export { APPLE_AUTH_URL, DISCORD_AUTH_URL, FACEBOOK_AUTH_URL, FACEBOOK_GRAPH_URL, GOOGLE_AUTH_URL, OAUTH_PROVIDER_CONFIGS, X_AUTH_URL, popupHeight, popupWidth };
|
|
54
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.mjs","sources":["../../../src/utils/oauth/config.ts"],"sourcesContent":[null],"names":["DISCORD_AUTH_URL","X_AUTH_URL","GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","OAUTH_PROVIDER_CONFIGS","_defineProperty","OAuthProviders","GOOGLE","provider","authUrl","scopes","usesPKCE","responseType","nonceInParams","APPLE","responseMode","FACEBOOK","DISCORD","X"],"mappings":";;;AAEO,IAAMA,gBAAgB,GAAG;AACzB,IAAMC,UAAU,GAAG;AACnB,IAAMC,eAAe,GAAG;AACxB,IAAMC,cAAc,GAAG;AAGvB,IAAMC,iBAAiB,GAAG;AAC1B,IAAMC,kBAAkB,GAC7B;AAEK,IAAMC,UAAU,GAAG;AACnB,IAAMC,WAAW,GAAG;AAsB3B;;AAEG;IACUC,sBAAsB,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAA,EAAA,EAIhCC,cAAc,CAACC,MAAM,EAAG;EACvBC,QAAQ,EAAEF,cAAc,CAACC,MAAM;AAC/BE,EAAAA,OAAO,EAAEX,eAAe;AACxBY,EAAAA,MAAM,EAAE,sBAAsB;AAC9BC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,UAAU;AACxBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACQ,KAAK,EAAG;EACtBN,QAAQ,EAAEF,cAAc,CAACQ,KAAK;AAC9BL,EAAAA,OAAO,EAAEV,cAAc;AACvBW,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,eAAe;AAC7BG,EAAAA,YAAY,EAAE,UAAU;AACxBF,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACU,QAAQ,EAAG;EACzBR,QAAQ,EAAEF,cAAc,CAACU,QAAQ;AACjCP,EAAAA,OAAO,EAAET,iBAAiB;AAC1BU,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACW,OAAO,EAAG;EACxBT,QAAQ,EAAEF,cAAc,CAACW,OAAO;AAChCR,EAAAA,OAAO,EAAEb,gBAAgB;AACzBc,EAAAA,MAAM,EAAE,gBAAgB;AACxBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA,CAAA,EACAP,cAAc,CAACY,CAAC,EAAG;EAClBV,QAAQ,EAAEF,cAAc,CAACY,CAAC;AAC1BT,EAAAA,OAAO,EAAEZ,UAAU;AACnBa,EAAAA,MAAM,EAAE,uBAAuB;AAC/BC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,aAAa,EAAE;AAChB,CAAA;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capitalizes the first letter of a provider name
|
|
3
|
+
* @param provider - The provider name (e.g., "facebook", "discord")
|
|
4
|
+
* @returns The capitalized provider name (e.g., "Facebook", "Discord")
|
|
5
|
+
*/
|
|
6
|
+
export declare function capitalizeProviderName(provider: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Gets the FontAwesome icon for an OAuth provider
|
|
9
|
+
* @param provider - The provider name
|
|
10
|
+
* @returns The FontAwesome icon definition
|
|
11
|
+
*/
|
|
12
|
+
export declare function getProviderIcon(provider: string | null | undefined): import("@fortawesome/free-brands-svg-icons").IconDefinition;
|
|
13
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/helpers.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,+DAclE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@0xkey-io/sdk-types');
|
|
4
|
+
var freeBrandsSvgIcons = require('@fortawesome/free-brands-svg-icons');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Capitalizes the first letter of a provider name
|
|
8
|
+
* @param provider - The provider name (e.g., "facebook", "discord")
|
|
9
|
+
* @returns The capitalized provider name (e.g., "Facebook", "Discord")
|
|
10
|
+
*/
|
|
11
|
+
function capitalizeProviderName(provider) {
|
|
12
|
+
if (!provider) return "Provider";
|
|
13
|
+
return provider.charAt(0).toUpperCase() + provider.slice(1);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Gets the FontAwesome icon for an OAuth provider
|
|
17
|
+
* @param provider - The provider name
|
|
18
|
+
* @returns The FontAwesome icon definition
|
|
19
|
+
*/
|
|
20
|
+
function getProviderIcon(provider) {
|
|
21
|
+
switch (provider) {
|
|
22
|
+
case sdkTypes.OAuthProviders.FACEBOOK:
|
|
23
|
+
return freeBrandsSvgIcons.faFacebook;
|
|
24
|
+
case sdkTypes.OAuthProviders.DISCORD:
|
|
25
|
+
return freeBrandsSvgIcons.faDiscord;
|
|
26
|
+
case sdkTypes.OAuthProviders.X:
|
|
27
|
+
return freeBrandsSvgIcons.faXTwitter;
|
|
28
|
+
case sdkTypes.OAuthProviders.APPLE:
|
|
29
|
+
return freeBrandsSvgIcons.faApple;
|
|
30
|
+
case sdkTypes.OAuthProviders.GOOGLE:
|
|
31
|
+
default:
|
|
32
|
+
return freeBrandsSvgIcons.faGoogle;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.capitalizeProviderName = capitalizeProviderName;
|
|
37
|
+
exports.getProviderIcon = getProviderIcon;
|
|
38
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../src/utils/oauth/helpers.ts"],"sourcesContent":[null],"names":["capitalizeProviderName","provider","charAt","toUpperCase","slice","getProviderIcon","OAuthProviders","FACEBOOK","faFacebook","DISCORD","faDiscord","X","faXTwitter","APPLE","faApple","GOOGLE","faGoogle"],"mappings":";;;;;AASA;;;;AAIG;AACG,SAAUA,sBAAsBA,CAACC,QAAgB,EAAA;AACrD,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAO,UAAU;AAChC,EAAA,OAAOA,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC;AAC7D;AAEA;;;;AAIG;AACG,SAAUC,eAAeA,CAACJ,QAAmC,EAAA;AACjE,EAAA,QAAQA,QAAQ;IACd,KAAKK,uBAAc,CAACC,QAAQ;AAC1B,MAAA,OAAOC,6BAAU;IACnB,KAAKF,uBAAc,CAACG,OAAO;AACzB,MAAA,OAAOC,4BAAS;IAClB,KAAKJ,uBAAc,CAACK,CAAC;AACnB,MAAA,OAAOC,6BAAU;IACnB,KAAKN,uBAAc,CAACO,KAAK;AACvB,MAAA,OAAOC,0BAAO;IAChB,KAAKR,uBAAc,CAACS,MAAM;AAC1B,IAAA;AACE,MAAA,OAAOC,2BAAQ;AACnB;AACF;;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { OAuthProviders } from '@0xkey-io/sdk-types';
|
|
2
|
+
import { faGoogle, faApple, faXTwitter, faDiscord, faFacebook } from '@fortawesome/free-brands-svg-icons';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Capitalizes the first letter of a provider name
|
|
6
|
+
* @param provider - The provider name (e.g., "facebook", "discord")
|
|
7
|
+
* @returns The capitalized provider name (e.g., "Facebook", "Discord")
|
|
8
|
+
*/
|
|
9
|
+
function capitalizeProviderName(provider) {
|
|
10
|
+
if (!provider) return "Provider";
|
|
11
|
+
return provider.charAt(0).toUpperCase() + provider.slice(1);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Gets the FontAwesome icon for an OAuth provider
|
|
15
|
+
* @param provider - The provider name
|
|
16
|
+
* @returns The FontAwesome icon definition
|
|
17
|
+
*/
|
|
18
|
+
function getProviderIcon(provider) {
|
|
19
|
+
switch (provider) {
|
|
20
|
+
case OAuthProviders.FACEBOOK:
|
|
21
|
+
return faFacebook;
|
|
22
|
+
case OAuthProviders.DISCORD:
|
|
23
|
+
return faDiscord;
|
|
24
|
+
case OAuthProviders.X:
|
|
25
|
+
return faXTwitter;
|
|
26
|
+
case OAuthProviders.APPLE:
|
|
27
|
+
return faApple;
|
|
28
|
+
case OAuthProviders.GOOGLE:
|
|
29
|
+
default:
|
|
30
|
+
return faGoogle;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { capitalizeProviderName, getProviderIcon };
|
|
35
|
+
//# sourceMappingURL=helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.mjs","sources":["../../../src/utils/oauth/helpers.ts"],"sourcesContent":[null],"names":["capitalizeProviderName","provider","charAt","toUpperCase","slice","getProviderIcon","OAuthProviders","FACEBOOK","faFacebook","DISCORD","faDiscord","X","faXTwitter","APPLE","faApple","GOOGLE","faGoogle"],"mappings":";;;AASA;;;;AAIG;AACG,SAAUA,sBAAsBA,CAACC,QAAgB,EAAA;AACrD,EAAA,IAAI,CAACA,QAAQ,EAAE,OAAO,UAAU;AAChC,EAAA,OAAOA,QAAQ,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,QAAQ,CAACG,KAAK,CAAC,CAAC,CAAC;AAC7D;AAEA;;;;AAIG;AACG,SAAUC,eAAeA,CAACJ,QAAmC,EAAA;AACjE,EAAA,QAAQA,QAAQ;IACd,KAAKK,cAAc,CAACC,QAAQ;AAC1B,MAAA,OAAOC,UAAU;IACnB,KAAKF,cAAc,CAACG,OAAO;AACzB,MAAA,OAAOC,SAAS;IAClB,KAAKJ,cAAc,CAACK,CAAC;AACnB,MAAA,OAAOC,UAAU;IACnB,KAAKN,cAAc,CAACO,KAAK;AACvB,MAAA,OAAOC,OAAO;IAChB,KAAKR,cAAc,CAACS,MAAM;AAC1B,IAAA;AACE,MAAA,OAAOC,QAAQ;AACnB;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a PKCE challenge pair (verifier and code challenge)
|
|
3
|
+
*/
|
|
4
|
+
export declare function generateChallengePair(): Promise<{
|
|
5
|
+
verifier: string;
|
|
6
|
+
codeChallenge: string;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Exchanges Facebook authorization code for token
|
|
10
|
+
*/
|
|
11
|
+
export declare function exchangeFacebookCodeForToken(clientId: string, redirectUri: string, code: string, codeVerifier: string): Promise<{
|
|
12
|
+
id_token: string;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=pkce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/pkce.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAkBD;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAyB/B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var config = require('./config.js');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generates a PKCE challenge pair (verifier and code challenge)
|
|
7
|
+
*/
|
|
8
|
+
async function generateChallengePair() {
|
|
9
|
+
const randomBytes = new Uint8Array(32);
|
|
10
|
+
window.crypto.getRandomValues(randomBytes);
|
|
11
|
+
const verifier = btoa(String.fromCharCode(...randomBytes)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
12
|
+
const encoder = new TextEncoder();
|
|
13
|
+
const data = encoder.encode(verifier);
|
|
14
|
+
const digest = await window.crypto.subtle.digest("SHA-256", data);
|
|
15
|
+
const base64Challenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
16
|
+
return {
|
|
17
|
+
verifier,
|
|
18
|
+
codeChallenge: base64Challenge
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Exchanges Facebook authorization code for token
|
|
23
|
+
*/
|
|
24
|
+
async function exchangeFacebookCodeForToken(clientId, redirectUri, code, codeVerifier) {
|
|
25
|
+
const params = new URLSearchParams({
|
|
26
|
+
client_id: clientId,
|
|
27
|
+
redirect_uri: redirectUri,
|
|
28
|
+
code_verifier: codeVerifier,
|
|
29
|
+
code: code,
|
|
30
|
+
grant_type: "authorization_code"
|
|
31
|
+
});
|
|
32
|
+
const response = await fetch(config.FACEBOOK_GRAPH_URL, {
|
|
33
|
+
method: "POST",
|
|
34
|
+
headers: {
|
|
35
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
36
|
+
},
|
|
37
|
+
body: params.toString()
|
|
38
|
+
});
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
const errorData = await response.json();
|
|
41
|
+
throw new Error(`Facebook token exchange failed: ${JSON.stringify(errorData)}`);
|
|
42
|
+
}
|
|
43
|
+
return await response.json();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
exports.exchangeFacebookCodeForToken = exchangeFacebookCodeForToken;
|
|
47
|
+
exports.generateChallengePair = generateChallengePair;
|
|
48
|
+
//# sourceMappingURL=pkce.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.js","sources":["../../../src/utils/oauth/pkce.ts"],"sourcesContent":[null],"names":["generateChallengePair","randomBytes","Uint8Array","window","crypto","getRandomValues","verifier","btoa","String","fromCharCode","replace","encoder","TextEncoder","data","encode","digest","subtle","base64Challenge","codeChallenge","exchangeFacebookCodeForToken","clientId","redirectUri","code","codeVerifier","params","URLSearchParams","client_id","redirect_uri","code_verifier","grant_type","response","fetch","FACEBOOK_GRAPH_URL","method","headers","body","toString","ok","errorData","json","Error","JSON","stringify"],"mappings":";;;;AAEA;;AAEG;AACI,eAAeA,qBAAqBA,GAAA;AAIzC,EAAA,MAAMC,WAAW,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;AACtCC,EAAAA,MAAM,CAACC,MAAM,CAACC,eAAe,CAACJ,WAAW,CAAC;AAC1C,EAAA,MAAMK,QAAQ,GAAGC,IAAI,CAACC,MAAM,CAACC,YAAY,CAAC,GAAGR,WAAW,CAAC,CAAC,CACvDS,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAErB,EAAA,MAAMC,OAAO,GAAG,IAAIC,WAAW,EAAE;AACjC,EAAA,MAAMC,IAAI,GAAGF,OAAO,CAACG,MAAM,CAACR,QAAQ,CAAC;AACrC,EAAA,MAAMS,MAAM,GAAG,MAAMZ,MAAM,CAACC,MAAM,CAACY,MAAM,CAACD,MAAM,CAAC,SAAS,EAAEF,IAAI,CAAC;AAEjE,EAAA,MAAMI,eAAe,GAAGV,IAAI,CAACC,MAAM,CAACC,YAAY,CAAC,GAAG,IAAIP,UAAU,CAACa,MAAM,CAAC,CAAC,CAAC,CACzEL,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnBA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAErB,OAAO;IAAEJ,QAAQ;AAAEY,IAAAA,aAAa,EAAED;GAAiB;AACrD;AAEA;;AAEG;AACI,eAAeE,4BAA4BA,CAChDC,QAAgB,EAChBC,WAAmB,EACnBC,IAAY,EACZC,YAAoB,EAAA;AAEpB,EAAA,MAAMC,MAAM,GAAG,IAAIC,eAAe,CAAC;AACjCC,IAAAA,SAAS,EAAEN,QAAQ;AACnBO,IAAAA,YAAY,EAAEN,WAAW;AACzBO,IAAAA,aAAa,EAAEL,YAAY;AAC3BD,IAAAA,IAAI,EAAEA,IAAI;AACVO,IAAAA,UAAU,EAAE;AACb,GAAA,CAAC;AAEF,EAAA,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACC,yBAAkB,EAAE;AAC/CC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,OAAO,EAAE;AACP,MAAA,cAAc,EAAE;KACjB;AACDC,IAAAA,IAAI,EAAEX,MAAM,CAACY,QAAQ;AACtB,GAAA,CAAC;AAEF,EAAA,IAAI,CAACN,QAAQ,CAACO,EAAE,EAAE;AAChB,IAAA,MAAMC,SAAS,GAAG,MAAMR,QAAQ,CAACS,IAAI,EAAE;IACvC,MAAM,IAAIC,KAAK,CACb,CAAA,gCAAA,EAAmCC,IAAI,CAACC,SAAS,CAACJ,SAAS,CAAC,CAAA,CAAE,CAC/D;AACH,EAAA;AAEA,EAAA,OAAO,MAAMR,QAAQ,CAACS,IAAI,EAAE;AAC9B;;;;;"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { asyncToGenerator as _asyncToGenerator, regenerator as _regenerator, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
2
|
+
import { FACEBOOK_GRAPH_URL } from './config.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Generates a PKCE challenge pair (verifier and code challenge)
|
|
6
|
+
*/
|
|
7
|
+
function generateChallengePair() {
|
|
8
|
+
return _generateChallengePair.apply(this, arguments);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Exchanges Facebook authorization code for token
|
|
12
|
+
*/
|
|
13
|
+
function _generateChallengePair() {
|
|
14
|
+
_generateChallengePair = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
15
|
+
var randomBytes, verifier, encoder, data, digest, base64Challenge;
|
|
16
|
+
return _regenerator().w(function (_context) {
|
|
17
|
+
while (1) switch (_context.n) {
|
|
18
|
+
case 0:
|
|
19
|
+
randomBytes = new Uint8Array(32);
|
|
20
|
+
window.crypto.getRandomValues(randomBytes);
|
|
21
|
+
verifier = btoa(String.fromCharCode.apply(String, _toConsumableArray(randomBytes))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
22
|
+
encoder = new TextEncoder();
|
|
23
|
+
data = encoder.encode(verifier);
|
|
24
|
+
_context.n = 1;
|
|
25
|
+
return window.crypto.subtle.digest("SHA-256", data);
|
|
26
|
+
case 1:
|
|
27
|
+
digest = _context.v;
|
|
28
|
+
base64Challenge = btoa(String.fromCharCode.apply(String, _toConsumableArray(new Uint8Array(digest)))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
29
|
+
return _context.a(2, {
|
|
30
|
+
verifier: verifier,
|
|
31
|
+
codeChallenge: base64Challenge
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}, _callee);
|
|
35
|
+
}));
|
|
36
|
+
return _generateChallengePair.apply(this, arguments);
|
|
37
|
+
}
|
|
38
|
+
function exchangeFacebookCodeForToken(_x, _x2, _x3, _x4) {
|
|
39
|
+
return _exchangeFacebookCodeForToken.apply(this, arguments);
|
|
40
|
+
}
|
|
41
|
+
function _exchangeFacebookCodeForToken() {
|
|
42
|
+
_exchangeFacebookCodeForToken = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(clientId, redirectUri, code, codeVerifier) {
|
|
43
|
+
var params, response, errorData;
|
|
44
|
+
return _regenerator().w(function (_context2) {
|
|
45
|
+
while (1) switch (_context2.n) {
|
|
46
|
+
case 0:
|
|
47
|
+
params = new URLSearchParams({
|
|
48
|
+
client_id: clientId,
|
|
49
|
+
redirect_uri: redirectUri,
|
|
50
|
+
code_verifier: codeVerifier,
|
|
51
|
+
code: code,
|
|
52
|
+
grant_type: "authorization_code"
|
|
53
|
+
});
|
|
54
|
+
_context2.n = 1;
|
|
55
|
+
return fetch(FACEBOOK_GRAPH_URL, {
|
|
56
|
+
method: "POST",
|
|
57
|
+
headers: {
|
|
58
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
59
|
+
},
|
|
60
|
+
body: params.toString()
|
|
61
|
+
});
|
|
62
|
+
case 1:
|
|
63
|
+
response = _context2.v;
|
|
64
|
+
if (response.ok) {
|
|
65
|
+
_context2.n = 3;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
_context2.n = 2;
|
|
69
|
+
return response.json();
|
|
70
|
+
case 2:
|
|
71
|
+
errorData = _context2.v;
|
|
72
|
+
throw new Error("Facebook token exchange failed: ".concat(JSON.stringify(errorData)));
|
|
73
|
+
case 3:
|
|
74
|
+
_context2.n = 4;
|
|
75
|
+
return response.json();
|
|
76
|
+
case 4:
|
|
77
|
+
return _context2.a(2, _context2.v);
|
|
78
|
+
}
|
|
79
|
+
}, _callee2);
|
|
80
|
+
}));
|
|
81
|
+
return _exchangeFacebookCodeForToken.apply(this, arguments);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export { exchangeFacebookCodeForToken, generateChallengePair };
|
|
85
|
+
//# sourceMappingURL=pkce.mjs.map
|