woodsportal-client-sdk 4.0.4-dev.9 → 4.0.7-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.
Files changed (65) hide show
  1. package/dist/adapters/angular/index.d.ts +1 -0
  2. package/dist/adapters/angular/index.js +6 -4
  3. package/dist/adapters/angular/index.js.map +1 -1
  4. package/dist/adapters/react/index.d.ts +1 -0
  5. package/dist/adapters/react/index.js +6 -4
  6. package/dist/adapters/react/index.js.map +1 -1
  7. package/dist/adapters/vue/index.d.ts +1 -0
  8. package/dist/adapters/vue/index.js +6 -4
  9. package/dist/adapters/vue/index.js.map +1 -1
  10. package/dist/auth-error-codes-D7CXVBEN.js +3 -0
  11. package/dist/auth-error-codes-D7CXVBEN.js.map +1 -0
  12. package/dist/auth-interceptor-policy-LU2L5NJM.js +5 -0
  13. package/dist/auth-interceptor-policy-LU2L5NJM.js.map +1 -0
  14. package/dist/auth-utils-Z5P6SMLJ.js +5 -0
  15. package/dist/{auth-utils-MNMC2QGX.js.map → auth-utils-Z5P6SMLJ.js.map} +1 -1
  16. package/dist/chunk-55MIERLJ.js +3 -0
  17. package/dist/chunk-55MIERLJ.js.map +1 -0
  18. package/dist/chunk-6YOL5LPB.js +163 -0
  19. package/dist/chunk-6YOL5LPB.js.map +1 -0
  20. package/dist/chunk-B2OVKOJU.js +633 -0
  21. package/dist/chunk-B2OVKOJU.js.map +1 -0
  22. package/dist/chunk-BKT4MFQM.js +161 -0
  23. package/dist/chunk-BKT4MFQM.js.map +1 -0
  24. package/dist/{chunk-7Q6HRCUA.js → chunk-BURJ2NUL.js} +3 -3
  25. package/dist/{chunk-7Q6HRCUA.js.map → chunk-BURJ2NUL.js.map} +1 -1
  26. package/dist/chunk-COHBSTHF.js +82 -0
  27. package/dist/chunk-COHBSTHF.js.map +1 -0
  28. package/dist/{chunk-2TG7X2ML.js → chunk-FJAOCLB4.js} +12 -11
  29. package/dist/chunk-FJAOCLB4.js.map +1 -0
  30. package/dist/chunk-GUYIJ4ZE.js +165 -0
  31. package/dist/chunk-GUYIJ4ZE.js.map +1 -0
  32. package/dist/{chunk-VCYJAVD3.js → chunk-HAXXPW65.js} +167 -13
  33. package/dist/chunk-HAXXPW65.js.map +1 -0
  34. package/dist/{chunk-IBKBTIT6.js → chunk-OFPD644E.js} +6 -6
  35. package/dist/{chunk-IBKBTIT6.js.map → chunk-OFPD644E.js.map} +1 -1
  36. package/dist/{chunk-ZEJGWZK3.js → chunk-PFOSN7EB.js} +1242 -1269
  37. package/dist/chunk-PFOSN7EB.js.map +1 -0
  38. package/dist/{chunk-4AMFPSO2.js → chunk-WNE4LSVH.js} +465 -258
  39. package/dist/chunk-WNE4LSVH.js.map +1 -0
  40. package/dist/chunk-YNOZWRK3.js +306 -0
  41. package/dist/chunk-YNOZWRK3.js.map +1 -0
  42. package/dist/cross-tab-session-TUFJ6KU7.js +9 -0
  43. package/dist/cross-tab-session-TUFJ6KU7.js.map +1 -0
  44. package/dist/entries/auth.d.ts +17 -3
  45. package/dist/entries/auth.js +9 -4
  46. package/dist/entries/auth.js.map +1 -1
  47. package/dist/entries/crm.d.ts +1 -0
  48. package/dist/entries/crm.js +10 -6
  49. package/dist/entries/crm.js.map +1 -1
  50. package/dist/{http-errors-DqdtoJ1y.d.ts → http-errors-Bwhj6cfB.d.ts} +192 -9
  51. package/dist/index.d.ts +141 -3
  52. package/dist/index.js +16 -9
  53. package/dist/index.js.map +1 -1
  54. package/dist/refresh-lock-JQVP4YOS.js +72 -0
  55. package/dist/refresh-lock-JQVP4YOS.js.map +1 -0
  56. package/dist/storage-migration-BY2QL6YD.js +4 -0
  57. package/dist/storage-migration-BY2QL6YD.js.map +1 -0
  58. package/package.json +11 -9
  59. package/dist/auth-utils-MNMC2QGX.js +0 -3
  60. package/dist/chunk-2TG7X2ML.js.map +0 -1
  61. package/dist/chunk-4AMFPSO2.js.map +0 -1
  62. package/dist/chunk-QPSCMK4W.js +0 -237
  63. package/dist/chunk-QPSCMK4W.js.map +0 -1
  64. package/dist/chunk-VCYJAVD3.js.map +0 -1
  65. package/dist/chunk-ZEJGWZK3.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/core/utils/constants.ts","../src/main/core/utils/localStorage.ts","../src/main/core/utils/runtime-hub-context.ts","../src/main/core/utils/hub-context.ts","../src/main/core/http/iframe-session-storage.ts","../src/main/core/utils/error-log-sanitize.ts","../src/main/core/logging/logger.ts","../src/main/core/http/token-store.ts","../src/main/core/http/auth-utils.ts"],"names":["config","getRefreshToken"],"mappings":"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","file":"chunk-B2OVKOJU.js","sourcesContent":["import { WP_STORAGE_KEYS } from './wp-storage-keys'\n\n// cookies (canonical wp.c.* names)\nexport const LOGIN_DETAILS = WP_STORAGE_KEYS.c.auth.login\nexport const REFRESH_TOKEN = WP_STORAGE_KEYS.c.auth.refresh\nexport const PORTAL = WP_STORAGE_KEYS.c.auth.portal\nexport const SUBSCRIPTION_TYPE = WP_STORAGE_KEYS.c.auth.sub\n\n// hub context fields inside wp.c.hub JSON blob\nexport const HUBSPOT_DATA = WP_STORAGE_KEYS.c.hub\nexport const HUB_ID = 'hubId'\nexport const DEV_PORTAL_ID = 'devPortalId'\nexport const PORTAL_ID = 'portalId'\nexport const DEV_API_URL = 'devApiUrl'\n","type StringStore = {\n getItem(key: string): string | null\n setItem(key: string, value: string): void\n removeItem(key: string): void\n}\n\nconst memory = new Map<string, string>()\n\nconst memoryStore: StringStore = {\n getItem(key: string) {\n return memory.has(key) ? memory.get(key)! : null\n },\n setItem(key: string, value: string) {\n memory.set(key, value)\n },\n removeItem(key: string) {\n memory.delete(key)\n }\n}\n\nfunction resolveStore(): StringStore {\n if (typeof globalThis === 'undefined') {\n return memoryStore\n }\n const ls = (globalThis as unknown as { localStorage?: StringStore }).localStorage\n if (!ls || typeof ls.getItem !== 'function') {\n return memoryStore\n }\n try {\n const probeKey = '__woodsportal_client_sdk_ls_probe__'\n ls.setItem(probeKey, '1')\n ls.removeItem(probeKey)\n return ls\n } catch {\n return memoryStore\n }\n}\n\nexport const storage = {\n set: (key: string, value: unknown) => {\n resolveStore().setItem(key, JSON.stringify(value))\n },\n\n get: <T>(key: string): T | null => {\n const item = resolveStore().getItem(key)\n return item ? (JSON.parse(item) as T) : null\n },\n\n remove: (key: string) => {\n resolveStore().removeItem(key)\n }\n}\n","/** Initialized HTTP client hub context — fallback when storage is empty (avoids import cycles). */\nlet initializedHubId = ''\nlet initializedDevPortalId = ''\nlet initializedDevApiUrl = ''\n\nexport function setRuntimeHttpClientHubContext(partial: { hubId?: string; devPortalId?: string; devApiUrl?: string }): void {\n if (partial.hubId != null) {\n initializedHubId = partial.hubId\n }\n if (partial.devPortalId != null) {\n initializedDevPortalId = partial.devPortalId\n }\n if (partial.devApiUrl != null) {\n initializedDevApiUrl = partial.devApiUrl\n }\n}\n\nexport function getRuntimeHttpClientHubId(): string {\n return initializedHubId\n}\n\nexport function getRuntimeHttpClientDevPortalId(): string {\n return initializedDevPortalId\n}\n\nexport function getRuntimeHttpClientDevApiUrl(): string {\n return initializedDevApiUrl\n}\n\n/** @internal Vitest only */\nexport function resetRuntimeHttpClientHubContextForTests(): void {\n initializedHubId = ''\n initializedDevPortalId = ''\n initializedDevApiUrl = ''\n}\n","import { Config, HubspotStorage } from '../types'\nimport { HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID, DEV_API_URL } from './constants'\nimport { storage } from './localStorage'\nimport { getRuntimeHttpClientDevApiUrl, getRuntimeHttpClientDevPortalId, getRuntimeHttpClientHubId } from './runtime-hub-context'\n\nfunction readStorageField(key: string): string {\n const hubSpotData = storage.get<Record<string, string>>(HUBSPOT_DATA)\n const value = hubSpotData?.[key]\n return value != null && String(value).trim() !== '' ? String(value) : ''\n}\n\nexport const config = {\n get hubId() {\n return readStorageField(HUB_ID) || getRuntimeHttpClientHubId()\n },\n get devPortalId() {\n return readStorageField(DEV_PORTAL_ID) || getRuntimeHttpClientDevPortalId()\n },\n get portalId() {\n return readStorageField(PORTAL_ID)\n },\n get devApiUrl() {\n return readStorageField(DEV_API_URL) || getRuntimeHttpClientDevApiUrl()\n }\n} satisfies Config\n\nexport const setConfig = {\n setDevPortalId(portalId: string) {\n const existing = storage.get<HubspotStorage>(HUBSPOT_DATA) || {}\n\n storage.set(HUBSPOT_DATA, {\n ...existing,\n [PORTAL_ID]: portalId\n })\n }\n}\n","/**\n * Iframe-safe refresh token persistence (HubSpot CMS editor third-party cookie fallback).\n */\n\nimport { wpClientIframeRefreshExpKey, wpClientIframeRefreshKey, WP_STORAGE_KEYS } from '../utils/wp-storage-keys'\nimport { config } from '../utils/hub-context'\n\nlet iframeStorageMode = false\n\nexport function setIframeStorageMode(enabled: boolean): void {\n iframeStorageMode = enabled\n}\n\nexport function isIframeStorageMode(): boolean {\n return iframeStorageMode\n}\n\nfunction resolveHubId(): string | number {\n const fromWindow =\n typeof window !== 'undefined' ? (window as Window & { hubSpotData?: { hubId?: string | number } }).hubSpotData?.hubId : undefined\n const fromConfig = config.hubId\n return fromWindow ?? fromConfig ?? 'default'\n}\n\nfunction iframeKey(): string {\n return wpClientIframeRefreshKey(resolveHubId())\n}\n\nfunction iframeExpKey(): string {\n return wpClientIframeRefreshExpKey(resolveHubId())\n}\n\nexport function readIframeRefreshToken(): string | null {\n if (typeof window === 'undefined' || !window.localStorage) {\n return null\n }\n try {\n const raw = window.localStorage.getItem(iframeKey())\n return raw ? (JSON.parse(raw) as string) : null\n } catch {\n return null\n }\n}\n\nexport function writeIframeRefreshToken(token: string, expiresAtMs?: number): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n window.localStorage.setItem(iframeKey(), JSON.stringify(token))\n if (expiresAtMs != null) {\n window.localStorage.setItem(iframeExpKey(), String(expiresAtMs))\n }\n } catch {\n // private mode / blocked storage\n }\n}\n\nexport function clearIframeRefreshToken(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n window.localStorage.removeItem(iframeKey())\n window.localStorage.removeItem(iframeExpKey())\n } catch {\n // ignore\n }\n}\n\nexport function iframeRefreshTokenExpired(): boolean {\n if (typeof window === 'undefined' || !window.localStorage) {\n return true\n }\n try {\n const expRaw = window.localStorage.getItem(iframeExpKey())\n if (!expRaw) {\n return false\n }\n const exp = Number(expRaw)\n return Number.isFinite(exp) && Date.now() > exp\n } catch {\n return true\n }\n}\n\nexport function listIframeRefreshKeyPrefixes(): string[] {\n return ['wp_iframe_rt_', WP_STORAGE_KEYS.c.auth.iframeRtPrefix]\n}\n","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","/**\n\n * Token storage utilities\n\n * These functions handle access token management\n\n */\n\nimport { getCookie, isCookieExpired, isCorruptCookieRawValue } from '../utils/cookie.js'\n\nimport { getStorageKeys } from '../utils/storage-keys'\nimport { WP_STORAGE_KEYS } from '../utils/wp-storage-keys.js'\nimport { isIframeStorageMode, readIframeRefreshToken } from './iframe-session-storage.js'\nimport { logger } from '../logging/logger.js'\n\nlet accessToken: string | null = null\n\nlet tokenExpiresAt: number | null = null\n\nlet accessTtlMs: number | null = null\n\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null\n\nlet refreshBufferSeconds = 60\n\nlet refreshPromise: Promise<void> | null = null\n\nlet lastRefreshFailed = false\n\nlet lastSuccessfulRefreshAt: number | null = null\n\nlet sessionLifecycleListener: (() => void) | null = null\n\nconst MIN_SHORT_TTL_BUFFER_MS = 5_000\n\nconst MIN_PROACTIVE_REFRESH_INTERVAL_MS = 30_000\n\n/** Exported for unit tests. */\n\nexport function getEffectiveBufferMs(ttlMs: number): number {\n const capMs = refreshBufferSeconds * 1000\n\n let buffer: number\n if (ttlMs <= capMs) {\n buffer = Math.max(MIN_SHORT_TTL_BUFFER_MS, Math.floor(ttlMs * 0.2))\n } else {\n buffer = capMs\n }\n\n // Buffer must stay inside the token lifetime — otherwise every request looks \"expired\".\n const maxBuffer = Math.max(0, ttlMs - 1_000)\n return Math.min(buffer, maxBuffer)\n}\n\nfunction getCurrentBufferMs(): number {\n if (accessTtlMs != null && accessTtlMs > 0) {\n return getEffectiveBufferMs(accessTtlMs)\n }\n\n return refreshBufferSeconds * 1000\n}\n\nexport function getAccessToken(): string | null {\n return accessToken\n}\n\nexport function setSessionLifecycleListener(listener: (() => void) | null): void {\n sessionLifecycleListener = listener\n}\n\nfunction notifySessionLifecycleChange(): void {\n try {\n sessionLifecycleListener?.()\n } catch {\n // ignore listener errors\n }\n}\n\nfunction persistRefreshExhausted(): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n window.sessionStorage.setItem(WP_STORAGE_KEYS.c.auth.refreshExhausted, JSON.stringify({ ts: Date.now() }))\n } catch {\n // ignore quota / private mode\n }\n}\n\nfunction clearPersistedRefreshExhausted(): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n window.sessionStorage.removeItem(WP_STORAGE_KEYS.c.auth.refreshExhausted)\n } catch {\n // ignore\n }\n}\n\nfunction readPersistedRefreshExhausted(): boolean {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return false\n }\n try {\n return Boolean(window.sessionStorage.getItem(WP_STORAGE_KEYS.c.auth.refreshExhausted))\n } catch {\n return false\n }\n}\n\n/** Restore in-memory refresh-failure state after a full page reload (same tab). */\nexport function hydrateSessionRefreshState(): void {\n if (readPersistedRefreshExhausted()) {\n lastRefreshFailed = true\n }\n}\n\nexport function clearSessionRefreshExhaustedState(): void {\n lastRefreshFailed = false\n clearPersistedRefreshExhausted()\n}\n\nfunction markRefreshFailed(): void {\n lastRefreshFailed = true\n persistRefreshExhausted()\n clearAccessToken()\n notifySessionLifecycleChange()\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token\n\n clearSessionRefreshExhaustedState()\n\n if (expiresIn != null && expiresIn > 0) {\n accessTtlMs = expiresIn * 1000\n\n tokenExpiresAt = Date.now() + accessTtlMs\n } else {\n accessTtlMs = null\n\n tokenExpiresAt = null\n }\n\n notifySessionLifecycleChange()\n}\n\nexport function clearAccessToken(): void {\n accessToken = null\n\n tokenExpiresAt = null\n\n accessTtlMs = null\n\n lastSuccessfulRefreshAt = null\n}\n\n/** Clears proactive refresh throttle only — refresh exhaustion survives until login or T3 sessionStorage clear. */\nexport function resetSessionAuthState(): void {\n lastSuccessfulRefreshAt = null\n}\n\nexport function setRefreshBufferSeconds(seconds: number): void {\n refreshBufferSeconds = Math.max(0, seconds)\n}\n\nexport function getRefreshBufferSeconds(): number {\n return refreshBufferSeconds\n}\n\nexport function didLastRefreshFail(): boolean {\n return lastRefreshFailed\n}\n\n/** Alias for route guards — refresh was attempted and failed with no new access JWT. */\nexport function isSessionRefreshExhausted(): boolean {\n if (lastRefreshFailed) {\n return true\n }\n if (readPersistedRefreshExhausted()) {\n lastRefreshFailed = true\n return true\n }\n return false\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!accessToken) return true\n\n if (tokenExpiresAt === null) return false\n\n const bufferMs = getCurrentBufferMs()\n\n return Date.now() >= tokenExpiresAt - bufferMs\n}\n\n/**\n\n * Set the refresh callback function\n\n * This is called by the HTTP client during initialization\n\n */\n\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback\n}\n\nexport function isRefreshInFlight(): boolean {\n return refreshPromise != null\n}\n\nexport type RefreshSessionOptions = {\n /** Bypass min proactive refresh interval (e.g. 401 retry, cold bootstrap). */\n\n force?: boolean\n}\n\n/** Single deduped refresh entry point for bootstrap, HTTP client, and visibility handlers. */\n\nexport async function refreshSession(options: RefreshSessionOptions = {}): Promise<void> {\n const { force = false } = options\n\n if (!force && lastSuccessfulRefreshAt != null && Date.now() - lastSuccessfulRefreshAt < MIN_PROACTIVE_REFRESH_INTERVAL_MS) {\n return\n }\n\n if (!refreshCallback) {\n return\n }\n\n if (!refreshPromise) {\n refreshPromise = (async () => {\n const { withRefreshLock } = await import('./refresh-lock.js')\n await withRefreshLock(async () => {\n const { getRefreshToken } = await import('./auth-utils.js')\n const refreshToken = getRefreshToken()\n\n if (!refreshToken) {\n markRefreshFailed()\n\n const storageKey = getStorageKeys().refreshToken\n const hasCookieKey =\n typeof document !== 'undefined' &&\n typeof storageKey === 'string' &&\n storageKey.length > 0 &&\n document.cookie.includes(`${storageKey}=`)\n\n logger.warn('auth', 'refresh session aborted: missing refresh token', {\n operation: 'refreshSession',\n storageKey,\n hasCookieKey,\n iframeStorageMode: isIframeStorageMode()\n })\n\n throw new Error('Session expired: missing refresh token')\n }\n\n const result = await refreshCallback!(refreshToken)\n\n if (!result.success || !result.token) {\n markRefreshFailed()\n\n throw new Error('Session refresh failed')\n }\n\n lastRefreshFailed = false\n\n lastSuccessfulRefreshAt = Date.now()\n })\n })().finally(() => {\n refreshPromise = null\n })\n }\n\n await refreshPromise\n}\n\n/**\n\n * Ensures the access token is valid, refreshing if necessary.\n\n * Throws when refresh is required but fails (avoids bearer-less 401 loops).\n\n */\n\nexport async function ensureValidRefresh(): Promise<void> {\n if (!isExpiresAccessToken()) {\n return\n }\n\n // Pre-request refresh must not be throttled by the proactive min interval.\n await refreshSession({ force: true })\n}\n\nexport function isAuthenticateApp() {\n const token = getAccessToken()\n\n if (token) {\n const bufferMs = getCurrentBufferMs()\n\n if (tokenExpiresAt === null || Date.now() < tokenExpiresAt - bufferMs) {\n return true\n }\n }\n\n if (!isCookieExpired(getStorageKeys().refreshToken)) {\n if (lastRefreshFailed && !token) {\n return false\n }\n return true\n }\n\n return false\n}\n\n/** Preferred 3.0 name for {@link isAuthenticateApp}. */\n\nexport function isAuthenticated() {\n return isAuthenticateApp()\n}\n\n/** Preferred 3.0 name for {@link isExpiresAccessToken}. */\n\nexport function isAccessTokenExpired() {\n return isExpiresAccessToken()\n}\n\nexport function hasRefreshSession(): boolean {\n if (isSessionRefreshExhausted() && !accessToken) {\n return false\n }\n const refreshKey = getStorageKeys().refreshToken\n if (!refreshKey || isCookieExpired(refreshKey)) {\n return false\n }\n if (!readRefreshTokenValue()) {\n return false\n }\n if (lastRefreshFailed && !accessToken) {\n return false\n }\n return true\n}\n\nfunction readRefreshTokenValue(): string | null {\n const key = getStorageKeys().refreshToken\n const raw = getCookie(key)\n if (!isCorruptCookieRawValue(raw)) {\n return raw\n }\n if (isIframeStorageMode()) {\n return readIframeRefreshToken()\n }\n return null\n}\n\nexport function hasValidAccessToken(): boolean {\n return Boolean(getAccessToken()) && !isExpiresAccessToken()\n}\n","/**\n\n * Authentication utility functions\n\n * These handle refresh token management\n\n */\n\nimport { setCookie, parseCookieJson, stringifyCookieValue, getCookie, isCorruptCookieRawValue } from '../utils/cookie'\n\nimport { getStorageKeys } from '../utils/storage-keys'\n\nimport { storAccessToken } from './token-store'\n\nimport { isIframeStorageMode, readIframeRefreshToken, writeIframeRefreshToken } from './iframe-session-storage'\n\nfunction writeJsonCookie(key: string | undefined, data: unknown, expire?: number | Date): void {\n if (!key) {\n return\n }\n\n const serialized = stringifyCookieValue(data)\n\n if (serialized == null) {\n return\n }\n\n setCookie(key, serialized, expire)\n}\n\n// Set data\n\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n const keys = getStorageKeys()\n\n writeJsonCookie(keys.loginDetails, data)\n\n if (keys.authUser !== keys.loginDetails) {\n writeJsonCookie(keys.authUser, data)\n }\n\n resolve()\n })\n}\n\nexport const setProfileDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n writeJsonCookie(getStorageKeys().loginDetails, data)\n\n resolve()\n })\n}\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n if (!token || typeof token !== 'string') {\n resolve()\n\n return\n }\n\n let expiresMs: number\n\n if (typeof expiresAt === 'number' && expiresAt > 1_000_000_000_000) {\n expiresMs = expiresAt\n } else if (typeof expiresAt === 'number' && expiresAt > 1_000_000_000) {\n expiresMs = expiresAt * 1000\n } else {\n expiresMs = Date.now() + (expiresAt || 0) * 1000\n }\n\n const serialized = stringifyCookieValue(token)\n\n if (serialized != null) {\n setCookie(getStorageKeys().refreshToken, serialized, new Date(expiresMs))\n }\n\n if (isIframeStorageMode()) {\n writeIframeRefreshToken(token, expiresMs)\n }\n\n resolve()\n })\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn)\n\n resolve()\n })\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n writeJsonCookie(getStorageKeys().portal, data ?? {})\n\n resolve()\n })\n}\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n writeJsonCookie(getStorageKeys().subscriptionType, data ?? 'BASIC')\n\n resolve()\n })\n}\n\n// Get data\n\nexport function getProfile(): string | null {\n return parseCookieJson(getStorageKeys().loginDetails)\n}\n\nexport function getRefreshToken(): string | null {\n const raw = getCookie(getStorageKeys().refreshToken)\n\n if (!isCorruptCookieRawValue(raw)) {\n return raw\n }\n\n if (isIframeStorageMode()) {\n return readIframeRefreshToken()\n }\n\n return null\n}\n\nexport function getPortal(): any | null {\n return parseCookieJson(getStorageKeys().portal)\n}\n\nexport function getSubscriptionType(): string | null {\n return parseCookieJson<string>(getStorageKeys().subscriptionType)\n}\n"]}
