@memberjunction/integration-engine 5.41.0 → 5.43.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 +51 -0
- package/dist/BaseIntegrationConnector.d.ts +109 -0
- package/dist/BaseIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseIntegrationConnector.js +308 -93
- package/dist/BaseIntegrationConnector.js.map +1 -1
- package/dist/BaseRESTIntegrationConnector.d.ts +36 -0
- package/dist/BaseRESTIntegrationConnector.d.ts.map +1 -1
- package/dist/BaseRESTIntegrationConnector.js +228 -28
- package/dist/BaseRESTIntegrationConnector.js.map +1 -1
- package/dist/ContentHash.d.ts +22 -0
- package/dist/ContentHash.d.ts.map +1 -1
- package/dist/ContentHash.js +35 -0
- package/dist/ContentHash.js.map +1 -1
- package/dist/CustomColumnPromotion.d.ts +108 -0
- package/dist/CustomColumnPromotion.d.ts.map +1 -0
- package/dist/CustomColumnPromotion.js +202 -0
- package/dist/CustomColumnPromotion.js.map +1 -0
- package/dist/CustomOverflow.d.ts +64 -0
- package/dist/CustomOverflow.d.ts.map +1 -0
- package/dist/CustomOverflow.js +74 -0
- package/dist/CustomOverflow.js.map +1 -0
- package/dist/FieldMappingEngine.d.ts +16 -90
- package/dist/FieldMappingEngine.d.ts.map +1 -1
- package/dist/FieldMappingEngine.js +42 -257
- package/dist/FieldMappingEngine.js.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.d.ts +33 -0
- package/dist/IntegrationConnectorCreationPipeline.d.ts.map +1 -1
- package/dist/IntegrationConnectorCreationPipeline.js +157 -0
- package/dist/IntegrationConnectorCreationPipeline.js.map +1 -1
- package/dist/IntegrationEngine.d.ts +120 -6
- package/dist/IntegrationEngine.d.ts.map +1 -1
- package/dist/IntegrationEngine.js +890 -168
- package/dist/IntegrationEngine.js.map +1 -1
- package/dist/IntegrationSchemaSync.d.ts +84 -13
- package/dist/IntegrationSchemaSync.d.ts.map +1 -1
- package/dist/IntegrationSchemaSync.js +198 -36
- package/dist/IntegrationSchemaSync.js.map +1 -1
- package/dist/KeySerialization.d.ts +21 -0
- package/dist/KeySerialization.d.ts.map +1 -0
- package/dist/KeySerialization.js +29 -0
- package/dist/KeySerialization.js.map +1 -0
- package/dist/MatchEngine.d.ts.map +1 -1
- package/dist/MatchEngine.js +12 -4
- package/dist/MatchEngine.js.map +1 -1
- package/dist/RecordFlatten.d.ts +49 -0
- package/dist/RecordFlatten.d.ts.map +1 -0
- package/dist/RecordFlatten.js +50 -0
- package/dist/RecordFlatten.js.map +1 -0
- package/dist/StreamingDiscovery.d.ts +145 -0
- package/dist/StreamingDiscovery.d.ts.map +1 -0
- package/dist/StreamingDiscovery.js +306 -0
- package/dist/StreamingDiscovery.js.map +1 -0
- package/dist/SyncLogger.d.ts +1 -1
- package/dist/SyncLogger.d.ts.map +1 -1
- package/dist/SyncLogger.js +19 -1
- package/dist/SyncLogger.js.map +1 -1
- package/dist/auth-helpers/BasicAuthHeaderBuilder.d.ts +36 -0
- package/dist/auth-helpers/BasicAuthHeaderBuilder.d.ts.map +1 -0
- package/dist/auth-helpers/BasicAuthHeaderBuilder.js +38 -0
- package/dist/auth-helpers/BasicAuthHeaderBuilder.js.map +1 -0
- package/dist/auth-helpers/OAuth1aSigner.d.ts +56 -0
- package/dist/auth-helpers/OAuth1aSigner.d.ts.map +1 -0
- package/dist/auth-helpers/OAuth1aSigner.js +91 -0
- package/dist/auth-helpers/OAuth1aSigner.js.map +1 -0
- package/dist/auth-helpers/OAuth2TokenManager.d.ts +103 -0
- package/dist/auth-helpers/OAuth2TokenManager.d.ts.map +1 -0
- package/dist/auth-helpers/OAuth2TokenManager.js +143 -0
- package/dist/auth-helpers/OAuth2TokenManager.js.map +1 -0
- package/dist/auth-helpers/index.d.ts +11 -0
- package/dist/auth-helpers/index.d.ts.map +1 -0
- package/dist/auth-helpers/index.js +8 -0
- package/dist/auth-helpers/index.js.map +1 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
* @fileoverview Persists dynamically discovered integration objects and fields
|
|
3
|
+
* to the IntegrationObject / IntegrationObjectField tables.
|
|
4
|
+
*
|
|
5
|
+
* Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
|
|
6
|
+
* all objects and fields the connector discovered — not just the static ones
|
|
7
|
+
* from mj-sync push.
|
|
8
|
+
*
|
|
9
|
+
* Static records (IsCustom = false) are never overwritten — they are the
|
|
10
|
+
* curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
|
|
11
|
+
* When a dynamic field overlaps with a static field, the static record wins
|
|
12
|
+
* for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
|
|
13
|
+
* dynamic wins for type/size columns (Type, Length, Precision, Scale).
|
|
14
|
+
*/
|
|
15
15
|
import { IMetadataProvider, UserInfo } from '@memberjunction/core';
|
|
16
16
|
import type { SourceSchemaInfo } from './types.js';
|
|
17
17
|
import { type IntegrationObjectInfo } from './ActionMetadataGenerator.js';
|
|
@@ -27,6 +27,17 @@ export interface PersistSchemaOptions {
|
|
|
27
27
|
* Default: true.
|
|
28
28
|
*/
|
|
29
29
|
UseTransactionGroup?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* When true, declared IntegrationObjects that are ABSENT from this discovery are deactivated
|
|
32
|
+
* (Status='Disabled') so ApplyAll never materializes a table for them — avoiding thousands of
|
|
33
|
+
* phantom empty tables and the per-entity CodeGen/advancedGen cost they incur. Set ONLY by a
|
|
34
|
+
* COMPREHENSIVE refresh that probed every object (endpoint 404/empty = confidently absent); a
|
|
35
|
+
* requested-subset ApplyAll must leave it false, or it would deactivate objects it never checked.
|
|
36
|
+
* Object-level only — field-level absence (a field null across the data sample is NOT proof of
|
|
37
|
+
* absence) is deliberately not deactivated here. Deactivate, never delete: the IO + its column
|
|
38
|
+
* are preserved, and the CustomColumnPromoter reactivates them if the object reappears.
|
|
39
|
+
*/
|
|
40
|
+
DeactivateAbsent?: boolean;
|
|
30
41
|
}
|
|
31
42
|
/** Per-field provenance recording which source decided each attribute during the merge. */
|
|
32
43
|
export interface FieldMergeLog {
|
|
@@ -75,6 +86,66 @@ export declare function decideBooleanOverlay(declared: boolean | undefined, disc
|
|
|
75
86
|
value: boolean | undefined;
|
|
76
87
|
winner: 'Declared' | 'Discovered';
|
|
77
88
|
};
|
|
89
|
+
/** §7 — input for {@link decideAbsentDeactivations}. */
|
|
90
|
+
export interface AbsentDeactivationInput {
|
|
91
|
+
/** Caller requested a deactivating (comprehensive) refresh. */
|
|
92
|
+
DeactivateAbsent: boolean;
|
|
93
|
+
/** Discovery is AUTHORITATIVE — it enumerated the FULL gamut the credentials expose. */
|
|
94
|
+
IsAuthoritative: boolean;
|
|
95
|
+
/** ExternalName of every object this discovery returned. */
|
|
96
|
+
DiscoveredObjectNames: string[];
|
|
97
|
+
/** Per discovered object (by ExternalName): the field names it returned. An EMPTY list means the
|
|
98
|
+
* object's fields are NOT authoritative (DiscoverFields found none) → its columns are never disabled. */
|
|
99
|
+
DiscoveredFieldNamesByObject: Record<string, string[]>;
|
|
100
|
+
/** Current ACTIVE objects in the integration. */
|
|
101
|
+
ActiveObjects: Array<{
|
|
102
|
+
ID: string;
|
|
103
|
+
Name: string;
|
|
104
|
+
}>;
|
|
105
|
+
/** persisted IO ID → its current ACTIVE fields. */
|
|
106
|
+
ActiveFieldsByObjectID: Record<string, Array<{
|
|
107
|
+
ID: string;
|
|
108
|
+
Name: string;
|
|
109
|
+
}>>;
|
|
110
|
+
/** discovered ExternalName (any case) → persisted IO ID. */
|
|
111
|
+
ObjectIDByName: Record<string, string>;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* §7 — PURE decision of which active objects/fields a comprehensive AUTHORITATIVE discovery should
|
|
115
|
+
* DEACTIVATE (they are ABSENT from the discovery, so the source dropped them). Returns empty unless
|
|
116
|
+
* BOTH `DeactivateAbsent` AND `IsAuthoritative` — a stubbed/empty/cache-driven/scoped discovery
|
|
117
|
+
* (`IsAuthoritative=false`) deactivates NOTHING, because absence proves nothing and disabling would
|
|
118
|
+
* wrongly wipe the Declared metadata that is the only source. Field-level applies only to objects
|
|
119
|
+
* discovered WITH ≥1 field (zero discovered fields ⇒ not authoritative for that object's columns).
|
|
120
|
+
* The inverse — reactivate-on-rediscover (Disabled → Active when it reappears) — is handled in the
|
|
121
|
+
* upserts, not here. Pure ⇒ unit-testable without mocking the engine or provider.
|
|
122
|
+
*/
|
|
123
|
+
export declare function decideAbsentDeactivations(input: AbsentDeactivationInput): {
|
|
124
|
+
ObjectIDsToDeactivate: string[];
|
|
125
|
+
FieldIDsToDeactivate: string[];
|
|
126
|
+
};
|
|
127
|
+
/** §B — input for {@link decideSchemaLimitViolations}: the selected table/column counts + the operator caps. */
|
|
128
|
+
export interface SchemaLimitInput {
|
|
129
|
+
/** Number of tables the user selected to materialize. */
|
|
130
|
+
TableCount: number;
|
|
131
|
+
/** Per selected table: its name + the column count it would materialize. */
|
|
132
|
+
ColumnCountByTable: Array<{
|
|
133
|
+
Name: string;
|
|
134
|
+
ColumnCount: number;
|
|
135
|
+
}>;
|
|
136
|
+
/** Operator cap on table count (from MJ_INTEGRATION_MAX_TABLES). null = unbounded. */
|
|
137
|
+
MaxTables: number | null;
|
|
138
|
+
/** Operator cap on columns per table (from MJ_INTEGRATION_MAX_COLUMNS_PER_TABLE). null = unbounded. */
|
|
139
|
+
MaxColumnsPerTable: number | null;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* §B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable
|
|
143
|
+
* violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be
|
|
144
|
+
* able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
|
|
145
|
+
* `null` caps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the
|
|
146
|
+
* resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.
|
|
147
|
+
*/
|
|
148
|
+
export declare function decideSchemaLimitViolations(input: SchemaLimitInput): string[];
|
|
78
149
|
/** Per-object provenance summary. */
|
|
79
150
|
export interface ObjectMergeLog {
|
|
80
151
|
ObjectName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IntegrationSchemaSync.d.ts","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
import { Metadata, RunView } from '@memberjunction/core';
|
|
2
|
+
* @fileoverview Persists dynamically discovered integration objects and fields
|
|
3
|
+
* to the IntegrationObject / IntegrationObjectField tables.
|
|
4
|
+
*
|
|
5
|
+
* Called during RSU (after IntrospectSchema) to ensure the metadata DB reflects
|
|
6
|
+
* all objects and fields the connector discovered — not just the static ones
|
|
7
|
+
* from mj-sync push.
|
|
8
|
+
*
|
|
9
|
+
* Static records (IsCustom = false) are never overwritten — they are the
|
|
10
|
+
* curated baseline. Dynamic-only records (IsCustom = true) are upserted freely.
|
|
11
|
+
* When a dynamic field overlaps with a static field, the static record wins
|
|
12
|
+
* for constraint columns (IsPrimaryKey, IsRequired, Description, etc.) and
|
|
13
|
+
* dynamic wins for type/size columns (Type, Length, Precision, Scale).
|
|
14
|
+
*/
|
|
15
|
+
import { CompositeKey, LogError, Metadata, RunView } from '@memberjunction/core';
|
|
16
16
|
import { IntegrationEngineBase } from '@memberjunction/integration-engine-base';
|
|
17
|
-
import { EnrichSchemaConstraints } from './EnrichSchemaConstraints.js';
|
|
18
17
|
import { ActionMetadataGenerator } from './ActionMetadataGenerator.js';
|
|
19
18
|
/**
|
|
20
19
|
* Pure-function overlay rule for a single boolean attribute.
|
|
@@ -45,12 +44,77 @@ export function decideBooleanOverlay(declared, discovered) {
|
|
|
45
44
|
}
|
|
46
45
|
return { value: discovered, winner: 'Discovered' };
|
|
47
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* §7 — PURE decision of which active objects/fields a comprehensive AUTHORITATIVE discovery should
|
|
49
|
+
* DEACTIVATE (they are ABSENT from the discovery, so the source dropped them). Returns empty unless
|
|
50
|
+
* BOTH `DeactivateAbsent` AND `IsAuthoritative` — a stubbed/empty/cache-driven/scoped discovery
|
|
51
|
+
* (`IsAuthoritative=false`) deactivates NOTHING, because absence proves nothing and disabling would
|
|
52
|
+
* wrongly wipe the Declared metadata that is the only source. Field-level applies only to objects
|
|
53
|
+
* discovered WITH ≥1 field (zero discovered fields ⇒ not authoritative for that object's columns).
|
|
54
|
+
* The inverse — reactivate-on-rediscover (Disabled → Active when it reappears) — is handled in the
|
|
55
|
+
* upserts, not here. Pure ⇒ unit-testable without mocking the engine or provider.
|
|
56
|
+
*/
|
|
57
|
+
export function decideAbsentDeactivations(input) {
|
|
58
|
+
if (!input.DeactivateAbsent || !input.IsAuthoritative) {
|
|
59
|
+
return { ObjectIDsToDeactivate: [], FieldIDsToDeactivate: [] };
|
|
60
|
+
}
|
|
61
|
+
const discovered = new Set(input.DiscoveredObjectNames.map((n) => n.toLowerCase()));
|
|
62
|
+
const ObjectIDsToDeactivate = input.ActiveObjects.filter((o) => !discovered.has(o.Name.toLowerCase())).map((o) => o.ID);
|
|
63
|
+
const FieldIDsToDeactivate = [];
|
|
64
|
+
for (const [objName, fieldNames] of Object.entries(input.DiscoveredFieldNamesByObject)) {
|
|
65
|
+
if (fieldNames.length === 0)
|
|
66
|
+
continue; // not authoritative for this object's columns — never disable them
|
|
67
|
+
const objID = input.ObjectIDByName[objName.toLowerCase()];
|
|
68
|
+
if (!objID)
|
|
69
|
+
continue;
|
|
70
|
+
const discoveredFields = new Set(fieldNames.map((f) => f.toLowerCase()));
|
|
71
|
+
for (const f of input.ActiveFieldsByObjectID[objID] ?? []) {
|
|
72
|
+
if (!discoveredFields.has(f.Name.toLowerCase()))
|
|
73
|
+
FieldIDsToDeactivate.push(f.ID);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return { ObjectIDsToDeactivate, FieldIDsToDeactivate };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* §B — PURE decision for the create-tables/RSU table+column caps. Returns a list of human-readable
|
|
80
|
+
* violation messages (empty = within limits). These caps are OPERATOR/env guardrails (a user must not be
|
|
81
|
+
* able to raise their own cap via the same API they apply with). Over-limit is REJECTED, never truncated.
|
|
82
|
+
* `null` caps mean unbounded (the default), so the common case returns []. Pure ⇒ unit-testable without the
|
|
83
|
+
* resolver/DB; the resolver builds the input from the selection and throws if this returns any violation.
|
|
84
|
+
*/
|
|
85
|
+
export function decideSchemaLimitViolations(input) {
|
|
86
|
+
const violations = [];
|
|
87
|
+
if (input.MaxTables !== null && input.TableCount > input.MaxTables) {
|
|
88
|
+
violations.push(`Selected ${input.TableCount} tables, which exceeds the deployment's MJ_INTEGRATION_MAX_TABLES limit (${input.MaxTables}). ` +
|
|
89
|
+
`The apply was REJECTED — no tables were created. Narrow the selection (the cap is an operator/env setting).`);
|
|
90
|
+
}
|
|
91
|
+
if (input.MaxColumnsPerTable !== null) {
|
|
92
|
+
const max = input.MaxColumnsPerTable;
|
|
93
|
+
const offenders = input.ColumnCountByTable.filter((t) => t.ColumnCount > max);
|
|
94
|
+
if (offenders.length > 0) {
|
|
95
|
+
violations.push(`These selected table(s) exceed the deployment's MJ_INTEGRATION_MAX_COLUMNS_PER_TABLE limit (${max}): ` +
|
|
96
|
+
`${offenders.map((o) => `${o.Name} (${o.ColumnCount} columns)`).join(', ')}. ` +
|
|
97
|
+
`The apply was REJECTED — no tables were created. Narrow the columns (the cap is an operator/env setting).`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return violations;
|
|
101
|
+
}
|
|
48
102
|
/**
|
|
49
103
|
* Maps generic source types (from connectors) to MJ EntityField-compatible type strings.
|
|
50
104
|
*/
|
|
51
105
|
function MapSourceType(sourceType) {
|
|
52
106
|
const t = (sourceType ?? '').toLowerCase();
|
|
53
|
-
|
|
107
|
+
// LARGE-text modalities → NVARCHAR(MAX). A serialized json/array/object value (and free-form
|
|
108
|
+
// text) routinely exceeds the unsized-string floor (255); mapping these to a bounded `nvarchar`
|
|
109
|
+
// makes the schema builder size them at 255, and the skip-on-overflow policy then DROPS every
|
|
110
|
+
// record whose value is wider than 255 (the OpenWater `Program.rounds` / Path LMS `details`
|
|
111
|
+
// class of bug — a nested array's JSON is ~287 chars). 'nvarchar(MAX)' is a valid IOF.Type and is
|
|
112
|
+
// self-describing (no separate Length needed). Bounded scalar `string` keeps the 255 floor.
|
|
113
|
+
if (t === 'text' || t === 'richtext' || t === 'json' || t === 'object' || t === 'array')
|
|
114
|
+
return 'nvarchar(MAX)';
|
|
115
|
+
if (t === 'nvarchar(max)' || t === 'ntext')
|
|
116
|
+
return 'nvarchar(MAX)'; // already-MAX → preserve on re-discovery
|
|
117
|
+
if (t === 'string')
|
|
54
118
|
return 'nvarchar';
|
|
55
119
|
if (t === 'integer' || t === 'int' || t === 'number')
|
|
56
120
|
return 'nvarchar'; // stored as nvarchar in integration schemas
|
|
@@ -97,23 +161,22 @@ export class IntegrationSchemaSync {
|
|
|
97
161
|
ObjectMergeLog: [],
|
|
98
162
|
FieldMergeLog: [],
|
|
99
163
|
};
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
|
|
164
|
+
// §D — NO runtime FK-from-stream inference. Foreign keys come ONLY from (a) declared metadata
|
|
165
|
+
// (the curated .<vendor>.integration.json) or (b) the connector's own DiscoverFields/DiscoverObjects
|
|
166
|
+
// (which read a real describe/schema endpoint and set IsForeignKey + ForeignKeyTarget). Discovery is a
|
|
167
|
+
// lightweight PK-only guess; a naming-heuristic FK guess over the sampled stream produced false edges that
|
|
168
|
+
// skewed the sync DAG, so it was removed. Whatever FK info SourceSchema.Objects already carries flows
|
|
169
|
+
// through the Declared/Discovered merge as-is. (EnrichSchemaConstraints remains exported for offline use.)
|
|
105
170
|
// Load existing objects for this integration from cache
|
|
106
171
|
const existingObjects = engine.GetIntegrationObjectsByIntegrationID(IntegrationID);
|
|
107
172
|
// Phase 1: upsert objects. Object upserts must complete before field upserts
|
|
108
173
|
// (fields need ObjectID). Within this phase, upserts are independent so we
|
|
109
174
|
// batch-execute via Promise.all (concurrency cap to avoid hammering the DB).
|
|
110
|
-
const objectUpserts = SourceSchema.Objects.map(srcObj => async () => {
|
|
175
|
+
const objectUpserts = SourceSchema.Objects.map((srcObj) => async () => {
|
|
111
176
|
const objResult = await IntegrationSchemaSync.UpsertObject(md, IntegrationID, srcObj, existingObjects, ContextUser);
|
|
112
177
|
return { srcObj, ...objResult };
|
|
113
178
|
});
|
|
114
|
-
const objectResults = useBatch
|
|
115
|
-
? await IntegrationSchemaSync.batchExec(objectUpserts, 8)
|
|
116
|
-
: await IntegrationSchemaSync.serialExec(objectUpserts);
|
|
179
|
+
const objectResults = useBatch ? await IntegrationSchemaSync.batchExec(objectUpserts, 8) : await IntegrationSchemaSync.serialExec(objectUpserts);
|
|
117
180
|
for (const r of objectResults) {
|
|
118
181
|
result.ObjectsCreated += r.Created ? 1 : 0;
|
|
119
182
|
result.ObjectsUpdated += r.Updated ? 1 : 0;
|
|
@@ -140,8 +203,8 @@ export class IntegrationSchemaSync {
|
|
|
140
203
|
// Phase 2: upsert fields per object. Across objects is parallelizable; within
|
|
141
204
|
// an object the field set is sequential against the cached field list.
|
|
142
205
|
const fieldUpsertJobs = objectResults
|
|
143
|
-
.filter(r => r.ObjectID)
|
|
144
|
-
.map(r => async () => {
|
|
206
|
+
.filter((r) => r.ObjectID)
|
|
207
|
+
.map((r) => async () => {
|
|
145
208
|
const existingFields = engine.GetIntegrationObjectFields(r.ObjectID);
|
|
146
209
|
const perObjectLogs = [];
|
|
147
210
|
const perObjectStats = { created: 0, updated: 0 };
|
|
@@ -170,14 +233,69 @@ export class IntegrationSchemaSync {
|
|
|
170
233
|
}));
|
|
171
234
|
return { stats: perObjectStats, logs: perObjectLogs };
|
|
172
235
|
});
|
|
173
|
-
const fieldResults = useBatch
|
|
174
|
-
? await IntegrationSchemaSync.batchExec(fieldUpsertJobs, 8)
|
|
175
|
-
: await IntegrationSchemaSync.serialExec(fieldUpsertJobs);
|
|
236
|
+
const fieldResults = useBatch ? await IntegrationSchemaSync.batchExec(fieldUpsertJobs, 8) : await IntegrationSchemaSync.serialExec(fieldUpsertJobs);
|
|
176
237
|
for (const fr of fieldResults) {
|
|
177
238
|
result.FieldsCreated += fr.stats.created;
|
|
178
239
|
result.FieldsUpdated += fr.stats.updated;
|
|
179
240
|
result.FieldMergeLog.push(...fr.logs);
|
|
180
241
|
}
|
|
242
|
+
// Phase 3 (gated): deactivate phantom objects/fields — declared IOs/IOFs ABSENT from this discovery,
|
|
243
|
+
// so ApplyAll never materializes them (the phantom-table / advancedGen-cost problem). Runs ONLY when
|
|
244
|
+
// BOTH (a) the caller requested it (DeactivateAbsent) AND (b) the discovery is AUTHORITATIVE — it
|
|
245
|
+
// enumerated the FULL gamut the credentials expose (SourceSchema.IsAuthoritative). A stubbed/empty or
|
|
246
|
+
// cache-driven discovery has IsAuthoritative=false, so absence proves NOTHING and nothing is disabled
|
|
247
|
+
// (else it would wrongly wipe the Declared metadata that is the only source). Deactivate, never delete.
|
|
248
|
+
if (opts.DeactivateAbsent && SourceSchema.IsAuthoritative) {
|
|
249
|
+
// Gather the active set + per-discovered-object fields, then let the PURE decision
|
|
250
|
+
// (decideAbsentDeactivations — unit-tested) choose what to Disable. The EFFECT (load + Save) is
|
|
251
|
+
// applied here; the CHOICE lives in the pure function so it is testable without mocking the engine.
|
|
252
|
+
const discoveredFieldNamesByObject = {};
|
|
253
|
+
const objectIDByName = {};
|
|
254
|
+
const activeFieldsByObjectID = {};
|
|
255
|
+
for (const r of objectResults) {
|
|
256
|
+
if (!r.ObjectID)
|
|
257
|
+
continue;
|
|
258
|
+
discoveredFieldNamesByObject[r.srcObj.ExternalName] = r.srcObj.Fields.map((f) => f.Name);
|
|
259
|
+
objectIDByName[r.srcObj.ExternalName.toLowerCase()] = r.ObjectID;
|
|
260
|
+
activeFieldsByObjectID[r.ObjectID] = engine
|
|
261
|
+
.GetIntegrationObjectFields(r.ObjectID)
|
|
262
|
+
.filter((iof) => iof.Status === 'Active')
|
|
263
|
+
.map((iof) => ({ ID: iof.ID, Name: iof.Name }));
|
|
264
|
+
}
|
|
265
|
+
const decision = decideAbsentDeactivations({
|
|
266
|
+
DeactivateAbsent: true,
|
|
267
|
+
IsAuthoritative: true,
|
|
268
|
+
DiscoveredObjectNames: SourceSchema.Objects.map((o) => o.ExternalName),
|
|
269
|
+
DiscoveredFieldNamesByObject: discoveredFieldNamesByObject,
|
|
270
|
+
ActiveObjects: engine.GetActiveIntegrationObjects(IntegrationID).map((io) => ({ ID: io.ID, Name: io.Name })),
|
|
271
|
+
ActiveFieldsByObjectID: activeFieldsByObjectID,
|
|
272
|
+
ObjectIDByName: objectIDByName,
|
|
273
|
+
});
|
|
274
|
+
let deactivated = 0;
|
|
275
|
+
for (const id of decision.ObjectIDsToDeactivate) {
|
|
276
|
+
const obj = await md.GetEntityObject('MJ: Integration Objects', ContextUser);
|
|
277
|
+
if (await obj.InnerLoad(CompositeKey.FromID(id))) {
|
|
278
|
+
obj.Status = 'Disabled'; // deactivate (Active|Deprecated|Disabled enum); never delete
|
|
279
|
+
if (await obj.Save())
|
|
280
|
+
deactivated++;
|
|
281
|
+
else
|
|
282
|
+
LogError(`[IntegrationSchemaSync] Failed to deactivate phantom object ${id}: ${obj.LatestResult?.CompleteMessage ?? 'unknown'}`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
let fieldsDeactivated = 0;
|
|
286
|
+
for (const id of decision.FieldIDsToDeactivate) {
|
|
287
|
+
const f = await md.GetEntityObject('MJ: Integration Object Fields', ContextUser);
|
|
288
|
+
if (await f.InnerLoad(CompositeKey.FromID(id))) {
|
|
289
|
+
f.Status = 'Disabled'; // deactivate, never delete
|
|
290
|
+
if (await f.Save())
|
|
291
|
+
fieldsDeactivated++;
|
|
292
|
+
else
|
|
293
|
+
LogError(`[IntegrationSchemaSync] Failed to deactivate phantom field ${id}: ${f.LatestResult?.CompleteMessage ?? 'unknown'}`);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (deactivated > 0 || fieldsDeactivated > 0)
|
|
297
|
+
console.log(`[IntegrationSchemaSync] Deactivated ${deactivated} object(s) + ${fieldsDeactivated} field(s) absent from authoritative discovery for ${IntegrationID} (not materialized, not deleted).`);
|
|
298
|
+
}
|
|
181
299
|
console.log(`[IntegrationSchemaSync] Persisted schema for ${IntegrationID}: ${result.ObjectsCreated} objects created, ${result.ObjectsUpdated} updated, ${result.FieldsCreated} fields created, ${result.FieldsUpdated} updated`);
|
|
182
300
|
return result;
|
|
183
301
|
}
|
|
@@ -211,7 +329,7 @@ export class IntegrationSchemaSync {
|
|
|
211
329
|
}
|
|
212
330
|
// ── Object upsert ────────────────────────────────────────────────
|
|
213
331
|
static async UpsertObject(md, integrationID, srcObj, existingObjects, contextUser) {
|
|
214
|
-
const existing = existingObjects.find(o => o.Name.toLowerCase() === srcObj.ExternalName.toLowerCase());
|
|
332
|
+
const existing = existingObjects.find((o) => o.Name.toLowerCase() === srcObj.ExternalName.toLowerCase());
|
|
215
333
|
if (existing) {
|
|
216
334
|
// Declared row exists. Discovery may enrich (e.g. Description if empty,
|
|
217
335
|
// IncrementalWatermarkField if newly observed). Curated values win for
|
|
@@ -233,11 +351,22 @@ export class IntegrationSchemaSync {
|
|
|
233
351
|
dirty = true;
|
|
234
352
|
changes.push('IncrementalWatermarkField');
|
|
235
353
|
}
|
|
354
|
+
// §7 REACTIVATE-on-rediscover: an object the source dropped (and we Disabled) that REAPPEARS in a
|
|
355
|
+
// later discovery flips back to Active — deactivation is reversible, the active set always tracks
|
|
356
|
+
// the live source. Matched against ALL rows (GetIntegrationObjectsByIntegrationID), so a Disabled
|
|
357
|
+
// row is found and reactivated rather than duplicated (UQ_IntegrationObject_Name).
|
|
358
|
+
if (existing.Status !== 'Active') {
|
|
359
|
+
existing.Status = 'Active';
|
|
360
|
+
dirty = true;
|
|
361
|
+
changes.push('Status:reactivated');
|
|
362
|
+
}
|
|
236
363
|
if (dirty) {
|
|
237
364
|
try {
|
|
238
365
|
await existing.Save();
|
|
239
366
|
}
|
|
240
|
-
catch {
|
|
367
|
+
catch {
|
|
368
|
+
/* ignore save failures on declared records */
|
|
369
|
+
}
|
|
241
370
|
console.log(JSON.stringify({
|
|
242
371
|
ts: new Date().toISOString(),
|
|
243
372
|
event: 'persist.object.updated',
|
|
@@ -268,6 +397,12 @@ export class IntegrationSchemaSync {
|
|
|
268
397
|
obj.NewRecord();
|
|
269
398
|
obj.IntegrationID = integrationID;
|
|
270
399
|
obj.Name = srcObj.ExternalName;
|
|
400
|
+
// APIPath is NOT NULL with no DB default. Declared objects get it from the metadata file;
|
|
401
|
+
// a runtime-DISCOVERED object has no source APIPath (ExternalObjectSchema carries none),
|
|
402
|
+
// so default it to the object name. Path-driven connectors read APIPath; runtime-discovery
|
|
403
|
+
// connectors (e.g. a file feed) key off the object name and ignore it. Without this,
|
|
404
|
+
// Save() fails the NOT-NULL check and the discovered object is silently lost.
|
|
405
|
+
obj.APIPath = srcObj.ExternalName;
|
|
271
406
|
obj.DisplayName = srcObj.ExternalLabel || srcObj.ExternalName;
|
|
272
407
|
if (srcObj.Description)
|
|
273
408
|
obj.Description = srcObj.Description;
|
|
@@ -289,6 +424,9 @@ export class IntegrationSchemaSync {
|
|
|
289
424
|
}));
|
|
290
425
|
return { ObjectID: obj.ID, Created: true, Updated: false, EffectiveSource: 'Discovered' };
|
|
291
426
|
}
|
|
427
|
+
// Save() returned false (validation/constraint failure) WITHOUT throwing — SURFACE it.
|
|
428
|
+
// A silent false here is exactly how discovered objects vanished with zero signal.
|
|
429
|
+
console.warn(`[IntegrationSchemaSync] Save() returned false creating IntegrationObject '${srcObj.ExternalName}': ${obj.LatestResult?.CompleteMessage ?? 'unknown validation failure'}`);
|
|
292
430
|
}
|
|
293
431
|
catch (err) {
|
|
294
432
|
console.warn(`[IntegrationSchemaSync] Failed to create IntegrationObject '${srcObj.ExternalName}': ${err instanceof Error ? err.message : err}`);
|
|
@@ -302,7 +440,7 @@ export class IntegrationSchemaSync {
|
|
|
302
440
|
return undefined;
|
|
303
441
|
return siblingNameToID.get(target.toLowerCase());
|
|
304
442
|
};
|
|
305
|
-
const existing = existingFields.find(f => f.Name.toLowerCase() === srcField.Name.toLowerCase());
|
|
443
|
+
const existing = existingFields.find((f) => f.Name.toLowerCase() === srcField.Name.toLowerCase());
|
|
306
444
|
const winners = {};
|
|
307
445
|
if (existing) {
|
|
308
446
|
// Declared row exists. Overlay rule:
|
|
@@ -314,6 +452,12 @@ export class IntegrationSchemaSync {
|
|
|
314
452
|
// attribute so the caller (progress emitter, UI) can show structural
|
|
315
453
|
// transparency on the merge.
|
|
316
454
|
let dirty = false;
|
|
455
|
+
// §7 REACTIVATE-on-rediscover: a field the source dropped (and we Disabled) that REAPPEARS flips
|
|
456
|
+
// back to Active. existingFields includes Disabled rows, so it is reactivated, not duplicated.
|
|
457
|
+
if (existing.Status !== 'Active') {
|
|
458
|
+
existing.Status = 'Active';
|
|
459
|
+
dirty = true;
|
|
460
|
+
}
|
|
317
461
|
const mappedType = MapSourceType(srcField.SourceType);
|
|
318
462
|
const describedAllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
|
|
319
463
|
if (existing.Type !== mappedType) {
|
|
@@ -324,6 +468,13 @@ export class IntegrationSchemaSync {
|
|
|
324
468
|
else {
|
|
325
469
|
winners.Type = 'Declared';
|
|
326
470
|
}
|
|
471
|
+
// Length is DDL-affecting (describe wins): seed it so the column is sized
|
|
472
|
+
// nvarchar(N) instead of defaulting to NVARCHAR(MAX) downstream. (Large-text types carry
|
|
473
|
+
// their MAX in the Type itself — 'nvarchar(MAX)' — via MapSourceType, so no length here.)
|
|
474
|
+
if (srcField.MaxLength != null && existing.Length !== srcField.MaxLength) {
|
|
475
|
+
existing.Length = srcField.MaxLength;
|
|
476
|
+
dirty = true;
|
|
477
|
+
}
|
|
327
478
|
if (existing.AllowsNull !== describedAllowsNull) {
|
|
328
479
|
existing.AllowsNull = describedAllowsNull;
|
|
329
480
|
dirty = true;
|
|
@@ -408,6 +559,11 @@ export class IntegrationSchemaSync {
|
|
|
408
559
|
if (srcField.Description)
|
|
409
560
|
field.Description = srcField.Description;
|
|
410
561
|
field.Type = MapSourceType(srcField.SourceType);
|
|
562
|
+
// Persist the discovered length onto IOF.Length so the schema builder sizes the column
|
|
563
|
+
// (nvarchar(N)). Large-text types carry their MAX in the Type ('nvarchar(MAX)') via
|
|
564
|
+
// MapSourceType, so no length is set for them here.
|
|
565
|
+
if (srcField.MaxLength != null)
|
|
566
|
+
field.Length = srcField.MaxLength;
|
|
411
567
|
field.AllowsNull = srcField.AllowsNull ?? !srcField.IsRequired;
|
|
412
568
|
field.IsPrimaryKey = srcField.IsPrimaryKey;
|
|
413
569
|
field.IsRequired = srcField.IsRequired;
|
|
@@ -424,9 +580,15 @@ export class IntegrationSchemaSync {
|
|
|
424
580
|
}
|
|
425
581
|
const saved = await field.Save();
|
|
426
582
|
const initialWinners = {
|
|
427
|
-
Type: 'Initial',
|
|
428
|
-
|
|
429
|
-
|
|
583
|
+
Type: 'Initial',
|
|
584
|
+
Length: 'Initial',
|
|
585
|
+
AllowsNull: 'Initial',
|
|
586
|
+
IsRequired: 'Initial',
|
|
587
|
+
IsPrimaryKey: 'Initial',
|
|
588
|
+
IsUniqueKey: 'Initial',
|
|
589
|
+
IsReadOnly: 'Initial',
|
|
590
|
+
Description: 'Initial',
|
|
591
|
+
ForeignKey: 'Initial',
|
|
430
592
|
};
|
|
431
593
|
return { Created: saved, Updated: false, EffectiveSource: 'Discovered', AttributeWinners: initialWinners };
|
|
432
594
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IntegrationSchemaSync.js","sourceRoot":"","sources":["../src/IntegrationSchemaSync.ts"],"names":[],"mappings":"AAAE;;;;;;;;;;;;;EAaC;AAEH,OAAO,EAAE,YAAY,EAAqB,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAUhF,OAAO,EAAE,uBAAuB,EAA8B,MAAM,2BAA2B,CAAC;AAmDhG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAA6B,EAC7B,UAA+B;IAE/B,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACrD,CAAC;AAqBD;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA8B;IAItE,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACtD,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAExH,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC;QACvF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,mEAAmE;QAC1G,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC;AACzD,CAAC;AAcD;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAuB;IACjE,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QACnE,UAAU,CAAC,IAAI,CACb,YAAY,KAAK,CAAC,UAAU,4EAA4E,KAAK,CAAC,SAAS,KAAK;YAC5H,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;QAC9E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CACb,+FAA+F,GAAG,KAAK;gBACvG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAC9E,2GAA2G,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AA4BD;;GAEG;AACH,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,6FAA6F;IAC7F,gGAAgG;IAChG,8FAA8F;IAC9F,4FAA4F;IAC5F,kGAAkG;IAClG,4FAA4F;IAC5F,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC;IAChH,IAAI,CAAC,KAAK,eAAe,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC,CAAC,yCAAyC;IAC7G,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC;IACtC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,CAAC,4CAA4C;IACrH,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC5E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,WAAW;QAAE,OAAO,gBAAgB,CAAC;IACnF,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,aAAa,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC/E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,OAAO,qBAAqB;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAA0B;QACpE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC1D,MAAM,EAAE,GAAsB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QACjE,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAClD,MAAM,MAAM,GAAwB;YAClC,cAAc,EAAE,CAAC;YACjB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,EAAE;SAClB,CAAC;QAEF,8FAA8F;QAC9F,qGAAqG;QACrG,uGAAuG;QACvG,2GAA2G;QAC3G,sGAAsG;QACtG,2GAA2G;QAE3G,wDAAwD;QACxD,MAAM,eAAe,GAAG,MAAM,CAAC,oCAAoC,CAAC,aAAa,CAAC,CAAC;QAEnF,6EAA6E;QAC7E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;YACpE,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,YAAY,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;YACpH,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEjJ,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;gBACzB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;gBACjC,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,4EAA4E;QAC5E,+EAA+E;QAC/E,yEAAyE;QACzE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,EAAE;gBAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,CAAC,QAAQ;gBAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvF,CAAC;QAED,8EAA8E;QAC9E,uEAAuE;QACvE,MAAM,eAAe,GAAG,aAAa;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;YACrB,MAAM,cAAc,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC;YACtE,MAAM,aAAa,GAAoB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,QAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAC5H,IAAI,EAAE,CAAC,OAAO;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,EAAE,CAAC,OAAO;oBAAE,cAAc,CAAC,OAAO,EAAE,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC;oBACjB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;oBACjC,SAAS,EAAE,QAAQ,CAAC,IAAI;oBACxB,eAAe,EAAE,EAAE,CAAC,eAAe;oBACnC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;iBACtC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,4BAA4B;gBACnC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;gBACjC,mBAAmB,EAAE,CAAC,CAAC,QAAQ;gBAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;gBACtC,aAAa,EAAE,cAAc,CAAC,OAAO;gBACrC,aAAa,EAAE,cAAc,CAAC,OAAO;gBACrC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO;aAC1F,CAAC,CACH,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEL,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAEpJ,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;YACzC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,qGAAqG;QACrG,qGAAqG;QACrG,kGAAkG;QAClG,sGAAsG;QACtG,sGAAsG;QACtG,wGAAwG;QACxG,IAAI,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;YAC1D,mFAAmF;YACnF,gGAAgG;YAChG,oGAAoG;YACpG,MAAM,4BAA4B,GAA6B,EAAE,CAAC;YAClE,MAAM,cAAc,GAA2B,EAAE,CAAC;YAClD,MAAM,sBAAsB,GAAwD,EAAE,CAAC;YACvF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,CAAC,CAAC,CAAC,QAAQ;oBAAE,SAAS;gBAC1B,4BAA4B,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzF,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACjE,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM;qBACxC,0BAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC;qBACtC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;qBACxC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC;gBACzC,gBAAgB,EAAE,IAAI;gBACtB,eAAe,EAAE,IAAI;gBACrB,qBAAqB,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;gBACtE,4BAA4B,EAAE,4BAA4B;gBAC1D,aAAa,EAAE,MAAM,CAAC,2BAA2B,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5G,sBAAsB,EAAE,sBAAsB;gBAC9C,cAAc,EAAE,cAAc;aAC/B,CAAC,CAAC;YACH,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAA4B,yBAAyB,EAAE,WAAW,CAAC,CAAC;gBACxG,IAAI,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACjD,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,6DAA6D;oBACtF,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE;wBAAE,WAAW,EAAE,CAAC;;wBAC/B,QAAQ,CAAC,+DAA+D,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE,eAAe,IAAI,SAAS,EAAE,CAAC,CAAC;gBACxI,CAAC;YACH,CAAC;YACD,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiC,+BAA+B,EAAE,WAAW,CAAC,CAAC;gBACjH,IAAI,MAAM,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC/C,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,2BAA2B;oBAClD,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE;wBAAE,iBAAiB,EAAE,CAAC;;wBACnC,QAAQ,CAAC,8DAA8D,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,eAAe,IAAI,SAAS,EAAE,CAAC,CAAC;gBACrI,CAAC;YACH,CAAC;YACD,IAAI,WAAW,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC;gBAC1C,OAAO,CAAC,GAAG,CACT,uCAAuC,WAAW,gBAAgB,iBAAiB,qDAAqD,aAAa,mCAAmC,CACzL,CAAC;QACN,CAAC;QAED,OAAO,CAAC,GAAG,CACT,gDAAgD,aAAa,KAAK,MAAM,CAAC,cAAc,qBAAqB,MAAM,CAAC,cAAc,aAAa,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,aAAa,UAAU,CACrN,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,KAAK,CAAC,SAAS,CAAI,IAA6B,EAAE,WAAmB;QAClF,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;YACpF,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;oBAAE,OAAO;gBAC7B,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yFAAyF;IACjF,MAAM,CAAC,KAAK,CAAC,UAAU,CAAI,IAA6B;QAC9D,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;IAED,oEAAoE;IAE5D,MAAM,CAAC,KAAK,CAAC,YAAY,CAC/B,EAAqB,EACrB,aAAqB,EACrB,MAAwB,EACxB,eAA4C,EAC5C,WAAqB;QAErB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QAEzG,IAAI,QAAQ,EAAE,CAAC;YACb,wEAAwE;YACxE,uEAAuE;YACvE,2EAA2E;YAC3E,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAChD,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC1C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YACD,0FAA0F;YAC1F,yFAAyF;YACzF,0FAA0F;YAC1F,2FAA2F;YAC3F,gEAAgE;YAChE,IAAI,MAAM,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC;gBAC5E,QAAQ,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;gBACtE,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC5C,CAAC;YACD,kGAAkG;YAClG,kGAAkG;YAClG,kGAAkG;YAClG,mFAAmF;YACnF,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC3B,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,8CAA8C;gBAChD,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,KAAK,EAAE,wBAAwB;oBAC/B,UAAU,EAAE,MAAM,CAAC,YAAY;oBAC/B,mBAAmB,EAAE,QAAQ,CAAC,EAAE;oBAChC,eAAe,EAAE,UAAU;oBAC3B,aAAa,EAAE,OAAO;iBACvB,CAAC,CACH,CAAC;gBACF,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;YAC/F,CAAC;YACD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;gBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,KAAK,EAAE,0BAA0B;gBACjC,UAAU,EAAE,MAAM,CAAC,YAAY;gBAC/B,mBAAmB,EAAE,QAAQ,CAAC,EAAE;gBAChC,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,mBAAmB;aAC5B,CAAC,CACH,CAAC;YACF,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;QAChG,CAAC;QAED,4EAA4E;QAC5E,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,eAAe;QACf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAA4B,yBAAyB,EAAE,WAAW,CAAC,CAAC;YACxG,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;YAClC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;YAC/B,0FAA0F;YAC1F,yFAAyF;YACzF,2FAA2F;YAC3F,qFAAqF;YACrF,8EAA8E;YAC9E,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;YAClC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC;YAC9D,IAAI,MAAM,CAAC,WAAW;gBAAE,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YAC7D,IAAI,MAAM,CAAC,yBAAyB;gBAAE,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC,yBAAyB,CAAC;YACvG,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;YACpB,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC;YAClC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CAAC;oBACb,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC5B,KAAK,EAAE,wBAAwB;oBAC/B,UAAU,EAAE,MAAM,CAAC,YAAY;oBAC/B,mBAAmB,EAAE,GAAG,CAAC,EAAE;oBAC3B,eAAe,EAAE,YAAY;oBAC7B,cAAc,EAAE,YAAY;iBAC7B,CAAC,CACH,CAAC;gBACF,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;YAC5F,CAAC;YACD,uFAAuF;YACvF,mFAAmF;YACnF,OAAO,CAAC,IAAI,CACV,6EAA6E,MAAM,CAAC,YAAY,MAAM,GAAG,CAAC,YAAY,EAAE,eAAe,IAAI,4BAA4B,EAAE,CAC1K,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,+DAA+D,MAAM,CAAC,YAAY,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnJ,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;IAC3F,CAAC;IAED,oEAAoE;IAE5D,MAAM,CAAC,KAAK,CAAC,WAAW,CAC9B,EAAqB,EACrB,QAAgB,EAChB,QAAyB,EACzB,cAAgD,EAChD,WAAqB,EACrB,eAAqC;QAOrC,MAAM,SAAS,GAAG,CAAC,MAAsB,EAAsB,EAAE;YAC/D,IAAI,CAAC,MAAM,IAAI,CAAC,eAAe;gBAAE,OAAO,SAAS,CAAC;YAClD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClG,MAAM,OAAO,GAAsC,EAAE,CAAC;QAEtD,IAAI,QAAQ,EAAE,CAAC;YACb,qCAAqC;YACrC,uHAAuH;YACvH,kGAAkG;YAClG,uGAAuG;YACvG,EAAE;YACF,uEAAuE;YACvE,qEAAqE;YACrE,6BAA6B;YAC7B,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,iGAAiG;YACjG,+FAA+F;YAC/F,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjC,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;gBAC3B,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAExE,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC3B,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;YAC5B,CAAC;YACD,0EAA0E;YAC1E,yFAAyF;YACzF,0FAA0F;YAC1F,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACzE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;gBACrC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,KAAK,mBAAmB,EAAE,CAAC;gBAChD,QAAQ,CAAC,UAAU,GAAG,mBAAmB,CAAC;gBAC1C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YAClC,CAAC;YACD,2DAA2D;YAC3D,gEAAgE;YAChE,mEAAmE;YACnE,+DAA+D;YAC/D,gEAAgE;YAChE,kEAAkE;YAClE,kEAAkE;YAClE,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClF,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YAEvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvE,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;gBACxC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;YAExC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;YACnF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;gBACvC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;YAEvC,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;gBACtC,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;YACtC,mEAAmE;YACnE,iEAAiE;YACjE,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAClD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAC5C,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;YACrC,CAAC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAChC,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC;YACnC,CAAC;YACD,2EAA2E;YAC3E,+EAA+E;YAC/E,iFAAiF;YACjF,uEAAuE;YACvE,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC;gBAC/F,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,UAAU,EAAE,CAAC;oBACf,QAAQ,CAAC,0BAA0B,GAAG,UAAU,CAAC;oBACjD,KAAK,GAAG,IAAI,CAAC;oBACb,OAAO,CAAC,UAAU,GAAG,YAAY,CAAC;gBACpC,CAAC;YACH,CAAC;iBAAM,IAAI,QAAQ,CAAC,0BAA0B,EAAE,CAAC;gBAC/C,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;YAClC,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,wDAAwD,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,YAAY,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC,CAAC;gBACvJ,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACnG,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QACpG,CAAC;QAED,4CAA4C;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiC,+BAA+B,EAAE,WAAW,CAAC,CAAC;YACrH,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,mBAAmB,GAAG,QAAQ,CAAC;YACrC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC;YACpD,IAAI,QAAQ,CAAC,WAAW;gBAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnE,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChD,uFAAuF;YACvF,oFAAoF;YACpF,oDAAoD;YACpD,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI;gBAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/D,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3C,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;YACvC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,KAAK,CAAC;YAChD,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,KAAK,CAAC;YAClD,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;YACpC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,IAAI,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBACvD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,UAAU;oBAAE,KAAK,CAAC,0BAA0B,GAAG,UAAU,CAAC;YAChE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,cAAc,GAAsC;gBACxD,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,SAAS;gBACvB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,SAAS;gBACrB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,SAAS;aACtB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;QAC7G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,oEAAoE,QAAQ,CAAC,IAAI,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAClJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;IACjG,CAAC;IAED,oEAAoE;IAEpE;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAQnD;QACC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAE7D,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;YAChC,eAAe;YACf,YAAY,EAAE,eAAe;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,kBAAkB;YAC/C,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,WAAW,EAAE,IAAI,CAAC,eAAe;YACjC,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,qCAAqC;QACrC,MAAM,EAAE,GAAsB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC;QACjE,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,yBAAyB;QACzB,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,uBAAuB,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAEjI,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;YAEzD,gCAAgC;YAChC,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAC/B;gBACE,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;gBACvD,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,CAAC,IAAI,CAAC;aACf,EACD,WAAW,CACZ,CAAC;YACF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAE9D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC5G,IAAI,QAAQ;oBAAE,OAAO,EAAE,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,oDAAoD,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,mCAAmC,OAAO,gBAAgB,aAAa,CAAC,MAAM,sBAAsB,eAAe,EAAE,CAAC,CAAC;QACrI,CAAC;QACD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACtC,EAAqB,EACrB,MAAwH,EACxH,UAAyB,EACzB,WAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAiB,aAAa,EAAE,WAAW,CAAC,CAAC;QACpF,MAAM,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;QAC9C,MAAM,CAAC,WAAW,GAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAY,IAAI,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;QAC5D,4DAA4D;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7F,IAAI,UAAU;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAW,CAAC,CAAC;QAE9F,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,iBAAiB;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAsB,mBAAmB,EAAE,WAAW,CAAC,CAAC;YAC9F,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAW,CAAC;YACxC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAgC,CAAC;YAC7D,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAkF,CAAC;YACvI,KAAK,CAAC,OAAO,GAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAa,IAAI,KAAK,CAAC;YAC1D,KAAK,CAAC,UAAU,GAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAa,IAAI,KAAK,CAAC;YAChE,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;YACnF,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,eAAe,CAA2B,yBAAyB,EAAE,WAAW,CAAC,CAAC;YACxG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAW,CAAC;YACnD,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAW,CAAC;YAClF,IAAI,CAAC,SAAS,GAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAa,IAAI,KAAK,CAAC;YAC7D,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAC1C,EAAqB,EACrB,eAAuB,EACvB,eAA2D,EAC3D,WAAqB;QAErB,MAAM,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAC/B;YACE,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,SAAS,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;YAC5D,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,eAAe;SAC5B,EACD,WAAW,CACZ,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,CAAC;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,eAAe,CAAyB,uBAAuB,EAAE,WAAW,CAAC,CAAC;YACnG,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,GAAG,eAAe,CAAC;YAC3B,GAAG,CAAC,WAAW,GAAI,SAAS,EAAE,MAAM,CAAC,aAAa,CAAY,IAAI,eAAe,eAAe,cAAc,CAAC;YAC/G,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Key-value serialization for record identity.
|
|
3
|
+
*
|
|
4
|
+
* `serializeKeyValue` mirrors the engine's write-side value coercion (see
|
|
5
|
+
* `IntegrationEngine` value-handling: object/array → `JSON.stringify`, NOT the JS default
|
|
6
|
+
* `"[object Object]"`). It is used to build a record's composite ExternalID / load key from
|
|
7
|
+
* its primary-key field VALUES, so the key derived at load time equals the value persisted in
|
|
8
|
+
* the column for object-valued PKs — without this, every object-valued PK would collapse to
|
|
9
|
+
* `"[object Object]"` and all such records would share one identity (the duplicate-row class
|
|
10
|
+
* of bug).
|
|
11
|
+
*
|
|
12
|
+
* Contract (pinned by call sites in `BaseRESTIntegrationConnector`, `MatchEngine`,
|
|
13
|
+
* `IntegrationEngine.extractMappedPrimaryKey`):
|
|
14
|
+
* - `null` / `undefined` → `''` (empty string). Callers treat `''` as a missing key component
|
|
15
|
+
* (`if (s === '') return null` / `serializeKeyValue(v).length > 0`), which routes genuinely
|
|
16
|
+
* keyless / partial-key rows to the content-hash identity fallback rather than a bogus key.
|
|
17
|
+
* - plain object / array (anything `typeof === 'object'` that is not a `Date`) → `JSON.stringify`.
|
|
18
|
+
* - everything else (string / number / boolean / Date / bigint / symbol) → `String(value)`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function serializeKeyValue(value: unknown): string;
|
|
21
|
+
//# sourceMappingURL=KeySerialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeySerialization.d.ts","sourceRoot":"","sources":["../src/KeySerialization.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQxD"}
|