@memberjunction/integration-engine 6.1.0-edge.4 → 6.1.0-edge.6

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 (50) hide show
  1. package/dist/BaseIntegrationConnector.d.ts +7 -0
  2. package/dist/BaseIntegrationConnector.d.ts.map +1 -1
  3. package/dist/BaseIntegrationConnector.js +33 -2
  4. package/dist/BaseIntegrationConnector.js.map +1 -1
  5. package/dist/BaseRESTIntegrationConnector.d.ts +48 -7
  6. package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
  7. package/dist/BaseRESTIntegrationConnector.js +160 -17
  8. package/dist/BaseRESTIntegrationConnector.js.map +1 -1
  9. package/dist/DeclaredSampleMerge.d.ts +74 -0
  10. package/dist/DeclaredSampleMerge.d.ts.map +1 -0
  11. package/dist/DeclaredSampleMerge.js +104 -0
  12. package/dist/DeclaredSampleMerge.js.map +1 -0
  13. package/dist/IntegrationConnectorCreationPipeline.d.ts +20 -0
  14. package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
  15. package/dist/IntegrationConnectorCreationPipeline.js +190 -30
  16. package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
  17. package/dist/IntegrationEngine.d.ts +173 -1
  18. package/dist/IntegrationEngine.d.ts.map +1 -1
  19. package/dist/IntegrationEngine.js +834 -152
  20. package/dist/IntegrationEngine.js.map +1 -1
  21. package/dist/IntegrationSchemaSync.d.ts +46 -2
  22. package/dist/IntegrationSchemaSync.d.ts.map +1 -1
  23. package/dist/IntegrationSchemaSync.js +83 -14
  24. package/dist/IntegrationSchemaSync.js.map +1 -1
  25. package/dist/MatchEngine.js +1 -1
  26. package/dist/MatchEngine.js.map +1 -1
  27. package/dist/StreamingDiscovery.d.ts +11 -0
  28. package/dist/StreamingDiscovery.d.ts.map +1 -1
  29. package/dist/StreamingDiscovery.js +13 -3
  30. package/dist/StreamingDiscovery.js.map +1 -1
  31. package/dist/SyncLogger.d.ts +2 -1
  32. package/dist/SyncLogger.d.ts.map +1 -1
  33. package/dist/SyncLogger.js +1 -0
  34. package/dist/SyncLogger.js.map +1 -1
  35. package/dist/WatermarkService.d.ts +7 -0
  36. package/dist/WatermarkService.d.ts.map +1 -1
  37. package/dist/WatermarkService.js +8 -0
  38. package/dist/WatermarkService.js.map +1 -1
  39. package/dist/WriteSerializer.d.ts +44 -0
  40. package/dist/WriteSerializer.d.ts.map +1 -0
  41. package/dist/WriteSerializer.js +70 -0
  42. package/dist/WriteSerializer.js.map +1 -0
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/types.d.ts +25 -1
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js.map +1 -1
  50. package/package.json +7 -7
@@ -3,6 +3,7 @@ import { IntegrationProgressEmitter, } from '@memberjunction/integration-progres
3
3
  import { SoftPKClassifier, } from '@memberjunction/integration-pk-classifier';
4
4
  import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
5
5
  import { IntegrationSchemaSync } from './IntegrationSchemaSync.js';
