@turnkey/sdk-react 2.0.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/_virtual/_rollupPluginBabelHelpers.mjs +470 -0
  3. package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
  4. package/dist/components/auth/Apple.js +78 -64
  5. package/dist/components/auth/Apple.js.map +1 -1
  6. package/dist/components/auth/Apple.mjs +85 -64
  7. package/dist/components/auth/Apple.mjs.map +1 -1
  8. package/dist/components/auth/Auth.d.ts +3 -0
  9. package/dist/components/auth/Auth.d.ts.map +1 -1
  10. package/dist/components/auth/Auth.js +507 -259
  11. package/dist/components/auth/Auth.js.map +1 -1
  12. package/dist/components/auth/Auth.mjs +725 -229
  13. package/dist/components/auth/Auth.mjs.map +1 -1
  14. package/dist/components/auth/Facebook.js +78 -63
  15. package/dist/components/auth/Facebook.js.map +1 -1
  16. package/dist/components/auth/Facebook.mjs +121 -54
  17. package/dist/components/auth/Facebook.mjs.map +1 -1
  18. package/dist/components/auth/Google.js +63 -47
  19. package/dist/components/auth/Google.js.map +1 -1
  20. package/dist/components/auth/Google.mjs +70 -39
  21. package/dist/components/auth/Google.mjs.map +1 -1
  22. package/dist/components/auth/OtpVerification.js +106 -51
  23. package/dist/components/auth/OtpVerification.js.map +1 -1
  24. package/dist/components/auth/OtpVerification.mjs +151 -41
  25. package/dist/components/auth/OtpVerification.mjs.map +1 -1
  26. package/dist/components/auth/PhoneInput.d.ts.map +1 -1
  27. package/dist/components/auth/PhoneInput.js +138 -69
  28. package/dist/components/auth/PhoneInput.js.map +1 -1
  29. package/dist/components/auth/PhoneInput.mjs +141 -70
  30. package/dist/components/auth/PhoneInput.mjs.map +1 -1
  31. package/dist/components/auth/TurnkeyThemeProvider.js +26 -17
  32. package/dist/components/auth/TurnkeyThemeProvider.js.map +1 -1
  33. package/dist/components/auth/TurnkeyThemeProvider.mjs +33 -18
  34. package/dist/components/auth/TurnkeyThemeProvider.mjs.map +1 -1
  35. package/dist/components/auth/constants.js +26 -26
  36. package/dist/components/auth/constants.js.map +1 -1
  37. package/dist/components/auth/constants.mjs +34 -34
  38. package/dist/components/auth/constants.mjs.map +1 -1
  39. package/dist/components/auth/facebookUtils.js +23 -21
  40. package/dist/components/auth/facebookUtils.js.map +1 -1
  41. package/dist/components/auth/facebookUtils.mjs +65 -23
  42. package/dist/components/auth/facebookUtils.mjs.map +1 -1
  43. package/dist/components/auth/otp.js +84 -71
  44. package/dist/components/auth/otp.js.map +1 -1
  45. package/dist/components/auth/otp.mjs +96 -70
  46. package/dist/components/auth/otp.mjs.map +1 -1
  47. package/dist/components/auth/utils.js +3 -3
  48. package/dist/components/auth/utils.js.map +1 -1
  49. package/dist/components/auth/utils.mjs +3 -3
  50. package/dist/components/auth/utils.mjs.map +1 -1
  51. package/dist/components/export/Export.js +181 -99
  52. package/dist/components/export/Export.js.map +1 -1
  53. package/dist/components/export/Export.mjs +257 -89
  54. package/dist/components/export/Export.mjs.map +1 -1
  55. package/dist/components/import/Import.js +185 -132
  56. package/dist/components/import/Import.js.map +1 -1
  57. package/dist/components/import/Import.mjs +264 -120
  58. package/dist/components/import/Import.mjs.map +1 -1
  59. package/dist/contexts/TurnkeyContext.d.ts.map +1 -1
  60. package/dist/contexts/TurnkeyContext.js +113 -93
  61. package/dist/contexts/TurnkeyContext.js.map +1 -1
  62. package/dist/contexts/TurnkeyContext.mjs +191 -92
  63. package/dist/contexts/TurnkeyContext.mjs.map +1 -1
  64. package/dist/hooks/use-session.js +16 -13
  65. package/dist/hooks/use-session.js.map +1 -1
  66. package/dist/hooks/use-session.mjs +18 -13
  67. package/dist/hooks/use-session.mjs.map +1 -1
  68. package/dist/hooks/use-turnkey.js +5 -5
  69. package/dist/hooks/use-turnkey.js.map +1 -1
  70. package/dist/hooks/use-turnkey.mjs +6 -6
  71. package/dist/hooks/use-turnkey.mjs.map +1 -1
  72. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"Apple.js","sources":["../../../src/components/auth/Apple.tsx"],"sourcesContent":[null],"names":["useState","useEffect","APPLE_AUTH_SCRIPT_URL","bytesToHex","sha256","APPLE_AUTH_URL","popupWidth","popupHeight","_jsxs","styles","_jsx","appleIcon"],"mappings":"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"}
