@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
@@ -14,7 +14,37 @@
14
14
  */
15
15
  import { Metadata, RunView } from '@memberjunction/core';
16
16
  import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
17
+ import { EnrichSchemaConstraints } from './EnrichSchemaConstraints.js';
17
18
  import { ActionMetadataGenerator } from './ActionMetadataGenerator.js';
19
+ /**
20
+ * Pure-function overlay rule for a single boolean attribute.
21
+ *
22
+ * The rule that the rest of the codebase must obey when merging a Declared
23
+ * (curated/static-catalog) row with a Discovered (live-from-connector) value:
24
+ *
25
+ * - If `discovered` is `undefined`, the source has **no opinion** —
26
+ * the Declared value sticks. Winner = 'Declared'. Never overwrite.
27
+ * - If `discovered` is defined and equal to `declared`, nothing changes.
28
+ * Winner = 'Declared'.
29
+ * - If `discovered` is defined and DIFFERENT, the Discovered value wins
30
+ * (it reflects the live system's current truth, e.g. a column flipped
31
+ * from nullable to non-nullable). Winner = 'Discovered'.
32
+ *
33
+ * The bug this exists to prevent: pre-Phase-0 v5.39.x the overlay treated
34
+ * `undefined` as if the source had said `false`, silently wiping declared
35
+ * PK flags across every IO the moment live discovery ran on connectors
36
+ * (HubSpot, Salesforce) whose property-list APIs don't return an
37
+ * `IsPrimaryKey` field at all. See `IntegrationSchemaSync.test.ts`.
38
+ */
39
+ export function decideBooleanOverlay(declared, discovered) {
40
+ if (discovered === undefined) {
41
+ return { value: declared, winner: 'Declared' };
42
+ }
43
+ if (declared === discovered) {
44
+ return { value: declared, winner: 'Declared' };
45
+ }
46
+ return { value: discovered, winner: 'Discovered' };
47
+ }
18
48
  /**
19
49
  * Maps generic source types (from connectors) to MJ EntityField-compatible type strings.
20
50
  */
