@turnkey/react-wallet-kit 1.0.0-beta.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 +112 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +420 -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 +73 -0
- package/dist/components/auth/Email.js.map +1 -0
- package/dist/components/auth/Email.mjs +95 -0
- package/dist/components/auth/Email.mjs.map +1 -0
- package/dist/components/auth/OAuth.d.ts +10 -0
- package/dist/components/auth/OAuth.d.ts.map +1 -0
- package/dist/components/auth/OAuth.js +42 -0
- package/dist/components/auth/OAuth.js.map +1 -0
- package/dist/components/auth/OAuth.mjs +46 -0
- package/dist/components/auth/OAuth.mjs.map +1 -0
- package/dist/components/auth/OTP.d.ts +19 -0
- package/dist/components/auth/OTP.d.ts.map +1 -0
- package/dist/components/auth/OTP.js +204 -0
- package/dist/components/auth/OTP.js.map +1 -0
- package/dist/components/auth/OTP.mjs +288 -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 +26 -0
- package/dist/components/auth/Passkey.js.map +1 -0
- package/dist/components/auth/Passkey.mjs +22 -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 +93 -0
- package/dist/components/auth/Phone.mjs.map +1 -0
- package/dist/components/auth/Wallet.d.ts +30 -0
- package/dist/components/auth/Wallet.d.ts.map +1 -0
- package/dist/components/auth/Wallet.js +408 -0
- package/dist/components/auth/Wallet.js.map +1 -0
- package/dist/components/auth/Wallet.mjs +509 -0
- package/dist/components/auth/Wallet.mjs.map +1 -0
- package/dist/components/auth/index.d.ts +2 -0
- package/dist/components/auth/index.d.ts.map +1 -0
- package/dist/components/auth/index.js +327 -0
- package/dist/components/auth/index.js.map +1 -0
- package/dist/components/auth/index.mjs +540 -0
- package/dist/components/auth/index.mjs.map +1 -0
- package/dist/components/design/Buttons.d.ts +26 -0
- package/dist/components/design/Buttons.d.ts.map +1 -0
- package/dist/components/design/Buttons.js +79 -0
- package/dist/components/design/Buttons.js.map +1 -0
- package/dist/components/design/Buttons.mjs +71 -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 +113 -0
- package/dist/components/design/Inputs.js.map +1 -0
- package/dist/components/design/Inputs.mjs +108 -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 +27 -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 +43 -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 +10 -0
- package/dist/components/design/Svg.d.ts.map +1 -0
- package/dist/components/design/Svg.js +156 -0
- package/dist/components/design/Svg.js.map +1 -0
- package/dist/components/design/Svg.mjs +153 -0
- package/dist/components/design/Svg.mjs.map +1 -0
- package/dist/components/export/Export.d.ts +9 -0
- package/dist/components/export/Export.d.ts.map +1 -0
- package/dist/components/export/Export.js +140 -0
- package/dist/components/export/Export.js.map +1 -0
- package/dist/components/export/Export.mjs +178 -0
- package/dist/components/export/Export.mjs.map +1 -0
- package/dist/components/export/ExportWarning.d.ts +12 -0
- package/dist/components/export/ExportWarning.d.ts.map +1 -0
- package/dist/components/export/ExportWarning.js +87 -0
- package/dist/components/export/ExportWarning.js.map +1 -0
- package/dist/components/export/ExportWarning.mjs +113 -0
- package/dist/components/export/ExportWarning.mjs.map +1 -0
- package/dist/components/import/Import.d.ts +14 -0
- package/dist/components/import/Import.d.ts.map +1 -0
- package/dist/components/import/Import.js +226 -0
- package/dist/components/import/Import.js.map +1 -0
- package/dist/components/import/Import.mjs +328 -0
- package/dist/components/import/Import.mjs.map +1 -0
- package/dist/components/sign/Message.d.ts +17 -0
- package/dist/components/sign/Message.d.ts.map +1 -0
- package/dist/components/sign/Message.js +127 -0
- package/dist/components/sign/Message.js.map +1 -0
- package/dist/components/sign/Message.mjs +145 -0
- package/dist/components/sign/Message.mjs.map +1 -0
- package/dist/components/user/LinkWallet.d.ts +8 -0
- package/dist/components/user/LinkWallet.d.ts.map +1 -0
- package/dist/components/user/LinkWallet.js +102 -0
- package/dist/components/user/LinkWallet.js.map +1 -0
- package/dist/components/user/LinkWallet.mjs +162 -0
- package/dist/components/user/LinkWallet.mjs.map +1 -0
- package/dist/components/user/RemoveEmail.d.ts +11 -0
- package/dist/components/user/RemoveEmail.d.ts.map +1 -0
- package/dist/components/user/RemoveEmail.js +101 -0
- package/dist/components/user/RemoveEmail.js.map +1 -0
- package/dist/components/user/RemoveEmail.mjs +122 -0
- package/dist/components/user/RemoveEmail.mjs.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts +11 -0
- package/dist/components/user/RemoveOAuthProvider.d.ts.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.js +106 -0
- package/dist/components/user/RemoveOAuthProvider.js.map +1 -0
- package/dist/components/user/RemoveOAuthProvider.mjs +129 -0
- package/dist/components/user/RemoveOAuthProvider.mjs.map +1 -0
- package/dist/components/user/RemovePasskey.d.ts +11 -0
- package/dist/components/user/RemovePasskey.d.ts.map +1 -0
- package/dist/components/user/RemovePasskey.js +109 -0
- package/dist/components/user/RemovePasskey.js.map +1 -0
- package/dist/components/user/RemovePasskey.mjs +132 -0
- package/dist/components/user/RemovePasskey.mjs.map +1 -0
- package/dist/components/user/RemovePhoneNumber.d.ts +11 -0
- package/dist/components/user/RemovePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/RemovePhoneNumber.js +101 -0
- package/dist/components/user/RemovePhoneNumber.js.map +1 -0
- package/dist/components/user/RemovePhoneNumber.mjs +122 -0
- package/dist/components/user/RemovePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateEmail.d.ts +8 -0
- package/dist/components/user/UpdateEmail.d.ts.map +1 -0
- package/dist/components/user/UpdateEmail.js +139 -0
- package/dist/components/user/UpdateEmail.js.map +1 -0
- package/dist/components/user/UpdateEmail.mjs +186 -0
- package/dist/components/user/UpdateEmail.mjs.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts +8 -0
- package/dist/components/user/UpdatePhoneNumber.d.ts.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.js +136 -0
- package/dist/components/user/UpdatePhoneNumber.js.map +1 -0
- package/dist/components/user/UpdatePhoneNumber.mjs +187 -0
- package/dist/components/user/UpdatePhoneNumber.mjs.map +1 -0
- package/dist/components/user/UpdateUserName.d.ts +11 -0
- package/dist/components/user/UpdateUserName.d.ts.map +1 -0
- package/dist/components/user/UpdateUserName.js +112 -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/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -0
- package/dist/providers/TurnkeyProvider.d.ts +8 -0
- package/dist/providers/TurnkeyProvider.d.ts.map +1 -0
- package/dist/providers/TurnkeyProvider.js +35 -0
- package/dist/providers/TurnkeyProvider.js.map +1 -0
- package/dist/providers/TurnkeyProvider.mjs +33 -0
- package/dist/providers/TurnkeyProvider.mjs.map +1 -0
- package/dist/providers/client/Hook.d.ts +3 -0
- package/dist/providers/client/Hook.d.ts.map +1 -0
- package/dist/providers/client/Hook.js +14 -0
- package/dist/providers/client/Hook.js.map +1 -0
- package/dist/providers/client/Hook.mjs +12 -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 +2489 -0
- package/dist/providers/client/Provider.js.map +1 -0
- package/dist/providers/client/Provider.mjs +4744 -0
- package/dist/providers/client/Provider.mjs.map +1 -0
- package/dist/providers/client/Types.d.ts +524 -0
- package/dist/providers/client/Types.d.ts.map +1 -0
- package/dist/providers/client/Types.js +9 -0
- package/dist/providers/client/Types.js.map +1 -0
- package/dist/providers/client/Types.mjs +7 -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 +3 -0
- package/dist/providers/modal/Hook.d.ts.map +1 -0
- package/dist/providers/modal/Hook.js +14 -0
- package/dist/providers/modal/Hook.js.map +1 -0
- package/dist/providers/modal/Hook.mjs +12 -0
- package/dist/providers/modal/Hook.mjs.map +1 -0
- package/dist/providers/modal/Provider.d.ts +21 -0
- package/dist/providers/modal/Provider.d.ts.map +1 -0
- package/dist/providers/modal/Provider.js +37 -0
- package/dist/providers/modal/Provider.js.map +1 -0
- package/dist/providers/modal/Provider.mjs +48 -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 +258 -0
- package/dist/providers/modal/Root.js.map +1 -0
- package/dist/providers/modal/Root.mjs +263 -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/types/base.d.ts +79 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +19 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/base.mjs +19 -0
- package/dist/types/base.mjs.map +1 -0
- package/dist/utils.d.ts +72 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +211 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.mjs +307 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { CreateSubOrgParams, TurnkeySDKClientConfig } from "@turnkey/core";
|
|
2
|
+
import type { Session, TurnkeyError, TurnkeyNetworkError } from "@turnkey/sdk-types";
|
|
3
|
+
import type { ThemeOverrides } from "../providers/theme/Overrides";
|
|
4
|
+
export interface TurnkeyCallbacks {
|
|
5
|
+
onOauthRedirect?: (response: {
|
|
6
|
+
idToken: string;
|
|
7
|
+
publicKey: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
beforeSessionExpiry?: (params: {
|
|
10
|
+
sessionKey: string;
|
|
11
|
+
}) => void;
|
|
12
|
+
onSessionExpired?: (params: {
|
|
13
|
+
sessionKey: string;
|
|
14
|
+
}) => void;
|
|
15
|
+
onAuthenticationSuccess?: (params: {
|
|
16
|
+
session: Session | undefined;
|
|
17
|
+
}) => void;
|
|
18
|
+
onError?: (error: TurnkeyError | TurnkeyNetworkError) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface TurnkeyProviderConfig extends TurnkeySDKClientConfig {
|
|
21
|
+
exportIframeUrl?: string | undefined;
|
|
22
|
+
importIframeUrl?: string | undefined;
|
|
23
|
+
auth?: {
|
|
24
|
+
methods?: {
|
|
25
|
+
emailOtpAuthEnabled?: boolean;
|
|
26
|
+
smsOtpAuthEnabled?: boolean;
|
|
27
|
+
passkeyAuthEnabled?: boolean;
|
|
28
|
+
walletAuthEnabled?: boolean;
|
|
29
|
+
googleOauthEnabled?: boolean;
|
|
30
|
+
appleOauthEnabled?: boolean;
|
|
31
|
+
facebookOauthEnabled?: boolean;
|
|
32
|
+
};
|
|
33
|
+
methodOrder?: Array<"socials" | "email" | "sms" | "passkey" | "wallet">;
|
|
34
|
+
oauthOrder?: Array<"google" | "apple" | "facebook">;
|
|
35
|
+
oauthConfig?: {
|
|
36
|
+
oauthRedirectUri?: string;
|
|
37
|
+
googleClientId?: string;
|
|
38
|
+
appleClientId?: string;
|
|
39
|
+
facebookClientId?: string;
|
|
40
|
+
openOauthInPage?: boolean;
|
|
41
|
+
};
|
|
42
|
+
sessionExpirationSeconds?: string;
|
|
43
|
+
createSuborgParams?: {
|
|
44
|
+
emailOtpAuth?: CreateSubOrgParams;
|
|
45
|
+
smsOtpAuth?: CreateSubOrgParams;
|
|
46
|
+
passkeyAuth?: CreateSubOrgParams & {
|
|
47
|
+
passkeyName?: string;
|
|
48
|
+
};
|
|
49
|
+
walletAuth?: CreateSubOrgParams;
|
|
50
|
+
oauth?: CreateSubOrgParams;
|
|
51
|
+
};
|
|
52
|
+
autoRefreshSession?: boolean;
|
|
53
|
+
};
|
|
54
|
+
ui?: {
|
|
55
|
+
darkMode?: boolean;
|
|
56
|
+
colors?: {
|
|
57
|
+
light?: Partial<ThemeOverrides>;
|
|
58
|
+
dark?: Partial<ThemeOverrides>;
|
|
59
|
+
};
|
|
60
|
+
preferLargeActionButtons?: boolean;
|
|
61
|
+
borderRadius?: string | number;
|
|
62
|
+
backgroundBlur?: string | number;
|
|
63
|
+
renderModalInProvider?: boolean;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export declare enum ExportType {
|
|
67
|
+
Wallet = "WALLET",
|
|
68
|
+
PrivateKey = "PRIVATE_KEY"
|
|
69
|
+
}
|
|
70
|
+
export declare enum AuthState {
|
|
71
|
+
Unauthenticated = "unauthenticated",
|
|
72
|
+
Authenticated = "authenticated"
|
|
73
|
+
}
|
|
74
|
+
export declare enum ClientState {
|
|
75
|
+
Loading = "loading",
|
|
76
|
+
Ready = "ready",
|
|
77
|
+
Error = "error"
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/types/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
exports.ExportType = void 0;
|
|
4
|
+
(function (ExportType) {
|
|
5
|
+
ExportType["Wallet"] = "WALLET";
|
|
6
|
+
ExportType["PrivateKey"] = "PRIVATE_KEY";
|
|
7
|
+
})(exports.ExportType || (exports.ExportType = {}));
|
|
8
|
+
exports.AuthState = void 0;
|
|
9
|
+
(function (AuthState) {
|
|
10
|
+
AuthState["Unauthenticated"] = "unauthenticated";
|
|
11
|
+
AuthState["Authenticated"] = "authenticated";
|
|
12
|
+
})(exports.AuthState || (exports.AuthState = {}));
|
|
13
|
+
exports.ClientState = void 0;
|
|
14
|
+
(function (ClientState) {
|
|
15
|
+
ClientState["Loading"] = "loading";
|
|
16
|
+
ClientState["Ready"] = "ready";
|
|
17
|
+
ClientState["Error"] = "error";
|
|
18
|
+
})(exports.ClientState || (exports.ClientState = {}));
|
|
19
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../src/types/base.ts"],"sourcesContent":[null],"names":["ExportType","AuthState","ClientState"],"mappings":";;AAiEYA;AAAZ,CAAA,UAAYA,UAAU,EAAA;AACpBA,EAAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,UAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC5B,CAAC,EAHWA,kBAAU,KAAVA,kBAAU,GAGrB,EAAA,CAAA,CAAA;AAEWC;AAAZ,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnCA,EAAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAHWA,iBAAS,KAATA,iBAAS,GAGpB,EAAA,CAAA,CAAA;AAEWC;AAAZ,CAAA,UAAYA,WAAW,EAAA;AACrBA,EAAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnBA,EAAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACfA,EAAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAJWA,mBAAW,KAAXA,mBAAW,GAItB,EAAA,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var ExportType;
|
|
2
|
+
(function (ExportType) {
|
|
3
|
+
ExportType["Wallet"] = "WALLET";
|
|
4
|
+
ExportType["PrivateKey"] = "PRIVATE_KEY";
|
|
5
|
+
})(ExportType || (ExportType = {}));
|
|
6
|
+
var AuthState;
|
|
7
|
+
(function (AuthState) {
|
|
8
|
+
AuthState["Unauthenticated"] = "unauthenticated";
|
|
9
|
+
AuthState["Authenticated"] = "authenticated";
|
|
10
|
+
})(AuthState || (AuthState = {}));
|
|
11
|
+
var ClientState;
|
|
12
|
+
(function (ClientState) {
|
|
13
|
+
ClientState["Loading"] = "loading";
|
|
14
|
+
ClientState["Ready"] = "ready";
|
|
15
|
+
ClientState["Error"] = "error";
|
|
16
|
+
})(ClientState || (ClientState = {}));
|
|
17
|
+
|
|
18
|
+
export { AuthState, ClientState, ExportType };
|
|
19
|
+
//# sourceMappingURL=base.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.mjs","sources":["../../src/types/base.ts"],"sourcesContent":[null],"names":["ExportType","AuthState","ClientState"],"mappings":"IAiEYA;AAAZ,CAAA,UAAYA,UAAU,EAAA;AACpBA,EAAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,UAAA,CAAA,YAAA,CAAA,GAAA,aAA0B;AAC5B,CAAC,EAHWA,UAAU,KAAVA,UAAU,GAGrB,EAAA,CAAA,CAAA;IAEWC;AAAZ,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnCA,EAAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAHWA,SAAS,KAATA,SAAS,GAGpB,EAAA,CAAA,CAAA;IAEWC;AAAZ,CAAA,UAAYA,WAAW,EAAA;AACrBA,EAAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnBA,EAAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACfA,EAAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAJWA,WAAW,KAAXA,WAAW,GAItB,EAAA,CAAA,CAAA;;;;"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Session, TurnkeyError } from "@turnkey/sdk-types";
|
|
2
|
+
import type { TurnkeyCallbacks } from "./types/base";
|
|
3
|
+
import { WalletProvider } from "@turnkey/core";
|
|
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
|
+
export declare const SESSION_WARNING_THRESHOLD_MS: number;
|
|
12
|
+
export declare const authErrors: {
|
|
13
|
+
passkey: {
|
|
14
|
+
createFailed: string;
|
|
15
|
+
loginFailed: string;
|
|
16
|
+
timeoutOrNotAllowed: string;
|
|
17
|
+
};
|
|
18
|
+
otp: {
|
|
19
|
+
sendFailed: string;
|
|
20
|
+
invalidEmail: string;
|
|
21
|
+
invalidPhone: string;
|
|
22
|
+
};
|
|
23
|
+
oauth: {
|
|
24
|
+
loginFailed: string;
|
|
25
|
+
};
|
|
26
|
+
wallet: {
|
|
27
|
+
loginFailed: string;
|
|
28
|
+
noPublicKey: string;
|
|
29
|
+
};
|
|
30
|
+
suborg: {
|
|
31
|
+
fetchFailed: string;
|
|
32
|
+
createFailed: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare const useDebouncedCallback: <T extends (...args: any[]) => void>(fn: T, wait?: number) => T;
|
|
36
|
+
export declare const isValidSession: (session?: Session | undefined) => boolean;
|
|
37
|
+
export declare function withTurnkeyErrorHandling<T>(fn: () => Promise<T>, callbacks?: {
|
|
38
|
+
onError?: (error: TurnkeyError) => void;
|
|
39
|
+
}, fallbackMessage?: string, fallbackCode?: any): Promise<T>;
|
|
40
|
+
export declare function parseOAuthRedirect(hash: string): {
|
|
41
|
+
idToken: string | null | undefined;
|
|
42
|
+
provider: string | null;
|
|
43
|
+
flow: string | null;
|
|
44
|
+
publicKey: string | null;
|
|
45
|
+
openModal: string | null;
|
|
46
|
+
};
|
|
47
|
+
export declare function generateChallengePair(): Promise<{
|
|
48
|
+
verifier: string;
|
|
49
|
+
codeChallenge: string;
|
|
50
|
+
}>;
|
|
51
|
+
export declare function exchangeCodeForToken(clientId: string, redirectUri: string, code: string, codeVerifier: string): Promise<{
|
|
52
|
+
id_token: string;
|
|
53
|
+
}>;
|
|
54
|
+
export declare function handleFacebookPKCEFlow({ code, publicKey, openModal, clientId, redirectURI, callbacks, completeOauth, onPushPage, }: {
|
|
55
|
+
code: string;
|
|
56
|
+
publicKey: string;
|
|
57
|
+
openModal?: string | null;
|
|
58
|
+
clientId: string;
|
|
59
|
+
redirectURI: string;
|
|
60
|
+
callbacks?: TurnkeyCallbacks | undefined;
|
|
61
|
+
completeOauth: (params: {
|
|
62
|
+
oidcToken: string;
|
|
63
|
+
publicKey: string;
|
|
64
|
+
}) => Promise<string>;
|
|
65
|
+
onPushPage: (idToken: string) => Promise<void>;
|
|
66
|
+
}): Promise<void>;
|
|
67
|
+
export declare function useScreenSize(): {
|
|
68
|
+
width: number;
|
|
69
|
+
isMobile: boolean;
|
|
70
|
+
};
|
|
71
|
+
export declare function isWalletConnect(wallet: WalletProvider): boolean;
|
|
72
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAuB,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,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;AACxD,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,eAAO,MAAM,4BAA4B,QAAY,CAAC;AAEtD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;CAgCtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,uBAAwB,GAAG,EAAE,KAAK,IAAI,MACjE,CAAC,oBAEJ,CAaF,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,OAAO,GAAG,SAAS,KAAG,OAE9D,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;CAAE,EACvD,eAAe,SAA8B,EAC7C,YAAY,MAA4B,GACvC,OAAO,CAAC,CAAC,CAAC,CAYZ;AAyED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAChD,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAOA;AAGD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAkBD;AAGD,wBAAsB,oBAAoB,CACxC,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;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,IAAI,EACJ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,GACX,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC,aAAa,EAAE,CAAC,MAAM,EAAE;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhB;AAGD,wBAAgB,aAAa;;;EAkB5B;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAE/D"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkTypes = require('@turnkey/sdk-types');
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var core = require('@turnkey/core');
|
|
6
|
+
|
|
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
|
+
const SESSION_WARNING_THRESHOLD_MS = 60 * 1000; // 1 minute in milliseconds
|
|
14
|
+
const useDebouncedCallback = (fn, wait = 100) => {
|
|
15
|
+
const timer = react.useRef(null);
|
|
16
|
+
return react.useCallback((...args) => {
|
|
17
|
+
if (timer.current) clearTimeout(timer.current);
|
|
18
|
+
timer.current = setTimeout(() => {
|
|
19
|
+
fn(...args);
|
|
20
|
+
timer.current = null;
|
|
21
|
+
}, wait);
|
|
22
|
+
}, [fn, wait]);
|
|
23
|
+
};
|
|
24
|
+
const isValidSession = session => {
|
|
25
|
+
return session?.expiry !== undefined && session.expiry * 1000 > Date.now();
|
|
26
|
+
};
|
|
27
|
+
async function withTurnkeyErrorHandling(fn, callbacks, fallbackMessage = "An unknown error occurred", fallbackCode = sdkTypes.TurnkeyErrorCodes.UNKNOWN) {
|
|
28
|
+
try {
|
|
29
|
+
return await fn();
|
|
30
|
+
} catch (error) {
|
|
31
|
+
if (error instanceof sdkTypes.TurnkeyError) {
|
|
32
|
+
callbacks?.onError?.(error);
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
const tkError = new sdkTypes.TurnkeyError(fallbackMessage, fallbackCode, error);
|
|
36
|
+
callbacks?.onError?.(tkError);
|
|
37
|
+
throw tkError;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Helper function to parse Apple OAuth redirects
|
|
41
|
+
function parseAppleOAuthRedirect(hash) {
|
|
42
|
+
// Apple's format has unencoded parameters in the state portion
|
|
43
|
+
const idTokenMatch = hash.match(/id_token=([^&]+)$/);
|
|
44
|
+
const idToken = idTokenMatch ? idTokenMatch[1] : null;
|
|
45
|
+
// Extract state parameters - state is at the beginning
|
|
46
|
+
// It typically looks like: state=provider=apple&flow=redirect&publicKey=123...&openModal=true&code=...&id_token=...
|
|
47
|
+
const stateEndIndex = hash.indexOf("&code=");
|
|
48
|
+
if (stateEndIndex === -1) return {
|
|
49
|
+
idToken,
|
|
50
|
+
provider: null,
|
|
51
|
+
flow: null,
|
|
52
|
+
publicKey: null,
|
|
53
|
+
openModal: null
|
|
54
|
+
};
|
|
55
|
+
const stateContent = hash.substring(6, stateEndIndex); // Remove "state=" prefix
|
|
56
|
+
const stateParams = new URLSearchParams(stateContent);
|
|
57
|
+
return {
|
|
58
|
+
idToken,
|
|
59
|
+
provider: stateParams.get("provider"),
|
|
60
|
+
flow: stateParams.get("flow"),
|
|
61
|
+
publicKey: stateParams.get("publicKey"),
|
|
62
|
+
openModal: stateParams.get("openModal")
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// Helper function to parse Google OAuth redirects
|
|
66
|
+
function parseGoogleOAuthRedirect(hash) {
|
|
67
|
+
const hashParams = new URLSearchParams(hash);
|
|
68
|
+
const idToken = hashParams.get("id_token");
|
|
69
|
+
const state = hashParams.get("state");
|
|
70
|
+
let provider = null;
|
|
71
|
+
let flow = null;
|
|
72
|
+
let publicKey = null;
|
|
73
|
+
let openModal = null;
|
|
74
|
+
if (state) {
|
|
75
|
+
const stateParams = new URLSearchParams(state);
|
|
76
|
+
provider = stateParams.get("provider");
|
|
77
|
+
flow = stateParams.get("flow");
|
|
78
|
+
publicKey = stateParams.get("publicKey");
|
|
79
|
+
openModal = stateParams.get("openModal");
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
idToken,
|
|
83
|
+
provider,
|
|
84
|
+
flow,
|
|
85
|
+
publicKey,
|
|
86
|
+
openModal
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Main function to determine provider and parse accordingly
|
|
90
|
+
function parseOAuthRedirect(hash) {
|
|
91
|
+
// Check if this is an Apple redirect
|
|
92
|
+
if (hash.startsWith("state=provider=apple")) {
|
|
93
|
+
return parseAppleOAuthRedirect(hash);
|
|
94
|
+
} else {
|
|
95
|
+
return parseGoogleOAuthRedirect(hash);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Function to generate PKCE challenge pair for Facebook OAuth
|
|
99
|
+
async function generateChallengePair() {
|
|
100
|
+
const randomBytes = new Uint8Array(32);
|
|
101
|
+
window.crypto.getRandomValues(randomBytes);
|
|
102
|
+
const verifier = btoa(String.fromCharCode(...randomBytes)).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
103
|
+
const encoder = new TextEncoder();
|
|
104
|
+
const data = encoder.encode(verifier);
|
|
105
|
+
const digest = await window.crypto.subtle.digest("SHA-256", data);
|
|
106
|
+
const base64Challenge = btoa(String.fromCharCode(...new Uint8Array(digest))).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
107
|
+
return {
|
|
108
|
+
verifier,
|
|
109
|
+
codeChallenge: base64Challenge
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Function to exchange Facebook authorization code for token
|
|
113
|
+
async function exchangeCodeForToken(clientId, redirectUri, code, codeVerifier) {
|
|
114
|
+
const params = new URLSearchParams({
|
|
115
|
+
client_id: clientId,
|
|
116
|
+
redirect_uri: redirectUri,
|
|
117
|
+
code_verifier: codeVerifier,
|
|
118
|
+
code: code,
|
|
119
|
+
grant_type: "authorization_code"
|
|
120
|
+
});
|
|
121
|
+
const response = await fetch(FACEBOOK_GRAPH_URL, {
|
|
122
|
+
method: "POST",
|
|
123
|
+
headers: {
|
|
124
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
125
|
+
},
|
|
126
|
+
body: params.toString()
|
|
127
|
+
});
|
|
128
|
+
if (!response.ok) {
|
|
129
|
+
const errorData = await response.json();
|
|
130
|
+
throw new Error(`Facebook token exchange failed: ${JSON.stringify(errorData)}`);
|
|
131
|
+
}
|
|
132
|
+
return await response.json();
|
|
133
|
+
}
|
|
134
|
+
async function handleFacebookPKCEFlow({
|
|
135
|
+
code,
|
|
136
|
+
publicKey,
|
|
137
|
+
openModal,
|
|
138
|
+
clientId,
|
|
139
|
+
redirectURI,
|
|
140
|
+
callbacks,
|
|
141
|
+
completeOauth,
|
|
142
|
+
onPushPage
|
|
143
|
+
}) {
|
|
144
|
+
// Retrieve the verifier stored during OAuth initiation
|
|
145
|
+
const verifier = sessionStorage.getItem("facebook_verifier");
|
|
146
|
+
if (!verifier) {
|
|
147
|
+
throw new sdkTypes.TurnkeyError("Missing PKCE verifier for Facebook authentication", sdkTypes.TurnkeyErrorCodes.OAUTH_SIGNUP_ERROR);
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
// Exchange the code for a token
|
|
151
|
+
const tokenData = await exchangeCodeForToken(clientId, redirectURI, code, verifier);
|
|
152
|
+
// Clean up the verifier as it's no longer needed
|
|
153
|
+
sessionStorage.removeItem("facebook_verifier");
|
|
154
|
+
// Handle different UI flows based on openModal parameter
|
|
155
|
+
if (openModal === "true") {
|
|
156
|
+
await onPushPage(tokenData.id_token);
|
|
157
|
+
} else if (callbacks?.onOauthRedirect) {
|
|
158
|
+
callbacks.onOauthRedirect({
|
|
159
|
+
idToken: tokenData.id_token,
|
|
160
|
+
publicKey
|
|
161
|
+
});
|
|
162
|
+
} else {
|
|
163
|
+
await completeOauth({
|
|
164
|
+
oidcToken: tokenData.id_token,
|
|
165
|
+
publicKey
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
// Clean up the URL after processing
|
|
169
|
+
window.history.replaceState(null, document.title, window.location.pathname);
|
|
170
|
+
return;
|
|
171
|
+
} catch (error) {
|
|
172
|
+
console.error("Error exchanging Facebook code for token:", error);
|
|
173
|
+
throw new sdkTypes.TurnkeyError("Failed to complete Facebook authentication", sdkTypes.TurnkeyErrorCodes.OAUTH_SIGNUP_ERROR, error);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Custom hook to get the current screen size
|
|
177
|
+
function useScreenSize() {
|
|
178
|
+
const [width, setWidth] = react.useState(typeof window !== "undefined" ? window.innerWidth : 1024);
|
|
179
|
+
react.useEffect(() => {
|
|
180
|
+
const handleResize = () => setWidth(window.innerWidth);
|
|
181
|
+
window.addEventListener("resize", handleResize);
|
|
182
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
183
|
+
}, []);
|
|
184
|
+
return {
|
|
185
|
+
width,
|
|
186
|
+
// I have no idea why but, Tailwind's responsive design breakpoints do not work. Throughout the modal components, you will see conditional styling using this `isMobile` variable.
|
|
187
|
+
// This is fine since we only need to style for 2 screen sizes: mobile and desktop. If anyone can figure out why Tailwind's responsive design breakpoints do not work, please fix it and restyle the components accordingly, changing the `isMobile` to the Tailwind stuff when applicable.
|
|
188
|
+
isMobile: width < 640
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function isWalletConnect(wallet) {
|
|
192
|
+
return wallet.interfaceType == core.WalletInterfaceType.WalletConnect;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
exports.APPLE_AUTH_URL = APPLE_AUTH_URL;
|
|
196
|
+
exports.FACEBOOK_AUTH_URL = FACEBOOK_AUTH_URL;
|
|
197
|
+
exports.FACEBOOK_GRAPH_URL = FACEBOOK_GRAPH_URL;
|
|
198
|
+
exports.GOOGLE_AUTH_URL = GOOGLE_AUTH_URL;
|
|
199
|
+
exports.SESSION_WARNING_THRESHOLD_MS = SESSION_WARNING_THRESHOLD_MS;
|
|
200
|
+
exports.exchangeCodeForToken = exchangeCodeForToken;
|
|
201
|
+
exports.generateChallengePair = generateChallengePair;
|
|
202
|
+
exports.handleFacebookPKCEFlow = handleFacebookPKCEFlow;
|
|
203
|
+
exports.isValidSession = isValidSession;
|
|
204
|
+
exports.isWalletConnect = isWalletConnect;
|
|
205
|
+
exports.parseOAuthRedirect = parseOAuthRedirect;
|
|
206
|
+
exports.popupHeight = popupHeight;
|
|
207
|
+
exports.popupWidth = popupWidth;
|
|
208
|
+
exports.useDebouncedCallback = useDebouncedCallback;
|
|
209
|
+
exports.useScreenSize = useScreenSize;
|
|
210
|
+
exports.withTurnkeyErrorHandling = withTurnkeyErrorHandling;
|
|
211
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":["GOOGLE_AUTH_URL","APPLE_AUTH_URL","FACEBOOK_AUTH_URL","FACEBOOK_GRAPH_URL","popupWidth","popupHeight","SESSION_WARNING_THRESHOLD_MS","useDebouncedCallback","fn","wait","timer","useRef","useCallback","args","current","clearTimeout","setTimeout","isValidSession","session","expiry","undefined","Date","now","withTurnkeyErrorHandling","callbacks","fallbackMessage","fallbackCode","TurnkeyErrorCodes","UNKNOWN","error","TurnkeyError","onError","tkError","parseAppleOAuthRedirect","hash","idTokenMatch","match","idToken","stateEndIndex","indexOf","provider","flow","publicKey","openModal","stateContent","substring","stateParams","URLSearchParams","get","parseGoogleOAuthRedirect","hashParams","state","parseOAuthRedirect","startsWith","generateChallengePair","randomBytes","Uint8Array","window","crypto","getRandomValues","verifier","btoa","String","fromCharCode","replace","encoder","TextEncoder","data","encode","digest","subtle","base64Challenge","codeChallenge","exchangeCodeForToken","clientId","redirectUri","code","codeVerifier","params","client_id","redirect_uri","code_verifier","grant_type","response","fetch","method","headers","body","toString","ok","errorData","json","Error","JSON","stringify","handleFacebookPKCEFlow","redirectURI","completeOauth","onPushPage","sessionStorage","getItem","OAUTH_SIGNUP_ERROR","tokenData","removeItem","id_token","onOauthRedirect","oidcToken","history","replaceState","document","title","location","pathname","console","useScreenSize","width","setWidth","useState","innerWidth","useEffect","handleResize","addEventListener","removeEventListener","isMobile","isWalletConnect","wallet","interfaceType","WalletInterfaceType","WalletConnect"],"mappings":"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"}
|