PageSourceSearch

https://viralup.ai/_next/static/chunks/661-08105f81838cc086.js

js viralup.ai collected 2026-10-05 13:17:35 UTC 26,686 bytes, 2 lines download raw bytes

1!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="346ae94d-5edb-4820-a81f-f9a3348cc99d",e._sentryDebugIdIdentifier="sentry-dbid-346ae94d-5edb-4820-a81f-f9a3348cc99d")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[661],{5361:(e,t,r)=>{r.d(t,{k:()=>n});function n(){if("undefined"==typeof document)return{wasHidden:()=>!1,stop:()=>{}};let e="hidden"===document.visibilityState,t=()=>{"hidden"===document.visibilityState&&(e=!0)};return document.addEventListener("visibilitychange",t),{wasHidden:()=>e,stop:()=>document.removeEventListener("visibilitychange",t)}}},8063:(e,t,r)=>{r.d(t,{W:()=>i,o:()=>n});class n extends Error{constructor(e){super("getIdToken() did not resolve within ".concat(e,"ms — Firebase auth refresh stalled")),this.name="IdTokenTimeoutError",this.deadlineMs=e}}async function i(e){let t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4e3,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];try{return await Promise.race([e.getIdToken(i),new Promise((e,i)=>{t=setTimeout(()=>i(new n(r)),r)})])}finally{void 0!==t&&clearTimeout(t)}}},11939:(e,t,r)=>{r.d(t,{P:()=>n,y:()=>i});class n extends Error{constructor(e,t){super('Firebase auth operation "'.concat(e,'" did not resolve within ').concat(t,"ms")),this.name="AuthOperationTimeoutError",this.operation=e,this.deadlineMs=t}}async function i(e,t){let r,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:12e3;try{return await Promise.race([e,new Promise((e,o)=>{r=setTimeout(()=>o(new n(t,i)),i)})])}finally{void 0!==r&&clearTimeout(r)}}},40661:(e,t,r)=>{r.r(t),r.d(t,{awaitFirestoreAuthAndRetry:()=>M,classifyUserDocFailure:()=>G,ensureUserDocCreated:()=>B,finishAppleSignInFromFragment:()=>en,getOrCreateUserDocViaServerFallback:()=>O,hasActiveAuthFlag:()=>x,loadGsiScript:()=>Q,useAuthStore:()=>em,withIDBPersistenceFallback:()=>eg});var n=r(1934),i=r(59997),o=r(8430),a=r(19133),l=r(75136),s=r(75788),d=r(4747),u=r(74022),c=r(23327),g=r(42110),h=r(34565),p=r(70741),m=r(41132),f=r(72341),w=r(45194),y=r(11939);let v=new WeakMap,_=new WeakMap;function k(e){return{sameCredentials:(t,r)=>e.email===t&&e.password===r,consumeStallTelemetry:()=>!e.stallEmitted&&(e.stallEmitted=!0,!0),consumeLoginAnalytics:()=>!e.loginTracked&&(e.loginTracked=!0,!0)}}function E(e,t,r){r.email="",r.password="",v.get(t)===r.promise&&v.delete(t),e.slot===r&&(e.slot=null)}async function b(e,t,r){let n=v.get(e);if(!n)throw Error("email sign-in flight slot missing");try{return await t.waitWithTimeout(n,"signInWithEmailAndPassword")}catch(e){throw e instanceof y.P&&_.set(e,r),e}}async function S(e,t,r,n){let i=e.start(t,r,()=>n.startUnderlying(t,r));return await b(e,n,i),i}async function I(e,t,r,n){for(;;){let i=e.getUnsettled();if(!i)return S(e,t,r,n);if(i.sameCredentials(t,r))return await b(e,n,i),i;try{await b(e,n,i)}catch(e){if(e instanceof y.P)throw e;continue}if(n.hasAuthenticatedUser())return i}}let P=function(){let e={slot:null},t={getUnsettled:()=>e.slot?k(e.slot):null,start(r,n,i){let o={email:r,password:n,promise:i(),stallEmitted:!1,loginTracked:!1};return e.slot=o,v.set(t,o.promise),o.promise.then(()=>{E(e,t,o)},()=>{E(e,t,o)}),k(o)},resetForTests(){e.slot&&(e.slot.email="",e.slot.password=""),e.slot=null,v.delete(t)}};return t}();var A=r(96321),T=r(5361),C=r(1660),L=r(99769),U=r(67615);let D="vu_authed";function R(e){try{e?localStorage.setItem(D,"1"):localStorage.removeItem(D)}catch(e){}try{let t="https:"===window.location.protocol?" Secure;":"";e?document.cookie="".concat(D,"=1; Path=/; Max-Age=2592000; SameSite=Lax;").concat(t):document.cookie="".concat(D,"=; Path=/; Max-Age=0; SameSite=Lax;").concat(t)}catch(e){}try{window.dispatchEvent(new Event("viralup:auth-changed"))}catch(e){}}function $(e){try{window.__VU_UID__=e}catch(e){}}function x(){try{return"1"===localStorage.getItem(D)}catch(e){return!1}}async function N(e,t){try{if("create"===e){if(!t)return;await (0,U.gT)(t.uid,t)}else await (0,U.Q6)()}catch(e){}}let F=new Set;async function M(e){let t=t=>Promise.race([e(),new Promise((e,r)=>setTimeout(()=>r(Error("awaitFirestoreAuthAndRetry: ".concat(t," timed out after 8s"))),8e3))]);try{return await t("initial attempt")}catch(n){let e=null==n?void 0:n.code,r=n instanceof Error&&n.message.includes(": initial attempt timed out after");if("permission-denied"!==e&&!r)throw n;return await new Promise(e=>setTimeout(e,1500)),await t("retry")}}async function O(e,t){try{let r=e=>(0,m.u9)("/api/user/init",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:e,attribution:t}),keepalive:!0,policy:{kind:"internal",timeout:1e4}}),n=await r(await e.getIdToken());if(401===n.status&&(n=await r(await e.getIdToken(!0))),!n.ok)return 429===n.status?(0,p.$s)("create_user_doc_server_fallback_failed",{status:n.status,uid:e.uid},{severity:"diagnostic"}):(0,p.$s)("create_user_doc_server_fallback_failed",{status:n.status,uid:e.uid}),null;let i=null;try{i=await n.json()}catch(i){let t=i instanceof Error?i.message:String(i),r=(0,A.l)(t)||(0,A.b)(t);return(0,p.$s)("create_user_doc_server_fallback_failed",{status:n.status,reason:"body_read_failed",uid:e.uid,error:t},r?{severity:"diagnostic"}:void 0),null}if(!i||"boolean"!=typeof i.wasNewlyCreated)return(0,p.$s)("create_user_doc_server_fallback_failed",{status:n.status,reason:"invalid_response_shape",uid:e.uid}),null;return{wasNewlyCreated:i.wasNewlyCreated}}catch(r){let t=r instanceof Error?r.message:String(r);return(0,p.$s)("create_user_doc_server_fallback_failed",{error:t,uid:e.uid},(0,A.l)(t)?{severity:"diagnostic"}:void 0),null}}async function H(e){let[{doc:t,setDoc:n,getDoc:i,serverTimestamp:o},{db:a}]=await Promise.all([Promise.all([r.e(5254),r.e(4354),r.e(2619),r.e(1531)]).then(r.bind(r,91531)),Promise.all([r.e(5254),r.e(4354),r.e(2619),r.e(1531),r.e(3576),r.e(9058),r.e(5103),r.e(2399)]).then(r.bind(r,47637))]),p=t(a,"users",e.uid),m=(0,u.FU)(),f="blocked"===(0,g.o$)(),w=f?void 0:(0,u.readFbp)(),y=f?void 0:(0,u.readFbc)(),v=(0,g.F3)(),_=(0,d.$E)(),k={version:c.wH,...v.marketingConsent?{marketingConsent:v.marketingConsent}:{},saleShareOptOut:v.saleShareOptOut},E={...Object.keys(m).length>0&&{utm:m},...w?{fbp:w}:{},...y?{fbc:y}:{},email:e.email||null,displayName:e.displayName||null,adPrivacy:k},b=!1,S=!1;try{b=!(await M(()=>i(p))).exists()}catch(r){let t=await O(e,E);if(!t)throw r;if(!t.wasNewlyCreated)return;S=!0,b=!0}if(b){var I,P,A;
1if(!S)try{let t=o();await M(()=>n(p,{id:e.uid,email:e.email||null,displayName:e.displayName||null,createdAt:t,whatsNewSeenAt:t,...Object.keys(m).length>0&&{utm:m},...w?{fbp:w}:{},...y?{fbc:y}:{},..._?{country:_}:{}},{merge:!0}))}catch(t){if(!await O(e,E))throw t}let t="vu_signup_completed_dispatched_".concat(e.uid),r=F.has(e.uid);if(!r)try{r=null!==window.localStorage.getItem(t)}catch(e){}if(r)return;F.add(e.uid);try{window.localStorage.setItem(t,String(Date.now()))}catch(e){}let i=(0,l.completeRegistrationEventId)(e.uid);(0,h.pK)(),(0,h.t7)();let a=null==(I=e.providerData[0])?void 0:I.providerId;(0,l.track)("signup_completed",{method:"google.com"===a?"google":"apple.com"===a?"apple":"password"===a?"email":a||"unknown",user_id:e.uid,value:(0,s.JK)(null==(P=e.providerData[0])?void 0:P.providerId),currency:"USD",event_id:i}),(0,l.fireCompleteRegistrationCAPI)(i,null==(A=e.providerData[0])?void 0:A.providerId)}}function G(e,t){if(t.pageHidden||"permission-denied"===(null==e?void 0:e.code))return"transient";let r=e instanceof Error?e.message:String(e);return(0,A.l)(r)?"transient":"genuine"}let W=[2e3,5e3,12e3,3e4,6e4],j=new Set;async function q(e){let t=(0,T.k)();try{return await H(e),(0,g.DZ)(),{ok:!0}}catch(e){return{ok:!1,error:e,pageHidden:t.wasHidden()}}finally{t.stop()}}async function B(e,t){let r=await q(e);if(r.ok)return;let n=r.error instanceof Error?r.error.message:String(r.error);if("genuine"===G(r.error,{pageHidden:r.pageHidden})){console.error("Failed to create user doc:",r.error),(0,p.$s)("create_user_doc_failed",{phase:t,uid:e.uid,error:n});return}(0,p.$s)("create_user_doc_deferred",{phase:t,uid:e.uid,error:n,pageHidden:r.pageHidden},{severity:"diagnostic"}),function(e,t){let r=e.uid;if(j.has(r))return;j.add(r);let n=Date.now(),i=0,a=!1,l=!1,s=null,d="";function u(){l||(l=!0,null!==s&&(clearTimeout(s),s=null),window.removeEventListener("online",g),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",h),j.delete(r))}function c(){if(l)return;let e=W[i];void 0!==e&&(s=setTimeout(()=>{s=null,f()},e))}function g(){l||a||(null!==s&&(clearTimeout(s),s=null),f())}function h(){"undefined"!=typeof document&&"visible"===document.visibilityState&&g()}function m(){try{var e,t;return(null!=(t=null==(e=o.auth.currentUser)?void 0:e.uid)?t:null)===r}catch(e){return!1}}async function f(){if(!l&&!a){a=!0;try{if(!m())return void u();i+=1;let o=await q(e);if(l)return;if(!m())return void u();if(o.ok){(0,p.$s)("create_user_doc_recovered",{phase:t,uid:r,attempts:i,elapsedMs:Date.now()-n},{severity:"diagnostic"}),u();return}if(d=o.error instanceof Error?o.error.message:String(o.error),"genuine"===G(o.error,{pageHidden:o.pageHidden})){console.error("Failed to create user doc (reconcile):",o.error),(0,p.$s)("create_user_doc_failed",{phase:"reconcile",uid:r,error:d,attempts:i}),u();return}if(i>=W.length){(0,p.$s)("create_user_doc_failed",{phase:"reconcile_exhausted",uid:r,error:d,attempts:i,elapsedMs:Date.now()-n}),u();return}c()}finally{a=!1}
1}}window.addEventListener("online",g),"undefined"!=typeof document&&document.addEventListener("visibilitychange",h),c()}(e,t)}function V(){let{isIAB:e,platform:t}=(0,w.A$)();return e&&("instagram"===t||"facebook"===t||"messenger"===t)}function z(e){let t=null==e?void 0:e.code;return"auth/popup-closed-by-user"===t||"auth/cancelled-popup-request"===t||"auth/user-cancelled"===t||"auth/popup-blocked"===t}let J="https://accounts.google.com/gsi/client",K=null;function Q(){var e;return(null==(e=window.google)?void 0:e.accounts)?Promise.resolve():K||(K=new Promise((e,t)=>{let r=document.querySelector('script[src="'.concat(J,'"]'));if(r){var n;return(null==(n=window.google)?void 0:n.accounts)?void e():(r.addEventListener("load",()=>e(),{once:!0}),void r.addEventListener("error",()=>t(Error("GIS script failed to load")),{once:!0}))}let i=document.createElement("script");i.src=J,i.async=!0,i.defer=!0,i.onload=()=>e(),i.onerror=()=>{K=null,t(Error("GIS script failed to load"))},document.head.appendChild(i)}))}async function X(){var e,t;let r="248956472341-hv0qiltbm99p3gi0vvgjrpv0qt8l4eil.apps.googleusercontent.com";if(!r)throw Error("NEXT_PUBLIC_GOOGLE_CLIENT_ID missing - falling back to Firebase redirect");await Q();let n=null==(t=window.google)||null==(e=t.accounts)?void 0:e.oauth2;if(!(null==n?void 0:n.initTokenClient))throw Error("GIS oauth2 API unavailable after load");let a=await new Promise((e,t)=>{let i;try{i=n.initTokenClient({client_id:r,scope:"openid email profile",callback:r=>{if(r.error){let e=Error(r.error_description||r.error);"popup_closed"===r.error||"access_denied"===r.error?e.code="auth/user-cancelled":"popup_blocked_by_browser"===r.error&&(e.code="auth/popup-blocked"),t(e);return}if(!r.access_token)return void t(Error("GIS returned no access_token"));e(r.access_token)},error_callback:e=>{let r=null==e?void 0:e.type,n=Error("object"==typeof e&&null!==e&&"message"in e?String(e.message):"GIS error");("popup_closed"===r||"popup_failed_to_open"===r)&&(n.code="auth/user-cancelled"),t(n)}})}catch(e){t(e);return}i.requestAccessToken({prompt:"select_account"})}),l=i.HF.credential(null,a);await eg(()=>(0,i.eN)(o.auth,l),{method:"google"})}let Y="vu_apple_raw_nonce",Z="vu_apple_state";function ee(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),btoa(Array.from(t).map(e=>String.fromCharCode(e)).join("")).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function et(e){let t=new TextEncoder().encode(e);return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",t))).map(e=>e.toString(16).padStart(2,"0")).join("")}async function er(){let e="com.oguzcoskun.ViralUp.web";if(!e)throw Error("NEXT_PUBLIC_APPLE_SERVICES_ID missing - Apple sign-in is not configured");let t=ee(32),r=await et(t),n=ee(16);sessionStorage.setItem(Y,t),sessionStorage.setItem(Z,n);let i=new URLSearchParams({client_id:e,redirect_uri:"".concat(window.location.origin,"/api/auth/apple/callback"),response_type:"code id_token",response_mode:"form_post",scope:"name email",state:n,nonce:r});return window.location.href="".concat("https://appleid.apple.com/auth/authorize","?").concat(i.toString()),new Promise(()=>{})}async function en(){if(!window.location.hash)return!1;let e=new URLSearchParams(window.location.hash.slice(1)),t=e.get("apple_id_token"),r=e.get("apple_error");
1if(!t&&!r)return!1;ea();let n=sessionStorage.getItem(Y),a=sessionStorage.getItem(Z);sessionStorage.removeItem(Y),sessionStorage.removeItem(Z);let l="".concat(window.location.pathname).concat(window.location.search);if(window.history.replaceState(null,"",l),r){let e=Error("Apple sign-in error: ".concat(r));throw e.code="user_cancelled_authorize"===r?"auth/user-cancelled":"auth/apple-error",e}if(!t)return!1;if(!n||!a){let e=Error("Apple sign-in session expired - please try signing in again.");throw e.code="auth/apple-session-expired",e}if(e.get("apple_state")!==a){let e=Error("Apple sign-in state mismatch");throw e.code="auth/apple-state-mismatch",e}let s=new i.LD("apple.com").credential({idToken:t,rawNonce:n});return await eg(()=>(0,i.eN)(o.auth,s),{method:"apple"}),!0}let ei=0,eo=null;function ea(){let e=ei+=1,t=(0,C.Fj)();return(0,C.k4)(t),null!==em.getState().googleRedirectRecovery&&em.setState({googleRedirectRecovery:null}),()=>ei===e}function el(e){return async function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];let i=(0,L.BW)();try{await e(...r)}finally{i()}}}function es(e,t,r){if(!r())return(0,C.k4)(e),null;let n=(0,C.TC)(e,t);return r()?n:((0,C.k4)(e),null)}async function ed(){let e,t=o.auth.authStateReady;if("function"!=typeof t)return(0,C.KH)("unknown");try{let r=await Promise.race([Promise.resolve().then(()=>t.call(o.auth)).then(()=>"ready",()=>"failed"),new Promise(t=>{e=setTimeout(()=>t("timed_out"),1500)})]);if("ready"!==r)return(0,C.KH)("unknown");return(0,C.KH)(o.auth.currentUser?"signed_in":"signed_out")}catch(e){return(0,C.KH)("unknown")}finally{e&&clearTimeout(e)}}async function eu(e,t,r){if(!e)return;let n=await ed(),i=es(e,"RESULT_ABSENT",t);i&&"signed_out"===n.auth_state&&t()&&!o.auth.currentUser&&r(),i&&(0,p.$s)("auth_redirect_result_absent",{...(0,C.x1)(i),...n},{severity:"diagnostic"}),(0,C.k4)(e)}async function ec(e,t,r){let n,a,l="google"===t&&r()?(0,C.Pg)():null;r()||((0,C.k4)(l),l=null);try{n=(0,i.$2)(o.auth,e,i.hk)}catch(e){throw es(l,"FAILED",r),(0,C.k4)(l),e}let s=r()?l:null;s||(0,C.k4)(l),(0,p.$s)("auth_redirect_dispatched",{...(0,C.x1)(s),method:t},{severity:"diagnostic"});let d=new Promise((e,n)=>{a=setTimeout(()=>{let e=es(l,"RECOVERY_AVAILABLE",r);(0,p.$s)("auth_redirect_stalled",{timeoutMs:12e3,...e?(0,C.x1)(e):{},method:t});let i=Error("auth_redirect_stalled");i.code="auth/redirect-stalled",n(i)},12e3)});try{await Promise.race([n,d]),r()||(0,C.k4)(l)}catch(e){throw(null==e?void 0:e.code)!=="auth/redirect-stalled"&&(es(l,"FAILED",r),(0,C.k4)(l)),e}finally{a&&clearTimeout(a)}}async function eg(e,t){try{return await e()}catch(a){var r;let n=null!=(r=null==a?void 0:a.message)?r:"";if(!(0,f.U1)(n))throw a;(0,p.$s)("auth_idb_persistence_fallback",{method:t.method,phase:"first_attempt_failed"},{severity:"diagnostic"}),(0,f.cM)();try{await (0,i.oM)(o.auth,i.gz)}catch(e){throw a}return await e()}}async function eh(e){var t,n,i,o,a,s,d;try{let{cacheUserUidForBootstrap:n}=await Promise.resolve().then(r.bind(r,34565));n(null!=(t=null==e?void 0:e.uid)?t:null)}catch(e){}if(e){await B(e,"authStateChanged");try{let{fireAttributionBind:t}=await Promise.resolve().then(r.bind(r,75136));t(e)}catch(e){}try{let{useCreditsStore:t}=await Promise.all([r.e(5420),r.e(4407)]).then(r.bind(r,24407)),{useTrialStore:d}=await r.e(7479).then(r.bind(r,67479)),u=t.getState(),c=d.getState();(0,l.identifyUser)(e.uid,{email:e.email,name:e.displayName,provider:null==(n=e.providerData[0])?void 0:n.providerId,plan_name:null!=(i=u.planName)?i:null,subscription_active:null!=(o=u.subscriptionActive)&&o,is_trial_used:null!=(a=c.hasUsedTrial)&&a,credits_balance:null!=(s=u.currentCredits)?s:0})}catch(t){(0,l.identifyUser)(e.uid,{email:e.email,name:e.displayName,provider:null==(d=e.providerData[0])?void 0:d.providerId})}}}function ep(e){return V()&&function(){var e;if("undefined"==typeof navigator)return!1;let t=navigator.userAgent||"";if(/iPad|iPhone|iPod/.test(t))return!0;let r=navigator;return"MacIntel"===r.platform&&(null!=(e=r.maxTouchPoints)?e:0)>1}()?"google"===e?"Sign-in blocked by this browser. Google works best in Safari. Tap the menu and choose Open in browser.":"Sign-in blocked by this browser. Tap the menu and choose Open in browser.":"Sign-in blocked by this browser. Open the site in Safari or Chrome and try again."}let em=(0,n.v)((e,t)=>({user:null,loading:!0,initialized:!1,error:null,googleRedirectRecovery:null,init:()=>{let t,r=ei,n=()=>ei===r,s=()=>{n()&&e({loading:!1})},u=(0,L.BW)();en().then(t=>{t&&((0,p.$s)("auth_redirect_completed",{method:"apple"},{severity:"diagnostic"}),e({loading:!1}))}).catch(t=>{let r=null==t?void 0:t.code;if("auth/user-cancelled"!==r){let e=t instanceof Error?t.message:String(t);console.error("Apple fragment sign-in failed:",t);let n="auth/apple-session-expired"===r||"auth/apple-state-mismatch"===r;(0,p.$s)("signin_failed",{method:"apple",code:r||"unknown",error:e},n?{severity:"diagnostic"}:void 0)}e({loading:!1,error:"auth/apple-state-mismatch"===r||"auth/apple-session-expired"===r?"Apple sign-in session expired. Please try again.":"auth/user-cancelled"===r?null:"Apple sign-in failed. Please try again."})}).finally(u);let c=function(e){if(!e())return null;let t=(0,C.Fj)();if(!t||eo===t.attempt_id)return null;let r=(0,C.TC)(t,"RETURN_CHECK");return e()?(r&&(eo=r.attempt_id),r):((0,C.k4)(t),null)}(n),g=eg(()=>(0,i.Q4)(o.auth,i.hk),{method:"redirect"}),h=(0,L.BW)();g.then(h,h);let m=!1,f=()=>{t&&(clearTimeout(t),t=void 0)};
1t=setTimeout(()=>{if(m)return;let e=es(c,"RESULT_STALLED",n);(0,p.$s)("auth_redirect_result_stalled",{timeoutMs:12e3,...e?(0,C.x1)(e):{}},{severity:"diagnostic"}),s()},12e3),g.then(async t=>{if(m=!0,f(),null===t)return void eu(c,n,()=>e({googleRedirectRecovery:"not_completed"}));if(null==t?void 0:t.user){let e=(0,C.L9)(t),r=es(c,e?"COMPLETED":"FAILED",n);(0,p.$s)("auth_redirect_completed",{uid:t.user.uid,...e&&r?(0,C.x1)(r):{}},{severity:"diagnostic"}),(0,C.k4)(c),await B(t.user,"redirect"),s()}}).catch(e=>{m=!0,f();let t=es(c,"FAILED",n);if(!z(e)){let r=e instanceof Error?e.message:String(e);console.error("Redirect result error:",e),(0,p.$s)("auth_redirect_result_failed",{error:r,...t?(0,C.x1)(t):{}})}(0,C.k4)(c),s()});let w=!1;return(0,i.hg)(o.auth,t=>{var r;(0,U._W)(null!=(r=null==t?void 0:t.uid)?r:null,t),e(t?{user:t,loading:!1,initialized:!0,error:null,googleRedirectRecovery:null}:{user:t,loading:!1,initialized:!0,error:null}),t?(w=!0,R(!0),$(t.uid),t.email&&(0,l.updateMetaAdvancedMatching)(t.email,t.uid,t.displayName,(0,d.$E)()),N("create",t)):(R(!1),$(void 0),(0,a.aN)(),(0,l.clearMetaAdvancedMatchingCache)(),w&&N("delete")),eh(t)})},signInWithGoogle:el(async()=>{let t=ea();e({loading:!0,error:null});try{if(V()){let e=new i.HF;await ec(e,"google",t),(0,l.track)("login",{method:"google"});return}await X(),(0,l.track)("login",{method:"google"})}catch(r){if(z(r))t()&&e({loading:!1,error:null});else{let n=r instanceof Error?r.message:String(r),i=null==r?void 0:r.code;console.error("Google sign-in error:",r);let o="GIS script failed to load"===n;"auth/network-request-failed"===i||"auth/redirect-stalled"===i||o||(0,p.$s)("signin_failed",{method:"google",code:i||"unknown",error:n});let a="auth/redirect-stalled"===i||o?ep("google"):"Google sign-in failed. Please try again.";t()&&e({loading:!1,error:a})}}}),signInWithApple:el(async()=>{let t=ea();e({loading:!0,error:null});try{if(V()){let e=new i.LD("apple.com");e.addScope("email"),e.addScope("name"),await ec(e,"apple",t),(0,l.track)("login",{method:"apple"});return}await er()}catch(r){if(z(r))t()&&e({loading:!1,error:null});else{let n=r instanceof Error?r.message:String(r),i=null==r?void 0:r.code;console.error("Apple sign-in error:",r),"auth/network-request-failed"!==i&&"auth/redirect-stalled"!==i&&(0,p.$s)("signin_failed",{method:"apple",code:i||"unknown",error:n});let o="auth/redirect-stalled"===i?ep("apple"):"Apple sign-in failed. Please try again.";t()&&e({loading:!1,error:o})}}}),signInWithEmail:el(async(t,r)=>{ea(),e({loading:!0,error:null});try{(await I(P,t,r,{startUnderlying:(e,t)=>eg(()=>(0,i.x9)(o.auth,e,t),{method:"email"}),hasAuthenticatedUser:()=>!!o.auth.currentUser,waitWithTimeout:y.y})).consumeLoginAnalytics()&&(0,l.track)("login",{method:"email"})}catch(i){let t=i instanceof y.P,r=(null==i?void 0:i.message)||"Sign in failed",n=null==i?void 0:i.code;if(t||"auth/invalid-credential"!==n&&"auth/wrong-password"!==n&&"auth/user-not-found"!==n&&"auth/invalid-email"!==n){let e=t&&(0,w.A$)().isIAB||"auth/too-many-requests"===n?"diagnostic":void 0;(!t||function(e){if(!(e instanceof y.P))return!1;let t=_.get(e);return!t||t.consumeStallTelemetry()}(i))&&(0,p.$s)(t?"signin_stalled":"signin_failed",{method:"email",code:n||(t?"timeout":"unknown"),error:r,...t&&{deadlineMs:i.deadlineMs}},e?{severity:e}:void 0)}throw e({loading:!1,error:t?"Sign-in is taking longer than expected. Please check your connection and try again.":r.includes("invalid-credential")?"Invalid email or password":r.includes("too-many-requests")?"Too many attempts. Please wait a few minutes and try again.":r}),i}}),signUpWithEmail:el(async(t,r)=>{ea(),e({loading:!0,error:null});try{await eg(()=>(0,y.y)((0,i.eJ)(o.auth,t,r),"createUserWithEmailAndPassword"),{method:"email"})}catch(i){let t=i instanceof y.P,r=(null==i?void 0:i.message)||"Sign up failed",n=null==i?void 0:i.code;if(t||"auth/email-already-in-use"!==n&&"auth/weak-password"!==n&&"auth/invalid-email"!==n){let e=t&&(0,w.A$)().isIAB?"diagnostic":void 0;(0,p.$s)(t?"signup_stalled":"signup_failed",{method:"email",code:n||(t?"timeout":"unknown"),error:r,...t&&{deadlineMs:i.deadlineMs}},e?{severity:e}:void 0)}throw e({loading:!1,error:t?"Sign-up is taking longer than expected. Please check your connection and try again.":r.includes("email-already-in-use")?"Email already in use":r}),i}}),signOut:async()=>{var r,n,s;(0,U.GR)(),ea(),(0,l.track)("logout");let d=null!=(n=null==(r=t().user)?void 0:r.uid)?n:null;R(!1),$(void 0),(0,a.aN)(),(0,l.clearMetaAdvancedMatchingCache)();try{localStorage.removeItem("activeGenerationId")}catch(e){}try{sessionStorage.removeItem("trialGenerationId"),sessionStorage.removeItem("swapBodyResumeVideoURL"),sessionStorage.removeItem("trialExportData"),sessionStorage.removeItem("quickGenerateVideoURL")}catch(e){}e({user:null,googleRedirectRecovery:null});
1try{await (0,i.CI)(o.auth)}catch(r){let e=r instanceof Error?r.message:String(r),t=null!=(s=null==r?void 0:r.code)?s:null;console.error("Firebase signOut failed:",r),(0,p.$s)("signout_failed",{fn:"authStore.signOut",uid:d,code:t,error:e})}}}))},67615:(e,t,r)=>{r.d(t,{GR:()=>h,LJ:()=>f,Q6:()=>b,_W:()=>g,gT:()=>E,qw:()=>m});var n=r(8063),i=r(41132);let o=null,a=null,l=0,s=null,d=null,u=Promise.resolve(),c=!1;function g(e,t){if(e===o){void 0!==t&&(a=t);return}o=e,a=null!=t?t:null,l+=1,s=null,d=null,null!==e&&(c=!1)}function h(){l+=1,s=null,d=null}function p(e,t){return o===e&&l===t}function m(e,t){return p(e,t)&&!c}class f extends Error{constructor(e){super("session_cookie_".concat(e)),this.code=e,this.name="SessionCookieError"}}function w(e,t){if(!p(e,t))throw new f("superseded");if(c)throw new f("session_outcome_unknown")}function y(e){let t=e-Date.now();if(t<=0)throw new f("token_timeout");return t}async function v(e,t){let r;try{return await Promise.race([e,new Promise((e,n)=>{r=setTimeout(()=>n(new f("token_timeout")),y(t))})])}finally{void 0!==r&&clearTimeout(r)}}function _(e,t){let r=u.then(async()=>(y(t),e()));return u=r.catch(()=>void 0),v(r,t)}async function k(e,t,r){for(let o=0;o<2;o+=1){let a,l;w(e.uid,t);let s=await (0,n.W)(e,Math.min(4e3,y(r)),o>0);w(e.uid,t),y(r);let d=new AbortController;try{a=await v((0,i.u9)("/api/auth/session",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({idToken:s}),signal:d.signal,policy:{kind:"internal",timeout:y(r)}}),r),l=await v(a.json(),r)}catch(r){throw p(e.uid,t)&&(c=!0),d.abort(new DOMException("session outcome unknown","AbortError")),new f("session_outcome_unknown")}if(w(e.uid,t),200===a.status&&(null==l?void 0:l.ok)===!0)return;if(401===a.status&&(null==l?void 0:l.code)==="token_invalid"){if(0===o)continue;throw new f("token_invalid")}if(403===a.status)throw new f("forbidden_origin");throw new f("server_error")}}function E(e,t){let r=a;if(!r||r.uid!==e||t&&t.uid!==r.uid)return Promise.resolve({ok:!1,uid:e,code:"superseded"});if(o!==r.uid&&g(r.uid,r),c)return Promise.resolve({ok:!1,uid:e,code:"session_outcome_unknown"});let i=l;if(s===i)return Promise.resolve({ok:!0,uid:e,generation:i});if((null==d?void 0:d.uid)===e&&d.generation===i)return d.promise;let u=Date.now()+8e3,h=_(()=>k(r,i,u),u).then(()=>(w(e,i),s=i,{ok:!0,uid:e,generation:i})).catch(t=>({ok:!1,uid:e,code:t instanceof f?t.code:t instanceof n.o?"token_timeout":"server_error"})).finally(()=>{(null==d?void 0:d.generation)===i&&(d=null)});return d={uid:e,generation:i,promise:h},h}async function b(){g(null);let e=l,t=Date.now()+8e3;await _(async()=>{if(a||l!==e)return;let r=new AbortController;try{let n=await v((0,i.u9)("/api/auth/session",{method:"DELETE",credentials:"include",signal:r.signal,policy:{kind:"internal",timeout:y(t)}}),t),o=await v(n.json(),t);
1if(!n.ok||(null==o?void 0:o.ok)!==!0)throw Error("session_clear_failed");p(null,e)&&(c=!1,s=null)}catch(t){p(null,e)&&(c=!0),r.abort(new DOMException("session outcome unknown","AbortError"))}},t)}},96321:(e,t,r)=>{r.d(t,{b:()=>a,l:()=>i});let n=/AbortError|aborted after|signal is aborted|timed out|Timeout|NetworkError|Failed to fetch|Load failed/i;function i(e){return!!e&&n.test(e)}let o=/Unexpected end of JSON input|Unexpected end of input|JSON Parse error:\s*Unexpected EOF/i;function a(e){return!!e&&o.test(e)}}}]);
2//# sourceMappingURL=661-08105f81838cc086.js.map

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.