@@ -58,47 +88,181 @@ export class IntegrationSchemaSync {
58
88
  const { IntegrationID, SourceSchema, ContextUser } = opts;
59
89
  const md = opts.Provider ?? Metadata.Provider;
60
90
  const engine = IntegrationEngineBase.Instance;
61
- const result = { ObjectsCreated: 0, ObjectsUpdated: 0, FieldsCreated: 0, FieldsUpdated: 0 };
91
+ const useBatch = opts.UseTransactionGroup ?? true;
92
+ const result = {
93
+ ObjectsCreated: 0,
94
+ ObjectsUpdated: 0,
95
+ FieldsCreated: 0,
96
+ FieldsUpdated: 0,
97
+ ObjectMergeLog: [],
98
+ FieldMergeLog: [],
99
+ };
100
+ // Lightweight constraint discovery: deterministically infer the FKs the source
101
+ // did NOT declare (naming-based, provable-only) so discovered objects gain proper
102
+ // relationships before the Declared/Discovered merge below resolves them. No AI
103
+ // dependency — safe on AI-less BI instances.
104
+ EnrichSchemaConstraints.InferForeignKeys(SourceSchema.Objects);
62
105
  // Load existing objects for this integration from cache
63
106
  const existingObjects = engine.GetIntegrationObjectsByIntegrationID(IntegrationID);
64
- for (const srcObj of SourceSchema.Objects) {
107
+ // Phase 1: upsert objects. Object upserts must complete before field upserts
108
+ // (fields need ObjectID). Within this phase, upserts are independent so we
109
+ // batch-execute via Promise.all (concurrency cap to avoid hammering the DB).
110
+ const objectUpserts = SourceSchema.Objects.map(srcObj => async () => {
65
111
  const objResult = await IntegrationSchemaSync.UpsertObject(md, IntegrationID, srcObj, existingObjects, ContextUser);
66
- result.ObjectsCreated += objResult.Created ? 1 : 0;
67
- result.ObjectsUpdated += objResult.Updated ? 1 : 0;
68
- // Now upsert fields for this object
69
- const objectID = objResult.ObjectID;
70
- if (!objectID)
71
- continue;
72
- const existingFields = engine.GetIntegrationObjectFields(objectID);
73
- for (const srcField of srcObj.Fields) {
74
- const fieldResult = await IntegrationSchemaSync.UpsertField(md, objectID, srcField, existingFields, ContextUser);
75
- result.FieldsCreated += fieldResult.Created ? 1 : 0;
76
- result.FieldsUpdated += fieldResult.Updated ? 1 : 0;
112
+ return { srcObj, ...objResult };
113
+ });
114
+ const objectResults = useBatch
115
+ ? await IntegrationSchemaSync.batchExec(objectUpserts, 8)
116
+ : await IntegrationSchemaSync.serialExec(objectUpserts);
117
+ for (const r of objectResults) {
118
+ result.ObjectsCreated += r.Created ? 1 : 0;
119
+ result.ObjectsUpdated += r.Updated ? 1 : 0;
120
+ result.ObjectMergeLog.push({
121
+ ObjectName: r.srcObj.ExternalName,
122
+ EffectiveSource: r.EffectiveSource,
123
+ Created: r.Created,
124
+ Updated: r.Updated,
125
+ });
126
+ }
127
+ // Build sibling name→ID map for FK resolution during field upserts.
128
+ // Combines the freshly-upserted set with whatever was already in the engine
129
+ // cache, so discovered FK targets like "Contacts" resolve to a UUID regardless
130
+ // of whether the target object was just created this run or pre-existed.
131
+ const siblingNameToID = new Map();
132
+ for (const eo of existingObjects) {
133
+ if (eo.ID)
134
+ siblingNameToID.set(eo.Name.toLowerCase(), eo.ID);
135
+ }
136
+ for (const r of objectResults) {
137
+ if (r.ObjectID)
138
+ siblingNameToID.set(r.srcObj.ExternalName.toLowerCase(), r.ObjectID);
139
+ }
140
+ // Phase 2: upsert fields per object. Across objects is parallelizable; within
141
+ // an object the field set is sequential against the cached field list.
142
+ const fieldUpsertJobs = objectResults
143
+ .filter(r => r.ObjectID)
144
+ .map(r => async () => {
145
+ const existingFields = engine.GetIntegrationObjectFields(r.ObjectID);
146
+ const perObjectLogs = [];
147
+ const perObjectStats = { created: 0, updated: 0 };
148
+ for (const srcField of r.srcObj.Fields) {
149
+ const fr = await IntegrationSchemaSync.UpsertField(md, r.ObjectID, srcField, existingFields, ContextUser, siblingNameToID);
150
+ if (fr.Created)
151
+ perObjectStats.created++;
152
+ if (fr.Updated)
153
+ perObjectStats.updated++;
154
+ perObjectLogs.push({
155
+ ObjectName: r.srcObj.ExternalName,
156
+ FieldName: srcField.Name,
157
+ EffectiveSource: fr.EffectiveSource,
158
+ AttributeWinners: fr.AttributeWinners,
159
+ });
77
160
  }
161
+ console.log(JSON.stringify({
162
+ ts: new Date().toISOString(),
163
+ event: 'persist.object.fields-done',
164
+ objectName: r.srcObj.ExternalName,
165
+ integrationObjectID: r.ObjectID,
166
+ fieldsInSource: r.srcObj.Fields.length,
167
+ fieldsCreated: perObjectStats.created,
168
+ fieldsUpdated: perObjectStats.updated,
169
+ fieldsUnchanged: r.srcObj.Fields.length - perObjectStats.created - perObjectStats.updated,
170
+ }));
171
+ return { stats: perObjectStats, logs: perObjectLogs };
172
+ });
173
+ const fieldResults = useBatch
174
+ ? await IntegrationSchemaSync.batchExec(fieldUpsertJobs, 8)
175
+ : await IntegrationSchemaSync.serialExec(fieldUpsertJobs);
176
+ for (const fr of fieldResults) {
177
+ result.FieldsCreated += fr.stats.created;
178
+ result.FieldsUpdated += fr.stats.updated;
179
+ result.FieldMergeLog.push(...fr.logs);
78
180
  }
79
181
  console.log(`[IntegrationSchemaSync] Persisted schema for ${IntegrationID}: ${result.ObjectsCreated} objects created, ${result.ObjectsUpdated} updated, ${result.FieldsCreated} fields created, ${result.FieldsUpdated} updated`);
80
182
  return result;
81
183
  }
184
+ /**
185
+ * Batch executor with bounded concurrency. Independent async jobs run in parallel
186
+ * up to `concurrency`; failures within a job propagate as-is. This is the lightest-
187
+ * weight batching primitive we can rely on without depending on a TransactionGroup
188
+ * abstraction that doesn't exist in MJCore. Order-of-completion irrelevant for
189
+ * upserts; order-of-emission preserved in the returned array.
190
+ */
191
+ static async batchExec(jobs, concurrency) {
192
+ const results = new Array(jobs.length);
193
+ let next = 0;
194
+ const workers = Array.from({ length: Math.min(concurrency, jobs.length) }, async () => {
195
+ while (true) {
196
+ const i = next++;
197
+ if (i >= jobs.length)
198
+ return;
199
+ results[i] = await jobs[i]();
200
+ }
201
+ });
202
+ await Promise.all(workers);
203
+ return results;
204
+ }
205
+ /** Serial executor — slower, used for diagnostic runs where per-record errors matter. */
206
+ static async serialExec(jobs) {
207
+ const out = [];
208
+ for (const j of jobs)
209
+ out.push(await j());
210
+ return out;
211
+ }
82
212
  // ── Object upsert ────────────────────────────────────────────────
83
213
  static async UpsertObject(md, integrationID, srcObj, existingObjects, contextUser) {
84
214
  const existing = existingObjects.find(o => o.Name.toLowerCase() === srcObj.ExternalName.toLowerCase());
85
215
  if (existing) {
86
- // Static object exists — don't overwrite, but update type/capability fields if empty
216
+ // Declared row exists. Discovery may enrich (e.g. Description if empty,
217
+ // IncrementalWatermarkField if newly observed). Curated values win for
218
+ // everything human-authored; describe wins only for technical/empty slots.
87
219
  let dirty = false;
220
+ const changes = [];
88
221
  if (!existing.Description && srcObj.Description) {
89
222
  existing.Description = srcObj.Description;
90
223
  dirty = true;
224
+ changes.push('Description');
225
+ }
226
+ // §3 metadata refresh: capture the source's watermark field when the stored row has none.
227
+ // We deliberately do NOT overwrite an already-set value on a later refresh — a watermark
228
+ // field may have been deliberately chosen/curated, and the "curated values win" invariant
229
+ // (above) applies. A genuine source-side rename is rare and handled by re-curation, not by
230
+ // silently clobbering the stored cursor field on every refresh.
231
+ if (srcObj.IncrementalWatermarkField && !existing.IncrementalWatermarkField) {
232
+ existing.IncrementalWatermarkField = srcObj.IncrementalWatermarkField;
233
+ dirty = true;
234
+ changes.push('IncrementalWatermarkField');
91
235
  }
92
236
  if (dirty) {
93
237
  try {
94
238
  await existing.Save();
95
239
  }
96
- catch { /* ignore save failures on static records */ }
97
- return { ObjectID: existing.ID, Created: false, Updated: true };
240
+ catch { /* ignore save failures on declared records */ }
241
+ console.log(JSON.stringify({
242
+ ts: new Date().toISOString(),
243
+ event: 'persist.object.updated',
244
+ objectName: srcObj.ExternalName,
245
+ integrationObjectID: existing.ID,
246
+ effectiveSource: 'Declared',
247
+ fieldsTouched: changes,
248
+ }));
249
+ return { ObjectID: existing.ID, Created: false, Updated: true, EffectiveSource: 'Declared' };
98
250
  }
99
- return { ObjectID: existing.ID, Created: false, Updated: false };
251
+ console.log(JSON.stringify({
252
+ ts: new Date().toISOString(),
253
+ event: 'persist.object.unchanged',
254
+ objectName: srcObj.ExternalName,
255
+ integrationObjectID: existing.ID,
256
+ effectiveSource: 'Declared',
257
+ reason: 'no-overlay-deltas',
258
+ }));
259
+ return { ObjectID: existing.ID, Created: false, Updated: false, EffectiveSource: 'Declared' };
100
260
  }
101
- // New custom object — create it
261
+ // New row — mark as 'Discovered' by default. Vendor-signaled custom objects
262
+ // (e.g. HubSpot namespace, Salesforce __c suffix) should be promoted to
263
+ // 'Custom' by the concrete connector's DiscoverObjects override before
264
+ // PersistDiscoveredSchema is called; absent a signal, 'Discovered' is the
265
+ // safer label.
102
266
  try {
103
267
  const obj = await md.GetEntityObject('MJ: Integration Objects', contextUser);
104
268
  obj.NewRecord();
@@ -107,62 +271,134 @@ export class IntegrationSchemaSync {
107
271
  obj.DisplayName = srcObj.ExternalLabel || srcObj.ExternalName;
108
272
  if (srcObj.Description)
109
273
  obj.Description = srcObj.Description;
274
+ if (srcObj.IncrementalWatermarkField)
275
+ obj.IncrementalWatermarkField = srcObj.IncrementalWatermarkField;
110
276
  obj.Status = 'Active';
111
- obj.Set('IsCustom', true);
112
- obj.Sequence = 999; // custom objects at the end
277
+ obj.IsCustom = true;
278
+ obj.MetadataSource = 'Discovered';
279
+ obj.Sequence = 999;
113
280
  const saved = await obj.Save();
114
281
  if (saved) {
115
- return { ObjectID: obj.ID, Created: true, Updated: false };
282
+ console.log(JSON.stringify({
283
+ ts: new Date().toISOString(),
284
+ event: 'persist.object.created',
285
+ objectName: srcObj.ExternalName,
286
+ integrationObjectID: obj.ID,
287
+ effectiveSource: 'Discovered',
288
+ metadataSource: 'Discovered',
289
+ }));
290
+ return { ObjectID: obj.ID, Created: true, Updated: false, EffectiveSource: 'Discovered' };
116
291
  }
117
292
  }
118
293
  catch (err) {
119
294
  console.warn(`[IntegrationSchemaSync] Failed to create IntegrationObject '${srcObj.ExternalName}': ${err instanceof Error ? err.message : err}`);
120
295
  }
121
- return { ObjectID: null, Created: false, Updated: false };
296
+ return { ObjectID: null, Created: false, Updated: false, EffectiveSource: 'Discovered' };
122
297
  }
123
298
  // ── Field upsert ─────────────────────────────────────────────────
124
- static async UpsertField(md, objectID, srcField, existingFields, contextUser) {
299
+ static async UpsertField(md, objectID, srcField, existingFields, contextUser, siblingNameToID) {
300
+ const resolveFK = (target) => {
301
+ if (!target || !siblingNameToID)
302
+ return undefined;
303
+ return siblingNameToID.get(target.toLowerCase());
304
+ };
125
305
  const existing = existingFields.find(f => f.Name.toLowerCase() === srcField.Name.toLowerCase());
306
+ const winners = {};
126
307
  if (existing) {
127
- // Refresh technical attributes from describe — the live source is
128
- // the truth here. Curated DisplayName, Sequence, Category, etc. are
129
- // left alone; only fields that affect DDL and sync coercion get
130
- // rewritten from the describe payload.
308
+ // Declared row exists. Overlay rule:
309
+ // - Describe wins for DDL-affecting attributes (Type, AllowsNull, IsRequired, IsPrimaryKey, IsUniqueKey, IsReadOnly).
310
+ // Curated values for these can drift from what the live system enforces and cause sync errors.
311
+ // - Curated wins for semantic attributes (Description if non-empty, DisplayName, Sequence, Category).
312
+ //
313
+ // Returned attribute winners surface EXACTLY which source decided each
314
+ // attribute so the caller (progress emitter, UI) can show structural
315
+ // transparency on the merge.
131
316
  let dirty = false;
132
317
  const mappedType = MapSourceType(srcField.SourceType);
133
- const describedAllowsNull = !srcField.IsRequired;
318
+ const describedAllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
134
319
  if (existing.Type !== mappedType) {
135
320
  existing.Type = mappedType;
136
321
  dirty = true;
322
+ winners.Type = 'Discovered';
323
+ }
324
+ else {
325
+ winners.Type = 'Declared';
137
326
  }
138
327
  if (existing.AllowsNull !== describedAllowsNull) {
139
328
  existing.AllowsNull = describedAllowsNull;
140
329
  dirty = true;
330
+ winners.AllowsNull = 'Discovered';
331
+ }
332
+ else {
333
+ winners.AllowsNull = 'Declared';
334
+ }
335
+ // No-fabrication overlay rule for boolean attributes — see
336
+ // `decideBooleanOverlay`. Discovered values only override when
337
+ // the source actually has an opinion (defined boolean). Undefined
338
+ // means "no opinion" — the Declared value sticks. Pre-Phase 0
339
+ // v5.39.x this branch treated undefined as `false` and silently
340
+ // wiped every declared PK on HubSpot/SF the moment live discovery
341
+ // ran. See IntegrationSchemaSync.test.ts for the regression pin.
342
+ const reqOverlay = decideBooleanOverlay(existing.IsRequired, srcField.IsRequired);
343
+ if (reqOverlay.winner === 'Discovered' && reqOverlay.value !== undefined) {
344
+ existing.IsRequired = reqOverlay.value;
345
+ dirty = true;
346
+ }
347
+ winners.IsRequired = reqOverlay.winner;
348
+ const pkOverlay = decideBooleanOverlay(existing.IsPrimaryKey, srcField.IsPrimaryKey);
349
+ if (pkOverlay.winner === 'Discovered' && pkOverlay.value !== undefined) {
350
+ existing.IsPrimaryKey = pkOverlay.value;
351
+ dirty = true;
141
352
  }
142
- if (existing.IsRequired !== srcField.IsRequired) {
143
- existing.IsRequired = srcField.IsRequired;
353
+ winners.IsPrimaryKey = pkOverlay.winner;
354
+ const uqOverlay = decideBooleanOverlay(existing.IsUniqueKey, srcField.IsUniqueKey);
355
+ if (uqOverlay.winner === 'Discovered' && uqOverlay.value !== undefined) {
356
+ existing.IsUniqueKey = uqOverlay.value;
144
357
  dirty = true;
145
358
  }
146
- if (existing.IsPrimaryKey !== srcField.IsPrimaryKey) {
147
- existing.IsPrimaryKey = srcField.IsPrimaryKey;
359
+ winners.IsUniqueKey = uqOverlay.winner;
360
+ const roOverlay = decideBooleanOverlay(existing.IsReadOnly, srcField.IsReadOnly);
361
+ if (roOverlay.winner === 'Discovered' && roOverlay.value !== undefined) {
362
+ existing.IsReadOnly = roOverlay.value;
148
363
  dirty = true;
149
364
  }
365
+ winners.IsReadOnly = roOverlay.winner;
150
366
  // Description: only fill if missing — curated descriptions outrank
151
- // generic describe output.
367
+ // generic describe output. So 'Declared' wins unless the row had
368
+ // no description at all and discovery has one.
152
369
  if (!existing.Description && srcField.Description) {
153
370
  existing.Description = srcField.Description;
154
371
  dirty = true;
372
+ winners.Description = 'Discovered';
373
+ }
374
+ else if (existing.Description) {
375
+ winners.Description = 'Declared';
376
+ }
377
+ // FK metadata overlay: declared wins if already set. Otherwise resolve the
378
+ // discovered ForeignKeyTarget name against sibling objects in this integration
379
+ // and persist the UUID. Unresolvable targets leave the field FK-less rather than
380
+ // fabricating an ID — explorer agents/users get to set the link later.
381
+ if (srcField.IsForeignKey && srcField.ForeignKeyTarget && !existing.RelatedIntegrationObjectID) {
382
+ const resolvedID = resolveFK(srcField.ForeignKeyTarget);
383
+ if (resolvedID) {
384
+ existing.RelatedIntegrationObjectID = resolvedID;
385
+ dirty = true;
386
+ winners.ForeignKey = 'Discovered';
387
+ }
388
+ }
389
+ else if (existing.RelatedIntegrationObjectID) {
390
+ winners.ForeignKey = 'Declared';
155
391
  }
156
392
  if (dirty) {
157
393
  const saved = await existing.Save();
158
394
  if (!saved) {
159
395
  console.warn(`[IntegrationSchemaSync] UpsertField save failed for '${srcField.Name}': ${existing.LatestResult?.CompleteMessage ?? 'unknown error'}`);
160
396
  }
161
- return { Created: false, Updated: true };
397
+ return { Created: false, Updated: true, EffectiveSource: 'Declared', AttributeWinners: winners };
162
398
  }
163
- return { Created: false, Updated: false };
399
+ return { Created: false, Updated: false, EffectiveSource: 'Declared', AttributeWinners: winners };
164
400
  }
165
- // New custom field — create it
401
+ // New field — discovered for the first time
166
402
  try {
167
403
  const field = await md.GetEntityObject('MJ: Integration Object Fields', contextUser);
168
404
  field.NewRecord();
@@ -172,21 +408,32 @@ export class IntegrationSchemaSync {
172
408
  if (srcField.Description)
173
409
  field.Description = srcField.Description;
174
410
  field.Type = MapSourceType(srcField.SourceType);
175
- field.AllowsNull = !srcField.IsRequired;
411
+ field.AllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
176
412
  field.IsPrimaryKey = srcField.IsPrimaryKey;
177
413
  field.IsRequired = srcField.IsRequired;
178
- field.IsReadOnly = false;
179
- field.IsUniqueKey = false;
414
+ field.IsReadOnly = srcField.IsReadOnly ?? false;
415
+ field.IsUniqueKey = srcField.IsUniqueKey ?? false;
180
416
  field.Status = 'Active';
181
- field.Set('IsCustom', true);
417
+ field.IsCustom = true;
418
+ field.MetadataSource = 'Discovered';
182
419
  field.Sequence = 999;
420
+ if (srcField.IsForeignKey && srcField.ForeignKeyTarget) {
421
+ const resolvedID = resolveFK(srcField.ForeignKeyTarget);
422
+ if (resolvedID)
423
+ field.RelatedIntegrationObjectID = resolvedID;
424
+ }
183
425
  const saved = await field.Save();
184
- return { Created: saved, Updated: false };
426
+ const initialWinners = {
427
+ Type: 'Initial', Length: 'Initial', AllowsNull: 'Initial',
428
+ IsRequired: 'Initial', IsPrimaryKey: 'Initial', IsUniqueKey: 'Initial',
429
+ IsReadOnly: 'Initial', Description: 'Initial', ForeignKey: 'Initial',
430
+ };
431
+ return { Created: saved, Updated: false, EffectiveSource: 'Discovered', AttributeWinners: initialWinners };
185
432
  }
186
433
  catch (err) {
187
434
  console.warn(`[IntegrationSchemaSync] Failed to create IntegrationObjectField '${srcField.Name}': ${err instanceof Error ? err.message : err}`);
188
435
  }
189
- return { Created: false, Updated: false };
436
+ return { Created: false, Updated: false, EffectiveSource: 'Discovered', AttributeWinners: {} };
190
437
  }
191
438
  // ── Action generation for discovered custom objects ──────────────
192
439
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAqB,QAAQ,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAUhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAA8B,MAAM,2BAA2B,CAAC;AAwChG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAChC,QAA6B,EAC7B,UAA+B;IAE/B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC1B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACvD,CAAC;AA4BD;;GAEG;AACH,SAAS,aAAa,CAAC,UAAkB;IACrC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC1E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,CAAC,4CAA4C;IACrH,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC5E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,gBAAgB,CAAC;IACnF,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC/E,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,OAAO,qBAAqB;IAE9B;;;;;;;;;;;;;;;;;;OAkBG;IACI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAA0B;QAClE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC1D,MAAM,EAAE,GAAsB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAClD,MAAM,MAAM,GAAwB;YAChC,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,EAAE;SACpB,CAAC;QAEF,+EAA+E;QAC/E,kFAAkF;QAClF,gFAAgF;QAChF,6CAA6C;QAC7C,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE/D,wDAAwD;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,oCAAoC,CAAC,aAAa,CAAC,CAAC;QAEnF,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YAChE,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,YAAY,CACtD,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAC1D,CAAC;YACF,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,QAAQ;YAC1B,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAE5D,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5B,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;gBACjC,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;aACrB,CAAC,CAAC;QACP,CAAC;QAED,oEAAoE;QACpE,4EAA4E;QAC5E,+EAA+E;QAC/E,yEAAyE;QACzE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,EAAE;gBAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,QAAQ;gBAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzF,CAAC;QAED,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,eAAe,GAAG,aAAa;aAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC;YACtE,MAAM,aAAa,GAAoB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAC9C,EAAE,EAAE,CAAC,CAAC,QAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAC1E,CAAC;gBACF,IAAI,EAAE,CAAC,OAAO;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,EAAE,CAAC,OAAO;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC;oBACf,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;oBACjC,SAAS,EAAE,QAAQ,CAAC,IAAI;oBACxB,eAAe,EAAE,EAAE,CAAC,eAAe;oBACnC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;iBACxC,CAAC,CAAC;YACP,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,4BAA4B;gBACnC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;gBACjC,mBAAmB,EAAE,CAAC,CAAC,QAAQ;gBAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;gBACtC,aAAa,EAAE,cAAc,CAAC,OAAO;gBACrC,aAAa,EAAE,cAAc,CAAC,OAAO;gBACrC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO;aAC5F,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEP,MAAM,YAAY,GAAG,QAAQ;YACzB,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE9D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC5B,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gDAAgD,aAAa,KAAK,MAAM,CAAC,cAAc,qBAAqB,MAAM,CAAC,cAAc,aAAa,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,aAAa,UAAU,CAAC,CAAC;QAClO,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAI,IAA6B,EAAE,WAAmB;QAChF,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YAClF,OAAO,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO;gBAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACjC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,yFAAyF;IACjF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAI,IAA6B;QAC5D,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACf,CAAC;IAED,oEAAoE;IAE5D,MAAM,CAAC,KAAK,CAAC,YAAY,CAC7B,EAAqB,EACrB,aAAqB,EACrB,MAAwB,EACxB,eAA4C,EAC5C,WAAqB;QAErB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAClE,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACX,wEAAwE;YACxE,uEAAuE;YACvE,2EAA2E;YAC3E,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9C,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC1C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;YACD,0FAA0F;YAC1F,yFAAyF;YACzF,0FAA0F;YAC1F,2FAA2F;YAC3F,gEAAgE;YAChE,IAAI,MAAM,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC;gBAC1E,QAAQ,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;gBACtE,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACR,IAAI,CAAC;oBAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,8CAA8C,CAAC,CAAC;gBACvF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,KAAK,EAAE,wBAAwB;oBAC/B,UAAU,EAAE,MAAM,CAAC,YAAY;oBAC/B,mBAAmB,EAAE,QAAQ,CAAC,EAAE;oBAChC,eAAe,EAAE,UAAU;oBAC3B,aAAa,EAAE,OAAO;iBACzB,CAAC,CAAC,CAAC;gBACJ,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;YACjG,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,0BAA0B;gBACjC,UAAU,EAAE,MAAM,CAAC,YAAY;gBAC/B,mBAAmB,EAAE,QAAQ,CAAC,EAAE;gBAChC,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,mBAAmB;aAC9B,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;QAClG,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,eAAe;QACf,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAA4B,yBAAyB,EAAE,WAAW,CAAC,CAAC;YACxG,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;YAClC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YAC/B,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC;YAC9D,IAAI,MAAM,CAAC,WAAW;gBAAE,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAC7D,IAAI,MAAM,CAAC,yBAAyB;gBAAE,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;YACvG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpB,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC;YAClC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,KAAK,EAAE,wBAAwB;oBAC/B,UAAU,EAAE,MAAM,CAAC,YAAY;oBAC/B,mBAAmB,EAAE,GAAG,CAAC,EAAE;oBAC3B,eAAe,EAAE,YAAY;oBAC7B,cAAc,EAAE,YAAY;iBAC/B,CAAC,CAAC,CAAC;gBACJ,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;YAC9F,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+DAA+D,MAAM,CAAC,YAAY,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACrJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;IAC7F,CAAC;IAED,oEAAoE;IAE5D,MAAM,CAAC,KAAK,CAAC,WAAW,CAC5B,EAAqB,EACrB,QAAgB,EAChB,QAAyB,EACzB,cAAgD,EAChD,WAAqB,EACrB,eAAqC;QAErC,MAAM,SAAS,GAAG,CAAC,MAAsB,EAAsB,EAAE;YAC7D,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe;gBAAE,OAAO,SAAS,CAAC;YAClD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAC5D,CAAC;QACF,MAAM,OAAO,GAAsC,EAAE,CAAC;QAEtD,IAAI,QAAQ,EAAE,CAAC;YACX,qCAAqC;YACrC,uHAAuH;YACvH,kGAAkG;YAClG,uGAAuG;YACvG,EAAE;YACF,uEAAuE;YACvE,qEAAqE;YACrE,6BAA6B;YAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAExE,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC3B,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;YAC9B,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAmB,EAAE,CAAC;gBAC9C,QAAQ,CAAC,UAAU,GAAG,mBAAmB,CAAC;gBAC1C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YACpC,CAAC;YACD,2DAA2D;YAC3D,gEAAgE;YAChE,mEAAmE;YACnE,+DAA+D;YAC/D,gEAAgE;YAChE,kEAAkE;YAClE,kEAAkE;YAClE,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClF,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAEvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrE,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;gBACxC,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;YAExC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;YAEvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACrE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;gBACtC,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;YACtC,mEAAmE;YACnE,iEAAiE;YACjE,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAChD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAC5C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;YACvC,CAAC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC9B,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACrC,CAAC;YACD,2EAA2E;YAC3E,+EAA+E;YAC/E,iFAAiF;YACjF,uEAAuE;YACvE,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC;gBAC7F,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,UAAU,EAAE,CAAC;oBACb,QAAQ,CAAC,0BAA0B,GAAG,UAAU,CAAC;oBACjD,KAAK,GAAG,IAAI,CAAC;oBACb,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;gBACtC,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,CAAC,0BAA0B,EAAE,CAAC;gBAC7C,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YACpC,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CACR,wDAAwD,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,YAAY,EAAE,eAAe,IAAI,eAAe,EAAE,CACzI,CAAC;gBACN,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACrG,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QACtG,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiC,+BAA+B,EAAE,WAAW,CAAC,CAAC;YACrH,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC;YACrC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;YACpD,IAAI,QAAQ,CAAC,WAAW;gBAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnE,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChD,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/D,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3C,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACvC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC;YAChD,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC;YAClD,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;YACpC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBACrD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,UAAU;oBAAE,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,cAAc,GAAsC;gBACtD,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;gBACzD,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS;gBACtE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;aACvE,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,oEAAoE,QAAQ,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACpJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACnG,CAAC;IAED,oEAAoE;IAEpE;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAQnD;QACG,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAE7D,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;YAC9B,eAAe;YACf,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB;YAC/C,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,WAAW,EAAE,IAAI,CAAC,eAAe;YACjC,cAAc,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,qCAAqC;QACrC,MAAM,EAAE,GAAsB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QACjE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,yBAAyB;QACzB,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,uBAAuB,CAClE,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,CAC3D,CAAC;QAEF,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;YAEzD,gCAAgC;YAChC,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBAC9B,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;gBACvD,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,CAAC,IAAI,CAAC;aACjB,EAAE,WAAW,CAAC,CAAC;YAChB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAE9D,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,mBAAmB,CAC5D,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAC5C,CAAC;gBACF,IAAI,QAAQ;oBAAE,OAAO,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,oDAAoD,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;YAC5F,CAAC;QACL,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,gBAAgB,aAAa,CAAC,MAAM,sBAAsB,eAAe,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACpC,EAAqB,EACrB,MAAwH,EACxH,UAAyB,EACzB,WAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiB,aAAa,EAAE,WAAW,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;QAC9C,MAAM,CAAC,WAAW,GAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAY,IAAI,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;QAC5D,4DAA4D;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7F,IAAI,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAW,CAAC,CAAC;QAE9F,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,iBAAiB;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAsB,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC9F,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;YACxC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAgC,CAAC;YAC7D,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAkF,CAAC;YACvI,KAAK,CAAC,OAAO,GAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAa,IAAI,KAAK,CAAC;YAC1D,KAAK,CAAC,UAAU,GAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAa,IAAI,KAAK,CAAC;YAChE,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;YACnF,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,yBAAyB,EAAE,WAAW,CAAC,CAAC;YACxG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAW,CAAC;YACnD,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;YAClF,IAAI,CAAC,SAAS,GAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAa,IAAI,KAAK,CAAC;YAC7D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,uBAAuB,CACxC,EAAqB,EACrB,eAAuB,EACvB,eAA2D,EAC3D,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAyB;YACtD,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;YAC5D,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,eAAe;SAC9B,EAAE,WAAW,CAAC,CAAC;QAEhB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,CAAC;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAyB,uBAAuB,EAAE,WAAW,CAAC,CAAC;YACnG,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC;YAC3B,GAAG,CAAC,WAAW,GAAG,SAAS,EAAE,MAAM,CAAC,aAAa,CAAW,IAAI,eAAe,eAAe,cAAc,CAAC;YAC7G,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"MatchEngine.d.ts","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,qBAAa,WAAW;IACpB,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,4FAA4F;IAC5F,SAAS,KAAK,aAAa,IAAI,iBAAiB,CAE/C;IAED;;;;;;;;;OASG;IACU,OAAO,CAChB,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,4BAA4B,EACvC,SAAS,EAAE,2BAA2B,EAAE,EACxC,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC;IAmB1B;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;;;OAQG;YACW,kBAAkB;IAuBhC;;;;;;;;;OASG;YACW,eAAe;IAiD7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;YACW,kBAAkB;CAsBnC"}
1
+ {"version":3,"file":"MatchEngine.d.ts","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,qBAAa,WAAW;IACpB,gFAAgF;IAChF,OAAO,CAAC,SAAS,CAAC,CAAoB;IAEtC,4FAA4F;IAC5F,SAAS,KAAK,aAAa,IAAI,iBAAiB,CAE/C;IAED;;;;;;;;;OASG;IACU,OAAO,CAChB,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,4BAA4B,EACvC,SAAS,EAAE,2BAA2B,EAAE,EACxC,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC;IAmB1B;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;;;;;;OAQG;YACW,kBAAkB;IAuBhC;;;;;;;;;OASG;YACW,eAAe;IAiD7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;YACW,kBAAkB;CA0BnC"}
@@ -161,6 +161,10 @@ export class MatchEngine {
161
161
  Fields: ['EntityRecordID'],
162
162
  MaxRows: 1,
163
163
  ResultType: 'simple',
164
+ // CRITICAL: this lookup decides CREATE vs UPDATE for an incoming record. It MUST read
165
+ // committed state — a cached null (from a lookup made before this record's map existed)
166
+ // would make a re-sync of a changed record wrongly CREATE → duplicate-key on the dest.
167
+ BypassCache: true,
164
168
  }, contextUser);
165
169
  if (!result.Success || result.Results.length === 0)
166
170
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"MatchEngine.js","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MatchEngine.js","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"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"}