@memberjunction/integration-engine 5.37.0 → 5.39.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.
Files changed (74) hide show
  1. package/dist/ActionMetadataGenerator.d.ts +8 -1
  2. package/dist/ActionMetadataGenerator.d.ts.map +1 -1
  3. package/dist/ActionMetadataGenerator.js +22 -3
  4. package/dist/ActionMetadataGenerator.js.map +1 -1
  5. package/dist/AdaptiveConcurrency.d.ts +85 -0
  6. package/dist/AdaptiveConcurrency.d.ts.map +1 -0
  7. package/dist/AdaptiveConcurrency.js +148 -0
  8. package/dist/AdaptiveConcurrency.js.map +1 -0
  9. package/dist/BaseIntegrationConnector.d.ts +127 -3
  10. package/dist/BaseIntegrationConnector.d.ts.map +1 -1
  11. package/dist/BaseIntegrationConnector.js +126 -11
  12. package/dist/BaseIntegrationConnector.js.map +1 -1
  13. package/dist/BaseRESTIntegrationConnector.d.ts +80 -15
  14. package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
  15. package/dist/BaseRESTIntegrationConnector.js +314 -64
  16. package/dist/BaseRESTIntegrationConnector.js.map +1 -1
  17. package/dist/ConflictRecency.d.ts +24 -0
  18. package/dist/ConflictRecency.d.ts.map +1 -0
  19. package/dist/ConflictRecency.js +25 -0
  20. package/dist/ConflictRecency.js.map +1 -0
  21. package/dist/ContentHash.d.ts +28 -0
  22. package/dist/ContentHash.d.ts.map +1 -0
  23. package/dist/ContentHash.js +54 -0
  24. package/dist/ContentHash.js.map +1 -0
  25. package/dist/EnrichSchemaConstraints.d.ts +59 -0
  26. package/dist/EnrichSchemaConstraints.d.ts.map +1 -0
  27. package/dist/EnrichSchemaConstraints.js +168 -0
  28. package/dist/EnrichSchemaConstraints.js.map +1 -0
  29. package/dist/FieldMappingEngine.d.ts +22 -0
  30. package/dist/FieldMappingEngine.d.ts.map +1 -1
  31. package/dist/FieldMappingEngine.js +66 -5
  32. package/dist/FieldMappingEngine.js.map +1 -1
  33. package/dist/HashDiff.d.ts +68 -0
  34. package/dist/HashDiff.d.ts.map +1 -0
  35. package/dist/HashDiff.js +108 -0
  36. package/dist/HashDiff.js.map +1 -0
  37. package/dist/IntegrationActionGenerator.d.ts +93 -0
  38. package/dist/IntegrationActionGenerator.d.ts.map +1 -0
  39. package/dist/IntegrationActionGenerator.js +313 -0
  40. package/dist/IntegrationActionGenerator.js.map +1 -0
  41. package/dist/IntegrationConnectorCreationPipeline.d.ts +86 -0
  42. package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -0
  43. package/dist/IntegrationConnectorCreationPipeline.js +226 -0
  44. package/dist/IntegrationConnectorCreationPipeline.js.map +1 -0
  45. package/dist/IntegrationEngine.d.ts +199 -1
  46. package/dist/IntegrationEngine.d.ts.map +1 -1
  47. package/dist/IntegrationEngine.js +1592 -109
  48. package/dist/IntegrationEngine.js.map +1 -1
  49. package/dist/IntegrationSchemaSync.d.ts +82 -0
  50. package/dist/IntegrationSchemaSync.d.ts.map +1 -1
  51. package/dist/IntegrationSchemaSync.js +289 -42
  52. package/dist/IntegrationSchemaSync.js.map +1 -1
  53. package/dist/MatchEngine.d.ts.map +1 -1
  54. package/dist/MatchEngine.js +4 -0
  55. package/dist/MatchEngine.js.map +1 -1
  56. package/dist/RateLimiter.d.ts +117 -0
  57. package/dist/RateLimiter.d.ts.map +1 -0
  58. package/dist/RateLimiter.js +159 -0
  59. package/dist/RateLimiter.js.map +1 -0
  60. package/dist/SyncLogger.d.ts +106 -0
  61. package/dist/SyncLogger.d.ts.map +1 -0
  62. package/dist/SyncLogger.js +176 -0
  63. package/dist/SyncLogger.js.map +1 -0
  64. package/dist/WatermarkService.d.ts +36 -1
  65. package/dist/WatermarkService.d.ts.map +1 -1
  66. package/dist/WatermarkService.js +113 -3
  67. package/dist/WatermarkService.js.map +1 -1
  68. package/dist/index.d.ts +23 -6
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +11 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/types.d.ts +52 -1
  73. package/dist/types.d.ts.map +1 -1
  74. package/package.json +8 -6
