@memberjunction/integration-engine 6.1.0-edge.3 → 6.1.0-edge.5

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 (85) hide show
  1. package/dist/BaseIntegrationConnector.d.ts +26 -2
  2. package/dist/BaseIntegrationConnector.d.ts.map +1 -1
  3. package/dist/BaseIntegrationConnector.js +145 -23
  4. package/dist/BaseIntegrationConnector.js.map +1 -1
  5. package/dist/BaseRESTIntegrationConnector.d.ts +62 -8
  6. package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
  7. package/dist/BaseRESTIntegrationConnector.js +200 -20
  8. package/dist/BaseRESTIntegrationConnector.js.map +1 -1
  9. package/dist/BatchIdentity.d.ts +47 -0
  10. package/dist/BatchIdentity.d.ts.map +1 -0
  11. package/dist/BatchIdentity.js +78 -0
  12. package/dist/BatchIdentity.js.map +1 -0
  13. package/dist/DeclaredSampleMerge.d.ts +74 -0
  14. package/dist/DeclaredSampleMerge.d.ts.map +1 -0
  15. package/dist/DeclaredSampleMerge.js +104 -0
  16. package/dist/DeclaredSampleMerge.js.map +1 -0
  17. package/dist/DiscoveryWatchdog.d.ts +103 -0
  18. package/dist/DiscoveryWatchdog.d.ts.map +1 -0
  19. package/dist/DiscoveryWatchdog.js +166 -0
  20. package/dist/DiscoveryWatchdog.js.map +1 -0
  21. package/dist/FieldMapValidation.d.ts +40 -0
  22. package/dist/FieldMapValidation.d.ts.map +1 -0
  23. package/dist/FieldMapValidation.js +58 -0
  24. package/dist/FieldMapValidation.js.map +1 -0
  25. package/dist/FieldMappingEngine.d.ts +1 -13
  26. package/dist/FieldMappingEngine.d.ts.map +1 -1
  27. package/dist/FieldMappingEngine.js +18 -3
  28. package/dist/FieldMappingEngine.js.map +1 -1
  29. package/dist/IntegrationConnectorCreationPipeline.d.ts +20 -0
  30. package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
  31. package/dist/IntegrationConnectorCreationPipeline.js +203 -30
  32. package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
  33. package/dist/IntegrationEngine.d.ts +204 -1
  34. package/dist/IntegrationEngine.d.ts.map +1 -1
  35. package/dist/IntegrationEngine.js +1224 -262
  36. package/dist/IntegrationEngine.js.map +1 -1
  37. package/dist/IntegrationSchemaSync.d.ts +54 -2
  38. package/dist/IntegrationSchemaSync.d.ts.map +1 -1
  39. package/dist/IntegrationSchemaSync.js +122 -16
  40. package/dist/IntegrationSchemaSync.js.map +1 -1
  41. package/dist/KeylessRecordGuard.d.ts +56 -0
  42. package/dist/KeylessRecordGuard.d.ts.map +1 -0
  43. package/dist/KeylessRecordGuard.js +80 -0
  44. package/dist/KeylessRecordGuard.js.map +1 -0
  45. package/dist/ResumeConcurrency.d.ts +46 -0
  46. package/dist/ResumeConcurrency.d.ts.map +1 -0
  47. package/dist/ResumeConcurrency.js +74 -0
  48. package/dist/ResumeConcurrency.js.map +1 -0
  49. package/dist/RetryAfter.d.ts +50 -0
  50. package/dist/RetryAfter.d.ts.map +1 -0
  51. package/dist/RetryAfter.js +127 -0
  52. package/dist/RetryAfter.js.map +1 -0
  53. package/dist/RetryRunner.d.ts +26 -2
  54. package/dist/RetryRunner.d.ts.map +1 -1
  55. package/dist/RetryRunner.js +11 -3
  56. package/dist/RetryRunner.js.map +1 -1
  57. package/dist/StreamingDiscovery.d.ts +11 -0
  58. package/dist/StreamingDiscovery.d.ts.map +1 -1
  59. package/dist/StreamingDiscovery.js +13 -3
  60. package/dist/StreamingDiscovery.js.map +1 -1
  61. package/dist/SyncDirectives.d.ts +66 -0
  62. package/dist/SyncDirectives.d.ts.map +1 -0
  63. package/dist/SyncDirectives.js +123 -0
  64. package/dist/SyncDirectives.js.map +1 -0
  65. package/dist/SyncLogger.d.ts +2 -1
  66. package/dist/SyncLogger.d.ts.map +1 -1
  67. package/dist/SyncLogger.js +1 -0
  68. package/dist/SyncLogger.js.map +1 -1
  69. package/dist/WatermarkService.d.ts +15 -0
  70. package/dist/WatermarkService.d.ts.map +1 -1
  71. package/dist/WatermarkService.js +26 -0
  72. package/dist/WatermarkService.js.map +1 -1
  73. package/dist/WriteSerializer.d.ts +44 -0
  74. package/dist/WriteSerializer.d.ts.map +1 -0
  75. package/dist/WriteSerializer.js +70 -0
  76. package/dist/WriteSerializer.js.map +1 -0
  77. package/dist/index.d.ts +10 -1
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +8 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/types.d.ts +45 -1
  82. package/dist/types.d.ts.map +1 -1
  83. package/dist/types.js +66 -1
  84. package/dist/types.js.map +1 -1
  85. package/package.json +7 -7
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Start-of-run validation for the MJ side of a field map.
3
+ *
4
+ * A field map's `DestinationFieldName` is the MJ column, in BOTH directions — pull writes it,
5
+ * push reads it back out to build the external payload. Nothing checks that the column exists.
6
+ * `BaseEntity.Set` looks the field up and, when it finds nothing, returns without doing anything
7
+ * and without saying anything: the value is dropped for every record, the entity is never dirtied
8
+ * by it, the save succeeds, and the run reports the rows as written. The observable result is a
9
+ * column's worth of data that never arrives, on a sync that reports success — and if that field is
10
+ * a key field, every record is re-created on the next run because it can never be matched again.
11
+ *
12
+ * This is the cheap check that turns that into one warning per map per run: the map is metadata,
13
+ * so it is verifiable the moment the run knows its entity, long before the first record is fetched.
14
+ * The decision is kept pure so it is tested without a provider or an entity.
15
+ */
16
+ /**
17
+ * Returns the ACTIVE field maps whose destination column does not exist on the target entity.
18
+ *
19
+ * Matching is case-insensitive, because `BaseEntity` resolves field names case-insensitively — a
20
+ * map that differs only in casing binds fine and is not a finding. An empty `entityFieldNames`
21
+ * means the caller could not resolve the entity at all; that is a different (already reported)
22
+ * condition, so nothing is returned rather than flagging every map.
23
+ */
24
+ export function FindUnbindableFieldMaps(fieldMaps, entityFieldNames) {
25
+ if (entityFieldNames.length === 0)
26
+ return [];
27
+ const known = new Set(entityFieldNames.map(n => n.toLowerCase()));
28
+ const unbindable = [];
29
+ for (const fm of fieldMaps) {
30
+ if (fm.Status !== 'Active')
31
+ continue; // an inactive map is never applied
32
+ const dest = fm.DestinationFieldName;
33
+ if (!dest)
34
+ continue; // no destination is a different defect
35
+ if (known.has(dest.toLowerCase()))
36
+ continue;
37
+ unbindable.push({
38
+ SourceFieldName: fm.SourceFieldName,
39
+ DestinationFieldName: dest,
40
+ IsKeyField: fm.IsKeyField === true,
41
+ });
42
+ }
43
+ return unbindable;
44
+ }
45
+ /** The operator-facing sentence for a set of unbindable maps on one entity map. */
46
+ export function DescribeUnbindableFieldMaps(unbindable, externalObjectName, entityName) {
47
+ const pairs = unbindable.map(u => `${u.SourceFieldName} -> ${u.DestinationFieldName}${u.IsKeyField ? ' (KEY)' : ''}`);
48
+ const keyCount = unbindable.filter(u => u.IsKeyField).length;
49
+ return (`${unbindable.length} active field map(s) for '${externalObjectName}' target a column that does not exist ` +
50
+ `on '${entityName}': ${pairs.join(', ')}. Those values are silently dropped for every record — the write ` +
51
+ `succeeds without them` +
52
+ (keyCount > 0
53
+ ? `, and because ${keyCount === 1 ? 'one of them is a KEY field' : `${keyCount} of them are KEY fields`}, ` +
54
+ `records cannot be matched on a later run and will be re-created.`
55
+ : `.`) +
56
+ ` Apply the schema so the column exists, or point the map at a column that does.`);
57
+ }
58
+ //# sourceMappingURL=FieldMapValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldMapValidation.js","sourceRoot":"","sources":["../src/FieldMapValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACnC,SAAyC,EACzC,gBAAmC;IAEnC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS,CAAa,mCAAmC;QACrF,MAAM,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC;QACrC,IAAI,CAAC,IAAI;YAAE,SAAS,CAA8B,uCAAuC;QACzF,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QAC5C,UAAU,CAAC,IAAI,CAAC;YACZ,eAAe,EAAE,EAAE,CAAC,eAAe;YACnC,oBAAoB,EAAE,IAAI;YAC1B,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI;SACrC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,2BAA2B,CACvC,UAAyC,EACzC,kBAA0B,EAC1B,UAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,OAAO,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtH,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC7D,OAAO,CACH,GAAG,UAAU,CAAC,MAAM,6BAA6B,kBAAkB,wCAAwC;QAC3G,OAAO,UAAU,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mEAAmE;QAC1G,uBAAuB;QACvB,CAAC,QAAQ,GAAG,CAAC;YACT,CAAC,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,GAAG,QAAQ,yBAAyB,IAAI;gBACzG,kEAAkE;YACpE,CAAC,CAAC,GAAG,CAAC;QACV,iFAAiF,CACpF,CAAC;AACN,CAAC"}
@@ -1,17 +1,5 @@
1
1
  import type { ICompanyIntegrationFieldMap } from './entity-types.js';
