woodsportal-client-sdk 4.1.0 → 4.1.1-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 +6 -6
- package/dist/adapters/native/index.js +7 -7
- package/dist/adapters/react/index.js +7 -7
- package/dist/adapters/vue/index.js +6 -6
- package/dist/auth-interceptor-policy-K46P4VM4.js +6 -0
- package/dist/{auth-interceptor-policy-RGQ26NWR.js.map → auth-interceptor-policy-K46P4VM4.js.map} +1 -1
- package/dist/{auth-utils-YFDOCTA4.js → auth-utils-P5IGNMTK.js} +5 -5
- package/dist/{auth-utils-YFDOCTA4.js.map → auth-utils-P5IGNMTK.js.map} +1 -1
- package/dist/{chunk-KPHAQNS2.js → chunk-32ERSTFY.js} +3 -3
- package/dist/{chunk-KPHAQNS2.js.map → chunk-32ERSTFY.js.map} +1 -1
- package/dist/{chunk-FSDW325N.js → chunk-F43GSZXK.js} +3 -3
- package/dist/{chunk-FSDW325N.js.map → chunk-F43GSZXK.js.map} +1 -1
- package/dist/{chunk-63ZSQAKL.js → chunk-JEQNFCQP.js} +130 -32
- package/dist/chunk-JEQNFCQP.js.map +1 -0
- package/dist/{chunk-JG3TEXWP.js → chunk-JRT5XSVY.js} +3 -3
- package/dist/{chunk-JG3TEXWP.js.map → chunk-JRT5XSVY.js.map} +1 -1
- package/dist/{chunk-TH2E4MXG.js → chunk-JVJMM4SZ.js} +15 -12
- package/dist/chunk-JVJMM4SZ.js.map +1 -0
- package/dist/{chunk-DUGOR7K3.js → chunk-JWEA5HWX.js} +7 -7
- package/dist/{chunk-DUGOR7K3.js.map → chunk-JWEA5HWX.js.map} +1 -1
- package/dist/{chunk-QXBO7WHE.js → chunk-JZ5BNYYH.js} +6 -6
- package/dist/{chunk-QXBO7WHE.js.map → chunk-JZ5BNYYH.js.map} +1 -1
- package/dist/{chunk-UDAPRD7Z.js → chunk-KGNMN7B3.js} +5 -3
- package/dist/chunk-KGNMN7B3.js.map +1 -0
- package/dist/{chunk-UGO2QJLI.js → chunk-WJBWIUQM.js} +4 -4
- package/dist/{chunk-UGO2QJLI.js.map → chunk-WJBWIUQM.js.map} +1 -1
- package/dist/{chunk-TBKCPEGQ.js → chunk-XQAVHI2F.js} +3 -3
- package/dist/{chunk-TBKCPEGQ.js.map → chunk-XQAVHI2F.js.map} +1 -1
- package/dist/{chunk-LET4UAII.js → chunk-YGSPLKDC.js} +6 -6
- package/dist/{chunk-LET4UAII.js.map → chunk-YGSPLKDC.js.map} +1 -1
- package/dist/{chunk-WLTXJFHQ.js → chunk-ZZCYSW32.js} +4 -4
- package/dist/{chunk-WLTXJFHQ.js.map → chunk-ZZCYSW32.js.map} +1 -1
- package/dist/cross-tab-session-VAOXHEZL.js +11 -0
- package/dist/{cross-tab-session-HECMXTOM.js.map → cross-tab-session-VAOXHEZL.js.map} +1 -1
- package/dist/entries/auth.d.ts +2 -2
- package/dist/entries/auth.js +8 -8
- package/dist/entries/crm.js +9 -9
- package/dist/index.d.ts +30 -5
- package/dist/index.js +49 -17
- package/dist/index.js.map +1 -1
- package/dist/{route-guard-contract-BXNkJFf2.d.ts → route-guard-contract-C6Gbvr5x.d.ts} +1 -0
- package/dist/storage-migration-CWOS6CNV.js +4 -0
- package/dist/{storage-migration-2PF52ZSB.js.map → storage-migration-CWOS6CNV.js.map} +1 -1
- package/package.json +1 -1
- package/dist/auth-interceptor-policy-RGQ26NWR.js +0 -6
- package/dist/chunk-63ZSQAKL.js.map +0 -1
- package/dist/chunk-TH2E4MXG.js.map +0 -1
- package/dist/chunk-UDAPRD7Z.js.map +0 -1
- package/dist/cross-tab-session-HECMXTOM.js +0 -11
- package/dist/storage-migration-2PF52ZSB.js +0 -4
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { bindStoreWithActions } from '../../chunk-AYTO6ND7.js';
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-WJBWIUQM.js';
|
|
3
|
+
import '../../chunk-F43GSZXK.js';
|
|
4
|
+
import '../../chunk-ZZCYSW32.js';
|
|
5
|
+
import '../../chunk-JVJMM4SZ.js';
|
|
6
|
+
import '../../chunk-32ERSTFY.js';
|
|
7
7
|
import '../../chunk-DB6W3CJT.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-KGNMN7B3.js';
|
|
9
9
|
import '../../chunk-COHBSTHF.js';
|
|
10
10
|
import { inject, DestroyRef, signal } from '@angular/core';
|
|
11
11
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { useTable, useTableUi, useUser } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
1
|
+
export { useTable, useTableUi, useUser } from '../../chunk-XQAVHI2F.js';
|
|
2
|
+
import '../../chunk-WJBWIUQM.js';
|
|
3
|
+
import '../../chunk-F43GSZXK.js';
|
|
4
|
+
import '../../chunk-ZZCYSW32.js';
|
|
5
|
+
import '../../chunk-JVJMM4SZ.js';
|
|
6
|
+
import '../../chunk-32ERSTFY.js';
|
|
7
7
|
import '../../chunk-DB6W3CJT.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-KGNMN7B3.js';
|
|
9
9
|
import '../../chunk-COHBSTHF.js';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
1
|
+
export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser } from '../../chunk-XQAVHI2F.js';
|
|
2
|
+
import '../../chunk-WJBWIUQM.js';
|
|
3
|
+
import '../../chunk-F43GSZXK.js';
|
|
4
|
+
import '../../chunk-ZZCYSW32.js';
|
|
5
|
+
import '../../chunk-JVJMM4SZ.js';
|
|
6
|
+
import '../../chunk-32ERSTFY.js';
|
|
7
7
|
import '../../chunk-DB6W3CJT.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-KGNMN7B3.js';
|
|
9
9
|
import '../../chunk-COHBSTHF.js';
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { bindStoreWithActions } from '../../chunk-AYTO6ND7.js';
|
|
2
|
-
import { createAdapterHooks } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
2
|
+
import { createAdapterHooks } from '../../chunk-WJBWIUQM.js';
|
|
3
|
+
import '../../chunk-F43GSZXK.js';
|
|
4
|
+
import '../../chunk-ZZCYSW32.js';
|
|
5
|
+
import '../../chunk-JVJMM4SZ.js';
|
|
6
|
+
import '../../chunk-32ERSTFY.js';
|
|
7
7
|
import '../../chunk-DB6W3CJT.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-KGNMN7B3.js';
|
|
9
9
|
import '../../chunk-COHBSTHF.js';
|
|
10
10
|
import { reactive, onScopeDispose } from 'vue';
|
|
11
11
|
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { isOptionalAuthFailureUrl, isRefreshEndpointUrl, isSessionProbeUrl, persistAuthError, readPersistedAuthError, resolveAuthErrorAction } from './chunk-JRT5XSVY.js';
|
|
2
|
+
import './chunk-DB6W3CJT.js';
|
|
3
|
+
import './chunk-KGNMN7B3.js';
|
|
4
|
+
import './chunk-COHBSTHF.js';
|
|
5
|
+
//# sourceMappingURL=auth-interceptor-policy-K46P4VM4.js.map
|
|
6
|
+
//# sourceMappingURL=auth-interceptor-policy-K46P4VM4.js.map
|
package/dist/{auth-interceptor-policy-RGQ26NWR.js.map → auth-interceptor-policy-K46P4VM4.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-interceptor-policy-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-interceptor-policy-K46P4VM4.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { clearAdapterSessionData, clearRefreshToken, getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setProfileDetails, setRefreshToken, setSubscriptionType } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { clearAdapterSessionData, clearRefreshToken, getPortal, getProfile, getRefreshToken, getSubscriptionType, setAccessToken, setLoggedInDetails, setPortal, setProfileDetails, setRefreshToken, setSubscriptionType } from './chunk-JVJMM4SZ.js';
|
|
2
|
+
import './chunk-32ERSTFY.js';
|
|
3
3
|
import './chunk-DB6W3CJT.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-KGNMN7B3.js';
|
|
5
5
|
import './chunk-COHBSTHF.js';
|
|
6
|
-
//# sourceMappingURL=auth-utils-
|
|
7
|
-
//# sourceMappingURL=auth-utils-
|
|
6
|
+
//# sourceMappingURL=auth-utils-P5IGNMTK.js.map
|
|
7
|
+
//# sourceMappingURL=auth-utils-P5IGNMTK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"auth-utils-P5IGNMTK.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WP_STORAGE_KEYS, CLIENT_COOKIE_MIGRATIONS, CLIENT_SESSION_STORAGE_MIGRATIONS, LEGACY_CLIENT_AUTH_COOKIES, LEGACY_CLIENT_SESSION_EXACT, wpClientIframeRefreshKey, wpClientIframeRefreshExpKey, WP_UI_THEME } from './chunk-
|
|
1
|
+
import { WP_STORAGE_KEYS, CLIENT_COOKIE_MIGRATIONS, CLIENT_SESSION_STORAGE_MIGRATIONS, LEGACY_CLIENT_AUTH_COOKIES, LEGACY_CLIENT_SESSION_EXACT, wpClientIframeRefreshKey, wpClientIframeRefreshExpKey, WP_UI_THEME } from './chunk-KGNMN7B3.js';
|
|
2
2
|
import Cookies from 'js-cookie';
|
|
3
3
|
|
|
4
4
|
// src/main/core/http/client-type.ts
|
|
@@ -350,5 +350,5 @@ function clearStaleIframeRefreshForOtherHubs(activeHubId) {
|
|
|
350
350
|
}
|
|
351
351
|
|
|
352
352
|
export { clearClientAuthCookies, clearClientIframeRefreshLocalKeys, clearClientSessionStorageKeys, clearStaleIframeRefreshForOtherHubs, configureStorageKeys, getClientAuthCookieNamesToClear, getClientType, getCookie, getStorageKeys, isBrowserCookieContextAvailable, isCookieExpired, isCorruptCookieRawValue, migrateLegacyStorageKeys, parseCookieJson, removeCookie, resetStorageKeysForTests, setClientType, setCookie, stringifyCookieValue };
|
|
353
|
-
//# sourceMappingURL=chunk-
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
353
|
+
//# sourceMappingURL=chunk-32ERSTFY.js.map
|
|
354
|
+
//# sourceMappingURL=chunk-32ERSTFY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/core/http/client-type.ts","../src/main/core/utils/storage-keys.ts","../src/main/core/utils/cookie.ts","../src/main/core/utils/storage-migration.ts"],"names":["Cookies"],"mappings":"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","file":"chunk-KPHAQNS2.js","sourcesContent":["export type SdkClientType = 'web' | 'mobile'\n\nlet clientType: SdkClientType = 'web'\n\nexport function setClientType(type: SdkClientType): void {\n clientType = type\n}\n\nexport function getClientType(): SdkClientType {\n return clientType\n}\n\n/** Test helper — restore default web client type. */\nexport function resetClientTypeForTests(): void {\n clientType = 'web'\n}\n","import { WP_STORAGE_KEYS } from './wp-storage-keys'\n\nexport interface StorageKeyConfig {\n loginDetails?: string\n refreshToken?: string\n portal?: string\n subscriptionType?: string\n authUser?: string\n pagination?: string\n routeMenu?: string\n associationView?: string\n emailVerified?: string\n}\n\nconst defaults: Required<StorageKeyConfig> = {\n loginDetails: WP_STORAGE_KEYS.c.auth.login,\n refreshToken: WP_STORAGE_KEYS.c.auth.refresh,\n portal: WP_STORAGE_KEYS.c.auth.portal,\n subscriptionType: WP_STORAGE_KEYS.c.auth.sub,\n authUser: WP_STORAGE_KEYS.c.auth.login,\n pagination: WP_STORAGE_KEYS.c.ui.pag,\n routeMenu: WP_STORAGE_KEYS.c.ui.menu,\n associationView: WP_STORAGE_KEYS.c.ui.assoc,\n emailVerified: WP_STORAGE_KEYS.c.auth.emailOk\n}\n\nlet runtimeKeys: Required<StorageKeyConfig> = { ...defaults }\n\nexport function configureStorageKeys(overrides: StorageKeyConfig = {}): void {\n runtimeKeys = { ...defaults, ...runtimeKeys, ...overrides }\n if (overrides.authUser === undefined) {\n runtimeKeys.authUser = runtimeKeys.loginDetails\n }\n}\n\n/** Test helper — restore default cookie key names. */\nexport function resetStorageKeysForTests(): void {\n runtimeKeys = { ...defaults }\n}\n\nexport function getStorageKeys(): Readonly<Required<StorageKeyConfig>> {\n return runtimeKeys\n}\n\nexport { WP_STORAGE_KEYS } from './wp-storage-keys'\n","import Cookies from 'js-cookie'\nimport { getClientType } from '../http/client-type'\nimport { getClientAuthCookieNamesToClear } from './storage-migration'\n\nfunction hasWindowLocation(): boolean {\n if (typeof window === 'undefined') {\n return false\n }\n try {\n return window.location != null && typeof window.location.protocol === 'string'\n } catch {\n return false\n }\n}\n\n/** True when js-cookie can read/write `document.cookie` (browser hosts only). */\nexport function isBrowserCookieContextAvailable(): boolean {\n if (getClientType() === 'mobile') {\n return false\n }\n if (typeof document === 'undefined') {\n return false\n }\n return hasWindowLocation()\n}\n\nfunction cookieSecureFlag(): boolean {\n if (!hasWindowLocation()) {\n return true\n }\n return window.location!.protocol === 'https:'\n}\n\n/** Values that must never be persisted in readable cookies. */\nexport function isCorruptCookieRawValue(raw: string | null | undefined): boolean {\n return raw == null || raw === '' || raw === 'undefined' || raw === 'null'\n}\n\n/** Serialize a value for cookie storage; returns null when write should be skipped. */\nexport function stringifyCookieValue(value: unknown): string | null {\n if (value === undefined || value === null) {\n return null\n }\n if (typeof value === 'string') {\n return isCorruptCookieRawValue(value) ? null : value\n }\n const serialized = JSON.stringify(value)\n if (serialized === undefined || isCorruptCookieRawValue(serialized)) {\n return null\n }\n return serialized\n}\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n if (!key || isCorruptCookieRawValue(value) || !isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: cookieSecureFlag() ? 'none' : 'lax',\n secure: cookieSecureFlag()\n })\n}\n\nexport const getCookie: any = (key: any) => {\n if (!isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.get(key)\n}\n\n/** Parse JSON stored in a cookie; removes corrupt values on read (self-heal). */\nexport function parseCookieJson<T = unknown>(key: string | null | undefined): T | null {\n if (key == null || key === '') {\n return null\n }\n const raw = getCookie(key)\n if (isCorruptCookieRawValue(raw)) {\n if (raw === 'undefined' || raw === 'null') {\n Cookies.remove(key)\n }\n return null\n }\n try {\n return JSON.parse(raw) as T\n } catch {\n Cookies.remove(key)\n return null\n }\n}\n\nexport const removeCookie = (key: any) => {\n if (!isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.remove(key)\n}\n\n/** Clears client-portal session cookies only (does not wipe admin cookies on shared localhost). */\nexport const clearClientAuthCookies = () => {\n if (!isBrowserCookieContextAvailable()) {\n return\n }\n getClientAuthCookieNamesToClear().forEach((name) => Cookies.remove(name))\n for (const legacyAccess of ['woodsportal_access_token', 'AUTH_CRED']) {\n Cookies.remove(legacyAccess)\n }\n}\n\n/** @deprecated Prefer {@link clearClientAuthCookies} */\nexport const removeAllCookie = clearClientAuthCookies\n\nexport const isCookieExpired = (key: string): boolean => {\n if (!isBrowserCookieContextAvailable()) {\n return true\n }\n const value = Cookies.get(key)\n if (value === undefined) {\n return true\n }\n try {\n const parsed = JSON.parse(value)\n if (parsed && typeof parsed === 'object' && 'expiresAt' in parsed) {\n const expiresAt = (parsed as { expiresAt?: number }).expiresAt\n return typeof expiresAt === 'number' && Date.now() > expiresAt\n }\n return false\n } catch {\n // Plain string values (e.g. refresh token) rely on browser cookie expiry.\n return false\n }\n}\n","import Cookies from 'js-cookie'\nimport { getClientType } from '../http/client-type'\nimport {\n CLIENT_COOKIE_MIGRATIONS,\n CLIENT_SESSION_STORAGE_MIGRATIONS,\n LEGACY_CLIENT_AUTH_COOKIES,\n LEGACY_CLIENT_SESSION_EXACT,\n WP_STORAGE_KEYS,\n WP_UI_THEME,\n wpClientIframeRefreshKey,\n wpClientIframeRefreshExpKey\n} from './wp-storage-keys'\nimport { getStorageKeys } from './storage-keys'\nimport { isCorruptCookieRawValue } from './cookie'\n\nfunction migrateCookiePair(legacy: string, canonical: string): void {\n const value = Cookies.get(legacy)\n if (value === undefined) {\n return\n }\n if (isCorruptCookieRawValue(value)) {\n Cookies.remove(legacy)\n return\n }\n if (!Cookies.get(canonical)) {\n Cookies.set(canonical, value)\n }\n Cookies.remove(legacy)\n}\n\nfunction migrateLocalStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const value = window.localStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.localStorage.getItem(canonical)) {\n window.localStorage.setItem(canonical, value)\n }\n window.localStorage.removeItem(legacy)\n } catch {\n // private mode\n }\n}\n\nfunction migrateSessionStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n const value = window.sessionStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.sessionStorage.getItem(canonical)) {\n window.sessionStorage.setItem(canonical, value)\n }\n window.sessionStorage.removeItem(legacy)\n } catch {\n // ignore\n }\n}\n\nfunction migrateIframeRefreshKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter((k) => k.startsWith('wp_iframe_rt_'))\n for (const legacyKey of keys) {\n const suffix = legacyKey.slice('wp_iframe_rt_'.length)\n if (suffix.endsWith('_exp')) {\n continue\n }\n const hubId = suffix\n const token = window.localStorage.getItem(legacyKey)\n const exp = window.localStorage.getItem(`${legacyKey}_exp`)\n const newKey = wpClientIframeRefreshKey(hubId)\n const newExpKey = wpClientIframeRefreshExpKey(hubId)\n if (token != null && !window.localStorage.getItem(newKey)) {\n window.localStorage.setItem(newKey, token)\n }\n if (exp != null && !window.localStorage.getItem(newExpKey)) {\n window.localStorage.setItem(newExpKey, exp)\n }\n window.localStorage.removeItem(legacyKey)\n window.localStorage.removeItem(`${legacyKey}_exp`)\n }\n } catch {\n // ignore\n }\n}\n\nfunction removeLegacyAccessTokenCookies(): void {\n const keys = getStorageKeys()\n const legacyAccess = ['woodsportal_access_token', 'AUTH_CRED']\n for (const name of legacyAccess) {\n Cookies.remove(name)\n }\n if (keys.authUser && keys.authUser !== keys.loginDetails) {\n // legacy duplicate profile mirror — uplift handled by migration; drop separate user cookie\n Cookies.remove(keys.authUser)\n }\n}\n\n/**\n * One-time uplift: read legacy browser keys, write canonical `wp.*` keys, delete legacy.\n * Safe to call on every boot (idempotent).\n */\nexport function migrateLegacyStorageKeys(): void {\n if (getClientType() === 'mobile') {\n return\n }\n\n if (typeof window === 'undefined') {\n return\n }\n\n for (const [legacy, canonical] of CLIENT_COOKIE_MIGRATIONS) {\n migrateCookiePair(legacy, canonical)\n }\n\n migrateLocalStoragePair('hubSpotData', WP_STORAGE_KEYS.c.hub)\n migrateLocalStoragePair('theme', WP_UI_THEME)\n\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n migrateSessionStoragePair(legacy, canonical)\n }\n\n migrateIframeRefreshKeys()\n removeLegacyAccessTokenCookies()\n\n // Drop dead forget-password key\n try {\n window.sessionStorage?.removeItem('entredEmail')\n } catch {\n // ignore\n }\n}\n\n/** All client auth cookie names to remove on logout (canonical + legacy + configured). */\nexport function getClientAuthCookieNamesToClear(): string[] {\n const keys = getStorageKeys()\n const configured = [\n keys.loginDetails,\n keys.refreshToken,\n keys.portal,\n keys.subscriptionType,\n keys.authUser,\n keys.pagination,\n keys.routeMenu,\n keys.associationView,\n keys.emailVerified\n ].filter((name): name is string => Boolean(name))\n\n const canonical = [\n WP_STORAGE_KEYS.c.auth.login,\n WP_STORAGE_KEYS.c.auth.refresh,\n WP_STORAGE_KEYS.c.auth.portal,\n WP_STORAGE_KEYS.c.auth.sub,\n WP_STORAGE_KEYS.c.auth.emailOk,\n WP_STORAGE_KEYS.c.ui.pag,\n WP_STORAGE_KEYS.c.ui.menu,\n WP_STORAGE_KEYS.c.ui.assoc\n ]\n\n return [...new Set([...configured, ...canonical, ...LEGACY_CLIENT_AUTH_COOKIES])]\n}\n\nexport function clearClientSessionStorageKeys(): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n if (\n canonical === WP_STORAGE_KEYS.c.login.email ||\n canonical === WP_STORAGE_KEYS.c.login.force ||\n canonical === WP_STORAGE_KEYS.c.login.passkey ||\n canonical === WP_STORAGE_KEYS.c.login.done\n ) {\n continue\n }\n window.sessionStorage.removeItem(legacy)\n window.sessionStorage.removeItem(canonical)\n }\n for (const key of LEGACY_CLIENT_SESSION_EXACT) {\n if (key === 'entredEmail') {\n window.sessionStorage.removeItem(key)\n }\n }\n const preservedLoginKeys = new Set([\n WP_STORAGE_KEYS.c.login.email,\n WP_STORAGE_KEYS.c.login.force,\n WP_STORAGE_KEYS.c.login.passkey,\n WP_STORAGE_KEYS.c.login.done,\n 'woodsportal.login.email',\n 'woodsportal.login.forcePreLogin',\n 'woodsportal.login.passkeyPrimaryEnrolled',\n 'woodsportal.login.preLoginCompletedKey'\n ])\n const keysToRemove: string[] = []\n for (let i = 0; i < window.sessionStorage.length; i++) {\n const key = window.sessionStorage.key(i)\n if (!key || preservedLoginKeys.has(key)) continue\n if (key.startsWith('woodsportal.mfa.') || key.startsWith('wp.c.mfa.')) {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.auth.err || key === WP_STORAGE_KEYS.c.auth.refreshExhausted || key === 'authError') {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.sso.cb || key === 'sso_callback_processed') {\n keysToRemove.push(key)\n }\n }\n keysToRemove.forEach((k) => window.sessionStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearClientIframeRefreshLocalKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => k.startsWith('wp_iframe_rt_') || k.startsWith(WP_STORAGE_KEYS.c.auth.iframeRtPrefix)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearStaleIframeRefreshForOtherHubs(activeHubId: string | number | undefined): void {\n if (activeHubId == null || typeof window === 'undefined' || !window.localStorage) {\n return\n }\n const activePrefix = WP_STORAGE_KEYS.c.auth.iframeRtPrefix\n const activeKey = wpClientIframeRefreshKey(activeHubId)\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => (k.startsWith('wp_iframe_rt_') || k.startsWith(activePrefix)) && k !== activeKey && k !== wpClientIframeRefreshExpKey(activeHubId)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/main/core/http/client-type.ts","../src/main/core/utils/storage-keys.ts","../src/main/core/utils/cookie.ts","../src/main/core/utils/storage-migration.ts"],"names":["Cookies"],"mappings":"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","file":"chunk-32ERSTFY.js","sourcesContent":["export type SdkClientType = 'web' | 'mobile'\n\nlet clientType: SdkClientType = 'web'\n\nexport function setClientType(type: SdkClientType): void {\n clientType = type\n}\n\nexport function getClientType(): SdkClientType {\n return clientType\n}\n\n/** Test helper — restore default web client type. */\nexport function resetClientTypeForTests(): void {\n clientType = 'web'\n}\n","import { WP_STORAGE_KEYS } from './wp-storage-keys'\n\nexport interface StorageKeyConfig {\n loginDetails?: string\n refreshToken?: string\n portal?: string\n subscriptionType?: string\n authUser?: string\n pagination?: string\n routeMenu?: string\n associationView?: string\n emailVerified?: string\n}\n\nconst defaults: Required<StorageKeyConfig> = {\n loginDetails: WP_STORAGE_KEYS.c.auth.login,\n refreshToken: WP_STORAGE_KEYS.c.auth.refresh,\n portal: WP_STORAGE_KEYS.c.auth.portal,\n subscriptionType: WP_STORAGE_KEYS.c.auth.sub,\n authUser: WP_STORAGE_KEYS.c.auth.login,\n pagination: WP_STORAGE_KEYS.c.ui.pag,\n routeMenu: WP_STORAGE_KEYS.c.ui.menu,\n associationView: WP_STORAGE_KEYS.c.ui.assoc,\n emailVerified: WP_STORAGE_KEYS.c.auth.emailOk\n}\n\nlet runtimeKeys: Required<StorageKeyConfig> = { ...defaults }\n\nexport function configureStorageKeys(overrides: StorageKeyConfig = {}): void {\n runtimeKeys = { ...defaults, ...runtimeKeys, ...overrides }\n if (overrides.authUser === undefined) {\n runtimeKeys.authUser = runtimeKeys.loginDetails\n }\n}\n\n/** Test helper — restore default cookie key names. */\nexport function resetStorageKeysForTests(): void {\n runtimeKeys = { ...defaults }\n}\n\nexport function getStorageKeys(): Readonly<Required<StorageKeyConfig>> {\n return runtimeKeys\n}\n\nexport { WP_STORAGE_KEYS } from './wp-storage-keys'\n","import Cookies from 'js-cookie'\nimport { getClientType } from '../http/client-type'\nimport { getClientAuthCookieNamesToClear } from './storage-migration'\n\nfunction hasWindowLocation(): boolean {\n if (typeof window === 'undefined') {\n return false\n }\n try {\n return window.location != null && typeof window.location.protocol === 'string'\n } catch {\n return false\n }\n}\n\n/** True when js-cookie can read/write `document.cookie` (browser hosts only). */\nexport function isBrowserCookieContextAvailable(): boolean {\n if (getClientType() === 'mobile') {\n return false\n }\n if (typeof document === 'undefined') {\n return false\n }\n return hasWindowLocation()\n}\n\nfunction cookieSecureFlag(): boolean {\n if (!hasWindowLocation()) {\n return true\n }\n return window.location!.protocol === 'https:'\n}\n\n/** Values that must never be persisted in readable cookies. */\nexport function isCorruptCookieRawValue(raw: string | null | undefined): boolean {\n return raw == null || raw === '' || raw === 'undefined' || raw === 'null'\n}\n\n/** Serialize a value for cookie storage; returns null when write should be skipped. */\nexport function stringifyCookieValue(value: unknown): string | null {\n if (value === undefined || value === null) {\n return null\n }\n if (typeof value === 'string') {\n return isCorruptCookieRawValue(value) ? null : value\n }\n const serialized = JSON.stringify(value)\n if (serialized === undefined || isCorruptCookieRawValue(serialized)) {\n return null\n }\n return serialized\n}\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n if (!key || isCorruptCookieRawValue(value) || !isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: cookieSecureFlag() ? 'none' : 'lax',\n secure: cookieSecureFlag()\n })\n}\n\nexport const getCookie: any = (key: any) => {\n if (!isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.get(key)\n}\n\n/** Parse JSON stored in a cookie; removes corrupt values on read (self-heal). */\nexport function parseCookieJson<T = unknown>(key: string | null | undefined): T | null {\n if (key == null || key === '') {\n return null\n }\n const raw = getCookie(key)\n if (isCorruptCookieRawValue(raw)) {\n if (raw === 'undefined' || raw === 'null') {\n Cookies.remove(key)\n }\n return null\n }\n try {\n return JSON.parse(raw) as T\n } catch {\n Cookies.remove(key)\n return null\n }\n}\n\nexport const removeCookie = (key: any) => {\n if (!isBrowserCookieContextAvailable()) {\n return undefined\n }\n return Cookies.remove(key)\n}\n\n/** Clears client-portal session cookies only (does not wipe admin cookies on shared localhost). */\nexport const clearClientAuthCookies = () => {\n if (!isBrowserCookieContextAvailable()) {\n return\n }\n getClientAuthCookieNamesToClear().forEach((name) => Cookies.remove(name))\n for (const legacyAccess of ['woodsportal_access_token', 'AUTH_CRED']) {\n Cookies.remove(legacyAccess)\n }\n}\n\n/** @deprecated Prefer {@link clearClientAuthCookies} */\nexport const removeAllCookie = clearClientAuthCookies\n\nexport const isCookieExpired = (key: string): boolean => {\n if (!isBrowserCookieContextAvailable()) {\n return true\n }\n const value = Cookies.get(key)\n if (value === undefined) {\n return true\n }\n try {\n const parsed = JSON.parse(value)\n if (parsed && typeof parsed === 'object' && 'expiresAt' in parsed) {\n const expiresAt = (parsed as { expiresAt?: number }).expiresAt\n return typeof expiresAt === 'number' && Date.now() > expiresAt\n }\n return false\n } catch {\n // Plain string values (e.g. refresh token) rely on browser cookie expiry.\n return false\n }\n}\n","import Cookies from 'js-cookie'\nimport { getClientType } from '../http/client-type'\nimport {\n CLIENT_COOKIE_MIGRATIONS,\n CLIENT_SESSION_STORAGE_MIGRATIONS,\n LEGACY_CLIENT_AUTH_COOKIES,\n LEGACY_CLIENT_SESSION_EXACT,\n WP_STORAGE_KEYS,\n WP_UI_THEME,\n wpClientIframeRefreshKey,\n wpClientIframeRefreshExpKey\n} from './wp-storage-keys'\nimport { getStorageKeys } from './storage-keys'\nimport { isCorruptCookieRawValue } from './cookie'\n\nfunction migrateCookiePair(legacy: string, canonical: string): void {\n const value = Cookies.get(legacy)\n if (value === undefined) {\n return\n }\n if (isCorruptCookieRawValue(value)) {\n Cookies.remove(legacy)\n return\n }\n if (!Cookies.get(canonical)) {\n Cookies.set(canonical, value)\n }\n Cookies.remove(legacy)\n}\n\nfunction migrateLocalStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const value = window.localStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.localStorage.getItem(canonical)) {\n window.localStorage.setItem(canonical, value)\n }\n window.localStorage.removeItem(legacy)\n } catch {\n // private mode\n }\n}\n\nfunction migrateSessionStoragePair(legacy: string, canonical: string): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n const value = window.sessionStorage.getItem(legacy)\n if (value == null) {\n return\n }\n if (!window.sessionStorage.getItem(canonical)) {\n window.sessionStorage.setItem(canonical, value)\n }\n window.sessionStorage.removeItem(legacy)\n } catch {\n // ignore\n }\n}\n\nfunction migrateIframeRefreshKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter((k) => k.startsWith('wp_iframe_rt_'))\n for (const legacyKey of keys) {\n const suffix = legacyKey.slice('wp_iframe_rt_'.length)\n if (suffix.endsWith('_exp')) {\n continue\n }\n const hubId = suffix\n const token = window.localStorage.getItem(legacyKey)\n const exp = window.localStorage.getItem(`${legacyKey}_exp`)\n const newKey = wpClientIframeRefreshKey(hubId)\n const newExpKey = wpClientIframeRefreshExpKey(hubId)\n if (token != null && !window.localStorage.getItem(newKey)) {\n window.localStorage.setItem(newKey, token)\n }\n if (exp != null && !window.localStorage.getItem(newExpKey)) {\n window.localStorage.setItem(newExpKey, exp)\n }\n window.localStorage.removeItem(legacyKey)\n window.localStorage.removeItem(`${legacyKey}_exp`)\n }\n } catch {\n // ignore\n }\n}\n\nfunction removeLegacyAccessTokenCookies(): void {\n const keys = getStorageKeys()\n const legacyAccess = ['woodsportal_access_token', 'AUTH_CRED']\n for (const name of legacyAccess) {\n Cookies.remove(name)\n }\n if (keys.authUser && keys.authUser !== keys.loginDetails) {\n // legacy duplicate profile mirror — uplift handled by migration; drop separate user cookie\n Cookies.remove(keys.authUser)\n }\n}\n\n/**\n * One-time uplift: read legacy browser keys, write canonical `wp.*` keys, delete legacy.\n * Safe to call on every boot (idempotent).\n */\nexport function migrateLegacyStorageKeys(): void {\n if (getClientType() === 'mobile') {\n return\n }\n\n if (typeof window === 'undefined') {\n return\n }\n\n for (const [legacy, canonical] of CLIENT_COOKIE_MIGRATIONS) {\n migrateCookiePair(legacy, canonical)\n }\n\n migrateLocalStoragePair('hubSpotData', WP_STORAGE_KEYS.c.hub)\n migrateLocalStoragePair('theme', WP_UI_THEME)\n\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n migrateSessionStoragePair(legacy, canonical)\n }\n\n migrateIframeRefreshKeys()\n removeLegacyAccessTokenCookies()\n\n // Drop dead forget-password key\n try {\n window.sessionStorage?.removeItem('entredEmail')\n } catch {\n // ignore\n }\n}\n\n/** All client auth cookie names to remove on logout (canonical + legacy + configured). */\nexport function getClientAuthCookieNamesToClear(): string[] {\n const keys = getStorageKeys()\n const configured = [\n keys.loginDetails,\n keys.refreshToken,\n keys.portal,\n keys.subscriptionType,\n keys.authUser,\n keys.pagination,\n keys.routeMenu,\n keys.associationView,\n keys.emailVerified\n ].filter((name): name is string => Boolean(name))\n\n const canonical = [\n WP_STORAGE_KEYS.c.auth.login,\n WP_STORAGE_KEYS.c.auth.refresh,\n WP_STORAGE_KEYS.c.auth.portal,\n WP_STORAGE_KEYS.c.auth.sub,\n WP_STORAGE_KEYS.c.auth.emailOk,\n WP_STORAGE_KEYS.c.ui.pag,\n WP_STORAGE_KEYS.c.ui.menu,\n WP_STORAGE_KEYS.c.ui.assoc\n ]\n\n return [...new Set([...configured, ...canonical, ...LEGACY_CLIENT_AUTH_COOKIES])]\n}\n\nexport function clearClientSessionStorageKeys(): void {\n if (typeof window === 'undefined' || !window.sessionStorage) {\n return\n }\n try {\n for (const [legacy, canonical] of CLIENT_SESSION_STORAGE_MIGRATIONS) {\n if (\n canonical === WP_STORAGE_KEYS.c.login.email ||\n canonical === WP_STORAGE_KEYS.c.login.force ||\n canonical === WP_STORAGE_KEYS.c.login.passkey ||\n canonical === WP_STORAGE_KEYS.c.login.done\n ) {\n continue\n }\n window.sessionStorage.removeItem(legacy)\n window.sessionStorage.removeItem(canonical)\n }\n for (const key of LEGACY_CLIENT_SESSION_EXACT) {\n if (key === 'entredEmail') {\n window.sessionStorage.removeItem(key)\n }\n }\n const preservedLoginKeys = new Set([\n WP_STORAGE_KEYS.c.login.email,\n WP_STORAGE_KEYS.c.login.force,\n WP_STORAGE_KEYS.c.login.passkey,\n WP_STORAGE_KEYS.c.login.done,\n 'woodsportal.login.email',\n 'woodsportal.login.forcePreLogin',\n 'woodsportal.login.passkeyPrimaryEnrolled',\n 'woodsportal.login.preLoginCompletedKey'\n ])\n const keysToRemove: string[] = []\n for (let i = 0; i < window.sessionStorage.length; i++) {\n const key = window.sessionStorage.key(i)\n if (!key || preservedLoginKeys.has(key)) continue\n if (key.startsWith('woodsportal.mfa.') || key.startsWith('wp.c.mfa.')) {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.auth.err || key === WP_STORAGE_KEYS.c.auth.refreshExhausted || key === 'authError') {\n keysToRemove.push(key)\n }\n if (key === WP_STORAGE_KEYS.c.sso.cb || key === 'sso_callback_processed') {\n keysToRemove.push(key)\n }\n }\n keysToRemove.forEach((k) => window.sessionStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearClientIframeRefreshLocalKeys(): void {\n if (typeof window === 'undefined' || !window.localStorage) {\n return\n }\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => k.startsWith('wp_iframe_rt_') || k.startsWith(WP_STORAGE_KEYS.c.auth.iframeRtPrefix)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n\nexport function clearStaleIframeRefreshForOtherHubs(activeHubId: string | number | undefined): void {\n if (activeHubId == null || typeof window === 'undefined' || !window.localStorage) {\n return\n }\n const activePrefix = WP_STORAGE_KEYS.c.auth.iframeRtPrefix\n const activeKey = wpClientIframeRefreshKey(activeHubId)\n try {\n const keys = Object.keys(window.localStorage).filter(\n (k) => (k.startsWith('wp_iframe_rt_') || k.startsWith(activePrefix)) && k !== activeKey && k !== wpClientIframeRefreshExpKey(activeHubId)\n )\n keys.forEach((k) => window.localStorage.removeItem(k))\n } catch {\n // ignore\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createStore, isLoadingPrependRow } from './chunk-
|
|
1
|
+
import { createStore, isLoadingPrependRow } from './chunk-ZZCYSW32.js';
|
|
2
2
|
|
|
3
3
|
// src/main/state/crm/use-multi-object.ts
|
|
4
4
|
var multiObjectStore = createStore({
|
|
@@ -106,5 +106,5 @@ var actions = {
|
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
export { actions, multiObjectStore };
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-F43GSZXK.js.map
|
|
110
|
+
//# sourceMappingURL=chunk-F43GSZXK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/state/crm/use-multi-object.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/main/state/crm/use-multi-object.ts"],"names":[],"mappings":"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","file":"chunk-F43GSZXK.js","sourcesContent":["import { createStore } from './store'\nimport { isLoadingPrependRow } from './prepend-row'\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?.params?.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?.queryParams?.selectedPipeline ?? ''\n const viewType = response?.info?.viewType ?? ''\n const prevMeta = state.meta[key]\n\n if (response?.data?.total < 1 || payload?.queryParams?.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 clearLatestMultiObjectPrependData(hubspotObjectTypeId?: string) {\n if (!hubspotObjectTypeId) {\n return\n }\n\n const key = String(hubspotObjectTypeId)\n const state = multiObjectStore.getState()\n const prependRows = state.objectsPrependData[key] ?? []\n const latest = prependRows[0]\n\n if (!latest || !isLoadingPrependRow(latest)) {\n return\n }\n\n multiObjectStore.setState({\n objectsPrependData: { ...state.objectsPrependData, [key]: prependRows.slice(1) }\n })\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,9 +1,58 @@
|
|
|
1
|
-
import { getParamDetails, getRouteDetails, updateLink, getParam, decodeToBase64, generatePath, getPath, getRouteMenu, tableUiActions, ticketHubspotObjectTypeId, makePreviewParams, tableStore, actions2, userStore, isPipelineBoardObjectTypeId, tableUiStore, fileStore, actions7, emailStore, actions5, noteStore, actions4, resetAllStore, breadcrumbStage, isMessingParentLastItem, isMessingParent, generateUrl } from './chunk-
|
|
2
|
-
import { config, configureLogger, setIframeStorageMode, setRefreshBufferSeconds, setRefreshCallback, hydrateSessionRefreshState,
|
|
3
|
-
import { getClientType, configureStorageKeys } from './chunk-
|
|
1
|
+
import { getParamDetails, getRouteDetails, updateLink, getParam, decodeToBase64, generatePath, getPath, getRouteMenu, tableUiActions, ticketHubspotObjectTypeId, makePreviewParams, tableStore, actions2, userStore, isPipelineBoardObjectTypeId, tableUiStore, fileStore, actions7, emailStore, actions5, noteStore, actions4, resetAllStore, breadcrumbStage, isMessingParentLastItem, isMessingParent, generateUrl } from './chunk-ZZCYSW32.js';
|
|
2
|
+
import { getRuntimeHttpClientApiDate, config, configureLogger, setIframeStorageMode, setRefreshBufferSeconds, setRefreshCallback, hydrateSessionRefreshState, logger, isHttpTracingEnabled, getAccessToken, sanitizeAxiosErrorData, classifyRefreshHttpError, shouldLogoutAfterRefreshFailure, setRefreshToken, storAccessToken, classifyRefreshResponseWithoutToken, storage, HUBSPOT_DATA, setRuntimeHttpClientHubContext, isServiceUnavailableError, refreshSession, ensureValidRefresh, HUB_ID, DEV_PORTAL_ID, PORTAL_ID, DEV_API_URL, isAccessTokenExpired } from './chunk-JVJMM4SZ.js';
|
|
3
|
+
import { getClientType, configureStorageKeys } from './chunk-32ERSTFY.js';
|
|
4
4
|
import { AuthErrorCode } from './chunk-COHBSTHF.js';
|
|
5
5
|
import axios from 'axios';
|
|
6
6
|
|
|
7
|
+
// src/main/core/utils/generateApiUrl.ts
|
|
8
|
+
var API_DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
9
|
+
function shouldSkipApiDate(url) {
|
|
10
|
+
if (!url.startsWith("/api/")) return true;
|
|
11
|
+
if (url.startsWith("/api/platform/")) return true;
|
|
12
|
+
if (url.startsWith("/api/public-app/")) return true;
|
|
13
|
+
if (url.startsWith("/api/webhooks/")) return true;
|
|
14
|
+
if (url.startsWith("/api/internal/")) return true;
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
function alreadyHasApiDate(url) {
|
|
18
|
+
if (url.startsWith("/api/admin/")) {
|
|
19
|
+
return /^\/api\/admin\/\d{4}-\d{2}-\d{2}(?:\/|$)/.test(url);
|
|
20
|
+
}
|
|
21
|
+
return /^\/api\/\d{4}-\d{2}-\d{2}(?:\/|$)/.test(url);
|
|
22
|
+
}
|
|
23
|
+
function applyContractApiDate(url, apiDate) {
|
|
24
|
+
const date = (apiDate ?? "").trim();
|
|
25
|
+
if (!date || !API_DATE_RE.test(date)) return url;
|
|
26
|
+
if (shouldSkipApiDate(url) || alreadyHasApiDate(url)) return url;
|
|
27
|
+
if (url.startsWith("/api/admin/")) {
|
|
28
|
+
return url.replace("/api/admin/", `/api/admin/${date}/`);
|
|
29
|
+
}
|
|
30
|
+
if (url.startsWith("/api/")) {
|
|
31
|
+
return url.replace("/api/", `/api/${date}/`);
|
|
32
|
+
}
|
|
33
|
+
return url;
|
|
34
|
+
}
|
|
35
|
+
function getConfiguredContractApiDate() {
|
|
36
|
+
return (getRuntimeHttpClientApiDate() || "").trim();
|
|
37
|
+
}
|
|
38
|
+
var generateApiUrl = ({ route, params = {}, queryParams = "" }) => {
|
|
39
|
+
const defaultParams = {
|
|
40
|
+
hubId: config.hubId,
|
|
41
|
+
portalId: config.portalId
|
|
42
|
+
};
|
|
43
|
+
params = { ...defaultParams, ...params };
|
|
44
|
+
const url = applyContractApiDate(replaceParams(route, params), getConfiguredContractApiDate());
|
|
45
|
+
let queryString = "";
|
|
46
|
+
if (queryParams && typeof queryParams === "object") {
|
|
47
|
+
const cleanedParams = Object.entries(queryParams).filter(([_, value]) => value !== null && value !== void 0).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
48
|
+
queryString = new URLSearchParams(cleanedParams).toString();
|
|
49
|
+
}
|
|
50
|
+
return queryString ? `${url}?${queryString}` : url;
|
|
51
|
+
};
|
|
52
|
+
function replaceParams(template, values) {
|
|
53
|
+
return template.replace(/\$\{(\w+)\}/g, (_, key) => key in values ? String(values[key]) : `\${${key}}`);
|
|
54
|
+
}
|
|
55
|
+
|
|
7
56
|
// src/main/core/http/visibility-refresh-scheduler.ts
|
|
8
57
|
var visibilityStop = null;
|
|
9
58
|
function hasBrowserDocument() {
|
|
@@ -122,6 +171,8 @@ var API_ENDPOINTS = {
|
|
|
122
171
|
PROFILE: "/api/${hubId}/${portalId}/profiles",
|
|
123
172
|
PROFILE_UPDATE: "/api/${hubId}/${portalId}/profiles",
|
|
124
173
|
CHANGE_PASSWORD: "/api/auth/change-password",
|
|
174
|
+
// Notification preferences (portal client — same row as admin prefs)
|
|
175
|
+
NOTIFICATION_PREFERENCES: "/api/${hubId}/${portalId}/notification-preferences",
|
|
125
176
|
// Accounts (client lane — hub / portal picker)
|
|
126
177
|
HUBSPOTS: "/api/hubspots",
|
|
127
178
|
PORTALS: "/api/portals",
|
|
@@ -187,25 +238,6 @@ var config2 = {
|
|
|
187
238
|
baseURL: ""
|
|
188
239
|
};
|
|
189
240
|
|
|
190
|
-
// src/main/core/utils/generateApiUrl.ts
|
|
191
|
-
var generateApiUrl = ({ route, params = {}, queryParams = "" }) => {
|
|
192
|
-
const defaultParams = {
|
|
193
|
-
hubId: config.hubId,
|
|
194
|
-
portalId: config.portalId
|
|
195
|
-
};
|
|
196
|
-
params = { ...defaultParams, ...params };
|
|
197
|
-
const url = replaceParams(route, params);
|
|
198
|
-
let queryString = "";
|
|
199
|
-
if (queryParams && typeof queryParams === "object") {
|
|
200
|
-
const cleanedParams = Object.entries(queryParams).filter(([_, value]) => value !== null && value !== void 0).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
201
|
-
queryString = new URLSearchParams(cleanedParams).toString();
|
|
202
|
-
}
|
|
203
|
-
return queryString ? `${url}?${queryString}` : url;
|
|
204
|
-
};
|
|
205
|
-
function replaceParams(template, values) {
|
|
206
|
-
return template.replace(/\$\{(\w+)\}/g, (_, key) => key in values ? String(values[key]) : `\${${key}}`);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
241
|
// src/main/core/logging/log-http.ts
|
|
210
242
|
var SENSITIVE_QUERY_KEYS = /* @__PURE__ */ new Set([
|
|
211
243
|
"token",
|
|
@@ -268,7 +300,46 @@ function getHttpUrl(config4) {
|
|
|
268
300
|
return sanitizeHttpUrl(config4.url);
|
|
269
301
|
}
|
|
270
302
|
|
|
303
|
+
// src/main/core/http/csp-violation-monitor.ts
|
|
304
|
+
var VIOLATION_TTL_MS = 3e4;
|
|
305
|
+
var MAX_RECORDED = 20;
|
|
306
|
+
var violations = [];
|
|
307
|
+
var installed = false;
|
|
308
|
+
function installCspViolationMonitor() {
|
|
309
|
+
if (installed || typeof document === "undefined" || typeof document.addEventListener !== "function") {
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
installed = true;
|
|
313
|
+
document.addEventListener("securitypolicyviolation", (event) => {
|
|
314
|
+
violations.push({
|
|
315
|
+
blockedUri: event.blockedURI ?? "",
|
|
316
|
+
effectiveDirective: event.effectiveDirective ?? event.violatedDirective ?? "",
|
|
317
|
+
at: Date.now()
|
|
318
|
+
});
|
|
319
|
+
if (violations.length > MAX_RECORDED) {
|
|
320
|
+
violations = violations.slice(-MAX_RECORDED);
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
function findCspViolationFor(requestUrl) {
|
|
325
|
+
if (!requestUrl) {
|
|
326
|
+
return void 0;
|
|
327
|
+
}
|
|
328
|
+
const now = Date.now();
|
|
329
|
+
violations = violations.filter((violation) => now - violation.at <= VIOLATION_TTL_MS);
|
|
330
|
+
let origin;
|
|
331
|
+
try {
|
|
332
|
+
origin = new URL(requestUrl, typeof location !== "undefined" ? location.href : void 0).origin;
|
|
333
|
+
} catch {
|
|
334
|
+
return void 0;
|
|
335
|
+
}
|
|
336
|
+
return violations.find(
|
|
337
|
+
(violation) => violation.blockedUri === origin || violation.blockedUri.startsWith(`${origin}/`)
|
|
338
|
+
);
|
|
339
|
+
}
|
|
340
|
+
|
|
271
341
|
// src/main/core/http/http-client.ts
|
|
342
|
+
var INVALID_PATH_SEGMENT_PATTERN = /\/(undefined|null|NaN)([/?#]|$)/;
|
|
272
343
|
var axiosInstance = null;
|
|
273
344
|
var config3 = {};
|
|
274
345
|
function hasBrowserLocation() {
|
|
@@ -357,7 +428,7 @@ async function handleAuthHttpError(error, axiosInstanceRef) {
|
|
|
357
428
|
return Promise.reject(error);
|
|
358
429
|
}
|
|
359
430
|
const { parseApiErrorPayload } = await import('./auth-error-codes-D7CXVBEN.js');
|
|
360
|
-
const { persistAuthError, resolveAuthErrorAction } = await import('./auth-interceptor-policy-
|
|
431
|
+
const { persistAuthError, resolveAuthErrorAction } = await import('./auth-interceptor-policy-K46P4VM4.js');
|
|
361
432
|
const reqConfig = error.config;
|
|
362
433
|
const payload = parseApiErrorPayload(error.response.data);
|
|
363
434
|
const action = resolveAuthErrorAction({
|
|
@@ -425,7 +496,8 @@ function persistHubContextFromClientConfig(clientConfig) {
|
|
|
425
496
|
setRuntimeHttpClientHubContext({
|
|
426
497
|
hubId: clientConfig.hubId != null ? String(clientConfig.hubId) : "",
|
|
427
498
|
devPortalId: clientConfig.devPortalId != null ? String(clientConfig.devPortalId) : "",
|
|
428
|
-
devApiUrl: clientConfig.baseURL ?? ""
|
|
499
|
+
devApiUrl: clientConfig.baseURL ?? "",
|
|
500
|
+
apiDate: clientConfig.apiDate != null ? String(clientConfig.apiDate).trim() : ""
|
|
429
501
|
});
|
|
430
502
|
}
|
|
431
503
|
function notifyServiceUnavailable(error) {
|
|
@@ -441,11 +513,11 @@ function initializeHttpClient(clientConfig) {
|
|
|
441
513
|
if (clientConfig.storageKeys != null) {
|
|
442
514
|
configureStorageKeys(clientConfig.storageKeys);
|
|
443
515
|
}
|
|
444
|
-
void import('./storage-migration-
|
|
516
|
+
void import('./storage-migration-CWOS6CNV.js').then(({ migrateLegacyStorageKeys }) => {
|
|
445
517
|
migrateLegacyStorageKeys();
|
|
446
518
|
}).catch(() => {
|
|
447
519
|
});
|
|
448
|
-
void import('./cross-tab-session-
|
|
520
|
+
void import('./cross-tab-session-VAOXHEZL.js').then(({ installCrossTabSessionListener }) => {
|
|
449
521
|
installCrossTabSessionListener();
|
|
450
522
|
}).catch(() => {
|
|
451
523
|
});
|
|
@@ -469,9 +541,17 @@ function initializeHttpClient(clientConfig) {
|
|
|
469
541
|
...config3.headers
|
|
470
542
|
}
|
|
471
543
|
});
|
|
544
|
+
installCspViolationMonitor();
|
|
472
545
|
setRefreshCallback(getAuthRefreshToken);
|
|
473
546
|
hydrateSessionRefreshState();
|
|
474
547
|
axiosInstance.interceptors.request.use(async (requestConfig) => {
|
|
548
|
+
const requestUrl = getHttpUrl(requestConfig);
|
|
549
|
+
if (requestUrl && INVALID_PATH_SEGMENT_PATTERN.test(requestUrl)) {
|
|
550
|
+
logger.error("http", "blocked request with unresolved id in path", { url: requestUrl });
|
|
551
|
+
throw new Error(
|
|
552
|
+
`[woodsportal-sdk] Blocked request: URL contains an unresolved id segment: ${requestUrl}`
|
|
553
|
+
);
|
|
554
|
+
}
|
|
475
555
|
const previewMock = await resolveEditorPreviewMock(requestConfig);
|
|
476
556
|
if (previewMock) {
|
|
477
557
|
requestConfig.adapter = () => Promise.resolve({
|
|
@@ -512,6 +592,17 @@ function initializeHttpClient(clientConfig) {
|
|
|
512
592
|
(error) => {
|
|
513
593
|
if (axios.isAxiosError(error) && error.config) {
|
|
514
594
|
const status = error.response?.status;
|
|
595
|
+
if (status == null) {
|
|
596
|
+
const violation = findCspViolationFor(getHttpUrl(error.config));
|
|
597
|
+
if (violation) {
|
|
598
|
+
logger.error("http", "request blocked by the embedding page CSP", {
|
|
599
|
+
url: sanitizeHttpUrl(error.config.url),
|
|
600
|
+
violatedDirective: violation.effectiveDirective,
|
|
601
|
+
blockedUri: violation.blockedUri,
|
|
602
|
+
fix: `the embedding page's Content-Security-Policy must include "${violation.effectiveDirective} ${violation.blockedUri}"`
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
}
|
|
515
606
|
if (isHttpTracingEnabled()) {
|
|
516
607
|
logger.debug("http", "request failed", {
|
|
517
608
|
method: getHttpMethod(error.config),
|
|
@@ -1836,10 +1927,17 @@ var authenticationClient = {
|
|
|
1836
1927
|
};
|
|
1837
1928
|
|
|
1838
1929
|
// src/main/features/crm/client/crm-client.ts
|
|
1930
|
+
function resolveCrmObjectRouteParams(payload) {
|
|
1931
|
+
const hubspotObjectTypeId = payload?.hubspotObjectTypeId ?? payload?.params?.hubspotObjectTypeId;
|
|
1932
|
+
return {
|
|
1933
|
+
...payload?.params || {},
|
|
1934
|
+
...hubspotObjectTypeId ? { hubspotObjectTypeId } : {}
|
|
1935
|
+
};
|
|
1936
|
+
}
|
|
1839
1937
|
var crmClient = {
|
|
1840
1938
|
pipeline: {
|
|
1841
1939
|
list: (payload = null, listTableParams = null) => {
|
|
1842
|
-
const params = payload
|
|
1940
|
+
const params = resolveCrmObjectRouteParams(payload);
|
|
1843
1941
|
const queryParams = payload?.queryParams;
|
|
1844
1942
|
const { paramsObject } = getParamDetails2({ type: payload?.componentName });
|
|
1845
1943
|
const userData = userStore.getState().profile;
|
|
@@ -1867,7 +1965,7 @@ var crmClient = {
|
|
|
1867
1965
|
},
|
|
1868
1966
|
stage: {
|
|
1869
1967
|
list: (payload = null) => {
|
|
1870
|
-
const params = payload
|
|
1968
|
+
const params = resolveCrmObjectRouteParams(payload);
|
|
1871
1969
|
const queryParams = payload?.queryParams;
|
|
1872
1970
|
const apiUrl = generateApiUrl({ route: API_ENDPOINTS.STAGES, params, queryParams });
|
|
1873
1971
|
return HttpClient.get(apiUrl);
|
|
@@ -1876,7 +1974,7 @@ var crmClient = {
|
|
|
1876
1974
|
object: {
|
|
1877
1975
|
list: async (payload = null, listTableParams = null) => {
|
|
1878
1976
|
const { setObjectsQueryParams } = actions2;
|
|
1879
|
-
const params = payload
|
|
1977
|
+
const params = resolveCrmObjectRouteParams(payload);
|
|
1880
1978
|
const queryParams = payload?.queryParams;
|
|
1881
1979
|
const { updateLink: updateLink2, getLinkParams } = updateLink();
|
|
1882
1980
|
const tabHubspotObjectTypeId = payload?.hubspotObjectTypeId ?? payload?.params?.hubspotObjectTypeId;
|
|
@@ -2564,6 +2662,6 @@ function createMutation(mutationFn, options) {
|
|
|
2564
2662
|
};
|
|
2565
2663
|
}
|
|
2566
2664
|
|
|
2567
|
-
export { API_ENDPOINTS, Client, HttpClient, buildCachePurgeRequest, buildCrmListPurgeTarget, buildCrmSinglePurgeTarget, buildEngagementPurgeTarget, buildPortalConfigPurgeTarget, buildUserSessionPurgeTarget, createCachePurgeJob, createMutation, extractEngagementItemIdFromWriteResponse, extractHubspotRecordIdFromWriteResponse, generateApiUrl, getAuthRefreshToken, getFieldErrors, getFormErrors, initializeHttpClient, mergePurgeTargets, navigationApi, purgeCrmCombined, purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache, purgeCrmRecordCache, purgeEngagementCaches, purgeEngagementCachesAfterCrmWrite, resolveCrmListPurgeQuery, resolveListTableParams, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler, toCachePurgeListQuery };
|
|
2568
|
-
//# sourceMappingURL=chunk-
|
|
2569
|
-
//# sourceMappingURL=chunk-
|
|
2665
|
+
export { API_ENDPOINTS, Client, HttpClient, applyContractApiDate, buildCachePurgeRequest, buildCrmListPurgeTarget, buildCrmSinglePurgeTarget, buildEngagementPurgeTarget, buildPortalConfigPurgeTarget, buildUserSessionPurgeTarget, createCachePurgeJob, createMutation, extractEngagementItemIdFromWriteResponse, extractHubspotRecordIdFromWriteResponse, generateApiUrl, getAuthRefreshToken, getConfiguredContractApiDate, getFieldErrors, getFormErrors, initializeHttpClient, mergePurgeTargets, navigationApi, purgeCrmCombined, purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache, purgeCrmRecordCache, purgeEngagementCaches, purgeEngagementCachesAfterCrmWrite, resolveCrmListPurgeQuery, resolveListTableParams, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler, toCachePurgeListQuery };
|
|
2666
|
+
//# sourceMappingURL=chunk-JEQNFCQP.js.map
|
|
2667
|
+
//# sourceMappingURL=chunk-JEQNFCQP.js.map
|