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]="566f3831-19a5-4f02-afc4-ebe38c0750aa",e._sentryDebugIdIdentifier="sentry-dbid-566f3831-19a5-4f02-afc4-ebe38c0750aa")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[26153],{2054:(e,t,a)=>{a.d(t,{A:()=>l});var n=a(68001),o=a(56705);let r="".concat("https://api.kindora.co".replace(/\/$/,""),"/api"),i=o.kindoraAuthHeaders;function c(e){return"number"==typeof e&&Number.isFinite(e)?e:0}let l={async getMyAccounts(){let e=await i();return(await n.vg.get("".concat(r,"/accounts/me"),{headers:e})).data},async getAccount(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e),{headers:t})).data},async createAccount(e){let t=await i();return(await n.vg.post("".concat(r,"/accounts/"),e,{headers:t})).data},async updateAccount(e,t){let a=await i();return(await n.vg.put("".concat(r,"/accounts/").concat(e),t,{headers:a})).data},async deleteAccount(e){let t=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e),{headers:t})).data},async getAccountMembers(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/members"),{headers:t})).data},async addAccountMember(e,t,a){let o=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/members"),{profile_id:t,role:a},{headers:o})).data},async changeMemberRole(e,t,a){let o=await i();return(await n.vg.put("".concat(r,"/accounts/").concat(e,"/members/").concat(t,"/role"),{role:a},{headers:o})).data},async removeMember(e,t){let a=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e,"/members/").concat(t),{headers:a})).data},async getAccountOrganizations(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/organizations"),{headers:t})).data},async getOrgBudgets(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/org-budgets"),{headers:t})).data},async setOrgBudget(e,t,a){let o=await i();return(await n.vg.put("".concat(r,"/accounts/").concat(e,"/org-budgets/").concat(t),{monthly_limit_credits:a},{headers:o})).data},async assignOrganization(e,t){let a=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/organizations/").concat(t,"/assign"),{},{headers:a})).data},async unassignOrganization(e,t){let a=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e,"/organizations/").concat(t,"/unassign"),{headers:a})).data},async canAddOrganization(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/can-add-organization"),{headers:t})).data},async getSeats(e){let t=await i();return function(e){var t,a,n;let o=c(null!=(t=e.used)?t:e.seats_used),r=c(null!=(a=e.pending)?a:e.seats_pending),i=c(null!=(n=e.limit)?n:e.seats_max),l=e.available;return{used:o,pending:r,limit:i,available:"number"==typeof l&&Number.isFinite(l)?l:Math.max(0,i-o-r)}}((await n.vg.get("".concat(r,"/accounts/").concat(e,"/seats"),{headers:t})).data)},async getSeatStatus(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/seats"),{headers:t})).data},async addSeats(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/seats"),{quantity:t},{headers:a})).data},async removeSeats(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,a=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e,"/seats"),{headers:a,data:{quantity:t}})).data},async getBillingSummary(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/billing-summary"),{headers:t})).data},async getFunderOverlap(e,t){let a=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/intelligence/funder-overlap"),{headers:a,params:t})).data},async savePracticeBrief(e,t){let a=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/briefs"),t,{headers:a})).data},async listPracticeBriefs(e,t){let a=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/briefs"),{headers:a,params:t})).data},async deletePracticeBrief(e,t){let a=await i();await n.vg.delete("".concat(r,"/accounts/").concat(e,"/briefs/").concat(t),{headers:a})},async getPortfolioRollup(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/intelligence/portfolio-rollup"),{headers:t})).data},async listAlerts(e,t){let a=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/alerts"),{headers:a,params:t})).data},async markAlertRead(e,t){let a=await i();return(await n.vg.patch("".concat(r,"/accounts/").concat(e,"/alerts/").concat(t),{},{headers:a})).data},async markAllAlertsRead(e){let t=await i();return(await n.vg.patch("".concat(r,"/accounts/").concat(e,"/alerts/mark-all-read"),{},{headers:t})).data},async getInvitations(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/invitations"),{headers:t})).data},async createInvitation(e,t,a){let o=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/invitations"),{email:t,account_role:a},{headers:o})).data},async cancelInvitation(e,t){let a=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e,"/invitations/").concat(t),{headers:a})).data},async acceptInvitation(e){let t=await i();return(await n.vg.post("".concat(r,"/accounts/invitations/accept"),{token:e},{headers:t})).data},async getClientContext(e,t){try{let a=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/context"),{headers:a})).data}catch(e){var a;if((null==e||null==(a=e.response)?void 0:a.status)===404)return null;throw e}},async upsertClientContext(e,t,a){let o=await i();return(await n.vg.put("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/context"),a,{headers:o})).data},async assignClient(e,t,a){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:3,c=arguments.length>4&&void 0!==arguments[4]&&arguments[4],l=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/assign-client"),{profile_id:t,organization_id:a,app_role_id:o,is_read_only:c},{headers:l})).data},async unassignClient(e,t,a){let o=await i();return(await n.vg.delete("".concat(r,"/accounts/").concat(e,"/unassign-client"),{headers:o,data:{profile_id:t,organization_id:a}})).data},async createClientNote(e,t,a){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"general",c=arguments.length>4?arguments[4]:void 0,l=await i();return(await n.vg.post("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/notes"),{content:a,note_type:o,...c?{funder_id:c}:{}},{headers:l})).data},async listClientNotes(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,c=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/notes"),{headers:c,params:{limit:a,offset:o}})).data},async deleteClientNote(e,t,a){let o=await i();await n.vg.delete("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/notes/").concat(a),{headers:o})},async getPortfolioOverview(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/portfolio/overview"),{headers:t})).data},async getPortfolioClients(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/portfolio/clients"),{headers:t})).data},async getPortfolioTeam(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/portfolio/team"),{headers:t})).data},async getPracticeAnalytics(e){let t=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/intelligence/analytics"),{headers:t})).data},async getActivityLog(e,t){let a=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/intelligence/activity-log"),{headers:a,params:t})).data},async getClientTimeline(e,t,a){let o=await i();return(await n.vg.get("".concat(r,"/accounts/").concat(e,"/clients/").concat(t,"/timeline"),{headers:o,params:a})).data}}},26153:(e,t,a)=>{a.d(t,{vu:()=>p,Rq:()=>w,Jd:()=>_});var n=a(95155),o=a(12115),r=a(35625),i=a(26708),c=a(35677),l=a(83109),s=a(71102),u=a(83846),d=a(34623),g=a(68474),f=a(2054),m=a(30081),v=a(68001);let h=(0,o.createContext)(void 0),p=e=>{let{children:t}=e,a=(0,r.jE)(),[m,p]=(0,o.useState)(null),[_,w]=(0,o.useState)({isLoading:!1,error:null,lastAttempt:null,retryCount:0}),[y,z]=(0,o.useState)({accounts:[],organizations:[],activeAccountId:null,activeOrganizationId:null,isLoading:!1,error:null,hasFetchedAccounts:!1}),A=(0,o.useMemo)(()=>(0,c.createClient)(),[]),[k,I]=(0,o.useState)("loading"),b="loading"!==k,C="authenticated"===k;(0,o.useEffect)(()=>{let e=!1;A.auth.getSession().then(t=>{let{data:a}=t;!e&&(null==a?void 0:a.session)&&I("authenticated")});let{data:{subscription:t}}=A.auth.onAuthStateChange((t,a)=>{e||(a?I("authenticated"):I("unauthenticated"))}),a=setTimeout(()=>{e||I(e=>"loading"!==e?e:"unauthenticated")},3e3);return()=>{e=!0,t.unsubscribe(),clearTimeout(a)}},[A]);let O=(0,o.useRef)(null),S=(0,o.useRef)(null),x=(0,o.useRef)(null),E=(0,o.useRef)(void 0),N=(0,o.useCallback)(e=>{p(e),(0,l.setCookie)("userData",JSON.stringify(e),{maxAge:604800,path:"/"}),e.organizationId&&w(e=>({...e,error:null,retryCount:0}))},[]),T=(0,o.useCallback)((e,t)=>{if(m){d.Ay.setAccessToken(e,t);let a={...m,apiAccessToken:e,apiAccessTokenExpiresAt:t?new Date(Date.now()+1e3*t).toISOString():void 0};p(a),(0,l.setCookie)("userData",JSON.stringify(a),{maxAge:604800,path:"/"})}else console.warn("Cannot set API token: No user is currently logged in")},[m]),U=(0,o.useCallback)(async()=>O.current?O.current.then(e=>{if(!e)throw Error("Failed to fetch token");return e}):(O.current=d.Ay.fetchTokenFromApi().finally(()=>{setTimeout(()=>{O.current=null},1e3)}),O.current.then(e=>{if(!e)throw Error("Failed to fetch token");return e})),[]),D=(0,o.useCallback)(()=>d.Ay.isTokenExpired(),[]),L=(0,o.useCallback)(async()=>
1{if(!m)return console.log("No user available, cannot get token"),null;let e=D(),t=m.apiAccessToken&&""!==m.apiAccessToken.trim();if(!e&&t)return console.log("Token is valid, returning existing token"),m.apiAccessToken||null;console.log("Token needs refresh: expired=".concat(e,", hasValidToken=").concat(t));try{let e=await U();if(null==e?void 0:e.access_token)return T(e.access_token,function(e){if("number"==typeof e)return 60*e}(e.expires_in)),console.log("Token successfully refreshed"),e.access_token;return console.log("Token refresh failed: No token in response"),null}catch(e){return console.log("Failed to refresh token:",e),null}},[m,D,T,U]),P=(0,o.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(console.log("[fetchOrganizationData] Called with forceRetry:",e),m)?x.current&&!e?(console.log("[fetchOrganizationData] â³ Fetch already in progress, returning existing promise"),x.current):m.organizationId&&m.organizationName&&!e?void console.log("[fetchOrganizationData] â¹ï¸ Organization data already available:",m.organizationId):e||"NO_ORGANIZATION"!==_.error?!e&&_.retryCount>=5?void console.log("[fetchOrganizationData] â Max retries reached for organization fetch"):(x.current=(async()=>{console.log("[fetchOrganizationData] \uD83D\uDD04 Setting loading state to true"),w(e=>({...e,isLoading:!0,error:"NO_ORGANIZATION"===e.error?e.error:null}));try{if(console.log("[fetchOrganizationData] \uD83D\uDE80 Fetching organization data (attempt ".concat(_.retryCount+1,")")),console.log("[fetchOrganizationData] \uD83D\uDD11 Getting valid token..."),!await L())throw Error("No valid API token available");console.log("[fetchOrganizationData] â
Token obtained successfully");let e=await g.A.fetchPrimaryOrganization();if(null==e?void 0:e.organization_id){let t={...m,organizationId:e.organization_id,organizationName:e.organization_name||""};p(t),(0,l.setCookie)("userData",JSON.stringify(t),{maxAge:604800,path:"/",secure:!0,sameSite:"strict"}),w({isLoading:!1,error:null,lastAttempt:new Date,retryCount:0}),console.log("Organization data fetched successfully:",e)}else if(null===e){console.log("User has no organization membership"),w({isLoading:!1,error:"NO_ORGANIZATION",lastAttempt:new Date,retryCount:5});return}else throw Error("Unexpected response from organization fetch")}catch(n){let t=(null==n?void 0:n.message)||"Failed to fetch organization data";console.error("Error fetching organization data:",t);let a=_.retryCount+1;if(w({isLoading:!1,error:t,lastAttempt:new Date,retryCount:a}),a<5&&!e){let e=Math.min(1e3*Math.pow(2,a),3e4);console.log("Scheduling retry in ".concat(e,"ms")),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>{var e;null==(e=E.current)||e.call(E,!1)},e)}}})(),x.current.finally(()=>{setTimeout(()=>{x.current=null},1e3)})):void console.log("[fetchOrganizationData] â ï¸ NO_ORGANIZATION is terminal, skipping fetch"):void console.log("[fetchOrganizationData] â No user logged in, skipping organization fetch")},[m,_,p,L]);E.current=P,(0,o.useEffect)(()=>()=>{S.current&&clearTimeout(S.current)},[]),(0,o.useEffect)(()=>{let e=0,t=()=>{var t;let a=Date.now();a-e<6e4||(e=a,console.warn("[UserContext] Org access denied by API â re-fetching memberships"),null==(t=E.current)||t.call(E,!0))};return window.addEventListener(v.L7,t),()=>window.removeEventListener(v.L7,t)},[]),(0,o.useEffect)(()=>{if(null==m?void 0:m.id)return d.Ay.startProactiveRefreshLoop()},[null==m?void 0:m.id]);let F=(0,o.useCallback)(()=>{p(null),(0,l.deleteCookie)("userData",{path:"/"}),d.Ay.removeToken(),S.current&&(clearTimeout(S.current),S.current=null),w({isLoading:!1,error:null,lastAttempt:null,retryCount:0}),z({accounts:[],organizations:[],activeAccountId:null,activeOrganizationId:null,isLoading:!1,error:null,hasFetchedAccounts:!1}),(0,l.deleteCookie)("activeAccountId",{path:"/"}),(0,l.deleteCookie)("activeOrganizationId",{path:"/"}),(0,s.C)(),(0,u.DV)(),a.removeQueries({queryKey:["user"]}),a.removeQueries({queryKey:["accounts"]}),a.removeQueries({queryKey:["programs"]})},[a]),R=(0,o.useCallback)(()=>{a.removeQueries({queryKey:["user"]})},[a]),M=(0,o.useCallback)(async()=>
1{if(!(null==m?void 0:m.id))return void console.log("[fetchUserAccounts] No user logged in, skipping");if(y.isLoading)return void console.log("[fetchUserAccounts] Already loading, skipping");z(e=>({...e,isLoading:!0,error:null}));try{var e,t,a;if(!await L())throw Error("No valid API token available");let n=(await f.A.getMyAccounts()).map(e=>e.account?{...e.account,memberships:e.memberships||[],organizations:e.organizations||[]}:e),o=[],{data:r}=await A.schema("client").from("organization_memberships").select("organization_id, app_role_id").eq("profile_id",m.id),i={1:"owner",2:"admin",3:"member",4:"guest"},c=new Map((r||[]).map(e=>[String(e.organization_id),i[e.app_role_id]||"member"])),s=await Promise.all(n.map(async e=>{try{let{organizations:t}=await f.A.getAccountOrganizations(e.id);return{account:e,accountOrgs:t}}catch(t){return console.warn("[fetchUserAccounts] Could not fetch orgs for account ".concat(e.id,":"),t),{account:e,accountOrgs:null}}})),u=e=>"deleted"===e||"pending_deletion"===e||"archived"===e;for(let{account:t,accountOrgs:a}of s)if(a){t.organizations=a.filter(e=>!u(e.deletion_status));let n=null==(e=t.memberships)?void 0:e.find(e=>e.profile_id===m.id),r=null==n?void 0:n.account_role;for(let e of a){if(u(e.deletion_status))continue;let a=c.get(e.id);a||(a="owner"===r?"owner":"admin"===r?"admin":"member"),o.push({id:"".concat(t.id,"-").concat(e.id),organization_id:e.id,organization_name:e.name,profile_id:m.id,organization_role:a,account_id:t.id,account_name:t.name,account_type:t.account_type,member_count:e.member_count,program_count:e.program_count,deletion_status:e.deletion_status,scheduled_deletion_at:e.scheduled_deletion_at,access_source:"account"})}}let d=new Set(o.map(e=>e.organization_id)),g=(r||[]).filter(e=>!d.has(e.organization_id));if(g.length>0)try{let e=g.map(e=>e.organization_id),{data:a,error:n}=await A.schema("client").from("organizations").select("id, name, account_id, deletion_status, scheduled_deletion_at").in("id",e).or("deletion_status.is.null,deletion_status.neq.pending_deleti
1on");for(let e of(n&&console.warn("[fetchUserAccounts] Error fetching direct-membership orgs:",n),a||[])){if(u(e.deletion_status))continue;let a=c.get(e.id)||"member";o.push({id:"direct-".concat(e.id),organization_id:e.id,organization_name:e.name,profile_id:m.id,organization_role:a,account_id:null!=(t=e.account_id)?t:null,account_name:null,account_type:null,deletion_status:e.deletion_status,scheduled_deletion_at:e.scheduled_deletion_at,access_source:"direct_membership"})}}catch(e){console.warn("[fetchUserAccounts] Could not fetch direct-membership orgs:",e)}try{let{data:e,error:t}=await A.schema("client").rpc("user_org_account_types");t&&console.warn("[fetchUserAccounts] Error resolving org account types:",t);let a=new Map;for(let t of null!=e?e:[])(null==t?void 0:t.organization_id)&&(null==t?void 0:t.account_type)&&a.set(t.organization_id,t.account_type);for(let e of o){let t=a.get(e.organization_id);t&&(e.account_type=t)}}catch(e){console.warn("[fetchUserAccounts] Could not resolve org account types:",e)}let v=(0,l.getCookie)("activeAccountId"),h=(0,l.getCookie)("activeOrganizationId"),{activeAccountId:_,activeOrganizationId:w}=function(e){let{accounts:t,organizations:a,currentActiveAccountId:n,currentActiveOrganizationId:o,storedActiveAccountId:r,storedActiveOrganizationId:i,userOrganizationId:c}=e,l=new Set(t.map(e=>e.id)),s=e=>{var t;return e&&null!=(t=a.find(t=>t.organization_id===e))?t:null},u=e=>!!s(e),d=e=>!!(e&&l.has(e)),g=e=>{let t=s(e);return!!(t&&t.account_id&&l.has(t.account_id))},f=a.some(e=>e.account_id&&l.has(e.account_id)),m=e=>u(e)&&(!f||g(e)),v=e=>(null!=e?e:"").trim().replace(/\s+/g," ").toLowerCase(),h=a.find(e=>"direct_membership"===e.access_source&&!g(e.organization_id)&&!!v(e.organization_name)&&a.some(t=>g(t.organization_id)&&v(t.organization_name)===v(e.organization_name))),p=null;if(h&&(p=h.organization_id),!p&&u(o)&&(p=null!=o?o:null),!p&&m(i)&&(p=null!=i?i:null),!p&&m(c)&&(p=null!=c?c:null),!p&&a.length>0){let e=a.find(e=>e.account_id&&l.has(e.account_id));p=(null!=e?e:a[0]).organization_id}let _=s(p);if(_){var w;let e=null!=(w=_.account_id)?w:null;return{activeAccountId:d(e)?e:null,activeOrganizationId:p}}let y=d(n)?n:null;return!y&&(d(r)?y=r:t.length>0&&(y=t[0].id)),{activeAccountId:y,activeOrganizationId:p}}({accounts:n,organizations:o,currentActiveAccountId:y.activeAccountId,currentActiveOrganizationId:y.activeOrganizationId,storedActiveAccountId:v?String(v):null,storedActiveOrganizationId:h?String(h):null,userOrganizationId:null!=(a=m.organizationId)?a:null});if(w?(0,l.setCookie)("activeOrganizationId",w,{maxAge:2592e3,path:"/"}):(0,l.deleteCookie)("activeOrganizationId",{path:"/"}),_?(0,l.setCookie)("activeAccountId",_,{maxAge:2592e3,path:"/"}):(0,l.deleteCookie)("activeAccountId",{path:"/"}),m&&w&&m.organizationId!==w){let e=o.find(e=>e.organization_id===w);if(e){let t={...m,organizationId:w,organizationName:e.organization_name};p(t),(0,l.setCookie)("userData",JSON.stringify(t),{maxAge:604800,path:"/"})}}z({accounts:n,organizations:o,activeAccountId:_,activeOrganizationId:w,isLoading:!1,error:null,hasFetchedAccounts:!0}),console.log("[fetchUserAccounts] Successfully loaded multi-tenant data:",{accountCount:n.length,organizationCount:o.length,activeAccountId:_,activeOrganizationId:w})}catch(e){console.error("[fetchUserAccounts] Error fetching accounts:",e),z(t=>({...t,isLoading:!1,error:(null==e?void 0:e.message)||"Failed to fetch accounts",hasFetchedAccounts:!0}))}},[m,y.isLoading,y.activeAccountId,y.activeOrganizationId,L,A]),J=(0,o.useCallback)(e=>{let t=y.organizations.find(t=>t.organization_id===e);if(!t)return void console.error("[switchOrganization] Organization not found:",e);if(z(a=>({...a,activeOrganizationId:e,activeAccountId:t.account_id||null})),m){let a={...m,organizationId:e,organizationName:t.organization_name};p(a),(0,l.setCookie)("userData",JSON.stringify(a),{maxAge:604800,path:"/"})}(0,l.setCookie)("activeOrganizationId",e,{maxAge:2592e3,path:"/"}),t.account_id?(0,l.setCookie)("activeAccountId",t.account_id,{maxAge:2592e3,path:"/"}):(0,l.deleteCookie)("activeAccountId",{path:"/"}),a.removeQueries(),console.log("[switchOrganization] Switched to organization:",e,t.organization_name)},[m,y.organizations,a]),q=(0,o.useCallback)(e=>{let t=y.accounts.find(t=>
1t.id===e);if(!t)return void console.error("[switchAccount] Account not found:",e);z(t=>({...t,activeAccountId:e})),(0,l.setCookie)("activeAccountId",e,{maxAge:2592e3,path:"/"});let n=y.organizations.filter(t=>t.account_id===e);if(n.length>0&&!n.some(e=>e.organization_id===y.activeOrganizationId))J(n[0].organization_id);else if(0===n.length){if(z(e=>({...e,activeOrganizationId:null})),(0,l.setCookie)("activeOrganizationId","",{maxAge:0,path:"/"}),m){let e={...m,organizationId:void 0,organizationName:void 0};p(e),(0,l.setCookie)("userData",JSON.stringify(e),{maxAge:604800,path:"/"})}a.removeQueries()}console.log("[switchAccount] Switched to account:",e,t.name)},[y.accounts,y.organizations,y.activeOrganizationId,J,m,a]),B=(0,o.useCallback)(async()=>{z(e=>({...e,accounts:[],organizations:[],isLoading:!1,error:null,hasFetchedAccounts:!1})),await M()},[M]),K=async()=>{try{var e,t,a,n,o;let r,i,c;try{r=(0,l.getCookie)("userData")}catch(e){r=void 0}if(r){let e=JSON.parse(String(r)),{data:t}=await A.auth.getSession(),a=null==t||null==(o=t.session)||null==(n=o.user)?void 0:n.id;if(!a||e.id===a)return!e.name&&e.email&&(e.name=e.email.split("@")[0]),e}let{data:s,error:u}=await A.auth.getUser();if(u)throw Error(u.message);if(!s.user)throw Error("User not found");let d=(null==(e=s.user.user_metadata)?void 0:e.fullname)||(null==(t=s.user.user_metadata)?void 0:t.name)||(null==(a=s.user.email)?void 0:a.split("@")[0])||"",g=await U(),f="",m="";try{let{data:e,error:t}=await A.schema("client").from("organization_memberships").select("\n organization_id,\n organizations!inner(name, created_at, type)\n ").eq("profile_id",s.user.id).order("joined_at",{ascending:!0}).limit(1);if(!t&&e&&e.length>0){let t=e[0].organizations;f=e[0].organization_id,m=(null==t?void 0:t.name)||"",i=(null==t?void 0:t.created_at)||void 0,c=(null==t?void 0:t.type)||void 0}}catch(e){console.log("Could not fetch organization data:",e)}let v={id:s.user.id,email:s.user.email||"",name:d,apiAccessToken:(null==g?void 0:g.access_token)||"",organizationId:f,organizationName:m,organizationCreatedAt:i,organizationType:c};return(0,l.setCookie)("userData",JSON.stringify(v),{maxAge:604800,path:"/",secure:!0,sameSite:"strict"}),v}catch(e){throw Error(e.message||"Failed to fetch user profile")}};(0,o.useEffect)(()=>{(async()=>{try{var e,t,a,n,o;let r=(0,c.createClient)(),i=(0,l.getCookie)("userData"),{data:d,error:g}=await r.auth.getUser().catch(e=>(console.log("No active auth session found"),{data:{user:null},error:null})),f=(null==d?void 0:d.user)||null;if(g&&!(null==(e=g.message)?void 0:e.includes("Auth session missing")))return void console.log("Auth session error:",g);if(f){let e=i?JSON.parse(String(i)):null,c=!!e&&e.id!==f.id;if(!e||c){let o=await U();c&&((0,s.C)(),(0,u.DV)());try{let e=null==(n=f.user_metadata)?void 0:n.onboarding_mode;e&&localStorage.setItem("kindora_onboarding_path",e)}catch(e){}let i=c?"":(null==e?void 0:e.organizationId)||"",l=c?"":(null==e?void 0:e.organizationName)||"",d=c||null==e?void 0:e.organizationCreatedAt,g=c||null==e?void 0:e.organizationType;if(!i)try{let{data:e,error:t}=await r.schema("client").from("organization_memberships").select("\n organization_id,\n organizations!inner(name, created_at, type)\n ").eq("profile_id",f.id).order("joined_at",{ascending:!0}).limit(1);if(!t&&e&&e.length>0){let t=e[0].organizations;i=e[0].organization_id,l=(null==t?void 0:t.name)||"",d=(null==t?void 0:t.created_at)||void 0,g=(null==t?void 0:t.type)||void 0}}catch(e){console.log("Could not fetch organization data:",e)}N({id:f.id,email:f.email||"",name:(c?"":null==e?void 0:e.name)||(null==(t=f.user_metadata)?void 0:t.name)||(null==(a=f.user_metadata)?void 0:a.fullname)||(f.email?f.email.split("@")[0]:""),apiAccessToken:(null==o?void 0:o.access_token)||"",apiAccessTokenExpiresAt:(null==o?void 0:o.expires_in)?new Date(Date.now()+60*o.expires_in*1e3).toISOString():void 0,organizationId:i,organizationName:l,organizationCreatedAt:d,organizationType:g})}if(e&&!c)try{let e=null==(o=f.user_metadata)?void 0:o.onboarding_mode;e&&localStorage.setItem("kindora_onboarding_path",e)}catch(e){}}}catch(e){console.log("Session check handled internally:",e)}})()},[U,N]),(0,o.useEffect)(()=>{(async()=>{let e;try{e=(0,l.getCookie)("userData")}catch(e){return}if(e)try{var t,a;let n=JSON.parse(String(e)),{data:o}=await A.auth.getSession(),r=null==o||null==(a=o.session)||null==(t=a.user)?void 0:t.id;if(r&&(null==n?void 0:n.id)&&n.id!==r)return void(0,l.deleteCookie)("userData",{path:"/"});let i=d.Ay.syncTokenWithUserContext(n);p(i)}catch(e){console.log("Failed to parse user cookie",e),(0,l.deleteCookie)("userData",{path:"/"})}})().catch(()=>{})},[]);let{data:j,error:G,isLoading:Z}=(0,i.I)({queryKey:["user"],queryFn:K,enabled:!m,staleTime:3e5,retry:1});(0,o.useEffect)(()=>{j&&!m&&p(j)},[j,m]),(0,o.useEffect)(()=>{m&&m.id&&!m.organizationId&&!_.isLoading&&"NO_ORGANIZATION"!==_.error&&_.retryCount<5?(console.log("[UserContext Consolidated Effect] â
User without org, fetching organization..."),P()):"NO_ORGANIZATION"===_.error&&console.log("[UserContext Consolidated Effect] â ï¸ User has no organization, skipping fetch")}
1,[null==m?void 0:m.id,null==m?void 0:m.organizationId,_.isLoading,_.error,_.retryCount,P]),(0,o.useEffect)(()=>{null==m||!m.id||y.hasFetchedAccounts||y.isLoading||y.error||(console.log("[UserContext Multi-Tenant Effect] Loading multi-tenant data for user..."),M())},[null==m?void 0:m.id,y.hasFetchedAccounts,y.isLoading,y.error,M]);let Q=(0,o.useRef)(null);(0,o.useEffect)(()=>{let e=null==m?void 0:m.organizationId,t=null==m?void 0:m.id;if(!t||!e){Q.current=null;return}if(!y.hasFetchedAccounts||y.isLoading||y.error)return;let a="".concat(t,":").concat(e);if(y.organizations.some(t=>t.organization_id===e)){Q.current===a&&(Q.current=null);return}Q.current!==a&&(Q.current=a,console.log("[UserContext Multi-Tenant Effect] User org missing from snapshot, refetching...",{orgId:e}),B())},[null==m?void 0:m.id,null==m?void 0:m.organizationId,y.hasFetchedAccounts,y.isLoading,y.error,y.organizations,B]);let V=(0,o.useMemo)(()=>({currentUser:m,sessionStatus:k,isAuthResolved:b,hasActiveSession:C,error:G instanceof Error?G.message:null,isLoading:Z,organizationFetchState:_,setUser:N,setApiToken:T,clearUser:F,clearError:R,isTokenExpired:D,refreshTokenIfNeeded:L,fetchOrganizationData:P,multiTenant:y,fetchUserAccounts:M,switchOrganization:J,switchAccount:q,refreshMultiTenantData:B}),[m,k,b,C,G,Z,_,N,T,F,R,D,L,P,y,M,J,q,B]);return(0,n.jsx)(h.Provider,{value:V,"data-sentry-element":"UserContext.Provider","data-sentry-component":"UserProvider","data-sentry-source-file":"UserContext.tsx",children:t})},_=()=>{var e,t,a;let n=(0,o.useContext)(h),r=(0,o.useContext)(m.ur);if(void 0===n)throw Error("useUser must be used within a UserProvider");return(null==r?void 0:r.isImpersonating)&&n.currentUser?{...n,currentUser:{...n.currentUser,id:null!=(e=r.impersonatedProfileId)?e:n.currentUser.id,email:r.impersonatedUserEmail||n.currentUser.email,name:r.impersonatedUserName||n.currentUser.name,organizationId:null!=(t=r.impersonatedOrgId)?t:n.currentUser.organizationId,organizationName:null!=(a=r.impersonatedOrgName)?a:n.currentUser.organizationName},multiTenant:{...n.multiTenant,activeAccountId:null,activeOrganizationId:r.impersonatedOrgId}}:n},w=()=>{let{multiTenant:e,fetchUserAccounts:t,switchOrganization:a,switchAccount:n,refreshMultiTenantData:r,currentUser:i}=_(),c=(0,o.useContext)(m.ur);if((null==c?void 0:c.isImpersonating)&&i&&c.impersonatedOrgId){var l,s;let e={id:"impersonation-".concat(c.impersonatedOrgId),organization_id:c.impersonatedOrgId,organization_name:null!=(l=c.impersonatedOrgName)?l:"",profile_id:null!=(s=c.impersonatedProfileId)?s:"",organization_role:"viewer",account_id:null,account_name:"Impersonation Session"};return{accounts:[],organizations:[e],activeAccountId:null,activeOrganizationId:c.impersonatedOrgId,isLoading:!1,hasFetchedAccounts:!0,error:null,activeAccount:null,activeOrganization:e,hasMultipleOrganizations:!1,hasMultipleAccounts:!1,fetchUserAccounts:t,switchOrganization:a,switchAccount:n,refreshMultiTenantData:r,userId:i.id||null}}return{accounts:e.accounts,organizations:e.organizations,activeAccountId:e.activeAccountId,activeOrganizationId:e.activeOrganizationId,isLoading:e.isLoading,hasFetchedAccounts:e.hasFetchedAccounts,error:e.error,activeAccount:e.accounts.find(t=>t.id===e.activeAccountId)||null,activeOrganization:e.organizations.find(t=>t.organization_id===e.activeOrganizationId)||null,hasMultipleOrganizations:e.organizations.length>1,hasMultipleAccounts:e.accounts.length>1,fetchUserAccounts:t,switchOrganization:a,switchAccount:n,refreshMultiTenantData:r,userId:(null==i?void 0:i.id)||null}}},30081:(e,t,a)=>{a.d(t,{ON:()=>s,ur:()=>c,yG:()=>u});var n=a(95155),o=a(12115),r=a(68001),i=a(512);let c=(0,o.createContext)(void 0);async function l(e,t){try{await r.vg.post("/api/admin/impersonate/end",{target_profile_id:e,target_org_id:t})}catch(e){console.error("Failed to log impersonation end:",e)}}function s(e){let{children:t}=e,[a,r]=(0,o.useState)(null),s=(0,o.useCallback)(async e=>{let t=e||(0,i.oh)(),a=(null==t?void 0:t.profileId)||null,n=(null==t?void 0:t.orgId)||null;(0,i.dN)(),r(null),await l(a,n),window.location.href="/admin/view-as"},[]);(0,o.useEffect)(()=>{r((0,i.oh)())},[]),(0,o.useEffect)(()=>
1{if(!(null==a?void 0:a.expiresAt))return;let e=new Date(a.expiresAt).getTime()-Date.now();if(e<=0)return void s(a);let t=setTimeout(()=>{s(a)},e);return()=>clearTimeout(t)},[a,null==a?void 0:a.expiresAt,s]);let u=(0,o.useCallback)(e=>{(0,i.o9)(e),r(e)},[]),d=(0,o.useCallback)(async()=>{await s(a)},[a,s]),g=(0,o.useMemo)(()=>{var e,t,n,o,r,i;return{isImpersonating:null!==a,impersonatedUserName:null!=(e=null==a?void 0:a.userName)?e:null,impersonatedUserEmail:null!=(t=null==a?void 0:a.userEmail)?t:null,impersonatedOrgName:null!=(n=null==a?void 0:a.orgName)?n:null,impersonatedOrgId:null!=(o=null==a?void 0:a.orgId)?o:null,impersonatedProfileId:null!=(r=null==a?void 0:a.profileId)?r:null,impersonationToken:null!=(i=null==a?void 0:a.token)?i:null,endImpersonation:d,startImpersonation:u}},[a,d,u]);return(0,n.jsx)(c.Provider,{value:g,"data-sentry-element":"ImpersonationContext.Provider","data-sentry-component":"ImpersonationProvider","data-sentry-source-file":"ImpersonationContext.tsx",children:t})}function u(){let e=(0,o.useContext)(c);if(void 0===e)throw Error("useImpersonation must be used within an ImpersonationProvider");return e}},56705:(e,t,a)=>{a.r(t),a.d(t,{AUTH_TOKEN_UNAVAILABLE_EVENT:()=>l,KindoraAuthTokenUnavailableError:()=>s,getApiTokenOrThrow:()=>_,getSupabaseAccessTokenOrThrow:()=>p,kindoraAuthHeaders:()=>w});var n=a(35677),o=a(8766),r=a(512),i=a(34623),c=a(359);let l="kindora:auth-token-unavailable";class s extends Error{constructor(e,t){var a;super(e,t),this.code="ally_auth_token_unavailable",this.errorCode="ally_auth_token_unavailable",this.name="KindoraAuthTokenUnavailableError",this.reason=null!=(a=null==t?void 0:t.reason)?a:"temporarily_unavailable",this.retryable="session_expired"!==this.reason}}let u=["failed to fetch","load failed","network error","networkerror","network request failed","timeout","timed out","aborted"],d=new Set(["session_not_found","session_expired","refresh_token_not_found","refresh_token_already_used"]);function g(e,t){if(!e&&!t)return"session_expired";if("undefined"!=typeof navigator&&!1===navigator.onLine)return"offline";if(e)return"temporarily_unavailable";if(t&&"object"==typeof t){var a,n,o;let e=String(null!=(a=t.name)?a:"").toLowerCase(),r=String(null!=(n=t.message)?n:"").toLowerCase(),i=String(null!=(o=t.code)?o:"").toLowerCase();if(u.some(e=>r.includes(e)))return"offline";if(d.has(i)||"authsessionmissingerror"===e||r.includes("auth session missing")||r.includes("refresh token expired")||r.includes("invalid refresh token")||r.includes("refresh token not found"))return"session_expired"}return"temporarily_unavailable"}async function f(e){if("undefined"!=typeof navigator&&!1===navigator.onLine)return"offline";if(e instanceof Error){let t=e.message.toLowerCase();return u.some(e=>t.includes(e))?"offline":"temporarily_unavailable"}if(i.Ay.isCircuitOpen())return"temporarily_unavailable";try{let{data:{session:e},error:t}=await (0,n.createClient)().auth.getSession();return g(e,t)}catch(e){return"temporarily_unavailable"}}async function m(){try{let{data:{session:e},error:t}=await (0,n.createClient)().auth.getSession();return g(e,t)}catch(e){return"undefined"!=typeof navigator&&!1===navigator.onLine?"offline":"temporarily_unavailable"}}let v={offline:"We couldn't reach Kindora to refresh your session. Check your connection and try again.",temporarily_unavailable:"Kindora couldn't refresh your session right now. Please try again.",session_expired:"Your session has expired. Please sign in again."};function h(e,t){try{c.default.trackEvent("auth_token_unavailable",{reason:e})}catch(e){}try{window.dispatchEvent(new CustomEvent(l,{detail:{reason:e}}))}catch(e){}throw new s(v[e],{cause:t,reason:e})}async function p(){let e,t=null;try{t=await (0,o.iD)()}catch(t){e=t}return t||h(await m(),e)}async function _(){let e=i.Ay.getAccessToken(),t=null,a=async()=>{try{var e;let a=await i.Ay.fetchTokenFromApi();return t=null,null!=(e=null==a?void 0:a.access_token)?e:null}catch(e){return console.error("[kindoraAuthHeaders] Error refreshing API token:",e),t=e,null}};return((e&&i.Ay.isTokenExpired()||!e)&&!(e=await a())&&("session_expired"===await f(t)||i.Ay.isCircuitOpen()||(await new Promise(e=>setTimeout(e,400)),e=await a())),e)?e:h(await f(t),null!=t?t:void 0)}async function w(){var e,t;let a,o=(0,n.createClient)();try{a=await o.auth.getSession()}catch(e){return h("undefined"!=typeof navigator&&!1===navigator.onLine?"offline":"temporarily_unavailable",e)}let i=a.data.session;if(a.error||!(null==i||null==(e=i.user)?void 0:e.id))return h(g(i,a.error),null!=(t=a.error)?t:void 0);let c=await p(),l=await _(),s=(0,r.ey)(),u=(0,r.Qg)(),d=(0,r.tp)(),f={"Content-Type":"application/json","x-user-id":null!=s?s:i.user.id,Authorization:"Bearer ".concat(l),"X-Supabase-Auth":c};return u&&(f["X-Impersonation-Token"]=u,d&&(f["X-Organization-Id"]=d)),f}},68474:(e,t,a)=>{a.d(t,{A:()=>l});
1var n=a(68001),o=a(35677),r=a(512);let i="".concat("https://api.kindora.co".replace(/\/$/,""),"/api");function c(e){return(0,r.ey)()||e}let l={addUser:async e=>{try{let t=await (0,o.createClient)(),{data:a,error:r}=await t.auth.getUser();if(r)throw console.error("Error fetching user:",r),r.message;if(!a.user)throw Error("User not found");let l=e.id;return(await n.vg.post("".concat(i,"/user/").concat(l,"/add_profile"),e,{headers:{"x-user-id":c(a.user.id)}})).data}catch(e){return console.log("Error adding user:",e),e}},fetchUser:async e=>{try{let t=await (0,o.createClient)(),{data:a,error:r}=await t.auth.getUser();if(r)throw console.error("Error fetching user:",r),r.message;if(!a.user)throw Error("User not found");return(await n.vg.get("".concat(i,"/user/").concat(e,"/get_profile"),{headers:{"x-user-id":c(a.user.id)}})).data}catch(e){return console.log("Error fetching user:",e),e}},updateUser:async e=>{try{let t=await (0,o.createClient)(),{data:a,error:r}=await t.auth.getUser();if(r)throw console.error("Error fetching user:",r),r.message;if(!a.user)throw Error("User not found");let l=c(a.user.id);return(await n.vg.patch("".concat(i,"/user/").concat(l,"/update_profile"),e,{headers:{"x-user-id":l}})).data}catch(e){return console.log("Error fetching user:",e),e}},fetchPrimaryOrganization:async()=>{try{let e=await (0,o.createClient)(),{data:{session:t},error:a}=await e.auth.getSession();if(a)throw console.error("Error fetching session:",a),a.message;if(!(null==t?void 0:t.user))throw Error("User not found");let r=await n.vg.get("".concat(i,"/user/").concat(c(t.user.id),"/organization_membership"));if(200!==r.status)throw Error("Failed to fetch primary organization");return r.data}catch(e){if(console.log("Primary organization error:",e),(null==e?void 0:e.status)&&(null==e?void 0:e.status)===404)return console.log("No organization membership found for user (404)"),null;if(null==e?void 0:e.response)throw console.log("API Error:",e.response.status,e.response.data),Error("API Error: ".concat(e.response.status," - ").concat(e.response.statusText));throw e}}}},71102:(e,t,a)=>{a.d(t,{C:()=>o});let n=["kindora_org_id","kindora_program_id","userOrganizationId","pendingOrgFetch","userForOrgFetch","onboarding_start_time","kindora_onboarding_step","kindora_onboarding_created_org_id","kindora_onboarding_created_org_name","kindora_onboarding_path","kindora_consultant_onboarding_failure","kindora_added_funders","kindora_bmf_ein","kindora_discovery_started","kindora_documents_count","kindora_funders_added_count","kindora_onboarding_progress","kindora_peer_count","signup_email","signup_full_name","kindora_signup_attempted_at","signup_email_domain","kindora_current_workspace_id","kindora_organizations","kindora_client_setup_state_v1","kindora_pending_return_url"];function o(){try{n.forEach(e=>localStorage.removeItem(e))}catch(e){}}},83846:(e,t,a)=>{a.d(t,{Ar:()=>d,Bv:()=>z,DV:()=>_,FS:()=>k,dx:()=>u,jD:()=>p,nl:()=>s,oo:()=>v,rO:()=>g,wb:()=>l});var n=a(68001);let o="kindora_referral_v1",r=/^[A-Za-z0-9][A-Za-z0-9-]{2,31}$/,i="".concat("https://api.kindora.co".replace(/\/$/,""),"/api"),c=null;function l(e){let t=(e||"").trim().toUpperCase().replace(/\s+/g,"");return r.test(t)?t:null}function s(){try{let e=window.localStorage.getItem(o);if(!e)return null;let t=JSON.parse(e),a=l(null==t?void 0:t.code),n=Date.now()-(null==t?void 0:t.capturedAt);if(!a||a!==t.code||!Number.isFinite(t.capturedAt)||n<-3e5||n>5184e6||"link"!==t.method&&"code"!==t.method)return window.localStorage.removeItem(o),null;return t}catch(e){try{window.localStorage.removeItem(o)}catch(e){}return null}}function u(e,t){let a=l(e);if(!(!a||s()))try{window.localStorage.setItem(o,JSON.stringify({code:a,method:t,capturedAt:Date.now()}))}catch(e){}}function d(e){try{var t;if(e&&(null==(t=s())?void 0:t.code)!==e)return;window.localStorage.removeItem(o)}catch(e){}}function g(){let e=new URLSearchParams(window.location.search).get("ref");e&&u(e,"link")}let f="kindora_referral_freetext_v1",m="kindora_referral_freetext_claimed_uid_v1";function v(e){let t=(e||"").trim().slice(0,300);try{t?window.localStorage.setItem(f,t):window.localStorage.removeItem(f),window.localStorage.removeItem(m)}catch(e){}}function h(){try{let e=window.localStorage.getItem(f);return e&&e.trim()?e:null}catch(e){return null}}function p(){try{window.localStorage.removeItem(f),window.localStorage.removeItem(m)}catch(e){}}function _(){d(),p()}async function w(){try{var e,t,n;let{createClient:o}=await Promise.resolve().then(a.bind(a,35677)),{data:r}=await o().auth.getSession();return null!=(n=null==(t=r.session)||null==(e=t.user)?void 0:e.id)?n:null}catch(e){return null}}function y(e){try{let t=s();if(!t||t.claimedByUid===e)return;window.localStorage.setItem(o,JSON.stringify({...t,claimedByUid:e}))}catch(e){}}async function z(e){let t=l(e);if(!t)return{valid:!1};try{var a,o,r,c,s,u,d;let e=await n.vg.post("".concat(i,"/public/referrals/validate"),{code:t},{kindoraPublic:!0,timeout:3e3,kindoraRetrySafe:!1}),l=null==(a=e.data)?void 0:a.referred_reward_credits;return{valid:!!(null==(o=e.data)?void 0:o.valid),referrerName:(null==(r=e.data)?void 0:r.referrer_name)||(null==(c=e.data)?void 0:c.referrer_first_name)||void 0,referrerFirstName:null!=(d=null==(s=e.data)?void 0:s.referrer_first_name)?d:void 0,referredRewardCredits:"number"==typeof l&&Number.isFinite(l)&&l>0?l:void 0,referredRewardTrigger:(null==(u=e.data)?void 0:u.referred_reward_trigger)==="organization_created"?"organization_created":"first_payment"}}catch(e){return{valid:!1,unavailable:!0}}}async function A(e,t){try{await n.vg.post("".concat(i,"/referrals/claim"),{free_text:e},{timeout:5e3,kindoraRetrySafe:!0}),p()}catch(e){if(t&&1)try{window.localStorage.setItem(m,t)}catch(e){}}}function k(){if(c)return c;let e=(async()=>{let e=s(),t=e?null:h(),a=function(){try{return window.localStorage.getItem(m)}catch(e){return null}}();if(!e&&!t)return;let o=await w(),r=(null==e?void 0:e.claimedByUid)||a;if(r){if(!o)return;if(r!==o)return void _()}if(!e)return void await A(t,o);try{var c,l;let t=await n.vg.post("".concat(i,"/referrals/claim"),{code:e.code,method:e.method},{timeout:5e3,kindoraRetrySafe:!0}),a=null==(c=t.data)?void 0:c.reason;if("invalid_code"===a){d(e.code);let t=h();t&&await A(t,o);return}if((null==(l=t.data)?void 0:l.claimed)&&"attach_pending"!==a||"already_attributed"===a||"self_referral"===a||"claim_window_expired"===a){d(e.code),p();return}o&&y(o)}catch(e){o&&y(o)}})();return c=e,e.finally(()=>{c===e&&(c=null)}),e}}}]); 2//# sourceMappingURL=26153-f92539c012bce2fd.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.