woodsportal-client-sdk 4.0.7-dev.5 → 4.0.7-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/adapters/angular/index.js +5 -5
  2. package/dist/adapters/react/index.js +5 -5
  3. package/dist/adapters/vue/index.js +5 -5
  4. package/dist/auth-utils-TBV525GT.js +5 -0
  5. package/dist/{auth-utils-DM4YHWIH.js.map → auth-utils-TBV525GT.js.map} +1 -1
  6. package/dist/{chunk-CJZF3RTE.js → chunk-2MVPOZLC.js} +6 -6
  7. package/dist/{chunk-CJZF3RTE.js.map → chunk-2MVPOZLC.js.map} +1 -1
  8. package/dist/{chunk-WDCNNYEH.js → chunk-2WEYX3MP.js} +4 -4
  9. package/dist/{chunk-WDCNNYEH.js.map → chunk-2WEYX3MP.js.map} +1 -1
  10. package/dist/{chunk-FZYOTYDA.js → chunk-AHRXDJPS.js} +8 -93
  11. package/dist/chunk-AHRXDJPS.js.map +1 -0
  12. package/dist/{chunk-AL3JKMCX.js → chunk-CCAQQMPV.js} +3 -3
  13. package/dist/{chunk-AL3JKMCX.js.map → chunk-CCAQQMPV.js.map} +1 -1
  14. package/dist/{chunk-6IGCVIVV.js → chunk-CN4SBWOW.js} +5 -5
  15. package/dist/{chunk-6IGCVIVV.js.map → chunk-CN4SBWOW.js.map} +1 -1
  16. package/dist/{chunk-KYZRYIB3.js → chunk-DO3WO2RP.js} +112 -5
  17. package/dist/chunk-DO3WO2RP.js.map +1 -0
  18. package/dist/{chunk-2EFT76XX.js → chunk-G6DE4XWP.js} +7 -7
  19. package/dist/{chunk-2EFT76XX.js.map → chunk-G6DE4XWP.js.map} +1 -1
  20. package/dist/{chunk-2SZ2WQGG.js → chunk-IBLDCOQU.js} +6 -5
  21. package/dist/chunk-IBLDCOQU.js.map +1 -0
  22. package/dist/{chunk-XANZNL46.js → chunk-NXGSFLJS.js} +6 -3
  23. package/dist/chunk-NXGSFLJS.js.map +1 -0
  24. package/dist/cross-tab-session-ORPEUNVO.js +9 -0
  25. package/dist/{cross-tab-session-NJCGCGJM.js.map → cross-tab-session-ORPEUNVO.js.map} +1 -1
  26. package/dist/entries/auth.d.ts +2 -2
  27. package/dist/entries/auth.js +6 -6
  28. package/dist/entries/auth.js.map +1 -1
  29. package/dist/entries/crm.js +8 -8
  30. package/dist/{http-errors-OKY0E5C5.d.ts → http-errors-CCCQECil.d.ts} +2 -1
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.js +13 -13
  33. package/dist/index.js.map +1 -1
  34. package/dist/storage-migration-GGAKD4Q3.js +4 -0
  35. package/dist/{storage-migration-TFF6IQTD.js.map → storage-migration-GGAKD4Q3.js.map} +1 -1
  36. package/package.json +1 -1
  37. package/dist/auth-utils-DM4YHWIH.js +0 -5
  38. package/dist/chunk-2SZ2WQGG.js.map +0 -1
  39. package/dist/chunk-FZYOTYDA.js.map +0 -1
  40. package/dist/chunk-KYZRYIB3.js.map +0 -1
  41. package/dist/chunk-XANZNL46.js.map +0 -1
  42. package/dist/cross-tab-session-NJCGCGJM.js +0 -9
  43. package/dist/storage-migration-TFF6IQTD.js +0 -4
@@ -1,5 +1,5 @@
1
- import { getProfile, logger, setProfileDetails } from './chunk-KYZRYIB3.js';
2
- import { getStorageKeys, getCookie } from './chunk-XANZNL46.js';
1
+ import { getProfile, logger, setProfileDetails } from './chunk-DO3WO2RP.js';
2
+ import { getStorageKeys, getCookie } from './chunk-NXGSFLJS.js';
3
3
  import pako from 'pako';
4
4
  import { Base64 } from 'js-base64';
5
5
 
