woodsportal-client-sdk 4.1.2-dev.1 → 4.1.2-dev.3
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.d.ts +9 -2
- package/dist/adapters/angular/index.js +5 -5
- package/dist/adapters/angular/index.js.map +1 -1
- package/dist/adapters/native/index.d.ts +1 -1
- package/dist/adapters/native/index.js +4 -4
- package/dist/adapters/react/index.d.ts +9 -2
- package/dist/adapters/react/index.js +4 -4
- package/dist/adapters/vue/index.d.ts +9 -2
- package/dist/adapters/vue/index.js +5 -5
- package/dist/adapters/vue/index.js.map +1 -1
- package/dist/{chunk-R6CZONMV.js → chunk-7X7PB27Z.js} +15 -7
- package/dist/chunk-7X7PB27Z.js.map +1 -0
- package/dist/chunk-CUVU6DCT.js +3 -0
- package/dist/{chunk-55MIERLJ.js.map → chunk-CUVU6DCT.js.map} +1 -1
- package/dist/{chunk-T553DXBI.js → chunk-I3JF5QOY.js} +5 -4
- package/dist/chunk-I3JF5QOY.js.map +1 -0
- package/dist/chunk-P5EWTH5Q.js +16 -0
- package/dist/chunk-P5EWTH5Q.js.map +1 -0
- package/dist/{chunk-3VH52USP.js → chunk-QREX7YVN.js} +6 -5
- package/dist/chunk-QREX7YVN.js.map +1 -0
- package/dist/{chunk-X6NNUGP7.js → chunk-T4YJV6MP.js} +22 -3
- package/dist/chunk-T4YJV6MP.js.map +1 -0
- package/dist/{chunk-N4SV7IQN.js → chunk-THFXCWVY.js} +4 -4
- package/dist/{chunk-N4SV7IQN.js.map → chunk-THFXCWVY.js.map} +1 -1
- package/dist/chunk-UCBM5ZFU.js +343 -0
- package/dist/chunk-UCBM5ZFU.js.map +1 -0
- package/dist/{chunk-JCYGLNF4.js → chunk-WRHS4HT3.js} +91 -22
- package/dist/chunk-WRHS4HT3.js.map +1 -0
- package/dist/{crmCacheRefresh-VRgYlnBv.d.ts → crmCacheRefresh-B9sAQzI7.d.ts} +9 -1
- package/dist/{cross-tab-session-VJBW7BK6.js → cross-tab-session-QIUHW33Y.js} +6 -6
- package/dist/{cross-tab-session-VJBW7BK6.js.map → cross-tab-session-QIUHW33Y.js.map} +1 -1
- package/dist/entries/auth.js +4 -4
- package/dist/entries/crm.d.ts +17 -3
- package/dist/entries/crm.js +10 -9
- package/dist/entries/crm.js.map +1 -1
- package/dist/index.d.ts +17 -3
- package/dist/index.js +13 -12
- package/dist/index.js.map +1 -1
- package/dist/{use-sync-B4xio81b.d.ts → use-sync-BQfzHacf.d.ts} +6 -1
- package/package.json +1 -1
- package/dist/chunk-3VH52USP.js.map +0 -1
- package/dist/chunk-55MIERLJ.js +0 -3
- package/dist/chunk-7XZSJGCX.js +0 -16
- package/dist/chunk-7XZSJGCX.js.map +0 -1
- package/dist/chunk-JCYGLNF4.js.map +0 -1
- package/dist/chunk-R6CZONMV.js.map +0 -1
- package/dist/chunk-T553DXBI.js.map +0 -1
- package/dist/chunk-X6NNUGP7.js.map +0 -1
- package/dist/chunk-YKA26CVL.js +0 -110
- package/dist/chunk-YKA26CVL.js.map +0 -1
|
@@ -258,6 +258,13 @@ type CrmCachePurgeOptions = {
|
|
|
258
258
|
pollIntervalMs?: number;
|
|
259
259
|
idempotencyKey?: string;
|
|
260
260
|
};
|
|
261
|
+
type AssociationCachePurgeOptions = Omit<CrmCachePurgeOptions, 'objectTypeId'> & {
|
|
262
|
+
parentObjectTypeId: string;
|
|
263
|
+
parentRecordId: string;
|
|
264
|
+
objectTypeId?: string;
|
|
265
|
+
childObjectTypeIds?: string[];
|
|
266
|
+
engagementViews?: Extract<CachePurgeView, 'notes' | 'emails' | 'files'>[];
|
|
267
|
+
};
|
|
261
268
|
|
|
262
269
|
declare function purgeCrmObjectDataCache(options: CrmCachePurgeOptions): Promise<boolean>;
|
|
263
270
|
declare function purgeCrmListCacheAfterCrmWrite(options: CrmCachePurgeOptions): Promise<PurgeResult>;
|
|
@@ -277,8 +284,9 @@ declare function purgeEngagementCachesAfterCrmWrite(options: CrmCachePurgeOption
|
|
|
277
284
|
views: ('notes' | 'emails')[];
|
|
278
285
|
engagementItemIds?: string[];
|
|
279
286
|
}): Promise<PurgeResult>;
|
|
287
|
+
declare function purgeCrmAssociationCaches(options: AssociationCachePurgeOptions): Promise<PurgeResult>;
|
|
280
288
|
declare function purgeCrmCombined(options: CrmCachePurgeOptions & {
|
|
281
289
|
targets: CachePurgeTarget[];
|
|
282
290
|
}): Promise<PurgeResult>;
|
|
283
291
|
|
|
284
|
-
export { purge as A, purgeStatus as B, type
|
|
292
|
+
export { purgeCrmRecordCache as $, purge as A, purgeStatus as B, type AssociationCachePurgeOptions as C, type CachePurgeDomain as D, type CachePurgeListQuery as E, type CachePurgeMode as F, type CachePurgeRequest as G, type CachePurgeTarget as H, type CachePurgeView as I, type CreateCachePurgeJobOptions as J, type CrmCachePurgeOptions as K, HUBSPOT_DEALS_OBJECT_TYPE_ID as L, HUBSPOT_TICKETS_OBJECT_TYPE_ID as M, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS as N, type PurgeResult as O, PIPELINE_BOARD_OBJECT_TYPE_IDS as P, isPipelineBoardObjectType as Q, isPipelineBoardObjectTypeId as R, purgeCrmAssociationCaches as S, purgeCrmDetailAndListAfterCrmWrite as T, purgeCrmListCache as U, purgeCrmListCacheAfterCrmWrite as V, purgeCrmObjectDataCache as W, purgeEngagementCaches as X, shouldShowPipelineSelector as Y, supportsBoardView as Z, purgeCrmCombined as _, list$1 as a, purgeEngagementCachesAfterCrmWrite as a0, list$2 as b, addExistingList as c, details as d, existingList as e, form as f, create as g, createExisting as h, list$3 as i, create$1 as j, update$1 as k, list as l, list$4 as m, create$2 as n, objectFormOptions as o, update$2 as p, list$5 as q, removeExisting as r, sideBarList as s, details$1 as t, update as u, download as v, addFolder as w, addFile as x, imageUpload as y, attachmentUpload as z };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { applyCrossTabSessionRevocation, installCrossTabSessionListener, resetCrossTabSessionSyncForTests, signalSessionChanged } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
export { applyCrossTabSessionRevocation, installCrossTabSessionListener, resetCrossTabSessionSyncForTests, signalSessionChanged } from './chunk-I3JF5QOY.js';
|
|
2
|
+
import './chunk-CUVU6DCT.js';
|
|
3
|
+
import './chunk-UCBM5ZFU.js';
|
|
4
|
+
import './chunk-T4YJV6MP.js';
|
|
5
5
|
import './chunk-JVJMM4SZ.js';
|
|
6
6
|
import './chunk-32ERSTFY.js';
|
|
7
7
|
import './chunk-DB6W3CJT.js';
|
|
8
8
|
import './chunk-KGNMN7B3.js';
|
|
9
9
|
import './chunk-COHBSTHF.js';
|
|
10
|
-
//# sourceMappingURL=cross-tab-session-
|
|
11
|
-
//# sourceMappingURL=cross-tab-session-
|
|
10
|
+
//# sourceMappingURL=cross-tab-session-QIUHW33Y.js.map
|
|
11
|
+
//# sourceMappingURL=cross-tab-session-QIUHW33Y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"cross-tab-session-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"cross-tab-session-QIUHW33Y.js"}
|
package/dist/entries/auth.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { authApi } from '../chunk-
|
|
2
|
-
export { API_ERROR_CATEGORY_FALLBACK, API_ERROR_DISPLAY_CONFIG, WOODSPORTAL_API_ACTIVE_ERROR_CODES, buildErrorDescription, getApiErrorFromUnknown, hasAuthenticatedAccess, hasValidAccess, isFullyAuthenticated, isMfaPendingSession, recoverMfaGateOnBoot, resolveApiErrorDisplay, resolveAuthRouteAction } from '../chunk-
|
|
1
|
+
import { authApi } from '../chunk-THFXCWVY.js';
|
|
2
|
+
export { API_ERROR_CATEGORY_FALLBACK, API_ERROR_DISPLAY_CONFIG, WOODSPORTAL_API_ACTIVE_ERROR_CODES, buildErrorDescription, getApiErrorFromUnknown, hasAuthenticatedAccess, hasValidAccess, isFullyAuthenticated, isMfaPendingSession, recoverMfaGateOnBoot, resolveApiErrorDisplay, resolveAuthRouteAction } from '../chunk-THFXCWVY.js';
|
|
3
3
|
export { isOptionalAuthFailureUrl, isSessionProbeUrl, persistAuthError, readPersistedAuthError, resolveAuthErrorAction } from '../chunk-JRT5XSVY.js';
|
|
4
|
-
export { getFieldErrors, getFormErrors, initializeHttpClient, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler } from '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
export { getFieldErrors, getFormErrors, initializeHttpClient, setEditorPreviewMockHandler, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler } from '../chunk-WRHS4HT3.js';
|
|
5
|
+
import '../chunk-T4YJV6MP.js';
|
|
6
6
|
export { SERVICE_UNAVAILABLE_MESSAGE, SessionRefreshDeferredError, SessionRefreshFailedError, classifyHttpError, clearMfaPendingAccessToken, getHttpErrorMessage, hydrateMfaPendingAccessToken, isMfaPendingAccessSession, isServiceUnavailableError, isSessionRefreshDeferredError, isSessionRefreshFailedError, readMfaPendingAccessToken, setSessionLifecycleListener, storeMfaPendingAccessToken } from '../chunk-JVJMM4SZ.js';
|
|
7
7
|
import '../chunk-32ERSTFY.js';
|
|
8
8
|
import '../chunk-DB6W3CJT.js';
|
package/dist/entries/crm.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as TableUiState, T as TableState, U as UserState, N as NoteState, E as EmailState, S as SyncState } from '../use-sync-
|
|
2
|
-
import { l as list, a as list$1, b as list$2, e as existingList, c as addExistingList, s as sideBarList, f as form, o as objectFormOptions, d as details, u as update, g as create, h as createExisting, r as removeExisting, i as list$3, j as create$1, k as update$1, m as list$4, n as create$2, p as update$2, q as list$5, t as details$1, v as download, w as addFolder, x as addFile, y as imageUpload, z as attachmentUpload, A as purge, B as purgeStatus } from '../crmCacheRefresh-
|
|
3
|
-
export { C as
|
|
1
|
+
import { a as TableUiState, T as TableState, U as UserState, O as ObjectState, N as NoteState, E as EmailState, S as SyncState } from '../use-sync-BQfzHacf.js';
|
|
2
|
+
import { l as list, a as list$1, b as list$2, e as existingList, c as addExistingList, s as sideBarList, f as form, o as objectFormOptions, d as details, u as update, g as create, h as createExisting, r as removeExisting, i as list$3, j as create$1, k as update$1, m as list$4, n as create$2, p as update$2, q as list$5, t as details$1, v as download, w as addFolder, x as addFile, y as imageUpload, z as attachmentUpload, A as purge, B as purgeStatus } from '../crmCacheRefresh-B9sAQzI7.js';
|
|
3
|
+
export { C as AssociationCachePurgeOptions, D as CachePurgeDomain, E as CachePurgeListQuery, F as CachePurgeMode, G as CachePurgeRequest, H as CachePurgeTarget, I as CachePurgeView, J as CreateCachePurgeJobOptions, K as CrmCachePurgeOptions, L as HUBSPOT_DEALS_OBJECT_TYPE_ID, M as HUBSPOT_TICKETS_OBJECT_TYPE_ID, P as PIPELINE_BOARD_OBJECT_TYPE_IDS, N as PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, O as PurgeResult, Q as isPipelineBoardObjectType, R as isPipelineBoardObjectTypeId, S as purgeCrmAssociationCaches, T as purgeCrmDetailAndListAfterCrmWrite, U as purgeCrmListCache, V as purgeCrmListCacheAfterCrmWrite, W as purgeCrmObjectDataCache, X as purgeEngagementCaches, Y as shouldShowPipelineSelector, Z as supportsBoardView } from '../crmCacheRefresh-B9sAQzI7.js';
|
|
4
4
|
import '../index-CWYPrDBp.js';
|
|
5
5
|
|
|
6
6
|
declare const api: {
|
|
@@ -177,6 +177,20 @@ declare const store: {
|
|
|
177
177
|
setProfile(response: any): void;
|
|
178
178
|
};
|
|
179
179
|
};
|
|
180
|
+
object: {
|
|
181
|
+
store: {
|
|
182
|
+
getState(): ObjectState;
|
|
183
|
+
setState(partial: Partial<ObjectState>): void;
|
|
184
|
+
subscribe(listener: (state: ObjectState) => void): () => boolean;
|
|
185
|
+
};
|
|
186
|
+
actions: {
|
|
187
|
+
setObjectData(response: any, payload?: any): void;
|
|
188
|
+
updateObjectData(response: any, payload?: any): any;
|
|
189
|
+
setObjectAssociationPrependData(response: any, props?: any): Promise<void>;
|
|
190
|
+
clearLatestObjectAssociationPrependData(props?: any): void;
|
|
191
|
+
clearObjectData(): void;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
180
194
|
note: {
|
|
181
195
|
store: {
|
|
182
196
|
getState(): NoteState;
|
package/dist/entries/crm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { crmApi } from '../chunk-
|
|
2
|
-
export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import { navigationApi } from '../chunk-
|
|
5
|
-
export { purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache } from '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2, tableStore, tableUiActions, tableUiStore } from '../chunk-
|
|
8
|
-
export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from '../chunk-
|
|
1
|
+
import { crmApi } from '../chunk-7X7PB27Z.js';
|
|
2
|
+
export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from '../chunk-7X7PB27Z.js';
|
|
3
|
+
import '../chunk-CUVU6DCT.js';
|
|
4
|
+
import { navigationApi } from '../chunk-WRHS4HT3.js';
|
|
5
|
+
export { purgeCrmAssociationCaches, purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache, purgeEngagementCaches } from '../chunk-WRHS4HT3.js';
|
|
6
|
+
import { actions2, objectStore } from '../chunk-UCBM5ZFU.js';
|
|
7
|
+
import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2 as actions2$1, tableStore, tableUiActions, tableUiStore } from '../chunk-T4YJV6MP.js';
|
|
8
|
+
export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from '../chunk-T4YJV6MP.js';
|
|
9
9
|
import { storage } from '../chunk-JVJMM4SZ.js';
|
|
10
10
|
import '../chunk-32ERSTFY.js';
|
|
11
11
|
import '../chunk-DB6W3CJT.js';
|
|
@@ -20,8 +20,9 @@ var api = {
|
|
|
20
20
|
var store = {
|
|
21
21
|
storage,
|
|
22
22
|
tableUi: { store: tableUiStore, actions: tableUiActions },
|
|
23
|
-
table: { store: tableStore, actions: actions2 },
|
|
23
|
+
table: { store: tableStore, actions: actions2$1 },
|
|
24
24
|
user: { store: userStore, actions: actions6 },
|
|
25
|
+
object: { store: objectStore, actions: actions2 },
|
|
25
26
|
note: { store: noteStore, actions: actions4 },
|
|
26
27
|
email: { store: emailStore, actions: actions5 },
|
|
27
28
|
sync: { store: syncStore, actions: actions8 }
|
package/dist/entries/crm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/main/entries/crm.ts"],"names":["actions"],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../src/main/entries/crm.ts"],"names":["actions"],"mappings":";;;;;;;;;;;;;;;AAuBO,IAAM,GAAA,GAAM;AAAA,EACf,GAAA,EAAK,MAAA;AAAA,EACL,UAAA,EAAY;AAChB;AAEO,IAAM,KAAA,GAAQ;AAAA,EACjB,OAAA;AAAA,EACA,OAAA,EAAS,EAAE,KAAA,EAAO,YAAA,EAAc,SAAS,cAAA,EAAe;AAAA,EACxD,KAAA,EAAO,EAAE,KAAA,EAAO,UAAA,WAAYA,UAAA,EAAsB;AAAA,EAClD,IAAA,EAAM,EAAE,KAAA,EAAO,SAAA,EAAW,SAASA,QAAAA,EAAY;AAAA,EAC/C,MAAA,EAAQ,EAAE,KAAA,EAAO,WAAA,EAAa,SAASA,QAAAA,EAAc;AAAA,EACrD,IAAA,EAAM,EAAE,KAAA,EAAO,SAAA,EAAW,SAASA,QAAAA,EAAY;AAAA,EAC/C,KAAA,EAAO,EAAE,KAAA,EAAO,UAAA,EAAY,SAASA,QAAAA,EAAa;AAAA,EAClD,IAAA,EAAM,EAAE,KAAA,EAAO,SAAA,EAAW,SAASA,QAAAA;AACvC","file":"crm.js","sourcesContent":["/**\n * CRM subpath export — pipelines, objects, notes, emails, files, cache purge, navigation, state.\n */\nimport { crmApi } from '../api/nested-crm-api'\nimport { navigationApi } from '../api/navigation-api'\nimport {\n tableStore,\n tableActions,\n tableUiStore,\n tableUiActions,\n userStore,\n userActions,\n objectStore,\n objectActions,\n noteStore,\n noteActions,\n emailStore,\n emailActions,\n syncStore,\n syncActions\n} from '../state'\nimport { storage } from '../core/utils/localStorage'\n\nexport const api = {\n crm: crmApi,\n navigation: navigationApi\n}\n\nexport const store = {\n storage,\n tableUi: { store: tableUiStore, actions: tableUiActions },\n table: { store: tableStore, actions: tableActions },\n user: { store: userStore, actions: userActions },\n object: { store: objectStore, actions: objectActions },\n note: { store: noteStore, actions: noteActions },\n email: { store: emailStore, actions: emailActions },\n sync: { store: syncStore, actions: syncActions }\n}\n\nexport {\n HUBSPOT_DEALS_OBJECT_TYPE_ID,\n HUBSPOT_TICKETS_OBJECT_TYPE_ID,\n PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS,\n PIPELINE_BOARD_OBJECT_TYPE_IDS,\n isPipelineBoardObjectTypeId\n} from '../core/constants/hubspot-object-type-ids'\nexport { isPipelineBoardObjectType, supportsBoardView, shouldShowPipelineSelector } from '../core/constants/pipeline-ui'\n\nexport type { CrmCachePurgeOptions, AssociationCachePurgeOptions } from '../core/types/cache-purge'\nexport type {\n CachePurgeRequest,\n CachePurgeTarget,\n CachePurgeListQuery,\n CachePurgeView,\n CachePurgeDomain,\n CachePurgeMode,\n PurgeResult,\n CreateCachePurgeJobOptions\n} from '../core/types/cache-purge'\n\nexport {\n purgeCrmListCache,\n purgeCrmListCacheAfterCrmWrite,\n purgeCrmDetailAndListAfterCrmWrite,\n purgeCrmAssociationCaches,\n purgeCrmObjectDataCache,\n purgeEngagementCaches\n} from '../core/utils/cache/crmCacheRefresh'\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as TableUiState, T as TableState, U as UserState, N as NoteState, E as EmailState, S as SyncState } from './use-sync-
|
|
1
|
+
import { a as TableUiState, T as TableState, U as UserState, O as ObjectState, N as NoteState, E as EmailState, S as SyncState } from './use-sync-BQfzHacf.js';
|
|
2
2
|
import { M as MutationOptions, P as PreLoginPayload, L as LoginPayload, V as VerifyEmailPayload, a as ResetPasswordVerifyTokenPayload, R as ResetPasswordPayload, F as ForgetPasswordPayload, b as ForgetPasswordOtpVerifyPayload, C as ChangePasswordPayload } from './index-CWYPrDBp.js';
|
|
3
3
|
export { c as Config } from './index-CWYPrDBp.js';
|
|
4
|
-
import {
|
|
5
|
-
export { C as CachePurgeDomain,
|
|
4
|
+
import { H as CachePurgeTarget, G as CachePurgeRequest, E as CachePurgeListQuery, I as CachePurgeView, J as CreateCachePurgeJobOptions, O as PurgeResult, l as list, a as list$1, b as list$2, e as existingList, c as addExistingList, s as sideBarList, f as form, o as objectFormOptions, d as details, u as update, g as create, h as createExisting, r as removeExisting, i as list$3, j as create$1, k as update$1, m as list$4, n as create$2, p as update$2, q as list$5, t as details$1, v as download, w as addFolder, x as addFile, y as imageUpload, z as attachmentUpload, A as purge, B as purgeStatus } from './crmCacheRefresh-B9sAQzI7.js';
|
|
5
|
+
export { C as AssociationCachePurgeOptions, D as CachePurgeDomain, F as CachePurgeMode, K as CrmCachePurgeOptions, L as HUBSPOT_DEALS_OBJECT_TYPE_ID, M as HUBSPOT_TICKETS_OBJECT_TYPE_ID, P as PIPELINE_BOARD_OBJECT_TYPE_IDS, N as PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, Q as isPipelineBoardObjectType, R as isPipelineBoardObjectTypeId, S as purgeCrmAssociationCaches, _ as purgeCrmCombined, T as purgeCrmDetailAndListAfterCrmWrite, U as purgeCrmListCache, V as purgeCrmListCacheAfterCrmWrite, W as purgeCrmObjectDataCache, $ as purgeCrmRecordCache, X as purgeEngagementCaches, a0 as purgeEngagementCachesAfterCrmWrite, Y as shouldShowPipelineSelector, Z as supportsBoardView } from './crmCacheRefresh-B9sAQzI7.js';
|
|
6
6
|
import { aO as ResolvedApiErrorDisplay, bt as ApiContentVariant, bu as ApiErrorSeverity, aN as ResolveApiErrorDisplayOptions, p as preLogin, l as login, c as clientSession, h as handoff, a as logout, r as register, v as verifyEmail, b as registerExistingUser, f as forgetPassword, d as verifyForgotPasswordOtp, e as resetPassword, g as resetPasswordVerifyToken, i as verifyEmailResend, j as resendEmail, s as signInLinkSend, k as signInLinkVerify, m as signInLinkValidateToken, n as changePassword, o as me, q as profile, t as profileUpdate, u as verifyOtp, w as sendMfaOtp, x as pendingPasskeyOptions, y as pendingPasskeyVerify, z as getMfaStatus, A as setMfaPreferences, B as startPhoneVerify, C as confirmPhoneVerify, D as totpEnrollStart, E as totpEnrollVerify, F as totpDisable, G as phoneUnverify, H as backupCodesRegenerate, I as mfaOptOut, J as webauthnRegisterOptions, K as webauthnRegisterVerify, L as webauthnAuthOptions, M as webauthnAuthVerify, N as listWebauthnCredentials, O as deleteWebauthnCredential, P as passkeyLoginOptions, Q as passkeyLoginVerify, R as getSecurityOverview, S as getSecurityLoginActivity, T as getSecuritySessions, U as revokeSecuritySession, V as revokeOtherSecuritySessions, W as getLoginBootstrap, X as getSsoDetails, Y as generateSsoUrl, Z as ssoCallback, _ as getRefreshToken, $ as refreshSession, a0 as getAuthRefreshToken, a1 as getAccessToken, a2 as setAccessToken, a3 as clearAccessToken, a4 as isAuthenticated, a5 as isAuthenticateApp, a6 as isAccessTokenExpired, a7 as isExpiresAccessToken, a8 as hasRefreshSession, a9 as hasValidAccessToken, aa as didLastRefreshFail, ab as isSessionRefreshExhausted, ac as isRefreshInFlight, ad as resetSessionAuthState, ae as clearSessionRefreshExhaustedState, af as hydrateSessionRefreshState, ag as SessionContractInput, aw as HttpClientConfig, bv as LoggerConfig, aU as TwoFaVerificationRequest, bw as MfaOtpSendRequest, bx as MfaPendingPasskeyOptionsRequest, by as MfaPendingPasskeyVerifyRequest, bz as MfaStatusQuery, bA as MfaPreferenceRequest, bB as PhoneVerifyStartRequest, bC as PhoneVerifyConfirmRequest, bD as TotpEnrollVerifyRequest, bE as TotpDisableRequest, bF as PhoneUnverifyRequest, bG as BackupCodesRegenerateRequest, bH as MfaBackupCodesResponse, bI as MfaOptOutRequest, bJ as WebAuthnVerifyRequest, bK as PasskeyLoginOptionsRequest, bL as PasskeyLoginVerifyRequest, bM as SecurityOverviewQuery, bN as SecurityLoginActivityQuery, bO as SecuritySessionsQuery, bP as RevokeSecuritySessionPayload } from './route-guard-contract-C6Gbvr5x.js';
|
|
7
7
|
export { ah as API_ERROR_CATEGORY_FALLBACK, ai as API_ERROR_DISPLAY_CONFIG, aj as ActiveSession, ak as ApiErrorDisplayConfig, al as ApiErrorPayload, am as ApiErrorVariant, an as AuthErrorAction, ao as AuthErrorCode, ap as AuthErrorCodeValue, aq as AuthFunnelState, ar as AuthInterceptorPolicyConfig, as as AuthPolicyRoutes, at as AuthRouteAction, ax as HttpErrorKind, ay as HydrateMfaPendingAccessTokenInput, bQ as LogLevel, bR as LogMeta, aD as LoginHistoryRow, aE as LoginResponseData, aF as MfaBootRecoveryResult, aG as MfaEnrollmentStatus, aH as MfaMethod, aI as MfaMethodOption, aJ as MfaPendingAccessToken, aK as MfaPortalScopeContext, aL as MfaStorageLane, aM as PaginationResponse, aP as SERVICE_UNAVAILABLE_MESSAGE, aQ as SecurityOverview, aR as SessionRefreshDeferredError, aS as SessionRefreshFailedError, bS as StorageKeyConfig, aT as StoredAuthError, aV as UnauthorizedPageCopy, aW as WOODSPORTAL_API_ACTIVE_ERROR_CODES, aX as WoodsportalRequestConfig, aY as buildErrorDescription, aZ as classifyHttpError, a_ as clearMfaPendingAccessToken, bT as configureStorageKeys, a$ as getApiErrorFromUnknown, b0 as getFieldErrors, b1 as getFormErrors, b2 as getHttpErrorMessage, bU as getStorageKeys, b3 as getUnauthorizedPageCopy, b4 as hasAuthenticatedAccess, b5 as hasValidAccess, b6 as hydrateMfaPendingAccessToken, b7 as initializeHttpClient, b8 as isFullyAuthenticated, b9 as isMfaPendingAccessSession, ba as isMfaPendingSession, bb as isOptionalAuthFailureUrl, bc as isServiceUnavailableError, bd as isSessionProbeUrl, be as isSessionRefreshDeferredError, bf as isSessionRefreshFailedError, bg as parseApiErrorPayload, bh as persistAuthError, bi as readMfaPendingAccessToken, bj as readPersistedAuthError, bk as recoverMfaGateOnBoot, bV as resetStorageKeysForTests, bl as resolveApiErrorDisplay, bm as resolveAuthErrorAction, bn as resolveAuthRouteAction, bp as setSessionLifecycleListener, bq as startVisibilityRefreshScheduler, br as stopVisibilityRefreshScheduler, bs as storeMfaPendingAccessToken } from './route-guard-contract-C6Gbvr5x.js';
|
|
8
8
|
import 'axios';
|
|
@@ -649,6 +649,20 @@ declare const store: {
|
|
|
649
649
|
setProfile(response: any): void;
|
|
650
650
|
};
|
|
651
651
|
};
|
|
652
|
+
object: {
|
|
653
|
+
store: {
|
|
654
|
+
getState(): ObjectState;
|
|
655
|
+
setState(partial: Partial<ObjectState>): void;
|
|
656
|
+
subscribe(listener: (state: ObjectState) => void): () => boolean;
|
|
657
|
+
};
|
|
658
|
+
actions: {
|
|
659
|
+
setObjectData(response: any, payload?: any): void;
|
|
660
|
+
updateObjectData(response: any, payload?: any): any;
|
|
661
|
+
setObjectAssociationPrependData(response: any, props?: any): Promise<void>;
|
|
662
|
+
clearLatestObjectAssociationPrependData(props?: any): void;
|
|
663
|
+
clearObjectData(): void;
|
|
664
|
+
};
|
|
665
|
+
};
|
|
652
666
|
note: {
|
|
653
667
|
store: {
|
|
654
668
|
getState(): NoteState;
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { applyCrossTabSessionRevocation, clearClientSdkSession, installCrossTabSessionListener, resetSessionStores, signalSessionChanged } from './chunk-
|
|
2
|
-
import { authApi } from './chunk-
|
|
3
|
-
export { API_ERROR_CATEGORY_FALLBACK, API_ERROR_DISPLAY_CONFIG, WOODSPORTAL_API_ACTIVE_ERROR_CODES, buildErrorDescription, getApiErrorFromUnknown, hasAuthenticatedAccess, hasValidAccess, isExpectedApiError, isFullyAuthenticated, isMfaPendingSession, recoverMfaGateOnBoot, resolveApiContentState, resolveApiErrorDisplay, resolveAuthRouteAction } from './chunk-
|
|
1
|
+
export { applyCrossTabSessionRevocation, clearClientSdkSession, installCrossTabSessionListener, resetSessionStores, signalSessionChanged } from './chunk-I3JF5QOY.js';
|
|
2
|
+
import { authApi } from './chunk-THFXCWVY.js';
|
|
3
|
+
export { API_ERROR_CATEGORY_FALLBACK, API_ERROR_DISPLAY_CONFIG, WOODSPORTAL_API_ACTIVE_ERROR_CODES, buildErrorDescription, getApiErrorFromUnknown, hasAuthenticatedAccess, hasValidAccess, isExpectedApiError, isFullyAuthenticated, isMfaPendingSession, recoverMfaGateOnBoot, resolveApiContentState, resolveApiErrorDisplay, resolveAuthRouteAction } from './chunk-THFXCWVY.js';
|
|
4
4
|
export { isOptionalAuthFailureUrl, isSessionProbeUrl, persistAuthError, readPersistedAuthError, resolveAuthErrorAction } from './chunk-JRT5XSVY.js';
|
|
5
|
-
import { crmApi } from './chunk-
|
|
6
|
-
export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import { navigationApi, HttpClient, API_ENDPOINTS, generateApiUrl, createMutation, initializeHttpClient } from './chunk-
|
|
9
|
-
export { Client, applyContractApiDate, buildCachePurgeRequest, buildCrmListPurgeTarget, buildCrmSinglePurgeTarget, buildEngagementPurgeTarget, buildPortalConfigPurgeTarget, buildUserSessionPurgeTarget, createCachePurgeJob, extractEngagementItemIdFromWriteResponse, extractHubspotRecordIdFromWriteResponse, getConfiguredContractApiDate, getFieldErrors, getFormErrors, initializeHttpClient, mergePurgeTargets, purgeCrmCombined, purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache, purgeCrmRecordCache, purgeEngagementCaches, purgeEngagementCachesAfterCrmWrite, resolveCrmListPurgeQuery, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler, toCachePurgeListQuery } from './chunk-
|
|
10
|
-
import './chunk-
|
|
11
|
-
import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2, tableStore, tableUiActions, tableUiStore, hydrateUserStoreFromSession } from './chunk-
|
|
12
|
-
export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from './chunk-
|
|
5
|
+
import { crmApi } from './chunk-7X7PB27Z.js';
|
|
6
|
+
export { isPipelineBoardObjectType, shouldShowPipelineSelector, supportsBoardView } from './chunk-7X7PB27Z.js';
|
|
7
|
+
import './chunk-CUVU6DCT.js';
|
|
8
|
+
import { navigationApi, HttpClient, API_ENDPOINTS, generateApiUrl, createMutation, initializeHttpClient } from './chunk-WRHS4HT3.js';
|
|
9
|
+
export { Client, applyContractApiDate, buildCachePurgeRequest, buildCrmListPurgeTarget, buildCrmSinglePurgeTarget, buildEngagementPurgeTarget, buildPortalConfigPurgeTarget, buildUserSessionPurgeTarget, createCachePurgeJob, extractEngagementItemIdFromWriteResponse, extractHubspotRecordIdFromWriteResponse, getConfiguredContractApiDate, getFieldErrors, getFormErrors, initializeHttpClient, mergePurgeTargets, purgeCrmAssociationCaches, purgeCrmCombined, purgeCrmDetailAndListAfterCrmWrite, purgeCrmListCache, purgeCrmListCacheAfterCrmWrite, purgeCrmObjectDataCache, purgeCrmRecordCache, purgeEngagementCaches, purgeEngagementCachesAfterCrmWrite, resolveCrmListPurgeQuery, startVisibilityRefreshScheduler, stopVisibilityRefreshScheduler, toCachePurgeListQuery } from './chunk-WRHS4HT3.js';
|
|
10
|
+
import { actions2, objectStore } from './chunk-UCBM5ZFU.js';
|
|
11
|
+
import { actions8, syncStore, actions5, emailStore, actions4, noteStore, actions6, userStore, actions2 as actions2$1, tableStore, tableUiActions, tableUiStore, hydrateUserStoreFromSession } from './chunk-T4YJV6MP.js';
|
|
12
|
+
export { HUBSPOT_DEALS_OBJECT_TYPE_ID, HUBSPOT_TICKETS_OBJECT_TYPE_ID, PIPELINE_BOARD_OBJECT_TYPE_IDS, PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS, isPipelineBoardObjectTypeId } from './chunk-T4YJV6MP.js';
|
|
13
13
|
import { storage, hydrateSessionRefreshState, hydrateMfaPendingAccessToken, storAccessToken } from './chunk-JVJMM4SZ.js';
|
|
14
14
|
export { SERVICE_UNAVAILABLE_MESSAGE, SessionRefreshDeferredError, SessionRefreshFailedError, classifyHttpError, clearMfaPendingAccessToken, configureLogger, getHttpErrorMessage, config as hubContext, hydrateMfaPendingAccessToken, isMfaPendingAccessSession, isServiceUnavailableError, isSessionRefreshDeferredError, isSessionRefreshFailedError, readMfaPendingAccessToken, setConfig as setHubContext, setSessionLifecycleListener, storeMfaPendingAccessToken } from './chunk-JVJMM4SZ.js';
|
|
15
15
|
import { setClientType } from './chunk-32ERSTFY.js';
|
|
@@ -172,8 +172,9 @@ function initializeMobileClient({ storage: storage2, ...httpConfig }) {
|
|
|
172
172
|
var store = {
|
|
173
173
|
storage,
|
|
174
174
|
tableUi: { store: tableUiStore, actions: tableUiActions },
|
|
175
|
-
table: { store: tableStore, actions: actions2 },
|
|
175
|
+
table: { store: tableStore, actions: actions2$1 },
|
|
176
176
|
user: { store: userStore, actions: actions6 },
|
|
177
|
+
object: { store: objectStore, actions: actions2 },
|
|
177
178
|
note: { store: noteStore, actions: actions4 },
|
|
178
179
|
email: { store: emailStore, actions: actions5 },
|
|
179
180
|
sync: { store: syncStore, actions: actions8 }
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/features/accounts/client/accounts-client.ts","../src/main/api/nested-accounts-api.ts","../src/main/features/mobile/client/mobile-navigation-client.ts","../src/main/api/nested-mobile-api.ts","../src/main/features/notifications/client/notification-preferences-client.ts","../src/main/features/notifications/api/preferences.ts","../src/main/api/nested-notifications-api.ts","../src/main/api/compose-api.ts","../src/main/core/utils/datetime.ts","../src/main/core/http/mobile-client-config.ts","../src/main/index.ts"],"names":["storage","actions"],"mappings":"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","file":"index.js","sourcesContent":["import { API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\n\nexport const accountsClient = {\n listHubspots: () => HttpClient.get(API_ENDPOINTS.HUBSPOTS),\n listPortals: (hubId: number) => HttpClient.get(API_ENDPOINTS.PORTALS, { hubId })\n}\n","import { accountsClient } from '../features/accounts/client/accounts-client'\n\n/** Client account listing (hubspots / portals) for mobile and multi-account flows. */\nexport const accountsApi = {\n listHubspots: accountsClient.listHubspots,\n listPortals: accountsClient.listPortals\n}\n","import { generateApiUrl, API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\n\nexport const mobileNavigationClient = {\n getNavigation: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION })),\n getAppConfig: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.MOBILE_APP_CONFIG })),\n putNavigation: (payload: unknown) => HttpClient.put(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION }), payload),\n importFromWebMenu: (payload: unknown) => HttpClient.post(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION_IMPORT_WEB_MENU }), payload)\n}\n","import { mobileNavigationClient } from '../features/mobile/client/mobile-navigation-client'\n\n/** Mobile-specific API surface (navigation config, etc.). */\nexport const mobileApi = {\n getNavigation: mobileNavigationClient.getNavigation,\n getAppConfig: mobileNavigationClient.getAppConfig,\n putNavigation: mobileNavigationClient.putNavigation,\n importFromWebMenu: mobileNavigationClient.importFromWebMenu\n}\n","import { generateApiUrl, API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\nimport type { NotificationPreference } from '../../../core/types/notification'\n\nexport const notificationPreferencesClient = {\n getPreferences: () =>\n HttpClient.get<NotificationPreference>(generateApiUrl({ route: API_ENDPOINTS.NOTIFICATION_PREFERENCES })),\n updatePreferences: (payload: NotificationPreference) =>\n HttpClient.put<NotificationPreference>(\n generateApiUrl({ route: API_ENDPOINTS.NOTIFICATION_PREFERENCES }),\n payload\n )\n}\n","import { createMutation } from '../../../core/mutation/createMutation'\nimport type { MutationOptions } from '../../../core/types'\nimport type { NotificationPreference } from '../../../core/types/notification'\nimport { notificationPreferencesClient } from '../client/notification-preferences-client'\n\n/**\n * Load the signed-in portal user's email notification preferences.\n *\n * **API:** `GET /api/{hubId}/{portalId}/notification-preferences`\n * **Auth:** Bearer portal client JWT (`PROFILE_READ`).\n * **Defaults:** both flags `true` until the user saves.\n */\nexport function getPreferences(options?: MutationOptions<NotificationPreference, any>) {\n const { mutate, isLoading } = createMutation<void, NotificationPreference>(\n async () => (await notificationPreferencesClient.getPreferences()) as NotificationPreference,\n options\n )\n\n return { mutate, getPreferences: mutate, isLoading }\n}\n\n/**\n * Upsert email notification preferences for the signed-in portal user.\n *\n * **API:** `PUT /api/{hubId}/{portalId}/notification-preferences`\n * **Auth:** Bearer portal client JWT (`PROFILE_WRITE`).\n * **Body:** `{ emailProductAnnouncements, emailJobErrors }` (both required booleans).\n */\nexport function updatePreferences(options?: MutationOptions<NotificationPreference, any>) {\n const { mutate, isLoading } = createMutation<NotificationPreference, NotificationPreference>(\n async (payload?: NotificationPreference) =>\n (await notificationPreferencesClient.updatePreferences(payload!)) as NotificationPreference,\n options\n )\n\n return { mutate, updatePreferences: mutate, isLoading }\n}\n","import { getPreferences, updatePreferences } from '../features/notifications/api/preferences'\n\n/** Portal client notification preferences (email product announcements / job errors). */\nexport const notificationsApi = {\n getPreferences,\n updatePreferences\n}\n","import { authApi } from './nested-auth-api'\nimport { crmApi } from './nested-crm-api'\nimport { navigationApi } from './navigation-api'\nimport { accountsApi } from './nested-accounts-api'\nimport { mobileApi } from './nested-mobile-api'\nimport { notificationsApi } from './nested-notifications-api'\n\n/** Public API — nested domains only (SDK 4.0). */\nexport const api = {\n auth: authApi,\n crm: crmApi,\n navigation: navigationApi,\n accounts: accountsApi,\n mobile: mobileApi,\n notifications: notificationsApi\n}\n","/** HubSpot portal default; override when portal timezone is available from config. */\nexport const DEFAULT_HUBSPOT_TIMEZONE = 'Asia/Kolkata'\n\n/**\n * Detect the runtime/browser IANA timezone (e.g. `Asia/Kolkata`).\n * Falls back to the WoodsPortal default timezone when unavailable.\n */\nexport function getCurrentTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || DEFAULT_HUBSPOT_TIMEZONE\n } catch {\n return DEFAULT_HUBSPOT_TIMEZONE\n }\n}\n\n/**\n * Coerce HubSpot-style timestamps (ms string/number) to epoch milliseconds.\n */\nexport function normalizeToTimestamp(value: unknown): number | null {\n if (value == null || value === '') return null\n\n if (typeof value === 'number') {\n return value > 100_000_000_000 ? value : null\n }\n\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n const n = Number(value)\n return n > 100_000_000_000 ? n : null\n }\n\n if (typeof value === 'string' || value instanceof Date) {\n const date = new Date(value)\n return Number.isNaN(date.getTime()) ? null : date.getTime()\n }\n\n return null\n}\n\n/**\n * GMT offset label aligned with HubSpot activity timeline (e.g. `GMT+5:30`).\n */\nexport function formatGmtOffset(timeZone: string = getCurrentTimeZone(), date: Date = new Date()): string {\n const raw = new Intl.DateTimeFormat('en-US', {\n timeZone,\n timeZoneName: 'longOffset'\n })\n .formatToParts(date)\n .find((part) => part.type === 'timeZoneName')?.value\n\n if (!raw) return ''\n\n // Intl may emit GMT+05:30; HubSpot uses GMT+5:30.\n return raw.replace(/GMT([+-])0(\\d)(?=:)/, 'GMT$1$2')\n}\n\nexport type HubSpotActivityDateTimeParts = {\n date: string\n time: string\n gmtOffset: string\n /** Full HubSpot-style label, e.g. `May 27, 2026 at 11:31 PM GMT+5:30`. */\n formatted: string\n}\n\n/**\n * Format a HubSpot epoch-ms timestamp like the CRM activity timeline.\n */\nexport function formatHubSpotActivityDateTimeParts(timestamp: unknown, timeZone: string = getCurrentTimeZone()): HubSpotActivityDateTimeParts | null {\n const ms = normalizeToTimestamp(timestamp)\n if (ms == null) return null\n\n const date = new Date(ms)\n const datePart = new Intl.DateTimeFormat('en-US', {\n timeZone,\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(date)\n const timePart = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour: 'numeric',\n minute: '2-digit',\n hour12: true\n }).format(date)\n const gmtOffset = formatGmtOffset(timeZone, date)\n\n return {\n date: datePart,\n time: timePart,\n gmtOffset,\n formatted: `${datePart} at ${timePart} ${gmtOffset}`.trim()\n }\n}\n\n/**\n * @returns HubSpot activity string, e.g. `May 27, 2026 at 11:31 PM GMT+5:30`, or empty string.\n */\nexport function formatHubSpotActivityDateTime(timestamp: unknown, timeZone: string = getCurrentTimeZone()): string {\n return formatHubSpotActivityDateTimeParts(timestamp, timeZone)?.formatted ?? ''\n}\n","import type { SessionStorageAdapter } from '../storage/session-storage-adapter'\nimport { registerSessionStorageAdapter } from '../storage/session-storage-registry'\nimport { setClientType } from './client-type'\nimport { initializeHttpClient, type HttpClientConfig } from './http-client'\nimport { hydrateSessionRefreshState } from './token-store'\nimport { hydrateMfaPendingAccessToken } from '../auth/mfa-pending-token-storage'\nimport { storAccessToken } from './token-store'\nimport { hydrateUserStoreFromSession } from '../../state/crm/use-user'\n\nexport type MobileClientConfig = HttpClientConfig & {\n storage: SessionStorageAdapter\n}\n\n/**\n * Configure the SDK for native/mobile hosts: pluggable storage, client type `mobile`,\n * and `X-Client-Type: mobile` on all HTTP requests.\n */\nexport function initializeMobileClient({ storage, ...httpConfig }: MobileClientConfig): void {\n registerSessionStorageAdapter(storage)\n setClientType('mobile')\n hydrateSessionRefreshState()\n void hydrateMfaPendingAccessToken({\n lane: 'c',\n setAccessToken: (token, expiresIn) => {\n storAccessToken(token, expiresIn)\n }\n })\n hydrateUserStoreFromSession()\n initializeHttpClient({\n ...httpConfig,\n headers: {\n 'X-Client-Type': 'mobile',\n ...httpConfig.headers\n }\n })\n}\n","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, and {@link api.navigation}.\n */\nimport { api } from './api/compose-api'\nimport {\n tableStore,\n tableActions,\n tableUiStore,\n tableUiActions,\n userStore,\n userActions,\n noteStore,\n noteActions,\n emailStore,\n emailActions,\n syncStore,\n syncActions\n} from './state'\nimport { storage } from './core/utils/localStorage'\n\nexport {\n DEFAULT_HUBSPOT_TIMEZONE,\n getCurrentTimeZone,\n formatGmtOffset,\n formatHubSpotActivityDateTime,\n formatHubSpotActivityDateTimeParts,\n normalizeToTimestamp\n} from './core/utils/datetime'\nexport type { HubSpotActivityDateTimeParts } from './core/utils/datetime'\nexport {\n purgeCrmObjectDataCache,\n purgeCrmListCache,\n purgeCrmListCacheAfterCrmWrite,\n purgeCrmDetailAndListAfterCrmWrite,\n purgeCrmRecordCache,\n purgeEngagementCaches,\n purgeEngagementCachesAfterCrmWrite,\n purgeCrmCombined,\n buildCachePurgeRequest,\n buildCrmListPurgeTarget,\n buildCrmSinglePurgeTarget,\n buildEngagementPurgeTarget,\n buildPortalConfigPurgeTarget,\n buildUserSessionPurgeTarget,\n mergePurgeTargets,\n createCachePurgeJob,\n extractHubspotRecordIdFromWriteResponse,\n extractEngagementItemIdFromWriteResponse,\n resolveCrmListPurgeQuery,\n toCachePurgeListQuery\n} from './core/utils/cache'\nexport type { CrmCachePurgeOptions } from './core/types/cache-purge'\nexport type {\n CachePurgeRequest,\n CachePurgeTarget,\n CachePurgeListQuery,\n CachePurgeView,\n CachePurgeDomain,\n CachePurgeMode,\n PurgeResult,\n CreateCachePurgeJobOptions\n} from './core/types/cache-purge'\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from './core/http/http-client'\nexport type { HttpClientConfig, StorageKeyConfig } from './core/http/http-client'\nexport { initializeMobileClient } from './core/http/mobile-client-config'\nexport type { MobileClientConfig } from './core/http/mobile-client-config'\nexport type { SessionStorageAdapter } from './core/storage/session-storage-adapter'\nexport { getClientType } from './core/http/client-type'\n\n/** Shared auth contract (client + admin consistency). */\nexport {\n AuthErrorCode,\n parseApiErrorPayload,\n getUnauthorizedPageCopy,\n resolveAuthErrorAction,\n isOptionalAuthFailureUrl,\n isSessionProbeUrl,\n persistAuthError,\n readPersistedAuthError,\n hasValidAccess,\n isFullyAuthenticated,\n isMfaPendingSession,\n hasAuthenticatedAccess,\n recoverMfaGateOnBoot,\n startVisibilityRefreshScheduler,\n stopVisibilityRefreshScheduler,\n resolveAuthRouteAction,\n storeMfaPendingAccessToken,\n readMfaPendingAccessToken,\n clearMfaPendingAccessToken,\n hydrateMfaPendingAccessToken,\n isMfaPendingAccessSession\n} from './core/auth/index.js'\nexport type {\n ApiErrorPayload,\n StoredAuthError,\n AuthErrorCodeValue,\n UnauthorizedPageCopy,\n AuthErrorAction,\n AuthPolicyRoutes,\n AuthInterceptorPolicyConfig,\n WoodsportalRequestConfig,\n SessionContractInput,\n MfaBootRecoveryResult,\n AuthRouteAction,\n AuthFunnelState,\n MfaStorageLane,\n MfaPendingAccessToken,\n HydrateMfaPendingAccessTokenInput\n} from './core/auth/index.js'\nexport { classifyHttpError, getHttpErrorMessage, isServiceUnavailableError, SERVICE_UNAVAILABLE_MESSAGE } from './core/http/http-errors'\nexport type { HttpErrorKind } from './core/http/http-errors'\nexport {\n SessionRefreshDeferredError,\n SessionRefreshFailedError,\n isSessionRefreshDeferredError,\n isSessionRefreshFailedError\n} from './core/http/session-refresh-errors'\n\nexport {\n API_ERROR_DISPLAY_CONFIG,\n API_ERROR_CATEGORY_FALLBACK,\n WOODSPORTAL_API_ACTIVE_ERROR_CODES,\n buildErrorDescription,\n getApiErrorFromUnknown,\n resolveApiErrorDisplay,\n resolveApiContentState,\n isExpectedApiError\n} from './core/errors/index.js'\nexport type {\n ApiErrorVariant,\n ApiContentVariant,\n ApiErrorSeverity,\n ApiErrorDisplayConfig,\n ResolvedApiErrorDisplay,\n ResolvedApiContentState,\n ResolveApiErrorDisplayOptions\n} from './core/errors/index.js'\n\nexport { configureLogger } from './core/logging/logger'\nexport type { LogLevel, LogMeta, LoggerConfig } from './core/logging/logger-types'\n\nexport { Client } from './core/http/client-assembler'\nexport { config as hubContext, setConfig as setHubContext } from './core/utils/hub-context'\nexport {\n applyContractApiDate,\n getConfiguredContractApiDate,\n} from './core/utils/generateApiUrl'\n\nexport { WP_STORAGE_KEYS, WP_UI_THEME, WP_UI_TIME_ZONE, WP_UI_TIME_FORMAT, wpClientIframeRefreshKey, wpClientIframeRefreshExpKey } from './core/utils/wp-storage-keys'\nexport {\n migrateLegacyStorageKeys,\n getClientAuthCookieNamesToClear,\n clearClientSessionStorageKeys,\n clearClientIframeRefreshLocalKeys,\n clearStaleIframeRefreshForOtherHubs\n} from './core/utils/storage-migration'\nexport { clearClientAuthCookies } from './core/utils/cookie'\nexport { clearClientSdkSession, resetSessionStores } from './core/http/session-teardown'\nexport { setSessionLifecycleListener } from './core/http/token-store'\nexport { signalSessionChanged, installCrossTabSessionListener, applyCrossTabSessionRevocation } from './core/http/cross-tab-session'\nexport { configureStorageKeys, getStorageKeys, resetStorageKeysForTests } from './core/utils/storage-keys'\n\nexport {\n HUBSPOT_DEALS_OBJECT_TYPE_ID,\n HUBSPOT_TICKETS_OBJECT_TYPE_ID,\n PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS,\n PIPELINE_BOARD_OBJECT_TYPE_IDS,\n isPipelineBoardObjectTypeId\n} from './core/constants/hubspot-object-type-ids'\nexport { isPipelineBoardObjectType, supportsBoardView, shouldShowPipelineSelector } from './core/constants/pipeline-ui'\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n MfaMethod,\n MfaMethodOption,\n MfaPortalScopeContext,\n LoginResponseData,\n TwoFaVerificationRequest,\n MfaEnrollmentStatus,\n SecurityOverview,\n LoginHistoryRow,\n ActiveSession,\n PaginationResponse\n} from './core/types'\n\nexport { api }\n\n/** Storage helpers and CRM stores. */\nexport const store = {\n storage,\n tableUi: { store: tableUiStore, actions: tableUiActions },\n table: { store: tableStore, actions: tableActions },\n user: { store: userStore, actions: userActions },\n note: { store: noteStore, actions: noteActions },\n email: { store: emailStore, actions: emailActions },\n sync: { store: syncStore, actions: syncActions }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/main/features/accounts/client/accounts-client.ts","../src/main/api/nested-accounts-api.ts","../src/main/features/mobile/client/mobile-navigation-client.ts","../src/main/api/nested-mobile-api.ts","../src/main/features/notifications/client/notification-preferences-client.ts","../src/main/features/notifications/api/preferences.ts","../src/main/api/nested-notifications-api.ts","../src/main/api/compose-api.ts","../src/main/core/utils/datetime.ts","../src/main/core/http/mobile-client-config.ts","../src/main/index.ts"],"names":["storage","actions"],"mappings":"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","file":"index.js","sourcesContent":["import { API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\n\nexport const accountsClient = {\n listHubspots: () => HttpClient.get(API_ENDPOINTS.HUBSPOTS),\n listPortals: (hubId: number) => HttpClient.get(API_ENDPOINTS.PORTALS, { hubId })\n}\n","import { accountsClient } from '../features/accounts/client/accounts-client'\n\n/** Client account listing (hubspots / portals) for mobile and multi-account flows. */\nexport const accountsApi = {\n listHubspots: accountsClient.listHubspots,\n listPortals: accountsClient.listPortals\n}\n","import { generateApiUrl, API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\n\nexport const mobileNavigationClient = {\n getNavigation: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION })),\n getAppConfig: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.MOBILE_APP_CONFIG })),\n putNavigation: (payload: unknown) => HttpClient.put(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION }), payload),\n importFromWebMenu: (payload: unknown) => HttpClient.post(generateApiUrl({ route: API_ENDPOINTS.MOBILE_NAVIGATION_IMPORT_WEB_MENU }), payload)\n}\n","import { mobileNavigationClient } from '../features/mobile/client/mobile-navigation-client'\n\n/** Mobile-specific API surface (navigation config, etc.). */\nexport const mobileApi = {\n getNavigation: mobileNavigationClient.getNavigation,\n getAppConfig: mobileNavigationClient.getAppConfig,\n putNavigation: mobileNavigationClient.putNavigation,\n importFromWebMenu: mobileNavigationClient.importFromWebMenu\n}\n","import { generateApiUrl, API_ENDPOINTS, HttpClient } from '../../../core/http/client-context'\nimport type { NotificationPreference } from '../../../core/types/notification'\n\nexport const notificationPreferencesClient = {\n getPreferences: () =>\n HttpClient.get<NotificationPreference>(generateApiUrl({ route: API_ENDPOINTS.NOTIFICATION_PREFERENCES })),\n updatePreferences: (payload: NotificationPreference) =>\n HttpClient.put<NotificationPreference>(\n generateApiUrl({ route: API_ENDPOINTS.NOTIFICATION_PREFERENCES }),\n payload\n )\n}\n","import { createMutation } from '../../../core/mutation/createMutation'\nimport type { MutationOptions } from '../../../core/types'\nimport type { NotificationPreference } from '../../../core/types/notification'\nimport { notificationPreferencesClient } from '../client/notification-preferences-client'\n\n/**\n * Load the signed-in portal user's email notification preferences.\n *\n * **API:** `GET /api/{hubId}/{portalId}/notification-preferences`\n * **Auth:** Bearer portal client JWT (`PROFILE_READ`).\n * **Defaults:** both flags `true` until the user saves.\n */\nexport function getPreferences(options?: MutationOptions<NotificationPreference, any>) {\n const { mutate, isLoading } = createMutation<void, NotificationPreference>(\n async () => (await notificationPreferencesClient.getPreferences()) as NotificationPreference,\n options\n )\n\n return { mutate, getPreferences: mutate, isLoading }\n}\n\n/**\n * Upsert email notification preferences for the signed-in portal user.\n *\n * **API:** `PUT /api/{hubId}/{portalId}/notification-preferences`\n * **Auth:** Bearer portal client JWT (`PROFILE_WRITE`).\n * **Body:** `{ emailProductAnnouncements, emailJobErrors }` (both required booleans).\n */\nexport function updatePreferences(options?: MutationOptions<NotificationPreference, any>) {\n const { mutate, isLoading } = createMutation<NotificationPreference, NotificationPreference>(\n async (payload?: NotificationPreference) =>\n (await notificationPreferencesClient.updatePreferences(payload!)) as NotificationPreference,\n options\n )\n\n return { mutate, updatePreferences: mutate, isLoading }\n}\n","import { getPreferences, updatePreferences } from '../features/notifications/api/preferences'\n\n/** Portal client notification preferences (email product announcements / job errors). */\nexport const notificationsApi = {\n getPreferences,\n updatePreferences\n}\n","import { authApi } from './nested-auth-api'\nimport { crmApi } from './nested-crm-api'\nimport { navigationApi } from './navigation-api'\nimport { accountsApi } from './nested-accounts-api'\nimport { mobileApi } from './nested-mobile-api'\nimport { notificationsApi } from './nested-notifications-api'\n\n/** Public API — nested domains only (SDK 4.0). */\nexport const api = {\n auth: authApi,\n crm: crmApi,\n navigation: navigationApi,\n accounts: accountsApi,\n mobile: mobileApi,\n notifications: notificationsApi\n}\n","/** HubSpot portal default; override when portal timezone is available from config. */\nexport const DEFAULT_HUBSPOT_TIMEZONE = 'Asia/Kolkata'\n\n/**\n * Detect the runtime/browser IANA timezone (e.g. `Asia/Kolkata`).\n * Falls back to the WoodsPortal default timezone when unavailable.\n */\nexport function getCurrentTimeZone(): string {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || DEFAULT_HUBSPOT_TIMEZONE\n } catch {\n return DEFAULT_HUBSPOT_TIMEZONE\n }\n}\n\n/**\n * Coerce HubSpot-style timestamps (ms string/number) to epoch milliseconds.\n */\nexport function normalizeToTimestamp(value: unknown): number | null {\n if (value == null || value === '') return null\n\n if (typeof value === 'number') {\n return value > 100_000_000_000 ? value : null\n }\n\n if (typeof value === 'string' && /^\\d+$/.test(value)) {\n const n = Number(value)\n return n > 100_000_000_000 ? n : null\n }\n\n if (typeof value === 'string' || value instanceof Date) {\n const date = new Date(value)\n return Number.isNaN(date.getTime()) ? null : date.getTime()\n }\n\n return null\n}\n\n/**\n * GMT offset label aligned with HubSpot activity timeline (e.g. `GMT+5:30`).\n */\nexport function formatGmtOffset(timeZone: string = getCurrentTimeZone(), date: Date = new Date()): string {\n const raw = new Intl.DateTimeFormat('en-US', {\n timeZone,\n timeZoneName: 'longOffset'\n })\n .formatToParts(date)\n .find((part) => part.type === 'timeZoneName')?.value\n\n if (!raw) return ''\n\n // Intl may emit GMT+05:30; HubSpot uses GMT+5:30.\n return raw.replace(/GMT([+-])0(\\d)(?=:)/, 'GMT$1$2')\n}\n\nexport type HubSpotActivityDateTimeParts = {\n date: string\n time: string\n gmtOffset: string\n /** Full HubSpot-style label, e.g. `May 27, 2026 at 11:31 PM GMT+5:30`. */\n formatted: string\n}\n\n/**\n * Format a HubSpot epoch-ms timestamp like the CRM activity timeline.\n */\nexport function formatHubSpotActivityDateTimeParts(timestamp: unknown, timeZone: string = getCurrentTimeZone()): HubSpotActivityDateTimeParts | null {\n const ms = normalizeToTimestamp(timestamp)\n if (ms == null) return null\n\n const date = new Date(ms)\n const datePart = new Intl.DateTimeFormat('en-US', {\n timeZone,\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(date)\n const timePart = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour: 'numeric',\n minute: '2-digit',\n hour12: true\n }).format(date)\n const gmtOffset = formatGmtOffset(timeZone, date)\n\n return {\n date: datePart,\n time: timePart,\n gmtOffset,\n formatted: `${datePart} at ${timePart} ${gmtOffset}`.trim()\n }\n}\n\n/**\n * @returns HubSpot activity string, e.g. `May 27, 2026 at 11:31 PM GMT+5:30`, or empty string.\n */\nexport function formatHubSpotActivityDateTime(timestamp: unknown, timeZone: string = getCurrentTimeZone()): string {\n return formatHubSpotActivityDateTimeParts(timestamp, timeZone)?.formatted ?? ''\n}\n","import type { SessionStorageAdapter } from '../storage/session-storage-adapter'\nimport { registerSessionStorageAdapter } from '../storage/session-storage-registry'\nimport { setClientType } from './client-type'\nimport { initializeHttpClient, type HttpClientConfig } from './http-client'\nimport { hydrateSessionRefreshState } from './token-store'\nimport { hydrateMfaPendingAccessToken } from '../auth/mfa-pending-token-storage'\nimport { storAccessToken } from './token-store'\nimport { hydrateUserStoreFromSession } from '../../state/crm/use-user'\n\nexport type MobileClientConfig = HttpClientConfig & {\n storage: SessionStorageAdapter\n}\n\n/**\n * Configure the SDK for native/mobile hosts: pluggable storage, client type `mobile`,\n * and `X-Client-Type: mobile` on all HTTP requests.\n */\nexport function initializeMobileClient({ storage, ...httpConfig }: MobileClientConfig): void {\n registerSessionStorageAdapter(storage)\n setClientType('mobile')\n hydrateSessionRefreshState()\n void hydrateMfaPendingAccessToken({\n lane: 'c',\n setAccessToken: (token, expiresIn) => {\n storAccessToken(token, expiresIn)\n }\n })\n hydrateUserStoreFromSession()\n initializeHttpClient({\n ...httpConfig,\n headers: {\n 'X-Client-Type': 'mobile',\n ...httpConfig.headers\n }\n })\n}\n","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, and {@link api.navigation}.\n */\nimport { api } from './api/compose-api'\nimport {\n tableStore,\n tableActions,\n tableUiStore,\n tableUiActions,\n userStore,\n userActions,\n objectStore,\n objectActions,\n noteStore,\n noteActions,\n emailStore,\n emailActions,\n syncStore,\n syncActions\n} from './state'\nimport { storage } from './core/utils/localStorage'\n\nexport {\n DEFAULT_HUBSPOT_TIMEZONE,\n getCurrentTimeZone,\n formatGmtOffset,\n formatHubSpotActivityDateTime,\n formatHubSpotActivityDateTimeParts,\n normalizeToTimestamp\n} from './core/utils/datetime'\nexport type { HubSpotActivityDateTimeParts } from './core/utils/datetime'\nexport {\n purgeCrmObjectDataCache,\n purgeCrmListCache,\n purgeCrmListCacheAfterCrmWrite,\n purgeCrmDetailAndListAfterCrmWrite,\n purgeCrmAssociationCaches,\n purgeCrmRecordCache,\n purgeEngagementCaches,\n purgeEngagementCachesAfterCrmWrite,\n purgeCrmCombined,\n buildCachePurgeRequest,\n buildCrmListPurgeTarget,\n buildCrmSinglePurgeTarget,\n buildEngagementPurgeTarget,\n buildPortalConfigPurgeTarget,\n buildUserSessionPurgeTarget,\n mergePurgeTargets,\n createCachePurgeJob,\n extractHubspotRecordIdFromWriteResponse,\n extractEngagementItemIdFromWriteResponse,\n resolveCrmListPurgeQuery,\n toCachePurgeListQuery\n} from './core/utils/cache'\nexport type { CrmCachePurgeOptions, AssociationCachePurgeOptions } from './core/types/cache-purge'\nexport type {\n CachePurgeRequest,\n CachePurgeTarget,\n CachePurgeListQuery,\n CachePurgeView,\n CachePurgeDomain,\n CachePurgeMode,\n PurgeResult,\n CreateCachePurgeJobOptions\n} from './core/types/cache-purge'\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from './core/http/http-client'\nexport type { HttpClientConfig, StorageKeyConfig } from './core/http/http-client'\nexport { initializeMobileClient } from './core/http/mobile-client-config'\nexport type { MobileClientConfig } from './core/http/mobile-client-config'\nexport type { SessionStorageAdapter } from './core/storage/session-storage-adapter'\nexport { getClientType } from './core/http/client-type'\n\n/** Shared auth contract (client + admin consistency). */\nexport {\n AuthErrorCode,\n parseApiErrorPayload,\n getUnauthorizedPageCopy,\n resolveAuthErrorAction,\n isOptionalAuthFailureUrl,\n isSessionProbeUrl,\n persistAuthError,\n readPersistedAuthError,\n hasValidAccess,\n isFullyAuthenticated,\n isMfaPendingSession,\n hasAuthenticatedAccess,\n recoverMfaGateOnBoot,\n startVisibilityRefreshScheduler,\n stopVisibilityRefreshScheduler,\n resolveAuthRouteAction,\n storeMfaPendingAccessToken,\n readMfaPendingAccessToken,\n clearMfaPendingAccessToken,\n hydrateMfaPendingAccessToken,\n isMfaPendingAccessSession\n} from './core/auth/index.js'\nexport type {\n ApiErrorPayload,\n StoredAuthError,\n AuthErrorCodeValue,\n UnauthorizedPageCopy,\n AuthErrorAction,\n AuthPolicyRoutes,\n AuthInterceptorPolicyConfig,\n WoodsportalRequestConfig,\n SessionContractInput,\n MfaBootRecoveryResult,\n AuthRouteAction,\n AuthFunnelState,\n MfaStorageLane,\n MfaPendingAccessToken,\n HydrateMfaPendingAccessTokenInput\n} from './core/auth/index.js'\nexport { classifyHttpError, getHttpErrorMessage, isServiceUnavailableError, SERVICE_UNAVAILABLE_MESSAGE } from './core/http/http-errors'\nexport type { HttpErrorKind } from './core/http/http-errors'\nexport {\n SessionRefreshDeferredError,\n SessionRefreshFailedError,\n isSessionRefreshDeferredError,\n isSessionRefreshFailedError\n} from './core/http/session-refresh-errors'\n\nexport {\n API_ERROR_DISPLAY_CONFIG,\n API_ERROR_CATEGORY_FALLBACK,\n WOODSPORTAL_API_ACTIVE_ERROR_CODES,\n buildErrorDescription,\n getApiErrorFromUnknown,\n resolveApiErrorDisplay,\n resolveApiContentState,\n isExpectedApiError\n} from './core/errors/index.js'\nexport type {\n ApiErrorVariant,\n ApiContentVariant,\n ApiErrorSeverity,\n ApiErrorDisplayConfig,\n ResolvedApiErrorDisplay,\n ResolvedApiContentState,\n ResolveApiErrorDisplayOptions\n} from './core/errors/index.js'\n\nexport { configureLogger } from './core/logging/logger'\nexport type { LogLevel, LogMeta, LoggerConfig } from './core/logging/logger-types'\n\nexport { Client } from './core/http/client-assembler'\nexport { config as hubContext, setConfig as setHubContext } from './core/utils/hub-context'\nexport {\n applyContractApiDate,\n getConfiguredContractApiDate,\n} from './core/utils/generateApiUrl'\n\nexport { WP_STORAGE_KEYS, WP_UI_THEME, WP_UI_TIME_ZONE, WP_UI_TIME_FORMAT, wpClientIframeRefreshKey, wpClientIframeRefreshExpKey } from './core/utils/wp-storage-keys'\nexport {\n migrateLegacyStorageKeys,\n getClientAuthCookieNamesToClear,\n clearClientSessionStorageKeys,\n clearClientIframeRefreshLocalKeys,\n clearStaleIframeRefreshForOtherHubs\n} from './core/utils/storage-migration'\nexport { clearClientAuthCookies } from './core/utils/cookie'\nexport { clearClientSdkSession, resetSessionStores } from './core/http/session-teardown'\nexport { setSessionLifecycleListener } from './core/http/token-store'\nexport { signalSessionChanged, installCrossTabSessionListener, applyCrossTabSessionRevocation } from './core/http/cross-tab-session'\nexport { configureStorageKeys, getStorageKeys, resetStorageKeysForTests } from './core/utils/storage-keys'\n\nexport {\n HUBSPOT_DEALS_OBJECT_TYPE_ID,\n HUBSPOT_TICKETS_OBJECT_TYPE_ID,\n PIPELINE_REQUIRED_MANAGED_OBJECT_TYPE_IDS,\n PIPELINE_BOARD_OBJECT_TYPE_IDS,\n isPipelineBoardObjectTypeId\n} from './core/constants/hubspot-object-type-ids'\nexport { isPipelineBoardObjectType, supportsBoardView, shouldShowPipelineSelector } from './core/constants/pipeline-ui'\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n MfaMethod,\n MfaMethodOption,\n MfaPortalScopeContext,\n LoginResponseData,\n TwoFaVerificationRequest,\n MfaEnrollmentStatus,\n SecurityOverview,\n LoginHistoryRow,\n ActiveSession,\n PaginationResponse\n} from './core/types'\n\nexport { api }\n\n/** Storage helpers and CRM stores. */\nexport const store = {\n storage,\n tableUi: { store: tableUiStore, actions: tableUiActions },\n table: { store: tableStore, actions: tableActions },\n user: { store: userStore, actions: userActions },\n object: { store: objectStore, actions: objectActions },\n note: { store: noteStore, actions: noteActions },\n email: { store: emailStore, actions: emailActions },\n sync: { store: syncStore, actions: syncActions }\n}\n"]}
|
|
@@ -33,6 +33,11 @@ interface TableUiState {
|
|
|
33
33
|
tableDefPermissions: Record<string, unknown>;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
interface ObjectState {
|
|
37
|
+
object: any;
|
|
38
|
+
id: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
36
41
|
interface NoteState {
|
|
37
42
|
notes: any;
|
|
38
43
|
prependNotes: any[];
|
|
@@ -58,4 +63,4 @@ interface SyncState {
|
|
|
58
63
|
isSyncDisable: boolean;
|
|
59
64
|
}
|
|
60
65
|
|
|
61
|
-
export type { EmailState as E, NoteState as N, SyncState as S, TableState as T, UserState as U, TableUiState as a };
|
|
66
|
+
export type { EmailState as E, NoteState as N, ObjectState as O, SyncState as S, TableState as T, UserState as U, TableUiState as a };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "woodsportal-client-sdk",
|
|
3
|
-
"version": "4.1.2-dev.
|
|
3
|
+
"version": "4.1.2-dev.3",
|
|
4
4
|
"packageManager": "pnpm@10.12.1",
|
|
5
5
|
"description": "Official TypeScript/JavaScript SDK for WoodsPortal API - Authentication, user management, pipelines, and more",
|
|
6
6
|
"type": "module",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/adapters/shared/createAdapterHooks.ts"],"names":["actions"],"mappings":";;;;AAmCO,SAAS,mBAAmB,gBAAA,EAAqC;AACpE,EAAA,OAAO;AAAA,IACH,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAYA,QAAY,CAAA;AAAA,IACpF,UAAA,EAAY,gBAAA,CAAsD,YAAA,EAAc,cAAc,CAAA;AAAA,IAC9F,qBAAA,EAAuB,gBAAA,CAAiB,gBAAA,EAAkBA,OAAkB,CAAA;AAAA,IAC5E,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,QAAA,EAAU,gBAAA,CAAkD,UAAA,EAAYA,QAAY,CAAA;AAAA,IACpF,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW,CAAA;AAAA,IAC/E,WAAA,EAAa,gBAAA,CAAwD,aAAA,EAAeA,QAAe,CAAA;AAAA,IACnG,OAAA,EAAS,gBAAA,CAAgD,SAAA,EAAWA,QAAW;AAAA,GACnF;AACJ","file":"chunk-3VH52USP.js","sourcesContent":["import type { SubscribableStore } from './bindStoreWithActions'\nimport {\n tableStore,\n tableActions,\n type TableState,\n tableUiStore,\n tableUiActions,\n type TableUiState,\n multiObjectStore,\n multiObjectActions,\n noteStore,\n noteActions,\n type NoteState,\n emailStore,\n emailActions,\n type EmailState,\n userStore,\n userActions,\n type UserState,\n syncStore,\n syncActions,\n type SyncState,\n uploaderStore,\n uploaderActions,\n type UploaderState,\n fileStore,\n fileActions,\n type FileState\n} from './stores'\n\ntype ComposableFactory = <TState extends object, TActions extends object>(\n store: SubscribableStore<TState>,\n actions: TActions\n) => () => TState & TActions\n\nexport function createAdapterHooks(createComposable: ComposableFactory) {\n return {\n useTable: createComposable<TableState, typeof tableActions>(tableStore, tableActions),\n useTableUi: createComposable<TableUiState, typeof tableUiActions>(tableUiStore, tableUiActions),\n useMultiObjectActions: createComposable(multiObjectStore, multiObjectActions),\n useNote: createComposable<NoteState, typeof noteActions>(noteStore, noteActions),\n useEmail: createComposable<EmailState, typeof emailActions>(emailStore, emailActions),\n useUser: createComposable<UserState, typeof userActions>(userStore, userActions),\n useSync: createComposable<SyncState, typeof syncActions>(syncStore, syncActions),\n useUploader: createComposable<UploaderState, typeof uploaderActions>(uploaderStore, uploaderActions),\n useFile: createComposable<FileState, typeof fileActions>(fileStore, fileActions)\n }\n}\n"]}
|
package/dist/chunk-55MIERLJ.js
DELETED
package/dist/chunk-7XZSJGCX.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { createAdapterHooks } from './chunk-3VH52USP.js';
|
|
2
|
-
import { useSyncExternalStore } from 'react';
|
|
3
|
-
|
|
4
|
-
function createReactStoreComposable(store, actions) {
|
|
5
|
-
return function useStore() {
|
|
6
|
-
const state = useSyncExternalStore(store.subscribe, store.getState, store.getState);
|
|
7
|
-
return { ...state, ...actions };
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
// src/main/adapters/react/index.ts
|
|
12
|
-
var { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } = createAdapterHooks(createReactStoreComposable);
|
|
13
|
-
|
|
14
|
-
export { useEmail, useFile, useMultiObjectActions, useNote, useSync, useTable, useTableUi, useUploader, useUser };
|
|
15
|
-
//# sourceMappingURL=chunk-7XZSJGCX.js.map
|
|
16
|
-
//# sourceMappingURL=chunk-7XZSJGCX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main/adapters/shared/createReactComposable.ts","../src/main/adapters/react/index.ts"],"names":[],"mappings":";;;AAGO,SAAS,0BAAA,CAA2E,OAAkC,OAAA,EAAmB;AAC5I,EAAA,OAAO,SAAS,QAAA,GAA8B;AAC1C,IAAA,MAAM,QAAQ,oBAAA,CAAqB,KAAA,CAAM,WAAW,KAAA,CAAM,QAAA,EAAU,MAAM,QAAQ,CAAA;AAClF,IAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAG,OAAA,EAAQ;AAAA,EAClC,CAAA;AACJ;;;ACLO,IAAM,EAAE,QAAA,EAAU,UAAA,EAAY,qBAAA,EAAuB,OAAA,EAAS,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,OAAA,EAAQ,GAClH,kBAAA,CAAmB,0BAA0B","file":"chunk-7XZSJGCX.js","sourcesContent":["import { useSyncExternalStore } from 'react'\nimport type { SubscribableStore } from './bindStoreWithActions'\n\nexport function createReactStoreComposable<TState extends object, TActions extends object>(store: SubscribableStore<TState>, actions: TActions) {\n return function useStore(): TState & TActions {\n const state = useSyncExternalStore(store.subscribe, store.getState, store.getState)\n return { ...state, ...actions }\n }\n}\n","import { createAdapterHooks } from '../shared/createAdapterHooks'\nimport { createReactStoreComposable } from '../shared/createReactComposable'\n\nexport const { useTable, useTableUi, useMultiObjectActions, useNote, useEmail, useUser, useSync, useUploader, useFile } =\n createAdapterHooks(createReactStoreComposable)\n"]}
|