1
+ {"version":3,"file":"Apple.js","sources":["../../../src/components/auth/Apple.tsx"],"sourcesContent":[null],"names":["AppleAuthButton","iframePublicKey","onSuccess","clientId","layout","appleSDKLoaded","setAppleSDKLoaded","useState","redirectURI","process","env","NEXT_PUBLIC_OAUTH_REDIRECT_URI","useEffect","loadAppleSDK","script","document","createElement","src","APPLE_AUTH_SCRIPT_URL","onload","onerror","console","error","body","appendChild","window","AppleID","handleLogin","nonce","bytesToHex","sha256","appleAuthUrl","URL","APPLE_AUTH_URL","searchParams","set","width","popupWidth","height","popupHeight","left","screenX","innerWidth","top","screenY","innerHeight","authWindow","open","toString","interval","setInterval","url","location","href","startsWith","origin","hashParams","URLSearchParams","split","idToken","get","close","clearInterval","closed","_jsxs","onClick","className","styles","iconButton","socialButton","children","_jsx","appleIcon","iconLarge","iconSmall"],"mappings":";;;;;;;;;;AAwBMA,MAAAA,eAAe,GAAmCA,CAAC;EACvDC,eAAe;EACfC,SAAS;EACTC,QAAQ;AACRC,EAAAA,MAAAA;AAAM,CACP,KAAI;EACH,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,EAAA,MAAMC,WAAW,GAAGC,OAAO,CAACC,GAAG,CAACC,8BAA+B,CAAA;AAE/DC,EAAAA,eAAS,CAAC,MAAK;IACb,MAAMC,YAAY,GAAGA,MAAK;AACxB,MAAA,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC,CAAA;MAC/CF,MAAM,CAACG,GAAG,GAAGC,+BAAqB,CAAA;AAClCJ,MAAAA,MAAM,CAACK,MAAM,GAAG,MAAMb,iBAAiB,CAAC,IAAI,CAAC,CAAA;MAC7CQ,MAAM,CAACM,OAAO,GAAG,MAAMC,OAAO,CAACC,KAAK,CAAC,4BAA4B,CAAC,CAAA;AAClEP,MAAAA,QAAQ,CAACQ,IAAI,CAACC,WAAW,CAACV,MAAM,CAAC,CAAA;KAClC,CAAA;AAED,IAAA,IAAI,CAACW,MAAM,CAACC,OAAO,EAAE;AACnBb,MAAAA,YAAY,EAAE,CAAA;AACf,KAAA,MAAM;MACLP,iBAAiB,CAAC,IAAI,CAAC,CAAA;AACxB,KAAA;GACF,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMqB,WAAW,GAAGA,MAAK;IACvB,MAAMC,KAAK,GAAGC,gBAAU,CAACC,WAAM,CAAC7B,eAAe,CAAC,CAAC,CAAA;AACjD,IAAA,MAAM8B,YAAY,GAAG,IAAIC,GAAG,CAACC,wBAAc,CAAC,CAAA;IAC5CF,YAAY,CAACG,YAAY,CAACC,GAAG,CAAC,WAAW,EAAEhC,QAAQ,CAAC,CAAA;IACpD4B,YAAY,CAACG,YAAY,CAACC,GAAG,CAAC,cAAc,EAAE3B,WAAW,CAAC,CAAA;IAC1DuB,YAAY,CAACG,YAAY,CAACC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC/DJ,YAAY,CAACG,YAAY,CAACC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC1DJ,YAAY,CAACG,YAAY,CAACC,GAAG,CAAC,OAAO,EAAEP,KAAK,CAAC,CAAA;AAE7C;IACA,MAAMQ,KAAK,GAAGC,oBAAU,CAAA;IACxB,MAAMC,MAAM,GAAGC,qBAAW,CAAA;AAC1B,IAAA,MAAMC,IAAI,GAAGf,MAAM,CAACgB,OAAO,GAAG,CAAChB,MAAM,CAACiB,UAAU,GAAGN,KAAK,IAAI,CAAC,CAAA;AAC7D,IAAA,MAAMO,GAAG,GAAGlB,MAAM,CAACmB,OAAO,GAAG,CAACnB,MAAM,CAACoB,WAAW,GAAGP,MAAM,IAAI,CAAC,CAAA;AAE9D;IACA,MAAMQ,UAAU,GAAGrB,MAAM,CAACsB,IAAI,CAC5BhB,YAAY,CAACiB,QAAQ,EAAE,EACvB,QAAQ,EACR,CAASZ,MAAAA,EAAAA,KAAK,CAAWE,QAAAA,EAAAA,MAAM,QAAQK,GAAY,CAAA,MAAA,EAAAH,IAAmC,CAAA,6BAAA,CAAA,CACvF,CAAA;IAED,IAAI,CAACM,UAAU,EAAE;AACfzB,MAAAA,OAAO,CAACC,KAAK,CAAC,oCAAoC,CAAC,CAAA;AACnD,MAAA,OAAA;AACD,KAAA;AAED;AACA,IAAA,MAAM2B,QAAQ,GAAGC,WAAW,CAAC,MAAK;MAChC,IAAI;QACF,MAAMC,GAAG,GAAGL,UAAU,EAAEM,QAAQ,CAACC,IAAI,IAAI,EAAE,CAAA;QAC3C,IAAIF,GAAG,CAACG,UAAU,CAAC7B,MAAM,CAAC2B,QAAQ,CAACG,MAAM,CAAC,EAAE;AAC1C,UAAA,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAACN,GAAG,CAACO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzD,UAAA,MAAMC,OAAO,GAAGH,UAAU,CAACI,GAAG,CAAC,UAAU,CAAC,CAAA;AAC1C,UAAA,IAAID,OAAO,EAAE;YACXb,UAAU,EAAEe,KAAK,EAAE,CAAA;YACnBC,aAAa,CAACb,QAAQ,CAAC,CAAA;AACvB/C,YAAAA,SAAS,CAAC;AAAEyD,cAAAA,OAAAA;AAAO,aAAE,CAAC,CAAA;AACvB,WAAA;AACF,SAAA;OACF,CAAC,OAAOrC,KAAK,EAAE;AACd;AACA;AACA;AACA;AAAA,OAAA;MAGF,IAAIwB,UAAU,EAAEiB,MAAM,EAAE;QACtBD,aAAa,CAACb,QAAQ,CAAC,CAAA;AACxB,OAAA;KACF,EAAE,GAAG,CAAC,CAAA;GACR,CAAA;EAED,IAAI,CAAC5C,cAAc,EAAE;AACnB,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;EAED,OACE2D,eACE,CAAA,KAAA,EAAA;AAAAC,IAAAA,OAAO,EAAEtC,WAAW;IACpBuC,SAAS,EAAE9D,MAAM,KAAK,QAAQ,GAAG+D,cAAM,CAACC,UAAU,GAAGD,cAAM,CAACE,YAAY;AAExEC,IAAAA,QAAA,EAAA,CAAAC,cAAA,CAAA,KAAA,EAAA;AACEtD,MAAAA,GAAG,EAAEuD,KAAS;MACdN,SAAS,EAAE9D,MAAM,KAAK,QAAQ,GAAG+D,cAAM,CAACM,SAAS,GAAGN,cAAM,CAACO,SAAAA;KAAS,CACpE,EACDtE,MAAM,KAAK,SAAS,IAAImE,cAAA,CAAA,MAAA,EAAA;AAAAD,MAAAA,QAAA,EAAA,qBAAA;AAAA,KAAA,CAAgC,CAAA;AACrD,GAAA,CAAA,CAAA;AAEV;;;;"}
@@ -1,3 +1,4 @@
1
+ import { slicedToArray as _slicedToArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
3
  import { useState, useEffect } from 'react';
3
4
  import { sha256 } from '@noble/hashes/sha2';
@@ -6,72 +7,92 @@ import styles from './Socials.module.css.mjs';
6
7
  import appleIcon from '../../assets/apple.svg.mjs';
7
8
  import { APPLE_AUTH_SCRIPT_URL, APPLE_AUTH_URL, popupWidth, popupHeight } from './constants.mjs';
8
9
 
9
- const AppleAuthButton = ({ iframePublicKey, onSuccess, clientId, layout, }) => {
10
- const [appleSDKLoaded, setAppleSDKLoaded] = useState(false);
11
- const redirectURI = process.env.NEXT_PUBLIC_OAUTH_REDIRECT_URI;
12
- useEffect(() => {
13
- const loadAppleSDK = () => {
14
- const script = document.createElement("script");
15
- script.src = APPLE_AUTH_SCRIPT_URL;
16
- script.onload = () => setAppleSDKLoaded(true);
17
- script.onerror = () => console.error("Failed to load AppleID SDK");
18
- document.body.appendChild(script);
19
- };
20
- if (!window.AppleID) {
21
- loadAppleSDK();
22
- }
23
- else {
24
- setAppleSDKLoaded(true);
25
- }
26
- }, []);
27
- const handleLogin = () => {
28
- const nonce = bytesToHex(sha256(iframePublicKey));
29
- const appleAuthUrl = new URL(APPLE_AUTH_URL);
30
- appleAuthUrl.searchParams.set("client_id", clientId);
31
- appleAuthUrl.searchParams.set("redirect_uri", redirectURI);
32
- appleAuthUrl.searchParams.set("response_type", "code id_token");
33
- appleAuthUrl.searchParams.set("response_mode", "fragment");
34
- appleAuthUrl.searchParams.set("nonce", nonce);
35
- // Calculate popup dimensions and position for centering
36
- const width = popupWidth;
37
- const height = popupHeight;
38
- const left = window.screenX + (window.innerWidth - width) / 2;
39
- const top = window.screenY + (window.innerHeight - height) / 2;
40
- // Open the Apple login popup
41
- const authWindow = window.open(appleAuthUrl.toString(), "_blank", `width=${width},height=${height},top=${top},left=${left},scrollbars=yes,resizable=yes`);
42
- if (!authWindow) {
43
- console.error("Failed to open Apple login window.");
44
- return;
45
- }
46
- // Monitor the popup for redirect and extract tokens
47
- const interval = setInterval(() => {
48
- try {
49
- const url = authWindow?.location.href || "";
50
- if (url.startsWith(window.location.origin)) {
51
- const hashParams = new URLSearchParams(url.split("#")[1]);
52
- const idToken = hashParams.get("id_token");
53
- if (idToken) {
54
- authWindow?.close();
55
- clearInterval(interval);
56
- onSuccess({ idToken });
57
- }
58
- }
59
- }
60
- catch (error) {
61
- // Ignore cross-origin errors until the popup redirects to the same origin.
62
- // These errors occur because the script attempts to access the URL of the popup window while it's on a different domain.
63
- // Due to browser security policies (Same-Origin Policy), accessing properties like location.href on a window that is on a different domain will throw an exception.
64
- // Once the popup redirects to the same origin as the parent window, these errors will no longer occur, and the script can safely access the popup's location to extract parameters.
65
- }
66
- if (authWindow?.closed) {
67
- clearInterval(interval);
68
- }
69
- }, 500);
10
+ var AppleAuthButton = function AppleAuthButton(_ref) {
11
+ var iframePublicKey = _ref.iframePublicKey,
12
+ onSuccess = _ref.onSuccess,
13
+ clientId = _ref.clientId,
14
+ layout = _ref.layout;
15
+ var _useState = useState(false),
16
+ _useState2 = _slicedToArray(_useState, 2),
17
+ appleSDKLoaded = _useState2[0],
18
+ setAppleSDKLoaded = _useState2[1];
19
+ var redirectURI = process.env.NEXT_PUBLIC_OAUTH_REDIRECT_URI;
20
+ useEffect(function () {
21
+ var loadAppleSDK = function loadAppleSDK() {
22
+ var script = document.createElement("script");
23
+ script.src = APPLE_AUTH_SCRIPT_URL;
24
+ script.onload = function () {
25
+ return setAppleSDKLoaded(true);
26
+ };
27
+ script.onerror = function () {
28
+ return console.error("Failed to load AppleID SDK");
29
+ };
30
+ document.body.appendChild(script);
70
31
  };
71
- if (!appleSDKLoaded) {
72
- return null;
32
+ if (!window.AppleID) {
33
+ loadAppleSDK();
34
+ } else {
35
+ setAppleSDKLoaded(true);
73
36
  }
74
- return (jsxs("div", { onClick: handleLogin, className: layout === "inline" ? styles.iconButton : styles.socialButton, children: [jsx("img", { src: appleIcon, className: layout === "inline" ? styles.iconLarge : styles.iconSmall }), layout === "stacked" && jsx("span", { children: "Continue with Apple" })] }));
37
+ }, []);
38
+ var handleLogin = function handleLogin() {
39
+ var nonce = bytesToHex(sha256(iframePublicKey));
40
+ var appleAuthUrl = new URL(APPLE_AUTH_URL);
41
+ appleAuthUrl.searchParams.set("client_id", clientId);
42
+ appleAuthUrl.searchParams.set("redirect_uri", redirectURI);
43
+ appleAuthUrl.searchParams.set("response_type", "code id_token");
44
+ appleAuthUrl.searchParams.set("response_mode", "fragment");
45
+ appleAuthUrl.searchParams.set("nonce", nonce);
46
+ // Calculate popup dimensions and position for centering
47
+ var width = popupWidth;
48
+ var height = popupHeight;
49
+ var left = window.screenX + (window.innerWidth - width) / 2;
50
+ var top = window.screenY + (window.innerHeight - height) / 2;
51
+ // Open the Apple login popup
52
+ var authWindow = window.open(appleAuthUrl.toString(), "_blank", "width=".concat(width, ",height=").concat(height, ",top=").concat(top, ",left=").concat(left, ",scrollbars=yes,resizable=yes"));
53
+ if (!authWindow) {
54
+ console.error("Failed to open Apple login window.");
55
+ return;
56
+ }
57
+ // Monitor the popup for redirect and extract tokens
58
+ var interval = setInterval(function () {
59
+ try {
60
+ var url = (authWindow === null || authWindow === void 0 ? void 0 : authWindow.location.href) || "";
61
+ if (url.startsWith(window.location.origin)) {
62
+ var hashParams = new URLSearchParams(url.split("#")[1]);
63
+ var idToken = hashParams.get("id_token");
64
+ if (idToken) {
65
+ authWindow === null || authWindow === void 0 ? void 0 : authWindow.close();
66
+ clearInterval(interval);
67
+ onSuccess({
68
+ idToken: idToken
69
+ });
70
+ }
71
+ }
72
+ } catch (error) {
73
+ // Ignore cross-origin errors until the popup redirects to the same origin.
74
+ // These errors occur because the script attempts to access the URL of the popup window while it's on a different domain.
75
+ // Due to browser security policies (Same-Origin Policy), accessing properties like location.href on a window that is on a different domain will throw an exception.
76
+ // Once the popup redirects to the same origin as the parent window, these errors will no longer occur, and the script can safely access the popup's location to extract parameters.
77
+ }
78
+ if (authWindow !== null && authWindow !== void 0 && authWindow.closed) {
79
+ clearInterval(interval);
80
+ }
81
+ }, 500);
82
+ };
83
+ if (!appleSDKLoaded) {
84
+ return null;
85
+ }
86
+ return jsxs("div", {
87
+ onClick: handleLogin,
88
+ className: layout === "inline" ? styles.iconButton : styles.socialButton,
89
+ children: [jsx("img", {
90
+ src: appleIcon,
91
+ className: layout === "inline" ? styles.iconLarge : styles.iconSmall
92
+ }), layout === "stacked" && jsx("span", {
93
+ children: "Continue with Apple"
94
+ })]
95
+ });
75
96
  };
76
97
 
77
98
  export { AppleAuthButton as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Apple.mjs","sources":["../../../src/components/auth/Apple.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;AAwBA,MAAM,eAAe,GAAmC,CAAC,EACvD,eAAe,EACf,SAAS,EACT,QAAQ,EACR,MAAM,GACP,KAAI;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,IAAA,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA+B,CAAC;IAEhE,SAAS,CAAC,MAAK;QACb,MAAM,YAAY,GAAG,MAAK;YACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,MAAM,CAAC,GAAG,GAAG,qBAAqB,CAAC;YACnC,MAAM,CAAC,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACnE,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACnB,YAAA,YAAY,EAAE,CAAC;AAChB,SAAA;AAAM,aAAA;YACL,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACzB,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,MAAK;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;AAClD,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3D,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAChE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3D,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;;QAG9C,MAAM,KAAK,GAAG,UAAU,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,IAAI,CAAC,CAAC;AAC9D,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,CAAC;;QAG/D,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAC5B,YAAY,CAAC,QAAQ,EAAE,EACvB,QAAQ,EACR,CAAA,MAAA,EAAS,KAAK,CAAA,QAAA,EAAW,MAAM,CAAA,KAAA,EAAQ,GAAG,CAAS,MAAA,EAAA,IAAI,CAA+B,6BAAA,CAAA,CACvF,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO;AACR,SAAA;;AAGD,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;YAChC,IAAI;gBACF,MAAM,GAAG,GAAG,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;gBAC5C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,oBAAA,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3C,oBAAA,IAAI,OAAO,EAAE;wBACX,UAAU,EAAE,KAAK,EAAE,CAAC;wBACpB,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxB,wBAAA,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACxB,qBAAA;AACF,iBAAA;AACF,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;;;;;AAKf,aAAA;YAED,IAAI,UAAU,EAAE,MAAM,EAAE;gBACtB,aAAa,CAAC,QAAQ,CAAC,CAAC;AACzB,aAAA;SACF,EAAE,GAAG,CAAC,CAAC;AACV,KAAC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAED,QACEA,IACE,CAAA,KAAA,EAAA,EAAA,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,EAExE,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAA,CACpE,EACD,MAAM,KAAK,SAAS,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAAgC,CACrD,EAAA,CAAA,EACN;AACJ;;;;"}
1
+ {"version":3,"file":"Apple.mjs","sources":["../../../src/components/auth/Apple.tsx"],"sourcesContent":[null],"names":["AppleAuthButton","_ref","iframePublicKey","onSuccess","clientId","layout","_useState","useState","_useState2","_slicedToArray","appleSDKLoaded","setAppleSDKLoaded","redirectURI","process","env","NEXT_PUBLIC_OAUTH_REDIRECT_URI","useEffect","loadAppleSDK","script","document","createElement","src","APPLE_AUTH_SCRIPT_URL","onload","onerror","console","error","body","appendChild","window","AppleID","handleLogin","nonce","bytesToHex","sha256","appleAuthUrl","URL","APPLE_AUTH_URL","searchParams","set","width","popupWidth","height","popupHeight","left","screenX","innerWidth","top","screenY","innerHeight","authWindow","open","toString","concat","interval","setInterval","url","location","href","startsWith","origin","hashParams","URLSearchParams","split","idToken","get","close","clearInterval","closed","_jsxs","onClick","className","styles","iconButton","socialButton","children","_jsx","appleIcon","iconLarge","iconSmall"],"mappings":"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"}
@@ -11,6 +11,9 @@ interface AuthProps {
11
11
  facebookEnabled: boolean;
12
12
  googleEnabled: boolean;
13
13
  sessionLengthSeconds?: number;
14
+ googleClientId?: string;
15
+ appleClientId?: string;
16
+ facebookClientId?: string;
14
17
  };
15
18
  configOrder: string[];
16
19
  customSmsMessage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/components/auth/Auth.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAoC1D,UAAU,SAAS;IACjB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;QACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAujB7B,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/components/auth/Auth.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAcnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAoC1D,UAAU,SAAS;IACjB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;QACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CAClC;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAokB7B,CAAC;AAEF,eAAe,IAAI,CAAC"}