PageSourceSearch

https://fourevamedia.com/_next/static/chunks/92939-f4e8bc50b5beed9d.js?dpl=dpl_DtPCZbPoZGXvTayFeF2JHvMH65Zh

js fourevamedia.com collected 2026-10-02 05:05:55 UTC 7,749 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[92939],{792939:(e,t,a)=>{a.r(t),a.d(t,{AuthProvider:()=>g,useAppAuth:()=>h,useAppUser:()=>m,useFirebaseAuthUser:()=>p,useSignOut:()=>f});var i=a(695155),r=a(212115),n=a(934770),l=a(13931),s=a(677096),u=a(837511),o=a(561834),c=a(119378);let d=(0,r.createContext)({userId:null,isSignedIn:!1,isLoaded:!1,firebaseUser:null,user:null,sessionClaims:null,signOut:async()=>{}});function g({children:e,initialClaims:t}){let u=t?.userId||null,[h,m]=(0,r.useState)(null),[f,p]=(0,r.useState)(!!t),[I,S]=(0,r.useState)(!1),[y,w]=(0,r.useState)(()=>{if(!t?.firstName)return null;let e=t.firstName,a=t.lastName||"",i=t.fullName||[e,a].filter(Boolean).join(" ")||e;return{id:t.userId,firstName:e,lastName:a,fullName:i,imageUrl:t.imageUrl||"",email:t.email||"",emailAddresses:t.email?[{emailAddress:t.email}]:[],primaryEmailAddress:t.email?{emailAddress:t.email}:null,publicMetadata:{role:t.role,primaryOrganizationId:t.primaryOrganizationId,organizationId:t.primaryOrganizationId,orgRole:t.orgRoles?Object.values(t.orgRoles)[0]:void 0,billingStatus:t.billingStatus,billingPeriodEnd:t.billingPeriodEnd,coachingStatus:t.coachingStatus,coachingPlan:t.coachingPlan,coachingPeriodEnd:t.coachingPeriodEnd},createdAt:"",updatedAt:""}}),P=(0,r.useRef)(null),v=(0,r.useRef)(null),A=(0,r.useRef)(!0);(0,r.useEffect)(()=>{if(!s.auth){p(!0),S(!0);return}let e=null,i=!0,r=!1,l=(0,n.z)(s.auth,n=>{e&&(clearTimeout(e),e=null),n?(m(n),w(e=>e?.imageUrl?e:b(n)),S(!0),p(!0)):i&&t?e=setTimeout(async()=>{if(!r){r=!0;try{let e=await fetch("/api/auth/session-check"),t=await e.json();if(t.valid&&t.customToken&&s.auth){let{signInWithCustomToken:e}=await a.e(59997).then(a.bind(a,859997));await e(s.auth,t.customToken);return}}catch{}m(null),w(null),S(!0),p(!0)}},2e3):(m(null),w(null),S(!0),p(!0)),i=!1});return()=>{l(),e&&clearTimeout(e)}},[]);let[E,N]=(0,r.useState)(u);(0,r.useEffect)(()=>{if(!s.db||!h)return void(u&&!I?N(e=>e||u):N(null));let e=!1,t=(0,l.H9)(s.db,"users",h.uid);return(0,l.x7)(t).then(t=>{if(!e)if(t.exists()){let e=t.data();e._isMappingDoc&&e.clerkId?N(e.clerkId):N(h.uid)}else N(h.uid)}).catch(()=>{e||N(h.uid)}),()=>{e=!0}},[I,h,u]),(0,r.useEffect)(()=>{if(!h||!s.db||!E)return;A.current=!0;let e=["role","primaryOrganizationId","organizationId","orgRole","billingStatus","coachingStatus","coachingPlan","tier"],t=(0,l.H9)(s.db,"users",E),a=(0,l.aQ)(t,t=>{if(t.exists()){var a,i,r;let n,l,s,u,d,g=t.data();if(g._isMappingDoc)return;let m=(a=h,i=g,r=E,n=i.email||a.email||"",l=(0,c.np)(a.displayName||""),s=i.firstName||l.firstName,u=i.lastName||l.lastName,d=i.name||i.fullName||(0,c.ob)(s,u),{id:r||a.uid,firstName:s,lastName:u,fullName:d,imageUrl:(0,o.St)({id:r||a.uid,firstName:s,lastName:u,name:d,email:n,avatarUrl:i.avatarUrl,imageUrl:i.imageUrl,photoURL:a.photoURL,avatar:i.avatar}),email:n,emailAddresses:[{emailAddress:n}],primaryEmailAddress:n?{emailAddress:n}:null,publicMetadata:{role:i.role,primaryOrganizationId:i.primaryOrganizationId,organizationId:i.organizationId,orgRole:i.orgRole,tier:i.tier,billingStatus:i.billingStatus,billingPeriodEnd:i.billingPeriodEnd,coaching:i.coaching,coachingStatus:i.coachingStatus,coachingPlan:i.coachingPlan,coachingPeriodEnd:i.coachingPeriodEnd,coachId:i.coachId},createdAt:i.createdAt||"",updatedAt:i.updatedAt||""});w(e=>e&&JSON.stringify(e)===JSON.stringify(m)?e:m);let f={};for(let t of e)f[t]=g[t];A.current?(P.current=f,A.current=!1):P.current?e.some(e=>f[e]!==P.current[e])&&(P.current=f,v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{fetch("/api/auth/refresh-claims",{method:"POST"}).catch(()=>{})},500)):P.current=f}else w(b(h))},e=>{console.error("[AuthProvider] Firestore user listener error:",e),w(b(h))});return()=>{a(),v.current&&clearTimeout(v.current)}},[h,E]),(0,r.useEffect)(()=>{if(!h||!I)return;let e="__session_refreshed_at",t=async()=>{if((()=>{try{if(!document.cookie.includes("__session_hint="))return!1;let t=localStorage.getItem(e);if(!t)return!0;return Date.now()-parseInt(t,10)>=828e5}catch{return!1}})())try{let t=await h.getIdToken();(await fetch("/api/auth/refresh-session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({idToken:t})})).ok&&localStorage.setItem(e,String(Date.now()))}catch{}},a=setTimeout(t,5e3),i=setInterval(t,36e5),r=()=>{h.getIdToken().catch(()=>{}),t()};return window.addEventListener("coachful:network-recovered",r),()=>{clearTimeout(a),clearInterval(i),window.removeEventListener("coachful:network-recovered",r)}},[h,I]);let O=(0,r.useCallback)(async()=>{try{await fetch("/api/auth/sign-out",{method:"POST"})}catch(e){console.warn("[AuthProvider] Server sign-out failed (continuing):",e)}try{let e=new BroadcastChannel("auth_signout");e.postMessage("signout"),e.close()}catch{}if(Promise.all([a.e(77805),a.e(10958)]).then(a.bind(a,710958)).then(({clearOrgContext:e})=>{e()}).catch(()=>{}),s.auth)try{await (0,n.D)(s.auth)}catch(e){console.warn("[AuthProvider] Firebase signOut failed:",e)}m(null),N(null),w(null)},[]);(0,r.useEffect)(()=>{let e;try{(e=new BroadcastChannel("auth_signout")).onmessage=()=>{m(null),N(null),w(null),s.auth&&(0,n.D)(s.auth).catch(()=>{})}}catch{}return()=>{try{e?.close()}catch{}}},[]);let _=(0,r.useMemo)(()=>t?{publicMetadata:{role:t.role,primaryOrganizationId:t.primaryOrganizationId,organizationId:t.primaryOrganizationId,billingStatus:t.billingStatus,billingPeriodEnd:t.billingPeriodEnd,coachingStatus:t.coachingStatus,coachingPlan:t.coachingPlan,coachingPerio
1dEnd:t.coachingPeriodEnd}}:null,[t]),U=(0,r.useMemo)(()=>y?{publicMetadata:y.publicMetadata}:I?null:_,[I,_,y]),C=!!t&&!I,k=(0,r.useMemo)(()=>({userId:E||(C?u:null)||h?.uid||null,isSignedIn:!!C||!!h,isLoaded:f,firebaseUser:h,user:y,sessionClaims:U,signOut:O}),[E,h,C,f,u,U,O,y]);return(0,i.jsx)(d.Provider,{value:k,children:e})}function h(){let e=(0,r.useContext)(d);return{userId:e.userId,isSignedIn:e.isSignedIn,isLoaded:e.isLoaded,firebaseUser:e.firebaseUser,sessionClaims:e.sessionClaims}}function m(){let e=(0,r.useContext)(d);return{user:e.user,isLoaded:e.isLoaded,isSignedIn:e.isSignedIn}}function f(){let e=(0,r.useContext)(d),t=(0,r.useCallback)(async()=>{let{clearCachedOrg:e}=await a.e(16962).then(a.bind(a,716962));e();let t=(0,u.JK)();if(t)try{localStorage.removeItem("coachful_native_app")}catch{}if(window.__coachful_signing_out=!0,t)try{let{deactivateDeviceToken:e}=await Promise.all([a.e(77805),a.e(43273),a.e(15925),a.e(74432),a.e(44421)]).then(a.bind(a,274432));await Promise.race([e(),new Promise(e=>setTimeout(e,1500))])}catch{}Promise.all([a.e(77805),a.e(10958)]).then(a.bind(a,710958)).then(({clearOrgContext:e})=>{e()}).catch(()=>{}),t?window.location.replace("/api/auth/sign-out?redirect=mobile"):window.location.replace("/api/auth/sign-out?redirect=sign-in")},[]);return{signOut:e.signOut,signOutAndRedirect:t}}function p(){let e=(0,r.useContext)(d);return{firebaseUser:e.firebaseUser,loading:!e.isLoaded,isAuthenticated:e.isSignedIn}}function b(e){let t=e.email||"",a=e.displayName||"",{firstName:i,lastName:r}=(0,c.np)(a);return{id:e.uid,firstName:i||"",lastName:r||"",fullName:a,imageUrl:(0,o.St)({id:e.uid,firstName:i||"",lastName:r||"",name:a,email:t,photoURL:e.photoURL}),email:t,emailAddresses:[{emailAddress:t}],primaryEmailAddress:t?{emailAddress:t}:null,publicMetadata:{},createdAt:"",updatedAt:""}}},837511:(e,t,a)=>{function i(){try{let e=window.Capacitor;if(e?.isNativePlatform?.())return!0;return"u">typeof navigator&&navigator.userAgent.includes("CoachfulNativeApp")}catch{return!1}}a.d(t,{JK:()=>i,bd:()=>n});let r=/CoachfulBranded\/([\w.-]+)/;function n(){return null!==function(){if("u"<typeof navigator)return null;try{let e=navigator.userAgent.match(r);return e?.[1]??null}catch{return null}}()}}}]);

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.