@@ -0,0 +1,161 @@
1
+ // src/main/core/utils/wp-storage-keys.ts
2
+ var WP_UI_THEME = "wp.ui.theme";
3
+ var WP_STORAGE_KEYS = {
4
+ c: {
5
+ hub: "wp.c.hub",
6
+ auth: {
7
+ login: "wp.c.auth.login",
8
+ refresh: "wp.c.auth.refresh",
9
+ portal: "wp.c.auth.portal",
10
+ sub: "wp.c.auth.sub",
11
+ emailOk: "wp.c.auth.emailOk",
12
+ err: "wp.c.auth.err",
13
+ refreshExhausted: "wp.c.auth.refreshExhausted",
14
+ rev: "wp.c.auth.rev",
15
+ refreshLock: "wp.c.auth.refreshLock",
16
+ iframeRtPrefix: "wp.c.auth.rt."
17
+ },
18
+ ui: {
19
+ pag: "wp.c.ui.pag",
20
+ menu: "wp.c.ui.menu",
21
+ assoc: "wp.c.ui.assoc"
22
+ },
23
+ login: {
24
+ email: "wp.c.login.email",
25
+ force: "wp.c.login.force",
26
+ passkey: "wp.c.login.passkey",
27
+ done: "wp.c.login.done"
28
+ },
29
+ mfa: {
30
+ methods: "wp.c.mfa.methods",
31
+ default: "wp.c.mfa.default",
32
+ otp: "wp.c.mfa.otp",
33
+ scope: "wp.c.mfa.scope",
34
+ portalId: "wp.c.mfa.portalId",
35
+ portalName: "wp.c.mfa.portalName",
36
+ portalUrl: "wp.c.mfa.portalUrl",
37
+ enrolled: "wp.c.mfa.enrolled",
38
+ emailOk: "wp.c.mfa.emailOk",
39
+ phoneOk: "wp.c.mfa.phoneOk"
40
+ },
41
+ sso: {
42
+ cb: "wp.c.sso.cb"
43
+ }
44
+ },
45
+ a: {
46
+ auth: {
47
+ login: "wp.a.auth.login",
48
+ emailOk: "wp.a.auth.emailOk",
49
+ mfa: "wp.a.auth.mfa",
50
+ portalId: "wp.a.auth.portalId",
51
+ portal: "wp.a.auth.portal",
52
+ accT: "wp.a.auth.accT",
53
+ sesT: "wp.a.auth.sesT",
54
+ err: "wp.a.auth.err",
55
+ noBoot: "wp.a.auth.noBoot",
56
+ refreshLock: "wp.a.auth.refreshLock",
57
+ rev: "wp.a.auth.rev"
58
+ },
59
+ hub: {
60
+ id: "wp.a.hub.id",
61
+ acct: "wp.a.hub.acct",
62
+ cfg: "wp.a.hub.cfg"
63
+ },
64
+ sync: {
65
+ create: "wp.a.sync.create",
66
+ state: "wp.a.sync.state",
67
+ jobId: "wp.a.sync.jobId",
68
+ jobType: "wp.a.sync.jobType"
69
+ },
70
+ ui: {
71
+ loading: "wp.a.ui.loading",
72
+ intTabPrefix: "wp.a.ui.intTab."
73
+ },
74
+ mfa: {
75
+ methods: "wp.a.mfa.methods",
76
+ default: "wp.a.mfa.default",
77
+ otp: "wp.a.mfa.otp",
78
+ scope: "wp.a.mfa.scope",
79
+ portalId: "wp.a.mfa.portalId",
80
+ portalName: "wp.a.mfa.portalName",
81
+ portalUrl: "wp.a.mfa.portalUrl",
82
+ enrolled: "wp.a.mfa.enrolled",
83
+ emailOk: "wp.a.mfa.emailOk",
84
+ phoneOk: "wp.a.mfa.phoneOk"
85
+ },
86
+ sso: {
87
+ cbPrefix: "wp.a.sso.cb."
88
+ },
89
+ bill: {
90
+ result: "wp.a.bill.result"
91
+ }
92
+ },
93
+ d: {
94
+ log: "wp.d.log",
95
+ cfg: {
96
+ theme: "wp.d.cfg.theme",
97
+ side: "wp.d.cfg.side"
98
+ }
99
+ }
100
+ };
101
+ function wpClientIframeRefreshKey(hubId) {
102
+ return `${WP_STORAGE_KEYS.c.auth.iframeRtPrefix}${hubId}`;
103
+ }
104
+ function wpClientIframeRefreshExpKey(hubId) {
105
+ return `${wpClientIframeRefreshKey(hubId)}.exp`;
106
+ }
107
+ var LEGACY_CLIENT_AUTH_COOKIES = [
108
+ "woodsportal_login",
109
+ "woodsportal_user",
110
+ "woodsportal_refresh",
111
+ "woodsportal_portal",
112
+ "woodsportal_subscription",
113
+ "woodsportal_pagination",
114
+ "woodsportal_route_menu",
115
+ "woodsportal_association_view",
116
+ "woodsportal_access_token",
117
+ "IS_EMAIL_VERIFY",
118
+ "loginDetails",
119
+ "refreshToken",
120
+ "portal",
121
+ "subscriptionType"
122
+ ];
123
+ var LEGACY_CLIENT_SESSION_EXACT = ["authError", "sso_callback_processed", "entredEmail"];
124
+ var CLIENT_SESSION_STORAGE_MIGRATIONS = [
125
+ ["woodsportal.login.email", WP_STORAGE_KEYS.c.login.email],
126
+ ["woodsportal.login.forcePreLogin", WP_STORAGE_KEYS.c.login.force],
127
+ ["woodsportal.login.passkeyPrimaryEnrolled", WP_STORAGE_KEYS.c.login.passkey],
128
+ ["woodsportal.login.preLoginCompletedKey", WP_STORAGE_KEYS.c.login.done],
129
+ ["authError", WP_STORAGE_KEYS.c.auth.err],
130
+ ["sso_callback_processed", WP_STORAGE_KEYS.c.sso.cb],
131
+ ["woodsportal.mfa.methods", WP_STORAGE_KEYS.c.mfa.methods],
132
+ ["woodsportal.mfa.defaultMethod", WP_STORAGE_KEYS.c.mfa.default],
133
+ ["woodsportal.mfa.otpDelivery", WP_STORAGE_KEYS.c.mfa.otp],
134
+ ["woodsportal.mfa.otpDestinationMasked", WP_STORAGE_KEYS.c.mfa.otp],
135
+ ["woodsportal.mfa.scopeKey", WP_STORAGE_KEYS.c.mfa.scope],
136
+ ["woodsportal.mfa.portalId", WP_STORAGE_KEYS.c.mfa.portalId],
137
+ ["woodsportal.mfa.portalName", WP_STORAGE_KEYS.c.mfa.portalName],
138
+ ["woodsportal.mfa.portalUrl", WP_STORAGE_KEYS.c.mfa.portalUrl],
139
+ ["woodsportal.mfa.enrolledForThisPortal", WP_STORAGE_KEYS.c.mfa.enrolled],
140
+ ["woodsportal.mfa.emailVerifiedForThisPortal", WP_STORAGE_KEYS.c.mfa.emailOk],
141
+ ["woodsportal.mfa.phoneVerifiedForThisPortal", WP_STORAGE_KEYS.c.mfa.phoneOk]
142
+ ];
143
+ var CLIENT_COOKIE_MIGRATIONS = [
144
+ ["woodsportal_login", WP_STORAGE_KEYS.c.auth.login],
145
+ ["loginDetails", WP_STORAGE_KEYS.c.auth.login],
146
+ ["woodsportal_user", WP_STORAGE_KEYS.c.auth.login],
147
+ ["woodsportal_refresh", WP_STORAGE_KEYS.c.auth.refresh],
148
+ ["refreshToken", WP_STORAGE_KEYS.c.auth.refresh],
149
+ ["woodsportal_portal", WP_STORAGE_KEYS.c.auth.portal],
150
+ ["portal", WP_STORAGE_KEYS.c.auth.portal],
151
+ ["woodsportal_subscription", WP_STORAGE_KEYS.c.auth.sub],
152
+ ["subscriptionType", WP_STORAGE_KEYS.c.auth.sub],
153
+ ["woodsportal_pagination", WP_STORAGE_KEYS.c.ui.pag],
154
+ ["woodsportal_route_menu", WP_STORAGE_KEYS.c.ui.menu],
155
+ ["woodsportal_association_view", WP_STORAGE_KEYS.c.ui.assoc],
156
+ ["IS_EMAIL_VERIFY", WP_STORAGE_KEYS.c.auth.emailOk]
157
+ ];
158
+
159
+ export { CLIENT_COOKIE_MIGRATIONS, CLIENT_SESSION_STORAGE_MIGRATIONS, LEGACY_CLIENT_AUTH_COOKIES, LEGACY_CLIENT_SESSION_EXACT, WP_STORAGE_KEYS, WP_UI_THEME, wpClientIframeRefreshExpKey, wpClientIframeRefreshKey };
160
+ //# sourceMappingURL=chunk-BKT4MFQM.js.map
161
+ //# sourceMappingURL=chunk-BKT4MFQM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/core/utils/wp-storage-keys.ts"],"names":[],"mappings":"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","file":"chunk-BKT4MFQM.js","sourcesContent":["/**\n * Canonical WoodsPortal browser storage key names (`wp.{lane}.{domain}.{name}`).\n * Import from here — do not scatter string literals in app code.\n */\n\nexport const WP_UI_THEME = 'wp.ui.theme'\n\nexport const WP_STORAGE_KEYS = {\n c: {\n hub: 'wp.c.hub',\n auth: {\n login: 'wp.c.auth.login',\n refresh: 'wp.c.auth.refresh',\n portal: 'wp.c.auth.portal',\n sub: 'wp.c.auth.sub',\n emailOk: 'wp.c.auth.emailOk',\n err: 'wp.c.auth.err',\n refreshExhausted: 'wp.c.auth.refreshExhausted',\n rev: 'wp.c.auth.rev',\n refreshLock: 'wp.c.auth.refreshLock',\n iframeRtPrefix: 'wp.c.auth.rt.'\n },\n ui: {\n pag: 'wp.c.ui.pag',\n menu: 'wp.c.ui.menu',\n assoc: 'wp.c.ui.assoc'\n },\n login: {\n email: 'wp.c.login.email',\n force: 'wp.c.login.force',\n passkey: 'wp.c.login.passkey',\n done: 'wp.c.login.done'\n },\n mfa: {\n methods: 'wp.c.mfa.methods',\n default: 'wp.c.mfa.default',\n otp: 'wp.c.mfa.otp',\n scope: 'wp.c.mfa.scope',\n portalId: 'wp.c.mfa.portalId',\n portalName: 'wp.c.mfa.portalName',\n portalUrl: 'wp.c.mfa.portalUrl',\n enrolled: 'wp.c.mfa.enrolled',\n emailOk: 'wp.c.mfa.emailOk',\n phoneOk: 'wp.c.mfa.phoneOk'\n },\n sso: {\n cb: 'wp.c.sso.cb'\n }\n },\n a: {\n auth: {\n login: 'wp.a.auth.login',\n emailOk: 'wp.a.auth.emailOk',\n mfa: 'wp.a.auth.mfa',\n portalId: 'wp.a.auth.portalId',\n portal: 'wp.a.auth.portal',\n accT: 'wp.a.auth.accT',\n sesT: 'wp.a.auth.sesT',\n err: 'wp.a.auth.err',\n noBoot: 'wp.a.auth.noBoot',\n refreshLock: 'wp.a.auth.refreshLock',\n rev: 'wp.a.auth.rev'\n },\n hub: {\n id: 'wp.a.hub.id',\n acct: 'wp.a.hub.acct',\n cfg: 'wp.a.hub.cfg'\n },\n sync: {\n create: 'wp.a.sync.create',\n state: 'wp.a.sync.state',\n jobId: 'wp.a.sync.jobId',\n jobType: 'wp.a.sync.jobType'\n },\n ui: {\n loading: 'wp.a.ui.loading',\n intTabPrefix: 'wp.a.ui.intTab.'\n },\n mfa: {\n methods: 'wp.a.mfa.methods',\n default: 'wp.a.mfa.default',\n otp: 'wp.a.mfa.otp',\n scope: 'wp.a.mfa.scope',\n portalId: 'wp.a.mfa.portalId',\n portalName: 'wp.a.mfa.portalName',\n portalUrl: 'wp.a.mfa.portalUrl',\n enrolled: 'wp.a.mfa.enrolled',\n emailOk: 'wp.a.mfa.emailOk',\n phoneOk: 'wp.a.mfa.phoneOk'\n },\n sso: {\n cbPrefix: 'wp.a.sso.cb.'\n },\n bill: {\n result: 'wp.a.bill.result'\n }\n },\n d: {\n log: 'wp.d.log',\n cfg: {\n theme: 'wp.d.cfg.theme',\n side: 'wp.d.cfg.side'\n }\n }\n} as const\n\n/** Dynamic iframe refresh localStorage key for a hub. */\nexport function wpClientIframeRefreshKey(hubId: string | number): string {\n return `${WP_STORAGE_KEYS.c.auth.iframeRtPrefix}${hubId}`\n}\n\nexport function wpClientIframeRefreshExpKey(hubId: string | number): string {\n return `${wpClientIframeRefreshKey(hubId)}.exp`\n}\n\nexport function wpAdminIntegrationTabKey(hubId: string | number, portalId: string | number): string {\n return `${WP_STORAGE_KEYS.a.ui.intTabPrefix}${hubId}.${portalId}`\n}\n\nexport function wpAdminSsoCallbackKey(code: string, state: string): string {\n return `${WP_STORAGE_KEYS.a.sso.cbPrefix}${code}.${state}`\n}\n\n/** Legacy client cookie names cleared during logout (two release cycles). */\nexport const LEGACY_CLIENT_AUTH_COOKIES = [\n 'woodsportal_login',\n 'woodsportal_user',\n 'woodsportal_refresh',\n 'woodsportal_portal',\n 'woodsportal_subscription',\n 'woodsportal_pagination',\n 'woodsportal_route_menu',\n 'woodsportal_association_view',\n 'woodsportal_access_token',\n 'IS_EMAIL_VERIFY',\n 'loginDetails',\n 'refreshToken',\n 'portal',\n 'subscriptionType'\n] as const\n\n/** Legacy client localStorage keys. */\nexport const LEGACY_CLIENT_LOCAL_KEYS = ['hubSpotData', 'theme', 'wp_iframe_rt_'] as const\n\n/** Legacy client sessionStorage key prefixes / exact names. */\nexport const LEGACY_CLIENT_SESSION_EXACT = ['authError', 'sso_callback_processed', 'entredEmail'] as const\n\nexport const LEGACY_CLIENT_SESSION_PREFIXES = ['woodsportal.login.', 'woodsportal.mfa.'] as const\n\n/** Pairs of [legacy, canonical] for exact sessionStorage keys. */\nexport const CLIENT_SESSION_STORAGE_MIGRATIONS: ReadonlyArray<readonly [string, string]> = [\n ['woodsportal.login.email', WP_STORAGE_KEYS.c.login.email],\n ['woodsportal.login.forcePreLogin', WP_STORAGE_KEYS.c.login.force],\n ['woodsportal.login.passkeyPrimaryEnrolled', WP_STORAGE_KEYS.c.login.passkey],\n ['woodsportal.login.preLoginCompletedKey', WP_STORAGE_KEYS.c.login.done],\n ['authError', WP_STORAGE_KEYS.c.auth.err],\n ['sso_callback_processed', WP_STORAGE_KEYS.c.sso.cb],\n ['woodsportal.mfa.methods', WP_STORAGE_KEYS.c.mfa.methods],\n ['woodsportal.mfa.defaultMethod', WP_STORAGE_KEYS.c.mfa.default],\n ['woodsportal.mfa.otpDelivery', WP_STORAGE_KEYS.c.mfa.otp],\n ['woodsportal.mfa.otpDestinationMasked', WP_STORAGE_KEYS.c.mfa.otp],\n ['woodsportal.mfa.scopeKey', WP_STORAGE_KEYS.c.mfa.scope],\n ['woodsportal.mfa.portalId', WP_STORAGE_KEYS.c.mfa.portalId],\n ['woodsportal.mfa.portalName', WP_STORAGE_KEYS.c.mfa.portalName],\n ['woodsportal.mfa.portalUrl', WP_STORAGE_KEYS.c.mfa.portalUrl],\n ['woodsportal.mfa.enrolledForThisPortal', WP_STORAGE_KEYS.c.mfa.enrolled],\n ['woodsportal.mfa.emailVerifiedForThisPortal', WP_STORAGE_KEYS.c.mfa.emailOk],\n ['woodsportal.mfa.phoneVerifiedForThisPortal', WP_STORAGE_KEYS.c.mfa.phoneOk]\n]\n\n/** Cookie migration pairs [legacy, canonical]. */\nexport const CLIENT_COOKIE_MIGRATIONS: ReadonlyArray<readonly [string, string]> = [\n ['woodsportal_login', WP_STORAGE_KEYS.c.auth.login],\n ['loginDetails', WP_STORAGE_KEYS.c.auth.login],\n ['woodsportal_user', WP_STORAGE_KEYS.c.auth.login],\n ['woodsportal_refresh', WP_STORAGE_KEYS.c.auth.refresh],\n ['refreshToken', WP_STORAGE_KEYS.c.auth.refresh],\n ['woodsportal_portal', WP_STORAGE_KEYS.c.auth.portal],\n ['portal', WP_STORAGE_KEYS.c.auth.portal],\n ['woodsportal_subscription', WP_STORAGE_KEYS.c.auth.sub],\n ['subscriptionType', WP_STORAGE_KEYS.c.auth.sub],\n ['woodsportal_pagination', WP_STORAGE_KEYS.c.ui.pag],\n ['woodsportal_route_menu', WP_STORAGE_KEYS.c.ui.menu],\n ['woodsportal_association_view', WP_STORAGE_KEYS.c.ui.assoc],\n ['IS_EMAIL_VERIFY', WP_STORAGE_KEYS.c.auth.emailOk]\n]\n"]}
@@ -1,4 +1,4 @@
1
- import { createStore } from './chunk-ZEJGWZK3.js';
1
+ import { createStore } from './chunk-PFOSN7EB.js';
2
2
 