@@ -1133,7 +1133,8 @@ var actions4 = {
1133
1133
  const state = noteStore.getState();
1134
1134
  let rows = [];
1135
1135
  if (response === "loading") {
1136
- const row = await state.notes?.data?.results?.columns.reduce((acc, item) => {
1136
+ const columns = state.notes?.data?.results?.columns ?? [];
1137
+ const row = columns.length === 0 ? { note_body: "loading" } : columns.reduce((acc, item) => {
1137
1138
  if (!item.hidden) {
1138
1139
  acc[item.key] = "loading";
1139
1140
  }
@@ -1625,5 +1626,5 @@ var resetAllStore = () => {
1625
1626
  };
1626
1627
 
1627
1628
  export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, actions, actions2, actions3, actions4, actions5, actions6, actions7, actions8, breadcrumbStage, createStore, decodeToBase64, emailStore, fileStore, formStore, generatePath, generateUrl, getParam, getParamDetails, getPath, getRouteDetails, getRouteMenu, isMessingParent, isMessingParentLastItem, isPipelineBoardObjectTypeId, noteStore, resetAllStore, syncStore, tableStore, tableUiActions, tableUiStore, ticketHubspotObjectTypeId, updateLink, uploaderStore, userStore };
1628
- //# sourceMappingURL=chunk-2SZ2WQGG.js.map
1629
- //# sourceMappingURL=chunk-2SZ2WQGG.js.map
1629
+ //# sourceMappingURL=chunk-IBLDCOQU.js.map
1630
+ //# sourceMappingURL=chunk-IBLDCOQU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/state/crm/store.ts","../src/main/state/crm/table-ui.ts","../src/main/core/constants/hubspot-object-type-ids.ts","../src/main/core/utils/getCookieData.ts","../src/main/core/utils/compress.ts","../src/main/features/navigation/url-utils.ts","../src/main/features/navigation/key-map.ts","../src/main/features/navigation/param.ts","../src/main/core/utils/url.ts","../src/main/core/utils/param.ts","../src/main/features/navigation/url.ts","../src/main/state/crm/table-ui-actions.ts","../src/main/state/crm/use-form.ts","../src/main/state/crm/use-table.ts","../src/main/state/crm/use-uploader.ts","../src/main/state/crm/use-note.ts","../src/main/state/crm/use-email.ts","../src/main/state/crm/use-user.ts","../src/main/state/crm/folder-tree.ts","../src/main/state/crm/use-file.ts","../src/main/state/crm/use-sync.ts"],"names":["keyMap","updateLink","getDeep","actions","id","children","updatedTree"],"mappings":"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","file":"chunk-IBLDCOQU.js","sourcesContent":["type Listener<T> = (state: T) => void\n\nexport function createStore<T>(initialState: T) {\n let state = initialState\n\n const listeners = new Set<Listener<T>>()\n\n return {\n getState() {\n return state\n },\n\n setState(partial: Partial<T>) {\n state = {\n ...state,\n ...partial\n }\n\n listeners.forEach((listener) => listener(state))\n },\n\n subscribe(listener: Listener<T>) {\n listeners.add(listener)\n\n return () => listeners.delete(listener)\n }\n }\n}\n","import { createStore } from './store'\n\nexport interface TableUiState {\n tableUniqueId: string | null\n gridData: any[]\n sort: string\n limit: number\n after: string\n page: number | string\n nextPage: number | string\n stageId: string | number\n totalItems: number\n numOfPages: number\n currentPage: number\n search: string\n filterPropertyName: string\n filterOperator: string\n filterValue: string\n isPrimaryCompany: boolean | null\n view: string | null\n selectedPipeline: string\n tableParam: Record<string, unknown>\n tableDefPermissions: Record<string, unknown>\n}\n\nexport const tableUiStore = createStore<TableUiState>({\n tableUniqueId: null,\n gridData: [],\n sort: '-hs_createdate',\n limit: 10,\n after: '',\n page: 1,\n nextPage: 1,\n stageId: '',\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: '',\n filterPropertyName: 'hs_pipeline',\n filterOperator: 'eq',\n filterValue: '',\n isPrimaryCompany: null,\n view: null,\n selectedPipeline: '',\n tableParam: {},\n tableDefPermissions: {}\n})\n","/**\n * HubSpot object type IDs aligned with woodsportal-api HubUtils and admin-frontend constants.\n */\nexport const HUBSPOT_DEALS_OBJECT_TYPE_ID = '0-3'\nexport const HUBSPOT_TICKETS_OBJECT_TYPE_ID = '0-5'\n\n/** Managed objects that require pipeline on create (appointments, services, projects, listings, courses). */\nexport const PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS = [\n '0-421', // appointments\n '0-162', // services\n '0-970', // projects\n '0-420', // listings\n '0-410' // courses\n] as const\n\n/** Objects with deals/tickets-style pipeline list UX (hide single-pipeline dropdown, board view). */\nexport const PIPELINE_BOARD_OBJECT_TYPE_IDS = [\n HUBSPOT_DEALS_OBJECT_TYPE_ID,\n HUBSPOT_TICKETS_OBJECT_TYPE_ID,\n ...PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS\n] as const\n\nconst pipelineBoardObjectTypeIds = new Set<string>(PIPELINE_BOARD_OBJECT_TYPE_IDS)\n\nexport function isPipelineBoardObjectTypeId(objectTypeId: string | undefined | null): boolean {\n if (!objectTypeId) {\n return false\n }\n return pipelineBoardObjectTypeIds.has(objectTypeId.trim())\n}\n","import { getCookie } from './cookie'\nimport { getStorageKeys } from './storage-keys'\n\nexport const getAuthSubscriptionType = () => {\n const keys = getStorageKeys()\n return getCookie(keys.subscriptionType) ?? getCookie('subscriptionType') ?? getCookie('woodsportal_subscription')\n}\n","import pako from 'pako'\nimport { Base64 } from 'js-base64'\nimport { logger } from '../logging/logger'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return ''\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n logger.error('compress', error, { operation: 'encode' })\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n logger.error('compress', error, { operation: 'decode' })\n return null\n }\n}\n","import { convertToBase64 } from '../../core/utils/compress'\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap))\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce(\n (acc, [key, value]) => {\n const mappedKey = keyMap[key] || key // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap) // recurse into nested\n return acc\n },\n {} as Record<string, any>\n )\n }\n return obj\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return lastItem?.o_r_id && !lastItem2?.o_r_id && lastItem2?.o_t_id && lastItem3?.o_r_id ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return !lastItem?.o_t_id && lastItem2?.o_r_id && lastItem2?.o_t_id ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) => (item.pt || item.o_t_id) && !item.o_r_id).length\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n const pathBase = breadcrumb?.pt || `/${breadcrumb?.o_t_id}`\n const normalizedPath = pathBase.startsWith('/') ? pathBase : `/${pathBase}`\n\n return {\n name: breadcrumb?.n,\n path: `${normalizedPath}?b=${bc}`\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) {\n // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`\n }\n }\n }\n}\n","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id'\n}\n","import { getTotalParentLength, mapKeysDeep } from './url-utils'\nimport { decodeToBase64 } from '../../core/utils/compress'\nimport { keyMap } from './key-map'\nimport { getParam } from '../../core/utils/param'\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || []\n return apiRoutes.find((menu: any) => menu?.path === path)\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam('b')\n\n const breadcrumbs = decodeToBase64(search) || []\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null\n\n return { routeDetails: mapped }\n}\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam('b')\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) {\n // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && 'prm' in lastItem) {\n // if details page then dont need prm key\n delete lastItem.prm\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association' || props?.type === 'sidebarAssociation') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n\n if (lastItem?.o_t_id && lastItem?.o_r_id) {\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n } else if (lastItem2?.o_t_id && lastItem2?.o_r_id) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n }\n }\n const paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) {\n // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value\n ])\n )\n\n let queryString = null\n\n if (props?.type === 'association' || props?.type === 'sidebarAssociation') {\n // if association association then don't need mappedLastItemParam\n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject\n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n const params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { getParamDetails } from '../../features/navigation/param'\n\nexport const getUrlPathName = (): string | undefined => {\n if (\n typeof globalThis === 'undefined' ||\n typeof (globalThis as any).location !== 'object' ||\n typeof (globalThis as any).location.href !== 'string'\n ) {\n return undefined\n }\n const location = (globalThis as { location?: { href?: string } }).location\n if (!location || typeof location.href !== 'string') {\n return undefined\n }\n const url = new URL(location.href)\n const id = url.pathname.split('/')[1]\n return id\n}\n\nexport const ticketHubspotObjectTypeId = (): string | undefined => {\n const paramDetails = getParamDetails()\n\n if (\n // this hubspotObjectTypeId only for main contact ticket object type\n paramDetails?.breadcrumbs?.length === 2 &&\n paramDetails?.breadcrumbs[0]?.pt === '/0-5'\n ) {\n return '0-1'\n }\n\n if (\n // this hubspotObjectTypeId only for main company ticket object type\n paramDetails?.breadcrumbs?.length === 2 &&\n paramDetails?.breadcrumbs[0]?.pt === '/0-5-c'\n ) {\n return '0-2'\n }\n\n return ''\n}\n","import { getUrlPathName } from './url'\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null\n\n const hash: string = (globalThis as any).location.hash || ''\n if (!hash.startsWith('#/')) return null\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash\n\n const queryString = hashWithoutHash.split('?')[1]\n if (!queryString) return null\n\n const params = new URLSearchParams(queryString)\n return params.get(paramName)\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null\n\n const hash: string = (globalThis as any).location.hash || ''\n if (!hash.startsWith('#/')) return null\n\n return hash\n .slice(1) // remove \"#\"\n .split('?')[0] // remove query params\n}\n\nexport const generateParam = <T extends object>(payload?: any): any => {\n const urlPathName = getUrlPathName()\n\n return {\n ...(payload ?? ({} as T)),\n hubspotObjectTypeId: payload?.hubspotObjectTypeId ?? urlPathName\n }\n}\n\nexport const getHubId = <T extends object>(payload?: any): any => {\n const urlPathName = getUrlPathName()\n\n return {\n ...(payload ?? ({} as T)),\n hubspotObjectTypeId: payload?.hubspotObjectTypeId ?? urlPathName\n }\n}\n","import { convertToBase64, decodeToBase64 } from '../../core/utils/compress'\nimport { getParam, getPath } from '../../core/utils/param'\nimport { keyMap } from './key-map'\nimport { getRouteMenu } from './param'\n\nexport const updateLink = () => {\n const updateLink = async (props: any, displayName: string = 'prm') => {\n const search: any = getParam('b')\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname)\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path\n }\n ]\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1]\n\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = (await getDeep(lastBreadcrumb, displayName)) || {}\n\n await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props\n })\n } else {\n await Object.assign(lastBreadcrumb, props)\n }\n const newBase64 = convertToBase64(breadcrumbs)\n updateBParam(newBase64)\n }\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split('.')\n let curr = obj\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== 'object') {\n curr[keys[i]] = {}\n }\n curr = curr[keys[i]]\n }\n curr[keys[keys.length - 1]] = value\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split('.').reduce((acc, key) => acc?.[key], obj)\n }\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = 'prm') => {\n // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam('b')\n\n const breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) return null\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split('.').reduce((acc, key) => acc?.[key], obj)\n }\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value\n ])\n )\n }\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null\n\n const output = nestedValue ? expandKeys(nestedValue) : null\n\n return output\n }\n\n const filterParams = (displayName: string = 'prm') => {\n // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam('b')\n\n const breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) return null\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split('.').reduce((acc, key) => acc?.[key], obj)\n }\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value\n ])\n )\n }\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem)\n\n return output\n }\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return\n\n const hash: string = (globalThis as any).location.hash || ''\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith('#/')) return\n\n const withoutHash = hash.slice(2) // remove \"#/\"\n const [path, queryString] = withoutHash.split('?')\n\n const params = new URLSearchParams(queryString || '')\n params.set('b', newValue) // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`\n\n // ✅ same as router.navigate({ replace: true })\n // Use pathname + search + hash so replaceState resolves consistently (Windows dev servers).\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n const location = (globalThis as any).location\n const base = `${location?.pathname ?? ''}${location?.search ?? ''}`\n ;(globalThis as any).history.replaceState(null, '', `${base}${newHash}`)\n }\n}\n","import { isPipelineBoardObjectTypeId } from '../../core/constants/hubspot-object-type-ids'\nimport { getAuthSubscriptionType } from '../../core/utils/getCookieData'\n\nimport { updateLink as createUpdateLink } from '../../features/navigation/url'\n\nimport { tableUiStore } from './table-ui'\n\nconst STANDARD_CRM_OBJECT_TYPE_IDS = ['0-1', '0-2', '0-3', '0-4', '0-5', 'home'] as const\n\n/** Default list page size — align with client `VITE_TABLE_PAGE_LIMIT` (25). */\nconst pageLimit = 25\n\nconst boardPaginationDefaults = {\n stageId: '' as const,\n\n nextPage: 1 as const\n}\n\nexport const tableUiActions = {\n setTableUniqueId(v: string | null) {\n tableUiStore.setState({ tableUniqueId: v })\n },\n\n setSort(v: string) {\n tableUiStore.setState({ sort: v })\n },\n\n setLimit(v: number) {\n tableUiStore.setState({ limit: v })\n },\n\n setAfter(v: string) {\n tableUiStore.setState({ after: v })\n },\n\n setPage(v: number | string) {\n tableUiStore.setState({ page: v })\n },\n\n setNextPage(v: number | string) {\n tableUiStore.setState({ nextPage: v })\n },\n\n setStageId(v: number | string) {\n tableUiStore.setState({ stageId: v })\n },\n\n setTotalItems(v: number) {\n tableUiStore.setState({ totalItems: v })\n },\n\n setNumOfPages(v: number) {\n tableUiStore.setState({ numOfPages: v })\n },\n\n setCurrentPage(v: number) {\n tableUiStore.setState({ currentPage: v })\n },\n\n setSearch(v: string) {\n tableUiStore.setState({ search: v })\n },\n\n setFilterPropertyName(v: string) {\n tableUiStore.setState({ filterPropertyName: v })\n },\n\n setFilterOperator(v: string) {\n tableUiStore.setState({ filterOperator: v })\n },\n\n setFilterValue(v: string) {\n tableUiStore.setState({ filterValue: v })\n },\n\n setIsPrimaryCompany(v: boolean | null) {\n tableUiStore.setState({ isPrimaryCompany: v })\n },\n\n setTableFilterData(v: Record<string, unknown>) {\n tableUiStore.setState({ tableParam: v })\n },\n\n setTableDefPermissions(v: Record<string, unknown>) {\n tableUiStore.setState({ tableDefPermissions: v })\n },\n\n setView(mView: string | null) {\n tableUiStore.setState({\n page: getAuthSubscriptionType() === 'FREE' ? '' : 1,\n\n view: mView,\n\n ...boardPaginationDefaults\n })\n },\n\n changePipeline(mView: string | null) {\n tableUiStore.setState({\n page: getAuthSubscriptionType() === 'FREE' ? '' : 1,\n\n selectedPipeline: mView || ''\n })\n },\n\n setSelectedPipeline(pipelines: any[], pipeLineId?: string) {\n let filterValue = ''\n\n if (pipeLineId) {\n const pipelineSingle = pipelines.find((pipeline) => pipeline.pipelineId === pipeLineId)\n\n filterValue = pipelineSingle?.pipelineId || ''\n }\n\n tableUiStore.setState({\n filterPropertyName: 'hs_pipeline',\n\n filterOperator: 'eq',\n\n filterValue,\n\n selectedPipeline: filterValue\n })\n },\n\n resetTableParam() {\n tableUiStore.setState({\n sort: '-hs_createdate',\n\n limit: pageLimit,\n\n after: '',\n\n page: getAuthSubscriptionType() === 'FREE' ? '' : 1,\n\n totalItems: 1,\n\n numOfPages: 1,\n\n currentPage: 1,\n\n search: '',\n\n filterPropertyName: 'hs_pipeline',\n\n filterOperator: 'eq',\n\n filterValue: '',\n\n isPrimaryCompany: null,\n\n selectedPipeline: ''\n })\n },\n\n getTableParam(companyAsMediator?: boolean, currentPageOverride?: number) {\n const state = tableUiStore.getState()\n\n const baseParams: Record<string, unknown> = {\n sort: state.sort,\n\n search: state.search,\n\n filterPropertyName: state.filterPropertyName,\n\n filterOperator: state.filterOperator,\n\n filterValue: state.selectedPipeline,\n\n cache: true,\n\n isPrimaryCompany: companyAsMediator || false,\n\n view: state.view\n }\n\n if (getAuthSubscriptionType() === 'FREE') {\n return {\n ...baseParams,\n\n after: state.page\n }\n }\n\n return {\n ...baseParams,\n\n limit: state.limit,\n\n page: currentPageOverride ?? state.page,\n\n ...(state.after ? { after: state.after } : {})\n }\n },\n\n buildListTableParams(options?: { companyAsMediator?: boolean; currentPageOverride?: number }) {\n return tableUiActions.getTableParam(options?.companyAsMediator, options?.currentPageOverride)\n },\n\n async setGridData(type: string, deals: any[]) {\n if (type === 'reset') {\n tableUiStore.setState({ gridData: [] })\n\n return []\n }\n\n if (type === 'directly') {\n tableUiStore.setState({ gridData: deals })\n\n return deals\n }\n\n const finalData = deals.map((deal) => {\n const cards =\n deal?.data?.results?.rows?.map((row: any) => ({\n id: row?.hs_object_id,\n\n ...row,\n\n hubspotObjectTypeId: type === 'deals' ? '0-3' : '0-5'\n })) || []\n\n return {\n id: deal.id,\n\n name: deal.label,\n\n count: deal?.data?.total,\n\n ...deal,\n\n cards\n }\n })\n\n tableUiStore.setState({ gridData: finalData })\n\n return finalData\n },\n\n setDefaultPipeline(data: any, hubspotObjectTypeId: string) {\n if (!data) {\n tableUiStore.setState({ selectedPipeline: '' })\n\n return ''\n }\n\n const { updateLink, filterParams } = createUpdateLink()\n\n const params = filterParams()\n\n const usesStandardCrmPipelineDefaults = STANDARD_CRM_OBJECT_TYPE_IDS.includes(\n hubspotObjectTypeId as (typeof STANDARD_CRM_OBJECT_TYPE_IDS)[number]\n )\n const usesBoardPipelineUx = isPipelineBoardObjectTypeId(hubspotObjectTypeId)\n\n const state = tableUiStore.getState()\n\n const view = state.view\n\n const selectedPipeline = state.selectedPipeline\n\n let defaultPipelineId = ''\n\n let mFilterValue: any = ''\n\n const defaultPipeline = data?.data?.[0]\n\n if (usesStandardCrmPipelineDefaults || usesBoardPipelineUx) {\n defaultPipelineId = defaultPipeline?.pipelineId || ''\n }\n\n if (params && params?.filterPropertyName === 'hs_pipeline' && params?.filterValue) {\n mFilterValue = params.filterValue\n } else if (view === 'BOARD' && !selectedPipeline) {\n mFilterValue = defaultPipelineId\n\n updateLink({ fV: defaultPipelineId })\n } else if (!usesStandardCrmPipelineDefaults && !usesBoardPipelineUx) {\n mFilterValue = selectedPipeline || null\n } else {\n mFilterValue = data.data.length === 1 ? defaultPipelineId : selectedPipeline\n }\n\n tableUiStore.setState({ selectedPipeline: mFilterValue })\n\n return mFilterValue\n }\n}\n","import { createStore } from './store'\n\nexport interface FormState {\n form: any\n}\n\nexport const formStore = createStore<FormState>({\n form: null\n})\n\nexport const actions = {\n setFormData(response: any) {\n formStore.setState({\n form: response\n })\n },\n\n clearFormData() {\n formStore.setState({\n form: null\n })\n }\n}\n","import { createStore } from './store'\nimport { formStore } from './use-form'\nimport { tableUiStore } from './table-ui'\nexport interface TableState {\n /** Last object.list GET query; used as CachePurgeListQuery on object create/update purge. */\n queryParams: any\n /** Last object.sideBarList GET query per hubspotObjectTypeId (sidebarTable purge). */\n multiObjectsQueryParams: Record<string, any>\n objectsData: any\n tableData: any\n tablePrependData: any[]\n hubspotObjectTypeId: string\n selectedPipeline: string\n viewType: string\n}\n\nexport const tableStore = createStore<TableState>({\n queryParams: null,\n multiObjectsQueryParams: {},\n objectsData: null,\n tableData: [],\n tablePrependData: [],\n hubspotObjectTypeId: '',\n selectedPipeline: '',\n viewType: ''\n})\n\n/** BOARD list uses an array of stages; stage pagination returns LIST-shaped `{ rows, columns }`. */\nfunction getBoardStagesFromState(state: Pick<TableState, 'tableData' | 'objectsData'>): any[] {\n const fromTable = state.tableData?.data?.results\n if (Array.isArray(fromTable)) {\n return fromTable\n }\n\n const fromObjects = state.objectsData?.data?.results\n if (Array.isArray(fromObjects)) {\n return fromObjects\n }\n\n return []\n}\n\nfunction isBoardStagePageResponse(response: any): boolean {\n const results = response?.data?.results\n return response?.info?.viewType === 'BOARD' && results != null && !Array.isArray(results)\n}\n\nfunction resolveRecordIdFromResponseData(data: any): string | undefined {\n if (!data) {\n return undefined\n }\n\n const id = data.id ?? data.hs_object_id?.value ?? data.hs_object_id\n return id != null && id !== '' ? String(id) : undefined\n}\n\nfunction mapResponseFieldsToRowValues(data: Record<string, any>): Record<string, any> {\n return Object.fromEntries(Object.entries(data).map(([key, value]: [string, any]) => [key, value?.value ?? value]))\n}\n\nfunction matchRowId(row: any, recordId: string): boolean {\n const rowId = row?.id ?? row?.hs_object_id\n return rowId != null && String(rowId) === recordId\n}\n\nfunction matchHsObjectId(row: any, recordId: string): boolean {\n return row?.hs_object_id != null && String(row.hs_object_id) === recordId\n}\n\nfunction mergeRowWithResponseData(row: any, data: Record<string, any>): any {\n return { ...row, ...mapResponseFieldsToRowValues(data) }\n}\n\nfunction patchListRows(\n rows: any[],\n data: Record<string, any>,\n recordId: string,\n matchRow: (row: any, recordId: string) => boolean = matchRowId\n): any[] {\n return rows.map((row) => (matchRow(row, recordId) ? mergeRowWithResponseData(row, data) : row))\n}\n\nfunction patchBoardStages(\n stages: any[],\n data: Record<string, any>,\n recordId: string,\n matchRow: (row: any, recordId: string) => boolean = matchRowId\n): any[] {\n return stages.map((stage) => ({\n ...stage,\n data: {\n ...stage.data,\n results: {\n ...stage.data?.results,\n rows: patchListRows(stage.data?.results?.rows ?? [], data, recordId, matchRow)\n }\n }\n }))\n}\n\nfunction resolveRecordId(payload: any, data: any): string | undefined {\n const payloadId = payload?.params?.id\n if (payloadId != null && payloadId !== '') {\n return String(payloadId)\n }\n\n return resolveRecordIdFromResponseData(data)\n}\n\nexport const actions = {\n /** Called from Client.object.list — feeds purgeCrmListCacheAfterCrmWrite / purgeCrmDetailAndListAfterCrmWrite. */\n setObjectsQueryParams(params: any) {\n tableStore.setState({\n queryParams: params\n })\n },\n\n /** Called from Client.object.sideBarList — feeds post-write list purge for sidebarTable writes. */\n setMultiObjectsQueryParams(hubspotObjectTypeId: string, params: any) {\n if (!hubspotObjectTypeId) {\n return\n }\n const state = tableStore.getState()\n tableStore.setState({\n multiObjectsQueryParams: {\n ...state.multiObjectsQueryParams,\n [String(hubspotObjectTypeId)]: params\n }\n })\n },\n\n async setObjectsData(response: any, context?: { stageId?: string | number }) {\n const state = tableStore.getState()\n\n if (response?.info?.viewType == 'LIST') {\n tableStore.setState({\n objectsData: response\n })\n }\n\n if (response?.info?.viewType == 'BOARD') {\n const storeStageId = tableUiStore.getState().stageId\n const stageId = storeStageId !== undefined && storeStageId !== null && storeStageId !== '' ? storeStageId : context?.stageId\n if (stageId) {\n const existingResults = state.objectsData?.data?.results\n if (!Array.isArray(existingResults)) {\n tableStore.setState({\n objectsData: response\n })\n return\n }\n\n const boardData = { ...state.objectsData }\n\n const updatedBoardData = await {\n ...boardData,\n data: {\n ...boardData.data,\n results: boardData.data.results.map((item: any) =>\n String(item.id) === String(stageId)\n ? {\n ...item,\n data: {\n ...item.data,\n results: {\n ...item.data.results,\n rows: [\n ...(item?.data?.results?.rows ?? []), // keep existing rows\n ...(response?.data?.results?.rows ?? []) // prepend new rows\n ]\n }\n }\n }\n : item\n )\n }\n }\n\n tableStore.setState({\n objectsData: updatedBoardData\n })\n } else {\n tableStore.setState({\n objectsData: response\n })\n }\n }\n },\n\n setTableData(response: any, payload: any) {\n const state = tableStore.getState()\n const viewType = response?.info?.viewType\n let newTablePrependData\n\n if (viewType === 'BOARD') {\n const stages = Array.isArray(response?.data?.results) ? response.data.results : getBoardStagesFromState(state)\n\n newTablePrependData = state.tablePrependData.map((prependStage: any) => {\n const matchingStage = stages.find((stage: any) => String(stage.id) === String(prependStage.id))\n const rows = matchingStage?.data?.results?.rows ?? []\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== '')\n .map((id: unknown) => String(id))\n )\n\n const filteredRows = (prependStage?.data?.results?.rows ?? []).filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id\n if (itemId == null || itemId === '') return true\n return !rowIds.has(String(itemId))\n })\n\n return {\n ...prependStage,\n data: {\n ...prependStage.data,\n results: {\n ...prependStage.data?.results,\n rows: filteredRows\n }\n }\n }\n })\n } else {\n const rows = response?.data?.results?.rows ?? []\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== '')\n .map((id: unknown) => String(id))\n )\n\n newTablePrependData = state.tablePrependData.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id\n if (itemId == null || itemId === '') return true\n return !rowIds.has(String(itemId))\n })\n }\n\n const hubspotObjectTypeId = payload?.hubspotObjectTypeId\n const selectedPipeline = payload?.selectedPipeline\n\n if (response?.data?.total < 1 || payload?.componentName) {\n // no response data or have component name means (object details ticket) then reset prepend data\n newTablePrependData = []\n }\n\n if (state.viewType && state.viewType != viewType) {\n newTablePrependData = []\n }\n\n if (state.hubspotObjectTypeId && state.hubspotObjectTypeId != hubspotObjectTypeId) {\n newTablePrependData = []\n }\n\n if (state.selectedPipeline && state.selectedPipeline != selectedPipeline) {\n newTablePrependData = []\n }\n\n if (payload.isFristTimeLoadData) {\n newTablePrependData = []\n }\n\n const preserveBoardTableData =\n isBoardStagePageResponse(response) && state.tableData?.info?.viewType === 'BOARD' && Array.isArray(state.tableData?.data?.results)\n\n tableStore.setState({\n tableData: preserveBoardTableData ? state.tableData : response,\n tablePrependData: newTablePrependData || [],\n hubspotObjectTypeId: hubspotObjectTypeId,\n viewType: viewType\n })\n },\n\n modifiedObjectsData(results: any) {\n const state = tableStore.getState()\n const tablePrependData = state.tablePrependData\n\n const modifiedData = results.map((result: any) => {\n // match prepend data by id\n const matchedPrepend = tablePrependData.find((item: any) => String(item?.id) === String(result?.id))\n\n // no match\n if (!matchedPrepend) {\n return result\n }\n\n const prependRows = matchedPrepend?.data?.results?.rows ?? []\n\n // convert prepend rows to cards format\n const prependCards = prependRows.map((row: any) => ({\n id: row.hs_object_id,\n ...row\n }))\n\n return {\n ...result,\n\n // prepend in results.rows\n data: {\n ...result.data,\n results: {\n ...result.data.results,\n rows: [...prependRows, ...(result?.data?.results?.rows ?? [])]\n }\n },\n\n // prepend in cards\n cards: [...prependCards, ...(result?.cards ?? [])]\n }\n })\n\n tableStore.setState({\n objectsData: modifiedData\n })\n },\n\n clearTablePrependData() {\n tableStore.setState({\n tablePrependData: []\n })\n },\n\n async setTablePrependData(response: any, props?: any) {\n const state: any = tableStore.getState()\n const formState: any = formStore.getState()\n\n let rows: any = []\n\n if (state.tableData?.info?.viewType == 'BOARD') {\n if (response === 'loading') {\n // set empty loading columns\n\n const responseData = getBoardStagesFromState(state)\n const pipelineDefaults = formState?.form?.data?.pipelineDefaults\n const stagePropertyName = pipelineDefaults?.stagePropertyName\n const pipelineStage =\n (stagePropertyName && props?.payload?.propertyPayload?.[stagePropertyName]) ||\n props?.payload?.propertyPayload?.hs_pipeline_stage ||\n props?.payload?.propertyPayload?.dealstage ||\n pipelineDefaults?.defaultStage?.id\n\n rows = responseData.map(({ id, data }: any) => {\n // existing rows\n\n // match prepend data\n const matchedPrepend = state.tablePrependData.find((item: any) => String(item.id) === String(id))\n\n // existing prepend rows\n const prependRows = matchedPrepend?.data?.results?.rows ?? []\n\n // create new loading row\n const newRow =\n String(id) === String(pipelineStage)\n ? [\n (data?.results?.columns ?? []).reduce((obj: Record<string, string>, column: any) => {\n obj[column.key] = 'loading'\n return obj\n }, {})\n ]\n : []\n\n return {\n id,\n data: {\n results: {\n columns: data?.results?.columns ?? [],\n\n // prepend loading row + prepend rows\n rows: [...newRow, ...prependRows]\n }\n }\n }\n })\n } else {\n const data = response?.data\n const hs_pipeline_stage = data?.hs_pipeline_stage?.value?.value || data?.dealstage?.value?.value\n\n if (!data) {\n tableStore.setState({\n tablePrependData: []\n })\n }\n\n rows = state?.tablePrependData.map((row: any) => {\n // match prepend data\n const matchedPrepend = state.tablePrependData.find((item: any) => String(item.id) === String(row.id))\n\n // existing prepend rows\n const prependRows = matchedPrepend?.data?.results?.rows ?? []\n\n // match row id with hs_pipeline_stage\n if (String(row.id) === String(hs_pipeline_stage)) {\n // create object from columns\n const updatedRow = (row?.data?.results?.columns ?? []).reduce((obj: any, column: any) => {\n const key = column.key\n\n // set actual data value\n obj[key] = data?.[key]?.value ?? data?.[key] ?? ''\n\n return obj\n }, {})\n\n prependRows[0] = updatedRow // replace loading row\n\n return {\n ...row,\n data: {\n ...row.data,\n results: {\n ...row.data.results,\n rows: prependRows\n }\n }\n }\n }\n\n return row\n })\n }\n } else if (state.tableData?.info?.viewType == 'LIST') {\n if (response === 'loading') {\n // set empty loading columns\n const row = await state.tableData?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = 'loading'\n }\n return acc\n }, {})\n rows = [row, ...state.tablePrependData]\n } else if (response?.data) {\n // set real columns data\n\n const data = response?.data\n if (!data) {\n tableStore.setState({\n tablePrependData: []\n })\n }\n\n const row = await Object.fromEntries(Object.entries(data).map(([key, value]: any) => [key, value?.value ?? value]))\n\n rows = [...state.tablePrependData]\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row\n } else {\n rows.push(row)\n }\n }\n }\n\n tableStore.setState({\n tablePrependData: rows\n })\n },\n\n updateTablePrependData(response: any, payload?: any) {\n const data = response?.data\n const recordId = resolveRecordId(payload, data)\n\n if (!data || !recordId) {\n return response\n }\n\n const state = tableStore.getState()\n const viewType = state.tableData?.info?.viewType ?? state.viewType\n const objectsDataMatcher = payload?.params?.id != null && payload.params.id !== '' ? matchHsObjectId : matchRowId\n\n let tablePrependData = state.tablePrependData\n\n if (viewType === 'BOARD') {\n tablePrependData = patchBoardStages(state.tablePrependData, data, recordId)\n } else {\n tablePrependData = patchListRows(state.tablePrependData, data, recordId)\n }\n\n const stateUpdates: Partial<TableState> = { tablePrependData }\n\n const patchListResponse = (cached: any, matchRow: (row: any, recordId: string) => boolean = matchRowId) => {\n const rows = cached?.data?.results?.rows ?? cached?.results?.rows\n\n if (!rows) {\n return cached\n }\n\n const patchedRows = patchListRows(rows, data, recordId, matchRow)\n\n if (cached?.data?.results?.rows) {\n return {\n ...cached,\n data: {\n ...cached.data,\n results: {\n ...cached.data.results,\n rows: patchedRows\n }\n }\n }\n }\n\n return {\n ...cached,\n results: {\n ...cached.results,\n rows: patchedRows\n }\n }\n }\n\n const patchBoardResponse = (cached: any, matchRow: (row: any, recordId: string) => boolean = matchRowId) => {\n if (!Array.isArray(cached?.data?.results)) {\n return cached\n }\n\n return {\n ...cached,\n data: {\n ...cached.data,\n results: patchBoardStages(cached.data.results, data, recordId, matchRow)\n }\n }\n }\n\n if (state.objectsData) {\n stateUpdates.objectsData =\n viewType === 'BOARD'\n ? patchBoardResponse(state.objectsData, objectsDataMatcher)\n : patchListResponse(state.objectsData, objectsDataMatcher)\n }\n\n if (state.tableData) {\n stateUpdates.tableData = viewType === 'BOARD' ? patchBoardResponse(state.tableData) : patchListResponse(state.tableData)\n }\n\n tableStore.setState(stateUpdates)\n\n return response\n }\n}\n","import { createStore } from './store'\n\nexport interface AttachmentData {\n createdAt?: string\n id: string\n name?: string\n size?: string\n type?: string\n updatedAt?: string\n [key: string]: unknown\n}\n\nexport interface UploaderState {\n attachments: AttachmentData[]\n}\n\nexport const uploaderStore = createStore<UploaderState>({\n attachments: []\n})\n\nfunction toAttachmentSummary(attachment: AttachmentData) {\n return {\n createdAt: attachment.createdAt,\n id: attachment.id,\n name: attachment.name,\n size: attachment.size,\n type: attachment.type,\n updatedAt: attachment.updatedAt\n }\n}\n\nexport function resolveAttachmentsFromIds(attachmentIds: unknown, storedAttachments: AttachmentData[]) {\n const raw =\n typeof attachmentIds === 'object' && attachmentIds !== null && 'value' in (attachmentIds as object)\n ? (attachmentIds as { value: unknown }).value\n : attachmentIds\n\n const ids = String(raw ?? '')\n .split(';')\n .map((id) => id.trim())\n .filter(Boolean)\n\n return ids\n .map((id) => storedAttachments.find((a) => String(a.id) === id))\n .filter((a): a is AttachmentData => a != null)\n .map(toAttachmentSummary)\n}\n\nexport const actions = {\n setAttachment(response: any) {\n const data = response?.data\n if (!data?.id) return\n\n const state = uploaderStore.getState()\n const id = String(data.id)\n const existing = state.attachments\n const index = existing.findIndex((item) => String(item.id) === id)\n\n const attachments = index >= 0 ? existing.map((item, i) => (i === index ? data : item)) : [...existing, data]\n\n uploaderStore.setState({ attachments })\n },\n\n clearAttachments() {\n uploaderStore.setState({ attachments: [] })\n }\n}\n","import { createStore } from './store'\nimport { actions as uploaderActions, resolveAttachmentsFromIds, uploaderStore } from './use-uploader'\n\nexport interface NoteState {\n notes: any\n prependNotes: any[]\n id: string\n /** Last note.list GET query; used as CachePurgeListQuery on note create/update purge. */\n queryParams: any\n}\n\nexport const noteStore = createStore<NoteState>({\n notes: [],\n prependNotes: [],\n id: '',\n queryParams: null\n})\n\nexport const actions = {\n /** Called from Client.note.list — feeds purgeEngagementCaches (view: notes). */\n setListQueryParams(params: any) {\n noteStore.setState({\n queryParams: params\n })\n },\n\n setNotes(response: any, payload: any) {\n const state = noteStore.getState()\n const rows = response?.data?.results?.rows ?? []\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== '')\n .map((id: unknown) => String(id))\n )\n\n let newPrependNotes = state.prependNotes.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id\n if (itemId == null || itemId === '') return true\n return !rowIds.has(String(itemId))\n })\n\n const id = payload?.params?.id\n\n if (state.id && state.id != id) {\n newPrependNotes = []\n }\n\n noteStore.setState({\n notes: response,\n prependNotes: newPrependNotes,\n id: id\n })\n },\n\n async setPrependNote(response: any) {\n const state: any = noteStore.getState()\n let rows: any = []\n\n if (response === 'loading') {\n const columns = state.notes?.data?.results?.columns ?? []\n const row =\n columns.length === 0\n ? { note_body: 'loading' }\n : columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = 'loading'\n }\n return acc\n }, {})\n rows = [row, ...state.prependNotes]\n } else if (response?.data) {\n // set real columns data\n\n const data = response?.data\n if (!data) {\n noteStore.setState({\n prependNotes: []\n })\n }\n\n // Populated by attachmentUpload (setAttachment) during compose, before create returns.\n const storedAttachments = uploaderStore.getState().attachments\n\n const row = Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => {\n // API returns \"id1;id2\" — resolve to attachment summaries for the prepend row UI.\n if (key === 'hs_attachment_ids') {\n return [key, resolveAttachmentsFromIds(value, storedAttachments)]\n }\n return [key, value?.value ?? value]\n })\n )\n\n rows = [...state.prependNotes]\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row\n } else {\n rows.push(row)\n }\n }\n\n noteStore.setState({\n prependNotes: rows\n })\n },\n\n clearPrependNotes() {\n noteStore.setState({\n prependNotes: []\n })\n // Drop staged uploads when the compose session ends (e.g. sync / navigation).\n uploaderActions.clearAttachments()\n },\n\n async updatePrependNote(response: any) {\n const responseData = { ...response }\n const state: any = noteStore.getState()\n const prependNotes = state.prependNotes || []\n\n const note = response.data || null\n\n const storedAttachments = uploaderStore.getState().attachments\n\n const notes = prependNotes.map((item: any) =>\n item?.hs_object_id === note?.hs_object_id?.value\n ? {\n ...item,\n ...Object.fromEntries(\n Object.entries(note).map(([key, value]: [string, any]) => {\n if (key === 'hs_attachment_ids') {\n return [key, resolveAttachmentsFromIds(value, storedAttachments)]\n }\n return [key, value?.value ?? value]\n })\n )\n }\n : item\n )\n\n noteStore.setState({\n prependNotes: notes\n })\n\n // Update returns only newly uploaded attachment IDs — merge them with\n // attachments already shown in the list / prepend row, then sync store + response.\n if (responseData?.data?.hs_attachment_ids != null) {\n const noteObjectId = note?.hs_object_id?.value\n const rows = state.notes?.data?.results?.rows ?? []\n\n // Prefer the persisted list row; fall back to the prepend snapshot captured\n // before the update above (prependNotes), so existing files are not lost.\n const matchingRow = rows.find((row: any) => String(row.hs_object_id) === String(noteObjectId))\n const originalPrependItem = notes.find((item: any) => String(item?.hs_object_id) === String(noteObjectId))\n const existingAttachments = matchingRow?.hs_attachment_ids ?? originalPrependItem?.hs_attachment_ids ?? []\n\n // API returns \"id1;id2\" — resolve staged uploads to attachment summaries.\n const newAttachments = resolveAttachmentsFromIds(responseData.data.hs_attachment_ids, storedAttachments)\n\n const mergedAttachments = [\n ...existingAttachments,\n ...newAttachments.filter((attachment) => !existingAttachments.some((existing: any) => String(existing.id) === String(attachment.id)))\n ]\n\n const stateUpdates: Partial<NoteState> = {}\n\n if (matchingRow && state.notes?.data?.results) {\n stateUpdates.notes = {\n ...state.notes,\n data: {\n ...state.notes.data,\n results: {\n ...state.notes.data.results,\n rows: rows.map((row: any) =>\n String(row.hs_object_id) === String(noteObjectId) ? { ...row, hs_attachment_ids: mergedAttachments } : row\n )\n }\n }\n }\n }\n\n // Overwrite the prepend row set above so it shows the full attachment list.\n if (originalPrependItem) {\n stateUpdates.prependNotes = notes.map((item: any) =>\n String(item?.hs_object_id) === String(noteObjectId) ? { ...item, hs_attachment_ids: mergedAttachments } : item\n )\n }\n\n if (Object.keys(stateUpdates).length > 0) {\n noteStore.setState(stateUpdates)\n }\n\n // Caller / UI expects resolved attachment objects, not raw ID strings.\n responseData.data.hs_attachment_ids = mergedAttachments\n }\n return responseData\n }\n}\n","import { createStore } from './store'\nimport { actions as uploaderActions, resolveAttachmentsFromIds, uploaderStore } from './use-uploader'\n\nexport interface EmailState {\n emails: any\n prependEmails: any[]\n id: string\n /** Last email.list GET query; used as CachePurgeListQuery on email create/update purge. */\n queryParams: any\n}\n\nexport const emailStore = createStore<EmailState>({\n emails: [],\n prependEmails: [],\n id: '',\n queryParams: null\n})\n\nexport const actions = {\n /** Called from Client.email.list — feeds purgeEngagementCaches (view: emails). */\n setListQueryParams(params: any) {\n emailStore.setState({\n queryParams: params\n })\n },\n\n setEmails(response: any, payload: any) {\n const state = emailStore.getState()\n const rows = response?.data?.results?.rows ?? []\n const rowIds = new Set(\n rows\n .map((row: any) => row.id ?? row.hs_object_id)\n .filter((id: unknown) => id != null && id !== '')\n .map((id: unknown) => String(id))\n )\n\n let newPrependEmails = state.prependEmails.filter((item: any) => {\n const itemId = item.id ?? item.hs_object_id\n if (itemId == null || itemId === '') return true\n return !rowIds.has(String(itemId))\n })\n\n const id = payload?.params?.id\n\n if (state.id && state.id != id) {\n newPrependEmails = []\n }\n\n emailStore.setState({\n emails: response,\n prependEmails: newPrependEmails,\n id: id\n })\n },\n\n async setPrependEmail(response: any) {\n const state: any = emailStore.getState()\n let rows: any = []\n\n if (response === 'loading') {\n // set empty loading columns\n const row = await state.emails?.data?.results?.columns.reduce((acc: any, item: any) => {\n if (!item.hidden) {\n acc[item.key] = 'loading'\n }\n return acc\n }, {})\n rows = [row, ...state.prependEmails]\n } else if (response?.data) {\n // set real columns data\n\n const data = response?.data\n if (!data) {\n emailStore.setState({\n prependEmails: []\n })\n }\n\n // Populated by attachmentUpload (setAttachment) during compose, before create returns.\n const storedAttachments = uploaderStore.getState().attachments\n\n const row = Object.fromEntries(\n Object.entries(data).map(([key, value]: any) => {\n // API returns \"id1;id2\" — resolve to attachment summaries for the prepend row UI.\n if (key === 'hs_attachment_ids') {\n return [key, resolveAttachmentsFromIds(value, storedAttachments)]\n }\n return [key, value?.value ?? value]\n })\n )\n\n rows = [...state.prependEmails]\n // replace empty loading columns with real data\n if (rows.length > 0) {\n rows[0] = row\n } else {\n rows.push(row)\n }\n }\n\n emailStore.setState({\n prependEmails: rows\n })\n },\n\n clearPrependEmails() {\n emailStore.setState({\n prependEmails: []\n })\n // Drop staged uploads when the compose session ends (e.g. sync / navigation).\n uploaderActions.clearAttachments()\n },\n\n async updatePrependEmail(response: any) {\n const responseData = { ...response }\n const state: any = emailStore.getState()\n const prependEmails = state.prependEmails || []\n\n const email = response.data || null\n\n const storedAttachments = uploaderStore.getState().attachments\n\n const emails = prependEmails.map((item: any) =>\n item?.hs_object_id === email?.hs_object_id?.value\n ? {\n ...item,\n ...Object.fromEntries(\n Object.entries(email).map(([key, value]: [string, any]) => {\n if (key === 'hs_attachment_ids') {\n return [key, resolveAttachmentsFromIds(value, storedAttachments)]\n }\n return [key, value?.value ?? value]\n })\n )\n }\n : item\n )\n\n emailStore.setState({\n prependEmails: emails\n })\n\n // Update returns only newly uploaded attachment IDs — merge them with\n // attachments already shown in the list / prepend row, then sync store + response.\n if (responseData?.data?.hs_attachment_ids != null) {\n const emailObjectId = email?.hs_object_id?.value\n const rows = state.emails?.data?.results?.rows ?? []\n\n // Prefer the persisted list row; fall back to the prepend snapshot captured\n // before the update above (prependEmails), so existing files are not lost.\n const matchingRow = rows.find((row: any) => String(row.hs_object_id) === String(emailObjectId))\n const originalPrependItem = emails.find((item: any) => String(item?.hs_object_id) === String(emailObjectId))\n const existingAttachments = matchingRow?.hs_attachment_ids ?? originalPrependItem?.hs_attachment_ids ?? []\n\n // API returns \"id1;id2\" — resolve staged uploads to attachment summaries.\n const newAttachments = resolveAttachmentsFromIds(responseData.data.hs_attachment_ids, storedAttachments)\n\n const mergedAttachments = [\n ...existingAttachments,\n ...newAttachments.filter((attachment) => !existingAttachments.some((existing: any) => String(existing.id) === String(attachment.id)))\n ]\n\n const stateUpdates: Partial<EmailState> = {}\n\n if (matchingRow && state.emails?.data?.results) {\n stateUpdates.emails = {\n ...state.emails,\n data: {\n ...state.emails.data,\n results: {\n ...state.emails.data.results,\n rows: rows.map((row: any) =>\n String(row.hs_object_id) === String(emailObjectId) ? { ...row, hs_attachment_ids: mergedAttachments } : row\n )\n }\n }\n }\n }\n\n // Overwrite the prepend row set above so it shows the full attachment list.\n if (originalPrependItem) {\n stateUpdates.prependEmails = emails.map((item: any) =>\n String(item?.hs_object_id) === String(emailObjectId) ? { ...item, hs_attachment_ids: mergedAttachments } : item\n )\n }\n\n if (Object.keys(stateUpdates).length > 0) {\n emailStore.setState(stateUpdates)\n }\n\n // Caller / UI expects resolved attachment objects, not raw ID strings.\n responseData.data.hs_attachment_ids = mergedAttachments\n }\n return responseData\n }\n}\n","import { createStore } from './store'\nimport { setProfileDetails, getProfile } from '../../core/http/auth-utils'\n\nexport interface UserState {\n profile: any\n}\n\nexport const userStore = createStore<UserState>({\n profile: getProfile() ?? null\n})\n\nexport const actions = {\n setProfile(response: any) {\n const data = response?.data ?? null\n userStore.setState({\n profile: data\n })\n if (data != null && typeof data === 'object') {\n setProfileDetails(data)\n }\n }\n}\n","export interface FolderTreeNode {\n id: string\n name?: string\n type?: string\n size?: string\n updatedAt?: string\n createdAt?: string\n createdBy?: string\n child?: FolderTreeNode[]\n [key: string]: unknown\n}\n\nexport const LOADING_TREE_NODE_ID = '__loading__'\n\nexport function createLoadingTreeNode(): FolderTreeNode {\n return {\n id: LOADING_TREE_NODE_ID,\n name: 'loading',\n type: 'loading',\n child: [],\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString()\n }\n}\n\nexport function isLoadingTreeNode(node: FolderTreeNode | undefined): boolean {\n return node?.id === LOADING_TREE_NODE_ID || node?.type === 'loading'\n}\n\n/** Maps API create `data` (list-tree node shape) into a tree-insertable node. */\nexport function toTreeNode(data: Record<string, unknown>): FolderTreeNode {\n const { parentFolderId: _parentFolderId, alreadyExists: _alreadyExists, child, ...raw } = data\n const isFolder = raw.type === 'folder' || (!raw.type && !raw.size)\n\n return {\n id: String(raw.id ?? ''),\n name: raw.name as string | undefined,\n type: (raw.type as string | undefined) ?? (isFolder ? 'folder' : undefined),\n size: (raw.size as string | undefined) ?? (isFolder ? '-' : undefined),\n updatedAt: raw.updatedAt as string | undefined,\n createdAt: raw.createdAt as string | undefined,\n createdBy: raw.createdBy as string | undefined,\n child: Array.isArray(child) ? (child as FolderTreeNode[]) : []\n }\n}\n\n/** @deprecated Use {@link toTreeNode} — API create responses are now list-tree shaped. */\nexport function normalizeFileUploadToTreeNode(data: Record<string, unknown>): FolderTreeNode {\n return toTreeNode(data)\n}\n\n/** @deprecated Use {@link toTreeNode} — API create responses are now list-tree shaped. */\nexport function normalizeFolderCreateToTreeNode(data: Record<string, unknown>): FolderTreeNode {\n return toTreeNode(data)\n}\n\n/** @deprecated Use {@link toTreeNode}. */\nexport function normalizeCreateResponseToTreeNode(data: Record<string, unknown>): FolderTreeNode {\n return toTreeNode(data)\n}\n\ntype CreatedItemInput = FolderTreeNode & { parentFolderId: string }\n\nfunction stripParentFolderId(item: CreatedItemInput): FolderTreeNode {\n const { parentFolderId: _parentFolderId, ...node } = item\n return node\n}\n\nexport function updateFolderTreeWithNewItem(tree: FolderTreeNode, createdItem: CreatedItemInput): { tree: FolderTreeNode; inserted: boolean } {\n const parentFolderId = String(createdItem.parentFolderId ?? '')\n const nodeToInsert = stripParentFolderId(createdItem)\n\n if (String(tree.id) === parentFolderId) {\n return {\n tree: {\n ...tree,\n child: [nodeToInsert, ...(tree.child ?? [])]\n },\n inserted: true\n }\n }\n\n const children = tree.child ?? []\n if (children.length === 0) {\n return { tree, inserted: false }\n }\n\n let inserted = false\n const updatedChildren = children.map((child) => {\n if (inserted) {\n return child\n }\n const result = updateFolderTreeWithNewItem(child, createdItem)\n if (result.inserted) {\n inserted = true\n return result.tree\n }\n return child\n })\n\n if (!inserted) {\n return { tree, inserted: false }\n }\n\n return {\n tree: {\n ...tree,\n child: updatedChildren\n },\n inserted: true\n }\n}\n\nexport function replaceOrPrependChildAt(\n tree: FolderTreeNode,\n parentFolderId: string,\n node: FolderTreeNode\n): { tree: FolderTreeNode; updated: boolean } {\n const parentId = String(parentFolderId ?? '')\n\n if (String(tree.id) === parentId) {\n const children = tree.child ?? []\n const firstChild = children[0]\n\n if (isLoadingTreeNode(firstChild)) {\n return {\n tree: {\n ...tree,\n child: [node, ...children.slice(1)]\n },\n updated: true\n }\n }\n\n return {\n tree: {\n ...tree,\n child: [node, ...children]\n },\n updated: true\n }\n }\n\n const children = tree.child ?? []\n if (children.length === 0) {\n return { tree, updated: false }\n }\n\n let updated = false\n const updatedChildren = children.map((child) => {\n if (updated) {\n return child\n }\n const result = replaceOrPrependChildAt(child, parentFolderId, node)\n if (result.updated) {\n updated = true\n return result.tree\n }\n return child\n })\n\n if (!updated) {\n return { tree, updated: false }\n }\n\n return {\n tree: {\n ...tree,\n child: updatedChildren\n },\n updated: true\n }\n}\n","import { createStore } from './store'\nimport { createLoadingTreeNode, replaceOrPrependChildAt, toTreeNode, updateFolderTreeWithNewItem, type FolderTreeNode } from './folder-tree'\n\nexport interface FileState {\n files: any\n id: string\n /** Last file.list GET query; used as CachePurgeListQuery on file addFolder / addFile purge. */\n queryParams: any\n}\n\nexport const fileStore = createStore<FileState>({\n files: null,\n id: '',\n queryParams: null\n})\n\nexport const actions = {\n /** Called from Client.file.list — feeds purgeEngagementCaches (view: files). */\n setListQueryParams(params: any) {\n fileStore.setState({\n queryParams: params\n })\n },\n\n setFiles(response: any, payload: any) {\n const state = fileStore.getState()\n const id = payload?.params?.id\n\n if (state.id && state.id != id) {\n fileStore.setState({\n files: response,\n id: id\n })\n return\n }\n\n fileStore.setState({\n files: response,\n id: id\n })\n },\n\n async updateTreeWithCreate(parentFolderId: string, response: 'loading' | any, _createKind?: 'file' | 'folder') {\n const state = fileStore.getState()\n const tree = state.files?.data as FolderTreeNode | undefined\n\n if (!tree || !parentFolderId) {\n return\n }\n\n if (response === 'loading') {\n const loadingNode = createLoadingTreeNode()\n const { tree: updatedTree } = updateFolderTreeWithNewItem(tree, {\n ...loadingNode,\n parentFolderId: String(parentFolderId)\n })\n\n fileStore.setState({\n files: {\n ...state.files,\n data: updatedTree\n }\n })\n return\n }\n\n const data = response?.data\n if (!data) {\n return\n }\n\n const resolvedParentId = String(data.parentFolderId ?? parentFolderId)\n const normalizedNode = toTreeNode(data)\n\n const { tree: updatedTree } = replaceOrPrependChildAt(tree, resolvedParentId, normalizedNode)\n\n fileStore.setState({\n files: {\n ...state.files,\n data: updatedTree\n }\n })\n },\n\n clearFiles() {\n fileStore.setState({\n files: null,\n id: ''\n })\n }\n}\n","import { createStore } from './store'\nimport { actions as tableActions } from './use-table'\nimport { actions as noteActions } from './use-note'\nimport { actions as emailActions } from './use-email'\nimport { actions as fileActions } from './use-file'\n\nexport interface SyncState {\n apiSync: boolean\n sync: boolean\n isSyncLoading: boolean\n isSyncDisable: boolean\n}\n\nexport const syncStore = createStore<SyncState>({\n apiSync: false,\n sync: false,\n isSyncLoading: false,\n isSyncDisable: false\n})\n\nexport const actions = {\n setIsSyncLoading(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n sync: status\n })\n },\n\n setSync(status: boolean) {\n resetAllStore()\n syncStore.setState({\n isSyncLoading: status,\n sync: status\n })\n },\n\n setApiSync(status: boolean) {\n syncStore.setState({\n isSyncLoading: status,\n apiSync: status\n })\n },\n\n setSyncDisable(status: boolean) {\n syncStore.setState({\n isSyncDisable: status\n })\n }\n}\n\nconst resetAllStore = () => {\n tableActions.clearTablePrependData()\n noteActions.clearPrependNotes()\n emailActions.clearPrependEmails()\n fileActions.clearFiles()\n}\n\nexport { resetAllStore }\n"]}
@@ -77,6 +77,9 @@ function parseCookieJson(key) {
77
77
  return null;
78
78
  }
79
79
  }
80
+ var removeCookie = (key) => {
81
+ return Cookies.remove(key);
82
+ };
80
83
  var clearClientAuthCookies = () => {
81
84
  getClientAuthCookieNamesToClear().forEach((name) => Cookies.remove(name));
82
85
  for (const legacyAccess of ["woodsportal_access_token", "AUTH_CRED"]) {
@@ -301,6 +304,6 @@ function clearStaleIframeRefreshForOtherHubs(activeHubId) {
301
304
  }
302
305
  }
303
306
 
304
- export { clearClientAuthCookies, clearClientIframeRefreshLocalKeys, clearClientSessionStorageKeys, clearStaleIframeRefreshForOtherHubs, configureStorageKeys, getClientAuthCookieNamesToClear, getCookie, getStorageKeys, isCookieExpired, isCorruptCookieRawValue, migrateLegacyStorageKeys, parseCookieJson, resetStorageKeysForTests, setCookie, stringifyCookieValue };
305
- //# sourceMappingURL=chunk-XANZNL46.js.map
306
- //# sourceMappingURL=chunk-XANZNL46.js.map
307
+ export { clearClientAuthCookies, clearClientIframeRefreshLocalKeys, clearClientSessionStorageKeys, clearStaleIframeRefreshForOtherHubs, configureStorageKeys, getClientAuthCookieNamesToClear, getCookie, getStorageKeys, isCookieExpired, isCorruptCookieRawValue, migrateLegacyStorageKeys, parseCookieJson, removeCookie, resetStorageKeysForTests, setCookie, stringifyCookieValue };
308
+ //# sourceMappingURL=chunk-NXGSFLJS.js.map
309
+ //# sourceMappingURL=chunk-NXGSFLJS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/core/utils/storage-keys.ts","../src/main/core/utils/cookie.ts","../src/main/core/utils/storage-migration.ts"],"names":["Cookies"],"mappings":"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","file":"chunk-NXGSFLJS.js","sourcesContent":["import { WP_STORAGE_KEYS } from './wp-storage-keys'\n\nexport interface StorageKeyConfig {\n loginDetails?: string\n refreshToken?: string\n portal?: string\n subscriptionType?: string\n authUser?: string\n pagination?: string\n routeMenu?: string\n associationView?: string\n emailVerified?: string\n}\n\nconst defaults: Required<StorageKeyConfig> = {\n loginDetails: WP_STORAGE_KEYS.c.auth.login,\n refreshToken: WP_STORAGE_KEYS.c.auth.refresh,\n portal: WP_STORAGE_KEYS.c.auth.portal,\n subscriptionType: WP_STORAGE_KEYS.c.auth.sub,\n authUser: WP_STORAGE_KEYS.c.auth.login,\n pagination: WP_STORAGE_KEYS.c.ui.pag,\n routeMenu: WP_STORAGE_KEYS.c.ui.menu,\n associationView: WP_STORAGE_KEYS.c.ui.assoc,\n emailVerified: WP_STORAGE_KEYS.c.auth.emailOk\n}\n\nlet runtimeKeys: Required<StorageKeyConfig> = { ...defaults }\n\nexport function configureStorageKeys(overrides: StorageKeyConfig = {}): void {\n runtimeKeys = { ...defaults, ...runtimeKeys, ...overrides }\n if (overrides.authUser === undefined) {\n runtimeKeys.authUser = runtimeKeys.loginDetails\n }\n}\n\n/** Test helper — restore default cookie key names. */\nexport function resetStorageKeysForTests(): void {\n runtimeKeys = { ...defaults }\n}\n\nexport function getStorageKeys(): Readonly<Required<StorageKeyConfig>> {\n return runtimeKeys\n}\n\nexport { WP_STORAGE_KEYS } from './wp-storage-keys'\n","import Cookies from 'js-cookie'\nimport { getClientAuthCookieNamesToClear } from './storage-migration'\n\nfunction cookieSecureFlag(): boolean {\n if (typeof window === 'undefined') return true\n return window.location.protocol === 'https:'\n}\n\n/** Values that must never be persisted in readable cookies. */\nexport function isCorruptCookieRawValue(raw: string | null | undefined): boolean {\n return raw == null || raw === '' || raw === 'undefined' || raw === 'null'\n}\n\n/** Serialize a value for cookie storage; returns null when write should be skipped. */\nexport function stringifyCookieValue(value: unknown): string | null {\n if (value === undefined || value === null) {\n return null\n }\n if (typeof value === 'string') {\n return isCorruptCookieRawValue(value) ? null : value\n }\n const serialized = JSON.stringify(value)\n if (serialized === undefined || isCorruptCookieRawValue(serialized)) {\n return null\n }\n return serialized\n}\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n if (!key || isCorruptCookieRawValue(value)) {\n return undefined\n }\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: cookieSecureFlag() ? 'none' : 'lax',\n secure: cookieSecureFlag()\n })\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key)\n}\n\n/** Parse JSON stored in a cookie; removes corrupt values on read (self-heal). */\nexport function parseCookieJson<T = unknown>(key: string | null | undefined): T | null {\n if (key == null || key === '') {\n return null\n }\n const raw = getCookie(key)\n if (isCorruptCookieRawValue(raw)) {\n if (raw === 'undefined' || raw === 'null') {\n Cookies.remove(key)\n }\n return null\n }\n try {\n return JSON.parse(raw) as T\n } catch {\n Cookies.remove(key)\n return null\n }\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key)\n}\n\n/** Clears client-portal session cookies only (does not wipe admin cookies on shared localhost). */\nexport const clearClientAuthCookies = () => {\n getClientAuthCookieNamesToClear().forEach((name) => Cookies.remove(name))\n for (const legacyAccess of ['woodsportal_access_token', 'AUTH_CRED']) {\n Cookies.remove(legacyAccess)\n }\n}\n\n/** @deprecated Prefer {@link clearClientAuthCookies} */\nexport const removeAllCookie = clearClientAuthCookies\n\nexport const isCookieExpired = (key: string): boolean => {\n const value = Cookies.get(key)\n if (value === undefined) {\n return true\n }\n try {\n const parsed = JSON.parse(value)\n if (parsed && typeof parsed === 'object' && 'expiresAt' in parsed) {\n const expiresAt = (parsed as { expiresAt?: number }).expiresAt\n return typeof expiresAt === 'number' && Date.now() > expiresAt\n }\n return false\n } catch {\n // Plain string values (e.g. refresh token) rely on browser cookie expiry.\n return false\n }\n}\n","import Cookies from 'js-cookie'\nimport {\n CLIENT_COOKIE_MIGRATIONS,\n CLIENT_SESSION_STORAGE_MIGRATIONS,\n LEGACY_CLIENT_AUTH_COOKIES,\n LEGACY_CLIENT_SESSION_EXACT,\n WP_STORAGE_KEYS,\n WP_UI_THEME,\n wpClientIframeRefreshKey,\n wpClientIframeRefreshExpKey\n} from './wp-storage-keys'\nimport { getStorageKeys } from './storage-keys'\nimport { isCorruptCookieRawValue } from './cookie'\n\nfunction migrateCookiePair(legacy: string, canonical: string): void {\n const value = Cookies.get(legacy)\n if (value === undefined) {\n return\n }\n if (isCorruptCookieRawValue(value)) {\n Cookies.remove(legacy)\n return\n }\n if (!Cookies.get(canonical)) {\n Cookies.set(canonical, value)\n }\n Cookies.remove(legacy)\n}\n\nfunction migrateLocalStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const value = window.localStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.localStorage.getItem(canonical)) {\n window.localStorage.setItem(canonical, value)\n }\n window.localStorage.removeItem(legacy)\n } catch {\n // private mode\n }\n}\n\nfunction migrateSessionStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n const value = window.sessionStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.sessionStorage.getItem(canonical)) {\n window.sessionStorage.setItem(canonical, value)\n }\n window.sessionStorage.removeItem(legacy)\n } catch {\n // ignore\n }\n}\n\nfunction migrateIframeRefreshKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter((k) => k.startsWith('wp_iframe_rt_'))\n for (const legacyKey of keys) {\n const suffix = legacyKey.slice('wp_iframe_rt_'.length)\n if (suffix.endsWith('_exp')) {\n continue\n }\n const hubId = suffix\n const token = window.localStorage.getItem(legacyKey)\n const exp = window.localStorage.getItem(`${legacyKey}_exp`)\n const newKey = wpClientIframeRefreshKey(hubId)\n const newExpKey = wpClientIframeRefreshExpKey(hubId)\n if (token != null && !window.localStorage.getItem(newKey)) {\n window.localStorage.setItem(newKey, token)\n }\n if (exp != null && !window.localStorage.getItem(newExpKey)) {\n window.localStorage.setItem(newExpKey, exp)\n }\n window.localStorage.removeItem(legacyKey)\n window.localStorage.removeItem(`${legacyKey}_exp`)\n }\n } catch {\n // ignore\n }\n}\n\nfunction removeLegacyAccessTokenCookies(): void {\n const keys = getStorageKeys()\n const legacyAccess = ['woodsportal_access_token', 'AUTH_CRED']\n for (const name of legacyAccess) {\n Cookies.remove(name)\n }\n if (keys.authUser && keys.authUser !== keys.loginDetails) {\n // legacy duplicate profile mirror — uplift handled by migration; drop separate user cookie\n Cookies.remove(keys.authUser)\n }\n}\n\n/**\n * One-time uplift: read legacy browser keys, write canonical `wp.*` keys, delete legacy.\n * Safe to call on every boot (idempotent).\n */\nexport function migrateLegacyStorageKeys(): void {\n if (typeof window === 'undefined') {\n return\n }\n\n for (const [legacy, canonical] of CLIENT_COOKIE_MIGRATIONS) {\n migrateCookiePair(legacy, canonical)\n }\n\n migrateLocalStoragePair('hubSpotData', WP_STORAGE_KEYS.c.hub)\n migrateLocalStoragePair('theme', WP_UI_THEME)\n\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n migrateSessionStoragePair(legacy, canonical)\n }\n\n migrateIframeRefreshKeys()\n removeLegacyAccessTokenCookies()\n\n // Drop dead forget-password key\n try {\n window.sessionStorage?.removeItem('entredEmail')\n } catch {\n // ignore\n }\n}\n\n/** All client auth cookie names to remove on logout (canonical + legacy + configured). */\nexport function getClientAuthCookieNamesToClear(): string[] {\n const keys = getStorageKeys()\n const configured = [\n keys.loginDetails,\n keys.refreshToken,\n keys.portal,\n keys.subscriptionType,\n keys.authUser,\n keys.pagination,\n keys.routeMenu,\n keys.associationView,\n keys.emailVerified\n ].filter((name): name is string => Boolean(name))\n\n const canonical = [\n WP_STORAGE_KEYS.c.auth.login,\n WP_STORAGE_KEYS.c.auth.refresh,\n WP_STORAGE_KEYS.c.auth.portal,\n WP_STORAGE_KEYS.c.auth.sub,\n WP_STORAGE_KEYS.c.auth.emailOk,\n WP_STORAGE_KEYS.c.ui.pag,\n WP_STORAGE_KEYS.c.ui.menu,\n WP_STORAGE_KEYS.c.ui.assoc\n ]\n\n return [...new Set([...configured, ...canonical, ...LEGACY_CLIENT_AUTH_COOKIES])]\n}\n\nexport function clearClientSessionStorageKeys(): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n if (\n canonical === WP_STORAGE_KEYS.c.login.email ||\n canonical === WP_STORAGE_KEYS.c.login.force ||\n canonical === WP_STORAGE_KEYS.c.login.passkey ||\n canonical === WP_STORAGE_KEYS.c.login.done\n ) {\n continue\n }\n window.sessionStorage.removeItem(legacy)\n window.sessionStorage.removeItem(canonical)\n }\n for (const key of LEGACY_CLIENT_SESSION_EXACT) {\n if (key === 'entredEmail') {\n window.sessionStorage.removeItem(key)\n }\n }\n const preservedLoginKeys = new Set([\n WP_STORAGE_KEYS.c.login.email,\n WP_STORAGE_KEYS.c.login.force,\n WP_STORAGE_KEYS.c.login.passkey,\n WP_STORAGE_KEYS.c.login.done,\n 'woodsportal.login.email',\n 'woodsportal.login.forcePreLogin',\n 'woodsportal.login.passkeyPrimaryEnrolled',\n 'woodsportal.login.preLoginCompletedKey'\n ])\n const keysToRemove: string[] = []\n for (let i = 0; i < window.sessionStorage.length; i++) {\n const key = window.sessionStorage.key(i)\n if (!key || preservedLoginKeys.has(key)) continue\n if (key.startsWith('woodsportal.mfa.') || key.startsWith('wp.c.mfa.')) {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.auth.err || key === WP_STORAGE_KEYS.c.auth.refreshExhausted || key === 'authError') {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.sso.cb || key === 'sso_callback_processed') {\n keysToRemove.push(key)\n }\n }\n keysToRemove.forEach((k) => window.sessionStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearClientIframeRefreshLocalKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => k.startsWith('wp_iframe_rt_') || k.startsWith(WP_STORAGE_KEYS.c.auth.iframeRtPrefix)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearStaleIframeRefreshForOtherHubs(activeHubId: string | number | undefined): void {\n if (activeHubId == null || typeof window === 'undefined' || !window.localStorage) {\n return\n }\n const activePrefix = WP_STORAGE_KEYS.c.auth.iframeRtPrefix\n const activeKey = wpClientIframeRefreshKey(activeHubId)\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => (k.startsWith('wp_iframe_rt_') || k.startsWith(activePrefix)) && k !== activeKey && k !== wpClientIframeRefreshExpKey(activeHubId)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ export { applyCrossTabSessionRevocation, installCrossTabSessionListener, resetCrossTabSessionSyncForTests, signalSessionChanged } from './chunk-2MVPOZLC.js';
2
+ import './chunk-55MIERLJ.js';
3
+ import './chunk-CCAQQMPV.js';
4
+ import './chunk-IBLDCOQU.js';
5
+ import './chunk-DO3WO2RP.js';
6
+ import './chunk-NXGSFLJS.js';
7
+ import './chunk-7JHBCIR5.js';
8
+ //# sourceMappingURL=cross-tab-session-ORPEUNVO.js.map
9
+ //# sourceMappingURL=cross-tab-session-ORPEUNVO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"cross-tab-session-NJCGCGJM.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cross-tab-session-ORPEUNVO.js"}
@@ -1,5 +1,5 @@
1
- import { p as preLogin, l as login, c as clientSession, h as handoff, a as logout, r as register, v as verifyEmail, b as registerExistingUser, f as forgetPassword, d as resetPassword, e as resetPasswordVerifyToken, g as verifyEmailResend, i as resendEmail, j as changePassword, m as me, k as profile, n as profileUpdate, o as verifyOtp, s as sendMfaOtp, q as pendingPasskeyOptions, t as pendingPasskeyVerify, u as getMfaStatus, w as setMfaPreferences, x as startPhoneVerify, y as confirmPhoneVerify, z as totpEnrollStart, A as totpEnrollVerify, B as totpDisable, C as phoneUnverify, D as backupCodesRegenerate, E as mfaOptOut, F as webauthnRegisterOptions, G as webauthnRegisterVerify, H as webauthnAuthOptions, I as webauthnAuthVerify, J as listWebauthnCredentials, K as deleteWebauthnCredential, L as passkeyLoginOptions, M as passkeyLoginVerify, N as getSecurityOverview, O as getSecurityLoginActivity, P as getSecuritySessions, Q as revokeSecuritySession, R as revokeOtherSecuritySessions, S as getLoginBootstrap, T as getSsoDetails, U as generateSsoUrl, V as ssoCallback, W as getRefreshToken, X as refreshSession, Y as getAuthRefreshToken, Z as getAccessToken, _ as setAccessToken, $ as clearAccessToken, a0 as isAuthenticated, a1 as isAuthenticateApp, a2 as isAccessTokenExpired, a3 as isExpiresAccessToken, a4 as hasRefreshSession, a5 as hasValidAccessToken, a6 as didLastRefreshFail, a7 as isSessionRefreshExhausted, a8 as isRefreshInFlight, a9 as resetSessionAuthState, aa as clearSessionRefreshExhaustedState, ab as hydrateSessionRefreshState, ac as SessionContractInput } from '../http-errors-OKY0E5C5.js';
2
- export { az as ActiveSession, aA as ApiErrorPayload, aB as AuthErrorAction, aC as AuthErrorCode, aD as AuthErrorCodeValue, aE as AuthFunnelState, aF as AuthInterceptorPolicyConfig, aG as AuthPolicyRoutes, aH as AuthRouteAction, bt as EditorPreviewMockHandler, bu as EditorPreviewMockResult, aI as HttpClientConfig, aJ as HttpErrorKind, aK as HydrateMfaPendingAccessTokenInput, bv as LoginBootstrapMfaPolicy, bw as LoginBootstrapPortal, bx as LoginBootstrapResponse, by as LoginBootstrapSsoProvider, aM as LoginHistoryRow, aN as LoginResponseData, aO as MfaBootRecoveryResult, aP as MfaEnrollmentStatus, aQ as MfaMethod, aR as MfaMethodOption, aS as MfaPendingAccessToken, aT as MfaPortalScopeContext, aU as MfaStorageLane, aV as PaginationResponse, aW as SERVICE_UNAVAILABLE_MESSAGE, aX as SecurityOverview, aZ as StoredAuthError, ae as TwoFaVerificationRequest, a_ as UnauthorizedPageCopy, a$ as WoodsportalRequestConfig, b0 as classifyHttpError, b1 as clearMfaPendingAccessToken, b3 as getFieldErrors, b4 as getFormErrors, b5 as getHttpErrorMessage, b7 as getUnauthorizedPageCopy, b8 as hasAuthenticatedAccess, b9 as hasValidAccess, ba as hydrateMfaPendingAccessToken, bb as initializeHttpClient, bc as isFullyAuthenticated, bd as isMfaPendingSession, be as isOptionalAuthFailureUrl, bf as isServiceUnavailableError, bg as isSessionProbeUrl, bh as parseApiErrorPayload, bi as persistAuthError, bj as readMfaPendingAccessToken, bk as readPersistedAuthError, bl as recoverMfaGateOnBoot, bn as resolveAuthErrorAction, bo as resolveAuthRouteAction, bz as setEditorPreviewMockHandler, bp as setSessionLifecycleListener, bq as startVisibilityRefreshScheduler, br as stopVisibilityRefreshScheduler, bs as storeMfaPendingAccessToken } from '../http-errors-OKY0E5C5.js';
1
+ import { p as preLogin, l as login, c as clientSession, h as handoff, a as logout, r as register, v as verifyEmail, b as registerExistingUser, f as forgetPassword, d as resetPassword, e as resetPasswordVerifyToken, g as verifyEmailResend, i as resendEmail, j as changePassword, m as me, k as profile, n as profileUpdate, o as verifyOtp, s as sendMfaOtp, q as pendingPasskeyOptions, t as pendingPasskeyVerify, u as getMfaStatus, w as setMfaPreferences, x as startPhoneVerify, y as confirmPhoneVerify, z as totpEnrollStart, A as totpEnrollVerify, B as totpDisable, C as phoneUnverify, D as backupCodesRegenerate, E as mfaOptOut, F as webauthnRegisterOptions, G as webauthnRegisterVerify, H as webauthnAuthOptions, I as webauthnAuthVerify, J as listWebauthnCredentials, K as deleteWebauthnCredential, L as passkeyLoginOptions, M as passkeyLoginVerify, N as getSecurityOverview, O as getSecurityLoginActivity, P as getSecuritySessions, Q as revokeSecuritySession, R as revokeOtherSecuritySessions, S as getLoginBootstrap, T as getSsoDetails, U as generateSsoUrl, V as ssoCallback, W as getRefreshToken, X as refreshSession, Y as getAuthRefreshToken, Z as getAccessToken, _ as setAccessToken, $ as clearAccessToken, a0 as isAuthenticated, a1 as isAuthenticateApp, a2 as isAccessTokenExpired, a3 as isExpiresAccessToken, a4 as hasRefreshSession, a5 as hasValidAccessToken, a6 as didLastRefreshFail, a7 as isSessionRefreshExhausted, a8 as isRefreshInFlight, a9 as resetSessionAuthState, aa as clearSessionRefreshExhaustedState, ab as hydrateSessionRefreshState, ac as SessionContractInput } from '../http-errors-CCCQECil.js';
2
+ export { az as ActiveSession, aA as ApiErrorPayload, aB as AuthErrorAction, aC as AuthErrorCode, aD as AuthErrorCodeValue, aE as AuthFunnelState, aF as AuthInterceptorPolicyConfig, aG as AuthPolicyRoutes, aH as AuthRouteAction, bu as EditorPreviewMockHandler, bv as EditorPreviewMockResult, aI as HttpClientConfig, aJ as HttpErrorKind, aK as HydrateMfaPendingAccessTokenInput, bw as LoginBootstrapMfaPolicy, bx as LoginBootstrapPortal, by as LoginBootstrapResponse, bz as LoginBootstrapSsoProvider, aM as LoginHistoryRow, aN as LoginResponseData, aO as MfaBootRecoveryResult, aP as MfaEnrollmentStatus, aQ as MfaMethod, aR as MfaMethodOption, aS as MfaPendingAccessToken, aT as MfaPortalScopeContext, aU as MfaStorageLane, aV as PaginationResponse, aW as SERVICE_UNAVAILABLE_MESSAGE, aX as SecurityOverview, aZ as StoredAuthError, ae as TwoFaVerificationRequest, a_ as UnauthorizedPageCopy, a$ as WoodsportalRequestConfig, b0 as classifyHttpError, b1 as clearMfaPendingAccessToken, b3 as getFieldErrors, b4 as getFormErrors, b5 as getHttpErrorMessage, b7 as getUnauthorizedPageCopy, b8 as hasAuthenticatedAccess, b9 as hasValidAccess, ba as hydrateMfaPendingAccessToken, bb as initializeHttpClient, bc as isFullyAuthenticated, bd as isMfaPendingAccessSession, be as isMfaPendingSession, bf as isOptionalAuthFailureUrl, bg as isServiceUnavailableError, bh as isSessionProbeUrl, bi as parseApiErrorPayload, bj as persistAuthError, bk as readMfaPendingAccessToken, bl as readPersistedAuthError, bm as recoverMfaGateOnBoot, bo as resolveAuthErrorAction, bp as resolveAuthRouteAction, bA as setEditorPreviewMockHandler, bq as setSessionLifecycleListener, br as startVisibilityRefreshScheduler, bs as stopVisibilityRefreshScheduler, bt as storeMfaPendingAccessToken } from '../http-errors-CCCQECil.js';
3
3
  export { C as ChangePasswordPayload, F as ForgetPasswordPayload, L as LoginPayload, P as PreLoginPayload, a as ResetPasswordPayload, R as ResetPasswordVerifyTokenPayload, V as VerifyEmailPayload } from '../index-Bh9eY8sA.js';
4
4
  import 'axios';
5
5
 
@@ -1,11 +1,11 @@
1
- import { authApi } from '../chunk-FZYOTYDA.js';
2
- export { clearMfaPendingAccessToken, hasAuthenticatedAccess, hasValidAccess, hydrateMfaPendingAccessToken, isFullyAuthenticated, isMfaPendingSession, readMfaPendingAccessToken, recoverMfaGateOnBoot, resolveAuthRouteAction, storeMfaPendingAccessToken } from '../chunk-FZYOTYDA.js';
1
+ import { authApi } from '../chunk-AHRXDJPS.js';
2
+ export { hasAuthenticatedAccess, hasValidAccess, isFullyAuthenticated, isMfaPendingSession, recoverMfaGateOnBoot, resolveAuthRouteAction } from '../chunk-AHRXDJPS.js';
3
3
  export { isOptionalAuthFailureUrl, isSessionProbeUrl, persistAuthError, readPersistedAuthError, resolveAuthErrorAction } from '../chunk-AHRT7SME.js';
4
- export { SERVICE_UNAVAILABLE_MESSAGE, classifyHttpError, getFieldErrors, getFormErrors, getHttpErrorMessage, initializeHttpClient, isServiceUnavailableError, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler } from '../chunk-2EFT76XX.js';
5
- import '../chunk-2SZ2WQGG.js';
6
- export { setSessionLifecycleListener } from '../chunk-KYZRYIB3.js';
4
+ export { SERVICE_UNAVAILABLE_MESSAGE, classifyHttpError, getFieldErrors, getFormErrors, getHttpErrorMessage, initializeHttpClient, isServiceUnavailableError, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler } from '../chunk-G6DE4XWP.js';
5
+ import '../chunk-IBLDCOQU.js';
6
+ export { clearMfaPendingAccessToken, hydrateMfaPendingAccessToken, isMfaPendingAccessSession, readMfaPendingAccessToken, setSessionLifecycleListener, storeMfaPendingAccessToken } from '../chunk-DO3WO2RP.js';
7
7
  export { AuthErrorCode, getUnauthorizedPageCopy, parseApiErrorPayload } from '../chunk-COHBSTHF.js';
8
- import '../chunk-XANZNL46.js';
8
+ import '../chunk-NXGSFLJS.js';
9
9
  import '../chunk-7JHBCIR5.js';
10
10
 
11
11
  // src/main/entries/auth.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/main/entries/auth.ts"],"names":[],"mappings":";;;;;;;;;;;AA6EO,IAAM,GAAA,GAAM;AAAA,EACf,IAAA,EAAM;AACV","file":"auth.js","sourcesContent":["/**\n * Auth-only subpath export — login, MFA, security, SSO, token helpers.\n * Does not import CRM feature modules.\n */\nimport { authApi } from '../api/nested-auth-api'\n\nexport { initializeHttpClient, getFormErrors, getFieldErrors, setEditorPreviewMockHandler } from '../core/http/http-client'\nexport { setSessionLifecycleListener } from '../core/http/token-store'\nexport type { HttpClientConfig, EditorPreviewMockHandler, EditorPreviewMockResult } from '../core/http/http-client'\n\nexport { classifyHttpError, getHttpErrorMessage, isServiceUnavailableError, SERVICE_UNAVAILABLE_MESSAGE } from '../core/http/http-errors'\nexport type { HttpErrorKind } from '../core/http/http-errors'\n\nexport {\n AuthErrorCode,\n parseApiErrorPayload,\n getUnauthorizedPageCopy,\n resolveAuthErrorAction,\n isOptionalAuthFailureUrl,\n isSessionProbeUrl,\n persistAuthError,\n readPersistedAuthError,\n hasValidAccess,\n isFullyAuthenticated,\n isMfaPendingSession,\n hasAuthenticatedAccess,\n recoverMfaGateOnBoot,\n startVisibilityRefreshScheduler,\n stopVisibilityRefreshScheduler,\n resolveAuthRouteAction,\n storeMfaPendingAccessToken,\n readMfaPendingAccessToken,\n clearMfaPendingAccessToken,\n hydrateMfaPendingAccessToken\n} from '../core/auth/index.js'\nexport type {\n ApiErrorPayload,\n StoredAuthError,\n AuthErrorCodeValue,\n UnauthorizedPageCopy,\n AuthErrorAction,\n AuthPolicyRoutes,\n AuthInterceptorPolicyConfig,\n WoodsportalRequestConfig,\n SessionContractInput,\n MfaBootRecoveryResult,\n AuthRouteAction,\n AuthFunnelState,\n MfaStorageLane,\n MfaPendingAccessToken,\n HydrateMfaPendingAccessTokenInput\n} from '../core/auth/index.js'\n\nexport type {\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n MfaMethod,\n MfaMethodOption,\n MfaPortalScopeContext,\n LoginBootstrapResponse,\n LoginBootstrapMfaPolicy,\n LoginBootstrapPortal,\n LoginBootstrapSsoProvider,\n LoginResponseData,\n TwoFaVerificationRequest,\n MfaEnrollmentStatus,\n SecurityOverview,\n LoginHistoryRow,\n ActiveSession,\n PaginationResponse\n} from '../core/types'\n\nexport const api = {\n auth: authApi\n}\n"]}
1
+ {"version":3,"sources":["../../src/main/entries/auth.ts"],"names":[],"mappings":";;;;;;;;;;;AA8EO,IAAM,GAAA,GAAM;AAAA,EACf,IAAA,EAAM;AACV","file":"auth.js","sourcesContent":["/**\n * Auth-only subpath export — login, MFA, security, SSO, token helpers.\n * Does not import CRM feature modules.\n */\nimport { authApi } from '../api/nested-auth-api'\n\nexport { initializeHttpClient, getFormErrors, getFieldErrors, setEditorPreviewMockHandler } from '../core/http/http-client'\nexport { setSessionLifecycleListener } from '../core/http/token-store'\nexport type { HttpClientConfig, EditorPreviewMockHandler, EditorPreviewMockResult } from '../core/http/http-client'\n\nexport { classifyHttpError, getHttpErrorMessage, isServiceUnavailableError, SERVICE_UNAVAILABLE_MESSAGE } from '../core/http/http-errors'\nexport type { HttpErrorKind } from '../core/http/http-errors'\n\nexport {\n AuthErrorCode,\n parseApiErrorPayload,\n getUnauthorizedPageCopy,\n resolveAuthErrorAction,\n isOptionalAuthFailureUrl,\n isSessionProbeUrl,\n persistAuthError,\n readPersistedAuthError,\n hasValidAccess,\n isFullyAuthenticated,\n isMfaPendingSession,\n hasAuthenticatedAccess,\n recoverMfaGateOnBoot,\n startVisibilityRefreshScheduler,\n stopVisibilityRefreshScheduler,\n resolveAuthRouteAction,\n storeMfaPendingAccessToken,\n readMfaPendingAccessToken,\n clearMfaPendingAccessToken,\n hydrateMfaPendingAccessToken,\n isMfaPendingAccessSession\n} from '../core/auth/index.js'\nexport type {\n ApiErrorPayload,\n StoredAuthError,\n AuthErrorCodeValue,\n UnauthorizedPageCopy,\n AuthErrorAction,\n AuthPolicyRoutes,\n AuthInterceptorPolicyConfig,\n WoodsportalRequestConfig,\n SessionContractInput,\n MfaBootRecoveryResult,\n AuthRouteAction,\n AuthFunnelState,\n MfaStorageLane,\n MfaPendingAccessToken,\n HydrateMfaPendingAccessTokenInput\n} from '../core/auth/index.js'\n\nexport type {\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n MfaMethod,\n MfaMethodOption,\n MfaPortalScopeContext,\n LoginBootstrapResponse,\n LoginBootstrapMfaPolicy,\n LoginBootstrapPortal,\n LoginBootstrapSsoProvider,\n LoginResponseData,\n TwoFaVerificationRequest,\n MfaEnrollmentStatus,\n SecurityOverview,\n LoginHistoryRow,\n ActiveSession,\n PaginationResponse\n} from '../core/types'\n\nexport const api = {\n auth: authApi\n}\n"]}
@@ -1,13 +1,13 @@
1
- import { crmApi } from '../chunk-6IGCVIVV.js';
2
- export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from '../chunk-6IGCVIVV.js';
1
+ import { crmApi } from '../chunk-CN4SBWOW.js';
2
+ export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from '../chunk-CN4SBWOW.js';
3
3
  import '../chunk-55MIERLJ.js';
4
- import { navigationApi } from '../chunk-2EFT76XX.js';
5
- import '../chunk-AL3JKMCX.js';
6
- import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2, tableStore, tableUiActions, tableUiStore } from '../chunk-2SZ2WQGG.js';
7
- export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from '../chunk-2SZ2WQGG.js';
8
- import { storage } from '../chunk-KYZRYIB3.js';
4
+ import { navigationApi } from '../chunk-G6DE4XWP.js';
5
+ import '../chunk-CCAQQMPV.js';
6
+ import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2, tableStore, tableUiActions, tableUiStore } from '../chunk-IBLDCOQU.js';
7
+ export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from '../chunk-IBLDCOQU.js';
8
+ import { storage } from '../chunk-DO3WO2RP.js';
9
9
  import '../chunk-COHBSTHF.js';
10
- import '../chunk-XANZNL46.js';
10
+ import '../chunk-NXGSFLJS.js';
11
11
  import '../chunk-7JHBCIR5.js';
12
12
 
13
13
  // src/main/entries/crm.ts
@@ -729,6 +729,7 @@ type MfaPendingAccessToken = {
729
729
  declare function storeMfaPendingAccessToken(token: string, expiresInSeconds: number | undefined, lane?: MfaStorageLane): void;
730
730
  declare function readMfaPendingAccessToken(lane?: MfaStorageLane): MfaPendingAccessToken | null;
731
731
  declare function clearMfaPendingAccessToken(lane?: MfaStorageLane): void;
732
+ declare function isMfaPendingAccessSession(lane?: MfaStorageLane): boolean;
732
733
  type HydrateMfaPendingAccessTokenInput = {
733
734
  lane?: MfaStorageLane;
734
735
  setAccessToken: (token: string, expiresInSeconds?: number) => void | Promise<void>;
@@ -771,4 +772,4 @@ declare function classifyHttpError(error: unknown): HttpErrorKind;
771
772
  declare function isServiceUnavailableError(error: unknown): boolean;
772
773
  declare function getHttpErrorMessage(error: unknown): string;
773
774
 
774
- export { clearAccessToken as $, totpEnrollVerify as A, totpDisable as B, phoneUnverify as C, backupCodesRegenerate as D, mfaOptOut as E, webauthnRegisterOptions as F, webauthnRegisterVerify as G, webauthnAuthOptions as H, webauthnAuthVerify as I, listWebauthnCredentials as J, deleteWebauthnCredential as K, passkeyLoginOptions as L, passkeyLoginVerify as M, getSecurityOverview as N, getSecurityLoginActivity as O, getSecuritySessions as P, revokeSecuritySession as Q, revokeOtherSecuritySessions as R, getLoginBootstrap as S, getSsoDetails as T, generateSsoUrl as U, ssoCallback as V, getRefreshToken as W, refreshSession as X, getAuthRefreshToken as Y, getAccessToken as Z, setAccessToken as _, logout as a, type WoodsportalRequestConfig as a$, isAuthenticated as a0, isAuthenticateApp as a1, isAccessTokenExpired as a2, isExpiresAccessToken as a3, hasRefreshSession as a4, hasValidAccessToken as a5, didLastRefreshFail as a6, isSessionRefreshExhausted as a7, isRefreshInFlight as a8, resetSessionAuthState as a9, type ApiErrorPayload as aA, type AuthErrorAction as aB, AuthErrorCode as aC, type AuthErrorCodeValue as aD, type AuthFunnelState as aE, type AuthInterceptorPolicyConfig as aF, type AuthPolicyRoutes as aG, type AuthRouteAction as aH, type HttpClientConfig as aI, type HttpErrorKind as aJ, type HydrateMfaPendingAccessTokenInput as aK, type LogLevel as aL, type LoginHistoryRow as aM, type LoginResponseData as aN, type MfaBootRecoveryResult as aO, type MfaEnrollmentStatus as aP, type MfaMethod as aQ, type MfaMethodOption as aR, type MfaPendingAccessToken as aS, type MfaPortalScopeContext as aT, type MfaStorageLane as aU, type PaginationResponse as aV, SERVICE_UNAVAILABLE_MESSAGE as aW, type SecurityOverview as aX, type StorageKeyConfig as aY, type StoredAuthError as aZ, type UnauthorizedPageCopy as a_, clearSessionRefreshExhaustedState as aa, hydrateSessionRefreshState as ab, type SessionContractInput as ac, type LoggerConfig as ad, type TwoFaVerificationRequest as ae, type MfaOtpSendRequest as af, type MfaPendingPasskeyOptionsRequest as ag, type MfaPendingPasskeyVerifyRequest as ah, type MfaStatusQuery as ai, type MfaPreferenceRequest as aj, type PhoneVerifyStartRequest as ak, type PhoneVerifyConfirmRequest as al, type TotpEnrollVerifyRequest as am, type TotpDisableRequest as an, type PhoneUnverifyRequest as ao, type BackupCodesRegenerateRequest as ap, type MfaBackupCodesResponse as aq, type MfaOptOutRequest as ar, type WebAuthnVerifyRequest as as, type PasskeyLoginOptionsRequest as at, type PasskeyLoginVerifyRequest as au, type SecurityOverviewQuery as av, type SecurityLoginActivityQuery as aw, type SecuritySessionsQuery as ax, type RevokeSecuritySessionPayload as ay, type ActiveSession as az, registerExistingUser as b, classifyHttpError as b0, clearMfaPendingAccessToken as b1, configureStorageKeys as b2, getFieldErrors as b3, getFormErrors as b4, getHttpErrorMessage as b5, getStorageKeys as b6, getUnauthorizedPageCopy as b7, hasAuthenticatedAccess as b8, hasValidAccess as b9, hydrateMfaPendingAccessToken as ba, initializeHttpClient as bb, isFullyAuthenticated as bc, isMfaPendingSession as bd, isOptionalAuthFailureUrl as be, isServiceUnavailableError as bf, isSessionProbeUrl as bg, parseApiErrorPayload as bh, persistAuthError as bi, readMfaPendingAccessToken as bj, readPersistedAuthError as bk, recoverMfaGateOnBoot as bl, resetStorageKeysForTests as bm, resolveAuthErrorAction as bn, resolveAuthRouteAction as bo, setSessionLifecycleListener as bp, startVisibilityRefreshScheduler as bq, stopVisibilityRefreshScheduler as br, storeMfaPendingAccessToken as bs, type EditorPreviewMockHandler as bt, type EditorPreviewMockResult as bu, type LoginBootstrapMfaPolicy as bv, type LoginBootstrapPortal as bw, type LoginBootstrapResponse as bx, type LoginBootstrapSsoProvider as by, setEditorPreviewMockHandler as bz, clientSession as c, resetPassword as d, resetPasswordVerifyToken as e, forgetPassword as f, verifyEmailResend as g, handoff as h, resendEmail as i, changePassword as j, profile as k, login as l, me as m, profileUpdate as n, verifyOtp as o, preLogin as p, pendingPasskeyOptions as q, register as r, sendMfaOtp as s, pendingPasskeyVerify as t, getMfaStatus as u, verifyEmail as v, setMfaPreferences as w, startPhoneVerify as x, confirmPhoneVerify as y, totpEnrollStart as z };
775
+ export { clearAccessToken as $, totpEnrollVerify as A, totpDisable as B, phoneUnverify as C, backupCodesRegenerate as D, mfaOptOut as E, webauthnRegisterOptions as F, webauthnRegisterVerify as G, webauthnAuthOptions as H, webauthnAuthVerify as I, listWebauthnCredentials as J, deleteWebauthnCredential as K, passkeyLoginOptions as L, passkeyLoginVerify as M, getSecurityOverview as N, getSecurityLoginActivity as O, getSecuritySessions as P, revokeSecuritySession as Q, revokeOtherSecuritySessions as R, getLoginBootstrap as S, getSsoDetails as T, generateSsoUrl as U, ssoCallback as V, getRefreshToken as W, refreshSession as X, getAuthRefreshToken as Y, getAccessToken as Z, setAccessToken as _, logout as a, type WoodsportalRequestConfig as a$, isAuthenticated as a0, isAuthenticateApp as a1, isAccessTokenExpired as a2, isExpiresAccessToken as a3, hasRefreshSession as a4, hasValidAccessToken as a5, didLastRefreshFail as a6, isSessionRefreshExhausted as a7, isRefreshInFlight as a8, resetSessionAuthState as a9, type ApiErrorPayload as aA, type AuthErrorAction as aB, AuthErrorCode as aC, type AuthErrorCodeValue as aD, type AuthFunnelState as aE, type AuthInterceptorPolicyConfig as aF, type AuthPolicyRoutes as aG, type AuthRouteAction as aH, type HttpClientConfig as aI, type HttpErrorKind as aJ, type HydrateMfaPendingAccessTokenInput as aK, type LogLevel as aL, type LoginHistoryRow as aM, type LoginResponseData as aN, type MfaBootRecoveryResult as aO, type MfaEnrollmentStatus as aP, type MfaMethod as aQ, type MfaMethodOption as aR, type MfaPendingAccessToken as aS, type MfaPortalScopeContext as aT, type MfaStorageLane as aU, type PaginationResponse as aV, SERVICE_UNAVAILABLE_MESSAGE as aW, type SecurityOverview as aX, type StorageKeyConfig as aY, type StoredAuthError as aZ, type UnauthorizedPageCopy as a_, clearSessionRefreshExhaustedState as aa, hydrateSessionRefreshState as ab, type SessionContractInput as ac, type LoggerConfig as ad, type TwoFaVerificationRequest as ae, type MfaOtpSendRequest as af, type MfaPendingPasskeyOptionsRequest as ag, type MfaPendingPasskeyVerifyRequest as ah, type MfaStatusQuery as ai, type MfaPreferenceRequest as aj, type PhoneVerifyStartRequest as ak, type PhoneVerifyConfirmRequest as al, type TotpEnrollVerifyRequest as am, type TotpDisableRequest as an, type PhoneUnverifyRequest as ao, type BackupCodesRegenerateRequest as ap, type MfaBackupCodesResponse as aq, type MfaOptOutRequest as ar, type WebAuthnVerifyRequest as as, type PasskeyLoginOptionsRequest as at, type PasskeyLoginVerifyRequest as au, type SecurityOverviewQuery as av, type SecurityLoginActivityQuery as aw, type SecuritySessionsQuery as ax, type RevokeSecuritySessionPayload as ay, type ActiveSession as az, registerExistingUser as b, classifyHttpError as b0, clearMfaPendingAccessToken as b1, configureStorageKeys as b2, getFieldErrors as b3, getFormErrors as b4, getHttpErrorMessage as b5, getStorageKeys as b6, getUnauthorizedPageCopy as b7, hasAuthenticatedAccess as b8, hasValidAccess as b9, setEditorPreviewMockHandler as bA, hydrateMfaPendingAccessToken as ba, initializeHttpClient as bb, isFullyAuthenticated as bc, isMfaPendingAccessSession as bd, isMfaPendingSession as be, isOptionalAuthFailureUrl as bf, isServiceUnavailableError as bg, isSessionProbeUrl as bh, parseApiErrorPayload as bi, persistAuthError as bj, readMfaPendingAccessToken as bk, readPersistedAuthError as bl, recoverMfaGateOnBoot as bm, resetStorageKeysForTests as bn, resolveAuthErrorAction as bo, resolveAuthRouteAction as bp, setSessionLifecycleListener as bq, startVisibilityRefreshScheduler as br, stopVisibilityRefreshScheduler as bs, storeMfaPendingAccessToken as bt, type EditorPreviewMockHandler as bu, type EditorPreviewMockResult as bv, type LoginBootstrapMfaPolicy as bw, type LoginBootstrapPortal as bx, type LoginBootstrapResponse as by, type LoginBootstrapSsoProvider as bz, clientSession as c, resetPassword as d, resetPasswordVerifyToken as e, forgetPassword as f, verifyEmailResend as g, handoff as h, resendEmail as i, changePassword as j, profile as k, login as l, me as m, profileUpdate as n, verifyOtp as o, preLogin as p, pendingPasskeyOptions as q, register as r, sendMfaOtp as s, pendingPasskeyVerify as t, getMfaStatus as u, verifyEmail as v, setMfaPreferences as w, startPhoneVerify as x, confirmPhoneVerify as y, totpEnrollStart as z };