@memberjunction/integration-engine 5.8.0 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BaseIntegrationConnector.d.ts +35 -0
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +22 -3
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +222 -0
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -0
- package/dist/BaseRESTIntegrationConnector.js +482 -0
- package/dist/BaseRESTIntegrationConnector.js.map +1 -0
- package/dist/ConnectorFactory.d.ts +8 -10
- package/dist/ConnectorFactory.d.ts.map +1 -1
- package/dist/ConnectorFactory.js +9 -17
- package/dist/ConnectorFactory.js.map +1 -1
- package/dist/{IntegrationOrchestrator.d.ts → IntegrationEngine.d.ts} +53 -6
- package/dist/IntegrationEngine.d.ts.map +1 -0
- package/dist/{IntegrationOrchestrator.js → IntegrationEngine.js} +155 -26
- package/dist/IntegrationEngine.js.map +1 -0
- package/dist/MatchEngine.d.ts +1 -0
- package/dist/MatchEngine.d.ts.map +1 -1
- package/dist/MatchEngine.js +8 -3
- package/dist/MatchEngine.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/IntegrationOrchestrator.d.ts.map +0 -1
- package/dist/IntegrationOrchestrator.js.map +0 -1
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import { type UserInfo } from '@memberjunction/core';
|
|
1
|
+
import { IMetadataProvider, type UserInfo } from '@memberjunction/core';
|
|
2
|
+
import { BaseSingleton } from '@memberjunction/global';
|
|
3
|
+
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
4
|
+
import type { MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationSyncWatermarkEntity, MJIntegrationEntity, MJIntegrationSourceTypeEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity } from '@memberjunction/core-entities';
|
|
2
5
|
import type { SyncResult, SyncTriggerType, OnProgressCallback, OnNotificationCallback } from './types.js';
|
|
3
6
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
7
|
+
* Server-side Integration Engine.
|
|
8
|
+
*
|
|
9
|
+
* Wraps IntegrationEngineBase (cached metadata) via composition and provides
|
|
10
|
+
* the full sync orchestration pipeline: fetch → map → match → validate → apply.
|
|
11
|
+
*
|
|
12
|
+
* Pattern mirrors AIEngine wrapping AIEngineBase.
|
|
13
|
+
*
|
|
14
|
+
* Usage:
|
|
15
|
+
* await IntegrationEngine.Instance.Config(false, contextUser);
|
|
16
|
+
* const result = await IntegrationEngine.Instance.RunSync(companyIntegrationID, contextUser);
|
|
6
17
|
*/
|
|
7
|
-
export declare class
|
|
18
|
+
export declare class IntegrationEngine extends BaseSingleton<IntegrationEngine> {
|
|
19
|
+
constructor();
|
|
8
20
|
private readonly fieldMappingEngine;
|
|
9
21
|
private readonly matchEngine;
|
|
10
22
|
private readonly watermarkService;
|
|
@@ -79,13 +91,19 @@ export declare class IntegrationOrchestrator {
|
|
|
79
91
|
*/
|
|
80
92
|
private DeleteRecord;
|
|
81
93
|
/**
|
|
82
|
-
* Builds a CompositeKey for a
|
|
94
|
+
* Builds a CompositeKey for a record lookup.
|
|
95
|
+
* Integration tables use the natural PK field from the source system.
|
|
83
96
|
*/
|
|
84
97
|
private BuildCompositeKey;
|
|
85
98
|
/**
|
|
86
99
|
* Sets fields on a BaseEntity instance from a field value map.
|
|
87
100
|
*/
|
|
88
101
|
private SetEntityFields;
|
|
102
|
+
/**
|
|
103
|
+
* Sets standard integration columns (__mj_integration_*) on target entities.
|
|
104
|
+
* Silently skips if the entity doesn't have these columns (e.g., __mj targets).
|
|
105
|
+
*/
|
|
106
|
+
private SetStandardIntegrationFields;
|
|
89
107
|
/**
|
|
90
108
|
* Creates or updates a CompanyIntegrationRecordMap entry to track the external↔MJ mapping.
|
|
91
109
|
*/
|
|
@@ -122,5 +140,34 @@ export declare class IntegrationOrchestrator {
|
|
|
122
140
|
* Invokes the notification callback without propagating exceptions.
|
|
123
141
|
*/
|
|
124
142
|
private safeNotify;
|
|
143
|
+
protected get Base(): IntegrationEngineBase;
|
|
144
|
+
/**
|
|
145
|
+
* Configures the engine by loading all integration metadata.
|
|
146
|
+
* Delegates to IntegrationEngineBase.Config().
|
|
147
|
+
*/
|
|
148
|
+
Config(forceRefresh?: boolean, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<void>;
|
|
149
|
+
get Integrations(): MJIntegrationEntity[];
|
|
150
|
+
get SourceTypes(): MJIntegrationSourceTypeEntity[];
|
|
151
|
+
get CompanyIntegrations(): MJCompanyIntegrationEntity[];
|
|
152
|
+
get EntityMaps(): MJCompanyIntegrationEntityMapEntity[];
|
|
153
|
+
get FieldMaps(): MJCompanyIntegrationFieldMapEntity[];
|
|
154
|
+
get Watermarks(): MJCompanyIntegrationSyncWatermarkEntity[];
|
|
155
|
+
GetIntegrationByID(id: string): MJIntegrationEntity | undefined;
|
|
156
|
+
GetIntegrationByName(name: string): MJIntegrationEntity | undefined;
|
|
157
|
+
GetCompanyIntegrationByID(id: string): MJCompanyIntegrationEntity | undefined;
|
|
158
|
+
GetCompanyIntegrationsByIntegrationID(integrationID: string): MJCompanyIntegrationEntity[];
|
|
159
|
+
GetEntityMapsForCompanyIntegration(companyIntegrationID: string): MJCompanyIntegrationEntityMapEntity[];
|
|
160
|
+
GetFieldMapsForEntityMap(entityMapID: string): MJCompanyIntegrationFieldMapEntity[];
|
|
161
|
+
GetEnabledEntityMaps(companyIntegrationID: string): MJCompanyIntegrationEntityMapEntity[];
|
|
162
|
+
GetIntegrationForCompanyIntegration(companyIntegrationID: string): MJIntegrationEntity | undefined;
|
|
163
|
+
get IntegrationObjects(): MJIntegrationObjectEntity[];
|
|
164
|
+
get IntegrationObjectFields(): MJIntegrationObjectFieldEntity[];
|
|
165
|
+
GetIntegrationObjectsByIntegrationID(integrationID: string): MJIntegrationObjectEntity[];
|
|
166
|
+
GetIntegrationObject(integrationID: string, objectName: string): MJIntegrationObjectEntity | undefined;
|
|
167
|
+
GetIntegrationObjectByID(objectID: string): MJIntegrationObjectEntity | undefined;
|
|
168
|
+
GetIntegrationObjectFields(objectID: string): MJIntegrationObjectFieldEntity[];
|
|
169
|
+
GetActiveIntegrationObjects(integrationID: string): MJIntegrationObjectEntity[];
|
|
170
|
+
GetObjectsInDependencyOrder(integrationID: string): MJIntegrationObjectEntity[];
|
|
171
|
+
static get Instance(): IntegrationEngine;
|
|
125
172
|
}
|
|
126
|
-
//# sourceMappingURL=
|
|
173
|
+
//# sourceMappingURL=IntegrationEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntegrationEngine.d.ts","sourceRoot":"","sources":["../src/IntegrationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CompositeKey, Metadata, RunView } from '@memberjunction/core';
|
|
2
|
+
import { BaseSingleton } from '@memberjunction/global';
|
|
3
|
+
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
2
4
|
import { ClassifyError } from './types.js';
|
|
3
5
|
import { ConnectorFactory } from './ConnectorFactory.js';
|
|
4
6
|
import { FieldMappingEngine } from './FieldMappingEngine.js';
|
|
@@ -7,11 +9,20 @@ import { WatermarkService } from './WatermarkService.js';
|
|
|
7
9
|
/** Default batch size for fetching records from external systems */
|
|
8
10
|
const DEFAULT_BATCH_SIZE = 200;
|
|
9
11
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
+
* Server-side Integration Engine.
|
|
13
|
+
*
|
|
14
|
+
* Wraps IntegrationEngineBase (cached metadata) via composition and provides
|
|
15
|
+
* the full sync orchestration pipeline: fetch → map → match → validate → apply.
|
|
16
|
+
*
|
|
17
|
+
* Pattern mirrors AIEngine wrapping AIEngineBase.
|
|
18
|
+
*
|
|
19
|
+
* Usage:
|
|
20
|
+
* await IntegrationEngine.Instance.Config(false, contextUser);
|
|
21
|
+
* const result = await IntegrationEngine.Instance.RunSync(companyIntegrationID, contextUser);
|
|
12
22
|
*/
|
|
13
|
-
export class
|
|
23
|
+
export class IntegrationEngine extends BaseSingleton {
|
|
14
24
|
constructor() {
|
|
25
|
+
super();
|
|
15
26
|
this.fieldMappingEngine = new FieldMappingEngine();
|
|
16
27
|
this.matchEngine = new MatchEngine();
|
|
17
28
|
this.watermarkService = new WatermarkService();
|
|
@@ -34,18 +45,18 @@ export class IntegrationOrchestrator {
|
|
|
34
45
|
*/
|
|
35
46
|
async RunSync(companyIntegrationID, contextUser, triggerType = 'Manual', onProgress, onNotification) {
|
|
36
47
|
const lockKey = companyIntegrationID.toLowerCase();
|
|
37
|
-
const existing =
|
|
48
|
+
const existing = IntegrationEngine.activeSyncs.get(lockKey);
|
|
38
49
|
if (existing) {
|
|
39
|
-
console.warn(`[
|
|
50
|
+
console.warn(`[IntegrationEngine] Sync already running for ${lockKey}, waiting...`);
|
|
40
51
|
return existing;
|
|
41
52
|
}
|
|
42
53
|
const syncPromise = this.executeSyncInternal(companyIntegrationID, contextUser, triggerType, onProgress, onNotification);
|
|
43
|
-
|
|
54
|
+
IntegrationEngine.activeSyncs.set(lockKey, syncPromise);
|
|
44
55
|
try {
|
|
45
56
|
return await syncPromise;
|
|
46
57
|
}
|
|
47
58
|
finally {
|
|
48
|
-
|
|
59
|
+
IntegrationEngine.activeSyncs.delete(lockKey);
|
|
49
60
|
}
|
|
50
61
|
}
|
|
51
62
|
/**
|
|
@@ -69,7 +80,7 @@ export class IntegrationOrchestrator {
|
|
|
69
80
|
*/
|
|
70
81
|
async LoadRunConfiguration(companyIntegrationID, contextUser) {
|
|
71
82
|
const rv = new RunView();
|
|
72
|
-
const [ciResult, entityMapsResult, integrationsResult
|
|
83
|
+
const [ciResult, entityMapsResult, integrationsResult] = await rv.RunViews([
|
|
73
84
|
{
|
|
74
85
|
EntityName: 'MJ: Company Integrations',
|
|
75
86
|
ExtraFilter: `ID='${companyIntegrationID}'`,
|
|
@@ -87,11 +98,6 @@ export class IntegrationOrchestrator {
|
|
|
87
98
|
ExtraFilter: '',
|
|
88
99
|
ResultType: 'entity_object',
|
|
89
100
|
},
|
|
90
|
-
{
|
|
91
|
-
EntityName: 'MJ: Integration Source Types',
|
|
92
|
-
ExtraFilter: `Status='Active'`,
|
|
93
|
-
ResultType: 'entity_object',
|
|
94
|
-
},
|
|
95
101
|
], contextUser);
|
|
96
102
|
const companyIntegration = ciResult.Results[0];
|
|
97
103
|
if (!companyIntegration) {
|
|
@@ -102,7 +108,7 @@ export class IntegrationOrchestrator {
|
|
|
102
108
|
if (!integration) {
|
|
103
109
|
throw new Error(`Integration not found for CompanyIntegration: ${companyIntegrationID}`);
|
|
104
110
|
}
|
|
105
|
-
const connector = ConnectorFactory.Resolve(integration
|
|
111
|
+
const connector = ConnectorFactory.Resolve(integration);
|
|
106
112
|
return {
|
|
107
113
|
companyIntegration,
|
|
108
114
|
entityMaps: entityMapsResult.Results,
|
|
@@ -146,8 +152,24 @@ export class IntegrationOrchestrator {
|
|
|
146
152
|
const totalMaps = config.entityMaps.length;
|
|
147
153
|
for (let i = 0; i < totalMaps; i++) {
|
|
148
154
|
const entityMap = config.entityMaps[i];
|
|
149
|
-
|
|
150
|
-
|
|
155
|
+
try {
|
|
156
|
+
const mapResult = await this.ProcessSingleEntityMap(config, entityMap, run, contextUser, i, totalMaps, onProgress);
|
|
157
|
+
this.MergeResult(aggregate, mapResult);
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
const objName = entityMap.ExternalObjectName ?? String(entityMap.Get('ID'));
|
|
161
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
162
|
+
console.error(`[IntegrationEngine] Entity map '${objName}' failed: ${errMsg}`);
|
|
163
|
+
aggregate.RecordsErrored++;
|
|
164
|
+
aggregate.Errors.push({
|
|
165
|
+
ExternalID: objName,
|
|
166
|
+
ChangeType: 'Skip',
|
|
167
|
+
ErrorMessage: errMsg,
|
|
168
|
+
ErrorCode: 'CONNECTOR_ERROR',
|
|
169
|
+
Severity: 'Critical',
|
|
170
|
+
ExternalRecord: { ExternalID: objName, ObjectType: objName, Fields: {} },
|
|
171
|
+
});
|
|
172
|
+
}
|
|
151
173
|
}
|
|
152
174
|
return aggregate;
|
|
153
175
|
}
|
|
@@ -163,7 +185,7 @@ export class IntegrationOrchestrator {
|
|
|
163
185
|
if (initialWatermark && watermark) {
|
|
164
186
|
const watermarkType = (watermark.WatermarkType ?? 'Timestamp');
|
|
165
187
|
if (!this.watermarkService.ValidateWatermark(initialWatermark, watermarkType)) {
|
|
166
|
-
console.warn(`[
|
|
188
|
+
console.warn(`[IntegrationEngine] Invalid watermark '${initialWatermark}' for EntityMap ${entityMap.Get('ID')}, resetting to full fetch`);
|
|
167
189
|
initialWatermark = null;
|
|
168
190
|
}
|
|
169
191
|
}
|
|
@@ -192,7 +214,7 @@ export class IntegrationOrchestrator {
|
|
|
192
214
|
// A7: Batch size enforcement — truncate if connector returns more than MaxBatchSize
|
|
193
215
|
let batchRecords = batch.Records;
|
|
194
216
|
if (batchRecords.length > this.MaxBatchSize) {
|
|
195
|
-
console.warn(`[
|
|
217
|
+
console.warn(`[IntegrationEngine] Connector returned ${batchRecords.length} records, exceeding MaxBatchSize of ${this.MaxBatchSize}. Truncating.`);
|
|
196
218
|
batchRecords = batchRecords.slice(0, this.MaxBatchSize);
|
|
197
219
|
}
|
|
198
220
|
const mapped = this.fieldMappingEngine.Apply(batchRecords, fieldMaps, entityMap.Entity);
|
|
@@ -297,13 +319,15 @@ export class IntegrationOrchestrator {
|
|
|
297
319
|
const entity = await md.GetEntityObject(record.MJEntityName, contextUser);
|
|
298
320
|
entity.NewRecord();
|
|
299
321
|
this.SetEntityFields(entity, record.MappedFields);
|
|
322
|
+
this.SetStandardIntegrationFields(entity, record);
|
|
300
323
|
// A5: Pre-write validation
|
|
301
324
|
this.validateEntity(entity, record.MJEntityName);
|
|
302
325
|
const saved = await entity.Save();
|
|
303
326
|
if (!saved) {
|
|
304
327
|
throw new Error(`Failed to create ${record.MJEntityName} record`);
|
|
305
328
|
}
|
|
306
|
-
|
|
329
|
+
// Use the external ID as the entity record identifier in the record map
|
|
330
|
+
await this.SaveRecordMap(companyIntegration.Get('ID'), record.ExternalRecord.ExternalID, entityMap.EntityID, record.ExternalRecord.ExternalID, contextUser);
|
|
307
331
|
}
|
|
308
332
|
/**
|
|
309
333
|
* Updates an existing MJ record with pre-write validation.
|
|
@@ -314,11 +338,15 @@ export class IntegrationOrchestrator {
|
|
|
314
338
|
}
|
|
315
339
|
const md = new Metadata();
|
|
316
340
|
const entity = await md.GetEntityObject(record.MJEntityName, contextUser);
|
|
317
|
-
|
|
341
|
+
// Use the entity's actual PK field (SourceRecordID for integration tables, ID for __mj targets)
|
|
342
|
+
const entityInfo = md.Entities.find(e => e.Name === record.MJEntityName);
|
|
343
|
+
const pkFieldName = entityInfo?.FirstPrimaryKey?.Name ?? 'ID';
|
|
344
|
+
const loaded = await entity.InnerLoad(this.BuildCompositeKey(record.MatchedMJRecordID, pkFieldName));
|
|
318
345
|
if (!loaded) {
|
|
319
346
|
throw new Error(`Failed to load ${record.MJEntityName} record ${record.MatchedMJRecordID}`);
|
|
320
347
|
}
|
|
321
348
|
this.SetEntityFields(entity, record.MappedFields);
|
|
349
|
+
this.SetStandardIntegrationFields(entity, record);
|
|
322
350
|
// A5: Pre-write validation
|
|
323
351
|
this.validateEntity(entity, record.MJEntityName);
|
|
324
352
|
const saved = await entity.Save();
|
|
@@ -350,7 +378,9 @@ export class IntegrationOrchestrator {
|
|
|
350
378
|
return;
|
|
351
379
|
const md = new Metadata();
|
|
352
380
|
const entity = await md.GetEntityObject(record.MJEntityName, contextUser);
|
|
353
|
-
const
|
|
381
|
+
const entityInfo = md.Entities.find(e => e.Name === record.MJEntityName);
|
|
382
|
+
const pkFieldName = entityInfo?.FirstPrimaryKey?.Name ?? 'ID';
|
|
383
|
+
const loaded = await entity.InnerLoad(this.BuildCompositeKey(record.MatchedMJRecordID, pkFieldName));
|
|
354
384
|
if (!loaded) {
|
|
355
385
|
throw new Error(`Failed to load ${record.MJEntityName} for deletion: ${record.MatchedMJRecordID}`);
|
|
356
386
|
}
|
|
@@ -360,11 +390,12 @@ export class IntegrationOrchestrator {
|
|
|
360
390
|
}
|
|
361
391
|
}
|
|
362
392
|
/**
|
|
363
|
-
* Builds a CompositeKey for a
|
|
393
|
+
* Builds a CompositeKey for a record lookup.
|
|
394
|
+
* Integration tables use the natural PK field from the source system.
|
|
364
395
|
*/
|
|
365
|
-
BuildCompositeKey(id) {
|
|
396
|
+
BuildCompositeKey(id, fieldName = 'ID') {
|
|
366
397
|
const key = new CompositeKey();
|
|
367
|
-
key.KeyValuePairs.push({ FieldName:
|
|
398
|
+
key.KeyValuePairs.push({ FieldName: fieldName, Value: id });
|
|
368
399
|
return key;
|
|
369
400
|
}
|
|
370
401
|
/**
|
|
@@ -375,6 +406,20 @@ export class IntegrationOrchestrator {
|
|
|
375
406
|
entity.Set(fieldName, value);
|
|
376
407
|
}
|
|
377
408
|
}
|
|
409
|
+
/**
|
|
410
|
+
* Sets standard integration columns (__mj_integration_*) on target entities.
|
|
411
|
+
* Silently skips if the entity doesn't have these columns (e.g., __mj targets).
|
|
412
|
+
*/
|
|
413
|
+
SetStandardIntegrationFields(entity, _record) {
|
|
414
|
+
const fieldNames = entity.Fields?.map(f => f.Name) ?? [];
|
|
415
|
+
const hasField = (name) => fieldNames.includes(name);
|
|
416
|
+
if (hasField('__mj_integration_LastSyncedAt')) {
|
|
417
|
+
entity.Set('__mj_integration_LastSyncedAt', new Date().toISOString());
|
|
418
|
+
}
|
|
419
|
+
if (hasField('__mj_integration_SyncStatus')) {
|
|
420
|
+
entity.Set('__mj_integration_SyncStatus', 'Active');
|
|
421
|
+
}
|
|
422
|
+
}
|
|
378
423
|
/**
|
|
379
424
|
* Creates or updates a CompanyIntegrationRecordMap entry to track the external↔MJ mapping.
|
|
380
425
|
*/
|
|
@@ -541,8 +586,92 @@ export class IntegrationOrchestrator {
|
|
|
541
586
|
callback(notification);
|
|
542
587
|
}
|
|
543
588
|
catch (notifyErr) {
|
|
544
|
-
console.warn('[
|
|
589
|
+
console.warn('[IntegrationEngine] Notification callback threw:', notifyErr);
|
|
545
590
|
}
|
|
546
591
|
}
|
|
592
|
+
// ── Composition: delegate metadata to IntegrationEngineBase ───────
|
|
593
|
+
get Base() {
|
|
594
|
+
return IntegrationEngineBase.Instance;
|
|
595
|
+
}
|
|
596
|
+
/**
|
|
597
|
+
* Configures the engine by loading all integration metadata.
|
|
598
|
+
* Delegates to IntegrationEngineBase.Config().
|
|
599
|
+
*/
|
|
600
|
+
async Config(forceRefresh, contextUser, provider) {
|
|
601
|
+
await IntegrationEngineBase.Instance.Config(forceRefresh ?? false, contextUser, provider);
|
|
602
|
+
}
|
|
603
|
+
// ── Metadata Accessors (delegated to Base) ────────────────────────
|
|
604
|
+
get Integrations() {
|
|
605
|
+
return this.Base.Integrations;
|
|
606
|
+
}
|
|
607
|
+
get SourceTypes() {
|
|
608
|
+
return this.Base.SourceTypes;
|
|
609
|
+
}
|
|
610
|
+
get CompanyIntegrations() {
|
|
611
|
+
return this.Base.CompanyIntegrations;
|
|
612
|
+
}
|
|
613
|
+
get EntityMaps() {
|
|
614
|
+
return this.Base.EntityMaps;
|
|
615
|
+
}
|
|
616
|
+
get FieldMaps() {
|
|
617
|
+
return this.Base.FieldMaps;
|
|
618
|
+
}
|
|
619
|
+
get Watermarks() {
|
|
620
|
+
return this.Base.Watermarks;
|
|
621
|
+
}
|
|
622
|
+
// ── Convenience Lookups (delegated to Base) ───────────────────────
|
|
623
|
+
GetIntegrationByID(id) {
|
|
624
|
+
return this.Base.GetIntegrationByID(id);
|
|
625
|
+
}
|
|
626
|
+
GetIntegrationByName(name) {
|
|
627
|
+
return this.Base.GetIntegrationByName(name);
|
|
628
|
+
}
|
|
629
|
+
GetCompanyIntegrationByID(id) {
|
|
630
|
+
return this.Base.GetCompanyIntegrationByID(id);
|
|
631
|
+
}
|
|
632
|
+
GetCompanyIntegrationsByIntegrationID(integrationID) {
|
|
633
|
+
return this.Base.GetCompanyIntegrationsByIntegrationID(integrationID);
|
|
634
|
+
}
|
|
635
|
+
GetEntityMapsForCompanyIntegration(companyIntegrationID) {
|
|
636
|
+
return this.Base.GetEntityMapsForCompanyIntegration(companyIntegrationID);
|
|
637
|
+
}
|
|
638
|
+
GetFieldMapsForEntityMap(entityMapID) {
|
|
639
|
+
return this.Base.GetFieldMapsForEntityMap(entityMapID);
|
|
640
|
+
}
|
|
641
|
+
GetEnabledEntityMaps(companyIntegrationID) {
|
|
642
|
+
return this.Base.GetEnabledEntityMaps(companyIntegrationID);
|
|
643
|
+
}
|
|
644
|
+
GetIntegrationForCompanyIntegration(companyIntegrationID) {
|
|
645
|
+
return this.Base.GetIntegrationForCompanyIntegration(companyIntegrationID);
|
|
646
|
+
}
|
|
647
|
+
// ── Integration Object Metadata (delegated to Base) ──────────────
|
|
648
|
+
get IntegrationObjects() {
|
|
649
|
+
return this.Base.IntegrationObjects;
|
|
650
|
+
}
|
|
651
|
+
get IntegrationObjectFields() {
|
|
652
|
+
return this.Base.IntegrationObjectFields;
|
|
653
|
+
}
|
|
654
|
+
GetIntegrationObjectsByIntegrationID(integrationID) {
|
|
655
|
+
return this.Base.GetIntegrationObjectsByIntegrationID(integrationID);
|
|
656
|
+
}
|
|
657
|
+
GetIntegrationObject(integrationID, objectName) {
|
|
658
|
+
return this.Base.GetIntegrationObject(integrationID, objectName);
|
|
659
|
+
}
|
|
660
|
+
GetIntegrationObjectByID(objectID) {
|
|
661
|
+
return this.Base.GetIntegrationObjectByID(objectID);
|
|
662
|
+
}
|
|
663
|
+
GetIntegrationObjectFields(objectID) {
|
|
664
|
+
return this.Base.GetIntegrationObjectFields(objectID);
|
|
665
|
+
}
|
|
666
|
+
GetActiveIntegrationObjects(integrationID) {
|
|
667
|
+
return this.Base.GetActiveIntegrationObjects(integrationID);
|
|
668
|
+
}
|
|
669
|
+
GetObjectsInDependencyOrder(integrationID) {
|
|
670
|
+
return this.Base.GetObjectsInDependencyOrder(integrationID);
|
|
671
|
+
}
|
|
672
|
+
// ── Singleton ─────────────────────────────────────────────────────
|
|
673
|
+
static get Instance() {
|
|
674
|
+
return IntegrationEngine.getInstance();
|
|
675
|
+
}
|
|
547
676
|
}
|
|
548
|
-
//# sourceMappingURL=
|
|
677
|
+
//# sourceMappingURL=IntegrationEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntegrationEngine.js","sourceRoot":"","sources":["../src/IntegrationEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,QAAQ,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AA4BhF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,oEAAoE;AACpE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAgC;IACnE;QACI,KAAK,EAAE,CAAC;QAEK,uBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC9C,gBAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,qBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAK3D,uFAAuF;QAChF,iBAAY,GAAW,kBAAkB,CAAC;IATjD,CAAC;IAKD,sFAAsF;aAC9D,gBAAW,GAAG,IAAI,GAAG,EAA+B,AAAzC,CAA0C;IAK7E;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,OAAO,CAChB,oBAA4B,EAC5B,WAAqB,EACrB,cAA+B,QAAQ,EACvC,UAA+B,EAC/B,cAAuC;QAEvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,gDAAgD,OAAO,cAAc,CAAC,CAAC;YACpF,OAAO,QAAQ,CAAC;QACpB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CACxC,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAC7E,CAAC;QACF,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC;YACD,OAAO,MAAM,WAAW,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACP,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC7B,oBAA4B,EAC5B,WAAqB,EACrB,WAA4B,EAC5B,UAA+B,EAC/B,cAAuC;QAEvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,kBAAkB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE5F,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;YAClF,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YACjE,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAC1D,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAC9B,oBAA4B,EAC5B,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QAEzB,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC;YACvE;gBACI,UAAU,EAAE,0BAA0B;gBACtC,WAAW,EAAE,OAAO,oBAAoB,GAAG;gBAC3C,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,eAAe;aAC9B;YACD;gBACI,UAAU,EAAE,qCAAqC;gBACjD,WAAW,EAAE,yBAAyB,oBAAoB,yCAAyC;gBACnG,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,eAAe;aAC9B;YACD;gBACI,UAAU,EAAE,kBAAkB;gBAC9B,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,eAAe;aAC9B;SACJ,EAAE,WAAW,CAAC,CAAC;QAEhB,MAAM,kBAAkB,GAAI,QAAQ,CAAC,OAAwC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,oBAAoB,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,WAAW,GAAI,kBAAkB,CAAC,OAAiC;aACpE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,oBAAoB,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAExD,OAAO;YACH,kBAAkB;YAClB,UAAU,EAAE,gBAAgB,CAAC,OAAyC;YACtE,WAAW;YACX,SAAS;SACZ,CAAC;IACN,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CACzB,kBAA8C,EAC9C,WAA4B,EAC5B,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAChC,8BAA8B,EAC9B,WAAW,CACd,CAAC;QACF,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;QAC3B,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC;QACrB,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC3B,MAAwB,EACxB,GAAkC,EAClC,WAAqB,EACrB,UAA+B;QAE/B,MAAM,SAAS,GAAe;YAC1B,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,CAChE,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,SAAS,CAAC,kBAAkB,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC;gBAC/E,SAAS,CAAC,cAAc,EAAE,CAAC;gBAC3B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClB,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,MAAM;oBACpB,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,UAAU;oBACpB,cAAc,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;iBAC3E,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAChC,MAAwB,EACxB,SAAuC,EACvC,GAAkC,EAClC,WAAqB,EACrB,cAAsB,EACtB,eAAuB,EACvB,UAA+B;QAE/B,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACrE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE7E,yCAAyC;QACzC,IAAI,gBAAgB,GAAG,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC;QACzD,IAAI,gBAAgB,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,aAAa,IAAI,WAAW,CAAkB,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC5E,OAAO,CAAC,IAAI,CACR,0CAA0C,gBAAgB,mBAAmB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAC9H,CAAC;gBACF,gBAAgB,GAAG,IAAI,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAe;YACvB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,gBAAgB,GAAG,gBAAgB,CAAC;QACxC,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,OAAO,OAAO,EAAE,CAAC;YACb,MAAM,GAAG,GAAiB;gBACtB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;gBAC7C,UAAU,EAAE,SAAS,CAAC,kBAAkB;gBACxC,cAAc,EAAE,gBAAgB;gBAChC,SAAS,EAAE,IAAI,CAAC,YAAY;gBAC5B,WAAW,EAAE,WAAW;aAC3B,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEvD,oFAAoF;YACpF,IAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YACjC,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CACR,0CAA0C,YAAY,CAAC,MAAM,uCAAuC,IAAI,CAAC,YAAY,eAAe,CACvI,CAAC;gBACF,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CACxC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,CAC5C,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAC3C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAC5C,CAAC;YAEF,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAE7F,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC;YAEpC,wBAAwB;YACxB,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;YAC/C,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC5B,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;QAC7C,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,YAAY,CAChB,UAA8B,EAC9B,cAAsB,EACtB,eAAuB,EACvB,cAAsB,EACtB,UAAkB;QAElB,MAAM,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,aAAa,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC;QAEzF,MAAM,QAAQ,GAAiB;YAC3B,cAAc,EAAE,cAAc;YAC9B,eAAe,EAAE,eAAe;YAChC,4BAA4B,EAAE,cAAc;YAC5C,wBAAwB,EAAE,UAAU;YACpC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC;SACjD,CAAC;QACF,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACvB,WAAmB,EACnB,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAA8B;YACzD,UAAU,EAAE,oCAAoC;YAChD,WAAW,EAAE,gBAAgB,WAAW,uBAAuB;YAC/D,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,eAAe;SAC9B,EAAE,WAAW,CAAC,CAAC;QAEhB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACtB,OAAuB,EACvB,kBAA8C,EAC9C,SAAuC,EACvC,MAAkB,EAClB,WAAqB;QAErB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7F,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,UAAU;oBAC5C,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAC9D,SAAS,EAAE,UAAU,CAAC,IAAI;oBAC1B,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;iBACxC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC3B,MAAoB,EACpB,kBAA8C,EAC9C,SAAuC,EACvC,MAAkB,EAClB,WAAqB;QAErB,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC5E,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7C,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACV,KAAK,QAAQ;gBACT,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACxD,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM;QACd,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACtB,MAAoB,EACpB,kBAA8C,EAC9C,SAAuC,EACvC,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,YAAY,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,CAAC,aAAa,CACpB,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAC5B,MAAM,CAAC,cAAc,CAAC,UAAU,EAChC,SAAS,CAAC,QAAQ,EAClB,MAAM,CAAC,cAAc,CAAC,UAAU,EAChC,WAAW,CACd,CAAC;IACN,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACtB,MAAoB,EACpB,WAAqB;QAErB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1E,gGAAgG;QAChG,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,UAAU,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,2BAA2B;QAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAClG,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,cAAc,CAClB,MAAoD,EACpD,UAAkB;QAElB,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO;QAElD,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC;YAChG,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,KAAK,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACtB,MAAoB,EACpB,SAAuC,EACvC,WAAqB;QAErB,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,SAAS,CAAC,cAAc,KAAK,WAAW;YAAE,OAAO;QAErD,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,UAAU,EAAE,eAAe,EAAE,IAAI,IAAI,IAAI,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,CAAC,YAAY,kBAAkB,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAClG,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,EAAU,EAAE,YAAoB,IAAI;QAC1D,MAAM,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACK,eAAe,CACnB,MAAwD,EACxD,MAA+B;QAE/B,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,4BAA4B,CAChC,MAA0F,EAC1F,OAAqB;QAErB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE7D,IAAI,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACvB,oBAA4B,EAC5B,UAAkB,EAClB,QAAgB,EAChB,cAAsB,EACtB,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,eAAe,CACtC,qCAAqC,EACrC,WAAW,CACd,CAAC;QACF,SAAS,CAAC,SAAS,EAAE,CAAC;QACtB,SAAS,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACtD,SAAS,CAAC,sBAAsB,GAAG,UAAU,CAAC;QAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,EAAE,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CACzB,GAAkC,EAClC,SAAuC,EACvC,MAAkB,EAClB,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CACnC,qCAAqC,EACrC,WAAW,CACd,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,uBAAuB,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACrC,MAAM,CAAC,QAAQ,GAAG,aAAa,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,KAAK,CAAC,CAAC;QAE/C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,SAAqB,EAAE,SAAqB;QAC5D,SAAS,CAAC,gBAAgB,IAAI,SAAS,CAAC,gBAAgB,CAAC;QACzD,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;QACrD,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;QACrD,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;QACrD,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;QACrD,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC;QACrD,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACrB,GAAkC,EAClC,MAAkB,EAClB,YAAsB,EACtB,cAAuC;QAEvC,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC3C,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjB,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACjB,GAAkC,EAClC,GAAY,EACZ,YAAsB,EACtB,cAAuC;QAEvC,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;QACtB,GAAG,CAAC,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjB,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,UAAU,GAAe;gBAC3B,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,EAAE;aACb,CAAC;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED;;OAEG;IACK,2BAA2B,CAC/B,GAAkC,EAClC,MAAkB;QAElB,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,eAAe,CAAC;QACtE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC;QACxE,MAAM,OAAO,GAAG,SAAS;YACrB,CAAC,CAAC,2CAA2C,eAAe,EAAE;YAC9D,CAAC,CAAC,+BAA+B,eAAe,EAAE,CAAC;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAE/D,OAAO;YACH,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,QAAQ;YAClB,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAW;YAC9B,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC5B,GAAkC,EAClC,GAAY,EACZ,MAAkB;QAElB,MAAM,eAAe,GAAG,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC;QACxE,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,4BAA4B,eAAe,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG;YACT,gBAAgB,eAAe,EAAE;YACjC,gBAAgB;YAChB,UAAU,YAAY,EAAE;YACxB,SAAS,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;SACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACH,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,OAAO;YACjB,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;YAC9C,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAW;YAC9B,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI,IAAI,EAAE;SACzB,CAAC;IACN,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,eAAuB,EAAE,MAAkB;QACnE,MAAM,KAAK,GAAG;YACV,gBAAgB,eAAe,EAAE;YACjC,WAAW,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,EAAE;YAC5E,EAAE;YACF,gBAAgB;YAChB,iBAAiB,MAAM,CAAC,gBAAgB,EAAE;YAC1C,iBAAiB,MAAM,CAAC,cAAc,EAAE;YACxC,iBAAiB,MAAM,CAAC,cAAc,EAAE;YACxC,iBAAiB,MAAM,CAAC,cAAc,EAAE;YACxC,iBAAiB,MAAM,CAAC,cAAc,EAAE;SAC3C,CAAC;QACF,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAC;gBAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACxC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;gBACxE,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,QAAgC,EAAE,YAA8B;QAC/E,IAAI,CAAC;YACD,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE,IAAc,IAAI;QACd,OAAO,qBAAqB,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CAAC,YAAsB,EAAE,WAAsB,EAAE,QAA4B;QAC5F,MAAM,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9F,CAAC;IAED,qEAAqE;IAErE,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,qEAAqE;IAE9D,kBAAkB,CAAC,EAAU;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEM,oBAAoB,CAAC,IAAY;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEM,yBAAyB,CAAC,EAAU;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAEM,qCAAqC,CAAC,aAAqB;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,aAAa,CAAC,CAAC;IAC1E,CAAC;IAEM,kCAAkC,CAAC,oBAA4B;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,oBAAoB,CAAC,CAAC;IAC9E,CAAC;IAEM,wBAAwB,CAAC,WAAmB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;IAEM,oBAAoB,CAAC,oBAA4B;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC;IAEM,mCAAmC,CAAC,oBAA4B;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,oBAAoB,CAAC,CAAC;IAC/E,CAAC;IAED,oEAAoE;IAEpE,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACxC,CAAC;IAED,IAAW,uBAAuB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;IAC7C,CAAC;IAEM,oCAAoC,CAAC,aAAqB;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,aAAa,CAAC,CAAC;IACzE,CAAC;IAEM,oBAAoB,CAAC,aAAqB,EAAE,UAAkB;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAEM,wBAAwB,CAAC,QAAgB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEM,0BAA0B,CAAC,QAAgB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEM,2BAA2B,CAAC,aAAqB;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAEM,2BAA2B,CAAC,aAAqB;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,qEAAqE;IAE9D,MAAM,KAAK,QAAQ;QACtB,OAAO,iBAAiB,CAAC,WAAW,EAAqB,CAAC;IAC9D,CAAC"}
|
package/dist/MatchEngine.d.ts
CHANGED
|
@@ -36,6 +36,7 @@ export declare class MatchEngine {
|
|
|
36
36
|
private FindExistingRecord;
|
|
37
37
|
/**
|
|
38
38
|
* Searches for an existing MJ record using key field values.
|
|
39
|
+
* Returns the value of the entity's primary key field (natural PK from source system).
|
|
39
40
|
*/
|
|
40
41
|
private FindByKeyFields;
|
|
41
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatchEngine.d.ts","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MatchEngine.d.ts","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,qBAAa,WAAW;IACpB;;;;;;;;;OASG;IACU,OAAO,CAChB,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,EAAE,4BAA4B,EACvC,SAAS,EAAE,2BAA2B,EAAE,EACxC,WAAW,EAAE,QAAQ,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAkB1B;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;;OAGG;YACW,kBAAkB;IAmBhC;;;OAGG;YACW,eAAe;IA0B7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;YACW,kBAAkB;CAsBnC"}
|
package/dist/MatchEngine.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RunView } from '@memberjunction/core';
|
|
1
|
+
import { Metadata, RunView } from '@memberjunction/core';
|
|
2
2
|
/**
|
|
3
3
|
* Resolves mapped records against existing MJ data to determine
|
|
4
4
|
* whether each record should be Created, Updated, Skipped, or Deleted.
|
|
@@ -70,22 +70,27 @@ export class MatchEngine {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Searches for an existing MJ record using key field values.
|
|
73
|
+
* Returns the value of the entity's primary key field (natural PK from source system).
|
|
73
74
|
*/
|
|
74
75
|
async FindByKeyFields(record, keyFields, contextUser) {
|
|
75
76
|
const filterClauses = this.BuildKeyFieldFilter(record, keyFields);
|
|
76
77
|
if (filterClauses.length === 0)
|
|
77
78
|
return null;
|
|
79
|
+
// Look up the entity's PK field name from metadata
|
|
80
|
+
const md = new Metadata();
|
|
81
|
+
const entityInfo = md.Entities.find(e => e.Name === record.MJEntityName);
|
|
82
|
+
const pkFieldName = entityInfo?.FirstPrimaryKey?.Name ?? 'ID';
|
|
78
83
|
const rv = new RunView();
|
|
79
84
|
const result = await rv.RunView({
|
|
80
85
|
EntityName: record.MJEntityName,
|
|
81
86
|
ExtraFilter: filterClauses.join(' AND '),
|
|
82
|
-
Fields: [
|
|
87
|
+
Fields: [pkFieldName],
|
|
83
88
|
MaxRows: 1,
|
|
84
89
|
ResultType: 'simple',
|
|
85
90
|
}, contextUser);
|
|
86
91
|
if (!result.Success || result.Results.length === 0)
|
|
87
92
|
return null;
|
|
88
|
-
return result.Results[0]
|
|
93
|
+
return result.Results[0][pkFieldName];
|
|
89
94
|
}
|
|
90
95
|
/**
|
|
91
96
|
* Builds a SQL filter clause from key field values on a mapped record.
|
package/dist/MatchEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatchEngine.js","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"MatchEngine.js","sourceRoot":"","sources":["../src/MatchEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,12 +3,14 @@ export type { SyncDirection, SyncTriggerType, WatermarkType, ConflictResolution,
|
|
|
3
3
|
export { IsRetryableError, ClassifyError } from './types.js';
|
|
4
4
|
export type { TransformType, TransformOnError, TransformStep, TransformConfig, DirectConfig, RegexConfig, SplitConfig, CombineConfig, LookupConfig, FormatConfig, CoerceConfig, SubstringConfig, CustomConfig, } from './transforms.js';
|
|
5
5
|
export { BaseIntegrationConnector, WithTimeout, DEFAULT_OPERATION_TIMEOUTS, } from './BaseIntegrationConnector.js';
|
|
6
|
-
export type { ConnectionTestResult, ExternalObjectSchema, ExternalFieldSchema, FetchContext, FetchBatchResult, OperationTimeouts, } from './BaseIntegrationConnector.js';
|
|
6
|
+
export type { ConnectionTestResult, ExternalObjectSchema, ExternalFieldSchema, FetchContext, FetchBatchResult, OperationTimeouts, DefaultIntegrationConfig, DefaultObjectConfig, } from './BaseIntegrationConnector.js';
|
|
7
|
+
export { BaseRESTIntegrationConnector } from './BaseRESTIntegrationConnector.js';
|
|
8
|
+
export type { RESTAuthContext, RESTResponse, PaginationState, PaginationType, } from './BaseRESTIntegrationConnector.js';
|
|
7
9
|
export { ConnectorFactory } from './ConnectorFactory.js';
|
|
8
10
|
export { FieldMappingEngine } from './FieldMappingEngine.js';
|
|
9
11
|
export { MatchEngine } from './MatchEngine.js';
|
|
10
12
|
export { WatermarkService } from './WatermarkService.js';
|
|
11
13
|
export { WithRetry, DEFAULT_RETRY_CONFIG } from './RetryRunner.js';
|
|
12
14
|
export type { RetryConfig } from './RetryRunner.js';
|
|
13
|
-
export {
|
|
15
|
+
export { IntegrationEngine } from './IntegrationEngine.js';
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACR,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,GACnC,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACR,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG7D,YAAY,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACR,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACR,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,gCAAgC,GACnC,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACR,aAAa,EACb,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACzB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG7D,YAAY,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,YAAY,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACR,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,YAAY,EACR,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,GACjB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { IsRetryableError, ClassifyError } from './types.js';
|
|
3
3
|
// Connector
|
|
4
4
|
export { BaseIntegrationConnector, WithTimeout, DEFAULT_OPERATION_TIMEOUTS, } from './BaseIntegrationConnector.js';
|
|
5
|
+
// REST Connector Base
|
|
6
|
+
export { BaseRESTIntegrationConnector } from './BaseRESTIntegrationConnector.js';
|
|
5
7
|
// Factory
|
|
6
8
|
export { ConnectorFactory } from './ConnectorFactory.js';
|
|
7
9
|
// Engines
|
|
@@ -11,6 +13,7 @@ export { MatchEngine } from './MatchEngine.js';
|
|
|
11
13
|
export { WatermarkService } from './WatermarkService.js';
|
|
12
14
|
// Retry
|
|
13
15
|
export { WithRetry, DEFAULT_RETRY_CONFIG } from './RetryRunner.js';
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
+
// Integration Engine (server-side, wraps IntegrationEngineBase via composition)
|
|
17
|
+
// NOTE: For IntegrationEngineBase (client-safe metadata), import from @memberjunction/integration-engine-base
|
|
18
|
+
export { IntegrationEngine } from './IntegrationEngine.js';
|
|
16
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmB7D,YAAY;AACZ,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAmB7D,YAAY;AACZ,OAAO,EACH,wBAAwB,EACxB,WAAW,EACX,0BAA0B,GAC7B,MAAM,+BAA+B,CAAC;AAYvC,sBAAsB;AACtB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAQjF,UAAU;AACV,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,UAAU;AACV,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGnE,gFAAgF;AAChF,8GAA8G;AAC9G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -137,6 +137,8 @@ export interface SourceObjectInfo {
|
|
|
137
137
|
ExternalName: string;
|
|
138
138
|
/** Human-readable label (e.g., "Deals", "Members"). */
|
|
139
139
|
ExternalLabel: string;
|
|
140
|
+
/** Human-readable description of the object's purpose (used for sp_addextendedproperty on the table). */
|
|
141
|
+
Description?: string;
|
|
140
142
|
/** Fields/columns in the source object. */
|
|
141
143
|
Fields: SourceFieldInfo[];
|
|
142
144
|
/** Primary key field name(s). */
|
|
@@ -150,6 +152,8 @@ export interface SourceFieldInfo {
|
|
|
150
152
|
Name: string;
|
|
151
153
|
/** Human-readable label. */
|
|
152
154
|
Label: string;
|
|
155
|
+
/** Human-readable description of the field's purpose (used for sp_addextendedproperty on the column). */
|
|
156
|
+
Description?: string;
|
|
153
157
|
/** Generic source type (e.g., "string", "integer", "datetime", "boolean"). */
|
|
154
158
|
SourceType: string;
|
|
155
159
|
/** Whether the field is required/non-nullable. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|