3
3
  // src/main/state/crm/use-multi-object.ts
4
4
  var multiObjectStore = createStore({
@@ -91,5 +91,5 @@ var actions = {
91
91
  };
92
92
 
93
93
  export { actions, multiObjectStore };
94
- //# sourceMappingURL=chunk-7Q6HRCUA.js.map
95
- //# sourceMappingURL=chunk-7Q6HRCUA.js.map
94
+ //# sourceMappingURL=chunk-BURJ2NUL.js.map
95
+ //# sourceMappingURL=chunk-BURJ2NUL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main/state/crm/use-multi-object.ts"],"names":[],"mappings":"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","file":"chunk-7Q6HRCUA.js","sourcesContent":["import { createStore } from './store'\n\nexport interface MultiObjectTableState {\n objects: Record<string, any>\n objectsPrependData: Record<string, any[]>\n meta: Record<string, { selectedPipeline: string; viewType: string }>\n}\n\nexport const multiObjectStore = createStore<MultiObjectTableState>({\n objects: {},\n objectsPrependData: {},\n meta: {}\n})\n\nfunction getObjectKey(payload: any): string {\n return String(payload?.hubspotObjectTypeId ?? '')\n}\n\nexport const actions = {\n setMultiObjectData(response: any, payload: any) {\n const key = getObjectKey(payload)\n const state = multiObjectStore.getState()\n\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 newPrependForKey = (state.objectsPrependData[key] ?? []).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 selectedPipeline = payload?.selectedPipeline ?? ''\n const viewType = response?.info?.viewType ?? ''\n const prevMeta = state.meta[key]\n\n if (response?.data?.total < 1 || payload?.componentName) {\n newPrependForKey = []\n }\n\n if (prevMeta?.viewType && prevMeta.viewType !== viewType) {\n newPrependForKey = []\n }\n\n if (prevMeta?.selectedPipeline && prevMeta.selectedPipeline !== selectedPipeline) {\n newPrependForKey = []\n }\n\n multiObjectStore.setState({\n objects: { ...state.objects, [key]: response },\n objectsPrependData: { ...state.objectsPrependData, [key]: newPrependForKey },\n meta: {\n ...state.meta,\n [key]: { selectedPipeline, viewType }\n }\n })\n },\n\n clearMultiObjectPrependData(hubspotObjectTypeId?: string) {\n const state = multiObjectStore.getState()\n\n if (!hubspotObjectTypeId) {\n multiObjectStore.setState({ objectsPrependData: {} })\n return\n }\n\n const key = String(hubspotObjectTypeId)\n const { [key]: _, ...rest } = state.objectsPrependData\n multiObjectStore.setState({ objectsPrependData: rest })\n },\n\n async setMultiObjectPrependData(response: any, props?: any) {\n const key = getObjectKey(props)\n const state = multiObjectStore.getState()\n const tableResponse = state.objects[key]\n let rows: any[] = state.objectsPrependData[key] ?? []\n\n if (tableResponse?.data?.total > 1) {\n if (response === 'loading') {\n const row = tableResponse?.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, ...rows]\n } else if (response?.data) {\n const data = response?.data\n if (!data) {\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: [] }\n })\n return\n }\n\n const row = Object.fromEntries(Object.entries(data).map(([k, value]: any) => [k, value?.value ?? value]))\n\n rows = [...rows]\n if (rows.length > 0) {\n rows[0] = row\n } else {\n rows.push(row)\n }\n }\n }\n\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: rows }\n })\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/main/state/crm/use-multi-object.ts"],"names":[],"mappings":"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","file":"chunk-BURJ2NUL.js","sourcesContent":["import { createStore } from './store'\n\nexport interface MultiObjectTableState {\n objects: Record<string, any>\n objectsPrependData: Record<string, any[]>\n meta: Record<string, { selectedPipeline: string; viewType: string }>\n}\n\nexport const multiObjectStore = createStore<MultiObjectTableState>({\n objects: {},\n objectsPrependData: {},\n meta: {}\n})\n\nfunction getObjectKey(payload: any): string {\n return String(payload?.hubspotObjectTypeId ?? '')\n}\n\nexport const actions = {\n setMultiObjectData(response: any, payload: any) {\n const key = getObjectKey(payload)\n const state = multiObjectStore.getState()\n\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 newPrependForKey = (state.objectsPrependData[key] ?? []).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 selectedPipeline = payload?.selectedPipeline ?? ''\n const viewType = response?.info?.viewType ?? ''\n const prevMeta = state.meta[key]\n\n if (response?.data?.total < 1 || payload?.componentName) {\n newPrependForKey = []\n }\n\n if (prevMeta?.viewType && prevMeta.viewType !== viewType) {\n newPrependForKey = []\n }\n\n if (prevMeta?.selectedPipeline && prevMeta.selectedPipeline !== selectedPipeline) {\n newPrependForKey = []\n }\n\n multiObjectStore.setState({\n objects: { ...state.objects, [key]: response },\n objectsPrependData: { ...state.objectsPrependData, [key]: newPrependForKey },\n meta: {\n ...state.meta,\n [key]: { selectedPipeline, viewType }\n }\n })\n },\n\n clearMultiObjectPrependData(hubspotObjectTypeId?: string) {\n const state = multiObjectStore.getState()\n\n if (!hubspotObjectTypeId) {\n multiObjectStore.setState({ objectsPrependData: {} })\n return\n }\n\n const key = String(hubspotObjectTypeId)\n const { [key]: _, ...rest } = state.objectsPrependData\n multiObjectStore.setState({ objectsPrependData: rest })\n },\n\n async setMultiObjectPrependData(response: any, props?: any) {\n const key = getObjectKey(props)\n const state = multiObjectStore.getState()\n const tableResponse = state.objects[key]\n let rows: any[] = state.objectsPrependData[key] ?? []\n\n if (tableResponse?.data?.total > 1) {\n if (response === 'loading') {\n const row = tableResponse?.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, ...rows]\n } else if (response?.data) {\n const data = response?.data\n if (!data) {\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: [] }\n })\n return\n }\n\n const row = Object.fromEntries(Object.entries(data).map(([k, value]: any) => [k, value?.value ?? value]))\n\n rows = [...rows]\n if (rows.length > 0) {\n rows[0] = row\n } else {\n rows.push(row)\n }\n }\n }\n\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: rows }\n })\n }\n}\n"]}
@@ -0,0 +1,82 @@
1
+ // src/main/core/auth/auth-error-codes.ts
2
+ var AuthErrorCode = {
3
+ AUTHENTICATION_FAILED: "AUTHENTICATION_FAILED",
4
+ TOKEN_INVALID: "AUTH_TOKEN_INVALID",
5
+ TOKEN_EXPIRED: "AUTH_TOKEN_EXPIRED",
6
+ ACCOUNT_LOCKED: "AUTH_ACCOUNT_LOCKED",
7
+ ACCOUNT_DISABLED: "AUTH_ACCOUNT_DISABLED",
8
+ LOGIN_FAILED: "LOGIN_FAILED",
9
+ INVALID_CREDENTIALS: "AUTH_INVALID_CREDENTIALS",
10
+ TWO_FACTOR_REQUIRED: "AUTH_2FA_REQUIRED",
11
+ EMAIL_NOT_VERIFIED: "AUTH_EMAIL_NOT_VERIFIED",
12
+ ACCESS_DENIED: "ACCESS_DENIED",
13
+ ACCESS_FORBIDDEN: "ACCESS_FORBIDDEN",
14
+ ACCESS_UNAUTHORIZED: "ACCESS_UNAUTHORIZED",
15
+ MISSING_REFRESH_TOKEN: "MISSING_REFRESH_TOKEN",
16
+ MISSING_HEADERS: "MISSING_HEADERS",
17
+ OAUTH_PROCESSING_ERROR: "OAUTH_PROCESSING_ERROR",
18
+ HUBSPOT_REAUTH_REQUIRED: "HUBSPOT_REAUTH_REQUIRED",
19
+ PORTAL_INACTIVE: "PORTAL_INACTIVE",
20
+ AMBIGUOUS_HUB_ID: "AMBIGUOUS_HUB_ID",
21
+ COMMERCIAL_ACCESS_EXPIRED: "COMMERCIAL_ACCESS_EXPIRED"
22
+ };
23
+ function parseApiErrorPayload(data) {
24
+ if (!data || typeof data !== "object") {
25
+ return {};
26
+ }
27
+ const payload = data;
28
+ return {
29
+ errorCode: typeof payload.errorCode === "string" ? payload.errorCode : void 0,
30
+ errorMessage: typeof payload.errorMessage === "string" ? payload.errorMessage : typeof payload.message === "string" ? payload.message : void 0,
31
+ detailedMessage: typeof payload.detailedMessage === "string" ? payload.detailedMessage : void 0,
32
+ correlationId: typeof payload.correlationId === "string" ? payload.correlationId : void 0,
33
+ statusCode: typeof payload.statusCode === "number" ? payload.statusCode : void 0,
34
+ category: typeof payload.category === "string" ? payload.category : void 0
35
+ };
36
+ }
37
+ function getUnauthorizedPageCopy(errorCode, fallbackMessage) {
38
+ switch (errorCode) {
39
+ case AuthErrorCode.HUBSPOT_REAUTH_REQUIRED:
40
+ return {
41
+ title: "HubSpot re-authorization required",
42
+ message: fallbackMessage ?? "Reconnect your HubSpot account to continue using WoodsPortal.",
43
+ buttonLabel: "Go to HubSpot Accounts",
44
+ clearSessionOnMount: false
45
+ };
46
+ case AuthErrorCode.ACCOUNT_LOCKED:
47
+ case AuthErrorCode.ACCOUNT_DISABLED:
48
+ return {
49
+ title: "Account unavailable",
50
+ message: fallbackMessage ?? "Your account is locked or disabled. Contact support if you need access.",
51
+ buttonLabel: "Go to Login",
52
+ clearSessionOnMount: true
53
+ };
54
+ case AuthErrorCode.ACCESS_DENIED:
55
+ case AuthErrorCode.ACCESS_FORBIDDEN:
56
+ return {
57
+ title: "Access denied",
58
+ message: fallbackMessage ?? "You do not have permission to perform this action.",
59
+ buttonLabel: "Go to Login",
60
+ clearSessionOnMount: false
61
+ };
62
+ case AuthErrorCode.TOKEN_EXPIRED:
63
+ case AuthErrorCode.TOKEN_INVALID:
64
+ return {
65
+ title: "Session expired",
66
+ message: fallbackMessage ?? "Your session has expired. Please log in again to continue.",
67
+ buttonLabel: "Go to Login",
68
+ clearSessionOnMount: true
69
+ };
70
+ default:
71
+ return {
72
+ title: "Unauthorized",
73
+ message: fallbackMessage ?? "Your session may have expired or you do not have the required permissions. Please log in again to continue.",
74
+ buttonLabel: "Go to Login",
75
+ clearSessionOnMount: true
76
+ };
77
+ }
78
+ }
79
+
80
+ export { AuthErrorCode, getUnauthorizedPageCopy, parseApiErrorPayload };
81
+ //# sourceMappingURL=chunk-COHBSTHF.js.map
82
+ //# sourceMappingURL=chunk-COHBSTHF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/core/auth/auth-error-codes.ts"],"names":[],"mappings":"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","file":"chunk-COHBSTHF.js","sourcesContent":["/** Auth-related API error codes (woodsportal-api ErrorCode.java + API-ERROR-CODES.md). */\nexport const AuthErrorCode = {\n AUTHENTICATION_FAILED: 'AUTHENTICATION_FAILED',\n TOKEN_INVALID: 'AUTH_TOKEN_INVALID',\n TOKEN_EXPIRED: 'AUTH_TOKEN_EXPIRED',\n ACCOUNT_LOCKED: 'AUTH_ACCOUNT_LOCKED',\n ACCOUNT_DISABLED: 'AUTH_ACCOUNT_DISABLED',\n LOGIN_FAILED: 'LOGIN_FAILED',\n INVALID_CREDENTIALS: 'AUTH_INVALID_CREDENTIALS',\n TWO_FACTOR_REQUIRED: 'AUTH_2FA_REQUIRED',\n EMAIL_NOT_VERIFIED: 'AUTH_EMAIL_NOT_VERIFIED',\n ACCESS_DENIED: 'ACCESS_DENIED',\n ACCESS_FORBIDDEN: 'ACCESS_FORBIDDEN',\n ACCESS_UNAUTHORIZED: 'ACCESS_UNAUTHORIZED',\n MISSING_REFRESH_TOKEN: 'MISSING_REFRESH_TOKEN',\n MISSING_HEADERS: 'MISSING_HEADERS',\n OAUTH_PROCESSING_ERROR: 'OAUTH_PROCESSING_ERROR',\n HUBSPOT_REAUTH_REQUIRED: 'HUBSPOT_REAUTH_REQUIRED',\n PORTAL_INACTIVE: 'PORTAL_INACTIVE',\n AMBIGUOUS_HUB_ID: 'AMBIGUOUS_HUB_ID',\n COMMERCIAL_ACCESS_EXPIRED: 'COMMERCIAL_ACCESS_EXPIRED'\n} as const\n\nexport type AuthErrorCodeValue = (typeof AuthErrorCode)[keyof typeof AuthErrorCode]\n\nexport type ApiErrorPayload = {\n errorCode?: string\n errorMessage?: string\n detailedMessage?: string\n correlationId?: string\n statusCode?: number\n category?: string\n}\n\nexport type StoredAuthError = ApiErrorPayload & { ts?: number }\n\nexport function parseApiErrorPayload(data: unknown): ApiErrorPayload {\n if (!data || typeof data !== 'object') {\n return {}\n }\n const payload = data as Record<string, unknown>\n return {\n errorCode: typeof payload.errorCode === 'string' ? payload.errorCode : undefined,\n errorMessage:\n typeof payload.errorMessage === 'string' ? payload.errorMessage : typeof payload.message === 'string' ? payload.message : undefined,\n detailedMessage: typeof payload.detailedMessage === 'string' ? payload.detailedMessage : undefined,\n correlationId: typeof payload.correlationId === 'string' ? payload.correlationId : undefined,\n statusCode: typeof payload.statusCode === 'number' ? payload.statusCode : undefined,\n category: typeof payload.category === 'string' ? payload.category : undefined\n }\n}\n\nexport type UnauthorizedPageCopy = {\n title: string\n message: string\n buttonLabel: string\n clearSessionOnMount: boolean\n}\n\nexport function getUnauthorizedPageCopy(errorCode?: string, fallbackMessage?: string): UnauthorizedPageCopy {\n switch (errorCode) {\n case AuthErrorCode.HUBSPOT_REAUTH_REQUIRED:\n return {\n title: 'HubSpot re-authorization required',\n message: fallbackMessage ?? 'Reconnect your HubSpot account to continue using WoodsPortal.',\n buttonLabel: 'Go to HubSpot Accounts',\n clearSessionOnMount: false\n }\n case AuthErrorCode.ACCOUNT_LOCKED:\n case AuthErrorCode.ACCOUNT_DISABLED:\n return {\n title: 'Account unavailable',\n message: fallbackMessage ?? 'Your account is locked or disabled. Contact support if you need access.',\n buttonLabel: 'Go to Login',\n clearSessionOnMount: true\n }\n case AuthErrorCode.ACCESS_DENIED:\n case AuthErrorCode.ACCESS_FORBIDDEN:\n return {\n title: 'Access denied',\n message: fallbackMessage ?? 'You do not have permission to perform this action.',\n buttonLabel: 'Go to Login',\n clearSessionOnMount: false\n }\n case AuthErrorCode.TOKEN_EXPIRED:\n case AuthErrorCode.TOKEN_INVALID:\n return {\n title: 'Session expired',\n message: fallbackMessage ?? 'Your session has expired. Please log in again to continue.',\n buttonLabel: 'Go to Login',\n clearSessionOnMount: true\n }\n default:\n return {\n title: 'Unauthorized',\n message:\n fallbackMessage ?? 'Your session may have expired or you do not have the required permissions. Please log in again to continue.',\n buttonLabel: 'Go to Login',\n clearSessionOnMount: true\n }\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { createMutation, resolveListTableParams, Client } from './chunk-4AMFPSO2.js';
2
- import { actions } from './chunk-7Q6HRCUA.js';
3
- import { actions2, actions as actions$1, actions4, actions5, actions3, actions6 } from './chunk-ZEJGWZK3.js';
1
+ import { createMutation, resolveListTableParams, Client } from './chunk-WNE4LSVH.js';
2
+ import { actions } from './chunk-BURJ2NUL.js';
3
+ import { actions2, actions as actions$1, actions4, actions5, actions3, actions7 } from './chunk-PFOSN7EB.js';
4
4
 
5
5
  // src/main/features/crm/api/pipeline.ts
6
6
  function list(options) {
@@ -95,10 +95,10 @@ function create(options) {
95
95
  const { setMultiObjectPrependData } = actions;
96
96
  const { mutate, isLoading } = createMutation(async (props) => {
97
97
  if (props?.componentName === "sidebarTable") await setMultiObjectPrependData("loading", props);
98
- if (props?.componentName != "sidebarTable") await setTablePrependData("loading", props);
98
+ if (props?.componentName != "sidebarTable" && props?.componentName != "sidebarAssociation") await setTablePrependData("loading", props);
99
99
  const response = await Client.object.create(props);
100
100
  if (props?.componentName === "sidebarTable") await setMultiObjectPrependData(response, props);
101
- if (props?.componentName != "sidebarTable") await setTablePrependData(response, props);
101
+ if (props?.componentName != "sidebarTable" && props?.componentName != "sidebarAssociation") await setTablePrependData(response, props);
102
102
  return response;
103
103
  }, options);
104
104
  return {
@@ -145,9 +145,10 @@ function details(options) {
145
145
  };
146
146
  }
147
147
  function update(options) {
148
+ const { updateTablePrependData } = actions2;
148
149
  const { mutate, isLoading } = createMutation(async (payload) => {
149
150
  const response = await Client.object.update(payload);
150
- return response;
151
+ return updateTablePrependData(response, payload);
151
152
  }, options);
152
153
  return {
153
154
  mutate,
@@ -274,7 +275,7 @@ function attachmentUpload(options) {
274
275
 
275
276
  // src/main/features/crm/api/file.ts
276
277
  function list6(options) {
277
- const { setFiles } = actions6;
278
+ const { setFiles } = actions7;
278
279
  const { mutate, isLoading } = createMutation(async (payload) => {
279
280
  const response = await Client.file.list(payload);
280
281
  setFiles(response, payload);
@@ -300,7 +301,7 @@ function details2(options) {
300
301
  };
301
302
  }
302
303
  function addFolder(options) {
303
- const { updateTreeWithCreate } = actions6;
304
+ const { updateTreeWithCreate } = actions7;
304
305
  const { mutate, isLoading } = createMutation(async (props) => {
305
306
  const parentFolderId = props?.queryParams?.parentFolderId;
306
307
  await updateTreeWithCreate(parentFolderId, "loading");
@@ -315,7 +316,7 @@ function addFolder(options) {
315
316
  };
316
317
  }
317
318
  function addFile(options) {
318
- const { updateTreeWithCreate } = actions6;
319
+ const { updateTreeWithCreate } = actions7;
319
320
  const { mutate, isLoading } = createMutation(async (props) => {
320
321
  const parentFolderId = props?.queryParams?.parentFolderId;
321
322
  await updateTreeWithCreate(parentFolderId, "loading");
@@ -405,5 +406,5 @@ var crmApi = {
405
406
  };
406
407
 
407
408
  export { crmApi };
408
- //# sourceMappingURL=chunk-2TG7X2ML.js.map
409
- //# sourceMappingURL=chunk-2TG7X2ML.js.map
409
+ //# sourceMappingURL=chunk-FJAOCLB4.js.map
410
+ //# sourceMappingURL=chunk-FJAOCLB4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main/features/crm/api/pipeline.ts","../src/main/features/crm/api/stage.ts","../src/main/features/crm/api/object.ts","../src/main/features/crm/api/note.ts","../src/main/features/crm/api/email.ts","../src/main/features/crm/api/uploader.ts","../src/main/features/crm/api/file.ts","../src/main/features/crm/api/cache.ts","../src/main/api/nested-crm-api.ts"],"names":["list","actions","create","update","details"],"mappings":"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","file":"chunk-FJAOCLB4.js","sourcesContent":["import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { resolveListTableParams } from '../helpers/normalize-table-list-params'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const param = resolveListTableParams(payload)\n\n const response: any = await Client.pipeline.list(payload, param)\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getPipelines: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.stage.list(payload)\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getStages: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { resolveListTableParams } from '../helpers/normalize-table-list-params'\nimport { actions as tableActions } from '../../../state/crm/use-table'\nimport { actions as multiObjectActions } from '../../../state/crm/use-multi-object'\nimport { actions as formActions } from '../../../state/crm/use-form'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { setObjectsData, setTableData } = tableActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const param = resolveListTableParams(payload)\n\n const response: any = await Client.object.list(payload, param)\n\n await setObjectsData(response, {\n stageId: param.stageId as string | number | undefined\n })\n await setTableData(response, payload)\n\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getObjects: mutate,\n isLoading\n }\n}\n\nexport function sideBarList(options?: MutationOptions<any, any>) {\n const { setMultiObjectData } = multiObjectActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.object.sideBarList(payload)\n setMultiObjectData(response, payload)\n return response\n }, options)\n\n return {\n mutate,\n listSidebar: mutate,\n getSideBarObjects: mutate,\n isLoading\n }\n}\n\nexport function form(options?: MutationOptions<any, any>) {\n const { setFormData } = formActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.object.form(payload)\n\n setFormData(response)\n\n return response\n }, options)\n\n return {\n mutate,\n getForm: mutate,\n getObjectsForm: mutate,\n isLoading\n }\n}\n\nexport function objectFormOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.object.objectFormOptions(payload)\n\n return response\n }, options)\n\n return {\n mutate,\n getFormOptions: mutate,\n objectFormOptions: mutate,\n isLoading\n }\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { setTablePrependData } = tableActions\n const { setMultiObjectPrependData } = multiObjectActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n if (props?.componentName === 'sidebarTable') await setMultiObjectPrependData('loading', props)\n if (props?.componentName != 'sidebarTable' && props?.componentName != 'sidebarAssociation') await setTablePrependData('loading', props)\n\n const response: any = await Client.object.create(props)\n\n if (props?.componentName === 'sidebarTable') await setMultiObjectPrependData(response, props)\n if (props?.componentName != 'sidebarTable' && props?.componentName != 'sidebarAssociation') await setTablePrependData(response, props)\n\n return response\n }, options)\n\n return {\n mutate,\n create: mutate,\n createObject: mutate,\n isLoading\n }\n}\n\nexport function createExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n const response: any = await Client.object.createExisting(props)\n\n return response\n }, options)\n\n return {\n mutate,\n createExisting: mutate,\n createExistingObject: mutate,\n isLoading\n }\n}\n\nexport function removeExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n const response: any = await Client.object.removeExisting(props)\n\n return response\n }, options)\n\n return {\n mutate,\n removeExisting: mutate,\n removeExistingObject: mutate,\n isLoading\n }\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.object.details(payload)\n\n return response\n }, options)\n\n return {\n mutate,\n getDetails: mutate,\n getObjectsDetails: mutate,\n isLoading\n }\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { updateTablePrependData } = tableActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.object.update(payload)\n\n return updateTablePrependData(response, payload)\n }, options)\n\n return {\n mutate,\n updateDetails: mutate,\n updateObjectsDetails: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as noteActions } from '../../../state/crm/use-note'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { setNotes } = noteActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.note.list(payload)\n\n setNotes(response, payload)\n\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getNotes: mutate,\n isLoading\n }\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { setPrependNote } = noteActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n await setPrependNote('loading')\n const response: any = await Client.note.create(props)\n await setPrependNote(response)\n return response\n }, options)\n\n return {\n mutate,\n create: mutate,\n createNote: mutate,\n isLoading\n }\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { updatePrependNote } = noteActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n // let params: any = makeParam()\n // let mParams: any = { cache: !!params?.cache, isPrimaryCompany: params?.isPrimaryCompany, limit: params?.limit || 5 }\n\n // if (getAuthSubscriptionType() === 'FREE') {\n // mParams.after = params?.after || \"\";\n // } else {\n // mParams.limit = params?.limit || \"\";\n // mParams.page = params?.page || \"\";\n // }\n\n const response: any = await Client.note.update(payload)\n\n return updatePrependNote(response)\n }, options)\n\n return {\n mutate,\n update: mutate,\n updateNote: mutate,\n isLoading\n }\n}\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as emailActions } from '../../../state/crm/use-email'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { setEmails } = emailActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.email.list(payload)\n\n setEmails(response, payload)\n\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getEmails: mutate,\n isLoading\n }\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { setPrependEmail } = emailActions\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n await setPrependEmail('loading')\n const response: any = await Client.email.create(props)\n await setPrependEmail(response)\n return response\n }, options)\n\n return {\n mutate,\n create: mutate,\n createEmail: mutate,\n isLoading\n }\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { updatePrependEmail } = emailActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.email.update(payload)\n\n return updatePrependEmail(response)\n }, options)\n\n return {\n mutate,\n update: mutate,\n updateEmail: mutate,\n isLoading\n }\n}\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as uploaderActions } from '../../../state/crm/use-uploader'\n\nexport function imageUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = payload?.type === 'email' ? await Client.email.image(payload) : await Client.note.image(payload)\n\n return response\n }, options)\n\n return {\n mutate,\n uploadImage: mutate,\n imageUpload: mutate,\n isLoading\n }\n}\n\nexport function attachmentUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = payload?.type === 'email' ? await Client.email.attachment(payload) : await Client.note.attachment(payload)\n\n uploaderActions.setAttachment(response)\n\n return response\n }, options)\n\n return {\n mutate,\n uploadAttachment: mutate,\n attachmentUpload: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\nimport { actions as fileActions } from '../../../state/crm/use-file'\n\nexport function list(options?: MutationOptions<any, any>) {\n const { setFiles } = fileActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.file.list(payload)\n\n setFiles(response, payload)\n\n return response\n }, options)\n\n return {\n mutate,\n list: mutate,\n getFiles: mutate,\n isLoading\n }\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.file.details(payload)\n\n return response\n }, options)\n\n return {\n mutate,\n getDetails: mutate,\n getFile: mutate,\n isLoading\n }\n}\n\nexport function addFolder(options?: MutationOptions<any, any>) {\n const { updateTreeWithCreate } = fileActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n const parentFolderId = props?.queryParams?.parentFolderId\n await updateTreeWithCreate(parentFolderId, 'loading')\n const response: any = await Client.file.addFolder(props)\n await updateTreeWithCreate(parentFolderId, response, 'folder')\n return response\n }, options)\n\n return {\n mutate,\n addFolder: mutate,\n isLoading\n }\n}\n\nexport function addFile(options?: MutationOptions<any, any>) {\n const { updateTreeWithCreate } = fileActions\n\n const { mutate, isLoading } = createMutation<any, any>(async (props: any) => {\n const parentFolderId = props?.queryParams?.parentFolderId\n await updateTreeWithCreate(parentFolderId, 'loading')\n const response: any = await Client.file.addFile(props)\n await updateTreeWithCreate(parentFolderId, response, 'file')\n return response\n }, options)\n\n return {\n mutate,\n addFile: mutate,\n isLoading\n }\n}\n\nexport function download(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(async (payload: any) => {\n const response: any = await Client.file.download(payload)\n return response\n }, options)\n\n return {\n mutate,\n download: mutate,\n downloadFile: mutate,\n isLoading\n }\n}\n","import { Client } from '../../../core/http/client-assembler'\nimport type { MutationOptions } from '../../../core/types'\nimport { createMutation } from '../../../core/mutation/createMutation'\n\n/** Soft refresh CRM list cache (prefer over GET cache=false when purge API is enabled). */\nexport function purge(options?: MutationOptions<unknown, unknown>) {\n const { mutate, isLoading } = createMutation<Record<string, unknown>, unknown>(async (payload?: Record<string, unknown>) => {\n const safePayload = payload ?? {}\n const idempotencyKey = typeof safePayload.idempotencyKey === 'string' ? safePayload.idempotencyKey : undefined\n const headers = idempotencyKey ? { 'Idempotency-Key': idempotencyKey } : undefined\n const { idempotencyKey: _ignored, ...body } = safePayload\n return Client.cache.purge(body, headers)\n }, options)\n\n return { mutate, purge: mutate, purgeCache: mutate, isLoading }\n}\n\nexport function purgeStatus(purgeJobId: string, options?: MutationOptions<unknown, unknown>) {\n const { mutate, isLoading } = createMutation<string, unknown>(async (jobId?: string) => Client.cache.purgeStatus(jobId ?? purgeJobId), options)\n\n return {\n mutate,\n getPurgeStatus: mutate,\n isLoading\n }\n}\n","import { list as pipelinesList } from '../features/crm/api/pipeline'\nimport { list as stagesList } from '../features/crm/api/stage'\nimport {\n list as objectsList,\n sideBarList as objectsListSidebar,\n form as objectsGetForm,\n create as objectsCreate,\n createExisting as objectsCreateExisting,\n removeExisting as objectsRemoveExisting,\n details as objectsGetDetails,\n update as objectsUpdateDetails,\n objectFormOptions as objectsGetFormOptions\n} from '../features/crm/api/object'\nimport { list as notesList, create as notesCreate, update as notesUpdate } from '../features/crm/api/note'\nimport { list as emailsList, create as emailsCreate, update as emailsUpdate } from '../features/crm/api/email'\nimport { imageUpload, attachmentUpload } from '../features/crm/api/uploader'\nimport { list as filesList, addFolder, addFile, details as filesGetDetails, download as filesDownload } from '../features/crm/api/file'\nimport { purge as cachePurge, purgeStatus as cacheGetPurgeStatus } from '../features/crm/api/cache'\n\n/** Canonical nested CRM API (SDK 3.0). */\nexport const crmApi = {\n pipelines: { list: pipelinesList },\n stages: { list: stagesList },\n objects: {\n list: objectsList,\n listSidebar: objectsListSidebar,\n getForm: objectsGetForm,\n getFormOptions: objectsGetFormOptions,\n getDetails: objectsGetDetails,\n updateDetails: objectsUpdateDetails,\n create: objectsCreate,\n createExisting: objectsCreateExisting,\n removeExisting: objectsRemoveExisting\n },\n notes: {\n list: notesList,\n create: notesCreate,\n update: notesUpdate\n },\n emails: {\n list: emailsList,\n create: emailsCreate,\n update: emailsUpdate\n },\n files: {\n list: filesList,\n getDetails: filesGetDetails,\n download: filesDownload,\n addFolder,\n addFile\n },\n uploads: {\n uploadImage: imageUpload,\n uploadAttachment: attachmentUpload\n },\n cache: {\n purge: cachePurge,\n getPurgeStatus: cacheGetPurgeStatus\n }\n}\n"]}