Created
February 27, 2024 10:01
-
-
Save EKoetsjarjan/1a4457c763e240f1324bf4ff60d5391a to your computer and use it in GitHub Desktop.
expo-firebase-recaptcha+2.3.1.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts | |
index ecf5441..a1f04d9 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts | |
@@ -1,6 +1,6 @@ | |
-import { FirebaseOptions } from 'expo-firebase-core'; | |
-import * as React from 'react'; | |
-import { WebView } from './WebView'; | |
+import * as React from "react"; | |
+import { FirebaseOptions } from "./FirebaseRecaptcha.types"; | |
+import { WebView } from "./WebView"; | |
interface Props extends React.ComponentProps<typeof WebView> { | |
firebaseConfig?: FirebaseOptions; | |
firebaseVersion?: string; | |
@@ -13,7 +13,7 @@ interface Props extends React.ComponentProps<typeof WebView> { | |
invisible?: boolean; | |
verify?: boolean; | |
} | |
-declare function FirebaseRecaptcha(props: Props): JSX.Element | null; | |
+declare function FirebaseRecaptcha(props: Props): React.JSX.Element | null; | |
declare namespace FirebaseRecaptcha { | |
var defaultProps: { | |
firebaseConfig: void | FirebaseOptions; | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts.map | |
index 9c370ff..8c03458 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.d.ts.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptcha.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptcha.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2B,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,UAAU,KAAM,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC;IAC1D,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA8HD,iBAAwB,iBAAiB,CAAC,KAAK,EAAE,KAAK,sBA6ErD;kBA7EuB,iBAAiB;;;;;eAAjB,iBAAiB"} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptcha.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptcha.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,UAAU,KAAM,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC;IAC1D,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA8HD,iBAAwB,iBAAiB,CAAC,KAAK,EAAE,KAAK,4BA6ErD;kBA7EuB,iBAAiB;;;;;eAAjB,iBAAiB"} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js | |
index 81dd5b1..dc15e1d 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js | |
@@ -1,7 +1,14 @@ | |
-import { DEFAULT_WEB_APP_OPTIONS } from 'expo-firebase-core'; | |
-import { CodedError } from 'expo-modules-core'; | |
-import * as React from 'react'; | |
-import { WebView } from './WebView'; | |
+import Constants from "expo-constants"; | |
+import { CodedError } from "expo-modules-core"; | |
+import * as React from "react"; | |
+import { WebView } from "./WebView"; | |
+function getDefaultWebOptions() { | |
+ return Constants.expoConfig?.web?.config?.firebase; | |
+} | |
+/** | |
+ * The default Firebase options as defined in `web.config.firebase` in `app.json`. | |
+ */ | |
+const DEFAULT_WEB_APP_OPTIONS = getDefaultWebOptions(); | |
function getWebviewSource(firebaseConfig, firebaseVersion, appVerificationDisabledForTesting = false, languageCode, invisible) { | |
firebaseVersion = firebaseVersion || '8.0.0'; | |
return { | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js.map | |
index 3eca25a..abccb5c 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptcha.js","sourceRoot":"","sources":["../src/FirebaseRecaptcha.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DEFAULT_WEB_APP_OPTIONS, FirebaseOptions } from 'expo-firebase-core';\nimport { CodedError } from 'expo-modules-core';\nimport * as React from 'react';\n\nimport { WebView } from './WebView';\n\ninterface Props extends React.ComponentProps<typeof WebView> {\n firebaseConfig?: FirebaseOptions;\n firebaseVersion?: string;\n appVerificationDisabledForTesting?: boolean;\n languageCode?: string;\n onLoad?: () => any;\n onError?: () => any;\n onVerify: (token: string) => any;\n onFullChallenge?: () => any;\n invisible?: boolean;\n verify?: boolean;\n}\n\nfunction getWebviewSource(\n firebaseConfig: FirebaseOptions,\n firebaseVersion?: string,\n appVerificationDisabledForTesting: boolean = false,\n languageCode?: string,\n invisible?: boolean\n) {\n firebaseVersion = firebaseVersion || '8.0.0';\n return {\n baseUrl: `https://${firebaseConfig.authDomain}`,\n html: `\n<!DOCTYPE html><html>\n<head>\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n <meta name=\"HandheldFriendly\" content=\"true\">\n <script src=\"https://www.gstatic.com/firebasejs/${firebaseVersion}/firebase-app.js\"></script>\n <script src=\"https://www.gstatic.com/firebasejs/${firebaseVersion}/firebase-auth.js\"></script>\n <script type=\"text/javascript\">firebase.initializeApp(${JSON.stringify(firebaseConfig)});</script>\n <style>\n html, body {\n height: 100%;\n ${invisible ? `padding: 0; margin: 0;` : ``}\n }\n #recaptcha-btn {\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n -webkit-user-select: none;\n }\n </style>\n</head>\n<body>\n ${\n invisible\n ? `<button id=\"recaptcha-btn\" type=\"button\" onclick=\"onClickButton()\">Confirm reCAPTCHA</button>`\n : `<div id=\"recaptcha-cont\" class=\"g-recaptcha\"></div>`\n }\n <script>\n var fullChallengeTimer;\n function onVerify(token) {\n if (fullChallengeTimer) {\n clearInterval(fullChallengeTimer);\n fullChallengeTimer = undefined;\n }\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'verify',\n token: token\n }));\n }\n function onLoad() {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'load'\n }));\n firebase.auth().settings.appVerificationDisabledForTesting = ${appVerificationDisabledForTesting};\n ${languageCode ? `firebase.auth().languageCode = '${languageCode}';` : ''}\n window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier(\"${\n invisible ? 'recaptcha-btn' : 'recaptcha-cont'\n }\", {\n size: \"${invisible ? 'invisible' : 'normal'}\",\n callback: onVerify\n });\n window.recaptchaVerifier.render();\n }\n function onError() {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'error'\n }));\n }\n function onClickButton() {\n if (!fullChallengeTimer) {\n fullChallengeTimer = setInterval(function() {\n var iframes = document.getElementsByTagName(\"iframe\");\n var isFullChallenge = false;\n for (i = 0; i < iframes.length; i++) {\n var parentWindow = iframes[i].parentNode ? iframes[i].parentNode.parentNode : undefined;\n var isHidden = parentWindow && parentWindow.style.opacity == 0;\n isFullChallenge = isFullChallenge || (\n !isHidden && \n ((iframes[i].title === 'recaptcha challenge') ||\n (iframes[i].src.indexOf('google.com/recaptcha/api2/bframe') >= 0)));\n }\n if (isFullChallenge) {\n clearInterval(fullChallengeTimer);\n fullChallengeTimer = undefined;\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'fullChallenge'\n })); \n }\n }, 100);\n }\n }\n window.addEventListener('message', function(event) {\n if (event.data.verify) {\n document.getElementById('recaptcha-btn').click();\n }\n });\n </script>\n <script src=\"https://www.google.com/recaptcha/api.js?onload=onLoad&render=explicit&hl=${\n languageCode ?? ''\n }\" onerror=\"onError()\"></script>\n</body></html>`,\n };\n}\n\nfunction validateFirebaseConfig(firebaseConfig?: FirebaseOptions) {\n if (!firebaseConfig) {\n throw new CodedError(\n 'ERR_FIREBASE_RECAPTCHA_CONFIG',\n `Missing firebase web configuration. Please set the \"expo.web.config.firebase\" field in \"app.json\" or use the \"firebaseConfig\" prop.`\n );\n }\n const { authDomain } = firebaseConfig;\n if (!authDomain) {\n throw new CodedError(\n 'ERR_FIREBASE_RECAPTCHA_CONFIG',\n `Missing \"authDomain\" in firebase web configuration.`\n );\n }\n}\n\nexport default function FirebaseRecaptcha(props: Props) {\n const {\n firebaseConfig,\n firebaseVersion,\n appVerificationDisabledForTesting,\n languageCode,\n onVerify,\n onLoad,\n onError,\n onFullChallenge,\n invisible,\n verify,\n ...otherProps\n } = props;\n const webview = React.useRef(null);\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (webview.current && loaded && verify) {\n // @ts-ignore: Object is possibly null\n webview.current.injectJavaScript(`\n (function(){\n window.dispatchEvent(new MessageEvent('message', {data: { verify: true }}));\n })();\n true;\n `);\n }\n return () => {};\n }, [webview, verify, loaded]);\n validateFirebaseConfig(firebaseConfig);\n if (!firebaseConfig) {\n console.error(\n `FirebaseRecaptcha: Missing firebase web configuration. Please set the \"expo.web.config.firebase\" field in \"app.json\" or use the \"firebaseConfig\" prop.`\n );\n return null;\n }\n return (\n <WebView\n ref={webview}\n javaScriptEnabled\n automaticallyAdjustContentInsets\n scalesPageToFit\n mixedContentMode=\"always\"\n source={getWebviewSource(\n firebaseConfig,\n firebaseVersion,\n appVerificationDisabledForTesting,\n languageCode,\n invisible\n )}\n onError={onError}\n onMessage={(event) => {\n const data = JSON.parse(event.nativeEvent.data);\n switch (data.type) {\n case 'load':\n if (onLoad) {\n setLoaded(true);\n onLoad();\n }\n break;\n case 'error':\n if (onError) {\n onError();\n }\n break;\n case 'verify':\n onVerify(data.token);\n break;\n case 'fullChallenge':\n if (onFullChallenge) {\n onFullChallenge();\n }\n break;\n }\n }}\n {...otherProps}\n />\n );\n}\n\nFirebaseRecaptcha.defaultProps = {\n firebaseConfig: DEFAULT_WEB_APP_OPTIONS,\n};\n"]} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptcha.js","sourceRoot":"","sources":["../src/FirebaseRecaptcha.tsx"],"names":[],"mappings":"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","sourcesContent":["import Constants from \"expo-constants\";\nimport { CodedError } from \"expo-modules-core\";\nimport * as React from \"react\";\n\nimport { FirebaseOptions } from \"./FirebaseRecaptcha.types\";\nimport { WebView } from \"./WebView\";\n\nfunction getDefaultWebOptions(): FirebaseOptions | void {\n return Constants.expoConfig?.web?.config?.firebase;\n}\n\n/**\n * The default Firebase options as defined in `web.config.firebase` in `app.json`.\n */\nconst DEFAULT_WEB_APP_OPTIONS: FirebaseOptions | void = getDefaultWebOptions();\n\ninterface Props extends React.ComponentProps<typeof WebView> {\n firebaseConfig?: FirebaseOptions;\n firebaseVersion?: string;\n appVerificationDisabledForTesting?: boolean;\n languageCode?: string;\n onLoad?: () => any;\n onError?: () => any;\n onVerify: (token: string) => any;\n onFullChallenge?: () => any;\n invisible?: boolean;\n verify?: boolean;\n}\n\nfunction getWebviewSource(\n firebaseConfig: FirebaseOptions,\n firebaseVersion?: string,\n appVerificationDisabledForTesting: boolean = false,\n languageCode?: string,\n invisible?: boolean\n) {\n firebaseVersion = firebaseVersion || '8.0.0';\n return {\n baseUrl: `https://${firebaseConfig.authDomain}`,\n html: `\n<!DOCTYPE html><html>\n<head>\n <meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n <meta name=\"HandheldFriendly\" content=\"true\">\n <script src=\"https://www.gstatic.com/firebasejs/${firebaseVersion}/firebase-app.js\"></script>\n <script src=\"https://www.gstatic.com/firebasejs/${firebaseVersion}/firebase-auth.js\"></script>\n <script type=\"text/javascript\">firebase.initializeApp(${JSON.stringify(firebaseConfig)});</script>\n <style>\n html, body {\n height: 100%;\n ${invisible ? `padding: 0; margin: 0;` : ``}\n }\n #recaptcha-btn {\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n user-select: none;\n -webkit-user-select: none;\n }\n </style>\n</head>\n<body>\n ${\n invisible\n ? `<button id=\"recaptcha-btn\" type=\"button\" onclick=\"onClickButton()\">Confirm reCAPTCHA</button>`\n : `<div id=\"recaptcha-cont\" class=\"g-recaptcha\"></div>`\n }\n <script>\n var fullChallengeTimer;\n function onVerify(token) {\n if (fullChallengeTimer) {\n clearInterval(fullChallengeTimer);\n fullChallengeTimer = undefined;\n }\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'verify',\n token: token\n }));\n }\n function onLoad() {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'load'\n }));\n firebase.auth().settings.appVerificationDisabledForTesting = ${appVerificationDisabledForTesting};\n ${languageCode ? `firebase.auth().languageCode = '${languageCode}';` : ''}\n window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier(\"${\n invisible ? 'recaptcha-btn' : 'recaptcha-cont'\n }\", {\n size: \"${invisible ? 'invisible' : 'normal'}\",\n callback: onVerify\n });\n window.recaptchaVerifier.render();\n }\n function onError() {\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'error'\n }));\n }\n function onClickButton() {\n if (!fullChallengeTimer) {\n fullChallengeTimer = setInterval(function() {\n var iframes = document.getElementsByTagName(\"iframe\");\n var isFullChallenge = false;\n for (i = 0; i < iframes.length; i++) {\n var parentWindow = iframes[i].parentNode ? iframes[i].parentNode.parentNode : undefined;\n var isHidden = parentWindow && parentWindow.style.opacity == 0;\n isFullChallenge = isFullChallenge || (\n !isHidden && \n ((iframes[i].title === 'recaptcha challenge') ||\n (iframes[i].src.indexOf('google.com/recaptcha/api2/bframe') >= 0)));\n }\n if (isFullChallenge) {\n clearInterval(fullChallengeTimer);\n fullChallengeTimer = undefined;\n window.ReactNativeWebView.postMessage(JSON.stringify({\n type: 'fullChallenge'\n })); \n }\n }, 100);\n }\n }\n window.addEventListener('message', function(event) {\n if (event.data.verify) {\n document.getElementById('recaptcha-btn').click();\n }\n });\n </script>\n <script src=\"https://www.google.com/recaptcha/api.js?onload=onLoad&render=explicit&hl=${\n languageCode ?? ''\n }\" onerror=\"onError()\"></script>\n</body></html>`,\n };\n}\n\nfunction validateFirebaseConfig(firebaseConfig?: FirebaseOptions) {\n if (!firebaseConfig) {\n throw new CodedError(\n 'ERR_FIREBASE_RECAPTCHA_CONFIG',\n `Missing firebase web configuration. Please set the \"expo.web.config.firebase\" field in \"app.json\" or use the \"firebaseConfig\" prop.`\n );\n }\n const { authDomain } = firebaseConfig;\n if (!authDomain) {\n throw new CodedError(\n 'ERR_FIREBASE_RECAPTCHA_CONFIG',\n `Missing \"authDomain\" in firebase web configuration.`\n );\n }\n}\n\nexport default function FirebaseRecaptcha(props: Props) {\n const {\n firebaseConfig,\n firebaseVersion,\n appVerificationDisabledForTesting,\n languageCode,\n onVerify,\n onLoad,\n onError,\n onFullChallenge,\n invisible,\n verify,\n ...otherProps\n } = props;\n const webview = React.useRef(null);\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (webview.current && loaded && verify) {\n // @ts-ignore: Object is possibly null\n webview.current.injectJavaScript(`\n (function(){\n window.dispatchEvent(new MessageEvent('message', {data: { verify: true }}));\n })();\n true;\n `);\n }\n return () => {};\n }, [webview, verify, loaded]);\n validateFirebaseConfig(firebaseConfig);\n if (!firebaseConfig) {\n console.error(\n `FirebaseRecaptcha: Missing firebase web configuration. Please set the \"expo.web.config.firebase\" field in \"app.json\" or use the \"firebaseConfig\" prop.`\n );\n return null;\n }\n return (\n <WebView\n ref={webview}\n javaScriptEnabled\n automaticallyAdjustContentInsets\n scalesPageToFit\n mixedContentMode=\"always\"\n source={getWebviewSource(\n firebaseConfig,\n firebaseVersion,\n appVerificationDisabledForTesting,\n languageCode,\n invisible\n )}\n onError={onError}\n onMessage={(event) => {\n const data = JSON.parse(event.nativeEvent.data);\n switch (data.type) {\n case 'load':\n if (onLoad) {\n setLoaded(true);\n onLoad();\n }\n break;\n case 'error':\n if (onError) {\n onError();\n }\n break;\n case 'verify':\n onVerify(data.token);\n break;\n case 'fullChallenge':\n if (onFullChallenge) {\n onFullChallenge();\n }\n break;\n }\n }}\n {...otherProps}\n />\n );\n}\n\nFirebaseRecaptcha.defaultProps = {\n firebaseConfig: DEFAULT_WEB_APP_OPTIONS,\n};\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts | |
index f39179d..f6a69ef 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts | |
@@ -2,4 +2,33 @@ export interface FirebaseAuthApplicationVerifier { | |
readonly type: string; | |
verify(): Promise<string>; | |
} | |
+export interface FirebaseOptions { | |
+ /** | |
+ * Unique identifier of the Firebase app. | |
+ */ | |
+ appId?: string; | |
+ /** | |
+ * Firebase API key. | |
+ */ | |
+ apiKey?: string; | |
+ /** | |
+ * Firebase database URL. | |
+ */ | |
+ databaseURL?: string; | |
+ /** | |
+ * Tracking identifier for Google Analytics. | |
+ */ | |
+ trackingId?: string; | |
+ messagingSenderId?: string; | |
+ /** | |
+ * Google Cloud Storage bucket name. | |
+ */ | |
+ storageBucket?: string; | |
+ /** | |
+ * Unique identifier of the Firebase project. | |
+ */ | |
+ projectId?: string; | |
+ authDomain?: string; | |
+ measurementId?: string; | |
+} | |
//# sourceMappingURL=FirebaseRecaptcha.types.d.ts.map | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts.map | |
index f0fd759..be9b428 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.d.ts.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptcha.types.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptcha.types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3B"} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptcha.types.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptcha.types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js | |
index 094bfc0..d70d7cf 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js | |
@@ -1,2 +1,3 @@ | |
+; | |
export {}; | |
//# sourceMappingURL=FirebaseRecaptcha.types.js.map | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js.map | |
index 8396f95..3502ab8 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptcha.types.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptcha.types.js","sourceRoot":"","sources":["../src/FirebaseRecaptcha.types.ts"],"names":[],"mappings":"","sourcesContent":["// see: https://github.com/firebase/firebase-js-sdk/blob/dbd54f7c9ef0b5d78d491e26d816084a478bdf04/packages/auth-types/index.d.ts#L142-L145\nexport interface FirebaseAuthApplicationVerifier {\n readonly type: string;\n verify(): Promise<string>;\n}\n"]} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptcha.types.js","sourceRoot":"","sources":["../src/FirebaseRecaptcha.types.ts"],"names":[],"mappings":"AAkCC,CAAC","sourcesContent":["// see: https://github.com/firebase/firebase-js-sdk/blob/dbd54f7c9ef0b5d78d491e26d816084a478bdf04/packages/auth-types/index.d.ts#L142-L145\nexport interface FirebaseAuthApplicationVerifier {\n readonly type: string;\n verify(): Promise<string>;\n}\n\nexport interface FirebaseOptions {\n /**\n * Unique identifier of the Firebase app.\n */\n appId?: string;\n /**\n * Firebase API key.\n */\n apiKey?: string;\n /**\n * Firebase database URL.\n */\n databaseURL?: string;\n /**\n * Tracking identifier for Google Analytics.\n */\n trackingId?: string;\n messagingSenderId?: string;\n /**\n * Google Cloud Storage bucket name.\n */\n storageBucket?: string;\n /**\n * Unique identifier of the Firebase project.\n */\n projectId?: string;\n authDomain?: string;\n measurementId?: string;\n};\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts | |
index fb67b65..87fe62c 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts | |
@@ -1,8 +1,9 @@ | |
+import * as React from 'react'; | |
import { TextStyle, StyleProp, ViewProps } from 'react-native'; | |
interface Props extends ViewProps { | |
textStyle?: StyleProp<TextStyle>; | |
linkStyle?: StyleProp<TextStyle>; | |
} | |
-export default function FirebaseRecaptchaBanner(props: Props): JSX.Element; | |
+export default function FirebaseRecaptchaBanner(props: Props): React.JSX.Element; | |
export {}; | |
//# sourceMappingURL=FirebaseRecaptchaBanner.d.ts.map | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts.map | |
index 732dfcc..9495284 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaBanner.d.ts.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptchaBanner.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptchaBanner.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhG,UAAU,KAAM,SAAQ,SAAS;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,EAAE,KAAK,eAqB3D"} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptchaBanner.d.ts","sourceRoot":"","sources":["../src/FirebaseRecaptchaBanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAmC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhG,UAAU,KAAM,SAAQ,SAAS;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,EAAE,KAAK,qBAqB3D"} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.d.ts b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.d.ts | |
index 63c78ff..eb4f7fb 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.d.ts | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.d.ts | |
@@ -35,7 +35,7 @@ export default class FirebaseRecaptchaVerifierModal extends React.Component<Prop | |
private onVerify; | |
cancel: () => void; | |
onDismiss: () => void; | |
- render(): JSX.Element; | |
+ render(): React.JSX.Element; | |
} | |
export {}; | |
//# sourceMappingURL=FirebaseRecaptchaVerifierModal.d.ts.map | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.js.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.js.map | |
index 971b2c6..12299f7 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.js.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptchaVerifierModal.js","sourceRoot":"","sources":["../src/FirebaseRecaptchaVerifierModal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { CodedError } from 'expo-modules-core';\nimport * as React from 'react';\nimport {\n StyleSheet,\n Button,\n View,\n SafeAreaView,\n Text,\n Modal,\n ActivityIndicator,\n} from 'react-native';\n\nimport FirebaseRecaptcha from './FirebaseRecaptcha';\nimport { FirebaseAuthApplicationVerifier } from './FirebaseRecaptcha.types';\n\ninterface Props\n extends Omit<\n React.ComponentProps<typeof FirebaseRecaptcha>,\n 'onVerify' | 'invisible' | 'verify' | 'onVerify' | 'onLoad' | 'onError' | 'onFullChallenge'\n > {\n title?: string;\n cancelLabel?: string;\n attemptInvisibleVerification?: boolean;\n}\ninterface State {\n visible: boolean;\n visibleLoaded: boolean;\n invisibleLoaded: boolean;\n invisibleVerify: boolean;\n invisibleKey: number;\n resolve?: (token: string) => void;\n reject?: (error: Error) => void;\n}\n\nexport default class FirebaseRecaptchaVerifierModal\n extends React.Component<Props, State>\n implements FirebaseAuthApplicationVerifier\n{\n static defaultProps = {\n title: 'reCAPTCHA',\n cancelLabel: 'Cancel',\n };\n\n state: State = {\n visible: false,\n visibleLoaded: false,\n invisibleLoaded: false,\n invisibleVerify: false,\n invisibleKey: 1,\n resolve: undefined,\n reject: undefined,\n };\n\n static getDerivedStateFromProps(props: Props, state: State) {\n if (!props.attemptInvisibleVerification && state.invisibleLoaded) {\n return {\n invisibleLoaded: false,\n invisibleVerify: false,\n };\n }\n return null;\n }\n\n get type(): string {\n return 'recaptcha';\n }\n\n async verify(): Promise<string> {\n return new Promise((resolve, reject) => {\n if (this.props.attemptInvisibleVerification) {\n this.setState({\n invisibleVerify: true,\n resolve,\n reject,\n });\n } else {\n this.setState({\n visible: true,\n visibleLoaded: false,\n resolve,\n reject,\n });\n }\n });\n }\n\n // see: https://github.com/expo/expo/issues/14780\n _reset(...args: any): void {}\n\n private onVisibleLoad = () => {\n this.setState({\n visibleLoaded: true,\n });\n };\n\n private onInvisibleLoad = () => {\n this.setState({\n invisibleLoaded: true,\n });\n };\n\n private onFullChallenge = async () => {\n this.setState({\n invisibleVerify: false,\n visible: true,\n });\n };\n\n private onError = () => {\n const { reject } = this.state;\n if (reject) {\n reject(new CodedError('ERR_FIREBASE_RECAPTCHA_ERROR', 'Failed to load reCAPTCHA'));\n }\n this.setState({\n visible: false,\n invisibleVerify: false,\n });\n };\n\n private onVerify = (token: string) => {\n const { resolve } = this.state;\n if (resolve) {\n resolve(token);\n }\n this.setState((state) => ({\n visible: false,\n invisibleVerify: false,\n invisibleLoaded: false,\n invisibleKey: state.invisibleKey + 1,\n }));\n };\n\n cancel = () => {\n const { reject } = this.state;\n if (reject) {\n reject(new CodedError('ERR_FIREBASE_RECAPTCHA_CANCEL', 'Cancelled by user'));\n }\n this.setState({\n visible: false,\n });\n };\n\n onDismiss = () => {\n // onDismiss should be called when the user dismisses the\n // modal using a swipe gesture. Due to a bug in RN this\n // unfortunately doesn't work :/\n //https://github.com/facebook/react-native/issues/26892\n if (this.state.visible) {\n this.cancel();\n }\n };\n\n render() {\n const { title, cancelLabel, attemptInvisibleVerification, ...otherProps } = this.props;\n const { visible, visibleLoaded, invisibleLoaded, invisibleVerify, invisibleKey } = this.state;\n return (\n <View style={styles.container}>\n {attemptInvisibleVerification && (\n <FirebaseRecaptcha\n {...otherProps}\n key={`invisible${invisibleKey}`}\n style={styles.invisible}\n onLoad={this.onInvisibleLoad}\n onError={this.onError}\n onVerify={this.onVerify}\n onFullChallenge={this.onFullChallenge}\n invisible\n verify={invisibleLoaded && invisibleVerify}\n />\n )}\n <Modal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={this.cancel}\n onDismiss={this.onDismiss}>\n <SafeAreaView style={styles.modalContainer}>\n <View style={styles.header}>\n <Text style={styles.title}>{title}</Text>\n <View style={styles.cancel}>\n <Button\n title={cancelLabel || FirebaseRecaptchaVerifierModal.defaultProps.cancelLabel}\n onPress={this.cancel}\n />\n </View>\n </View>\n <View style={styles.content}>\n <FirebaseRecaptcha\n {...otherProps}\n style={styles.content}\n onLoad={this.onVisibleLoad}\n onError={this.onError}\n onVerify={this.onVerify}\n />\n {!visibleLoaded ? (\n <View style={styles.loader}>\n <ActivityIndicator size=\"large\" />\n </View>\n ) : undefined}\n </View>\n </SafeAreaView>\n </Modal>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: 0,\n height: 0,\n },\n invisible: {\n width: 300,\n height: 300,\n },\n modalContainer: {\n flex: 1,\n },\n header: {\n backgroundColor: '#FBFBFB',\n height: 44,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottomColor: '#CECECE',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n cancel: {\n position: 'absolute',\n left: 8,\n justifyContent: 'center',\n },\n title: {\n fontWeight: 'bold',\n },\n content: {\n flex: 1,\n },\n loader: {\n ...StyleSheet.absoluteFillObject,\n paddingTop: 20,\n justifyContent: 'flex-start',\n alignItems: 'center',\n },\n});\n"]} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptchaVerifierModal.js","sourceRoot":"","sources":["../src/FirebaseRecaptchaVerifierModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAsBpD,MAAM,CAAC,OAAO,OAAO,8BACnB,SAAQ,KAAK,CAAC,SAAuB;IAGrC,MAAM,CAAC,YAAY,GAAG;QACpB,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,QAAQ;KACtB,CAAC;IAEF,KAAK,GAAU;QACb,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,MAAM,CAAC,wBAAwB,CAAC,KAAY,EAAE,KAAY;QACxD,IAAI,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACjE,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,eAAe,EAAE,KAAK;aACvB,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC;oBACZ,eAAe,EAAE,IAAI;oBACrB,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,QAAQ,CAAC;oBACZ,OAAO,EAAE,IAAI;oBACb,aAAa,EAAE,KAAK;oBACpB,OAAO;oBACP,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,MAAM,CAAC,GAAG,IAAS,IAAS,CAAC;IAErB,aAAa,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,QAAQ,CAAC;YACZ,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,eAAe,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,QAAQ,CAAC;YACZ,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,eAAe,GAAG,KAAK,IAAI,EAAE;QACnC,IAAI,CAAC,QAAQ,CAAC;YACZ,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,OAAO,GAAG,GAAG,EAAE;QACrB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,UAAU,CAAC,8BAA8B,EAAE,0BAA0B,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC;YACZ,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACnC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxB,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC;SACrC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,EAAE;QACZ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,UAAU,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC;YACZ,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,SAAS,GAAG,GAAG,EAAE;QACf,yDAAyD;QACzD,uDAAuD;QACvD,gCAAgC;QAChC,uDAAuD;QACvD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvF,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9F,OAAO,CACL,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,SAAS;YAC1B,4BAA4B,IAAI,CAC/B,oBAAC,iBAAiB,OACZ,UAAU,EACd,GAAG,EAAE,YAAY,YAAY,EAAE,EAC/B,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,MAAM,EAAE,IAAI,CAAC,eAAe,EAC5B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,eAAe,EAAE,IAAI,CAAC,eAAe,EACrC,SAAS,QACT,MAAM,EAAE,eAAe,IAAI,eAAe,GAC1C,CACH;YACD,oBAAC,KAAK,IACJ,OAAO,EAAE,OAAO,EAChB,aAAa,EAAC,OAAO,EACrB,iBAAiB,EAAC,WAAW,EAC7B,cAAc,EAAE,IAAI,CAAC,MAAM,EAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,oBAAC,YAAY,IAAC,KAAK,EAAE,MAAM,CAAC,cAAc;oBACxC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM;wBACxB,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAG,KAAK,CAAQ;wBACzC,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM;4BACxB,oBAAC,MAAM,IACL,KAAK,EAAE,WAAW,IAAI,8BAA8B,CAAC,YAAY,CAAC,WAAW,EAC7E,OAAO,EAAE,IAAI,CAAC,MAAM,GACpB,CACG,CACF;oBACP,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,OAAO;wBACzB,oBAAC,iBAAiB,OACZ,UAAU,EACd,KAAK,EAAE,MAAM,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,aAAa,EAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACvB;wBACD,CAAC,aAAa,CAAC,CAAC,CAAC,CAChB,oBAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,MAAM;4BACxB,oBAAC,iBAAiB,IAAC,IAAI,EAAC,OAAO,GAAG,CAC7B,CACR,CAAC,CAAC,CAAC,SAAS,CACR,CACM,CACT,CACH,CACR,CAAC;IACJ,CAAC;;AAGH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV;IACD,SAAS,EAAE;QACT,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACZ;IACD,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;KACR;IACD,MAAM,EAAE;QACN,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,iBAAiB,EAAE,SAAS;QAC5B,iBAAiB,EAAE,UAAU,CAAC,aAAa;KAC5C;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC;QACP,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,MAAM;KACnB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,CAAC;KACR;IACD,MAAM,EAAE;QACN,GAAG,UAAU,CAAC,kBAAkB;QAChC,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,YAAY;QAC5B,UAAU,EAAE,QAAQ;KACrB;CACF,CAAC,CAAC","sourcesContent":["import { CodedError } from 'expo-modules-core';\nimport * as React from 'react';\nimport {\n StyleSheet,\n Button,\n View,\n SafeAreaView,\n Text,\n Modal,\n ActivityIndicator,\n} from 'react-native';\n\nimport FirebaseRecaptcha from './FirebaseRecaptcha';\nimport { FirebaseAuthApplicationVerifier } from './FirebaseRecaptcha.types';\n\ninterface Props\n extends Omit<\n React.ComponentProps<typeof FirebaseRecaptcha>,\n 'onVerify' | 'invisible' | 'verify' | 'onVerify' | 'onLoad' | 'onError' | 'onFullChallenge'\n > {\n title?: string;\n cancelLabel?: string;\n attemptInvisibleVerification?: boolean;\n}\ninterface State {\n visible: boolean;\n visibleLoaded: boolean;\n invisibleLoaded: boolean;\n invisibleVerify: boolean;\n invisibleKey: number;\n resolve?: (token: string) => void;\n reject?: (error: Error) => void;\n}\n\nexport default class FirebaseRecaptchaVerifierModal\n extends React.Component<Props, State>\n implements FirebaseAuthApplicationVerifier\n{\n static defaultProps = {\n title: 'reCAPTCHA',\n cancelLabel: 'Cancel',\n };\n\n state: State = {\n visible: false,\n visibleLoaded: false,\n invisibleLoaded: false,\n invisibleVerify: false,\n invisibleKey: 1,\n resolve: undefined,\n reject: undefined,\n };\n\n static getDerivedStateFromProps(props: Props, state: State) {\n if (!props.attemptInvisibleVerification && state.invisibleLoaded) {\n return {\n invisibleLoaded: false,\n invisibleVerify: false,\n };\n }\n return null;\n }\n\n get type(): string {\n return 'recaptcha';\n }\n\n async verify(): Promise<string> {\n return new Promise((resolve, reject) => {\n if (this.props.attemptInvisibleVerification) {\n this.setState({\n invisibleVerify: true,\n resolve,\n reject,\n });\n } else {\n this.setState({\n visible: true,\n visibleLoaded: false,\n resolve,\n reject,\n });\n }\n });\n }\n\n // see: https://github.com/expo/expo/issues/14780\n _reset(...args: any): void {}\n\n private onVisibleLoad = () => {\n this.setState({\n visibleLoaded: true,\n });\n };\n\n private onInvisibleLoad = () => {\n this.setState({\n invisibleLoaded: true,\n });\n };\n\n private onFullChallenge = async () => {\n this.setState({\n invisibleVerify: false,\n visible: true,\n });\n };\n\n private onError = () => {\n const { reject } = this.state;\n if (reject) {\n reject(new CodedError('ERR_FIREBASE_RECAPTCHA_ERROR', 'Failed to load reCAPTCHA'));\n }\n this.setState({\n visible: false,\n invisibleVerify: false,\n });\n };\n\n private onVerify = (token: string) => {\n const { resolve } = this.state;\n if (resolve) {\n resolve(token);\n }\n this.setState((state) => ({\n visible: false,\n invisibleVerify: false,\n invisibleLoaded: false,\n invisibleKey: state.invisibleKey + 1,\n }));\n };\n\n cancel = () => {\n const { reject } = this.state;\n if (reject) {\n reject(new CodedError('ERR_FIREBASE_RECAPTCHA_CANCEL', 'Cancelled by user'));\n }\n this.setState({\n visible: false,\n });\n };\n\n onDismiss = () => {\n // onDismiss should be called when the user dismisses the\n // modal using a swipe gesture. Due to a bug in RN this\n // unfortunately doesn't work :/\n //https://github.com/facebook/react-native/issues/26892\n if (this.state.visible) {\n this.cancel();\n }\n };\n\n render() {\n const { title, cancelLabel, attemptInvisibleVerification, ...otherProps } = this.props;\n const { visible, visibleLoaded, invisibleLoaded, invisibleVerify, invisibleKey } = this.state;\n return (\n <View style={styles.container}>\n {attemptInvisibleVerification && (\n <FirebaseRecaptcha\n {...otherProps}\n key={`invisible${invisibleKey}`}\n style={styles.invisible}\n onLoad={this.onInvisibleLoad}\n onError={this.onError}\n onVerify={this.onVerify}\n onFullChallenge={this.onFullChallenge}\n invisible\n verify={invisibleLoaded && invisibleVerify}\n />\n )}\n <Modal\n visible={visible}\n animationType=\"slide\"\n presentationStyle=\"pageSheet\"\n onRequestClose={this.cancel}\n onDismiss={this.onDismiss}>\n <SafeAreaView style={styles.modalContainer}>\n <View style={styles.header}>\n <Text style={styles.title}>{title}</Text>\n <View style={styles.cancel}>\n <Button\n title={cancelLabel || FirebaseRecaptchaVerifierModal.defaultProps.cancelLabel}\n onPress={this.cancel}\n />\n </View>\n </View>\n <View style={styles.content}>\n <FirebaseRecaptcha\n {...otherProps}\n style={styles.content}\n onLoad={this.onVisibleLoad}\n onError={this.onError}\n onVerify={this.onVerify}\n />\n {!visibleLoaded ? (\n <View style={styles.loader}>\n <ActivityIndicator size=\"large\" />\n </View>\n ) : undefined}\n </View>\n </SafeAreaView>\n </Modal>\n </View>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n container: {\n width: 0,\n height: 0,\n },\n invisible: {\n width: 300,\n height: 300,\n },\n modalContainer: {\n flex: 1,\n },\n header: {\n backgroundColor: '#FBFBFB',\n height: 44,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n borderBottomColor: '#CECECE',\n borderBottomWidth: StyleSheet.hairlineWidth,\n },\n cancel: {\n position: 'absolute',\n left: 8,\n justifyContent: 'center',\n },\n title: {\n fontWeight: 'bold',\n },\n content: {\n flex: 1,\n },\n loader: {\n ...StyleSheet.absoluteFillObject,\n paddingTop: 20,\n justifyContent: 'flex-start',\n alignItems: 'center',\n },\n});\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.web.js.map b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.web.js.map | |
index c8e37e9..67095c3 100644 | |
--- a/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.web.js.map | |
+++ b/node_modules/expo-firebase-recaptcha/build/FirebaseRecaptchaVerifierModal.web.js.map | |
@@ -1 +1 @@ | |
-{"version":3,"file":"FirebaseRecaptchaVerifierModal.web.js","sourceRoot":"","sources":["../src/FirebaseRecaptchaVerifierModal.web.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,8BAA+B,SAAQ,KAAK,CAAC,SAAgB;IACzD,QAAQ,GAA2C,IAAI,CAAC;IAExD,MAAM,GAAG,CAAC,GAAQ,EAAE,EAAE;QAC5B,IAAI,GAAG,EAAE;YACP,IAAI,IAAI,CAAC,KAAK,CAAC,iCAAiC,KAAK,SAAS,EAAE;gBAC9D,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,iCAAiC;oBACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC;aAClD;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC3B,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;aACxD;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACvD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;aACvE,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC7C;IACH,CAAC,CAAC;IAEF,qBAAqB,CAAC,SAAgB;QACpC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,iCAAiC;YAC1C,SAAS,CAAC,iCAAiC;YAC7C,IAAI,CAAC,KAAK,CAAC,4BAA4B,KAAK,SAAS,CAAC,4BAA4B;YAClF,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,CACnD,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,SAAgB;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;aAC7C;SACF;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,YAAY,EAAE,GACrF,IAAI,CAAC,KAAK,CAAC;QACb,OAAO,CACL,6BACE,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,GAAG,EAAE,GAAG,4BAA4B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAC5D,iCAAiC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAClD,IAAI,YAAY,IAAI,EAAE,EAAE,EACxB,EAAE,EAAC,qBAAqB,EACxB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GACvC,CACH,CAAC;IACJ,CAAC;CACF;AAED,eAAe,KAAK,CAAC,UAAU,CAAC,CAAC,KAA8B,EAAE,GAAQ,EAAE,EAAE,CAAC,CAC5E,oBAAC,8BAA8B,OAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAI,CAC7D,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG;IACb,2DAA2D;IAC3D,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;CAC5B,CAAC","sourcesContent":["import firebase from 'firebase/compat/app';\nimport 'firebase/compat/auth';\nimport * as React from 'react';\n\nimport { FirebaseAuthApplicationVerifier } from './FirebaseRecaptcha.types';\n\ninterface Props {\n attemptInvisibleVerification?: boolean;\n appVerificationDisabledForTesting?: boolean;\n languageCode?: string;\n innerRef: React.MutableRefObject<FirebaseAuthApplicationVerifier | null>;\n}\n\nclass FirebaseRecaptchaVerifierModal extends React.Component<Props> {\n private verifier: FirebaseAuthApplicationVerifier | null = null;\n\n private setRef = (ref: any) => {\n if (ref) {\n if (this.props.appVerificationDisabledForTesting !== undefined) {\n firebase.auth().settings.appVerificationDisabledForTesting =\n !!this.props.appVerificationDisabledForTesting;\n }\n if (this.props.languageCode) {\n firebase.auth().languageCode = this.props.languageCode;\n }\n this.verifier = new firebase.auth.RecaptchaVerifier(ref, {\n size: this.props.attemptInvisibleVerification ? 'invisible' : 'normal',\n });\n } else {\n this.verifier = null;\n }\n if (this.props.innerRef) {\n this.props.innerRef.current = this.verifier;\n }\n };\n\n shouldComponentUpdate(nextProps: Props) {\n return (\n this.props.appVerificationDisabledForTesting !==\n nextProps.appVerificationDisabledForTesting ||\n this.props.attemptInvisibleVerification !== nextProps.attemptInvisibleVerification ||\n this.props.languageCode !== nextProps.languageCode\n );\n }\n\n componentDidUpdate(prevProps: Props) {\n if (this.props.innerRef !== prevProps.innerRef) {\n if (this.props.innerRef) {\n this.props.innerRef.current = this.verifier;\n }\n }\n }\n\n render() {\n const { attemptInvisibleVerification, appVerificationDisabledForTesting, languageCode } =\n this.props;\n return (\n <div\n style={styles.container}\n key={`${attemptInvisibleVerification ? 'invisible' : 'visible'}-${\n appVerificationDisabledForTesting ? 'testing' : 'regular'\n }-${languageCode ?? ''}`}\n id=\"recaptcha-container\"\n ref={this.setRef}\n dangerouslySetInnerHTML={{ __html: '' }}\n />\n );\n }\n}\n\nexport default React.forwardRef((props: Omit<Props, 'innerRef'>, ref: any) => (\n <FirebaseRecaptchaVerifierModal {...props} innerRef={ref} />\n));\n\nconst styles = {\n // Ensure the reCAPTCHA badge is in front or other elements\n container: { zIndex: 1000 },\n};\n"]} | |
\ No newline at end of file | |
+{"version":3,"file":"FirebaseRecaptchaVerifierModal.web.js","sourceRoot":"","sources":["../src/FirebaseRecaptchaVerifierModal.web.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,8BAA+B,SAAQ,KAAK,CAAC,SAAgB;IACzD,QAAQ,GAA2C,IAAI,CAAC;IAExD,MAAM,GAAG,CAAC,GAAQ,EAAE,EAAE;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,IAAI,CAAC,KAAK,CAAC,iCAAiC,KAAK,SAAS,EAAE,CAAC;gBAC/D,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,iCAAiC;oBACxD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC;YACnD,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;gBACvD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ;aACvE,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,qBAAqB,CAAC,SAAgB;QACpC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,iCAAiC;YAC1C,SAAS,CAAC,iCAAiC;YAC7C,IAAI,CAAC,KAAK,CAAC,4BAA4B,KAAK,SAAS,CAAC,4BAA4B;YAClF,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,CACnD,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,SAAgB;QACjC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,YAAY,EAAE,GACrF,IAAI,CAAC,KAAK,CAAC;QACb,OAAO,CACL,6BACE,KAAK,EAAE,MAAM,CAAC,SAAS,EACvB,GAAG,EAAE,GAAG,4BAA4B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAC5D,iCAAiC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAClD,IAAI,YAAY,IAAI,EAAE,EAAE,EACxB,EAAE,EAAC,qBAAqB,EACxB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,GACvC,CACH,CAAC;IACJ,CAAC;CACF;AAED,eAAe,KAAK,CAAC,UAAU,CAAC,CAAC,KAA8B,EAAE,GAAQ,EAAE,EAAE,CAAC,CAC5E,oBAAC,8BAA8B,OAAK,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAI,CAC7D,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG;IACb,2DAA2D;IAC3D,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;CAC5B,CAAC","sourcesContent":["import firebase from 'firebase/compat/app';\nimport 'firebase/compat/auth';\nimport * as React from 'react';\n\nimport { FirebaseAuthApplicationVerifier } from './FirebaseRecaptcha.types';\n\ninterface Props {\n attemptInvisibleVerification?: boolean;\n appVerificationDisabledForTesting?: boolean;\n languageCode?: string;\n innerRef: React.MutableRefObject<FirebaseAuthApplicationVerifier | null>;\n}\n\nclass FirebaseRecaptchaVerifierModal extends React.Component<Props> {\n private verifier: FirebaseAuthApplicationVerifier | null = null;\n\n private setRef = (ref: any) => {\n if (ref) {\n if (this.props.appVerificationDisabledForTesting !== undefined) {\n firebase.auth().settings.appVerificationDisabledForTesting =\n !!this.props.appVerificationDisabledForTesting;\n }\n if (this.props.languageCode) {\n firebase.auth().languageCode = this.props.languageCode;\n }\n this.verifier = new firebase.auth.RecaptchaVerifier(ref, {\n size: this.props.attemptInvisibleVerification ? 'invisible' : 'normal',\n });\n } else {\n this.verifier = null;\n }\n if (this.props.innerRef) {\n this.props.innerRef.current = this.verifier;\n }\n };\n\n shouldComponentUpdate(nextProps: Props) {\n return (\n this.props.appVerificationDisabledForTesting !==\n nextProps.appVerificationDisabledForTesting ||\n this.props.attemptInvisibleVerification !== nextProps.attemptInvisibleVerification ||\n this.props.languageCode !== nextProps.languageCode\n );\n }\n\n componentDidUpdate(prevProps: Props) {\n if (this.props.innerRef !== prevProps.innerRef) {\n if (this.props.innerRef) {\n this.props.innerRef.current = this.verifier;\n }\n }\n }\n\n render() {\n const { attemptInvisibleVerification, appVerificationDisabledForTesting, languageCode } =\n this.props;\n return (\n <div\n style={styles.container}\n key={`${attemptInvisibleVerification ? 'invisible' : 'visible'}-${\n appVerificationDisabledForTesting ? 'testing' : 'regular'\n }-${languageCode ?? ''}`}\n id=\"recaptcha-container\"\n ref={this.setRef}\n dangerouslySetInnerHTML={{ __html: '' }}\n />\n );\n }\n}\n\nexport default React.forwardRef((props: Omit<Props, 'innerRef'>, ref: any) => (\n <FirebaseRecaptchaVerifierModal {...props} innerRef={ref} />\n));\n\nconst styles = {\n // Ensure the reCAPTCHA badge is in front or other elements\n container: { zIndex: 1000 },\n};\n"]} | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.tsx b/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.tsx | |
index 82f8193..b833115 100644 | |
--- a/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.tsx | |
+++ b/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.tsx | |
@@ -1,8 +1,19 @@ | |
-import { DEFAULT_WEB_APP_OPTIONS, FirebaseOptions } from 'expo-firebase-core'; | |
-import { CodedError } from 'expo-modules-core'; | |
-import * as React from 'react'; | |
+import Constants from "expo-constants"; | |
+import { CodedError } from "expo-modules-core"; | |
+import * as React from "react"; | |
+ | |
+import { FirebaseOptions } from "./FirebaseRecaptcha.types"; | |
+import { WebView } from "./WebView"; | |
+ | |
+function getDefaultWebOptions(): FirebaseOptions | void { | |
+ return Constants.expoConfig?.web?.config?.firebase; | |
+} | |
+ | |
+/** | |
+ * The default Firebase options as defined in `web.config.firebase` in `app.json`. | |
+ */ | |
+const DEFAULT_WEB_APP_OPTIONS: FirebaseOptions | void = getDefaultWebOptions(); | |
-import { WebView } from './WebView'; | |
interface Props extends React.ComponentProps<typeof WebView> { | |
firebaseConfig?: FirebaseOptions; | |
diff --git a/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.types.ts b/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.types.ts | |
index af85ee9..63ca944 100644 | |
--- a/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.types.ts | |
+++ b/node_modules/expo-firebase-recaptcha/src/FirebaseRecaptcha.types.ts | |
@@ -3,3 +3,33 @@ export interface FirebaseAuthApplicationVerifier { | |
readonly type: string; | |
verify(): Promise<string>; | |
} | |
+ | |
+export interface FirebaseOptions { | |
+ /** | |
+ * Unique identifier of the Firebase app. | |
+ */ | |
+ appId?: string; | |
+ /** | |
+ * Firebase API key. | |
+ */ | |
+ apiKey?: string; | |
+ /** | |
+ * Firebase database URL. | |
+ */ | |
+ databaseURL?: string; | |
+ /** | |
+ * Tracking identifier for Google Analytics. | |
+ */ | |
+ trackingId?: string; | |
+ messagingSenderId?: string; | |
+ /** | |
+ * Google Cloud Storage bucket name. | |
+ */ | |
+ storageBucket?: string; | |
+ /** | |
+ * Unique identifier of the Firebase project. | |
+ */ | |
+ projectId?: string; | |
+ authDomain?: string; | |
+ measurementId?: string; | |
+}; | |
\ No newline at end of file | |
diff --git a/node_modules/expo-firebase-recaptcha/package.json b/node_modules/expo-firebase-recaptcha/package.json | |
index 3e98752..cb86d37 100644 | |
--- a/node_modules/expo-firebase-recaptcha/package.json | |
+++ b/node_modules/expo-firebase-recaptcha/package.json | |
@@ -36,11 +36,9 @@ | |
"@testing-library/react": "10.4.3", | |
"expo-module-scripts": "^3.0.0" | |
}, | |
- "dependencies": { | |
- "expo-firebase-core": "~6.0.0" | |
- }, | |
"peerDependencies": { | |
- "react-native-webview": "*" | |
+ "react-native-webview": "*", | |
+ "expo-firebase-core": "~6.0.0" | |
}, | |
"peerDependenciesMeta": { | |
"react-native-webview": { | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment