{"version":3,"file":"static/chunks/4474-f9cc59d313b78244.js","mappings":"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","sources":["webpack://_N_E/./apis/company/api.ts","webpack://_N_E/./apis/erp/api.ts","webpack://_N_E/./src/shared/helpers/analytics.ts","webpack://_N_E/./src/state/AuthContexts.tsx"],"sourcesContent":["import { fetchWithAuth } from \"../interceptor\";\nimport {\n APIRequestCreateShareholderT,\n APIRequestUpdateCompanyT,\n APIRequestUpdateShareholderT,\n APIResponseCompanySearchT,\n APIResponseGetActivity,\n APIResponseGetCompanyCustomers,\n APIResponseGetCompanyMetricsT,\n APIResponseGetCompanyT,\n APIResponseGetCompanyVendors,\n APIResponseGetERPTaxRates,\n APIResponseGetLatestBatchT,\n APIResponseGetShareholdersT,\n APIResponseGetSubscriptions,\n APIResponseGetTeammates,\n APIResponseUpdateCompanyT,\n APIResponseUpdateSubscriptions,\n ApiResponseAcceptEarlyPayAgreement,\n ApiResponseBillCountT,\n} from \"./types\";\n\nexport const searchCompany = async (props: {\n query: string;\n}): Promise => {\n const { query } = props;\n\n return fetchWithAuth(`/company/search?search=${query}`, {\n method: \"GET\",\n });\n};\n\nexport const getInviteDetails = async (token: string) => {\n try {\n const rawResponse = await fetch(`/api/company/invite/${token}`, {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n });\n\n const content = await rawResponse.json();\n\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n};\n\nexport const createShareholder = async (\n shareholder: APIRequestCreateShareholderT\n) => {\n return fetchWithAuth(`/company/shareholders`, {\n method: \"POST\",\n body: JSON.stringify(shareholder),\n });\n};\n\nexport const deleteShareholder = async (shareholder_id: number) => {\n return fetchWithAuth(`/company/shareholders/${shareholder_id}`, {\n method: \"DELETE\",\n });\n};\n\nexport const updateShareholder = async (\n id: number,\n shareholder: APIRequestUpdateShareholderT\n) => {\n return fetchWithAuth(`/company/shareholders/${id}`, {\n method: \"PUT\",\n body: JSON.stringify(shareholder),\n });\n};\n\nexport const getShareholders =\n async (): Promise => {\n return fetchWithAuth(`/company/shareholders`, {\n method: \"GET\",\n });\n };\n\nexport const updateCompany = async (\n company: APIRequestUpdateCompanyT\n): Promise => {\n return fetchWithAuth(`/company`, {\n method: \"PUT\",\n body: JSON.stringify({ company }),\n });\n};\n\nexport const getCompany = async (): Promise => {\n return fetchWithAuth(\"/company\", { method: \"GET\" });\n};\n\nexport const getCompanyMetrics = async (\n type: \"bill\" | \"invoice\"\n): Promise => {\n return fetchWithAuth(`/company/metrics?type=${type}`, { method: \"GET\" });\n};\n\nexport const forceCompanySync = async ({\n type,\n entityId,\n}: {\n type?: \"bill\" | \"invoice\" | \"contact\" | \"initial\";\n entityId?: string;\n}): Promise => {\n let queryString = \"\";\n\n if (type) queryString = `?type=${type}`;\n if (entityId) queryString += `?entityId=${entityId}`;\n\n return fetchWithAuth(`/company/sync${queryString}`, {\n method: \"POST\",\n });\n};\n\nexport const manualEPProcess = async (props: {\n type: string;\n assetIds?: number[];\n}): Promise => {\n const { type, assetIds } = props;\n return fetchWithAuth(`/company/manualEP`, {\n method: \"POST\",\n body: JSON.stringify({\n type: type,\n assetIds,\n }),\n });\n};\n\nexport const getLatestBatch = async (): Promise => {\n return await fetchWithAuth(`/company/batch`, {\n method: \"GET\",\n });\n};\n\nexport const getCompanyTeammates =\n async (): Promise => {\n return await fetchWithAuth(`/company/teammates`, {\n method: \"GET\",\n });\n };\n\nexport const getCompanySubscriptions = async (\n email?: string,\n companyId?: string\n): Promise => {\n if (email && companyId) {\n return fetchWithAuth(\n `/company/subscriptions?companyId=${companyId}&email=${email}`,\n {\n method: \"GET\",\n }\n );\n }\n return fetchWithAuth(`/company/subscriptions`, {\n method: \"GET\",\n });\n};\n\nexport const updateCompanySubscriptions = async (\n subscriptions: SubscriptionT[]\n): Promise => {\n return fetchWithAuth(`/company/subscriptions/update`, {\n method: \"PUT\",\n body: JSON.stringify({ subscriptions }),\n });\n};\n\nexport const getCompanyVendors = async (\n companyId: number\n): Promise => {\n return fetchWithAuth(`/company/${companyId}/vendors`, {\n method: \"GET\",\n });\n};\n\nexport const getCompanyCustomers = async ({\n page = 1,\n limit = 50,\n payers = \"customer\",\n query = \"\",\n}): Promise => {\n const url = `/company/customers?type=${payers}`;\n let newURL = `${url}&page=${page}`;\n if (limit) newURL += `&limit=${limit}`;\n if (query) newURL += `&q=${query}`;\n\n return fetchWithAuth(newURL, {\n method: \"GET\",\n });\n};\n\nexport const getERPTaxRates = async (): Promise => {\n return fetchWithAuth(\"/company/erp/getTaxRates\", { method: \"GET\" });\n};\n\nexport const sendCompanyApprovalReq = async (): Promise => {\n return fetchWithAuth(\"/company/requestApproval\", { method: \"POST\" });\n};\n\nexport const getCompanyActivity = async (): Promise => {\n return fetchWithAuth(\"/company/activity\", { method: \"GET\" });\n};\n\nexport const deleteCompanyTeammate = async (props: {\n teammateId: number;\n}): Promise => {\n const { teammateId } = props;\n\n return fetchWithAuth(`/company/teammate/${teammateId}`, { method: \"DELETE\" });\n};\n\nexport const inviteTeammate = async (\n senderName: string,\n senderEmail: string,\n company: string,\n email: string,\n firstName: string | null,\n lastName: string | null,\n role: string,\n isAuthorizedSignatory?: boolean\n): Promise => {\n const content = await fetchWithAuth(`/company/invite`, {\n method: \"POST\",\n\n body: JSON.stringify({\n email,\n role,\n first_name: firstName,\n last_name: lastName,\n isAuthorizedSignatory,\n }),\n });\n\n window &&\n window.Intercom &&\n window.Intercom(\"trackEvent\", \"team-invite\", {\n senderName,\n senderEmail,\n company,\n invitedEmail: email,\n version: process.env.NEXT_PUBLIC_APP_VERSION,\n });\n\n return content;\n};\n\nexport const updateTeammate = async (\n firstName: string,\n lastName: string,\n email: string,\n phone: string,\n avatar_url?: string,\n userId?: number,\n enabled?: boolean,\n roles?: string[]\n): Promise => {\n return fetchWithAuth(`/auth/user/${userId}`, {\n method: \"PUT\",\n body: JSON.stringify({\n user: {\n first_name: firstName,\n last_name: lastName,\n email,\n phone,\n avatar_url,\n userId,\n enabled,\n roles,\n },\n }),\n });\n};\n\nexport const getActionableBillsCount =\n async (): Promise => {\n return fetchWithAuth(`/company/bills/count`, {\n method: \"GET\",\n });\n };\n\nexport const acceptEarlyPaymentAgreement =\n async (): Promise => {\n return fetchWithAuth(`/company/acceptAgreement`, {\n method: \"POST\",\n });\n };\n","import { fetchWithAuth } from \"../interceptor\";\nimport {\n APIRequestCreateCompanyERPCustomerT,\n APIRequestCreateCompanyERPGLAccountT,\n APIRequestCreateCompanyERPVendorT,\n APIResponseGetChartOfAccountsT,\n APIResponseGetERPConnectionStatusT,\n APIResponseGetERPCustomersT,\n APIResponseGetERPSupplierCreditsT,\n APIResponseGetERPVendorsT,\n APIResponseGetFinancialAccountsT,\n APIResponseGetOrganizationalEntitiesT,\n APIResponseUpdateOrganizationalEntityT,\n ManualERPConnectionPayload,\n} from \"./types\";\n\nexport const createERPVendor = async (\n body: APIRequestCreateCompanyERPVendorT\n) => {\n return fetchWithAuth(`/company/erp/vendors`, {\n method: \"POST\",\n body: JSON.stringify(body),\n });\n};\n\nexport const createERPCustomer = async (\n body: APIRequestCreateCompanyERPCustomerT\n) => {\n return fetchWithAuth(`/company/erp/customers`, {\n method: \"POST\",\n body: JSON.stringify(body),\n });\n};\n\nexport const getERPVendors = async (params?: {\n search?: string;\n selectedIds?: string[];\n}): Promise => {\n const queryParams = new URLSearchParams();\n\n if (params?.search) {\n queryParams.append(\"search\", params.search);\n }\n\n if (params?.selectedIds && params.selectedIds.length > 0) {\n queryParams.append(\"selectedIds\", params.selectedIds.join(\",\"));\n }\n\n const queryString = queryParams.toString()\n ? `?${queryParams.toString()}`\n : \"\";\n\n return fetchWithAuth(`/company/erp/vendors${queryString}`, {\n method: \"GET\",\n });\n};\n\nexport const getERPCustomers =\n async (): Promise => {\n return fetchWithAuth(`/company/erp/customers`, {\n method: \"GET\",\n });\n };\n\nexport const syncReleaseFundsEntries = async (props: {\n id: number;\n type?: \"seller\" | \"buyer\";\n}): Promise => {\n const { id, type = \"buyer\" } = props;\n return fetchWithAuth(`/invoices/${id}/erp/release-funds`, {\n method: \"POST\",\n body: JSON.stringify({\n type,\n }),\n });\n};\n\nexport const syncRepaymentEntries = async (props: {\n id: number;\n type?: \"seller\" | \"buyer\";\n method?: \"supplier-credit\" | \"final-payment\";\n}): Promise => {\n const { id, type = \"buyer\", method = \"final-payment\" } = props;\n return fetchWithAuth(`/invoices/${id}/erp/repayment`, {\n method: \"POST\",\n body: JSON.stringify({\n type,\n method,\n }),\n });\n};\n\nexport const createERPGLAccount = async (\n body: APIRequestCreateCompanyERPGLAccountT\n) => {\n return fetchWithAuth(`/company/erp/accounts`, {\n method: \"POST\",\n body: JSON.stringify(body),\n });\n};\n\nexport const getERPConnectionStatus =\n async (): Promise => {\n return fetchWithAuth(`/company/erp/connection`, {\n method: \"GET\",\n });\n };\n\nexport const getERPSupplierCredits = async ({\n billIds,\n}: {\n billIds: number[];\n}): Promise => {\n return fetchWithAuth(\n `/company/erp/supplierCredits?billIds=${billIds.join(\",\")}`,\n {\n method: \"GET\",\n }\n );\n};\n\nexport const getERPFinancialAccounts = async (params?: {\n search?: string;\n selectedIds?: string[];\n}): Promise => {\n const queryParams = new URLSearchParams();\n\n if (params?.search) {\n queryParams.append(\"search\", params.search);\n }\n\n if (params?.selectedIds && params.selectedIds.length > 0) {\n queryParams.append(\"selectedIds\", params.selectedIds.join(\",\"));\n }\n\n const queryString = queryParams.toString()\n ? `?${queryParams.toString()}`\n : \"\";\n\n return fetchWithAuth(`/company/erp/financialAccounts${queryString}`, {\n method: \"GET\",\n });\n};\n\nexport const getERPChartOfAccounts = async (params?: {\n search?: string;\n selectedIds?: string[];\n section?: \"revenue\" | \"expense\" | \"other\";\n}): Promise => {\n const queryParams = new URLSearchParams();\n\n if (params?.search) {\n queryParams.append(\"search\", params.search);\n }\n\n if (params?.selectedIds && params.selectedIds.length > 0) {\n queryParams.append(\"selectedIds\", params.selectedIds.join(\",\"));\n }\n\n if (params?.section) {\n queryParams.append(\"section\", params.section);\n }\n\n const queryString = queryParams.toString()\n ? `?${queryParams.toString()}`\n : \"\";\n\n return fetchWithAuth(`/company/erp/getChartOfAccounts${queryString}`, {\n method: \"GET\",\n });\n};\n\nexport const deleteConnection = async (id: number): Promise => {\n return fetchWithAuth(`/company/connection/${id}`, {\n method: \"DELETE\",\n });\n};\n\nexport const getOrganizationalEntities =\n async (): Promise => {\n return fetchWithAuth(`/company/erp/organizationalEntities`, {\n method: \"GET\",\n });\n };\n\nexport const createOAuthAccumaticaConnection = async (\n code: string,\n connection_id: number\n): Promise => {\n return fetchWithAuth(`/company/connections/accumatica/oauth`, {\n method: \"POST\",\n body: JSON.stringify({ code, connection_id }),\n });\n};\n\nexport const updateOrganizationalEntity = async (\n id: number,\n payload: Partial<\n Omit<\n OrganizationalEntityT,\n \"id\" | \"company_id\" | \"connection_id\" | \"erp_id\"\n >\n >\n): Promise => {\n return fetchWithAuth(`/company/organizationalEntities/${id}`, {\n method: \"PUT\",\n body: JSON.stringify(payload),\n });\n};\n\nexport const updateEntityConfiguration = async (payload: {\n entity_ids: number[];\n default_to_top_level: boolean;\n}) => {\n return fetchWithAuth(`/company/erp/entities/enable`, {\n method: \"POST\",\n body: JSON.stringify(payload),\n });\n};\n\nexport const createManualERPConnection = async (\n manualConnectionPayload: ManualERPConnectionPayload\n): Promise => {\n const { type, ...payload } = manualConnectionPayload;\n return fetchWithAuth(`/company/connections/${type}`, {\n method: \"POST\",\n body: JSON.stringify(payload),\n });\n};\n","import * as FullStory from \"@fullstory/browser\";\nimport posthog from \"posthog-js\";\n\ntype UserData = {\n user: UserType;\n company: CompanyType;\n};\n\nexport const identifyUser = (userData: UserData) => {\n const { user, company } = userData;\n\n posthog.identify(user.id as unknown as string, {\n ...formatUserProperties(user),\n ...formatCompanyProperties(company),\n });\n\n // FullStory identification - only in production\n if (process.env.NEXT_PUBLIC_BUILD_ENV === \"production\") {\n FullStory.identify(user.id as unknown as string, {\n displayName: user.full_name,\n email: user.email,\n });\n }\n};\n\nexport const formatUserProperties = (user: UserType) => {\n return Object.entries(user).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [`user_${key}`]: value,\n }),\n {}\n );\n};\n\nexport const formatCompanyProperties = (company: CompanyType) => {\n return Object.entries(company).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [`company_${key}`]: value,\n }),\n {}\n );\n};\n","\"use client\";\n\nimport { logoutAction } from \"@/actions/logout\";\nimport {\n APIRequestSignupT,\n APIRequestUpdateUserT,\n APIResponseGetCompany,\n APIResponseGetUser,\n APIResponseSignupT,\n} from \"@/features/auth/types\";\nimport { identifyUser } from \"@/shared/helpers/analytics\";\nimport { StateManager } from \"@/state/state-management\";\nimport * as FullStory from \"@fullstory/browser\";\nimport { setUser as setSentryUser } from \"@sentry/nextjs\";\nimport { usePathname, useRouter, useSearchParams } from \"next/navigation\";\nimport posthog from \"posthog-js\";\nimport {\n ReactNode,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { updateCompany as apiUpdateCompany } from \"../../apis/company/api\";\nimport { APIRequestUpdateCompanyT } from \"../../apis/company/types\";\nimport {\n APIResponseGetOrganizationalEntitiesT,\n getOrganizationalEntities,\n} from \"../../apis/erp\";\n\ntype PropsT = {\n children: ReactNode;\n};\n\ntype AuthContextType = {\n user: UserType | null;\n getUser: (token: string) => Promise;\n updateUser: (user: APIRequestUpdateUserT) => Promise;\n company: CompanyType | null;\n getCompany: (token: string) => Promise;\n updateCompany: (company: APIRequestUpdateCompanyT) => Promise;\n // Auth:\n login: (\n email: string,\n password: string,\n token?: string,\n invoiceId?: number | null,\n username?: string,\n otpValue?: string,\n session?: string\n ) => Promise;\n signup: (signupData: APIRequestSignupT) => Promise;\n logout: () => void;\n getAllOrganizationalEntities: () => Promise;\n organizationalEntities: OrganizationalEntityT[];\n loadedEntities: boolean;\n selectedEntity: OrganizationalEntityT | null | undefined;\n setSelectedEntity: (entity: OrganizationalEntityT | null | undefined) => void;\n};\n\nexport const AuthContext = createContext(null);\n\nexport const AuthProvider = ({ children }: PropsT) => {\n const router = useRouter();\n const searchParams = useSearchParams();\n const pathname = usePathname();\n const [user, setUser] = useState(null);\n const [company, setCompany] = useState(null);\n const [organizationalEntities, setOrganizationalEntities] = useState<\n OrganizationalEntityT[]\n >([]);\n const [loadedEntities, setLoadedEntities] = useState(false);\n const [selectedEntity, setSelectedEntity] = useState<\n OrganizationalEntityT | null | undefined\n >(undefined);\n\n const logout = useCallback(async () => {\n console.log(\"Logging out\");\n await logoutAction();\n setUser(null);\n setCompany(null);\n setSentryUser(null);\n setLoadedEntities(false);\n setOrganizationalEntities([]);\n setSelectedEntity(undefined);\n posthog.reset();\n StateManager.clear();\n\n if (localStorage) {\n localStorage.removeItem(\"q-state\");\n localStorage.removeItem(\"entityState\");\n localStorage.removeItem(\"invoiceState\");\n localStorage.removeItem(\"billState\");\n }\n\n router.push(\"/login\");\n\n if (FullStory.isInitialized()) {\n FullStory.anonymize();\n }\n }, [router]);\n\n const getUser = useCallback(\n async (token: string): Promise => {\n try {\n const rawResponse = await fetch(`/api/auth/user`, {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n\n const content = await rawResponse.json();\n\n // Unauthorized && forbidden to test when token expires\n if (rawResponse.status === 401) {\n logout();\n\n return { success: false, message: \"Token Expired\" };\n } else {\n if (content.success) {\n const userData = { ...content.user, token };\n setUser(userData);\n\n localStorage.setItem(\"q-state\", JSON.stringify(userData));\n\n window &&\n window.Intercom &&\n window.Intercom(\"boot\", {\n api_base: \"https://api-iam.intercom.io\",\n app_id: process.env.NEXT_PUBLIC_INTERCOM_ID,\n email: content.user.email,\n name: content.user.full_name,\n user_id: content.user.id,\n user_hash: content.user.intercom_hash,\n phone: content.user.phone,\n company: {\n id: content.user.Company.id,\n name: content.user.Company.name,\n phone: content.user.Company.phone || content.user.phone,\n website: content.user.Company.website,\n industry: content.user.Company.industry,\n created_at: content.user.Company.created_at,\n user_type: content.user.Company?.expected_activity\n ? content.user.Company?.expected_activity\n : \"unknown\",\n },\n });\n\n setSentryUser({\n id: content.user?.id,\n email: content.user?.email,\n username: content.user?.full_name,\n company_name: content.user?.Company?.name,\n });\n } else {\n console.error(content.message);\n }\n }\n\n return content;\n } catch (error) {\n return { success: false, message: \"Something went wrong\" };\n }\n },\n [logout]\n );\n\n const updateUser = async (\n user: APIRequestUpdateUserT\n ): Promise => {\n try {\n const rawResponse = await fetch(`/api/auth/user`, {\n method: \"PUT\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${user.token}`,\n },\n body: JSON.stringify({\n user: user,\n }),\n });\n\n const content = await rawResponse.json();\n if (content.success) {\n const userData = { ...content.user, token: user.token };\n setUser(userData);\n localStorage.setItem(\"q-state\", JSON.stringify(userData));\n } else {\n console.error(content.message);\n }\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n };\n\n const getAllOrganizationalEntities = useCallback(async () => {\n const result = await getOrganizationalEntities();\n\n if (result.success) {\n setOrganizationalEntities(result.organizationalEntities);\n setLoadedEntities(true);\n\n const currentEntity =\n result.organizationalEntities.find((entity) => entity.is_top_level) ||\n \"no-top-level\";\n\n const localEntity = localStorage.getItem(\"entityState\");\n const selectedLocal = localEntity ? JSON.parse(localEntity) : null;\n\n if (selectedLocal) {\n const updatedEntity = result.organizationalEntities.find(\n (e) => e.id === selectedLocal.id\n );\n setSelectedEntity(updatedEntity);\n localStorage.setItem(\"entityState\", JSON.stringify(updatedEntity));\n } else {\n if (currentEntity === \"no-top-level\") {\n localStorage.setItem(\"entityState\", JSON.stringify(null));\n setSelectedEntity(null);\n } else if (currentEntity) {\n setSelectedEntity(currentEntity);\n localStorage.setItem(\"entityState\", JSON.stringify(currentEntity));\n }\n }\n }\n\n return result;\n }, []);\n\n const getCompany = useCallback(\n async (token: string): Promise => {\n try {\n const companyResponse = await fetch(`/api/company`, {\n method: \"GET\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n\n if (companyResponse.status === 401) {\n logout();\n }\n\n const content = await companyResponse.json();\n\n if (content.success) {\n setCompany({\n ...content.company,\n });\n }\n\n const authToken = JSON.parse(\n localStorage.getItem(\"q-state\") || \"{}\"\n )?.token;\n\n if (authToken && content.company && !loadedEntities) {\n await getAllOrganizationalEntities();\n }\n\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n },\n [getAllOrganizationalEntities, logout, loadedEntities]\n );\n\n const updateCompany = async (company: APIRequestUpdateCompanyT) => {\n try {\n const content = await apiUpdateCompany(company);\n if (content.success && user?.token) {\n await getCompany(user.token);\n } else {\n console.error(content.message);\n }\n\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n };\n\n const login = async (\n email: string,\n password: string,\n token?: string,\n invoiceId?: number | null,\n username?: string,\n otpValue?: string,\n session?: string\n ): Promise => {\n try {\n let content: APIResponse & {\n session?: string;\n username?: string;\n token?: string;\n };\n\n if (username && otpValue && session) {\n const rawResponse = await fetch(`/api/auth/admin/verifymfaCode`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ username, otpValue, session }),\n });\n content = await rawResponse.json();\n } else {\n const rawResponse = await fetch(`/api/auth/login`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ email, password, token, invoiceId }),\n });\n\n content = await rawResponse.json();\n }\n\n // For first login attempt with MFA\n if (content.session && content.username) {\n return content;\n }\n\n // No session means authenticated successfully\n if (content.success && content.token) {\n const [companyResponse, userResponse] = await Promise.all([\n getCompany(content.token),\n getUser(content.token),\n ]);\n\n if (userResponse?.user && companyResponse?.company) {\n StateManager.set({\n email_verified: userResponse?.user?.verified,\n expected_activity: companyResponse?.company?.expected_activity,\n onboarded: !!companyResponse?.company?.OnboardingStatus?.onboarded,\n setup: !!companyResponse?.company?.address_line_1,\n token: content.token,\n });\n\n identifyUser({\n user: userResponse.user,\n company: companyResponse?.company,\n });\n }\n\n if (!companyResponse?.company?.OnboardingStatus?.onboarded) {\n if (!companyResponse?.company?.address_line_1) {\n console.log(\"pushing to onboarding from login api call\");\n router.push(\"/onboarding\");\n } else {\n console.log(\"pushing to setup from login api call\");\n router.push(\"/setup\");\n }\n } else if (companyResponse?.company?.expected_activity === \"buyer\") {\n router.push(\n searchParams?.get(\"redirect\")\n ? (searchParams.get(\"redirect\") as string)\n : \"/bills\"\n );\n } else {\n router.push(\n searchParams?.get(\"redirect\")\n ? (searchParams.get(\"redirect\") as string)\n : \"/invoices\"\n );\n }\n } else {\n console.error(content.message);\n }\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n };\n\n const signup = async (\n signupData: APIRequestSignupT\n ): Promise => {\n try {\n const rawResponse = await fetch(`/api/auth/signup`, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(signupData),\n });\n\n const content = await rawResponse.json();\n\n if (content.success) {\n const [companyResponse, userResponse] = await Promise.all([\n getCompany(content.token),\n getUser(content.token),\n ]);\n\n if (userResponse?.user && companyResponse?.company) {\n StateManager.set({\n email_verified: userResponse?.user?.verified,\n expected_activity: companyResponse?.company?.expected_activity,\n onboarded: !!companyResponse?.company?.OnboardingStatus?.onboarded,\n setup: !!companyResponse?.company?.address_line_1,\n token: content.token,\n });\n\n identifyUser({\n user: userResponse.user,\n company: companyResponse?.company,\n });\n }\n } else {\n console.error(content.message);\n }\n\n return content;\n } catch (error) {\n console.error(error);\n return { success: false, message: \"Something went wrong\" };\n }\n };\n\n const refreshState = useCallback(async () => {\n console.log(\"Refreshing state\");\n const existingUser = JSON.parse(localStorage.getItem(\"q-state\") || \"{}\");\n const existingEntityState = JSON.parse(\n localStorage.getItem(\"entityState\") || \"{}\"\n );\n\n if (existingEntityState?.id) {\n setSelectedEntity(existingEntityState);\n }\n\n if (existingUser && existingUser.id) {\n console.log(\"Rehydrating...\");\n const userResponse = await getUser(existingUser.token);\n\n const companyResponse = await getCompany(existingUser.token);\n\n if (userResponse?.user && companyResponse?.company) {\n identifyUser({\n user: userResponse.user,\n company: companyResponse?.company,\n });\n }\n }\n }, [getCompany, getUser]);\n\n useEffect(() => {\n if (pathname !== \"/logout\") {\n refreshState();\n }\n }, [refreshState, pathname]);\n\n const value = {\n // User:\n user,\n getUser,\n updateUser,\n company,\n getCompany,\n updateCompany,\n\n // Entites:\n getAllOrganizationalEntities,\n organizationalEntities,\n selectedEntity,\n setSelectedEntity,\n loadedEntities,\n\n // Auth:\n login,\n logout,\n signup,\n };\n\n return {children};\n};\n\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error(\n \"useAuthContext must be used within an AuthContextProvider.\"\n );\n }\n return context;\n};\n"],"names":["searchCompany","props","query","fetchWithAuth","concat","method","getInviteDetails","token","rawResponse","fetch","headers","Accept","json","error","console","success","message","createShareholder","shareholder","body","JSON","stringify","deleteShareholder","shareholder_id","updateShareholder","id","getShareholders","updateCompany","company","getCompany","getCompanyMetrics","type","forceCompanySync","param","entityId","queryString","manualEPProcess","assetIds","getLatestBatch","getCompanyTeammates","getCompanySubscriptions","email","companyId","updateCompanySubscriptions","subscriptions","getCompanyVendors","getCompanyCustomers","page","limit","payers","newURL","getERPTaxRates","sendCompanyApprovalReq","getCompanyActivity","deleteCompanyTeammate","teammateId","inviteTeammate","senderName","senderEmail","firstName","lastName","role","isAuthorizedSignatory","content","first_name","last_name","window","Intercom","invitedEmail","version","process","updateTeammate","phone","avatar_url","userId","enabled","roles","user","getActionableBillsCount","acceptEarlyPaymentAgreement","getERPVendors","params","queryParams","URLSearchParams","search","append","selectedIds","length","join","toString","syncReleaseFundsEntries","syncRepaymentEntries","getERPConnectionStatus","getERPSupplierCredits","billIds","getERPFinancialAccounts","getERPChartOfAccounts","section","deleteConnection","getOrganizationalEntities","createOAuthAccumaticaConnection","code","connection_id","updateOrganizationalEntity","payload","updateEntityConfiguration","createManualERPConnection","manualConnectionPayload","identifyUser","userData","posthog","identify","formatUserProperties","formatCompanyProperties","FullStory","displayName","full_name","Object","entries","reduce","acc","key","value","AuthContext","createContext","AuthProvider","children","router","useRouter","searchParams","useSearchParams","pathname","usePathname","setUser","useState","setCompany","organizationalEntities","setOrganizationalEntities","loadedEntities","setLoadedEntities","selectedEntity","setSelectedEntity","undefined","logout","useCallback","log","logoutAction","setSentryUser","reset","StateManager","clear","localStorage","removeItem","push","getUser","Authorization","status","setItem","api_base","app_id","name","user_id","user_hash","intercom_hash","Company","website","industry","created_at","user_type","expected_activity","username","company_name","updateUser","getAllOrganizationalEntities","result","currentEntity","find","entity","is_top_level","localEntity","getItem","selectedLocal","parse","updatedEntity","e","companyResponse","authToken","apiUpdateCompany","login","password","invoiceId","otpValue","session","userResponse","Promise","all","set","email_verified","verified","onboarded","OnboardingStatus","setup","address_line_1","get","signup","signupData","refreshState","existingUser","existingEntityState","useEffect","jsx_runtime","jsx","Provider","useAuth","context","useContext"],"sourceRoot":""}