2
2
  import type { ExternalRecord, MappedRecord } from './types.js';
3
- /**
4
- * Engine responsible for applying field-level mappings and transformations from external records to
5
- * MJ entity fields.
6
- *
7
- * The per-value transform pipeline (direct / regex / split / combine / lookup / format / coerce /
8
- * substring / custom) is owned by the shared {@link FieldTransformEngine} in `@memberjunction/global`
9
- * and reused here, so integration sync and the rules-based bulk-update processor run the *exact same*
10
- * transform implementation — one place to fix, one place to extend. This engine keeps only the
11
- * integration-specific concerns: source flattening, field-map iteration, and unmapped-field overflow
12
- * capture. See the Field Rules guide in `@memberjunction/global` for the shared engine, and
13
- * `EntityFieldRules` in `@memberjunction/core` for the metadata-aware entity-update sibling.
14
- */
15
3
  export declare class FieldMappingEngine {
16
4
  /** The shared transform pipeline. Holds its own LRU cache of compiled custom expressions. */
17
5
  private readonly transformEngine;
@@ -24,7 +12,7 @@ export declare class FieldMappingEngine {
24
12
  * @param entityName - Target MJ entity name
25
13
  * @returns Array of mapped records with transformed field values
26
14
  */
27
- Apply(records: ExternalRecord[], fieldMaps: ICompanyIntegrationFieldMap[], entityName: string): MappedRecord[];
15
+ Apply(records: ExternalRecord[], fieldMaps: ICompanyIntegrationFieldMap[], entityName: string, excludedSourceNames?: ReadonlySet<string>): MappedRecord[];
28
16
  /**
29
17
  * Maps a single external record through all active field mappings.
30
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FieldMappingEngine.d.ts","sourceRoot":"","sources":["../src/FieldMappingEngine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC3B,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAE9D;;;;;;;;OAQG;IACI,KAAK,CACR,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,2BAA2B,EAAE,EACxC,UAAU,EAAE,MAAM,GACnB,YAAY,EAAE;IAKjB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAWjC"}
1
+ {"version":3,"file":"FieldMappingEngine.d.ts","sourceRoot":"","sources":["../src/FieldMappingEngine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkB/D,qBAAa,kBAAkB;IAC3B,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA8B;IAE9D;;;;;;;;OAQG;IACI,KAAK,CACR,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,2BAA2B,EAAE,EACxC,UAAU,EAAE,MAAM,EAClB,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1C,YAAY,EAAE;IAMjB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqDvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAWjC"}
@@ -1,5 +1,6 @@
1
1
  import { FieldTransformEngine } from '@memberjunction/global';
2
2
  import { computeUnmappedFields } from './CustomOverflow.js';
3
+ import { StripExcludedFields } from './SyncDirectives.js';
3
4
  import { flattenRecord, hasNestedObject } from './RecordFlatten.js';
4
5
  /**
5
6
  * Engine responsible for applying field-level mappings and transformations from external records to
@@ -13,6 +14,8 @@ import { flattenRecord, hasNestedObject } from './RecordFlatten.js';
13
14
  * capture. See the Field Rules guide in `@memberjunction/global` for the shared engine, and
14
15
  * `EntityFieldRules` in `@memberjunction/core` for the metadata-aware entity-update sibling.
15
16
  */
17
+ /** Shared empty set for the common no-exclusions call. */
18
+ const EMPTY_EXCLUSIONS = new Set();
16
19
  export class FieldMappingEngine {
17
20
  constructor() {
18
21
  /** The shared transform pipeline. Holds its own LRU cache of compiled custom expressions. */
@@ -27,14 +30,26 @@ export class FieldMappingEngine {
27
30
  * @param entityName - Target MJ entity name
28
31
  * @returns Array of mapped records with transformed field values
29
32
  */
30
- Apply(records, fieldMaps, entityName) {
33
+ Apply(records, fieldMaps, entityName, excludedSourceNames) {
31
34
  const activeMaps = fieldMaps.filter(fm => fm.Status === 'Active');
32
- return records.map(record => this.MapSingleRecord(record, activeMaps, entityName));
35
+ const excluded = excludedSourceNames ?? EMPTY_EXCLUSIONS;
36
+ return records.map(record => this.MapSingleRecord(record, activeMaps, entityName, excluded));
33
37
  }
34
38
  /**
35
39
  * Maps a single external record through all active field mappings.
36
40
  */
37
- MapSingleRecord(record, fieldMaps, entityName) {
41
+ MapSingleRecord(record, fieldMaps, entityName, excludedSourceNames) {
42
+ // Field-level exclusions strip BEFORE flatten and BEFORE mapping, so an excluded
43
+ // key reaches neither MappedFields, nor computeUnmappedFields (-> CustomOverflow),
44
+ // nor the content hash (whose basis is MappedFields). Deactivating a field map
45
+ // does NOT do this - the unmapped key would flow into overflow instead.
46
+ // No-exclusions and no-match paths return the original object: zero allocation.
47
+ if (excludedSourceNames.size > 0) {
48
+ const stripped = StripExcludedFields(record.Fields, excludedSourceNames);
49
+ if (stripped !== record.Fields) {
50
+ record = { ...record, Fields: stripped };
51
+ }
52
+ }
38
53
  // Flatten nested source objects to scalar columns (e.g. checkin_question.id →
39
54
  // checkin_question_id) BEFORE mapping. The match keys on the mapped PK VALUE
40
55
  // (MatchEngine.FindByKeyFields), so an object-valued source field would produce a
@@ -1 +1 @@
1
- {"version":3,"file":"FieldMappingEngine.js","sourceRoot":"","sources":["../src/FieldMappingEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldMappingEngine.js","sourceRoot":"","sources":["../src/FieldMappingEngine.ts"],"names":[],"mappings":"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"}
@@ -204,6 +204,26 @@ export declare class IntegrationConnectorCreationPipeline {
204
204
  private runInternal;
205
205
  private StageConnectionTest;
206
206
  private StageIntrospect;
207
+ /**
208
+ * Samples a DECLARED object over the read path and merges the result into it IN PLACE.
209
+ *
210
+ * Sampling is UNCONDITIONAL — it used to run only for a declared object with no fields, a gate
211
+ * on the wrong question, because streaming answers three things and a declaration can only
212
+ * pre-answer one of them. A declared key IS authoritative; which fields the source actually
213
+ * sends, and how wide their values are, only the data knows.
214
+ *
215
+ * The merge is one-directional (see DeclaredSampleMerge): sampling fills gaps and widens, never
216
+ * overrides. A fetch failure leaves the declaration exactly as it was, so the worst case is the
217
+ * behaviour that shipped before sampling existed.
218
+ */
219
+ /**
220
+ * Surfaces a silent degradation: streaming failed, so the fields came from the catalog's own
221
+ * description instead of from records. That distinction is the whole value of sampling — the
222
+ * catalog states no observed widths — but from the outside the two are indistinguishable, so
223
+ * without this an object quietly keeps a guessed width and drops every longer value at sync.
224
+ */
225
+ private ReportSampleFallback;
226
+ private SampleDeclaredObjectInPlace;
207
227
  private StagePersist;
208
228
  private StagePKClassify;
209
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationConnectorCreationPipeline.d.ts","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationConnectorCreationPipeline.d.ts","sourceRoot":"","sources":["../src/IntegrationConnectorCreationPipeline.ts"],"names":[],"mappings":"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"}
@@ -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();
@@ -465,6 +625,19 @@ export class IntegrationConnectorCreationPipeline {
465
625
  for (const fieldLog of persistResult.FieldMergeLog) {
466
626
  emitter.fieldAdded(fieldLog.ObjectName, fieldLog.FieldName, fieldLog.EffectiveSource);
467
627
  }
628
+ // A comprehensive refresh deactivates declared objects/fields it did not observe. That is
629
+ // the intended behaviour, but it is also the point where a connector's declared field stops
630
+ // being materialized by every later apply — so say which ones, on the progress stream the
631
+ // caller is already reading, instead of only in a server console line.
632
+ if (persistResult.ObjectsDeactivated.length > 0 || persistResult.FieldsDeactivated.length > 0) {
633
+ emitter.warning('Persist', 'DECLARED_ROWS_DEACTIVATED', `${persistResult.ObjectsDeactivated.length} object(s) and ${persistResult.FieldsDeactivated.length} ` +
634
+ `field(s) were declared but not observed by this authoritative discovery, so they were deactivated ` +
635
+ `(never deleted) and will not be materialized by a later apply until they are observed again or ` +
636
+ `re-enabled.`, {
637
+ objects: persistResult.ObjectsDeactivated,
638
+ fields: persistResult.FieldsDeactivated,
639
+ });
640
+ }
468
641
  emitter.stageComplete('Persist', {
469
642
  processed: persistResult.ObjectsCreated + persistResult.ObjectsUpdated,
470
643
  succeeded: persistResult.ObjectsCreated + persistResult.ObjectsUpdated,
@@ -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,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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"}