@memberjunction/external-change-detection 2.111.0 → 2.112.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/README.md +3 -3
- package/dist/ChangeDetector.d.ts +2 -2
- package/dist/ChangeDetector.d.ts.map +1 -1
- package/dist/ChangeDetector.js +122 -120
- package/dist/ChangeDetector.js.map +1 -1
- package/package.json +4 -5
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ This package relies on the following MemberJunction packages:
|
|
|
35
35
|
|
|
36
36
|
```typescript
|
|
37
37
|
import { ExternalChangeDetectorEngine } from '@memberjunction/external-change-detection';
|
|
38
|
-
import { Metadata } from '@memberjunction/
|
|
38
|
+
import { Metadata } from '@memberjunction/global';
|
|
39
39
|
|
|
40
40
|
async function detectAndReplayChanges() {
|
|
41
41
|
// Get the engine instance
|
|
@@ -252,7 +252,7 @@ if (result.Success && result.Changes.length > 0) {
|
|
|
252
252
|
|
|
253
253
|
```typescript
|
|
254
254
|
import { ExternalChangeDetectorEngine } from '@memberjunction/external-change-detection';
|
|
255
|
-
import { UserInfo } from '@memberjunction/
|
|
255
|
+
import { UserInfo } from '@memberjunction/global';
|
|
256
256
|
|
|
257
257
|
async function runScheduledChangeDetection(contextUser: UserInfo) {
|
|
258
258
|
const detector = ExternalChangeDetectorEngine.Instance;
|
|
@@ -311,4 +311,4 @@ This package requires the following database objects:
|
|
|
311
311
|
|
|
312
312
|
## License
|
|
313
313
|
|
|
314
|
-
ISC
|
|
314
|
+
ISC
|
package/dist/ChangeDetector.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseEngine, BaseEntity, CompositeKey, EntityField, EntityInfo, IMetadataProvider, Metadata, UserInfo } from
|
|
2
|
-
import { RecordChangeEntity, RecordChangeReplayRunEntity } from
|
|
1
|
+
import { BaseEngine, BaseEntity, CompositeKey, EntityField, EntityInfo, IMetadataProvider, Metadata, UserInfo } from '@memberjunction/global';
|
|
2
|
+
import { RecordChangeEntity, RecordChangeReplayRunEntity } from '@memberjunction/core-entities';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a change to a single field in a record
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeDetector.d.ts","sourceRoot":"","sources":["../src/ChangeDetector.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChangeDetector.d.ts","sourceRoot":"","sources":["../src/ChangeDetector.ts"],"names":[],"mappings":"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"}
|
package/dist/ChangeDetector.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExternalChangeDetectorEngine = exports.ChangeDetectionResult = exports.ChangeDetectionItem = exports.FieldChange = void 0;
|
|
4
|
-
const
|
|
4
|
+
const global_1 = require("@memberjunction/global");
|
|
5
5
|
/**
|
|
6
6
|
* Represents a change to a single field in a record
|
|
7
7
|
*/
|
|
@@ -43,15 +43,15 @@ exports.ChangeDetectionResult = ChangeDetectionResult;
|
|
|
43
43
|
*
|
|
44
44
|
* This is a server only package
|
|
45
45
|
*/
|
|
46
|
-
class ExternalChangeDetectorEngine extends
|
|
46
|
+
class ExternalChangeDetectorEngine extends global_1.BaseEngine {
|
|
47
47
|
async Config(forceRefresh, contextUser, provider) {
|
|
48
|
-
const p = (provider ||
|
|
48
|
+
const p = (provider || global_1.Metadata.Provider);
|
|
49
49
|
const c = [
|
|
50
50
|
{
|
|
51
|
-
EntityName:
|
|
52
|
-
PropertyName:
|
|
53
|
-
Filter: `ID IN (SELECT ID FROM ${p.MJCoreSchemaName}.vwEntitiesWithExternalChangeTracking)
|
|
54
|
-
}
|
|
51
|
+
EntityName: 'Entities',
|
|
52
|
+
PropertyName: '_EligibleEntities',
|
|
53
|
+
Filter: `ID IN (SELECT ID FROM ${p.MJCoreSchemaName}.vwEntitiesWithExternalChangeTracking)`, // limit to entities that are in this view. This view has the logic which basically is TrackRecordChanges=1 and also has an UpdatedAt field
|
|
54
|
+
},
|
|
55
55
|
];
|
|
56
56
|
await this.Load(c, provider, forceRefresh, contextUser);
|
|
57
57
|
}
|
|
@@ -83,7 +83,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
83
83
|
* * The entity is not in the IneligibleEntities list. See info on the IneligibleEntities property for more information on excluded entities.
|
|
84
84
|
*/
|
|
85
85
|
get EligibleEntities() {
|
|
86
|
-
const netEligible = this._EligibleEntities.filter(e => !this.IneligibleEntities.map(i => i.toLowerCase().trim()).includes(e.Name.toLowerCase().trim()));
|
|
86
|
+
const netEligible = this._EligibleEntities.filter((e) => !this.IneligibleEntities.map((i) => i.toLowerCase().trim()).includes(e.Name.toLowerCase().trim()));
|
|
87
87
|
return netEligible;
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -94,16 +94,16 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
94
94
|
try {
|
|
95
95
|
// check to make sure that the entity is in the eligible list
|
|
96
96
|
if (!entity) {
|
|
97
|
-
throw new Error(
|
|
97
|
+
throw new Error('entity parameter is required');
|
|
98
98
|
}
|
|
99
|
-
else if (!this.EligibleEntities.find(e => e.ID === entity.ID)) {
|
|
99
|
+
else if (!this.EligibleEntities.find((e) => e.ID === entity.ID)) {
|
|
100
100
|
throw new Error(`Entity ${entity.Name} is not eligible for external change detection. Refer to the documentation on the EligibleEntities and IneligibleEntities properties for more information.`);
|
|
101
101
|
}
|
|
102
|
-
const md = new
|
|
102
|
+
const md = new global_1.Metadata();
|
|
103
103
|
const sqlCreates = this.generateDetectCreationsQuery(entity);
|
|
104
104
|
const sqlUpdates = this.generateDetectUpdatesQuery(entity);
|
|
105
105
|
const sqlDeletes = this.generateDetectDeletionsQuery(entity);
|
|
106
|
-
const provider =
|
|
106
|
+
const provider = global_1.Metadata.Provider;
|
|
107
107
|
const createResult = await provider.ExecuteSQL(sqlCreates);
|
|
108
108
|
const updateResult = await provider.ExecuteSQL(sqlUpdates);
|
|
109
109
|
const deleteResult = await provider.ExecuteSQL(sqlDeletes);
|
|
@@ -113,15 +113,15 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
113
113
|
for (const row of createResult) {
|
|
114
114
|
const item = new ChangeDetectionItem();
|
|
115
115
|
item.Entity = entity;
|
|
116
|
-
item.PrimaryKey = new
|
|
116
|
+
item.PrimaryKey = new global_1.CompositeKey(entity.PrimaryKeys.map((pk) => {
|
|
117
117
|
return {
|
|
118
118
|
FieldName: pk.Name,
|
|
119
|
-
Value: row[pk.Name]
|
|
119
|
+
Value: row[pk.Name],
|
|
120
120
|
};
|
|
121
121
|
}));
|
|
122
122
|
item.Type = 'Create';
|
|
123
123
|
item.ChangedAt = row.CreatedAt >= row.UpdatedAt ? row.CreatedAt : row.UpdatedAt;
|
|
124
|
-
item.Changes = []; // not relevant because the row is new
|
|
124
|
+
item.Changes = []; // not relevant because the row is new
|
|
125
125
|
changes.push(item);
|
|
126
126
|
}
|
|
127
127
|
}
|
|
@@ -129,31 +129,31 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
129
129
|
for (const row of updateResult) {
|
|
130
130
|
const item = new ChangeDetectionItem();
|
|
131
131
|
item.Entity = entity;
|
|
132
|
-
item.PrimaryKey = new
|
|
132
|
+
item.PrimaryKey = new global_1.CompositeKey(entity.PrimaryKeys.map((pk) => {
|
|
133
133
|
return {
|
|
134
134
|
FieldName: pk.Name,
|
|
135
|
-
Value: row[pk.Name]
|
|
135
|
+
Value: row[pk.Name],
|
|
136
136
|
};
|
|
137
137
|
}));
|
|
138
138
|
item.Type = 'Update';
|
|
139
139
|
item.ChangedAt = row.UpdatedAt;
|
|
140
140
|
// push the item but first make sure it is NOT already in the changes from the
|
|
141
141
|
// create detection, if it is, we do not push it into changes
|
|
142
|
-
if (!changes.find(c => c.PrimaryKey.Equals(item.PrimaryKey))) {
|
|
142
|
+
if (!changes.find((c) => c.PrimaryKey.Equals(item.PrimaryKey))) {
|
|
143
143
|
changes.push(item);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
if (deleteResult && deleteResult.length > 0) {
|
|
148
|
-
deleteResult.forEach(row => {
|
|
148
|
+
deleteResult.forEach((row) => {
|
|
149
149
|
const item = new ChangeDetectionItem();
|
|
150
150
|
item.Entity = entity;
|
|
151
|
-
const ck = new
|
|
151
|
+
const ck = new global_1.CompositeKey();
|
|
152
152
|
// row.RecordID should have a format of Field1|Value1||Field2|Value2, however in some cases there is legacy
|
|
153
153
|
// data in the RecordChange table that just has a single value in it and in that case assuming that the entity
|
|
154
154
|
// in question has a single-valued primary key, we can just use that value as the key, so we need to test for that
|
|
155
155
|
// first and if we find that the RecordID is just a single value, we can use that as the key
|
|
156
|
-
if (row.RecordID.indexOf(
|
|
156
|
+
if (row.RecordID.indexOf(global_1.CompositeKey.DefaultValueDelimiter) === -1) {
|
|
157
157
|
// there is no field delimiter, so we can assume this is a single value
|
|
158
158
|
ck.LoadFromSingleKeyValuePair(entity.PrimaryKeys[0].Name, row.RecordID); // this is a string like 'Field1Value' (no quotes
|
|
159
159
|
item.LegacyKey = true;
|
|
@@ -178,15 +178,15 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
178
178
|
}
|
|
179
179
|
return {
|
|
180
180
|
Success: true,
|
|
181
|
-
Changes: changes
|
|
181
|
+
Changes: changes,
|
|
182
182
|
};
|
|
183
183
|
}
|
|
184
184
|
catch (e) {
|
|
185
|
-
(0,
|
|
185
|
+
(0, global_1.LogError)(e);
|
|
186
186
|
return {
|
|
187
187
|
Success: false,
|
|
188
188
|
ErrorMessage: e.message,
|
|
189
|
-
Changes: []
|
|
189
|
+
Changes: [],
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -214,7 +214,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
214
214
|
changes.push({
|
|
215
215
|
FieldName: field.Name,
|
|
216
216
|
NewValue: differResult.castValue1, // use the typecast values so they're the right types
|
|
217
|
-
OldValue: differResult.castValue2 // use the typecast values so they're the right types
|
|
217
|
+
OldValue: differResult.castValue2, // use the typecast values so they're the right types
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
220
|
}
|
|
@@ -222,7 +222,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
222
222
|
return { changes, latestRecord: record };
|
|
223
223
|
}
|
|
224
224
|
else {
|
|
225
|
-
(0,
|
|
225
|
+
(0, global_1.LogStatus)(` WARNING: No record found, or no FullRecordJSON found, in vwRecordChanges for ${change.Entity.Name}: ${change.PrimaryKey.ToConcatenatedString()}`);
|
|
226
226
|
return { changes: [], latestRecord: record };
|
|
227
227
|
}
|
|
228
228
|
}
|
|
@@ -230,31 +230,31 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
230
230
|
throw new Error(`Failed to load record: ${change.Entity.Name}: ${change.PrimaryKey}`);
|
|
231
231
|
}
|
|
232
232
|
catch (e) {
|
|
233
|
-
(0,
|
|
233
|
+
(0, global_1.LogError)(e);
|
|
234
234
|
return { changes: [], latestRecord: null };
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
DoValuesDiffer(field, value1, value2) {
|
|
238
238
|
// type specific comparisons
|
|
239
|
-
// for each scenario, make sure both value1 and value 2 are of the type we care about, if they're not, create new variables
|
|
239
|
+
// for each scenario, make sure both value1 and value 2 are of the type we care about, if they're not, create new variables
|
|
240
240
|
// of those types and then do type specific comparisons for equality
|
|
241
241
|
switch (field.EntityFieldInfo.TSType) {
|
|
242
|
-
case
|
|
242
|
+
case global_1.EntityFieldTSType.Boolean:
|
|
243
243
|
// check to see if value1 and value2 are both boolean, if not, convert them to boolean
|
|
244
244
|
const v1 = typeof value1 === 'boolean' ? value1 : value1 === 'true' ? true : false;
|
|
245
245
|
const v2 = typeof value2 === 'boolean' ? value2 : value2 === 'true' ? true : false;
|
|
246
246
|
return { differ: v1 !== v2, castValue1: v1, castValue2: v2 };
|
|
247
|
-
case
|
|
247
|
+
case global_1.EntityFieldTSType.Date:
|
|
248
248
|
// check to see if value1 and value2 are both dates, if not, convert them to dates
|
|
249
249
|
const d1 = value1 instanceof Date ? value1 : new Date(value1);
|
|
250
250
|
const d2 = value2 instanceof Date ? value2 : new Date(value2);
|
|
251
251
|
return { differ: d1.getTime() !== d2.getTime(), castValue1: d1, castValue2: d2 };
|
|
252
|
-
case
|
|
252
|
+
case global_1.EntityFieldTSType.Number:
|
|
253
253
|
// check to see if value1 and value2 are both numbers, if not, convert them to numbers
|
|
254
|
-
const n1 = value1 ? typeof value1 === 'number' ? value1 : parseFloat(value1) : value1;
|
|
255
|
-
const n2 = value2 ? typeof value2 === 'number' ? value2 : parseFloat(value2) : value2;
|
|
254
|
+
const n1 = value1 ? (typeof value1 === 'number' ? value1 : parseFloat(value1)) : value1;
|
|
255
|
+
const n2 = value2 ? (typeof value2 === 'number' ? value2 : parseFloat(value2)) : value2;
|
|
256
256
|
return { differ: n1 !== n2, castValue1: n1, castValue2: n2 };
|
|
257
|
-
case
|
|
257
|
+
case global_1.EntityFieldTSType.String:
|
|
258
258
|
// check to see if value1 and value2 are both strings, if not, convert them to strings
|
|
259
259
|
const s1 = typeof value1 === 'string' || !value1 ? value1 : value1.toString();
|
|
260
260
|
const s2 = typeof value2 === 'string' || !value2 ? value2 : value2.toString();
|
|
@@ -267,15 +267,15 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
267
267
|
}
|
|
268
268
|
async GetLatestRecordChangesDataForEntityRecord(change) {
|
|
269
269
|
const Provider = this.ProviderToUse;
|
|
270
|
-
const sql = `SELECT
|
|
271
|
-
TOP 1 FullRecordJSON
|
|
272
|
-
FROM
|
|
273
|
-
${Provider.MJCoreSchemaName}.vwRecordChanges
|
|
274
|
-
WHERE
|
|
275
|
-
RecordID = '${change.PrimaryKey.ToConcatenatedString()}'
|
|
276
|
-
AND EntityID = '${change.Entity.ID}'
|
|
270
|
+
const sql = `SELECT
|
|
271
|
+
TOP 1 FullRecordJSON
|
|
272
|
+
FROM
|
|
273
|
+
${Provider.MJCoreSchemaName}.vwRecordChanges
|
|
274
|
+
WHERE
|
|
275
|
+
RecordID = '${change.PrimaryKey.ToConcatenatedString()}'
|
|
276
|
+
AND EntityID = '${change.Entity.ID}'
|
|
277
277
|
AND Status <> 'Pending'
|
|
278
|
-
ORDER BY
|
|
278
|
+
ORDER BY
|
|
279
279
|
ChangedAt DESC`;
|
|
280
280
|
const result = await Provider.ExecuteSQL(sql);
|
|
281
281
|
if (result && result.length > 0)
|
|
@@ -305,11 +305,11 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
305
305
|
const entities = [];
|
|
306
306
|
const provider = this.ProviderToUse;
|
|
307
307
|
for (const c of changes) {
|
|
308
|
-
let e = entities.find(e => e.entity.ID === c.Entity.ID);
|
|
308
|
+
let e = entities.find((e) => e.entity.ID === c.Entity.ID);
|
|
309
309
|
if (!e) {
|
|
310
310
|
e = {
|
|
311
311
|
entity: c.Entity,
|
|
312
|
-
keys: [c.PrimaryKey]
|
|
312
|
+
keys: [c.PrimaryKey],
|
|
313
313
|
};
|
|
314
314
|
entities.push(e);
|
|
315
315
|
}
|
|
@@ -321,23 +321,25 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
321
321
|
// select statement for each entity
|
|
322
322
|
for (const e of entities) {
|
|
323
323
|
const sql = `SELECT * FROM [${e.entity.SchemaName}].[${e.entity.BaseView}]
|
|
324
|
-
WHERE ${e.keys
|
|
325
|
-
|
|
326
|
-
const
|
|
324
|
+
WHERE ${e.keys
|
|
325
|
+
.map((k) => `(${k.KeyValuePairs.map((kvp) => {
|
|
326
|
+
const f = e.entity.Fields.find((f) => kvp.FieldName.trim().toLowerCase() === f.Name);
|
|
327
|
+
const quotes = f?.NeedsQuotes ? "'" : '';
|
|
327
328
|
return `[${kvp.FieldName}]=${quotes}${kvp.Value}${quotes}`;
|
|
328
|
-
}).join(' AND ')})`)
|
|
329
|
+
}).join(' AND ')})`)
|
|
330
|
+
.join(' OR ')} `;
|
|
329
331
|
const result = await provider.ExecuteSQL(sql);
|
|
330
332
|
if (result) {
|
|
331
333
|
// we have the rows from the result, now go back through each of the changes we have in the changes array
|
|
332
|
-
// and associate the data with each one
|
|
334
|
+
// and associate the data with each one
|
|
333
335
|
for (const r of result) {
|
|
334
|
-
const kvp = e.entity.PrimaryKeys.map(pk => {
|
|
336
|
+
const kvp = e.entity.PrimaryKeys.map((pk) => {
|
|
335
337
|
return {
|
|
336
338
|
FieldName: pk.Name,
|
|
337
|
-
Value: r[pk.Name]
|
|
339
|
+
Value: r[pk.Name],
|
|
338
340
|
};
|
|
339
341
|
});
|
|
340
|
-
const changeItem = changes.find(ci => ci.Entity === e.entity && ci.PrimaryKey.EqualsKey(kvp));
|
|
342
|
+
const changeItem = changes.find((ci) => ci.Entity === e.entity && ci.PrimaryKey.EqualsKey(kvp));
|
|
341
343
|
if (changeItem) {
|
|
342
344
|
// found the match, update latest Record
|
|
343
345
|
const record = await md.GetEntityObject(changeItem.Entity.Name, this.ContextUser);
|
|
@@ -350,73 +352,73 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
350
352
|
return true;
|
|
351
353
|
}
|
|
352
354
|
catch (e) {
|
|
353
|
-
(0,
|
|
355
|
+
(0, global_1.LogError)(e);
|
|
354
356
|
return false;
|
|
355
357
|
}
|
|
356
358
|
}
|
|
357
359
|
getPrimaryKeyString(entity, tablePrefix) {
|
|
358
|
-
return entity.PrimaryKeys.map(pk => `'${pk.Name}${
|
|
360
|
+
return entity.PrimaryKeys.map((pk) => `'${pk.Name}${global_1.CompositeKey.DefaultValueDelimiter}' + CAST(${tablePrefix}.[${pk.Name}] AS NVARCHAR(MAX))`).join(` + '${global_1.CompositeKey.DefaultFieldDelimiter}' + `);
|
|
359
361
|
}
|
|
360
362
|
generateDetectUpdatesQuery(entity) {
|
|
361
363
|
const primaryKeyString = this.getPrimaryKeyString(entity, 'ot');
|
|
362
364
|
return `
|
|
363
|
-
SELECT
|
|
364
|
-
${entity.PrimaryKeys.map(pk => `ot.[${pk.Name}]`).join(', ')}, ot.${
|
|
365
|
-
FROM
|
|
365
|
+
SELECT
|
|
366
|
+
${entity.PrimaryKeys.map((pk) => `ot.[${pk.Name}]`).join(', ')}, ot.${global_1.EntityInfo.UpdatedAtFieldName} AS UpdatedAt, rc.last_change_time LatestRecordChangeAt
|
|
367
|
+
FROM
|
|
366
368
|
[${entity.SchemaName}].[${entity.BaseView}] ot
|
|
367
369
|
INNER JOIN (
|
|
368
|
-
SELECT
|
|
370
|
+
SELECT
|
|
369
371
|
RecordID, MAX(ChangedAt) AS last_change_time
|
|
370
|
-
FROM
|
|
372
|
+
FROM
|
|
371
373
|
__mj.vwRecordChanges
|
|
372
|
-
WHERE
|
|
374
|
+
WHERE
|
|
373
375
|
Type IN ('Update', 'Create') AND EntityID = '${entity.ID}'
|
|
374
|
-
GROUP BY
|
|
376
|
+
GROUP BY
|
|
375
377
|
RecordID
|
|
376
378
|
) rc ON ${primaryKeyString} = rc.RecordID
|
|
377
|
-
WHERE
|
|
378
|
-
FORMAT(ot.${
|
|
379
|
+
WHERE
|
|
380
|
+
FORMAT(ot.${global_1.EntityInfo.UpdatedAtFieldName}, 'yyyy-MM-dd HH:mm:ss.fff') > COALESCE(FORMAT(rc.last_change_time, 'yyyy-MM-dd HH:mm:ss.fff'), '1900-01-01 00:00:00.000');`;
|
|
379
381
|
// use up to 3 digits of precision because when we get the values back into JavaScript objects, Date objects only have 3 digits of precision
|
|
380
382
|
}
|
|
381
383
|
generateDetectCreationsQuery(entity) {
|
|
382
384
|
const primaryKeyString = this.getPrimaryKeyString(entity, 'ot');
|
|
383
385
|
return `
|
|
384
|
-
SELECT
|
|
385
|
-
${entity.PrimaryKeys.map(pk => `ot.[${pk.Name}]`).join(', ')}, ot.${
|
|
386
|
-
FROM
|
|
386
|
+
SELECT
|
|
387
|
+
${entity.PrimaryKeys.map((pk) => `ot.[${pk.Name}]`).join(', ')}, ot.${global_1.EntityInfo.CreatedAtFieldName} AS CreatedAt, ot.${global_1.EntityInfo.UpdatedAtFieldName} AS UpdatedAt
|
|
388
|
+
FROM
|
|
387
389
|
[${entity.SchemaName}].[${entity.BaseView}] ot
|
|
388
|
-
LEFT JOIN
|
|
389
|
-
__mj.vwRecordChanges rc
|
|
390
|
-
ON
|
|
391
|
-
(${primaryKeyString} = rc.RecordID) AND
|
|
392
|
-
rc.Type = 'Create' AND
|
|
393
|
-
rc.EntityID = '${entity.ID}'
|
|
394
|
-
WHERE
|
|
390
|
+
LEFT JOIN
|
|
391
|
+
__mj.vwRecordChanges rc
|
|
392
|
+
ON
|
|
393
|
+
(${primaryKeyString} = rc.RecordID) AND
|
|
394
|
+
rc.Type = 'Create' AND
|
|
395
|
+
rc.EntityID = '${entity.ID}'
|
|
396
|
+
WHERE
|
|
395
397
|
rc.RecordID IS NULL;
|
|
396
398
|
`;
|
|
397
399
|
}
|
|
398
400
|
generateDetectDeletionsQuery(entity) {
|
|
399
401
|
const primaryKeyString = this.getPrimaryKeyString(entity, 'ot');
|
|
400
402
|
return `
|
|
401
|
-
SELECT
|
|
403
|
+
SELECT
|
|
402
404
|
rc.RecordID, MAX(rc.ChangedAt) ChangedAt
|
|
403
|
-
FROM
|
|
405
|
+
FROM
|
|
404
406
|
__mj.vwRecordChanges rc
|
|
405
|
-
LEFT JOIN
|
|
406
|
-
[${entity.SchemaName}].[${entity.BaseView}] ot
|
|
407
|
-
ON
|
|
407
|
+
LEFT JOIN
|
|
408
|
+
[${entity.SchemaName}].[${entity.BaseView}] ot
|
|
409
|
+
ON
|
|
408
410
|
rc.RecordID = ${primaryKeyString}
|
|
409
|
-
WHERE
|
|
410
|
-
${entity.PrimaryKeys.map(pk => `ot.[${pk.Name}] IS NULL`).join(' AND ')}
|
|
411
|
-
AND
|
|
412
|
-
rc.EntityID = '${entity.ID}'
|
|
411
|
+
WHERE
|
|
412
|
+
${entity.PrimaryKeys.map((pk) => `ot.[${pk.Name}] IS NULL`).join(' AND ')}
|
|
413
413
|
AND
|
|
414
|
-
|
|
414
|
+
rc.EntityID = '${entity.ID}'
|
|
415
|
+
AND
|
|
416
|
+
NOT EXISTS
|
|
415
417
|
(
|
|
416
|
-
SELECT rc2.ID FROM __mj.vwRecordChanges rc2 WHERE
|
|
418
|
+
SELECT rc2.ID FROM __mj.vwRecordChanges rc2 WHERE
|
|
417
419
|
rc2.RecordID = rc.RecordID AND rc2.EntityID=rc.EntityID AND rc2.Type='Delete'
|
|
418
|
-
)
|
|
419
|
-
GROUP BY
|
|
420
|
+
)
|
|
421
|
+
GROUP BY
|
|
420
422
|
rc.RecordID
|
|
421
423
|
`; // last part of above query makes sure we don't include records already deleted in Record Changes
|
|
422
424
|
}
|
|
@@ -427,37 +429,37 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
427
429
|
async DetectChangesForEntities(entities) {
|
|
428
430
|
try {
|
|
429
431
|
if (!entities)
|
|
430
|
-
throw new Error(
|
|
432
|
+
throw new Error('entities parameter is required');
|
|
431
433
|
else if (entities.length === 0)
|
|
432
|
-
throw new Error(
|
|
434
|
+
throw new Error('entities parameter must have at least one entity in it');
|
|
433
435
|
const result = new ChangeDetectionResult();
|
|
434
436
|
result.Success = true;
|
|
435
437
|
result.Changes = [];
|
|
436
438
|
const promises = [];
|
|
437
439
|
// fire them all off in parallel
|
|
438
|
-
(0,
|
|
440
|
+
(0, global_1.LogStatus)(`Detecting changes for ${entities.length} entities`);
|
|
439
441
|
let numFinished = 0;
|
|
440
442
|
entities.forEach((e) => {
|
|
441
|
-
(0,
|
|
443
|
+
(0, global_1.UpdateCurrentConsoleLine)(` Starting change detection changes for ${e.Name}`, global_1.ConsoleColor.gray);
|
|
442
444
|
const p = this.DetectChangesForEntity(e); // no await
|
|
443
445
|
promises.push(p);
|
|
444
|
-
p.then(entityResult => {
|
|
445
|
-
(0,
|
|
446
|
+
p.then((entityResult) => {
|
|
447
|
+
(0, global_1.UpdateCurrentConsoleProgress)(` Finished change detection changes for ${e.Name}`, ++numFinished, entities.length, entityResult.Success ? global_1.ConsoleColor.cyan : global_1.ConsoleColor.crimson);
|
|
446
448
|
result.Changes = result.Changes.concat(entityResult.Changes);
|
|
447
449
|
result.Success = result.Success && entityResult.Success;
|
|
448
450
|
});
|
|
449
451
|
});
|
|
450
452
|
// now wait for all of the promises to finish
|
|
451
453
|
await Promise.all(promises);
|
|
452
|
-
(0,
|
|
454
|
+
(0, global_1.UpdateCurrentConsoleProgress)(` Finished detecting changes for ${entities.length} entities`, entities.length, entities.length, result.Success ? global_1.ConsoleColor.green : global_1.ConsoleColor.red);
|
|
453
455
|
return result;
|
|
454
456
|
}
|
|
455
457
|
catch (e) {
|
|
456
|
-
(0,
|
|
458
|
+
(0, global_1.LogError)(e);
|
|
457
459
|
return {
|
|
458
460
|
Success: false,
|
|
459
461
|
ErrorMessage: e.message,
|
|
460
|
-
Changes: []
|
|
462
|
+
Changes: [],
|
|
461
463
|
};
|
|
462
464
|
}
|
|
463
465
|
}
|
|
@@ -477,16 +479,16 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
477
479
|
let run; // delcare outside of try block so we have access to it in the catch block
|
|
478
480
|
try {
|
|
479
481
|
if (changes && changes.length > 0) {
|
|
480
|
-
const md = new
|
|
482
|
+
const md = new global_1.Metadata();
|
|
481
483
|
const results = [];
|
|
482
484
|
run = await this.StartRun();
|
|
483
|
-
(0,
|
|
485
|
+
(0, global_1.LogStatus)(`Replaying ${changes.length} changes`);
|
|
484
486
|
let numProcessed = 0;
|
|
485
487
|
for (let i = 0; i < changes.length; i += batchSize) {
|
|
486
488
|
const batch = changes.slice(i, i + batchSize);
|
|
487
489
|
// Process the current batch
|
|
488
490
|
const batchPromises = batch.map(async (change) => {
|
|
489
|
-
(0,
|
|
491
|
+
(0, global_1.UpdateCurrentConsoleProgress)(` Replaying ${change.Entity.Name} ${change.Type} ${change.PrimaryKey.ToConcatenatedString()}`, ++numProcessed, changes.length, global_1.ConsoleColor.gray);
|
|
490
492
|
const result = await this.ReplaySingleChange(md, run, change);
|
|
491
493
|
return { Success: result, change: change };
|
|
492
494
|
});
|
|
@@ -500,19 +502,19 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
500
502
|
// results.push({Success: result, change: change});
|
|
501
503
|
// }
|
|
502
504
|
run.EndedAt = new Date();
|
|
503
|
-
run.Status = results.every(r => r.Success) ? 'Complete' : 'Error';
|
|
505
|
+
run.Status = results.every((r) => r.Success) ? 'Complete' : 'Error';
|
|
504
506
|
if (await run.Save()) {
|
|
505
|
-
return results.every(r => r.Success);
|
|
507
|
+
return results.every((r) => r.Success);
|
|
506
508
|
}
|
|
507
509
|
else {
|
|
508
|
-
throw new Error(
|
|
510
|
+
throw new Error('Failed to save run');
|
|
509
511
|
}
|
|
510
512
|
}
|
|
511
513
|
else
|
|
512
514
|
return true; // no changes to process
|
|
513
515
|
}
|
|
514
516
|
catch (e) {
|
|
515
|
-
(0,
|
|
517
|
+
(0, global_1.LogError)(e);
|
|
516
518
|
if (run) {
|
|
517
519
|
// attempt to mark the run as error
|
|
518
520
|
try {
|
|
@@ -521,8 +523,8 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
521
523
|
await run.Save(); // dont' care about return value here, we've already tried to save it and the return value will be false anyway and message is the original root cause of the first exception
|
|
522
524
|
}
|
|
523
525
|
catch (innerError) {
|
|
524
|
-
(0,
|
|
525
|
-
(0,
|
|
526
|
+
(0, global_1.LogError)('Attempted to mark run as error failed, make sure you update the database for future runs to be allowed.');
|
|
527
|
+
(0, global_1.LogError)(innerError);
|
|
526
528
|
return false; // couldn't get it done
|
|
527
529
|
}
|
|
528
530
|
}
|
|
@@ -534,17 +536,17 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
534
536
|
*/
|
|
535
537
|
async StartRun() {
|
|
536
538
|
// first make sure an existing run isn't in progress
|
|
537
|
-
const rv = new
|
|
539
|
+
const rv = new global_1.RunView();
|
|
538
540
|
const existingRun = await rv.RunView({
|
|
539
|
-
EntityName:
|
|
540
|
-
ExtraFilter: "Status NOT IN('Complete', 'Error')"
|
|
541
|
+
EntityName: 'Record Change Replay Runs',
|
|
542
|
+
ExtraFilter: "Status NOT IN('Complete', 'Error')",
|
|
541
543
|
}, this.ContextUser);
|
|
542
544
|
if (existingRun && existingRun.Success) {
|
|
543
545
|
if (existingRun.Results.length > 0)
|
|
544
546
|
throw new Error(`Existing Record Change Replay Run ${existingRun.Results[0].ID} is not complete or marked as error, cannot start a new run.`);
|
|
545
547
|
else {
|
|
546
|
-
const md = new
|
|
547
|
-
const run = await md.GetEntityObject(
|
|
548
|
+
const md = new global_1.Metadata();
|
|
549
|
+
const run = await md.GetEntityObject('Record Change Replay Runs', this.ContextUser);
|
|
548
550
|
run.StartedAt = new Date();
|
|
549
551
|
run.UserID = this.ContextUser.ID;
|
|
550
552
|
run.Status = 'In Progress';
|
|
@@ -552,12 +554,12 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
552
554
|
return run;
|
|
553
555
|
}
|
|
554
556
|
else
|
|
555
|
-
throw new Error(
|
|
557
|
+
throw new Error('Failed to start run');
|
|
556
558
|
}
|
|
557
559
|
}
|
|
558
560
|
else {
|
|
559
561
|
// failed to run the view
|
|
560
|
-
throw new Error(
|
|
562
|
+
throw new Error('Failed to check for existing run: ' + existingRun.ErrorMessage);
|
|
561
563
|
}
|
|
562
564
|
}
|
|
563
565
|
/**
|
|
@@ -589,7 +591,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
589
591
|
// if we get here, entityObject is now all set to go for replay!
|
|
590
592
|
if (change.Type === 'Delete') {
|
|
591
593
|
const result = await entityObject.Delete({
|
|
592
|
-
ReplayOnly: true
|
|
594
|
+
ReplayOnly: true,
|
|
593
595
|
});
|
|
594
596
|
return this.FinishRecordChangeRecord(rc, result ? 'success' : 'error', entityObject.LatestResult?.Error);
|
|
595
597
|
}
|
|
@@ -597,17 +599,17 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
597
599
|
// for updates and creates we just call Save() with the ReplayOnly option
|
|
598
600
|
const result = await entityObject.Save({
|
|
599
601
|
ReplayOnly: true,
|
|
600
|
-
IgnoreDirtyState: false //not relevant for replay
|
|
602
|
+
IgnoreDirtyState: false, //not relevant for replay
|
|
601
603
|
});
|
|
602
604
|
return this.FinishRecordChangeRecord(rc, result ? 'success' : 'error', entityObject.LatestResult?.Error);
|
|
603
605
|
}
|
|
604
606
|
}
|
|
605
607
|
else {
|
|
606
|
-
throw new Error(
|
|
608
|
+
throw new Error('Failed to create Record Change record');
|
|
607
609
|
}
|
|
608
610
|
}
|
|
609
611
|
catch (e) {
|
|
610
|
-
(0,
|
|
612
|
+
(0, global_1.LogError)(e);
|
|
611
613
|
return false;
|
|
612
614
|
}
|
|
613
615
|
}
|
|
@@ -624,7 +626,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
624
626
|
return false;
|
|
625
627
|
}
|
|
626
628
|
catch (e) {
|
|
627
|
-
(0,
|
|
629
|
+
(0, global_1.LogError)(e);
|
|
628
630
|
return false;
|
|
629
631
|
}
|
|
630
632
|
}
|
|
@@ -634,7 +636,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
634
636
|
*/
|
|
635
637
|
async CreateRecordChangeRecord(md, run, change) {
|
|
636
638
|
try {
|
|
637
|
-
const rc = await md.GetEntityObject(
|
|
639
|
+
const rc = await md.GetEntityObject('Record Changes', this.ContextUser);
|
|
638
640
|
rc.EntityID = change.Entity.ID;
|
|
639
641
|
if (change.LegacyKey)
|
|
640
642
|
rc.RecordID = change.LegacyKeyValue; // need to match legacy key otherwise the other RC records will keep coming back up in detect changes runs in the future
|
|
@@ -657,7 +659,7 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
657
659
|
changesObject[field.FieldName] = {
|
|
658
660
|
field: field.FieldName,
|
|
659
661
|
oldValue: field.OldValue,
|
|
660
|
-
newValue: field.NewValue
|
|
662
|
+
newValue: field.NewValue,
|
|
661
663
|
};
|
|
662
664
|
}
|
|
663
665
|
if (change.Type === 'Update')
|
|
@@ -686,11 +688,11 @@ class ExternalChangeDetectorEngine extends core_1.BaseEngine {
|
|
|
686
688
|
return rc;
|
|
687
689
|
}
|
|
688
690
|
else {
|
|
689
|
-
throw new Error(
|
|
691
|
+
throw new Error('Failed to save Record Change record: ' + rc.LatestResult?.Message);
|
|
690
692
|
}
|
|
691
693
|
}
|
|
692
694
|
catch (e) {
|
|
693
|
-
(0,
|
|
695
|
+
(0, global_1.LogError)(e);
|
|
694
696
|
return null;
|
|
695
697
|
}
|
|
696
698
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeDetector.js","sourceRoot":"","sources":["../src/ChangeDetector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChangeDetector.js","sourceRoot":"","sources":["../src/ChangeDetector.ts"],"names":[],"mappings":";;;AAAA,mDAkBgC;AAIhC;;GAEG;AACH,MAAa,WAAW;IACf,SAAS,CAAS;IAClB,QAAQ,CAAM;IACd,QAAQ,CAAM;CACtB;AAJD,kCAIC;AAED;;GAEG;AACH,MAAa,mBAAmB;IACvB,MAAM,CAAa;IACnB,UAAU,CAAe;IACzB,IAAI,CAAiC;IACrC,SAAS,CAAO;IAChB,OAAO,CAAgB;IAC9B;;OAEG;IACI,YAAY,CAAc;IAE1B,SAAS,GAAa,KAAK,CAAC,CAAC,iFAAiF;IAC9G,cAAc,CAAU,CAAC,iEAAiE;CAClG;AAbD,kDAaC;AAED;;GAEG;AACH,MAAa,qBAAqB;IACzB,OAAO,CAAU;IACjB,YAAY,CAAU;IACtB,OAAO,CAAwB;CACvC;AAJD,sDAIC;AAED;;;;;GAKG;AACH,MAAa,4BAA6B,SAAQ,mBAAwC;IACjF,KAAK,CAAC,MAAM,CAAC,YAAsB,EAAE,WAAsB,EAAE,QAA4B;QAC9F,MAAM,CAAC,GAA0B,CAAC,QAAQ,IAAI,iBAAQ,CAAC,QAAQ,CAAC,CAAC;QAEjE,MAAM,CAAC,GAAG;YACR;gBACE,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,mBAAmB;gBACjC,MAAM,EAAE,yBAAyB,CAAC,CAAC,gBAAgB,wCAAwC,EAAE,2IAA2I;aACzO;SACF,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAEM,MAAM,KAAK,QAAQ;QACxB,OAAO,KAAK,CAAC,WAAW,EAAgC,CAAC;IAC3D,CAAC;IAEO,mBAAmB,GAAa,EAAE,CAAC,CAAC,wJAAwJ;IACpM;;;;;;;;;OASG;IACH,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAEO,iBAAiB,CAAe;IACxC;;;;;;;;OAQG;IACH,IAAW,gBAAgB;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CACzG,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAC,MAAkB;QACpD,IAAI,CAAC;YACH,6DAA6D;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,IAAI,4JAA4J,CAClL,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,iBAAQ,EAAE,CAAC;YAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,iBAAQ,CAAC,QAAiC,CAAC;YAE5D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAE3D,oGAAoG;YACpG,MAAM,OAAO,GAA0B,EAAE,CAAC;YAC1C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAY,CAChC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;wBAC5B,OAAO;4BACL,SAAS,EAAE,EAAE,CAAC,IAAI;4BAClB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;yBACpB,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;oBACF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;oBAChF,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,sCAAsC;oBAEzD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACrB,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAY,CAChC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;wBAC5B,OAAO;4BACL,SAAS,EAAE,EAAE,CAAC,IAAI;4BAClB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;yBACpB,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;oBACF,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAE/B,8EAA8E;oBAC9E,6DAA6D;oBAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;wBAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC3B,MAAM,IAAI,GAAG,IAAI,mBAAmB,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACrB,MAAM,EAAE,GAAG,IAAI,qBAAY,EAAE,CAAC;oBAC9B,2GAA2G;oBAC3G,8GAA8G;oBAC9G,kHAAkH;oBAClH,4FAA4F;oBAC5F,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBACpE,uEAAuE;wBACvE,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,iDAAiD;wBAC1H,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;wBACtB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC;oBACrC,CAAC;;wBAAM,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,8DAA8D;oBAElH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;oBACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;oBACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;oBAC/B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,8CAA8C;oBACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,gDAAgD;YAElG,gGAAgG;YAChG,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC/D,CAAC,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,OAAO;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC,CAAC,OAAO;gBACvB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CACjC,EAAY,EACZ,MAA2B;QAE3B,IAAI,CAAC;YACH,+EAA+E;YAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1G,IAAI,MAAM,EAAE,CAAC;gBACX,0FAA0F;gBAC1F,8GAA8G;gBAC9G,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yCAAyC,CAAC,MAAM,CAAC,CAAC;gBAC5E,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxE,4EAA4E;oBAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAC/C,8EAA8E;oBAC9E,MAAM,OAAO,GAAkB,EAAE,CAAC;oBAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBAClC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;4BACxB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC/E,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gCACxB,OAAO,CAAC,IAAI,CAAC;oCACX,SAAS,EAAE,KAAK,CAAC,IAAI;oCACrB,QAAQ,EAAE,YAAY,CAAC,UAAU,EAAE,qDAAqD;oCACxF,QAAQ,EAAE,YAAY,CAAC,UAAU,EAAE,qDAAqD;iCACzF,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,IAAA,kBAAS,EACP,sFAAsF,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,CACxJ,CAAC;oBACF,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC/C,CAAC;YACH,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAES,cAAc,CAAC,KAAkB,EAAE,MAAW,EAAE,MAAW;QACnE,4BAA4B;QAC5B,2HAA2H;QAC3H,oEAAoE;QACpE,QAAQ,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACrC,KAAK,0BAAiB,CAAC,OAAO;gBAC5B,sFAAsF;gBACtF,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnF,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACnF,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC/D,KAAK,0BAAiB,CAAC,IAAI;gBACzB,kFAAkF;gBAClF,MAAM,EAAE,GAAG,MAAM,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9D,MAAM,EAAE,GAAG,MAAM,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9D,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACnF,KAAK,0BAAiB,CAAC,MAAM;gBAC3B,sFAAsF;gBACtF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxF,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxF,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC/D,KAAK,0BAAiB,CAAC,MAAM;gBAC3B,sFAAsF;gBACtF,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9E,MAAM,EAAE,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9E,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC/D;gBACE,qFAAqF;gBACrF,iFAAiF;gBACjF,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAES,KAAK,CAAC,yCAAyC,CAAC,MAA2B;QACnF,MAAM,QAAQ,GAA0B,IAAI,CAAC,aAAa,CAAC;QAE3D,MAAM,GAAG,GAAG;;;0BAGU,QAAQ,CAAC,gBAAgB;;sCAEb,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE;0CACpC,MAAM,CAAC,MAAM,CAAC,EAAE;;;uCAGnB,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;;YAC7C,OAAO,IAAI,CAAC;IACnB,CAAC;IAES,KAAK,CAAC,uBAAuB,CAAC,EAAY,EAAE,MAA2B;QAC/E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9E,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,MAAM,CAAC;QAChB,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,wBAAwB,CAAC,EAAY,EAAE,OAA8B;QACnF,IAAI,CAAC;YACH,gFAAgF;YAChF,MAAM,QAAQ,GAAmD,EAAE,CAAC;YACpE,MAAM,QAAQ,GAA0B,IAAI,CAAC,aAAa,CAAC;YAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,CAAC,EAAE,CAAC;oBACP,CAAC,GAAG;wBACF,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;qBACrB,CAAC;oBACF,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oGAAoG;YACpG,mCAAmC;YACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,GAAG,GAAG,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ;oCAC5C,CAAC,CAAC,IAAI;qBACX,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrF,MAAM,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,OAAO,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;gBAC7D,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CACtB;qBACA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC9C,IAAI,MAAM,EAAE,CAAC;oBACX,yGAAyG;oBACzG,uCAAuC;oBACvC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;wBACvB,MAAM,GAAG,GAAmB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;4BAC1D,OAAO;gCACL,SAAS,EAAE,EAAE,CAAC,IAAI;gCAClB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;6BAClB,CAAC;wBACJ,CAAC,CAAC,CAAC;wBACH,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAChG,IAAI,UAAU,EAAE,CAAC;4BACf,wCAAwC;4BACxC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;4BAClF,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;4BAC7B,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAES,mBAAmB,CAAC,MAAkB,EAAE,WAAmB;QACnE,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAC3B,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,qBAAY,CAAC,qBAAqB,YAAY,WAAW,KAAK,EAAE,CAAC,IAAI,qBAAqB,CACjH,CAAC,IAAI,CAAC,OAAO,qBAAY,CAAC,qBAAqB,MAAM,CAAC,CAAC;IAC1D,CAAC;IAES,0BAA0B,CAAC,MAAkB;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhE,OAAO;;kBAEO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,mBAAU,CAAC,kBAAkB;;mBAEhG,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ;;;;;;;mEAOU,MAAM,CAAC,EAAE;;;sBAGtD,gBAAgB;;4BAEV,mBAAU,CAAC,kBAAkB,6HAA6H,CAAC;QACnL,4IAA4I;IAC9I,CAAC;IAES,4BAA4B,CAAC,MAAkB;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhE,OAAO;;kBAEO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,mBAAU,CAAC,kBAAkB,qBAAqB,mBAAU,CAAC,kBAAkB;;mBAElJ,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ;;;;mBAItC,gBAAgB;;iCAEF,MAAM,CAAC,EAAE;;;SAGjC,CAAC;IACR,CAAC;IAES,4BAA4B,CAAC,MAAkB;QACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhE,OAAO;;;;;;mBAMQ,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,QAAQ;;gCAEzB,gBAAgB;;kBAE9B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;qCAEpD,MAAM,CAAC,EAAE;;;;;;;;;SASrC,CAAC,CAAC,iGAAiG;IAC1G,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,wBAAwB,CAAC,QAAsB;QAC1D,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;iBAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAE1G,MAAM,MAAM,GAA0B,IAAI,qBAAqB,EAAE,CAAC;YAClE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YAEpB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,gCAAgC;YAChC,IAAA,kBAAS,EAAC,yBAAyB,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAC;YAC/D,IAAI,WAAW,GAAW,CAAC,CAAC;YAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,IAAA,iCAAwB,EAAC,4CAA4C,CAAC,CAAC,IAAI,EAAE,EAAE,qBAAY,CAAC,IAAI,CAAC,CAAC;gBAClG,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;gBACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;oBACtB,IAAA,qCAA4B,EAC1B,4CAA4C,CAAC,CAAC,IAAI,EAAE,EACpD,EAAE,WAAW,EACb,QAAQ,CAAC,MAAM,EACf,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAY,CAAC,OAAO,CAChE,CAAC;oBACF,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBAC7D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC;gBAC1D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B,IAAA,qCAA4B,EAC1B,qCAAqC,QAAQ,CAAC,MAAM,WAAW,EAC/D,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAY,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAY,CAAC,GAAG,CACvD,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC,CAAC,OAAO;gBACvB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mCAAmC;QAC9C,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CAAC,OAA8B,EAAE,YAAoB,EAAE;QAC/E,IAAI,GAAG,CAAC,CAAC,0EAA0E;QACnF,IAAI,CAAC;YACH,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,EAAE,GAAG,IAAI,iBAAQ,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;gBACnB,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5B,IAAA,kBAAS,EAAC,aAAa,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;gBAEjD,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;oBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;oBAE9C,4BAA4B;oBAC5B,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;wBAC/C,IAAA,qCAA4B,EAC1B,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,EAAE,EAC/F,EAAE,YAAY,EACd,OAAO,CAAC,MAAM,EACd,qBAAY,CAAC,IAAI,CAClB,CAAC;wBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;wBAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBAC7C,CAAC,CAAC,CAAC;oBAEH,yDAAyD;oBACzD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACtD,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;gBAChC,CAAC;gBAED,kCAAkC;gBAClC,iMAAiM;gBACjM,qEAAqE;gBACrE,uDAAuD;gBACvD,IAAI;gBAEJ,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBACzB,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpE,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;;gBAAM,OAAO,IAAI,CAAC,CAAC,wBAAwB;QAC9C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,IAAI,GAAG,EAAE,CAAC;gBACR,mCAAmC;gBACnC,IAAI,CAAC;oBACH,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC;oBACrB,GAAG,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,6KAA6K;gBACjM,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAA,iBAAQ,EAAC,yGAAyG,CAAC,CAAC;oBACpH,IAAA,iBAAQ,EAAC,UAAU,CAAC,CAAC;oBACrB,OAAO,KAAK,CAAC,CAAC,uBAAuB;gBACvC,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,QAAQ;QACtB,oDAAoD;QACpD,MAAM,EAAE,GAAG,IAAI,gBAAO,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,OAAO,CAClC;YACE,UAAU,EAAE,2BAA2B;YACvC,WAAW,EAAE,oCAAoC;SAClD,EACD,IAAI,CAAC,WAAW,CACjB,CAAC;QACF,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,qCAAqC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,8DAA8D,CAC7H,CAAC;iBACC,CAAC;gBACJ,MAAM,EAAE,GAAG,IAAI,iBAAQ,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAA8B,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACjH,GAAG,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACjC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC;gBAC3B,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrB,OAAO,GAAG,CAAC;gBACb,CAAC;;oBAAM,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yBAAyB;YACzB,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,kBAAkB,CAAC,EAAY,EAAE,GAAgC,EAAE,MAA2B;QAC5G,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAChE,IAAI,EAAE,EAAE,CAAC;gBACP,8CAA8C;gBAC9C,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,+CAA+C;gBACvF,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,iHAAiH;oBACjH,YAAY,GAAG,MAAM,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC9E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,yCAAyC,CAAC,MAAM,CAAC,CAAC;oBAClF,IAAI,YAAY,IAAI,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;wBACpD,MAAM,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,4DAA4D;oBACpG,CAAC;yBAAM,CAAC;wBACN,sJAAsJ;wBACtJ,OAAO,IAAI,CAAC,wBAAwB,CAClC,EAAE,EACF,OAAO,EACP,4GAA4G,CAC7G,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,gEAAgE;gBAChE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC;wBACvC,UAAU,EAAE,IAAI;qBACjB,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC3G,CAAC;qBAAM,CAAC;oBACN,yEAAyE;oBACzE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;wBACrC,UAAU,EAAE,IAAI;wBAChB,gBAAgB,EAAE,KAAK,EAAE,yBAAyB;qBACnD,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC3G,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,wBAAwB,CAAC,EAAsB,EAAE,IAAyB,EAAE,YAAoB;QAC9G,IAAI,CAAC;YACH,EAAE,CAAC,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;YACpD,EAAE,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC3B,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;;gBAC5B,OAAO,KAAK,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,wBAAwB,CACtC,EAAY,EACZ,GAAgC,EAChC,MAA2B;QAE3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,eAAe,CAAqB,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5F,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAE/B,IAAI,MAAM,CAAC,SAAS;gBAClB,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,wHAAwH;;gBAC1J,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAE5D,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC;YACvB,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC;YACtB,IAAI,MAAM,CAAC,SAAS;gBAAE,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;iBACjD,CAAC;gBACJ,kFAAkF;gBAClF,qFAAqF;gBACrF,gBAAgB;gBAChB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;gBACrB,EAAE,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,aAAa,GAAG,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG;oBAC/B,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;;gBACxE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,WAAW;YAErC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC1C,IAAI,GAAG;oBAAE,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;;oBAC5C,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,mBAAmB;YAClD,CAAC;;gBAAM,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,mBAAmB;YAElD,MAAM,QAAQ,GAA0B,IAAI,CAAC,aAAa,CAAC;YAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,EAAE,CAAC,kBAAkB,GAAG,QAAQ,CAAC,8BAA8B,CAAC,aAAa,CAAC,CAAC;iBACxG,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,EAAE,CAAC,kBAAkB,GAAG,YAAY,CAAC;;gBACnE,EAAE,CAAC,kBAAkB,GAAG,gBAAgB,CAAC;YAE9C,EAAE,CAAC,WAAW,GAAG,GAAG,CAAC,EAAE,CAAC;YACxB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,iBAAQ,EAAC,CAAC,CAAC,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AApsBD,oEAosBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/external-change-detection",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.112.0",
|
|
4
4
|
"description": "Library used by server side applications to determine if changes have been made to entities by external systems/integrations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,10 +19,9 @@
|
|
|
19
19
|
"typescript": "^5.4.5"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@memberjunction/core": "2.
|
|
23
|
-
"@memberjunction/
|
|
24
|
-
"@memberjunction/
|
|
25
|
-
"@memberjunction/sqlserver-dataprovider": "2.111.0"
|
|
22
|
+
"@memberjunction/core-entities": "2.112.0",
|
|
23
|
+
"@memberjunction/global": "2.112.0",
|
|
24
|
+
"@memberjunction/sqlserver-dataprovider": "2.112.0"
|
|
26
25
|
},
|
|
27
26
|
"repository": {
|
|
28
27
|
"type": "git",
|