1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4982],{14982:(e,r,t)=>{t.d(r,{googleProvider:()=>n});var a=t(30274),o=t(76458),s=t(17956),u=t(18654),i=t(48716);t(3379);class l extends s.R{type="google";name="Google";googleProvider;constructor(){super(),this.googleProvider=new a.GoogleAuthProvider,this.googleProvider.addScope("email"),this.googleProvider.addScope("profile"),this.googleProvider.setCustomParameters({prompt:"select_account"})}supportsRedirect(){return!0}async authenticate(e){if(!o.auth)return this.createErrorResult("auth/not-initialized","Firebase Auth å°æªåå§å");try{if(e?.redirect)return await (0,a.signInWithRedirect)(o.auth,this.googleProvider),{success:!0};let r=await (0,a.signInWithPopup)(o.auth,this.googleProvider);return(0,u.fH)("Google ç»å
¥æå (Popup):",r.user.email),this.createSuccessResult(r.user,r)}catch(e){if("auth/popup-closed-by-user"===e.code)return this.createErrorResult("auth/popup-closed-by-user","ç»å
¥è¦çªè¢«ééï¼è«é試");if("auth/popup-blocked"===e.code)return this.createErrorResult("auth/popup-blocked","å½åºè¦çªè¢«ç覽å¨é»æï¼è«å
許å½åºè¦çªå¾é試");if("auth/network-request-failed"===e.code)return this.createErrorResult("auth/network-request-failed","網路é£ç·å¤±æï¼è«æª¢æ¥ç¶²è·¯é£ç·å¾é試");return this.handleAuthError(e)}}async handleRedirectResult(){if(!o.auth)return this.createErrorResult("auth/not-initialized","Firebase Auth å°æªåå§å");try{let e=await (0,a.getRedirectResult)(o.auth);if(!e)return{success:!1,error:{code:"auth/no-redirect-result",message:"æ²æéå®åçµæ"}};if(!e.user?.providerData?.some(e=>"google.com"===e.providerId))return{success:!1,error:{code:"auth/wrong-provider",message:"䏿¯ Google ç»å
¥"}};return(0,u.fH)("Google ç»å
¥æå (Redirect):",e.user.email),this.createSuccessResult(e.user,e)}catch(e){return this.handleAuthError(e)}}async signInWithRedirect(){if(!o.auth)throw Error("Firebase Auth å°æªåå§å");try{(0,i.setOAuthRedirectState)("google"),await (0,a.signInWithRedirect)(o.auth,this.googleProvider)}catch(e){throw(0,u.vV)("Google éå®åç»å
¥å¤±æ:",e),Error(`Google ç»å
¥å¤±æ: ${e.message}`)}}}let n=new l},17956:(e,r,t)=>{t.d(r,{R:()=>o});var a=t(18654);class o{supportsRedirect(){return!1}createSuccessResult(e,r){return{success:!0,user:e,credential:r}}createErrorResult(e,r,t){return{success:!1,error:{code:e,message:r,originalError:t}}}handleAuthError(e){let r=e?.code||"auth/unknown-error",t=e?.message||"èªè失æï¼è«ç¨å¾å試",o=e&&"object"==typeof e&&Object.keys(e).length>0?{code:r,message:t,error:e}:{code:r,message:t};(0,a.vV)(`[${this.name}] èªèé¯èª¤:`,o);let s={"auth/user-not-found":"æ¾ä¸å°æ¤ç¨æ¶ï¼è«å
註å","auth/wrong-password":"å¯ç¢¼ä¸æ£ç¢º","auth/invalid-email":"é»åéµä»¶æ ¼å¼ä¸æ£ç¢º","auth/user-disabled":"æ¤å¸³æ¶å·²è¢«åç¨","auth/email-already-in-use":"æ¤é»åéµä»¶å·²è¢«ä½¿ç¨","auth/weak-password":"å¯ç¢¼å¼·åº¦ä¸è¶³","auth/operation-not-allowed":"æ¤ç»å
¥æ¹å¼æªåç¨","auth/too-many-requests":"å試éå¤ï¼è«ç¨å¾å試","auth/network-request-failed":"網路é£ç·å¤±æï¼è«æª¢æ¥ç¶²è·¯","auth/invalid-credential":"èªèè³æç¡æ","auth/popup-closed-by-user":"ç»å
¥è¦çªè¢«éé","auth/popup-blocked":"å½åºè¦çªè¢«ç覽å¨é»æ","auth/cancelled-popup-request":"ç»å
¥è«æ±å·²åæ¶","auth/account-exists-with-different-credential":"æ¤å¸³æ¶å·²ä½¿ç¨å
¶ä»ç»å
¥æ¹å¼è¨»å","auth/email-required":"éè¦ Email æ¬éæè½å®æç»å
¥","auth/config-error":"èªèé
ç½®é¯èª¤ï¼è«è¯ç¹«ç®¡çå¡","auth/configuration-not-found":"èªèé
ç½®æªæ¾å°ï¼è«ç¢ºèª Firebase Console è¨å®","auth/no-redirect-result":"æ²æéå®åçµæï¼è«éæ°å試ç»å
¥","auth/wrong-provider":"èªèæä¾è
ä¸å¹é
","auth/not-initialized":"Firebase Auth å°æªåå§å","auth/auto-login-failed":"èªåç»å
¥å¤±æï¼è«éæ°å試ç»å
¥","auth/invalid-request":"è«æ±åæ¸é¯èª¤","auth/access-denied":"ç¨æ¶åæ¶äºææ¬","auth/unsupported-response-type":"䏿¯æ´çåæé¡å","auth/invalid-scope":"ç¡æç scope è¨å®","auth/server-error":"伺æå¨é¯èª¤ï¼è«ç¨å¾å試","auth/login-required":"éè¦ç»å
¥","auth/interaction-required":"éè¦ç¨æ¶äºå","auth/line-error":"LINE Login é¯èª¤","auth/network-error":"網路é£ç·é¯èª¤"}[r]||t;return this.createErrorResult(r,s,e)}validateEmail(e){return!!e&&"string"==typeof e&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e.trim())}normalizeEmail(e){return e.trim().toLowerCase()}validatePassword(e){return!e||e.length<8?{valid:!1,message:"å¯ç¢¼éè³å° 8 碼"}:/[A-Z]/.test(e)?/[a-z]/.test(e)?/[0-9]/.test(e)?/[^A-Za-z0-9]/.test(e)?{valid:!0}:{valid:!1,message:"å¯ç¢¼éå
å«è³å°ä¸åç¹æ®åå
"}:{valid:!1,message:"å¯ç¢¼éå
å«è³å°ä¸åæ¸å"}:{valid:!1,message:"å¯ç¢¼éå
å«è³å°ä¸åå°å¯«åæ¯"}:{valid:!1,message:"å¯ç¢¼éå
å«è³å°ä¸å大坫忝"}}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.