woodsportal-client-sdk 4.0.0-dev.2 → 4.0.2-dev.1
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.
- package/dist/adapters/angular/index.js +4 -4
- package/dist/adapters/react/index.js +4 -4
- package/dist/adapters/vue/index.js +4 -4
- package/dist/auth-utils-YNEBZ26X.js +3 -0
- package/dist/{auth-utils-VT7HSLMA.js.map → auth-utils-YNEBZ26X.js.map} +1 -1
- package/dist/{chunk-LQT6FX2R.js → chunk-2MOYNALC.js} +5 -5
- package/dist/{chunk-LQT6FX2R.js.map → chunk-2MOYNALC.js.map} +1 -1
- package/dist/{chunk-7KE6XWM5.js → chunk-67LUIIWY.js} +3 -3
- package/dist/{chunk-7KE6XWM5.js.map → chunk-67LUIIWY.js.map} +1 -1
- package/dist/{chunk-4CTHZLKL.js → chunk-HB7KESOH.js} +4 -4
- package/dist/{chunk-4CTHZLKL.js.map → chunk-HB7KESOH.js.map} +1 -1
- package/dist/{chunk-MJGI3PKE.js → chunk-J6FO5WYA.js} +7 -6
- package/dist/chunk-J6FO5WYA.js.map +1 -0
- package/dist/{chunk-3FUHGFAQ.js → chunk-KWLOG7CW.js} +75 -10
- package/dist/chunk-KWLOG7CW.js.map +1 -0
- package/dist/{chunk-OFMYKGVC.js → chunk-WYGGAMTN.js} +34 -7
- package/dist/chunk-WYGGAMTN.js.map +1 -0
- package/dist/{chunk-5TLHHOP5.js → chunk-ZEVHLXLJ.js} +7 -5
- package/dist/chunk-ZEVHLXLJ.js.map +1 -0
- package/dist/entries/auth.d.ts +3 -2
- package/dist/entries/auth.js +4 -4
- package/dist/entries/auth.js.map +1 -1
- package/dist/entries/crm.js +5 -5
- package/dist/{authentication-BfYhAeMs.d.ts → http-errors-BUFWVBjP.d.ts} +18 -1
- package/dist/index.d.ts +4 -9
- package/dist/index.js +8 -8
- package/package.json +153 -153
- package/dist/auth-utils-VT7HSLMA.js +0 -3
- package/dist/chunk-3FUHGFAQ.js.map +0 -1
- package/dist/chunk-5TLHHOP5.js.map +0 -1
- package/dist/chunk-MJGI3PKE.js.map +0 -1
- package/dist/chunk-OFMYKGVC.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/core/utils/error-log-sanitize.ts","../src/main/core/logging/logger.ts","../src/main/state/crm/store.ts","../src/main/state/crm/table-ui.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/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-sync.ts"],"names":["actions","id","keyMap","updateLink","getDeep"],"mappings":"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","file":"chunk-5TLHHOP5.js","sourcesContent":["const SENSITIVE_FIELD_NAMES = new Set(['token', 'refreshtoken', 'accesstoken', 'password', 'secret', 'authorization', 'otp', 'code'])\n\nfunction isSensitiveField(name: string): boolean {\n const normalized = name.toLowerCase()\n return SENSITIVE_FIELD_NAMES.has(normalized) || normalized.includes('password')\n}\n\nfunction redactValue(value: unknown): unknown {\n if (value == null || typeof value !== 'object') {\n return value\n }\n if (Array.isArray(value)) {\n return value.map(redactValue)\n }\n\n const input = value as Record<string, unknown>\n const output: Record<string, unknown> = {}\n for (const [key, nested] of Object.entries(input)) {\n output[key] = isSensitiveField(key) ? '[redacted]' : redactValue(nested)\n }\n return output\n}\n\n/** Prefer structured API error fields; fall back to redacted payload. */\nexport function sanitizeAxiosErrorData(data: unknown): unknown {\n if (data == null || typeof data !== 'object') {\n return data\n }\n\n const payload = data as Record<string, unknown>\n const safeFields = ['errorCode', 'message', 'errorMessage', 'detailedMessage', 'correlationId', 'category', 'statusCode'] as const\n\n const summary: Record<string, unknown> = {}\n for (const field of safeFields) {\n if (field in payload) {\n summary[field] = payload[field]\n }\n }\n\n if (Object.keys(summary).length > 0) {\n return summary\n }\n\n return redactValue(payload)\n}\n\n/** Redact sensitive keys from arbitrary log metadata. */\nexport function redactLogMeta(meta: Record<string, unknown> | undefined): Record<string, unknown> | undefined {\n if (meta == null) {\n return meta\n }\n return redactValue(meta) as Record<string, unknown>\n}\n","import axios from 'axios'\nimport { sanitizeAxiosErrorData, redactLogMeta } from '../utils/error-log-sanitize'\nimport type { LogLevel, LogMeta, LoggerConfig, SdkLogger } from './logger-types'\n\nconst LEVEL_RANK: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n silent: 4\n}\n\nconst DEFAULT_CONFIG = {\n level: 'info' as LogLevel,\n namespace: 'woodsportal-sdk',\n enabled: true,\n httpTracing: true\n}\n\nlet runtimeConfig = { ...DEFAULT_CONFIG }\nlet customSinks: LoggerConfig['sinks']\n\nfunction shouldEmit(level: LogLevel): boolean {\n if (!runtimeConfig.enabled || runtimeConfig.level === 'silent') {\n return false\n }\n return LEVEL_RANK[level] >= LEVEL_RANK[runtimeConfig.level]\n}\n\nfunction formatPrefix(context: string): string {\n return `[${runtimeConfig.namespace}] ${context}`\n}\n\nfunction defaultDebug(context: string, message: string, meta?: LogMeta): void {\n if (meta != null) {\n console.debug(formatPrefix(context), message, meta)\n return\n }\n console.debug(formatPrefix(context), message)\n}\n\nfunction defaultInfo(context: string, message: string, meta?: LogMeta): void {\n if (meta != null) {\n console.info(formatPrefix(context), message, meta)\n return\n }\n console.info(formatPrefix(context), message)\n}\n\nfunction defaultWarn(context: string, message: string, meta?: LogMeta): void {\n if (meta != null) {\n console.warn(formatPrefix(context), message, meta)\n return\n }\n console.warn(formatPrefix(context), message)\n}\n\nfunction defaultError(context: string, error: unknown, meta?: LogMeta): void {\n if (axios.isAxiosError(error)) {\n const payload = {\n message: error.message,\n status: error.response?.status,\n statusText: error.response?.statusText,\n data: sanitizeAxiosErrorData(error.response?.data),\n url: error.config?.url,\n method: error.config?.method,\n ...redactLogMeta(meta)\n }\n console.error(formatPrefix(context), payload)\n return\n }\n\n if (error instanceof Error) {\n if (meta != null) {\n console.error(formatPrefix(context), error.message, error, redactLogMeta(meta))\n return\n }\n console.error(formatPrefix(context), error.message, error)\n return\n }\n\n if (meta != null) {\n console.error(formatPrefix(context), error, redactLogMeta(meta))\n return\n }\n console.error(formatPrefix(context), error)\n}\n\nexport function configureLogger(config: LoggerConfig = {}): void {\n runtimeConfig = {\n level: config.level ?? DEFAULT_CONFIG.level,\n namespace: config.namespace ?? DEFAULT_CONFIG.namespace,\n enabled: config.enabled ?? DEFAULT_CONFIG.enabled,\n httpTracing: config.httpTracing ?? DEFAULT_CONFIG.httpTracing\n }\n customSinks = config.sinks\n}\n\n/** Test helper — restore defaults between test files. */\nexport function resetLoggerForTests(): void {\n runtimeConfig = { ...DEFAULT_CONFIG }\n customSinks = undefined\n}\n\nexport function isHttpTracingEnabled(): boolean {\n return runtimeConfig.enabled && runtimeConfig.httpTracing && shouldEmit('debug')\n}\n\nexport function getLoggerLevel(): LogLevel {\n return runtimeConfig.level\n}\n\nexport const logger: SdkLogger = {\n debug(context, message, meta) {\n if (!shouldEmit('debug')) return\n const sink = customSinks?.debug ?? defaultDebug\n sink(context, message, redactLogMeta(meta))\n },\n info(context, message, meta) {\n if (!shouldEmit('info')) return\n const sink = customSinks?.info ?? defaultInfo\n sink(context, message, redactLogMeta(meta))\n },\n warn(context, message, meta) {\n if (!shouldEmit('warn')) return\n const sink = customSinks?.warn ?? defaultWarn\n sink(context, message, redactLogMeta(meta))\n },\n error(context, error, meta) {\n if (!shouldEmit('error')) return\n const sink = customSinks?.error ?? defaultError\n sink(context, error, redactLogMeta(meta))\n }\n}\n\nexport type { LogLevel, LogMeta, LoggerConfig, SdkLogger } from './logger-types'\n","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","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\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 = response?.data?.results ?? []\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 tableStore.setState({\n 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 = state.tableData?.data?.results ?? []\n const pipelineStage =\n props?.payload?.propertyPayload?.hs_pipeline_stage ||\n props?.payload?.propertyPayload?.dealstage ||\n formState?.form?.data?.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","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 // set empty loading columns\n const row = await state.notes?.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.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 = prependNotes.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 = prependNotes.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 = prependEmails.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 = prependEmails.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()\n})\n\nexport const actions = {\n setProfile(response: any) {\n const data = response?.data || null\n userStore.setState({\n profile: data\n })\n setProfileDetails(data)\n }\n}\n","import { getCookie } from './cookie'\n\nexport const getAuthSubscriptionType = () => {\n return getCookie('subscriptionType')\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 deent prm key\n delete lastItem.prm\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\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') {\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 if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n ;(globalThis as any).history.replaceState(null, '', newHash)\n }\n}\n","import { getAuthSubscriptionType } from '../../core/utils/getCookieData'\n\nimport { updateLink as createUpdateLink } from '../../features/navigation/url'\n\nimport { tableUiStore } from './table-ui'\n\nconst pageLimit = 10\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 excludedIds = ['0-1', '0-2', '0-3', '0-4', '0-5', 'home']\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 (excludedIds.includes(hubspotObjectTypeId)) {\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 (!excludedIds.includes(hubspotObjectTypeId)) {\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'\nimport { actions as tableActions } from './use-table'\nimport { actions as noteActions } from './use-note'\nimport { actions as emailActions } from './use-email'\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}\n\nexport { resetAllStore }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/core/http/login-session.ts","../src/main/features/auth/api/authentication.ts","../src/main/features/auth/api/mfa.ts","../src/main/features/auth/api/security.ts","../src/main/features/auth/api/sso.ts","../src/main/features/auth/api/users.ts","../src/main/api/nested-auth-api.ts"],"names":["actions"],"mappings":"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","file":"chunk-MJGI3PKE.js","sourcesContent":["import { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from './auth-utils'\nimport { setConfig } from '../utils/hub-context'\nimport { actions as userActions } from '../../state/crm/use-user'\n\n/**\n * Persists a full authenticated session (access + refresh tokens, portal, login details).\n * Use after successful login or MFA verify when `twoFactorRequired` is false.\n */\nexport async function completeLoginSession(response: any): Promise<any> {\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const subscriptionType = loggedInDetails?.subscriptionType || 'BASIC'\n\n const token = tokenData?.token\n const refreshToken = tokenData?.refreshToken\n const expiresIn = tokenData?.expiresIn\n const rExpiresIn = tokenData?.refreshExpiresIn\n\n setPortal(currentPortal)\n setSubscriptionType(subscriptionType)\n await setAccessToken(token, expiresIn)\n await setRefreshToken(refreshToken, rExpiresIn)\n await setLoggedInDetails(response.data)\n userActions.setProfile(response)\n\n setConfig.setDevPortalId(currentPortalId)\n\n return response\n}\n\n/**\n * Applies login/MFA-step response token rules:\n * - MFA pending: temp access JWT only (no refresh until verify completes)\n * - Full session: {@link completeLoginSession}\n */\nexport async function applyLoginResponse(response: any): Promise<any> {\n const data = response?.data ?? response\n if (data?.twoFactorRequired === true) {\n const tokenData: any = data?.tokenData || {}\n const token = tokenData?.token\n const expiresIn = tokenData?.expiresIn\n if (token) {\n await setAccessToken(token, expiresIn)\n }\n return response\n }\n return completeLoginSession(response)\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type {\n LoginPayload,\n MutationOptions,\n PreLoginPayload,\n ForgetPasswordPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload\n} from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\nimport { getParam } from '../../../core/utils/param'\nimport { removeAllCookie } from '../../../core/utils/cookie'\nimport { clearAccessToken } from '../../../core/http/token-store'\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload)\n return response\n }, options)\n\n return {\n mutate,\n preLogin: mutate,\n isLoading\n }\n}\n\n/**\n * Password login for the client portal.\n *\n * **API:** `POST /api/auth/login?hubId={hubId}`\n * **Session:** When `twoFactorRequired` is true, stores only the temp access JWT (no refresh until MFA completes).\n */\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.login(payload)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n login: mutate,\n isLoading\n }\n}\n\nexport interface ClientSessionPayload {\n accessToken: string\n refreshToken?: string\n}\n\n/**\n * Exchange a management/deep-link token for a portal client session.\n *\n * **API:** `POST /api/auth/client-session`\n * **Auth:** Bearer access token header; optional refresh token in body.\n */\nexport function clientSession(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ClientSessionPayload, any>(async (payload?: ClientSessionPayload) => {\n const response: any = await Client.authentication.clientSession(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n clientSession: mutate,\n isLoading\n }\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {}\n const token: any = getParam('token')\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload)\n return response\n }, options)\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading\n }\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {}\n const token: any = getParam('token')\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload)\n return response\n }, options)\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading\n }\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading\n }\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading\n }\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await Client.authentication.logout()\n\n clearAccessToken()\n removeAllCookie()\n\n return response\n }, options)\n\n return {\n mutate,\n logout: mutate,\n isLoading\n }\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload)\n return response\n }, options)\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading\n }\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload)\n return response\n }, options)\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading\n }\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload)\n return response\n }, options)\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\nimport type {\n MfaOtpSendRequest,\n MfaPendingPasskeyOptionsRequest,\n MfaPendingPasskeyVerifyRequest,\n MfaPreferenceRequest,\n MfaStatusQuery,\n MutationOptions,\n PasskeyLoginOptionsRequest,\n PasskeyLoginVerifyRequest,\n PhoneVerifyConfirmRequest,\n PhoneVerifyStartRequest,\n TotpDisableRequest,\n TotpEnrollVerifyRequest,\n TwoFaVerificationRequest,\n WebAuthnVerifyRequest\n} from '../../../core/types'\n\n/**\n * Complete the MFA login step after `api.login()` returned `twoFactorRequired: true`.\n *\n * **API:** `POST /api/auth/verify-otp?hubId={hubId}`\n * **Auth:** Bearer temp JWT; body `{ token, otp, method }` (`EMAIL_OTP` | `SMS_OTP` | `TOTP` | `BACKUP_CODE`).\n * **Session:** On success persists full access + refresh tokens (skips when still MFA-pending).\n */\nexport function verifyOtp(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TwoFaVerificationRequest, any>(async (payload?: TwoFaVerificationRequest) => {\n const response: any = await Client.authentication.verifyOtp(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, verifyOtp: mutate, isLoading }\n}\n\n/**\n * Resend OTP or switch to email/SMS on the MFA login gate.\n *\n * **API:** `POST /api/auth/mfa/pending/otp/send`\n * **Auth:** Bearer temp JWT; body `{ token, method }`.\n */\nexport function sendMfaOtp(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaOtpSendRequest, any>(\n async (payload?: MfaOtpSendRequest) => Client.mfa.sendPendingOtp(payload!),\n options\n )\n\n return { mutate, sendOtp: mutate, sendMfaOtp: mutate, isLoading }\n}\n\n/**\n * Start WebAuthn ceremony for passkey as second factor during login.\n *\n * **API:** `POST /api/auth/mfa/pending/passkey/authenticate/options`\n * **Auth:** Bearer temp JWT; body `{ token, portalId? }`.\n */\nexport function pendingPasskeyOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPendingPasskeyOptionsRequest, any>(\n async (payload?: MfaPendingPasskeyOptionsRequest) => Client.mfa.pendingPasskeyOptions(payload!),\n options\n )\n\n return { mutate, pendingPasskeyOptions: mutate, isLoading }\n}\n\n/**\n * Finish passkey MFA-step and complete login when successful.\n *\n * **API:** `POST /api/auth/mfa/pending/passkey/authenticate/verify?hubId={hubId}`\n * **Auth:** Bearer temp JWT; body `{ token, challengeId, credential, portalId? }`.\n * **Session:** On success persists full access + refresh tokens.\n */\nexport function pendingPasskeyVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPendingPasskeyVerifyRequest, any>(async (payload?: MfaPendingPasskeyVerifyRequest) => {\n const response: any = await Client.mfa.pendingPasskeyVerify(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, pendingPasskeyVerify: mutate, isLoading }\n}\n\n/**\n * MFA enrollment and policy snapshot for the security settings UI.\n *\n * **API:** `GET /api/auth/mfa/status?portalId={portalId}`\n * **Auth:** Bearer access JWT (full session).\n */\nexport function getMfaStatus(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.getStatus(payload), options)\n\n return { mutate, getStatus: mutate, getMfaStatus: mutate, isLoading }\n}\n\n/**\n * Set the user's default MFA method for this hub/portal scope.\n *\n * **API:** `PUT /api/auth/mfa/preferences?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ defaultMethod }`.\n */\nexport function setMfaPreferences(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaPreferenceRequest & MfaStatusQuery, any>(\n async (payload?: MfaPreferenceRequest & MfaStatusQuery) => {\n const { portalId, ...data } = payload!\n return Client.mfa.setPreferences(data, { portalId })\n },\n options\n )\n\n return { mutate, setPreferences: mutate, setMfaPreferences: mutate, isLoading }\n}\n\n/**\n * Send OTP to verify the user's phone number (enables SMS OTP at login).\n *\n * **API:** `POST /api/auth/mfa/phone/verify/start`\n * **Auth:** Bearer access JWT; body `{ phone }` (E.164, e.g. `+14155552671`).\n */\nexport function startPhoneVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PhoneVerifyStartRequest, any>(\n async (payload?: PhoneVerifyStartRequest) => Client.mfa.startPhoneVerify(payload!),\n options\n )\n\n return { mutate, startPhoneVerify: mutate, isLoading }\n}\n\n/**\n * Confirm phone verification with the OTP code.\n *\n * **API:** `POST /api/auth/mfa/phone/verify/confirm`\n * **Auth:** Bearer access JWT; body `{ phone, code }`.\n */\nexport function confirmPhoneVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PhoneVerifyConfirmRequest, any>(\n async (payload?: PhoneVerifyConfirmRequest) => Client.mfa.confirmPhoneVerify(payload!),\n options\n )\n\n return { mutate, confirmPhoneVerify: mutate, isLoading }\n}\n\n/**\n * Start TOTP authenticator enrollment for the current portal scope.\n *\n * **API:** `POST /api/auth/mfa/totp/enroll/start?portalId={portalId}`\n * **Auth:** Bearer access JWT. Returns `secret`, `otpauthUri`, `scopeKey`.\n */\nexport function totpEnrollStart(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.totpEnrollStart(payload), options)\n\n return { mutate, totpEnrollStart: mutate, isLoading }\n}\n\n/**\n * Confirm TOTP enrollment and receive one-time backup codes.\n *\n * **API:** `POST /api/auth/mfa/totp/enroll/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ code, portalId? }`.\n */\nexport function totpEnrollVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TotpEnrollVerifyRequest, any>(\n async (payload?: TotpEnrollVerifyRequest) => Client.mfa.totpEnrollVerify(payload!),\n options\n )\n\n return { mutate, totpEnrollVerify: mutate, isLoading }\n}\n\n/**\n * Disable TOTP for the current scope (requires current password).\n *\n * **API:** `POST /api/auth/mfa/totp/disable`\n * **Auth:** Bearer access JWT; body `{ password }`.\n */\nexport function totpDisable(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<TotpDisableRequest, any>(\n async (payload?: TotpDisableRequest) => Client.mfa.totpDisable(payload!),\n options\n )\n\n return { mutate, totpDisable: mutate, isLoading }\n}\n\n/**\n * Start passkey (WebAuthn) registration ceremony.\n *\n * **API:** `POST /api/auth/mfa/webauthn/register/options?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function webauthnRegisterOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(\n async (payload) => Client.mfa.webauthnRegisterOptions(payload),\n options\n )\n\n return { mutate, webauthnRegisterOptions: mutate, isLoading }\n}\n\n/**\n * Complete passkey registration after `@simplewebauthn/browser` ceremony.\n *\n * **API:** `POST /api/auth/mfa/webauthn/register/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ challengeId, credential, nickname?, portalId? }`.\n */\nexport function webauthnRegisterVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<WebAuthnVerifyRequest, any>(\n async (payload?: WebAuthnVerifyRequest) => Client.mfa.webauthnRegisterVerify(payload!),\n options\n )\n\n return { mutate, webauthnRegisterVerify: mutate, isLoading }\n}\n\n/**\n * Start passkey authentication ceremony while logged in (re-verify).\n *\n * **API:** `POST /api/auth/mfa/webauthn/authenticate/options?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function webauthnAuthOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(async (payload) => Client.mfa.webauthnAuthOptions(payload), options)\n\n return { mutate, webauthnAuthOptions: mutate, isLoading }\n}\n\n/**\n * Complete logged-in passkey re-verification.\n *\n * **API:** `POST /api/auth/mfa/webauthn/authenticate/verify?portalId={portalId}`\n * **Auth:** Bearer access JWT; body `{ challengeId, credential, portalId? }`.\n */\nexport function webauthnAuthVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<WebAuthnVerifyRequest, any>(\n async (payload?: WebAuthnVerifyRequest) => Client.mfa.webauthnAuthVerify(payload!),\n options\n )\n\n return { mutate, webauthnAuthVerify: mutate, isLoading }\n}\n\n/**\n * List passkeys registered for the portal scope.\n *\n * **API:** `GET /api/auth/mfa/webauthn/credentials?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function listWebauthnCredentials(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<MfaStatusQuery | undefined, any>(\n async (payload) => Client.mfa.listWebauthnCredentials(payload),\n options\n )\n\n return { mutate, listWebauthnCredentials: mutate, isLoading }\n}\n\n/**\n * Remove a registered passkey.\n *\n * **API:** `DELETE /api/auth/mfa/webauthn/credentials/{credentialRecordId}?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function deleteWebauthnCredential(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<{ credentialRecordId: string | number } & MfaStatusQuery, any>(\n async (payload?: { credentialRecordId: string | number } & MfaStatusQuery) => {\n const { credentialRecordId, portalId } = payload!\n return Client.mfa.deleteWebauthnCredential(credentialRecordId, { portalId })\n },\n options\n )\n\n return { mutate, deleteWebauthnCredential: mutate, isLoading }\n}\n\n/**\n * Start passwordless passkey login (when `PASSKEY_PRIMARY` is allowed).\n *\n * **API:** `POST /api/auth/passkey/login/options?hubId={hubId}`\n * **Auth:** Public; body `{ email, hubId?, portalId? }`.\n */\nexport function passkeyLoginOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PasskeyLoginOptionsRequest, any>(\n async (payload?: PasskeyLoginOptionsRequest) => Client.mfa.passkeyLoginOptions(payload!),\n options\n )\n\n return { mutate, passkeyLoginOptions: mutate, isLoading }\n}\n\n/**\n * Finish passwordless passkey login; may return `twoFactorRequired` if policy requires MFA.\n *\n * **API:** `POST /api/auth/passkey/login/verify?hubId={hubId}`\n * **Auth:** Public; body `{ challengeId, credential, portalId? }`.\n * **Session:** Applies MFA-aware token rules via {@link applyLoginResponse}.\n */\nexport function passkeyLoginVerify(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PasskeyLoginVerifyRequest, any>(async (payload?: PasskeyLoginVerifyRequest) => {\n const response: any = await Client.mfa.passkeyLoginVerify(payload!)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return { mutate, passkeyLoginVerify: mutate, isLoading }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport type {\n MutationOptions,\n RevokeSecuritySessionPayload,\n SecurityLoginActivityQuery,\n SecurityOverviewQuery,\n SecuritySessionsQuery\n} from '../../../core/types'\n\n/**\n * Security settings overview (password age, MFA methods, policy flags).\n * Use this for the Security page — not `api.me()` + `api.getMfaStatus()`.\n *\n * **API:** `GET /api/auth/security/overview?portalId={portalId}`\n * **Auth:** Bearer access JWT.\n */\nexport function getSecurityOverview(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecurityOverviewQuery | undefined, any>(\n async (payload) => Client.security.getOverview(payload),\n options\n )\n\n return { mutate, getOverview: mutate, getSecurityOverview: mutate, isLoading }\n}\n\n/**\n * Paginated login activity for the Security page.\n *\n * **API:** `GET /api/auth/security/login-activity?page=&limit=&sort=`\n * **Auth:** Bearer access JWT.\n */\nexport function getSecurityLoginActivity(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecurityLoginActivityQuery | undefined, any>(\n async (payload) => Client.security.getLoginActivity(payload),\n options\n )\n\n return { mutate, getLoginActivity: mutate, getSecurityLoginActivity: mutate, isLoading }\n}\n\n/**\n * List active sessions (refresh-token families) for the Security page.\n *\n * **API:** `GET /api/auth/security/sessions?currentFamilyId=`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload → `X-Refresh-Token` header to mark current session.\n */\nexport function getSecuritySessions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<SecuritySessionsQuery | undefined, any>(\n async (payload) => Client.security.getSessions(payload),\n options\n )\n\n return { mutate, getSessions: mutate, getSecuritySessions: mutate, isLoading }\n}\n\n/**\n * Sign out a single device/session by `familyId`.\n *\n * **API:** `POST /api/auth/security/sessions/{familyId}/revoke`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload.\n */\nexport function revokeSecuritySession(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<RevokeSecuritySessionPayload, any>(\n async (payload?: RevokeSecuritySessionPayload) => Client.security.revokeSession(payload!),\n options\n )\n\n return { mutate, revokeSession: mutate, revokeSecuritySession: mutate, isLoading }\n}\n\n/**\n * Sign out all other devices; keeps the current session when `refreshToken` is provided.\n *\n * **API:** `POST /api/auth/security/sessions/revoke-others`\n * **Auth:** Bearer access JWT; optional `refreshToken` in payload → `X-Refresh-Token` header.\n */\nexport function revokeOtherSecuritySessions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<{ refreshToken?: string } | undefined, any>(\n async (payload) => Client.security.revokeOtherSessions(payload?.refreshToken),\n options\n )\n\n return { mutate, revokeOtherSessions: mutate, revokeOtherSecuritySessions: mutate, isLoading }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions, PreLoginPayload } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { applyLoginResponse } from '../../../core/http/login-session'\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await Client.sso.getSsoDetails()\n return response\n }, options)\n\n return {\n mutate,\n getDetails: mutate,\n getSsoDetails: mutate,\n isLoading\n }\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload)\n return response\n }, options)\n\n return {\n mutate,\n generateUrl: mutate,\n generateSsoUrl: mutate,\n isLoading\n }\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload)\n await applyLoginResponse(response)\n return response\n }, options)\n\n return {\n mutate,\n callback: mutate,\n ssoCallback: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { ChangePasswordPayload, MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as userActions } from '../../../state/crm/use-user'\n\nlet meRequestInFlight: Promise<any> | null = null\n\nasync function fetchMeOnce() {\n if (!meRequestInFlight) {\n meRequestInFlight = Client.user.me().finally(() => {\n meRequestInFlight = null\n })\n }\n return meRequestInFlight\n}\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async () => {\n const response: any = await fetchMeOnce()\n userActions.setProfile(response)\n return response?.data\n }, options)\n\n return {\n mutate,\n me: mutate,\n isLoading\n }\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod)\n return response\n }, options)\n\n return {\n mutate,\n profile: mutate,\n isLoading\n }\n}\n\nexport function profileUpdate(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(async (paylaod: any) => {\n const response: any = await Client.user.profileUpdate(paylaod)\n return response\n }, options)\n\n return {\n mutate,\n updateProfile: mutate,\n profileUpdate: mutate,\n isLoading\n }\n}\n\n/** @deprecated Use {@link profileUpdate} — same factory; 3.0 nested key is `updateProfile`. */\nexport const updateProfile = profileUpdate\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(async (payload: any) => {\n const response: any = await Client.user.changePassword(payload)\n return response\n }, options)\n\n return {\n mutate,\n changePassword: mutate,\n isLoading\n }\n}\n","import {\n preLogin,\n login,\n clientSession,\n verifyEmail,\n forgetPassword,\n logout,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail\n} from '../features/auth/api/authentication'\nimport {\n verifyOtp,\n sendMfaOtp,\n pendingPasskeyOptions,\n pendingPasskeyVerify,\n getMfaStatus,\n setMfaPreferences,\n startPhoneVerify,\n confirmPhoneVerify,\n totpEnrollStart,\n totpEnrollVerify,\n totpDisable,\n webauthnRegisterOptions,\n webauthnRegisterVerify,\n webauthnAuthOptions,\n webauthnAuthVerify,\n listWebauthnCredentials,\n deleteWebauthnCredential,\n passkeyLoginOptions,\n passkeyLoginVerify\n} from '../features/auth/api/mfa'\nimport {\n getSecurityOverview,\n getSecurityLoginActivity,\n getSecuritySessions,\n revokeSecuritySession,\n revokeOtherSecuritySessions\n} from '../features/auth/api/security'\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from '../features/auth/api/sso'\nimport { changePassword, me, profile, profileUpdate } from '../features/auth/api/users'\nimport { getRefreshToken } from '../core/http/auth-utils'\nimport { getAuthRefreshToken } from '../core/http/http-client'\nimport { getAccessToken, isAuthenticateApp, isAuthenticated, isExpiresAccessToken, isAccessTokenExpired } from '../core/http/token-store'\nimport { isCookieExpired } from '../core/utils/cookie'\n\n/** Canonical nested auth API (SDK 3.0). */\nexport const authApi = {\n preLogin,\n login,\n clientSession,\n logout,\n verifyEmail,\n registerExistingUser,\n forgetPassword,\n resetPassword,\n resetPasswordVerifyToken,\n verifyEmailResend,\n resendEmail,\n changePassword,\n me,\n profile,\n updateProfile: profileUpdate,\n mfa: {\n verifyOtp,\n sendOtp: sendMfaOtp,\n pendingPasskeyOptions,\n pendingPasskeyVerify,\n getStatus: getMfaStatus,\n setPreferences: setMfaPreferences,\n startPhoneVerify,\n confirmPhoneVerify,\n totpEnrollStart,\n totpEnrollVerify,\n totpDisable,\n webauthnRegisterOptions,\n webauthnRegisterVerify,\n webauthnAuthOptions,\n webauthnAuthVerify,\n listWebauthnCredentials,\n deleteWebauthnCredential,\n passkeyLoginOptions,\n passkeyLoginVerify\n },\n security: {\n getOverview: getSecurityOverview,\n getLoginActivity: getSecurityLoginActivity,\n getSessions: getSecuritySessions,\n revokeSession: revokeSecuritySession,\n revokeOtherSessions: revokeOtherSecuritySessions\n },\n sso: {\n getDetails: getSsoDetails,\n generateUrl: generateSsoUrl,\n callback: ssoCallback\n },\n session: {\n getRefreshToken,\n refreshAccessToken: getAuthRefreshToken,\n getAccessToken,\n isAuthenticated,\n isAuthenticateApp,\n isAccessTokenExpired,\n isExpiresAccessToken,\n isCookieExpired\n }\n}\n"]}
|