@memberjunction/integration-connectors 5.27.0 → 5.28.0
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/HubSpotConnector.d.ts +158 -7
- package/dist/HubSpotConnector.d.ts.map +1 -1
- package/dist/HubSpotConnector.js +1715 -116
- package/dist/HubSpotConnector.js.map +1 -1
- package/dist/YourMembershipConnector.d.ts +160 -5
- package/dist/YourMembershipConnector.d.ts.map +1 -1
- package/dist/YourMembershipConnector.js +3220 -102
- package/dist/YourMembershipConnector.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type UserInfo } from '@memberjunction/core';
|
|
2
2
|
import type { MJCompanyIntegrationEntity, MJIntegrationObjectEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import { BaseRESTIntegrationConnector, type RESTAuthContext, type RESTResponse, type PaginationState, type PaginationType, type ConnectionTestResult, type DefaultFieldMapping, type DefaultIntegrationConfig, type FetchContext, type FetchBatchResult, type ExternalRecord, type CRUDResult, type CreateRecordContext, type UpdateRecordContext, type DeleteRecordContext, type GetRecordContext, type SearchContext, type SearchResult, type ListContext, type ListResult, type IntegrationObjectInfo, type ActionGeneratorConfig } from '@memberjunction/integration-engine';
|
|
3
|
+
import { BaseRESTIntegrationConnector, type RESTAuthContext, type RESTResponse, type PaginationState, type PaginationType, type ConnectionTestResult, type DefaultFieldMapping, type DefaultIntegrationConfig, type FetchContext, type FetchBatchResult, type ExternalRecord, type CRUDResult, type CreateRecordContext, type UpdateRecordContext, type DeleteRecordContext, type GetRecordContext, type SearchContext, type SearchResult, type ListContext, type ListResult, type IntegrationObjectInfo, type ActionGeneratorConfig, type ExternalObjectSchema, type ExternalFieldSchema, type SourceSchemaInfo } from '@memberjunction/integration-engine';
|
|
4
4
|
/** Connection configuration parsed from CompanyIntegration.Configuration JSON */
|
|
5
5
|
export interface HubSpotConnectionConfig {
|
|
6
6
|
/** HubSpot access token (private app key or OAuth token) */
|
|
@@ -25,6 +25,7 @@ interface HubSpotPropertyDef {
|
|
|
25
25
|
hasUniqueValue: boolean;
|
|
26
26
|
calculated: boolean;
|
|
27
27
|
externalOptions: boolean;
|
|
28
|
+
hidden?: boolean;
|
|
28
29
|
modificationMetadata?: {
|
|
29
30
|
readOnlyValue: boolean;
|
|
30
31
|
};
|
|
@@ -54,6 +55,8 @@ export declare class HubSpotConnector extends BaseRESTIntegrationConnector {
|
|
|
54
55
|
private lastRequestTime;
|
|
55
56
|
/** Resolved config (populated after first Authenticate call) */
|
|
56
57
|
private _config;
|
|
58
|
+
/** Cached auth context — reused within a session to avoid redundant credential loads */
|
|
59
|
+
private _cachedAuth;
|
|
57
60
|
private get effectiveMaxRetries();
|
|
58
61
|
private get effectiveRequestTimeoutMs();
|
|
59
62
|
private get effectiveMinRequestIntervalMs();
|
|
@@ -65,22 +68,90 @@ export declare class HubSpotConnector extends BaseRESTIntegrationConnector {
|
|
|
65
68
|
get IntegrationName(): string;
|
|
66
69
|
GetIntegrationObjects(): IntegrationObjectInfo[];
|
|
67
70
|
GetActionGeneratorConfig(): ActionGeneratorConfig | null;
|
|
71
|
+
/** Known standard HubSpot CRM object type IDs → API names. */
|
|
72
|
+
/**
|
|
73
|
+
* All standard CRM object type IDs → names.
|
|
74
|
+
* Fields discovered live via /crm/v3/properties/{objectType}.
|
|
75
|
+
* All support: GET, POST, PATCH, DELETE, search (incremental via hs_lastmodifieddate).
|
|
76
|
+
*/
|
|
77
|
+
private static readonly STANDARD_OBJECTS;
|
|
78
|
+
/**
|
|
79
|
+
* Non-CRM API endpoints that don't follow the /crm/v3/objects pattern.
|
|
80
|
+
* Fields cannot be discovered via /crm/v3/properties — discovered dynamically
|
|
81
|
+
* by fetching one record and inferring fields from the response.
|
|
82
|
+
*/
|
|
83
|
+
private static readonly NON_CRM_OBJECTS;
|
|
84
|
+
/**
|
|
85
|
+
* Association objects use the v4 per-object associations endpoint.
|
|
86
|
+
* Fields are fixed (two FK columns + association_type) — no live discovery API exists.
|
|
87
|
+
*/
|
|
88
|
+
private static readonly ASSOCIATION_OBJECTS;
|
|
89
|
+
/**
|
|
90
|
+
* Discovers all HubSpot objects (standard + custom + non-CRM + associations) via live API and static lists.
|
|
91
|
+
*/
|
|
92
|
+
DiscoverObjects(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<ExternalObjectSchema[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Helper to check if an object name is a CRM object (has /crm/v3/properties endpoint).
|
|
95
|
+
*/
|
|
96
|
+
private IsCRMObject;
|
|
97
|
+
/**
|
|
98
|
+
* Finds the non-CRM object config by name.
|
|
99
|
+
*/
|
|
100
|
+
private GetNonCRMObject;
|
|
101
|
+
/**
|
|
102
|
+
* Returns association object config if objectName is an association table, null otherwise.
|
|
103
|
+
*/
|
|
104
|
+
private GetAssociationObject;
|
|
105
|
+
/**
|
|
106
|
+
* Discovers all fields on a HubSpot object via the Properties API.
|
|
107
|
+
* Returns field types, constraints, PKs, and read-only flags from live metadata.
|
|
108
|
+
*/
|
|
109
|
+
DiscoverFields(companyIntegration: MJCompanyIntegrationEntity, objectName: string, contextUser: UserInfo): Promise<ExternalFieldSchema[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Discovers fields for non-CRM objects by fetching the first page of results
|
|
112
|
+
* and inferring field names/types from the response.
|
|
113
|
+
*/
|
|
114
|
+
/**
|
|
115
|
+
* Non-CRM and association objects have fixed, documented schemas.
|
|
116
|
+
* - Association objects: return both composite PK fields from ASSOCIATION_OBJECTS config.
|
|
117
|
+
* - Non-CRM objects: return the PK field from NON_CRM_OBJECTS config.
|
|
118
|
+
* IntrospectSchema's DB-fallback supplements with the full field list from metadata.
|
|
119
|
+
* No live API sampling needed.
|
|
120
|
+
*/
|
|
121
|
+
private DiscoverNonCRMFields;
|
|
122
|
+
/**
|
|
123
|
+
* Full schema introspection — discovers all objects and their fields from the live API.
|
|
124
|
+
*/
|
|
125
|
+
IntrospectSchema(companyIntegration: MJCompanyIntegrationEntity, contextUser: UserInfo): Promise<SourceSchemaInfo>;
|
|
68
126
|
/**
|
|
69
127
|
* Retrieves a single record by ExternalID (HubSpot object ID).
|
|
70
128
|
*/
|
|
71
129
|
GetRecord(ctx: GetRecordContext): Promise<ExternalRecord | null>;
|
|
72
130
|
/**
|
|
73
131
|
* Creates a new record in HubSpot.
|
|
132
|
+
* Routes association objects to the v4 batch/create endpoint instead of v3 objects.
|
|
74
133
|
*/
|
|
75
134
|
CreateRecord(ctx: CreateRecordContext): Promise<CRUDResult>;
|
|
76
135
|
/**
|
|
77
136
|
* Updates an existing record in HubSpot by ExternalID.
|
|
137
|
+
* For association objects, re-creates the association (idempotent in HubSpot).
|
|
78
138
|
*/
|
|
79
139
|
UpdateRecord(ctx: UpdateRecordContext): Promise<CRUDResult>;
|
|
80
140
|
/**
|
|
81
141
|
* Deletes (archives) a record in HubSpot by ExternalID.
|
|
142
|
+
* Routes association objects to the v4 batch/archive endpoint instead of v3 objects.
|
|
82
143
|
*/
|
|
83
144
|
DeleteRecord(ctx: DeleteRecordContext): Promise<CRUDResult>;
|
|
145
|
+
/**
|
|
146
|
+
* Creates an association in HubSpot using the v4 batch/create endpoint.
|
|
147
|
+
* ExternalID returned is "{leftID}|{rightID}" matching the pull ExternalID format.
|
|
148
|
+
*/
|
|
149
|
+
private CreateAssociation;
|
|
150
|
+
/**
|
|
151
|
+
* Removes an association in HubSpot using the v4 batch/archive endpoint.
|
|
152
|
+
* ExternalID must be "{leftID}|{rightID}" — the same format stored by pull sync.
|
|
153
|
+
*/
|
|
154
|
+
private DeleteAssociation;
|
|
84
155
|
/**
|
|
85
156
|
* Searches HubSpot objects using the CRM search API.
|
|
86
157
|
*/
|
|
@@ -149,11 +220,68 @@ export declare class HubSpotConnector extends BaseRESTIntegrationConnector {
|
|
|
149
220
|
*/
|
|
150
221
|
private FlattenHubSpotRecord;
|
|
151
222
|
/**
|
|
152
|
-
* Overrides FetchChanges to
|
|
153
|
-
*
|
|
154
|
-
*
|
|
223
|
+
* Overrides FetchChanges to support three fetch strategies:
|
|
224
|
+
*
|
|
225
|
+
* 1. **Association objects** → v4 per-object associations endpoint
|
|
226
|
+
* 2. **Incremental sync** (watermark set) → HubSpot search API with server-side
|
|
227
|
+
* `hs_lastmodifieddate >= watermark` filter
|
|
228
|
+
* 3. **Full load** (no watermark / first sync) → standard list API via base class
|
|
155
229
|
*/
|
|
156
230
|
FetchChanges(ctx: FetchContext): Promise<FetchBatchResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Full-load path for CRM objects (first sync, no watermark).
|
|
233
|
+
* Uses the CRM list endpoint with property expansion and FlattenHubSpotRecord so that
|
|
234
|
+
* ExternalID is correctly built from hs_object_id (mirroring FetchChangesViaSearch).
|
|
235
|
+
* The base class FetchChanges cannot be used here because it reads raw[field] without
|
|
236
|
+
* flattening, causing ExternalID="" for every record.
|
|
237
|
+
*/
|
|
238
|
+
private FetchCRMFullLoad;
|
|
239
|
+
/**
|
|
240
|
+
* Fetches all pages from a single non-CRM API endpoint URL, accumulating all records.
|
|
241
|
+
* Used as a building block for both flat and parameterized endpoint fetches.
|
|
242
|
+
*/
|
|
243
|
+
private FetchAllPagesFromURL;
|
|
244
|
+
/**
|
|
245
|
+
* Handles parameterized endpoints (apiPath with {placeholder}) by fan-out:
|
|
246
|
+
* fetches all parent records, then fetches children for each parent ID.
|
|
247
|
+
* All child records are accumulated and returned as a single batch (HasMore: false).
|
|
248
|
+
*
|
|
249
|
+
* Skips objects where parentObject is not found in NON_CRM_OBJECTS (config error).
|
|
250
|
+
* Skips objects with {appId} placeholder — these require Developer App configuration.
|
|
251
|
+
*/
|
|
252
|
+
private FetchParameterizedChanges;
|
|
253
|
+
/**
|
|
254
|
+
* Fetches records from non-CRM HubSpot APIs (Marketing, CMS, Files, etc.).
|
|
255
|
+
* These endpoints use standard REST list pagination, not the CRM search API.
|
|
256
|
+
* Watermark filtering is client-side based on date fields in the response.
|
|
257
|
+
*
|
|
258
|
+
* Dispatches to FetchParameterizedChanges when apiPath contains {placeholder}.
|
|
259
|
+
*/
|
|
260
|
+
private FetchNonCRMChanges;
|
|
261
|
+
/**
|
|
262
|
+
* Find the latest date value across common date fields in a set of records.
|
|
263
|
+
*/
|
|
264
|
+
private FindLatestDateInFields;
|
|
265
|
+
/**
|
|
266
|
+
* Fetches changed records using the HubSpot search API with server-side date filtering.
|
|
267
|
+
* Much more efficient than fetching ALL records and filtering client-side.
|
|
268
|
+
*/
|
|
269
|
+
private FetchChangesViaSearch;
|
|
270
|
+
/**
|
|
271
|
+
* Detects archived (deleted) CRM records since the given watermark.
|
|
272
|
+
*
|
|
273
|
+
* Uses the HubSpot search API with `archived: true` so the same server-side
|
|
274
|
+
* GTE watermark filter applies — only records archived/modified since the last
|
|
275
|
+
* sync are returned. Returns them with `IsDeleted: true` so the integration
|
|
276
|
+
* engine routes them through the delete pipeline.
|
|
277
|
+
*
|
|
278
|
+
* Falls back to empty on any API error (e.g. object type doesn't support
|
|
279
|
+
* archived search) so delete detection degrades gracefully rather than
|
|
280
|
+
* blocking the active-record sync.
|
|
281
|
+
*/
|
|
282
|
+
private FetchArchivedCRMChanges;
|
|
283
|
+
/** Returns the watermark date field name for a given object type. */
|
|
284
|
+
private GetWatermarkField;
|
|
157
285
|
/** Finds the latest date value across records for a given field name. */
|
|
158
286
|
private FindLatestDate;
|
|
159
287
|
/**
|
|
@@ -163,12 +291,17 @@ export declare class HubSpotConnector extends BaseRESTIntegrationConnector {
|
|
|
163
291
|
* Uses ctx.CurrentOffset to track parent position across batch calls, so the engine
|
|
164
292
|
* can page through all parents without truncating records.
|
|
165
293
|
*/
|
|
294
|
+
/**
|
|
295
|
+
* Fetches association records using the HubSpot v4 batch/read endpoint.
|
|
296
|
+
* Batches up to 100 parent IDs per request instead of one GET per parent,
|
|
297
|
+
* reducing API calls from O(n) to O(n/100).
|
|
298
|
+
*/
|
|
166
299
|
private FetchAssociationChanges;
|
|
167
300
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
301
|
+
* Calls POST /crm/v4/associations/{fromType}/{toType}/batch/read with up to 100 parent IDs.
|
|
302
|
+
* Response format: { results: [{ from: { id }, to: [{ toObjectId, associationTypes }] }] }
|
|
170
303
|
*/
|
|
171
|
-
private
|
|
304
|
+
private FetchAssociationBatch;
|
|
172
305
|
/**
|
|
173
306
|
* Converts a HubSpot v4 association result item into a flat record suitable for storage.
|
|
174
307
|
* v4 format: { toObjectId: number, associationTypes: [{ label, typeId, category }] }
|
|
@@ -194,8 +327,26 @@ export declare class HubSpotConnector extends BaseRESTIntegrationConnector {
|
|
|
194
327
|
* the HUBSPOT_OBJECTS metadata (single source of truth).
|
|
195
328
|
*/
|
|
196
329
|
private GetObjectFieldNames;
|
|
330
|
+
/**
|
|
331
|
+
* Returns the effective property list for a HubSpot CRM request.
|
|
332
|
+
*
|
|
333
|
+
* When `requestedFields` (from FetchContext.RequestedSourceFields) is provided it
|
|
334
|
+
* contains the source fields from active field maps, including any custom properties.
|
|
335
|
+
* We merge those with the essential system properties so watermark tracking always works.
|
|
336
|
+
*
|
|
337
|
+
* Falls back to the static HUBSPOT_OBJECTS field list when no requestedFields are given.
|
|
338
|
+
*
|
|
339
|
+
* Note: hs_object_id is NOT included — it's the top-level `id` field on every HubSpot
|
|
340
|
+
* response and is injected by FlattenHubSpotRecord regardless of `?properties=`.
|
|
341
|
+
* Essential system properties (always included):
|
|
342
|
+
* - GetWatermarkField(objectName) — the per-object modified-date property (object-specific;
|
|
343
|
+
* contacts use 'lastmodifieddate', all others use 'hs_lastmodifieddate')
|
|
344
|
+
* - createdate — creation timestamp
|
|
345
|
+
*/
|
|
346
|
+
private BuildEffectiveProperties;
|
|
197
347
|
/**
|
|
198
348
|
* Builds the `properties` query parameter for a HubSpot object type.
|
|
349
|
+
* Accepts optional `requestedFields` from FetchContext to include custom-mapped properties.
|
|
199
350
|
* Returns empty string if no properties are configured for the object.
|
|
200
351
|
*/
|
|
201
352
|
private BuildPropertiesParam;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HubSpotConnector.d.ts","sourceRoot":"","sources":["../src/HubSpotConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAsB,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/H,OAAO,EAEH,4BAA4B,EAC5B,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"HubSpotConnector.d.ts","sourceRoot":"","sources":["../src/HubSpotConnector.ts"],"names":[],"mappings":"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"}
|