@@ -1,6 +1,7 @@
1
1
  import { RunView } from '@memberjunction/core';
2
2
  import { UUIDsEqual } from '@memberjunction/global';
3
3
  import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
4
+ import { computeContentHash } from './ContentHash.js';
4
5
  import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
5
6
  /** Maximum number of pages to fetch before stopping (safety limit to prevent infinite loops) */
6
7
  // ─── BaseRESTIntegrationConnector ────────────────────────────────────
@@ -16,6 +17,22 @@ import { BaseIntegrationConnector, } from './BaseIntegrationConnector.js';
16
17
  * this class and implement only auth, HTTP transport, and response normalization.
17
18
  */
18
19
  export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
20
+ /**
21
+ * Optional per-record CUSTOMIZATION hook called between NormalizeResponse
22
+ * (vendor envelope-stripping) and ToExternalRecord (composite-PK assembly).
23
+ *
24
+ * Distinct from NormalizeResponse — that strips the vendor's response envelope
25
+ * to expose individual records. This hook is for vendor-specific record-level
26
+ * customization the standard pipeline shouldn't carry: nested-field flattening,
27
+ * empty-string→null coercion for date columns, computed fields, removing vendor
28
+ * metadata blobs (e.g. Salesforce 'attributes'), etc.
29
+ *
30
+ * Default is identity (no transform). Override only when a concrete connector
31
+ * needs vendor-specific shape changes.
32
+ */
33
+ TransformRecord(raw, _obj, _fields) {
34
+ return raw;
35
+ }
19
36
  // ── BaseIntegrationConnector implementations ─────────────────────