6
+ import { MergeDeclaredWithSample } from './DeclaredSampleMerge.js';
6
7
  /**
7
8
  * The unified pipeline that drives connector creation / refresh end-to-end:
8
9
  *
@@ -313,6 +314,18 @@ export class IntegrationConnectorCreationPipeline {
313
314
  async StageIntrospect(emitter, opts) {
314
315
  emitter.stageStart('Introspect', 'Discovering objects and fields via connector');
315
316
  const startMs = Date.now();
317
+ // Sampling is now per OBJECT, so this stage's cost scales with the catalog — and on a large
318
+ // one it is the run's whole cost. Execute races the stage against the run deadline, but
319
+ // `Promise.race` does not CANCEL the loser: without a check the sampling loops below keep
320
+ // issuing vendor requests, for hours, on behalf of a run that has already been failed and
321
+ // whose results nobody will read. So stop at the same wall the race enforces.
322
+ //
323
+ // Approximated from THIS stage's start rather than the run's: only ConnectionTest precedes
324
+ // it, so the two differ by one connectivity probe. The approximation can only ever stop
325
+ // work LATER than the race — never earlier — so it cannot truncate a run that would
326
+ // otherwise have completed.
327
+ const budgetMs = opts.RunDeadlineMs ?? IntegrationConnectorCreationPipeline.DEFAULT_RUN_DEADLINE_MS;
328
+ const outOfTime = () => budgetMs > 0 && Date.now() - startMs >= budgetMs;
316
329
  try {
317
330
  // U11 — determinate discovery progress: surface scanned/total on the structured
318
331
  // stream (IntegrationTailRunEvents carries counts) so a client can render a real
@@ -335,49 +348,82 @@ export class IntegrationConnectorCreationPipeline {
335
348
  // can't silently lose runtime discovery). PersistDiscoveredSchema is additive, so
336
349
  // declared objects are preserved and runtime-only objects (e.g. an auth-gated file
337
350
  // feed's streams) get created as Discovered. Errors are SURFACED, never swallowed.
338
- const seen = new Set(schema.Objects.map(o => o.ExternalName.toLowerCase()));
351
+ const declaredNames = schema.Objects.map(o => o.ExternalName);
352
+ const seen = new Set(declaredNames.map(n => n.toLowerCase()));
339
353
  let runtimeObjects = [];
354
+ // A DiscoverObjects failure used to end sampling for the ENTIRE run: the loop below was
355
+ // the only thing that sampled, and it iterated this (now empty) list. The declared
356
+ // catalog is still in hand — IntrospectSchema already returned it — so the union pass
357
+ // still samples every declared object. The failure is recorded on the checkpoint so a
358
+ // consumer can tell "the source has no other objects" from "we never got to ask".
359
+ let discoverObjectsFailed = false;
340
360
  try {
341
361
  runtimeObjects = await opts.Connector.DiscoverObjects(opts.CompanyIntegration, opts.ContextUser);
342
362
  }
343
363
  catch (err) {
344
364
  const msg = err instanceof Error ? err.message : String(err);
365
+ discoverObjectsFailed = true;
345
366
  emitter.stageError('Introspect', `DiscoverObjects failed: ${msg}`, { code: 'discover-objects-failed' });
346
367
  console.error(`[IntrospectPipeline] DiscoverObjects failed: ${msg}`);
347
368
  }
369
+ // §7 — a SCOPED introspection asked about a named subset. IntrospectSchema already
370
+ // honours the filter; DiscoverObjects does not take it, so without this the scoped run
371
+ // pulled and sampled the whole runtime catalog anyway.
372
+ const wantedNames = opts.IntrospectOptions?.ObjectNames;
373
+ const wanted = wantedNames && wantedNames.length > 0
374
+ ? new Set(wantedNames.map(n => n.toLowerCase()))
375
+ : null;
376
+ const inScope = (name) => !wanted || wanted.has(name.toLowerCase());
377
+ const sampledDeclared = new Set();
348
378
  let runtimeAdded = 0;
379
+ let unsampledForTime = 0;
380
+ // Per-object progress. Everything below this point is the expensive half of discovery —
381
+ // one read-path sample per object — and it emitted nothing, so a consumer watching a
382
+ // 23-object source saw the same silence as a 5-object one for however long it ran.
383
+ // The denominator is the union BOTH passes will sample (in-scope runtime objects plus
384
+ // in-scope declared ones) rather than either loop's own length, so the total is fixed
385
+ // before the first sample instead of revising upward when the second pass starts.
386
+ const sampleUniverse = new Set();
387
+ for (const d of runtimeObjects)
388
+ if (inScope(d.Name))
389
+ sampleUniverse.add(d.Name.toLowerCase());
390
+ for (const n of declaredNames)
391
+ if (inScope(n))
392
+ sampleUniverse.add(n.toLowerCase());
393
+ const sampleTotal = sampleUniverse.size;
394
+ // Keyed, not counted: a name the connector surfaces twice is sampled twice by the loop
395
+ // below, and a bare counter would then report "24 of 23".
396
+ const announced = new Set();
397
+ const announceSample = (name) => {
398
+ const k = name.toLowerCase();
399
+ if (announced.has(k))
400
+ return;
401
+ announced.add(k);
402
+ emitter.heartbeat('Introspect', `Sampling "${name}" (${announced.size} of ${sampleTotal})`, {
403
+ processed: announced.size,
404
+ totalKnown: sampleTotal,
405
+ skipped: unsampledForTime,
406
+ });
407
+ };
349
408
  for (const d of runtimeObjects) {
350
409
  const key = d.Name.toLowerCase();
410
+ if (!inScope(d.Name))
411
+ continue;
412
+ // Announced BEFORE the budget check so an exhausted budget reads as a run that
413
+ // reached the end of its object list, not one that stalled partway through it.
414
+ announceSample(d.Name);
415
+ if (outOfTime()) {
416
+ unsampledForTime++;
417
+ continue;
418
+ }
351
419
  if (seen.has(key)) {
352
420
  // §case-3 (data-only-discoverable): a DECLARED object the connector ALSO surfaces at
353
- // runtime, but the declared form carries NO fields (e.g. a file-feed stream declared by
354
- // NAME only its columns are knowable solely from the records). Without this, the loop
355
- // skipped it, it stayed field-less + PK-less, and ApplyAll dropped it — so the user's data
356
- // for that object never landed. Discover its fields over the read path and populate the
357
- // existing declared object IN PLACE so it becomes syncable.
421
+ // runtime. Sampling populates it IN PLACE so a name-only declaration becomes syncable
422
+ // and a fully-declared one gets its true widths and undeclared columns.
358
423
  const existing = schema.Objects.find(o => o.ExternalName.toLowerCase() === key);
359
- if (existing && existing.Fields.length === 0) {
360
- try {
361
- const dfields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, d.Name, opts.ContextUser);
362
- existing.Fields = dfields.map(f => ({
363
- Name: f.Name, Label: f.Label, Description: f.Description, SourceType: f.DataType,
364
- IsRequired: f.IsRequired, AllowsNull: f.AllowsNull, MaxLength: f.MaxLength ?? null,
365
- Precision: f.Precision ?? null, Scale: f.Scale ?? null, DefaultValue: f.DefaultValue ?? null,
366
- // U1 — preserve `undefined` (no opinion); `?? false` fabricated a "not a PK/FK" opinion
367
- IsPrimaryKey: f.IsPrimaryKey, IsUniqueKey: f.IsUniqueKey, IsReadOnly: f.IsReadOnly,
368
- IsForeignKey: f.IsForeignKey, ForeignKeyTarget: f.ForeignKeyTarget ?? null,
369
- }));
370
- existing.PrimaryKeyFields = dfields.filter(f => f.IsPrimaryKey).map(f => f.Name);
371
- existing.Relationships = dfields
372
- .filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
373
- .map(f => ({ FieldName: f.Name, TargetObject: f.ForeignKeyTarget, TargetField: 'ID' }));
374
- console.log(`[IntrospectPipeline] declared field-less object "${d.Name}" → discovered ${dfields.length} fields via read path`);
375
- }
376
- catch (err) {
377
- const msg = err instanceof Error ? err.message : String(err);
378
- emitter.stageError('Introspect', `DiscoverFieldsViaFetch failed for declared field-less "${d.Name}": ${msg}`, { code: 'discover-fields-failed' });
379
- console.error(`[IntrospectPipeline] DiscoverFieldsViaFetch failed for declared "${d.Name}": ${msg}`);
380
- }
424
+ if (existing) {
425
+ await this.SampleDeclaredObjectInPlace(existing, d.Name, opts, emitter);
426
+ sampledDeclared.add(key);
381
427
  }
382
428
  continue;
383
429
  }
@@ -388,7 +434,7 @@ export class IntegrationConnectorCreationPipeline {
388
434
  // SAVE-LESS — stream as much of the feed as the budget allows so the PK decision is
389
435
  // made on a statistically-significant sample, not a single (possibly tiny) file. No
390
436
  // DB write happens here; the real save is the later ApplyAll → StartSync.
391
- fields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, d.Name, opts.ContextUser);
437
+ fields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, d.Name, opts.ContextUser, { OnFallback: (err) => this.ReportSampleFallback(d.Name, err, emitter) });
392
438
  }
393
439
  catch (err) {
394
440
  const msg = err instanceof Error ? err.message : String(err);
@@ -424,7 +470,43 @@ export class IntegrationConnectorCreationPipeline {
424
470
  });
425
471
  runtimeAdded++;
426
472
  }
427
- console.log(`[IntrospectPipeline] declared=${seen.size - runtimeAdded} runtime-added=${runtimeAdded} total=${schema.Objects.length}`);
473
+ // The union's second half: DECLARED objects the runtime pass never reached. Sampling used
474
+ // to be reachable only through a DiscoverObjects hit, so an object the connector declares
475
+ // but does not re-surface at runtime — the normal shape for a catalog-driven connector, and
476
+ // for every object when DiscoverObjects fails — was never sampled at all. It kept whatever
477
+ // widths the catalog guessed (a truncation waiting to happen) and could only ever gain its
478
+ // undeclared columns later, one sync at a time, through the overflow path.
479
+ let declaredOnlySampled = 0;
480
+ for (const name of declaredNames) {
481
+ const key = name.toLowerCase();
482
+ if (sampledDeclared.has(key) || !inScope(name))
483
+ continue;
484
+ announceSample(name);
485
+ if (outOfTime()) {
486
+ unsampledForTime++;
487
+ continue;
488
+ }
489
+ const existing = schema.Objects.find(o => o.ExternalName.toLowerCase() === key);
490
+ if (!existing)
491
+ continue;
492
+ // Record it here too: two declared entries that differ only by case resolve to the
493
+ // SAME object, and sampling it twice doubles the most expensive part of discovery.
494
+ sampledDeclared.add(key);
495
+ await this.SampleDeclaredObjectInPlace(existing, name, opts, emitter);
496
+ declaredOnlySampled++;
497
+ }
498
+ if (unsampledForTime > 0) {
499
+ // NOT a failure: every unsampled object keeps its declaration, which is exactly the
500
+ // behaviour that shipped before sampling existed. But it is not the complete sample
501
+ // the run appears to have done, and the difference is real — unsampled objects keep
502
+ // catalog-guessed widths and gain undeclared columns only via the overflow path.
503
+ const msg = `Ran out of time after ${Math.round((Date.now() - startMs) / 1000)}s: ` +
504
+ `${unsampledForTime} object(s) were not sampled and keep their declared fields ` +
505
+ `and catalog widths. Raise RunDeadlineMs or introspect a named subset.`;
506
+ emitter.stageError('Introspect', msg, { code: 'sample-budget-exhausted' });
507
+ console.warn(`[IntrospectPipeline] ${msg}`);
508
+ }
509
+ console.log(`[IntrospectPipeline] declared=${declaredNames.length} runtime-added=${runtimeAdded} declared-only-sampled=${declaredOnlySampled} unsampled-for-time=${unsampledForTime} total=${schema.Objects.length}`);
428
510
  const fieldCount = schema.Objects.reduce((acc, o) => acc + o.Fields.length, 0);
429
511
  emitter.stageComplete('Introspect', {
430
512
  processed: schema.Objects.length,
@@ -435,6 +517,8 @@ export class IntegrationConnectorCreationPipeline {
435
517
  objectsDiscovered: schema.Objects.length,
436
518
  fieldsDiscovered: fieldCount,
437
519
  durationMs: Date.now() - startMs,
520
+ discoverObjectsFailed,
521
+ unsampledForTime,
438
522
  });
439
523
  return schema;
440
524
  }
@@ -445,6 +529,82 @@ export class IntegrationConnectorCreationPipeline {
445
529
  }
446
530
  }
447
531
  // ── Stage 3: persist ─────────────────────────────────────────────────
532
+ /**
533
+ * Samples a DECLARED object over the read path and merges the result into it IN PLACE.
534
+ *
535
+ * Sampling is UNCONDITIONAL — it used to run only for a declared object with no fields, a gate
536
+ * on the wrong question, because streaming answers three things and a declaration can only
537
+ * pre-answer one of them. A declared key IS authoritative; which fields the source actually
538
+ * sends, and how wide their values are, only the data knows.
539
+ *
540
+ * The merge is one-directional (see DeclaredSampleMerge): sampling fills gaps and widens, never
541
+ * overrides. A fetch failure leaves the declaration exactly as it was, so the worst case is the
542
+ * behaviour that shipped before sampling existed.
543
+ */
544
+ /**
545
+ * Surfaces a silent degradation: streaming failed, so the fields came from the catalog's own
546
+ * description instead of from records. That distinction is the whole value of sampling — the
547
+ * catalog states no observed widths — but from the outside the two are indistinguishable, so
548
+ * without this an object quietly keeps a guessed width and drops every longer value at sync.
549
+ */
550
+ ReportSampleFallback(objectName, err, emitter) {
551
+ const msg = err instanceof Error ? err.message : String(err);
552
+ emitter.stageError('Introspect', `Sampling fell back to the catalog description for "${objectName}" — real widths and ` +
553
+ `undeclared columns are unknown for this run: ${msg}`, { code: 'discover-fields-fallback' });
554
+ console.warn(`[IntrospectPipeline] sample fallback for "${objectName}": ${msg}`);
555
+ }
556
+ async SampleDeclaredObjectInPlace(existing, objectName, opts, emitter) {
557
+ try {
558
+ const dfields = await opts.Connector.DiscoverFieldsViaFetch(opts.CompanyIntegration, objectName, opts.ContextUser, { OnFallback: (err) => this.ReportSampleFallback(objectName, err, emitter) });
559
+ const sampled = dfields.map(f => ({
560
+ Name: f.Name, Label: f.Label, Description: f.Description, SourceType: f.DataType,
561
+ IsRequired: f.IsRequired, AllowsNull: f.AllowsNull, MaxLength: f.MaxLength ?? null,
562
+ Precision: f.Precision ?? null, Scale: f.Scale ?? null, DefaultValue: f.DefaultValue ?? null,
563
+ // U1 — preserve `undefined` (no opinion); `?? false` fabricated a "not a PK/FK" opinion
564
+ IsPrimaryKey: f.IsPrimaryKey, IsUniqueKey: f.IsUniqueKey, IsReadOnly: f.IsReadOnly,
565
+ IsForeignKey: f.IsForeignKey, ForeignKeyTarget: f.ForeignKeyTarget ?? null,
566
+ }));
567
+ if (existing.Fields.length === 0) {
568
+ // Nothing was declared, so there is nothing to defer to — the
569
+ // sample is the whole truth, exactly as before this change.
570
+ existing.Fields = sampled;
571
+ existing.PrimaryKeyFields = dfields.filter(f => f.IsPrimaryKey).map(f => f.Name);
572
+ existing.Relationships = dfields
573
+ .filter(f => (f.IsForeignKey ?? false) && f.ForeignKeyTarget)
574
+ .map(f => ({ FieldName: f.Name, TargetObject: f.ForeignKeyTarget, TargetField: 'ID' }));
575
+ console.log(`[IntrospectPipeline] declared field-less object "${objectName}" → discovered ${dfields.length} field(s) via read path`);
576
+ }
577
+ else {
578
+ const merged = MergeDeclaredWithSample(existing.Fields, sampled);
579
+ existing.Fields = merged.Fields;
580
+ // Only when the declaration named no key at all — a declared key
581
+ // stays authoritative even if the sample nominates another column,
582
+ // which is how a child table ends up keyed on its parent's FK.
583
+ if (merged.AdoptedKeyNames.length > 0) {
584
+ existing.PrimaryKeyFields = merged.AdoptedKeyNames;
585
+ }
586
+ // Relationships come from the declaration when there is one; a
587
+ // sampled FK target is a guess and must not rewrite a stated graph.
588
+ const parts = [
589
+ merged.AddedFieldNames.length ? `added ${merged.AddedFieldNames.length} undeclared field(s): ${merged.AddedFieldNames.join(', ')}` : null,
590
+ merged.WidenedFieldNames.length ? `widened ${merged.WidenedFieldNames.length}: ${merged.WidenedFieldNames.join(', ')}` : null,
591
+ merged.AdoptedKeyNames.length ? `adopted key [${merged.AdoptedKeyNames.join(', ')}]` : null,
592
+ ].filter(Boolean);
593
+ console.log(`[IntrospectPipeline] declared object "${objectName}" sampled ${dfields.length} field(s) — ${parts.length ? parts.join('; ') : 'declaration already matched the data'}`);
594
+ }
595
+ }
596
+ catch (err) {
597
+ const msg = err instanceof Error ? err.message : String(err);
598
+ // The declaration stands exactly as it was — the worst case of sampling
599
+ // failing is the behaviour that shipped before it. Say which was lost so
600
+ // an operator can tell "no columns at all" from "possibly narrow ones".
601
+ const lost = existing.Fields.length === 0
602
+ ? 'object has NO fields and cannot be synced until this succeeds'
603
+ : 'keeping the declared fields; undeclared columns and true widths are unknown for this run';
604
+ emitter.stageError('Introspect', `DiscoverFieldsViaFetch failed for declared "${objectName}" — ${lost}: ${msg}`, { code: 'discover-fields-failed' });
605
+ console.error(`[IntrospectPipeline] DiscoverFieldsViaFetch failed for declared "${objectName}" — ${lost}: ${msg}`);
606
+ }
607
+ }
448
608
  async StagePersist(emitter, opts, sourceSchema) {
449
609
  emitter.stageStart('Persist', 'Upserting IntegrationObject/Field rows with overlay precedence');
450
610
  const startMs = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationConnectorCreationPipeline.js","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAM1D,OAAO,EACH,0BAA0B,GAE7B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACH,gBAAgB,GAEnB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAA4B,MAAM,4BAA4B,CAAC;AAyF7F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,oCAAoC;IAC7C;;;;;;;;;;;;;;;;;;;OAmBG;aACqB,iBAAY,GAAG,IAAI,GAAG,EAA6E,CAAC;IAC5H;;;;;;OAMG;aACqB,yBAAoB,GAAG,EAAE,GAAG,MAAM,CAAC;IAC3D;;;;OAIG;aACqB,4BAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;IAC9D,0GAA0G;aAClF,eAAU,GAAG,IAAI,GAAG,EAAmE,CAAC;IAChH,2EAA2E;aACnD,+BAA0B,GAAG,IAAI,CAAC;IAE1D;;;;;;;OAOG;IACK,MAAM,KAAK,kBAAkB;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,0BAA0B,CAAC;IAClI,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,GAAG,CAAC,IAAsC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC;QAE/E,MAAM,GAAG,GAAG,oCAAoC,CAAC;QACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,GAAG,GAAG,CAAC,oBAAoB,EAAE,CAAC;gBACtD,sFAAsF;gBACtF,uFAAuF;gBACvF,wFAAwF;gBACxF,oFAAoF;gBACpF,uFAAuF;gBACvF,6BAA6B;gBAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnE,CAAC;YACD,yFAAyF;YACzF,wFAAwF;YACxF,wFAAwF;YACxF,QAAQ,CACJ,+DAA+D,IAAI,2BAA2B;gBAC9F,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,kDAAkD;gBACnG,4FAA4F,CAC/F,CAAC;YACF,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,4BAA4B;QAE/F,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC7B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACrD,OAAO,MAAM,CAAC;QAClB,CAAC;gBAAS,CAAC;YACP,2FAA2F;YAC3F,uFAAuF;YACvF,aAAa;YACb,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;gBAClD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,KAAK,CAAC,oBAAoB,CAC9B,IAAsC,EACtC,MAAuC;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAC5D,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,qBAAqB,CAC/B,cAAsB,EACtB,IAAsC,EACtC,MAAuC;QAEvC,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAAC;gBAC3C,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,mBAAmB;gBAC5B,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa;gBACpD,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;gBAChD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,UAAU;gBAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,cAAc,EAAE,CAAC,WAAW,CAAC;gBAC7B,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;aAC5D,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAEzE,MAAM,OAAO,GAAG,wEAAwE;gBACpF,iDAAiD,MAAM,CAAC,KAAK,yBAAyB;gBACtF,kEAAkE,CAAC;YACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;gBAC/B,MAAM,OAAO,CAAC,QAAQ,CAClB,GAAG,OAAO,aAAa,CAAC,EAAE,cAAc,IAAI,CAAC,oBAAoB;oBACjE,GAAG,CAAC,EAAE,cAAc,IAAI,CAAC,aAAa,MAAM,CAAC,iBAAiB,CAAC,MAAM,kBAAkB,CAC1F,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,oBAAoB,EAAE;oBAC3E,IAAI,EAAE,sBAAsB;oBAC5B,aAAa,EAAE,MAAM,CAAC,KAAK;iBAC9B,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CACd,GAAG,OAAO,qBAAqB,MAAM,CAAC,cAAc,IAAI,oBAAoB,EAAE,EAC9E,sBAAsB,CACzB,CAAC;YACN,CAAC;YACD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACR,+EAA+E;gBAC/E,GAAG,cAAc,MAAM,MAAM,CAAC,KAAK,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7F,CAAC;QACN,CAAC;IACL,CAAC;IAED,wFAAwF;IAChF,MAAM,CAAC,eAAe;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,oCAAoC,CAAC,UAAU,EAAE,CAAC;YACzE,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,IAAI,oCAAoC,CAAC,kBAAkB,EAAE,CAAC;gBAC5E,oCAAoC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAsC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,0BAA0B,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAA2B;YACrC,KAAK;YACL,OAAO,EAAE,mBAAmB;YAC5B,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa;YACpD,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAChD,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,UAAU;YAC3C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,cAAc,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC;YACzE,OAAO,EAAE;gBACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI;gBAC/C,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,IAAI;aAC/D;SACJ,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,0BAA0B,CAAC,QAAQ,EAAE;YACrD,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,2CAA2C,IAAI,CAAC,kBAAkB,CAAC,WAAW,IAAI,eAAe,QAAQ,KAAK,EAAE,CAAC,CAAC;QAEnI,+FAA+F;QAC/F,+FAA+F;QAC/F,oDAAoD;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,IAAI,oCAAoC,CAAC,uBAAuB,CAAC;QACtG,6FAA6F;QAC7F,8FAA8F;QAC9F,6EAA6E;QAC7E,MAAM,aAAa,GAAG,UAAU,IAAI,MAAM;YACtC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK;YACzC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACzE,IAAI,aAAwD,CAAC;QAC7D,MAAM,YAAY,GAAG,KAAK,EAAK,KAAa,EAAE,IAAgB,EAAc,EAAE;YAC1E,IAAI,UAAU,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjC,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YACxD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,aAAa,2BAA2B,KAAK,gBAAgB,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC;gBAChB,IAAI;gBACJ,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAC7B,aAAa,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAClB,UAAU,KAAK,8CAA8C;wBAC7D,GAAG,aAAa,0CAA0C;wBAC1D,6EAA6E;wBAC7E,gDAAgD,CAAC,CAAC,EACtD,SAAS,CACZ,CAAC;oBACF,mEAAmE;oBAClE,aAAmD,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnE,CAAC,CAAC;aACL,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,aAAa;gBAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC;QACxF,CAAC,CAAC;QAEF,IAAI,CAAC;YACD,MAAM,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC3F,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACpG,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,MAAM,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAEvG,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC9B,SAAS,EAAE,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc;gBACtE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;gBACnD,OAAO,EAAE,UAAU,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,QAAQ,CAAC,sBAAsB,aAAa,CAAC,cAAc,qBAAqB,aAAa,CAAC,cAAc,aAAa,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC;YAE5K,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,aAAa;gBAC5B,UAAU,EAAE,QAAQ;gBACpB,iBAAiB,EAAE,UAAU;gBAC7B,QAAQ,EAAE,QAAQ;aACrB,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAC9C,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,EAAE;gBACd,iBAAiB,EAAE,EAAE;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,GAAG;aACtB,CAAC;QACN,CAAC;gBAAS,CAAC;YACP,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,wEAAwE;IAEhE,KAAK,CAAC,mBAAmB,CAC7B,OAAmC,EACnC,IAAsC;QAEtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,0CAA0C,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,IAAI,mBAAmB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC3G,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,wEAAwE;IAEhE,KAAK,CAAC,eAAe,CACzB,OAAmC,EACnC,IAAsC;QAEtC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,8CAA8C,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,gFAAgF;YAChF,iFAAiF;YACjF,qFAAqF;YACrF,4CAA4C;YAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,KAAa,EAAQ,EAAE;gBACxD,IAAI,OAAO,GAAG,WAAW,GAAG,EAAE,IAAI,OAAO,KAAK,KAAK;oBAAE,OAAO;gBAC5D,WAAW,GAAG,OAAO,CAAC;gBACtB,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,OAAO,IAAI,KAAK,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACtH,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAChD,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,WAAW,EAChB,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAChE,CAAC;YAEF,sFAAsF;YACtF,8EAA8E;YAC9E,uFAAuF;YACvF,qFAAqF;YACrF,qFAAqF;YACrF,wFAAwF;YACxF,kFAAkF;YAClF,mFAAmF;YACnF,mFAAmF;YACnF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,cAAc,GAA2B,EAAE,CAAC;YAChD,IAAI,CAAC;gBACD,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrG,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,UAAU,CAAC,YAAY,EAAE,2BAA2B,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;gBACxG,OAAO,CAAC,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChB,qFAAqF;oBACrF,wFAAwF;oBACxF,wFAAwF;oBACxF,2FAA2F;oBAC3F,wFAAwF;oBACxF,4DAA4D;oBAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;oBAChF,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC3C,IAAI,CAAC;4BACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4BAC/G,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCAChC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ;gCAChF,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;gCAClF,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;gCAC5F,wFAAwF;gCACxF,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU;gCAClF,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI;6BAC7E,CAAC,CAAC,CAAC;4BACJ,QAAQ,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BACjF,QAAQ,CAAC,aAAa,GAAG,OAAO;iCAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;iCAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,gBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;4BAC7F,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,IAAI,kBAAkB,OAAO,CAAC,MAAM,uBAAuB,CAAC,CAAC;wBACnI,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BAC7D,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,0DAA0D,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;4BAClJ,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;wBACzG,CAAC;oBACL,CAAC;oBACD,SAAS;gBACb,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,IAAI,MAAM,GAA0B,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACD,oFAAoF;oBACpF,oFAAoF;oBACpF,oFAAoF;oBACpF,0EAA0E;oBAC1E,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5G,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,sCAAsC,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;oBAC9H,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChB,YAAY,EAAE,CAAC,CAAC,IAAI;oBACpB,aAAa,EAAE,CAAC,CAAC,KAAK;oBACtB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACrB,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,UAAU,EAAE,CAAC,CAAC,QAAQ;wBACtB,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;wBAC9B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;wBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;wBACtB,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;wBACpC,wFAAwF;wBACxF,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI;qBAC/C,CAAC,CAAC;oBACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACrE,aAAa,EAAE,MAAM;yBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;yBAC5D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,gBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC/F,CAAC,CAAC;gBACH,YAAY,EAAE,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,CAAC,IAAI,GAAG,YAAY,kBAAkB,YAAY,UAAU,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAEtI,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;gBAChC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAChC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBAChC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;aACpC,CAAC,CAAC;YACH,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;gBAC7B,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;gBACxC,gBAAgB,EAAE,UAAU;gBAC5B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;aACnC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrE,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,wEAAwE;IAEhE,KAAK,CAAC,YAAY,CACtB,OAAmC,EACnC,IAAsC,EACtC,YAA+E;QAE/E,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,gEAAgE,CAAC,CAAC;QAChG,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,uBAAuB,CAAC;YACtE,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa;YACpD,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI;YACzB,uFAAuF;YACvF,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;SACnD,CAAC,CAAC;QAEH,6EAA6E;QAC7E,yCAAyC;QACzC,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,cAAc,EAAE,CAAC;YAChD,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;YACjD,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1F,CAAC;QACD,0FAA0F;QAC1F,4FAA4F;QAC5F,0FAA0F;QAC1F,uEAAuE;QACvE,IAAI,aAAa,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5F,OAAO,CAAC,OAAO,CACX,SAAS,EACT,2BAA2B,EAC3B,GAAG,aAAa,CAAC,kBAAkB,CAAC,MAAM,kBAAkB,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG;gBACrG,oGAAoG;gBACpG,iGAAiG;gBACjG,aAAa,EACb;gBACI,OAAO,EAAE,aAAa,CAAC,kBAAkB;gBACzC,MAAM,EAAE,aAAa,CAAC,iBAAiB;aAC1C,CACJ,CAAC;QACN,CAAC;QACD,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE;YAC7B,SAAS,EAAE,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc;YACtE,SAAS,EAAE,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc;SACzE,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE;YAC1B,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SACnC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,wEAAwE;IAEhE,KAAK,CAAC,eAAe,CACzB,OAAmC,EACnC,IAAsC;QAKtC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,mDAAmD,CAAC,CAAC;QACtF,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QAC9C,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC9C,oDAAoD;QACpD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,CAAC,oCAAoC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAEnG,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAkD,EAAE,CAAC;QACnE,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,SAAS;YACb,CAAC;YACD,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;gBACtC,MAAM,EAAE,GAAG;gBACX,MAAM;gBACN,mBAAmB,EAAE,IAAI,CAAC,qBAAqB;gBAC/C,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC/C,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CAAC,CAAC;YACH,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE;gBACjC,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC;gBACV,UAAU,EAAE,GAAG,CAAC,IAAI;gBACpB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7D,IAAI,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,2BAA2B,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,YAAY,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC,CAAC;wBACxJ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC1B,SAAS;oBACb,CAAC;oBACD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACJ,mFAAmF;oBACnF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC1B,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;YAChC,SAAS,EAAE,QAAQ,CAAC,MAAM;YAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YACnD,OAAO,EAAE,UAAU,CAAC,MAAM;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;YAC7B,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,QAAQ,EAAE,QAAQ,CAAC,MAAM;YACzB,UAAU,EAAE,UAAU,CAAC,MAAM;SAChC,CAAC,CAAC;QAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IACpC,CAAC"}
1
+ {"version":3,"file":"IntegrationConnectorCreationPipeline.js","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,26 @@ export declare class SchemaNotGeneratedError extends Error {
33
33
  readonly StoredProcedureName: string;
34
34
  constructor(entityName: string, storedProcedureName: string);
35
35
  }
36
+ /**
37
+ * Thrown by a connector when the vendor says THIS account cannot serve an object it nonetheless
38
+ * lists in its catalog (e.g. a record type the account has not enabled). Distinct from a fetch
39
+ * failure: retrying cannot help WITHIN a run, so the map ends cleanly instead of climbing a retry
40
+ * ladder — one warning, watermark untouched.
41
+ *
42
+ * It is deliberately not remembered ACROSS runs. The next run simply asks again, which is what makes
43
+ * an account change self-healing with no marker, no recheck clock and no override to get right.
44
+ *
45
+ * Connectors are NOT required to import this class — the engine also recognises any error carrying
46
+ * `code === 'OBJECT_UNAVAILABLE'`, so a connector can classify one without a peer version bump.
47
+ */
48
+ export declare class ObjectUnavailableError extends Error {
49
+ readonly code = "OBJECT_UNAVAILABLE";
50
+ /** The vendor's own explanation, surfaced to the operator verbatim. */
51
+ readonly VendorMessage: string;
52
+ constructor(objectName: string, vendorMessage: string);
53
+ }
54
+ /** Recognises an unavailability signal from a connector that imported the class OR just set the code. */
55
+ export declare function IsObjectUnavailable(err: unknown): boolean;
36
56
  /**
37
57
  * §29 — base of the VALUE-FIT error family: a mapped value cannot fit/coerce into its destination
38
58
  * column's type. Per the bounded-typing policy (small columns; large content is an explicit text/json
@@ -81,6 +101,14 @@ export declare class NumericOverflowError extends ValueFitError {
81
101
  * Exported so the guard itself is unit-testable without standing up a sync.
82
102
  */
83
103
  export declare function PositiveInt(v: unknown): number | undefined;
104
+ /**
105
+ * How many deferred writes may accumulate in one batched group before it is submitted and replaced.
106
+ *
107
+ * `undefined` (unset, or any unusable value) means no mid-batch flush at all — the batch is one
108
+ * group and one transaction, which is the default and the behaviour that shipped. An explicit value
109
+ * trades that atomicity for bounded memory on a heap-constrained box.
110
+ */
111
+ export declare function ReadFlushCeiling(env: NodeJS.ProcessEnv): number | undefined;
84
112
  export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine> {
85
113
  constructor();
86
114
  /**
@@ -123,8 +151,69 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
123
151
  * calls without threading a parameter through ~20 private signatures.
124
152
  */
125
153
  private static readonly runContext;
154
+ /**
155
+ * The connection's opt-in write mode, from `CompanyIntegration.Configuration`.
156
+ *
157
+ * Returns `''` for absent, unparseable or wrongly-typed configuration. Every failure mode
158
+ * therefore lands on the proven per-record path: a connection has to ASK for batched writes,
159
+ * and a malformed request is not an ask.
160
+ */
161
+ private ReadWriteMode;
126
162
  /** The current run's context, when called from inside a sync run. */
127
163
  private get currentRunContext();
164
+ /**
165
+ * Defers this entity's write into the batch's group, when the connection asked for that.
166
+ *
167
+ * A no-op when no group is active, which is every existing caller — an entity constructed
168
+ * outside a batched apply saves immediately, exactly as before. What this does NOT do is skip
169
+ * any part of the save: `Save()` still validates, still checks row scope, still renders the
170
+ * generated procedure call, and still fires its post-save hook. Only the moment the SQL travels
171
+ * changes, and the group is what makes N of them travel together.
172
+ */
173
+ private enrolInWriteGroup;
174
+ /**
175
+ * True when the entity's identity is a SINGLE auto-increment column — the one primary-key
176
+ * shape whose value cannot be known until the insert has executed. See {@link enrolInWriteGroup}.
177
+ */
178
+ private hasIdentityOnlyPrimaryKey;
179
+ /**
180
+ * The MAP-level twin of {@link hasIdentityOnlyPrimaryKey}, asked BEFORE a write group is
181
+ * created. The entity-level guard refuses enrolment per record, which is total at the seam —
182
+ * but for a map whose target is that shape it refuses EVERY record, and the branch around it
183
+ * has already committed to being atomic by construction: it skips `BeginTransaction` because
184
+ * a group exists. The result is a group that stays empty, no transaction, records saving
185
+ * one-by-one on their own, and an empty `Submit()` returning true — a NON-ATOMIC batch
186
+ * reporting success as an atomic one.
187
+ *
188
+ * Worse on the failure path: a mid-batch throw correctly skips the rollback (there is no
189
+ * transaction), then the fallback re-applies the WHOLE batch including rows that already
190
+ * committed. With a server-assigned identity there is nothing to recognise the first copy
191
+ * by, so those become duplicates — the very failure the enrolment guard exists to prevent,
192
+ * reached from the other side.
193
+ *
194
+ * So the decision is made here, at the map, and such a map falls to the `useTransaction`
195
+ * path and gets REAL atomicity instead of an empty group.
196
+ *
197
+ * Deliberately not asserted at `Submit()` instead: an empty group is a legitimate state —
198
+ * when the content-hash fast path skips every record in a batch, nothing enrols and the
199
+ * group is correctly empty. At submit time the harmful and benign cases are
200
+ * indistinguishable, which is exactly why this has to be decided up front.
201
+ */
202
+ private entityMapHasIdentityOnlyPK;
203
+ /**
204
+ * The connection's write-side-effect mode from `CompanyIntegration.Configuration`. Returns ''
205
+ * for absent, unparseable or wrongly-typed configuration — every failure mode keeps the side
206
+ * effects ON. A connection has to ask, and a malformed request is not an ask.
207
+ */
208
+ private ReadWriteSideEffects;
209
+ /**
210
+ * Save options for THIS run's machine writes: suppress the audit row + geocode lookup when
211
+ * the connection asked for it, undefined otherwise (identical to the pre-feature call).
212
+ * Scoped to the sync's own saves — never to any other writer of the same entities.
213
+ */
214
+ private get syncSaveOptions();
215
+ /** Delete twin of {@link syncSaveOptions}. */
216
+ private get syncDeleteOptions();
128
217
  /**
129
218
  * Server-registered hook for post-sync custom-column promotion (gaps.md §2 / M2). The
130
219
  * engine has no dependency on RSU/CodeGen — the server registers an implementation via
@@ -171,8 +260,23 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
171
260
  * phase stays parallel (the real throughput win — it's network-bound). WeakMap so a
172
261
  * retired provider's chain entry is collectable.
173
262
  */
174
- private static readonly writeChains;
263
+ private static readonly writeSerializers;
264
+ /** The write lock for this engine's provider, created on first use. */
265
+ private writeSerializer;
266
+ /**
267
+ * Runs `fn` with NO other write in flight against the provider. Required for work that opens
268
+ * the provider's single global transaction — while it is open, any other write would join it.
269
+ */
175
270
  private runWriteExclusive;
271
+ /**
272
+ * Runs `fn` ordered against other writes for the SAME entity map, concurrently with other maps.
273
+ *
274
+ * Only for work that opens no provider transaction — watermark bookkeeping, match resolution,
275
+ * and the post-batch flushes of a batched (TransactionGroup-carrying) apply. Those were queued
276
+ * behind every other map's writes purely because the lock could not tell them apart from a
277
+ * transaction-holding section.
278
+ */
279
+ private runWriteForMap;
176
280
  /**
177
281
  * Fence check at a batch boundary, BEFORE any write (PR 1 item 3). One SELECT of the run's
178
282
  * ownership columns: if the fence has moved (the stale sweep or another worker reclaimed the
@@ -407,6 +511,53 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
407
511
  private runBounded;
408
512
  /** Per-integration request-spacing chain for the rate limiter (keyed by IntegrationID → last scheduled time). */
409
513
  private readonly _rateLimiters;
514
+ /**
515
+ * Per-connection gate on SIMULTANEOUS vendor fetches — adaptive, throttle-detected.
516
+ *
517
+ * Vendors govern by concurrent requests per ACCOUNT (NetSuite's base tier is 5), and the
518
+ * punishment for exceeding the grant is served INSIDE the fetch: the request is rejected
519
+ * and the retry's backoff burns tens of seconds while every resource metric reads idle.
520
+ * Measured live: a tight cluster of ~31.5s fetch durations on an account whose grant was 5
521
+ * while the engine had ~16 requests in flight (lanes x prefetch).
522
+ *
523
+ * The gate caps in-flight fetches per connection so the overflow queues CLIENT-side for
524
+ * milliseconds instead of SERVER-side for seconds. Sync concurrency (how many entity maps
525
+ * run at once) is deliberately NOT reduced — only simultaneous wire calls are.
526
+ *
527
+ * The cap is adaptive (AIMD): it starts at `Configuration.fetchConcurrency ??
528
+ * connector.MaxConcurrencyHint ?? 5`, HALVES whenever a throttle is detected, and creeps
529
+ * back up by 1 per clean fetch. Throttles reach it from both directions: fetch-level
530
+ * RATE_LIMIT errors the engine sees itself, and throttles the connector absorbs inside
531
+ * its own retry loop and reports via `ctx.RateLimitReport` — both land in
532
+ * `reportRateOutcome`, which feeds this controller. The gate therefore FINDS the
533
+ * account's real grant with zero configuration, and scales up automatically on accounts
534
+ * with a larger one.
535
+ */
536
+ private _fetchGates?;
537
+ private getFetchGate;
538
+ /**
539
+ * Runs `fn` holding one slot of the connection's fetch gate. A whole retry episode holds a
540
+ * single slot — retries of a throttled call must not add pressure to the account that just
541
+ * throttled us. FIFO: waiters resolve in arrival order as slots free or the cap grows.
542
+ */
543
+ private withFetchGate;
544
+ /**
545
+ * One governed vendor fetch: rate-limit token, adaptive fetch gate, per-attempt timeout,
546
+ * transient-only retry with Retry-After pacing, and ONE multiplicative decrease per throttle
547
+ * EPISODE (not per rejected attempt — a 429 that survives three retries is three rejections
548
+ * but one congestion event, the same distinction TCP draws when it halves the window once per
549
+ * loss event). Extracted so the loop-top fetch and the pipelined prefetch (which starts the
550
+ * next page while the current one is processed) share EXACTLY the same pacing and error
551
+ * semantics — a prefetched page must be indistinguishable from a loop-top fetch to the vendor.
552
+ *
553
+ * Retry predicate: our OWN timeout is terminal for this page (WithTimeout is a Promise.race
554
+ * with no cancellation, so the abandoned attempt keeps running — retrying stacks a second full
555
+ * page of vendor requests on a source already too slow to finish one); a transport error is
556
+ * not (a reset socket IS worth retrying). A throttle honors the source's Retry-After via
557
+ * DelayForError, and every retry re-passes the rate limiter via BeforeRetry so it cannot
558
+ * bypass a freeze the throttle just applied.
559
+ */
560
+ private governedFetch;
410
561
  /** Minimum ms between outbound requests for this integration (Integration.BatchRequestWaitTime; 0 = disabled). */
411
562
  private getRequestSpacingMs;
412
563
  /**
@@ -452,6 +603,8 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
452
603
  * - Bidirectional: pull first, then push
453
604
  */
454
605
  private ProcessSingleEntityMap;
606
+ /** Loads the map fresh and writes its Configuration through Save(), like every other engine write. */
607
+ private SaveEntityMapConfiguration;
455
608
  /**
456
609
  * Pull sync: fetch from external → map → match → validate → apply to MJ.
457
610
  */
@@ -645,6 +798,19 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
645
798
  * so the record is genuinely new and must be inserted. Used by CreateRecord for PK-safe upsert.
646
799
  */
647
800
  private extractMappedPrimaryKey;
801
+ /**
802
+ * True ONLY when the batch prefetch PROVED this record's row does not exist: the prefetch covered
803
+ * every record in the batch AND this key is missing from the rows it found. Anything less is
804
+ * "unknown", and unknown must load — a wrong "absent" turns an update into a duplicate INSERT.
805
+ *
806
+ * `mappedPK` must be the '|'-joined key {@link extractMappedPrimaryKey} returns — the SAME shape
807
+ * {@link PrefetchContentHashes} keys `Present` with (`pkNames.map(n => row[n] ?? '').join('|')`).
808
+ * The first version of this check re-derived a key by indexing that string with PK field names,
809
+ * which evaluates to `''` for every record — so "provably absent" was unconditionally true and
810
+ * every upsert of an existing row became a blind duplicate INSERT. Kept as its own method so the
811
+ * decision is testable against the real extractor's output rather than a re-implementation.
812
+ */
813
+ private isProvablyAbsent;
648
814
  /**
649
815
  * Updates an existing MJ record with pre-write validation.
650
816
  * If the record cannot be loaded (e.g. it was deleted or never fully created),
@@ -677,6 +843,12 @@ export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine>
677
843
  * the same format written by BaseRESTIntegrationConnector.ToExternalRecord.
678
844
  */
679
845
  private BuildEntityPrimaryKey;
846
+ /**
847
+ * The exact inverse of {@link BuildEntityPrimaryKey}: the '|'-joined value(s) of a data row's
848
+ * primary-key column(s), in PK-field order — the shape CompanyIntegrationRecordMap.EntityRecordID
849
+ * and a normalized RecordChange.RecordID carry. A single-column key is just its value.
850
+ */
851
+ private ComposeEntityRecordID;
680
852
  /**
681
853
  * Reports ACTIVE field maps whose MJ column does not exist, once per entity map per run.
682
854
  *