@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 @@
|
|
|
1
|
+
{"version":3,"file":"pkce.mjs","sources":["../../../src/utils/oauth/pkce.ts"],"sourcesContent":[null],"names":["generateChallengePair","_generateChallengePair","apply","arguments","_asyncToGenerator","_regenerator","m","_callee","randomBytes","verifier","encoder","data","digest","base64Challenge","w","_context","n","Uint8Array","window","crypto","getRandomValues","btoa","String","fromCharCode","_toConsumableArray","replace","TextEncoder","encode","subtle","v","a","codeChallenge","exchangeFacebookCodeForToken","_x","_x2","_x3","_x4","_exchangeFacebookCodeForToken","_callee2","clientId","redirectUri","code","codeVerifier","params","response","errorData","_context2","URLSearchParams","client_id","redirect_uri","code_verifier","grant_type","fetch","FACEBOOK_GRAPH_URL","method","headers","body","toString","ok","json","Error","concat","JSON","stringify"],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { OAuthProviders } from "@0xkey-io/sdk-types";
|
|
2
|
+
export declare const OAUTH_INTENT_ADD_PROVIDER = "addProvider";
|
|
3
|
+
export declare const OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
|
|
4
|
+
export type OAuthAddProviderMetadata = {
|
|
5
|
+
organizationId: string;
|
|
6
|
+
userId: string;
|
|
7
|
+
stampWith?: string;
|
|
8
|
+
successPageDuration?: number;
|
|
9
|
+
};
|
|
10
|
+
/** Provider type for PKCE-based OAuth */
|
|
11
|
+
export type PKCEProvider = OAuthProviders.FACEBOOK | OAuthProviders.DISCORD | OAuthProviders.X;
|
|
12
|
+
/**
|
|
13
|
+
* Stores OAuth add provider metadata in local storage
|
|
14
|
+
* Used for addOauthProvider flow if opening in-page
|
|
15
|
+
*/
|
|
16
|
+
export declare function storeOAuthAddProviderMetadata(metadata: OAuthAddProviderMetadata): void;
|
|
17
|
+
/**
|
|
18
|
+
* Retrieves OAuth add provider metadata from local storage
|
|
19
|
+
*/
|
|
20
|
+
export declare function getOAuthAddProviderMetadata(): OAuthAddProviderMetadata | null;
|
|
21
|
+
/**
|
|
22
|
+
* Gets the verifier key name for a PKCE provider
|
|
23
|
+
*/
|
|
24
|
+
export declare function getPKCEVerifierKey(provider: PKCEProvider): string;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves and removes the PKCE verifier from local storage
|
|
27
|
+
* @param provider - The OAuth provider
|
|
28
|
+
* @returns The verifier string
|
|
29
|
+
* @throws ZeroXKeyError if verifier is not found
|
|
30
|
+
*/
|
|
31
|
+
export declare function consumePKCEVerifier(provider: PKCEProvider): string;
|
|
32
|
+
/**
|
|
33
|
+
* Stores the PKCE verifier in local storage
|
|
34
|
+
* @param provider - The OAuth provider
|
|
35
|
+
* @param verifier - The verifier string to store
|
|
36
|
+
*/
|
|
37
|
+
export declare function storePKCEVerifier(provider: PKCEProvider, verifier: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Checks if a PKCE verifier exists for a provider (without consuming it)
|
|
40
|
+
* @param provider - The OAuth provider
|
|
41
|
+
* @returns true if verifier exists
|
|
42
|
+
*/
|
|
43
|
+
export declare function hasPKCEVerifier(provider: PKCEProvider): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Clears all OAuth-related data from local storage
|
|
46
|
+
*/
|
|
47
|
+
export declare function clearAllOAuthData(): void;
|
|
48
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AACvD,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAE7E,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,YAAY,GACpB,cAAc,CAAC,QAAQ,GACvB,cAAc,CAAC,OAAO,GACtB,cAAc,CAAC,CAAC,CAAC;AAOrB;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,wBAAwB,GACjC,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,wBAAwB,GAAG,IAAI,CAQ7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAWlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,GACf,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@0xkey-io/sdk-types');
|
|
4
|
+
|
|
5
|
+
const OAUTH_INTENT_ADD_PROVIDER = "addProvider";
|
|
6
|
+
const OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
|
|
7
|
+
// We use localStorage instead of sessionStorage to store OAuth data since the user
|
|
8
|
+
// might leave the current browsing context during the OAuth flow. We ran into this
|
|
9
|
+
// with X OAuth on Android where if the user has the X app installed, oauth would
|
|
10
|
+
// open the native app and when they come back to the browser, sessionStorage is gone
|
|
11
|
+
/**
|
|
12
|
+
* Stores OAuth add provider metadata in local storage
|
|
13
|
+
* Used for addOauthProvider flow if opening in-page
|
|
14
|
+
*/
|
|
15
|
+
function storeOAuthAddProviderMetadata(metadata) {
|
|
16
|
+
localStorage.setItem(OAUTH_ADD_PROVIDER_METADATA_KEY, JSON.stringify(metadata));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves OAuth add provider metadata from local storage
|
|
20
|
+
*/
|
|
21
|
+
function getOAuthAddProviderMetadata() {
|
|
22
|
+
const stored = localStorage.getItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
|
|
23
|
+
if (!stored) return null;
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(stored);
|
|
26
|
+
} catch {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets the verifier key name for a PKCE provider
|
|
32
|
+
*/
|
|
33
|
+
function getPKCEVerifierKey(provider) {
|
|
34
|
+
return `${provider}_verifier`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Retrieves and removes the PKCE verifier from local storage
|
|
38
|
+
* @param provider - The OAuth provider
|
|
39
|
+
* @returns The verifier string
|
|
40
|
+
* @throws ZeroXKeyError if verifier is not found
|
|
41
|
+
*/
|
|
42
|
+
function consumePKCEVerifier(provider) {
|
|
43
|
+
const key = getPKCEVerifierKey(provider);
|
|
44
|
+
const verifier = localStorage.getItem(key);
|
|
45
|
+
if (!verifier) {
|
|
46
|
+
throw new sdkTypes.ZeroXKeyError(`Missing PKCE verifier for ${provider} authentication`, sdkTypes.ZeroXKeyErrorCodes.NO_PKCE_VERIFIER_FOUND);
|
|
47
|
+
}
|
|
48
|
+
localStorage.removeItem(key);
|
|
49
|
+
return verifier;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Stores the PKCE verifier in local storage
|
|
53
|
+
* @param provider - The OAuth provider
|
|
54
|
+
* @param verifier - The verifier string to store
|
|
55
|
+
*/
|
|
56
|
+
function storePKCEVerifier(provider, verifier) {
|
|
57
|
+
localStorage.setItem(getPKCEVerifierKey(provider), verifier);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Checks if a PKCE verifier exists for a provider (without consuming it)
|
|
61
|
+
* @param provider - The OAuth provider
|
|
62
|
+
* @returns true if verifier exists
|
|
63
|
+
*/
|
|
64
|
+
function hasPKCEVerifier(provider) {
|
|
65
|
+
return localStorage.getItem(getPKCEVerifierKey(provider)) !== null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Clears all OAuth-related data from local storage
|
|
69
|
+
*/
|
|
70
|
+
function clearAllOAuthData() {
|
|
71
|
+
localStorage.removeItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
|
|
72
|
+
const pkceProviders = [sdkTypes.OAuthProviders.FACEBOOK, sdkTypes.OAuthProviders.DISCORD, sdkTypes.OAuthProviders.X];
|
|
73
|
+
for (const provider of pkceProviders) {
|
|
74
|
+
localStorage.removeItem(getPKCEVerifierKey(provider));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
exports.OAUTH_ADD_PROVIDER_METADATA_KEY = OAUTH_ADD_PROVIDER_METADATA_KEY;
|
|
79
|
+
exports.OAUTH_INTENT_ADD_PROVIDER = OAUTH_INTENT_ADD_PROVIDER;
|
|
80
|
+
exports.clearAllOAuthData = clearAllOAuthData;
|
|
81
|
+
exports.consumePKCEVerifier = consumePKCEVerifier;
|
|
82
|
+
exports.getOAuthAddProviderMetadata = getOAuthAddProviderMetadata;
|
|
83
|
+
exports.getPKCEVerifierKey = getPKCEVerifierKey;
|
|
84
|
+
exports.hasPKCEVerifier = hasPKCEVerifier;
|
|
85
|
+
exports.storeOAuthAddProviderMetadata = storeOAuthAddProviderMetadata;
|
|
86
|
+
exports.storePKCEVerifier = storePKCEVerifier;
|
|
87
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../../../src/utils/oauth/storage.ts"],"sourcesContent":[null],"names":["OAUTH_INTENT_ADD_PROVIDER","OAUTH_ADD_PROVIDER_METADATA_KEY","storeOAuthAddProviderMetadata","metadata","localStorage","setItem","JSON","stringify","getOAuthAddProviderMetadata","stored","getItem","parse","getPKCEVerifierKey","provider","consumePKCEVerifier","key","verifier","ZeroXKeyError","ZeroXKeyErrorCodes","NO_PKCE_VERIFIER_FOUND","removeItem","storePKCEVerifier","hasPKCEVerifier","clearAllOAuthData","pkceProviders","OAuthProviders","FACEBOOK","DISCORD","X"],"mappings":";;;;AAMO,MAAMA,yBAAyB,GAAG;AAClC,MAAMC,+BAA+B,GAAG;AAe/C;AACA;AACA;AACA;AAEA;;;AAGG;AACG,SAAUC,6BAA6BA,CAC3CC,QAAkC,EAAA;EAElCC,YAAY,CAACC,OAAO,CAClBJ,+BAA+B,EAC/BK,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC,CACzB;AACH;AAEA;;AAEG;SACaK,2BAA2BA,GAAA;AACzC,EAAA,MAAMC,MAAM,GAAGL,YAAY,CAACM,OAAO,CAACT,+BAA+B,CAAC;AACpE,EAAA,IAAI,CAACQ,MAAM,EAAE,OAAO,IAAI;EACxB,IAAI;AACF,IAAA,OAAOH,IAAI,CAACK,KAAK,CAACF,MAAM,CAA6B;AACvD,EAAA,CAAC,CAAC,MAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA;;AAEG;AACG,SAAUG,kBAAkBA,CAACC,QAAsB,EAAA;EACvD,OAAO,CAAA,EAAGA,QAAQ,CAAA,SAAA,CAAW;AAC/B;AAEA;;;;;AAKG;AACG,SAAUC,mBAAmBA,CAACD,QAAsB,EAAA;AACxD,EAAA,MAAME,GAAG,GAAGH,kBAAkB,CAACC,QAAQ,CAAC;AACxC,EAAA,MAAMG,QAAQ,GAAGZ,YAAY,CAACM,OAAO,CAACK,GAAG,CAAC;EAC1C,IAAI,CAACC,QAAQ,EAAE;IACb,MAAM,IAAIC,sBAAa,CACrB,CAAA,0BAAA,EAA6BJ,QAAQ,iBAAiB,EACtDK,2BAAkB,CAACC,sBAAsB,CAC1C;AACH,EAAA;AACAf,EAAAA,YAAY,CAACgB,UAAU,CAACL,GAAG,CAAC;AAC5B,EAAA,OAAOC,QAAQ;AACjB;AAEA;;;;AAIG;AACG,SAAUK,iBAAiBA,CAC/BR,QAAsB,EACtBG,QAAgB,EAAA;EAEhBZ,YAAY,CAACC,OAAO,CAACO,kBAAkB,CAACC,QAAQ,CAAC,EAAEG,QAAQ,CAAC;AAC9D;AAEA;;;;AAIG;AACG,SAAUM,eAAeA,CAACT,QAAsB,EAAA;EACpD,OAAOT,YAAY,CAACM,OAAO,CAACE,kBAAkB,CAACC,QAAQ,CAAC,CAAC,KAAK,IAAI;AACpE;AAEA;;AAEG;SACaU,iBAAiBA,GAAA;AAC/BnB,EAAAA,YAAY,CAACgB,UAAU,CAACnB,+BAA+B,CAAC;AACxD,EAAA,MAAMuB,aAAa,GAAmB,CACpCC,uBAAc,CAACC,QAAQ,EACvBD,uBAAc,CAACE,OAAO,EACtBF,uBAAc,CAACG,CAAC,CACjB;AACD,EAAA,KAAK,MAAMf,QAAQ,IAAIW,aAAa,EAAE;AACpCpB,IAAAA,YAAY,CAACgB,UAAU,CAACR,kBAAkB,CAACC,QAAQ,CAAC,CAAC;AACvD,EAAA;AACF;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { OAuthProviders, ZeroXKeyError, ZeroXKeyErrorCodes } from '@0xkey-io/sdk-types';
|
|
2
|
+
|
|
3
|
+
var OAUTH_INTENT_ADD_PROVIDER = "addProvider";
|
|
4
|
+
var OAUTH_ADD_PROVIDER_METADATA_KEY = "oauth_add_provider_metadata";
|
|
5
|
+
// We use localStorage instead of sessionStorage to store OAuth data since the user
|
|
6
|
+
// might leave the current browsing context during the OAuth flow. We ran into this
|
|
7
|
+
// with X OAuth on Android where if the user has the X app installed, oauth would
|
|
8
|
+
// open the native app and when they come back to the browser, sessionStorage is gone
|
|
9
|
+
/**
|
|
10
|
+
* Stores OAuth add provider metadata in local storage
|
|
11
|
+
* Used for addOauthProvider flow if opening in-page
|
|
12
|
+
*/
|
|
13
|
+
function storeOAuthAddProviderMetadata(metadata) {
|
|
14
|
+
localStorage.setItem(OAUTH_ADD_PROVIDER_METADATA_KEY, JSON.stringify(metadata));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Retrieves OAuth add provider metadata from local storage
|
|
18
|
+
*/
|
|
19
|
+
function getOAuthAddProviderMetadata() {
|
|
20
|
+
var stored = localStorage.getItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
|
|
21
|
+
if (!stored) return null;
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(stored);
|
|
24
|
+
} catch (_unused) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets the verifier key name for a PKCE provider
|
|
30
|
+
*/
|
|
31
|
+
function getPKCEVerifierKey(provider) {
|
|
32
|
+
return "".concat(provider, "_verifier");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Retrieves and removes the PKCE verifier from local storage
|
|
36
|
+
* @param provider - The OAuth provider
|
|
37
|
+
* @returns The verifier string
|
|
38
|
+
* @throws ZeroXKeyError if verifier is not found
|
|
39
|
+
*/
|
|
40
|
+
function consumePKCEVerifier(provider) {
|
|
41
|
+
var key = getPKCEVerifierKey(provider);
|
|
42
|
+
var verifier = localStorage.getItem(key);
|
|
43
|
+
if (!verifier) {
|
|
44
|
+
throw new ZeroXKeyError("Missing PKCE verifier for ".concat(provider, " authentication"), ZeroXKeyErrorCodes.NO_PKCE_VERIFIER_FOUND);
|
|
45
|
+
}
|
|
46
|
+
localStorage.removeItem(key);
|
|
47
|
+
return verifier;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Stores the PKCE verifier in local storage
|
|
51
|
+
* @param provider - The OAuth provider
|
|
52
|
+
* @param verifier - The verifier string to store
|
|
53
|
+
*/
|
|
54
|
+
function storePKCEVerifier(provider, verifier) {
|
|
55
|
+
localStorage.setItem(getPKCEVerifierKey(provider), verifier);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Checks if a PKCE verifier exists for a provider (without consuming it)
|
|
59
|
+
* @param provider - The OAuth provider
|
|
60
|
+
* @returns true if verifier exists
|
|
61
|
+
*/
|
|
62
|
+
function hasPKCEVerifier(provider) {
|
|
63
|
+
return localStorage.getItem(getPKCEVerifierKey(provider)) !== null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Clears all OAuth-related data from local storage
|
|
67
|
+
*/
|
|
68
|
+
function clearAllOAuthData() {
|
|
69
|
+
localStorage.removeItem(OAUTH_ADD_PROVIDER_METADATA_KEY);
|
|
70
|
+
var pkceProviders = [OAuthProviders.FACEBOOK, OAuthProviders.DISCORD, OAuthProviders.X];
|
|
71
|
+
for (var _i = 0, _pkceProviders = pkceProviders; _i < _pkceProviders.length; _i++) {
|
|
72
|
+
var provider = _pkceProviders[_i];
|
|
73
|
+
localStorage.removeItem(getPKCEVerifierKey(provider));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { OAUTH_ADD_PROVIDER_METADATA_KEY, OAUTH_INTENT_ADD_PROVIDER, clearAllOAuthData, consumePKCEVerifier, getOAuthAddProviderMetadata, getPKCEVerifierKey, hasPKCEVerifier, storeOAuthAddProviderMetadata, storePKCEVerifier };
|
|
78
|
+
//# sourceMappingURL=storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.mjs","sources":["../../../src/utils/oauth/storage.ts"],"sourcesContent":[null],"names":["OAUTH_INTENT_ADD_PROVIDER","OAUTH_ADD_PROVIDER_METADATA_KEY","storeOAuthAddProviderMetadata","metadata","localStorage","setItem","JSON","stringify","getOAuthAddProviderMetadata","stored","getItem","parse","_unused","getPKCEVerifierKey","provider","concat","consumePKCEVerifier","key","verifier","ZeroXKeyError","ZeroXKeyErrorCodes","NO_PKCE_VERIFIER_FOUND","removeItem","storePKCEVerifier","hasPKCEVerifier","clearAllOAuthData","pkceProviders","OAuthProviders","FACEBOOK","DISCORD","X","_i","_pkceProviders","length"],"mappings":";;AAMO,IAAMA,yBAAyB,GAAG;AAClC,IAAMC,+BAA+B,GAAG;AAe/C;AACA;AACA;AACA;AAEA;;;AAGG;AACG,SAAUC,6BAA6BA,CAC3CC,QAAkC,EAAA;EAElCC,YAAY,CAACC,OAAO,CAClBJ,+BAA+B,EAC/BK,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC,CACzB;AACH;AAEA;;AAEG;SACaK,2BAA2BA,GAAA;AACzC,EAAA,IAAMC,MAAM,GAAGL,YAAY,CAACM,OAAO,CAACT,+BAA+B,CAAC;AACpE,EAAA,IAAI,CAACQ,MAAM,EAAE,OAAO,IAAI;EACxB,IAAI;AACF,IAAA,OAAOH,IAAI,CAACK,KAAK,CAACF,MAAM,CAA6B;EACvD,CAAC,CAAC,OAAAG,OAAA,EAAM;AACN,IAAA,OAAO,IAAI;AACb,EAAA;AACF;AAEA;;AAEG;AACG,SAAUC,kBAAkBA,CAACC,QAAsB,EAAA;EACvD,OAAA,EAAA,CAAAC,MAAA,CAAUD,QAAQ,EAAA,WAAA,CAAA;AACpB;AAEA;;;;;AAKG;AACG,SAAUE,mBAAmBA,CAACF,QAAsB,EAAA;AACxD,EAAA,IAAMG,GAAG,GAAGJ,kBAAkB,CAACC,QAAQ,CAAC;AACxC,EAAA,IAAMI,QAAQ,GAAGd,YAAY,CAACM,OAAO,CAACO,GAAG,CAAC;EAC1C,IAAI,CAACC,QAAQ,EAAE;IACb,MAAM,IAAIC,aAAa,CAAA,4BAAA,CAAAJ,MAAA,CACQD,QAAQ,EAAA,iBAAA,CAAA,EACrCM,kBAAkB,CAACC,sBAAsB,CAC1C;AACH,EAAA;AACAjB,EAAAA,YAAY,CAACkB,UAAU,CAACL,GAAG,CAAC;AAC5B,EAAA,OAAOC,QAAQ;AACjB;AAEA;;;;AAIG;AACG,SAAUK,iBAAiBA,CAC/BT,QAAsB,EACtBI,QAAgB,EAAA;EAEhBd,YAAY,CAACC,OAAO,CAACQ,kBAAkB,CAACC,QAAQ,CAAC,EAAEI,QAAQ,CAAC;AAC9D;AAEA;;;;AAIG;AACG,SAAUM,eAAeA,CAACV,QAAsB,EAAA;EACpD,OAAOV,YAAY,CAACM,OAAO,CAACG,kBAAkB,CAACC,QAAQ,CAAC,CAAC,KAAK,IAAI;AACpE;AAEA;;AAEG;SACaW,iBAAiBA,GAAA;AAC/BrB,EAAAA,YAAY,CAACkB,UAAU,CAACrB,+BAA+B,CAAC;AACxD,EAAA,IAAMyB,aAAa,GAAmB,CACpCC,cAAc,CAACC,QAAQ,EACvBD,cAAc,CAACE,OAAO,EACtBF,cAAc,CAACG,CAAC,CACjB;AACD,EAAA,KAAA,IAAAC,EAAA,GAAA,CAAA,EAAAC,cAAA,GAAuBN,aAAa,EAAAK,EAAA,GAAAC,cAAA,CAAAC,MAAA,EAAAF,EAAA,EAAA,EAAE;AAAjC,IAAA,IAAMjB,QAAQ,GAAAkB,cAAA,CAAAD,EAAA,CAAA;AACjB3B,IAAAA,YAAY,CAACkB,UAAU,CAACT,kBAAkB,CAACC,QAAQ,CAAC,CAAC;AACvD,EAAA;AACF;;;;"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { OAuthProviders } from "@0xkey-io/sdk-types";
|
|
2
|
+
/**
|
|
3
|
+
* Builds the OAuth state parameter string
|
|
4
|
+
*/
|
|
5
|
+
export declare function buildOAuthState(params: {
|
|
6
|
+
provider: OAuthProviders;
|
|
7
|
+
flow: "redirect" | "popup";
|
|
8
|
+
publicKey: string;
|
|
9
|
+
nonce?: string;
|
|
10
|
+
additionalState?: Record<string, string> | undefined;
|
|
11
|
+
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* Opens a centered OAuth popup window
|
|
14
|
+
*/
|
|
15
|
+
export declare function openOAuthPopup(): Window | null;
|
|
16
|
+
/**
|
|
17
|
+
* Redirects to OAuth provider URL
|
|
18
|
+
*/
|
|
19
|
+
export declare function redirectToOAuthProvider(url: string): Promise<never>;
|
|
20
|
+
/**
|
|
21
|
+
* Cleans up OAuth parameters from URL (removes hash and search)
|
|
22
|
+
*/
|
|
23
|
+
export declare function cleanupOAuthUrl(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Cleans up OAuth hash from URL but preserves search parameters
|
|
26
|
+
*/
|
|
27
|
+
export declare function cleanupOAuthUrlPreserveSearch(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Parses the OAuth state parameter string into an object
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseStateParam(stateParam: string | null | undefined): {
|
|
32
|
+
sessionKey?: string;
|
|
33
|
+
oauthIntent?: string;
|
|
34
|
+
provider?: string;
|
|
35
|
+
flow?: string;
|
|
36
|
+
publicKey?: string;
|
|
37
|
+
openModal?: string;
|
|
38
|
+
[key: string]: string | undefined;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Result from parsing an OAuth response (both popup and redirect flows)
|
|
42
|
+
*/
|
|
43
|
+
export interface OAuthResponseResult {
|
|
44
|
+
/** The OIDC token (for non-PKCE providers) */
|
|
45
|
+
idToken?: string | null | undefined;
|
|
46
|
+
/** The authorization code (for PKCE providers) */
|
|
47
|
+
authCode?: string | null | undefined;
|
|
48
|
+
/** Session key from state */
|
|
49
|
+
sessionKey?: string | undefined;
|
|
50
|
+
/** The provider from state */
|
|
51
|
+
provider?: string | null;
|
|
52
|
+
/** Flow type from state */
|
|
53
|
+
flow?: string | null;
|
|
54
|
+
/** Public key from state */
|
|
55
|
+
publicKey?: string | null;
|
|
56
|
+
/** Open modal flag from state */
|
|
57
|
+
openModal?: string | null;
|
|
58
|
+
/** OAuth intent from state */
|
|
59
|
+
oauthIntent?: string | null;
|
|
60
|
+
/** Nonce from state */
|
|
61
|
+
nonce?: string | null;
|
|
62
|
+
/** Redirect URI used to create the authorization code. */
|
|
63
|
+
redirectUri?: string | null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Unified OAuth response parser for both popup and redirect flows.
|
|
67
|
+
* Handles both:
|
|
68
|
+
* - PKCE flows (Facebook, Discord, X): code in search parameters
|
|
69
|
+
* - Non-PKCE flows (Google, Apple): id_token in hash parameters
|
|
70
|
+
* - Apple's non-standard hash format where state parameters are directly embedded
|
|
71
|
+
*
|
|
72
|
+
* @param url - The full URL to parse (from popup or redirect)
|
|
73
|
+
* @param expectedProvider - Optional provider if already known (for popup flows)
|
|
74
|
+
* @returns Parsed OAuth response data including tokens, codes, and state parameters, or null if invalid
|
|
75
|
+
*/
|
|
76
|
+
export declare function parseOAuthResponse(url: string, expectedProvider?: OAuthProviders): OAuthResponseResult | null;
|
|
77
|
+
/**
|
|
78
|
+
* Parameters for building an OAuth URL
|
|
79
|
+
*/
|
|
80
|
+
export interface BuildOAuthUrlParams {
|
|
81
|
+
provider: OAuthProviders;
|
|
82
|
+
clientId: string;
|
|
83
|
+
redirectUri: string;
|
|
84
|
+
publicKey: string;
|
|
85
|
+
nonce: string;
|
|
86
|
+
flow: "redirect" | "popup";
|
|
87
|
+
codeChallenge?: string | undefined;
|
|
88
|
+
additionalState?: Record<string, string> | undefined;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Builds the complete OAuth authorization URL for a provider
|
|
92
|
+
*/
|
|
93
|
+
export declare function buildOAuthUrl(params: BuildOAuthUrlParams): string;
|
|
94
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/utils/oauth/url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACtD,GAAG,MAAM,CAkBT;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAW9C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CASnE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAMpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC,CAcA;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,gBAAgB,CAAC,EAAE,cAAc,GAChC,mBAAmB,GAAG,IAAI,CA6E5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA2DjE"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@0xkey-io/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
|
+
redirectUri
|
|
132
|
+
} = parseStateParam(stateString);
|
|
133
|
+
// If we have an expected provider (popup flow), validate it matches
|
|
134
|
+
if (expectedProvider) {
|
|
135
|
+
const config$1 = config.OAUTH_PROVIDER_CONFIGS[expectedProvider];
|
|
136
|
+
if (config$1.usesPKCE) {
|
|
137
|
+
// PKCE providers must have authCode and matching provider in state
|
|
138
|
+
if (!authCode || !stateString || provider !== expectedProvider) {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
} else {
|
|
142
|
+
// Non-PKCE providers must have idToken
|
|
143
|
+
if (!idToken) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
idToken,
|
|
150
|
+
authCode,
|
|
151
|
+
provider: provider ?? null,
|
|
152
|
+
flow: flow ?? null,
|
|
153
|
+
publicKey: publicKey ?? null,
|
|
154
|
+
openModal: openModal ?? null,
|
|
155
|
+
sessionKey: sessionKey ?? undefined,
|
|
156
|
+
oauthIntent: oauthIntent ?? null,
|
|
157
|
+
nonce: nonce ?? null,
|
|
158
|
+
redirectUri: redirectUri ?? null
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Builds the complete OAuth authorization URL for a provider
|
|
163
|
+
*/
|
|
164
|
+
function buildOAuthUrl(params) {
|
|
165
|
+
const {
|
|
166
|
+
provider,
|
|
167
|
+
clientId,
|
|
168
|
+
redirectUri,
|
|
169
|
+
publicKey,
|
|
170
|
+
nonce,
|
|
171
|
+
flow,
|
|
172
|
+
codeChallenge,
|
|
173
|
+
additionalState
|
|
174
|
+
} = params;
|
|
175
|
+
const config$1 = config.OAUTH_PROVIDER_CONFIGS[provider];
|
|
176
|
+
const authUrl = new URL(config$1.authUrl);
|
|
177
|
+
authUrl.searchParams.set("client_id", clientId);
|
|
178
|
+
authUrl.searchParams.set("redirect_uri", redirectUri);
|
|
179
|
+
authUrl.searchParams.set("response_type", config$1.responseType);
|
|
180
|
+
if (config$1.scopes) {
|
|
181
|
+
authUrl.searchParams.set("scope", config$1.scopes);
|
|
182
|
+
}
|
|
183
|
+
if (config$1.responseMode) {
|
|
184
|
+
authUrl.searchParams.set("response_mode", config$1.responseMode);
|
|
185
|
+
}
|
|
186
|
+
// PKCE parameters
|
|
187
|
+
if (config$1.usesPKCE && codeChallenge) {
|
|
188
|
+
authUrl.searchParams.set("code_challenge", codeChallenge);
|
|
189
|
+
authUrl.searchParams.set("code_challenge_method", "S256");
|
|
190
|
+
}
|
|
191
|
+
// Nonce handling - some providers want it in URL params, others in state
|
|
192
|
+
if (config$1.nonceInParams) {
|
|
193
|
+
authUrl.searchParams.set("nonce", nonce);
|
|
194
|
+
}
|
|
195
|
+
// Google-specific: prompt for account selection
|
|
196
|
+
if (provider === sdkTypes.OAuthProviders.GOOGLE) {
|
|
197
|
+
authUrl.searchParams.set("prompt", "select_account");
|
|
198
|
+
}
|
|
199
|
+
// Build state parameter
|
|
200
|
+
const stateParams = {
|
|
201
|
+
provider,
|
|
202
|
+
flow,
|
|
203
|
+
publicKey
|
|
204
|
+
};
|
|
205
|
+
// Include nonce in state for providers that need it there (not in URL params)
|
|
206
|
+
if (!config$1.nonceInParams) {
|
|
207
|
+
stateParams.nonce = nonce;
|
|
208
|
+
}
|
|
209
|
+
if (additionalState) {
|
|
210
|
+
stateParams.additionalState = additionalState;
|
|
211
|
+
}
|
|
212
|
+
authUrl.searchParams.set("state", buildOAuthState(stateParams));
|
|
213
|
+
return authUrl.toString();
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
exports.buildOAuthState = buildOAuthState;
|
|
217
|
+
exports.buildOAuthUrl = buildOAuthUrl;
|
|
218
|
+
exports.cleanupOAuthUrl = cleanupOAuthUrl;
|
|
219
|
+
exports.cleanupOAuthUrlPreserveSearch = cleanupOAuthUrlPreserveSearch;
|
|
220
|
+
exports.openOAuthPopup = openOAuthPopup;
|
|
221
|
+
exports.parseOAuthResponse = parseOAuthResponse;
|
|
222
|
+
exports.parseStateParam = parseStateParam;
|
|
223
|
+
exports.redirectToOAuthProvider = redirectToOAuthProvider;
|
|
224
|
+
//# 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","redirectUri","config","OAUTH_PROVIDER_CONFIGS","usesPKCE","buildOAuthUrl","clientId","codeChallenge","authUrl","set","responseType","scopes","responseMode","nonceInParams","OAuthProviders","GOOGLE","stateParams","toString"],"mappings":"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"}
|