20
37
  /**
21
38
  * Discovers available objects from the IntegrationEngineBase cache.
@@ -70,6 +87,190 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
70
87
  }
71
88
  return this.FetchFlat(auth, baseURL, obj, fields, ctx);
72
89
  }
90
+ // ── Generic metadata-driven CRUD ─────────────────────────────────
91
+ //
92
+ // These implementations read per-operation columns from IntegrationObject
93
+ // (CreateAPIPath/Method/BodyShape/BodyKey/IDLocation, Update*, Delete*) and
94
+ // execute generically. Concrete connectors should only override when the API
95
+ // is genuinely idiosyncratic (multi-step writes, custom body envelopes that
96
+ // don't fit flat/wrapped, etc.) — the metadata-driven path handles the
97
+ // common case for ~all REST connectors and removes the duplicate write logic
98
+ // that previously lived in every concrete class.
99
+ //
100
+ // Null-capability honesty: if a metadata column is null, the corresponding
101
+ // verb is NOT supported via the generic path. SupportsCreate/Update/Delete
102
+ // capability getters on BaseIntegrationConnector should be overridden to
103
+ // reflect the actual column population.
104
+ /** Generic create: reads CreateAPIPath/Method/BodyShape/BodyKey/IDLocation from the IO row. */
105
+ async CreateRecord(ctx) {
106
+ const ci = ctx.CompanyIntegration;
107
+ const contextUser = ctx.ContextUser;
108
+ const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
109
+ if (!obj.CreateAPIPath || !obj.CreateMethod) {
110
+ throw new Error(`CreateRecord not supported for "${ctx.ObjectName}": ` +
111
+ `CreateAPIPath / CreateMethod not configured on IntegrationObject. ` +
112
+ `Either populate metadata or override CreateRecord in the concrete connector.`);
113
+ }
114
+ const auth = await this.Authenticate(ci, contextUser);
115
+ const baseURL = this.GetBaseURL(ci, auth);
116
+ const headers = this.BuildHeaders(auth);
117
+ const url = this.BuildFullURL(baseURL, obj.CreateAPIPath);
118
+ const body = this.BuildOperationBody(ctx.Attributes, obj.CreateBodyShape, obj.CreateBodyKey);
119
+ const response = await this.MakeHTTPRequest(auth, url, obj.CreateMethod, headers, body);
120
+ if (response.Status >= 200 && response.Status < 300) {
121
+ const externalID = this.ExtractIDFromResponse(response, obj.CreateIDLocation);
122
+ return this.BuildCreatedResult(externalID, response.Status, ctx.ObjectName);
123
+ }
124
+ return {
125
+ Success: false,
126
+ StatusCode: response.Status,
127
+ ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on create`,
128
+ };
129
+ }
130
+ /** Generic update: reads UpdateAPIPath/Method/BodyShape/BodyKey/IDLocation from the IO row. */
131
+ async UpdateRecord(ctx) {
132
+ const ci = ctx.CompanyIntegration;
133
+ const contextUser = ctx.ContextUser;
134
+ const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
135
+ if (!obj.UpdateAPIPath || !obj.UpdateMethod) {
136
+ throw new Error(`UpdateRecord not supported for "${ctx.ObjectName}": ` +
137
+ `UpdateAPIPath / UpdateMethod not configured on IntegrationObject.`);
138
+ }
139
+ const auth = await this.Authenticate(ci, contextUser);
140
+ const baseURL = this.GetBaseURL(ci, auth);
141
+ const headers = this.BuildHeaders(auth);
142
+ const url = this.BuildFullURL(baseURL, this.SubstituteIDInPath(obj.UpdateAPIPath, ctx.ExternalID, obj.UpdateIDLocation));
143
+ const body = this.BuildOperationBody(ctx.Attributes, obj.UpdateBodyShape, obj.UpdateBodyKey);
144
+ const response = await this.MakeHTTPRequest(auth, url, obj.UpdateMethod, headers, body);
145
+ if (response.Status >= 200 && response.Status < 300) {
146
+ return { Success: true, StatusCode: response.Status, ExternalID: ctx.ExternalID };
147
+ }
148
+ return {
149
+ Success: false,
150
+ StatusCode: response.Status,
151
+ ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on update`,
152
+ };
153
+ }
154
+ /** Generic delete: reads DeleteAPIPath/DeleteMethod/DeleteIDLocation from the IO row. */
155
+ async DeleteRecord(ctx) {
156
+ const ci = ctx.CompanyIntegration;
157
+ const contextUser = ctx.ContextUser;
158
+ const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
159
+ if (!obj.DeleteAPIPath || !obj.DeleteMethod) {
160
+ throw new Error(`DeleteRecord not supported for "${ctx.ObjectName}": ` +
161
+ `DeleteAPIPath / DeleteMethod not configured on IntegrationObject.`);
162
+ }
163
+ const auth = await this.Authenticate(ci, contextUser);
164
+ const baseURL = this.GetBaseURL(ci, auth);
165
+ const headers = this.BuildHeaders(auth);
166
+ const url = this.BuildFullURL(baseURL, this.SubstituteIDInPath(obj.DeleteAPIPath, ctx.ExternalID, obj.DeleteIDLocation));
167
+ const response = await this.MakeHTTPRequest(auth, url, obj.DeleteMethod, headers);
168
+ if (response.Status >= 200 && response.Status < 300) {
169
+ return { Success: true, StatusCode: response.Status, ExternalID: ctx.ExternalID };
170
+ }
171
+ return {
172
+ Success: false,
173
+ StatusCode: response.Status,
174
+ ErrorMessage: this.ExtractErrorMessage(response) ?? `HTTP ${response.Status} on delete`,
175
+ };
176
+ }
177
+ /** Generic get-one: hits APIPath/{ID} via GET. Override if API uses non-standard get shape. */
178
+ async GetRecord(ctx) {
179
+ const ci = ctx.CompanyIntegration;
180
+ const contextUser = ctx.ContextUser;
181
+ const obj = this.GetCachedObject(ci.IntegrationID, ctx.ObjectName);
182
+ const fields = this.GetCachedFields(obj.ID);
183
+ const auth = await this.Authenticate(ci, contextUser);
184
+ const baseURL = this.GetBaseURL(ci, auth);
185
+ const headers = this.BuildHeaders(auth);
186
+ // Reuse UpdateAPIPath when present (typically same as get-one path); fall back to APIPath + /{id}
187
+ const getPath = obj.UpdateAPIPath
188
+ ? this.SubstituteIDInPath(obj.UpdateAPIPath, ctx.ExternalID, obj.UpdateIDLocation)
189
+ : `${obj.APIPath.replace(/\/+$/, '')}/${encodeURIComponent(ctx.ExternalID)}`;
190
+ const url = this.BuildFullURL(baseURL, getPath);
191
+ const response = await this.MakeHTTPRequest(auth, url, 'GET', headers);
192
+ if (response.Status === 404)
193
+ return null;
194
+ if (response.Status < 200 || response.Status >= 300) {
195
+ throw new Error(`GetRecord failed for "${ctx.ObjectName}" id "${ctx.ExternalID}": HTTP ${response.Status}`);
196
+ }
197
+ const records = this.NormalizeResponse(response.Body, obj.ResponseDataKey);
198
+ if (records.length === 0)
199
+ return null;
200
+ const transformed = this.TransformRecord(records[0], obj, fields);
201
+ return this.ToExternalRecord(transformed, ctx.ObjectName, this.FindPrimaryKeyFieldNames(fields));
202
+ }
203
+ // ── CRUD helpers ─────────────────────────────────────────────────
204
+ /**
205
+ * Build the operation request body per BodyShape:
206
+ * - 'flat' → body = attributes verbatim
207
+ * - 'wrapped' → body = { [BodyKey]: attributes }
208
+ * - 'literal' → connector should have overridden the operation; fall back to flat as safety net
209
+ * - null → default to flat (most common shape)
210
+ */
211
+ BuildOperationBody(attributes, bodyShape, bodyKey) {
212
+ if (bodyShape === 'wrapped' && bodyKey) {
213
+ return { [bodyKey]: attributes };
214
+ }
215
+ return attributes;
216
+ }
217
+ /**
218
+ * Substitute the ExternalID into a URL path template at runtime. Path templates
219
+ * may use {ID}, {id}, or {ExternalID} as the placeholder; for symmetry with
220
+ * FetchChanges template-var handling, any unsubstituted {var} in the template
221
+ * is left in place (caller's responsibility to ensure consistency).
222
+ *
223
+ * For IDLocation='body' or 'header' the ID is not substituted into the path
224
+ * (caller must handle separately); we just return the raw path.
225
+ */
226
+ SubstituteIDInPath(path, externalID, idLocation) {
227
+ if (idLocation && idLocation !== 'path')
228
+ return path;
229
+ const encoded = encodeURIComponent(externalID);
230
+ return path
231
+ .replace(/\{ID\}/g, encoded)
232
+ .replace(/\{id\}/g, encoded)
233
+ .replace(/\{ExternalID\}/g, encoded);
234
+ }
235
+ /** Best-effort error message extraction from a vendor response. Override for vendor-specific shapes. */
236
+ ExtractErrorMessage(response) {
237
+ if (!response.Body || typeof response.Body !== 'object')
238
+ return undefined;
239
+ const b = response.Body;
240
+ if (typeof b.message === 'string')
241
+ return b.message;
242
+ if (typeof b.error === 'string')
243
+ return b.error;
244
+ if (b.errors && Array.isArray(b.errors) && b.errors.length > 0) {
245
+ return JSON.stringify(b.errors);
246
+ }
247
+ return undefined;
248
+ }
249
+ /** Extract the new record's external ID from a create response per IDLocation. */
250
+ ExtractIDFromResponse(response, idLocation) {
251
+ // Default: parse from response body — most APIs return the new object with its ID at root
252
+ if (!idLocation || idLocation === 'body') {
253
+ if (response.Body && typeof response.Body === 'object') {
254
+ const b = response.Body;
255
+ // Try common ID field names; concrete connectors can override for vendor-specific shapes
256
+ for (const k of ['id', 'ID', 'Id', 'externalID', 'ExternalID']) {
257
+ if (typeof b[k] === 'string' || typeof b[k] === 'number')
258
+ return String(b[k]);
259
+ }
260
+ }
261
+ return undefined;
262
+ }
263
+ if (idLocation === 'header') {
264
+ // Location header is the most common; concrete connectors override for non-standard headers
265
+ const loc = response.Headers?.['location'] ?? response.Headers?.['Location'];
266
+ if (typeof loc === 'string') {
267
+ const m = loc.match(/[/=]([^/?&#]+)$/);
268
+ return m ? m[1] : loc;
269
+ }
270
+ return undefined;
271
+ }
272
+ return undefined;
273
+ }
73
274
  // ── Flat fetch (no template variables) ───────────────────────────
74
275
  /**
75
276
  * Fetches records from a flat endpoint (no template variable substitution).
@@ -79,7 +280,7 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
79
280
  const result = await this.FetchWithPagination(auth, fullPath, obj, ctx);
80
281
  const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
81
282
  return {
82
- Records: result.Records.map(r => this.ToExternalRecord(r, ctx.ObjectName, pkFieldNames)),
283
+ Records: result.Records.map(r => this.ToExternalRecord(this.TransformRecord(r, obj, fields), ctx.ObjectName, pkFieldNames)),
83
284
  HasMore: result.HasMore,
84
285
  NextPage: result.NextPage,
85
286
  NextOffset: result.NextOffset,
@@ -88,91 +289,129 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
88
289
  }
89
290
  // ── Per-parent fetch (template variables) ────────────────────────
90
291
  /**
91
- * Fetches records from a template-variable endpoint by iterating over parent records.
92
- * Identifies the parent object from FK field metadata, loads parent IDs from the
93
- * local database, then fetches child records per parent.
292
+ * Fetches records from a template-variable endpoint, generalized to MULTI-LEVEL
293
+ * (nested / chained) paths such as `/orgs/{OrgID}/depts/{DeptID}/employees`.
294
+ *
295
+ * Each `{var}` is resolved to a parent IntegrationObject; the engine then walks the
296
+ * FK dependency graph in path order (outermost first), loading each level's parent
297
+ * IDs — filtered by the OUTER parent via FK when one links them (true nested
298
+ * semantics, avoids a cartesian 404 storm), or unfiltered when the vars are
299
+ * independent — substituting them into the path until it is flat, then fetching.
300
+ * This is the connector-side realization of the topological traversal the engine
301
+ * already uses for sync ORDER. A single-var path behaves exactly as before.
94
302
  */
95
303
  async FetchWithTemplateVars(auth, baseURL, obj, fields, templateVars, ctx) {
96
- const parentInfo = this.ResolveParentInfo(fields, templateVars, ctx.CompanyIntegration.IntegrationID);
97
- if (!parentInfo) {
98
- console.warn(`[BaseRESTIntegrationConnector] Skipping "${obj.Name}": template variables ` +
99
- `[${templateVars.join(', ')}] could not be resolved to a parent object.`);
100
- return { Records: [], HasMore: false };
304
+ const resolutions = [];
305
+ const seenParents = new Set();
306
+ for (const tVar of templateVars) {
307
+ const info = this.ResolveParentForVar(fields, tVar, ctx.CompanyIntegration.IntegrationID);
308
+ if (!info) {
309
+ console.warn(`[BaseRESTIntegrationConnector] Skipping "${obj.Name}": template variable ` +
310
+ `{${tVar}} could not be resolved to a parent object.`);
311
+ return { Records: [], HasMore: false };
312
+ }
313
+ // Cycle guard: a parent chain that revisits an object is a metadata error —
314
+ // name the offending edge instead of looping forever.
315
+ if (seenParents.has(info.parentObjectID)) {
316
+ console.warn(`[BaseRESTIntegrationConnector] Skipping "${obj.Name}": template-var dependency ` +
317
+ `cycle at {${tVar}} → a parent object already present in the chain.`);
318
+ return { Records: [], HasMore: false };
319
+ }
320
+ seenParents.add(info.parentObjectID);
321
+ resolutions.push(info);
101
322
  }
102
- const parentIDs = await this.LoadParentIDs(parentInfo.parentObjectID, ctx.ContextUser);
103
323
  const pkFieldNames = this.FindPrimaryKeyFieldNames(fields);
104
- const allRecords = [];
105
- for (const parentID of parentIDs) {
106
- const resolvedPath = this.SubstituteTemplateVars(obj.APIPath, parentInfo.templateVar, parentID);
107
- const fullURL = this.BuildFullURL(baseURL, resolvedPath);
324
+ const out = [];
325
+ await this.DescendTemplateVars(auth, baseURL, obj, fields, resolutions, 0, obj.APIPath, {}, [], ctx, pkFieldNames, out);
326
+ return { Records: out, HasMore: false };
327
+ }
328
+ /**
329
+ * Recursive descent over the ordered template-var resolutions, one layer per level.
330
+ *
331
+ * Each layer's records are constrained to the valid SUBSET of the combinations of
332
+ * ALL prior layers: this level's parent is filtered by an FK to EVERY prior-layer
333
+ * parent it links to (AND-combined). A prior layer this parent has no FK to leaves
334
+ * that axis unconstrained (cartesian). So `outerStack` carries every prior layer's
335
+ * (objectID, idValue) — not just the immediate parent — which is what makes a
336
+ * layer-2 endpoint depending on both layer-0 and layer-1 prune correctly. At the leaf
337
+ * (all vars substituted) it fetches with pagination and tags each record with the
338
+ * resolved parent FK values.
339
+ */
340
+ async DescendTemplateVars(auth, baseURL, obj, fields, resolutions, level, path, fkTags, outerStack, ctx, pkFieldNames, out) {
341
+ if (level >= resolutions.length) {
342
+ const fullURL = this.BuildFullURL(baseURL, path);
108
343
  const result = await this.FetchWithPagination(auth, fullURL, obj, ctx);
109
- const tagged = result.Records.map(r => {
110
- r[parentInfo.fkFieldName] = parentID;
111
- return this.ToExternalRecord(r, ctx.ObjectName, pkFieldNames);
112
- });
113
- allRecords.push(...tagged);
344
+ for (const r of result.Records) {
345
+ for (const [k, v] of Object.entries(fkTags))
346
+ r[k] = v;
347
+ const transformed = this.TransformRecord(r, obj, fields);
348
+ out.push(this.ToExternalRecord(transformed, ctx.ObjectName, pkFieldNames));
349
+ }
350
+ return;
351
+ }
352
+ const res = resolutions[level];
353
+ // Prune to the valid subset: one AND-filter per prior layer this parent has an FK to.
354
+ const filters = [];
355
+ for (const prior of outerStack) {
356
+ const fkCol = this.FindFKColumnToParent(res.parentObjectID, prior.objectID);
357
+ if (fkCol)
358
+ filters.push({ column: fkCol, value: prior.idValue });
359
+ }
360
+ const parentIDs = await this.LoadParentIDs(res.parentObjectID, ctx.ContextUser, filters);
361
+ for (const parentID of parentIDs) {
362
+ const nextPath = this.SubstituteTemplateVars(path, res.templateVar, parentID);
363
+ const nextTags = { ...fkTags, [res.fkFieldName]: parentID };
364
+ await this.DescendTemplateVars(auth, baseURL, obj, fields, resolutions, level + 1, nextPath, nextTags, [...outerStack, { objectID: res.parentObjectID, idValue: parentID }], ctx, pkFieldNames, out);
114
365
  }
115
- return { Records: allRecords, HasMore: false };
116
366
  }
117
367
  /**
118
- * Resolves which template variable maps to which FK field + parent object.
368
+ * Resolves a SINGLE template variable to its parent object + FK field.
119
369
  *
120
- * Resolution strategy (in order):
121
- * 1. Explicit: FK field with RelatedIntegrationObjectID that matches a template var name
122
- * 2. PK fallback: finds a sibling integration object whose primary key field name
123
- * matches the template var, allowing resolution without explicit FK metadata
370
+ * Strategy (in order):
371
+ * 1. Explicit: an FK field (RelatedIntegrationObjectID) whose name matches the var.
372
+ * 2. PK fallback: a sibling integration object whose primary-key field name matches
373
+ * the var (e.g. {ProfileID} → the Members object whose PK field is "ProfileID"),
374
+ * allowing resolution without explicit FK metadata.
124
375
  *
125
- * Returns null if no match is found by either strategy.
376
+ * Returns null when neither strategy matches.
126
377
  */
127
- ResolveParentInfo(fields, templateVars, integrationID) {
128
- // Strategy 1: Explicit FK field with RelatedIntegrationObjectID
378
+ ResolveParentForVar(fields, templateVar, integrationID) {
379
+ const tVarLower = templateVar.toLowerCase();
380
+ // Strategy 1: explicit FK field whose name matches this var.
129
381
  for (const field of fields) {
130
382
  if (!field.RelatedIntegrationObjectID)
131
383
  continue;
132
- for (const tVar of templateVars) {
133
- if (field.Name.toLowerCase().includes(tVar.toLowerCase())) {
134
- return {
135
- templateVar: tVar,
136
- fkFieldName: field.Name,
137
- parentObjectID: field.RelatedIntegrationObjectID,
138
- };
139
- }
384
+ if (field.Name.toLowerCase().includes(tVarLower)) {
385
+ return { templateVar, fkFieldName: field.Name, parentObjectID: field.RelatedIntegrationObjectID };
140
386
  }
141
387
  }
142
- // Strategy 2: Match template var against PK fields of sibling objects
143
- return this.ResolveParentByPKMatch(templateVars, integrationID);
144
- }
145
- /**
146
- * Fallback resolution: finds a sibling integration object whose primary key
147
- * field name matches one of the template variables (case-insensitive).
148
- * E.g., {ProfileID} matches Members object which has PK field "ProfileID".
149
- */
150
- ResolveParentByPKMatch(templateVars, integrationID) {
388
+ // Strategy 2: sibling object whose PK field name equals this var.
151
389
  const siblingObjects = IntegrationEngineBase.Instance.GetActiveIntegrationObjects(integrationID);
152
- for (const tVar of templateVars) {
153
- const tVarLower = tVar.toLowerCase();
154
- for (const sibling of siblingObjects) {
155
- const siblingFields = IntegrationEngineBase.Instance.GetIntegrationObjectFields(sibling.ID);
156
- const pkField = siblingFields.find(f => f.IsPrimaryKey);
157
- if (!pkField)
158
- continue;
159
- if (pkField.Name.toLowerCase() === tVarLower) {
160
- return {
161
- templateVar: tVar,
162
- fkFieldName: tVar, // Use the template var name as the FK field name
163
- parentObjectID: sibling.ID,
164
- };
165
- }
390
+ for (const sibling of siblingObjects) {
391
+ const siblingFields = IntegrationEngineBase.Instance.GetIntegrationObjectFields(sibling.ID);
392
+ const pkField = siblingFields.find(f => f.IsPrimaryKey);
393
+ if (pkField && pkField.Name.toLowerCase() === tVarLower) {
394
+ return { templateVar, fkFieldName: templateVar, parentObjectID: sibling.ID };
166
395
  }
167
396
  }
168
397
  return null;
169
398
  }
399
+ /**
400
+ * Finds the FK column on `innerObjectID` that points at `outerObjectID` — used to
401
+ * filter a child level by its parent in a nested path. Returns null when no FK links
402
+ * them, in which case that level loads unfiltered (independent vars / cartesian).
403
+ */
404
+ FindFKColumnToParent(innerObjectID, outerObjectID) {
405
+ const innerFields = IntegrationEngineBase.Instance.GetIntegrationObjectFields(innerObjectID);
406
+ const fk = innerFields.find(f => f.RelatedIntegrationObjectID && UUIDsEqual(f.RelatedIntegrationObjectID, outerObjectID));
407
+ return fk ? fk.Name : null;
408
+ }
170
409
  /**
171
410
  * Loads parent record IDs from the local MJ database.
172
411
  * Uses IntegrationEngineBase cache for object/field metadata lookups,
173
412
  * then queries the MJ entity via RunView for actual synced record IDs.
174
413
  */
175
- async LoadParentIDs(parentObjectID, contextUser) {
414
+ async LoadParentIDs(parentObjectID, contextUser, filters) {
176
415
  // Use engine cache for metadata lookups
177
416
  const parentObj = IntegrationEngineBase.Instance.GetIntegrationObjectByID(parentObjectID);
178
417
  if (!parentObj) {
@@ -194,9 +433,15 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
194
433
  return [];
195
434
  }
196
435
  const entityName = entityMapResult.Results[0].Entity;
436
+ // Constrain to the rows satisfying every prior-layer FK (AND). Bare identifiers →
437
+ // the PG provider auto-quotes them; values are single-quote-escaped.
438
+ const extraFilter = filters && filters.length > 0
439
+ ? filters.map(f => `${f.column}='${String(f.value).replace(/'/g, "''")}'`).join(' AND ')
440
+ : undefined;
197
441
  const idResult = await rv.RunView({
198
442
  EntityName: entityName,
199
443
  Fields: [pkFieldName],
444
+ ExtraFilter: extraFilter,
200
445
  ResultType: 'simple',
201
446
  }, contextUser);
202
447
  if (!idResult.Success)
@@ -412,11 +657,16 @@ export class BaseRESTIntegrationConnector extends BaseIntegrationConnector {
412
657
  * For composite primary keys, joins all PK values with '|' to form a unique ExternalID.
413
658
  */
414
659
  ToExternalRecord(raw, objectType, pkFieldNames) {
415
- const externalID = pkFieldNames
416
- .map(name => raw[name] != null ? String(raw[name]) : '')
417
- .join('|');
660
+ // §4 synthetic-PK fallback: only treat the PK as usable when EVERY component is present
661
+ // (a composite key with a missing part — e.g. "abc|" — is not a stable identity). When any
662
+ // part is missing, fall back to a deterministic content-derived identity (identity hash) so
663
+ // PK-less / partial-key tables are still syncable + dedupable. Stable while content is unchanged.
664
+ const allPkPresent = pkFieldNames.length > 0
665
+ && pkFieldNames.every(name => raw[name] != null && String(raw[name]).length > 0);
666
+ const externalID = pkFieldNames.map(name => String(raw[name] ?? '')).join('|');
667
+ const resolvedID = allPkPresent ? externalID : computeContentHash(raw);
418
668
  return {
419
- ExternalID: externalID,
669
+ ExternalID: resolvedID,
420
670
  ObjectType: objectType,
421
671
  Fields: raw,
422
672
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRESTIntegrationConnector.js","sourceRoot":"","sources":["../src/BaseRESTIntegrationConnector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * "MostRecent" conflict resolution helper.
3
+ *
4
+ * When a field changed on BOTH sides since the last sync (a true bidirectional
5
+ * conflict) and the entity map's ConflictResolution policy is `MostRecent`, the side
6
+ * that was modified more recently wins. This compares the MJ row's last-update time
7
+ * against the external record's modified time at RECORD granularity (most sources
8
+ * don't expose per-field timestamps), and returns null when either timestamp is
9
+ * missing/unparseable so the caller can fall back to DestWins — a conflict is never
10
+ * silently dropped on missing data.
11
+ *
12
+ * Pure + dependency-free so it is cheaply unit-testable; the engine wires it to
13
+ * `__mj_UpdatedAt` (MJ side) and `ExternalRecord.ModifiedAt` (external side).
14
+ */
15
+ export type RecencyWinner = 'mj' | 'external';
16
+ /** Parses a Date / epoch-number / ISO-string into epoch ms; null if not a usable timestamp. */
17
+ export declare function parseTimestamp(v: unknown): number | null;
18
+ /**
19
+ * Returns which side wins under MostRecent, or null when the comparison can't be made.
20
+ * Ties go to 'mj' (DestWins-style tiebreak) — the local edit is assumed authoritative
21
+ * when both stamps are equal.
22
+ */
23
+ export declare function mostRecentWinner(mjUpdatedAt: unknown, externalModifiedAt: unknown): RecencyWinner | null;
24
+ //# sourceMappingURL=ConflictRecency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConflictRecency.d.ts","sourceRoot":"","sources":["../src/ConflictRecency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,UAAU,CAAC;AAE9C,+FAA+F;AAC/F,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAKxG"}
@@ -0,0 +1,25 @@
1
+ /** Parses a Date / epoch-number / ISO-string into epoch ms; null if not a usable timestamp. */
2
+ export function parseTimestamp(v) {
3
+ if (v instanceof Date)
4
+ return Number.isNaN(v.getTime()) ? null : v.getTime();
5
+ if (typeof v === 'number')
6
+ return Number.isFinite(v) ? v : null;
7
+ if (typeof v === 'string' && v.length > 0) {
8
+ const t = Date.parse(v);
9
+ return Number.isNaN(t) ? null : t;
10
+ }
11
+ return null;
12
+ }
13
+ /**
14
+ * Returns which side wins under MostRecent, or null when the comparison can't be made.
15
+ * Ties go to 'mj' (DestWins-style tiebreak) — the local edit is assumed authoritative
16
+ * when both stamps are equal.
17
+ */
18
+ export function mostRecentWinner(mjUpdatedAt, externalModifiedAt) {
19
+ const mjTs = parseTimestamp(mjUpdatedAt);
20
+ const extTs = parseTimestamp(externalModifiedAt);
21
+ if (mjTs == null || extTs == null)
22
+ return null;
23
+ return mjTs >= extTs ? 'mj' : 'external';
24
+ }
25
+ //# sourceMappingURL=ConflictRecency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConflictRecency.js","sourceRoot":"","sources":["../src/ConflictRecency.ts"],"names":[],"mappings":"AAgBA,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAAC,CAAU;IACrC,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC7E,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAoB,EAAE,kBAA2B;IAC9E,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACjD,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7C,CAAC"}