@prestizni-software/client-dem 0.7.4 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AutoUpdateClientManagerClass.d.ts +141 -0
- package/{dist/AutoUpdateClientManagerClass.js → AutoUpdateClientManagerClass.js} +103 -12
- package/AutoUpdateClientManagerClass.js.map +1 -0
- package/AutoUpdateManagerClass.d.ts +102 -0
- package/{dist/AutoUpdateManagerClass.js → AutoUpdateManagerClass.js} +37 -0
- package/AutoUpdateManagerClass.js.map +1 -0
- package/{dist/AutoUpdatedClientObjectClass.d.ts → AutoUpdatedClientObjectClass.d.ts} +114 -0
- package/{dist/AutoUpdatedClientObjectClass.js → AutoUpdatedClientObjectClass.js} +108 -0
- package/AutoUpdatedClientObjectClass.js.map +1 -0
- package/{dist/CommonTypes.d.ts → CommonTypes.d.ts} +48 -9
- package/{dist/CommonTypes.js → CommonTypes.js} +52 -22
- package/CommonTypes.js.map +1 -0
- package/{dist/DEMErrors.d.ts → DEMErrors.d.ts} +22 -2
- package/{dist/DEMErrors.js → DEMErrors.js} +22 -2
- package/{dist/DEMErrors.js.map → DEMErrors.js.map} +1 -1
- package/package.json +20 -40
- package/{dist/sync → sync}/ClientStateReconciler.d.ts +20 -0
- package/{dist/sync → sync}/ClientStateReconciler.js +20 -0
- package/sync/ClientStateReconciler.js.map +1 -0
- package/{dist/sync → sync}/ServerChangeTracker.d.ts +46 -0
- package/{dist/sync → sync}/ServerChangeTracker.js +46 -0
- package/sync/ServerChangeTracker.js.map +1 -0
- package/sync/storage/IndexedDbStorageAdapter.d.ts +53 -0
- package/{dist/sync → sync}/storage/IndexedDbStorageAdapter.js +31 -0
- package/sync/storage/IndexedDbStorageAdapter.js.map +1 -0
- package/sync/storage/LocalStorageAdapter.d.ts +59 -0
- package/{dist/sync → sync}/storage/LocalStorageAdapter.js +32 -0
- package/sync/storage/LocalStorageAdapter.js.map +1 -0
- package/sync/storage/MemoryStorageAdapter.d.ts +34 -0
- package/sync/storage/MemoryStorageAdapter.js +45 -0
- package/sync/storage/MemoryStorageAdapter.js.map +1 -0
- package/version.d.ts +21 -0
- package/version.js +22 -0
- package/version.js.map +1 -0
- package/README.md +0 -18
- package/dist/AutoUpdateClientManagerClass.d.ts +0 -51
- package/dist/AutoUpdateClientManagerClass.js.map +0 -1
- package/dist/AutoUpdateManagerClass.d.ts +0 -37
- package/dist/AutoUpdateManagerClass.js.map +0 -1
- package/dist/AutoUpdatedClientObjectClass.js.map +0 -1
- package/dist/CommonTypes.js.map +0 -1
- package/dist/sync/ClientStateReconciler.js.map +0 -1
- package/dist/sync/ServerChangeTracker.js.map +0 -1
- package/dist/sync/storage/IndexedDbStorageAdapter.d.ts +0 -22
- package/dist/sync/storage/IndexedDbStorageAdapter.js.map +0 -1
- package/dist/sync/storage/LocalStorageAdapter.d.ts +0 -27
- package/dist/sync/storage/LocalStorageAdapter.js.map +0 -1
- package/dist/sync/storage/MemoryStorageAdapter.d.ts +0 -13
- package/dist/sync/storage/MemoryStorageAdapter.js +0 -25
- package/dist/sync/storage/MemoryStorageAdapter.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/{dist/client.d.ts → client.d.ts} +0 -0
- /package/{dist/client.js → client.js} +0 -0
- /package/{dist/client.js.map → client.js.map} +0 -0
- /package/{dist/sync → sync}/index.d.ts +0 -0
- /package/{dist/sync → sync}/index.js +0 -0
- /package/{dist/sync → sync}/index.js.map +0 -0
- /package/{dist/sync → sync}/storage/IClientStorageAdapter.d.ts +0 -0
- /package/{dist/sync → sync}/storage/IClientStorageAdapter.js +0 -0
- /package/{dist/sync → sync}/storage/IClientStorageAdapter.js.map +0 -0
- /package/{dist/sync → sync}/types.d.ts +0 -0
- /package/{dist/sync → sync}/types.js +0 -0
- /package/{dist/sync → sync}/types.js.map +0 -0
|
@@ -36,13 +36,62 @@ export declare abstract class AutoUpdatedClientObject<T extends IAutoUpdatedClie
|
|
|
36
36
|
}[];
|
|
37
37
|
callbacks: DEMClientCallbacks<T>;
|
|
38
38
|
private readonly loadReferencesAsync;
|
|
39
|
+
/**
|
|
40
|
+
* Initializes an AutoUpdatedClientObject instance.
|
|
41
|
+
*
|
|
42
|
+
* @param classParam - Constructor of the client object entity.
|
|
43
|
+
* @param socket - Socket.IO client socket connection.
|
|
44
|
+
* @param data - Entity identifier string or initial data object.
|
|
45
|
+
* @param loggers - Logging interfaces.
|
|
46
|
+
* @param className - Managed entity class name.
|
|
47
|
+
* @param parentManager - Host client manager.
|
|
48
|
+
* @param callback - Event callbacks interface.
|
|
49
|
+
* @param emitter - Shared event emitter.
|
|
50
|
+
* @param isServer - Flag indicating whether running on server runtime.
|
|
51
|
+
* @throws {DEMError} Throws DEMErrorCode.MISSING_ARGUMENT when required parameters are omitted.
|
|
52
|
+
*/
|
|
39
53
|
constructor(classParam?: Constructor<T>, socket?: SocketType, data?: string | IsData<T>, loggers?: LoggersType, className?: string, parentManager?: IAutoUpdateManager<IAutoUpdatedClientObject<any>>, callback?: DEMClientCallbacks<T>, emitter?: EventEmitter3, isServer?: boolean);
|
|
54
|
+
/**
|
|
55
|
+
* Normalizes reference fields in entity data into string IDs.
|
|
56
|
+
*
|
|
57
|
+
* @param data - Entity data payload.
|
|
58
|
+
* @returns Cleaned entity data payload.
|
|
59
|
+
*/
|
|
40
60
|
protected handleDataCleanup(data: IsData<T>): IsData<T>;
|
|
61
|
+
/**
|
|
62
|
+
* Pauses execution until the object finishes asynchronous preloading.
|
|
63
|
+
*
|
|
64
|
+
* @param timeoutMs - Maximum milliseconds to wait before rejecting.
|
|
65
|
+
* @throws {DEMError} Throws DEMErrorCode.PRELOAD_TIMEOUT on timeout or OBJECT_LOAD_FAILED on failure.
|
|
66
|
+
*/
|
|
41
67
|
waitForPreloaded(timeoutMs?: number): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Emits creation event to the server socket and awaits populated entity response.
|
|
70
|
+
*
|
|
71
|
+
* @param data - Initial data payload.
|
|
72
|
+
*/
|
|
42
73
|
protected handleNewObject(data: IsData<T>): void;
|
|
74
|
+
/**
|
|
75
|
+
* Returns a deep clone of the entity's extracted data with reference objects converted to IDs.
|
|
76
|
+
*
|
|
77
|
+
* @returns Serialized entity representation.
|
|
78
|
+
*/
|
|
43
79
|
get extractedData(): ExtractedData<T, IAutoUpdatedClientObject<any>>;
|
|
80
|
+
/**
|
|
81
|
+
* Indicates whether the entity has finished loading its data.
|
|
82
|
+
*
|
|
83
|
+
* @returns True if loaded.
|
|
84
|
+
*/
|
|
44
85
|
get isLoaded(): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Asynchronously awaits preloading and loads all missing reference links.
|
|
88
|
+
*
|
|
89
|
+
* @returns Promise resolving to true when completed.
|
|
90
|
+
*/
|
|
45
91
|
isPreLoadedAsync(): Promise<boolean>;
|
|
92
|
+
/**
|
|
93
|
+
* Identifies and connects missing cross-entity references on server startup.
|
|
94
|
+
*/
|
|
46
95
|
loadMissingReferences(): Promise<void>;
|
|
47
96
|
private openSockets;
|
|
48
97
|
private handleUpdateRequest;
|
|
@@ -51,14 +100,45 @@ export declare abstract class AutoUpdatedClientObject<T extends IAutoUpdatedClie
|
|
|
51
100
|
get updateEventName(): string;
|
|
52
101
|
getRawId(key: string): string | undefined;
|
|
53
102
|
generateSettersAndGetters(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Retrieves a property value by dot-notated or shallow key path.
|
|
105
|
+
*
|
|
106
|
+
* @param key_ - Property key or dot-delimited path.
|
|
107
|
+
* @returns Value at the requested path.
|
|
108
|
+
*/
|
|
54
109
|
getValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key_: K): PathValueOf<T, K>;
|
|
55
110
|
getValue(key_: string): any;
|
|
111
|
+
/**
|
|
112
|
+
* Resolves reference pointer ID to instantiated entity instance across caches and managers.
|
|
113
|
+
*
|
|
114
|
+
* @param id - Entity ID or ObjectId.
|
|
115
|
+
* @param key - Property key referencing the entity.
|
|
116
|
+
* @returns Resolved entity instance or undefined.
|
|
117
|
+
*/
|
|
56
118
|
findReference(id: string | ObjectId, key: string): IAutoUpdatedClientObject<any> | undefined;
|
|
119
|
+
/**
|
|
120
|
+
* Mutates property value and synchronizes change to the server via socket.
|
|
121
|
+
*
|
|
122
|
+
* @param key - Property key to modify.
|
|
123
|
+
* @param val - Value to assign.
|
|
124
|
+
* @returns Promise resolving to modification result.
|
|
125
|
+
*/
|
|
57
126
|
setValue<K extends string>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
|
|
58
127
|
success: boolean;
|
|
59
128
|
msg: string;
|
|
60
129
|
code?: DEMErrorCode;
|
|
61
130
|
}>;
|
|
131
|
+
/**
|
|
132
|
+
* Internal setter with writeQueue serialization ensuring sequential updates.
|
|
133
|
+
*
|
|
134
|
+
* @param key - Property key.
|
|
135
|
+
* @param val - Value to assign.
|
|
136
|
+
* @param silent - Whether socket broadcast is bypassed.
|
|
137
|
+
* @param noGet - Whether local update bypasses get.
|
|
138
|
+
* @param noUpdate - Whether onUpdate hook is bypassed.
|
|
139
|
+
* @param isParentUpdate - Whether mutation originated from parent.
|
|
140
|
+
* @returns Promise resolving to operation outcome.
|
|
141
|
+
*/
|
|
62
142
|
protected setValue__(key: string, val: unknown, silent?: boolean, noGet?: boolean, noUpdate?: boolean, isParentUpdate?: boolean): Promise<{
|
|
63
143
|
success: boolean;
|
|
64
144
|
msg: string;
|
|
@@ -77,6 +157,12 @@ export declare abstract class AutoUpdatedClientObject<T extends IAutoUpdatedClie
|
|
|
77
157
|
destroyImmediate(): void;
|
|
78
158
|
private loadForceReferences;
|
|
79
159
|
protected createdWithParent(pointer: string[], parent: Record<string, unknown>): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Destroys the entity and notifies server socket of deletion.
|
|
162
|
+
*
|
|
163
|
+
* @param once - Internal flag preventing infinite recursion.
|
|
164
|
+
* @returns Promise resolving to deletion outcome.
|
|
165
|
+
*/
|
|
80
166
|
destroy(once?: boolean): Promise<{
|
|
81
167
|
success: boolean;
|
|
82
168
|
message: string;
|
|
@@ -84,18 +170,46 @@ export declare abstract class AutoUpdatedClientObject<T extends IAutoUpdatedClie
|
|
|
84
170
|
}>;
|
|
85
171
|
private checkForMissingRefs;
|
|
86
172
|
private findMissingObjectReference;
|
|
173
|
+
/**
|
|
174
|
+
* Triggers missing reference resolution on all child referenced entities.
|
|
175
|
+
*/
|
|
87
176
|
contactChildren(): Promise<void>;
|
|
88
177
|
protected onUpdate(noUpdate?: boolean, key?: string): Promise<void>;
|
|
89
178
|
protected onDeletion(): Promise<void>;
|
|
90
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Traverses entity object and transforms referenced objects into string identifiers.
|
|
182
|
+
*
|
|
183
|
+
* @param instance - Raw entity data record.
|
|
184
|
+
* @param target - Reflection prototype target.
|
|
185
|
+
* @param prefix - Dot-notated property key prefix.
|
|
186
|
+
* @param allProps - Accumulated array of discovered property paths.
|
|
187
|
+
* @param newData - Output object receiving sanitized data.
|
|
188
|
+
* @param loggers - Logging interfaces.
|
|
189
|
+
* @returns Object containing all property paths and transformed newData.
|
|
190
|
+
*/
|
|
91
191
|
export declare function processIsRefProperties(instance: Record<string, unknown>, target: object, prefix: string | null, allProps: string[], newData: Record<string, unknown>, loggers: LoggersType): {
|
|
92
192
|
allProps: string[];
|
|
93
193
|
newData: Record<string, unknown>;
|
|
94
194
|
};
|
|
195
|
+
/**
|
|
196
|
+
* Compiles V8 fast-shape property getters and setters on the class prototype.
|
|
197
|
+
*
|
|
198
|
+
* @param classParam - Constructor function of the target entity class.
|
|
199
|
+
* @returns Cached metadata object with properties list, refProps set, and refsToMap.
|
|
200
|
+
*/
|
|
95
201
|
export declare function setupClassAccessors(classParam: Constructor<any>): {
|
|
96
202
|
properties: string[];
|
|
97
203
|
refProps: Set<string>;
|
|
98
204
|
refsToMap: Map<string, string>;
|
|
99
205
|
};
|
|
206
|
+
/**
|
|
207
|
+
* Traverses prototype chain recursively to resolve metadata key.
|
|
208
|
+
*
|
|
209
|
+
* @param metaKey - Reflection metadata key.
|
|
210
|
+
* @param proto - Prototype object.
|
|
211
|
+
* @param prop - Property name on prototype.
|
|
212
|
+
* @returns Metadata value or undefined.
|
|
213
|
+
*/
|
|
100
214
|
export declare function getMetadataRecursive(metaKey: string, proto: object | null, prop: string): unknown;
|
|
101
215
|
export {};
|
|
@@ -45,6 +45,20 @@ export class AutoUpdatedClientObject {
|
|
|
45
45
|
this.isLoadingReferences = false;
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Initializes an AutoUpdatedClientObject instance.
|
|
50
|
+
*
|
|
51
|
+
* @param classParam - Constructor of the client object entity.
|
|
52
|
+
* @param socket - Socket.IO client socket connection.
|
|
53
|
+
* @param data - Entity identifier string or initial data object.
|
|
54
|
+
* @param loggers - Logging interfaces.
|
|
55
|
+
* @param className - Managed entity class name.
|
|
56
|
+
* @param parentManager - Host client manager.
|
|
57
|
+
* @param callback - Event callbacks interface.
|
|
58
|
+
* @param emitter - Shared event emitter.
|
|
59
|
+
* @param isServer - Flag indicating whether running on server runtime.
|
|
60
|
+
* @throws {DEMError} Throws DEMErrorCode.MISSING_ARGUMENT when required parameters are omitted.
|
|
61
|
+
*/
|
|
48
62
|
constructor(classParam, socket, data, loggers, className, parentManager, callback, emitter, isServer = false) {
|
|
49
63
|
if (!classParam ||
|
|
50
64
|
!socket ||
|
|
@@ -135,6 +149,12 @@ export class AutoUpdatedClientObject {
|
|
|
135
149
|
this.generateSettersAndGetters();
|
|
136
150
|
});
|
|
137
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Normalizes reference fields in entity data into string IDs.
|
|
154
|
+
*
|
|
155
|
+
* @param data - Entity data payload.
|
|
156
|
+
* @returns Cleaned entity data payload.
|
|
157
|
+
*/
|
|
138
158
|
handleDataCleanup(data) {
|
|
139
159
|
if (!data || typeof data !== "object")
|
|
140
160
|
return data;
|
|
@@ -169,6 +189,12 @@ export class AutoUpdatedClientObject {
|
|
|
169
189
|
}
|
|
170
190
|
return data;
|
|
171
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Pauses execution until the object finishes asynchronous preloading.
|
|
194
|
+
*
|
|
195
|
+
* @param timeoutMs - Maximum milliseconds to wait before rejecting.
|
|
196
|
+
* @throws {DEMError} Throws DEMErrorCode.PRELOAD_TIMEOUT on timeout or OBJECT_LOAD_FAILED on failure.
|
|
197
|
+
*/
|
|
172
198
|
async waitForPreloaded(timeoutMs = 15000) {
|
|
173
199
|
if (this.loadError)
|
|
174
200
|
throw new DEMError(DEMErrorCode.OBJECT_LOAD_FAILED, this.loadError);
|
|
@@ -190,6 +216,11 @@ export class AutoUpdatedClientObject {
|
|
|
190
216
|
});
|
|
191
217
|
});
|
|
192
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Emits creation event to the server socket and awaits populated entity response.
|
|
221
|
+
*
|
|
222
|
+
* @param data - Initial data payload.
|
|
223
|
+
*/
|
|
193
224
|
handleNewObject(data) {
|
|
194
225
|
this.isLoading = true;
|
|
195
226
|
if (!this.socket) {
|
|
@@ -235,18 +266,36 @@ export class AutoUpdatedClientObject {
|
|
|
235
266
|
this.openSockets();
|
|
236
267
|
});
|
|
237
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Returns a deep clone of the entity's extracted data with reference objects converted to IDs.
|
|
271
|
+
*
|
|
272
|
+
* @returns Serialized entity representation.
|
|
273
|
+
*/
|
|
238
274
|
get extractedData() {
|
|
239
275
|
const extracted = processIsRefProperties(this.data, this, null, [], {}, this.loggers).newData;
|
|
240
276
|
return _.cloneDeep(extracted);
|
|
241
277
|
}
|
|
278
|
+
/**
|
|
279
|
+
* Indicates whether the entity has finished loading its data.
|
|
280
|
+
*
|
|
281
|
+
* @returns True if loaded.
|
|
282
|
+
*/
|
|
242
283
|
get isLoaded() {
|
|
243
284
|
return !this.isLoading;
|
|
244
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Asynchronously awaits preloading and loads all missing reference links.
|
|
288
|
+
*
|
|
289
|
+
* @returns Promise resolving to true when completed.
|
|
290
|
+
*/
|
|
245
291
|
async isPreLoadedAsync() {
|
|
246
292
|
await this.loadReferencesAsync();
|
|
247
293
|
this.generateSettersAndGetters();
|
|
248
294
|
return true;
|
|
249
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Identifies and connects missing cross-entity references on server startup.
|
|
298
|
+
*/
|
|
250
299
|
async loadMissingReferences() {
|
|
251
300
|
if (!this.isServer)
|
|
252
301
|
return;
|
|
@@ -332,6 +381,13 @@ export class AutoUpdatedClientObject {
|
|
|
332
381
|
}
|
|
333
382
|
return value;
|
|
334
383
|
}
|
|
384
|
+
/**
|
|
385
|
+
* Resolves reference pointer ID to instantiated entity instance across caches and managers.
|
|
386
|
+
*
|
|
387
|
+
* @param id - Entity ID or ObjectId.
|
|
388
|
+
* @param key - Property key referencing the entity.
|
|
389
|
+
* @returns Resolved entity instance or undefined.
|
|
390
|
+
*/
|
|
335
391
|
findReference(id, key) {
|
|
336
392
|
if (!id)
|
|
337
393
|
return undefined;
|
|
@@ -359,9 +415,27 @@ export class AutoUpdatedClientObject {
|
|
|
359
415
|
}
|
|
360
416
|
return undefined;
|
|
361
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* Mutates property value and synchronizes change to the server via socket.
|
|
420
|
+
*
|
|
421
|
+
* @param key - Property key to modify.
|
|
422
|
+
* @param val - Value to assign.
|
|
423
|
+
* @returns Promise resolving to modification result.
|
|
424
|
+
*/
|
|
362
425
|
async setValue(key, val) {
|
|
363
426
|
return await this.setValue__(key, val);
|
|
364
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* Internal setter with writeQueue serialization ensuring sequential updates.
|
|
430
|
+
*
|
|
431
|
+
* @param key - Property key.
|
|
432
|
+
* @param val - Value to assign.
|
|
433
|
+
* @param silent - Whether socket broadcast is bypassed.
|
|
434
|
+
* @param noGet - Whether local update bypasses get.
|
|
435
|
+
* @param noUpdate - Whether onUpdate hook is bypassed.
|
|
436
|
+
* @param isParentUpdate - Whether mutation originated from parent.
|
|
437
|
+
* @returns Promise resolving to operation outcome.
|
|
438
|
+
*/
|
|
365
439
|
async setValue__(key, val, silent = false, noGet = false, noUpdate = false, isParentUpdate = false) {
|
|
366
440
|
this.writeQueue = this.writeQueue
|
|
367
441
|
.catch(() => { })
|
|
@@ -588,6 +662,12 @@ export class AutoUpdatedClientObject {
|
|
|
588
662
|
}
|
|
589
663
|
}
|
|
590
664
|
}
|
|
665
|
+
/**
|
|
666
|
+
* Destroys the entity and notifies server socket of deletion.
|
|
667
|
+
*
|
|
668
|
+
* @param once - Internal flag preventing infinite recursion.
|
|
669
|
+
* @returns Promise resolving to deletion outcome.
|
|
670
|
+
*/
|
|
591
671
|
async destroy(once = false) {
|
|
592
672
|
if (!once)
|
|
593
673
|
return await this.parentManager.deleteObject(this.data._id.toString());
|
|
@@ -647,6 +727,9 @@ export class AutoUpdatedClientObject {
|
|
|
647
727
|
}
|
|
648
728
|
}
|
|
649
729
|
}
|
|
730
|
+
/**
|
|
731
|
+
* Triggers missing reference resolution on all child referenced entities.
|
|
732
|
+
*/
|
|
650
733
|
async contactChildren() {
|
|
651
734
|
if (!this.isServer)
|
|
652
735
|
return;
|
|
@@ -676,6 +759,17 @@ export class AutoUpdatedClientObject {
|
|
|
676
759
|
// Placeholder for server-side override
|
|
677
760
|
}
|
|
678
761
|
}
|
|
762
|
+
/**
|
|
763
|
+
* Traverses entity object and transforms referenced objects into string identifiers.
|
|
764
|
+
*
|
|
765
|
+
* @param instance - Raw entity data record.
|
|
766
|
+
* @param target - Reflection prototype target.
|
|
767
|
+
* @param prefix - Dot-notated property key prefix.
|
|
768
|
+
* @param allProps - Accumulated array of discovered property paths.
|
|
769
|
+
* @param newData - Output object receiving sanitized data.
|
|
770
|
+
* @param loggers - Logging interfaces.
|
|
771
|
+
* @returns Object containing all property paths and transformed newData.
|
|
772
|
+
*/
|
|
679
773
|
export function processIsRefProperties(instance, target, prefix, allProps, newData, loggers) {
|
|
680
774
|
const props = Reflect.getMetadata("props", target) || [];
|
|
681
775
|
for (const prop of props) {
|
|
@@ -706,6 +800,12 @@ export function processIsRefProperties(instance, target, prefix, allProps, newDa
|
|
|
706
800
|
}
|
|
707
801
|
return { allProps, newData };
|
|
708
802
|
}
|
|
803
|
+
/**
|
|
804
|
+
* Compiles V8 fast-shape property getters and setters on the class prototype.
|
|
805
|
+
*
|
|
806
|
+
* @param classParam - Constructor function of the target entity class.
|
|
807
|
+
* @returns Cached metadata object with properties list, refProps set, and refsToMap.
|
|
808
|
+
*/
|
|
709
809
|
export function setupClassAccessors(classParam) {
|
|
710
810
|
if (!classParam) {
|
|
711
811
|
return { properties: [], refProps: new Set(), refsToMap: new Map() };
|
|
@@ -791,6 +891,14 @@ export function setupClassAccessors(classParam) {
|
|
|
791
891
|
classParam.__refPropsCache = Array.from(refProps);
|
|
792
892
|
return meta;
|
|
793
893
|
}
|
|
894
|
+
/**
|
|
895
|
+
* Traverses prototype chain recursively to resolve metadata key.
|
|
896
|
+
*
|
|
897
|
+
* @param metaKey - Reflection metadata key.
|
|
898
|
+
* @param proto - Prototype object.
|
|
899
|
+
* @param prop - Property name on prototype.
|
|
900
|
+
* @returns Metadata value or undefined.
|
|
901
|
+
*/
|
|
794
902
|
export function getMetadataRecursive(metaKey, proto, prop) {
|
|
795
903
|
while (proto) {
|
|
796
904
|
const meta = Reflect.getMetadata(metaKey, proto, prop);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,CAAC,MAAM,QAAQ,CAAC;AACvB,OAAO,EASL,yBAAyB,EACzB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,WAAW,EAOX,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAehC,MAAM,OAAgB,uBAAuB;IAOjC,KAAK,CAAU;IAEN,MAAM,CAAa;IAC5B,IAAI,CAAY;IACP,QAAQ,GAAY,KAAK,CAAC;IAE1B,OAAO,CAAc;IAC9B,SAAS,GAAG,IAAI,CAAC;IACpB,SAAS,CAAU;IAChB,mBAAmB,GAAG,IAAI,CAAC;IAC3B,wBAAwB,CAA2B;IAC1C,OAAO,CAAgB;IAC1B,UAAU,CAAW;IACrB,UAAU,CAAiB;IAC3B,SAAS,CAAS;IAC3B,aAAa,CAGlB;IACM,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAChB,SAAS,GAAW,SAAS,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;IAClF,iBAAiB,CAAqC;IACzD,SAAS,CAAwB;IAEvB,mBAAmB,GAAG,KAAK,IAAmB,EAAE;QAC/D,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC3C,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,+CAA+C;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,4BAA4B;gBAC1B,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAChF,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;IAEF;;;;;;;;;;;;;OAaG;IACH,YACE,UAA2B,EAC3B,MAAmB,EACnB,IAAyB,EACzB,OAAqB,EACrB,SAAkB,EAClB,aAAiE,EACjE,QAAgC,EAChC,OAAuB,EACvB,WAAoB,KAAK;QAEzB,IACE,CAAC,UAAU;YACX,CAAC,MAAM;YACP,CAAC,IAAI;YACL,CAAC,OAAO;YACR,CAAC,SAAS;YACV,CAAC,aAAa;YACd,CAAC,OAAO,EACR,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,UAAW,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,MAAO,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAW,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,OAAQ,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,SAAU,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,aAAoB,CAAC;YAC1C,IAAI,CAAC,SAAS,GAAG,QAAS,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,OAAQ,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,SAAgB,CAAC;YAEnC,IACE,CAAC,UAAU;gBACX,CAAC,MAAM;gBACP,CAAC,IAAI;gBACL,CAAC,OAAO;gBACR,CAAC,SAAS;gBACV,CAAC,aAAa;gBACd,CAAC,QAAQ;gBACT,CAAC,OAAO;gBAER,OAAO;;gBAEP,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,gBAAgB,EAC7B,iDAAiD,GAAG,SAAS,CAC9D,CAAC;QACN,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,aAAoB,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAS,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG;YACb,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CACnB,OAAO,CAAC,KAAK,EAAE,CACb,UAAU,IAAI,CAAC,SAAS,KACtB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,YAChC,KAAK,CAAC,EAAE,CACT;YACH,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAClB,OAAO,CAAC,IAAI,EAAE,CACZ,UAAU,IAAI,CAAC,SAAS,KACtB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,YAChC,KAAK,CAAC,EAAE,CACT;YACH,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAClB,OAAO,CAAC,IAAI,EAAE,CACZ,UAAU,IAAI,CAAC,SAAS,KACtB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,YAChC,KAAK,CAAC,EAAE,CACT;YACH,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CACnB,OAAO,CAAC,KAAK,EAAE,CACb,UAAU,IAAI,CAAC,SAAS,KACtB,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,YAChC,KAAK,CAAC,EAAE,CACT;SACJ,CAAC;QAEF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAS,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,EACjC,IAAI,EACJ,CAAC,GAAsB,EAAE,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;oBACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,mCAAmC,GAAG,GAAG,CAAC,OAAO,CAClD,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yBAAyB,GAAG,IAAI,CAAC,SAAS,EAC1C,IAAI,EACJ,GAAG,CAAC,OAAO,CACZ,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;gBACpD,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAiB,CAAC,CAAC;YAEtD,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAiB,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAEjC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACO,iBAAiB,CAAC,IAAe;QACzC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEnD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAElD,MAAM,YAAY,GAAG,IAA0C,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,kBAAkB,GAAG,KAAK,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACrC,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,kBAAkB,EAAE,CAAC;oBACvB,YAAY,CAAC,GAAG,CAAC,GAAI,GAAiB,CAAC,GAAG,CACxC,CAAC,GAAY,EAAE,EAAE,CACd,GAAiD,EAAE,GAAG,EAAE,QAAQ,EAAE;wBAClE,GAA8B,EAAE,QAAQ,EAAE,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnC,YAAY,CAAC,GAAG,CAAC;oBACd,GAAiD,EAAE,GAAG,EAAE,QAAQ,EAAE;wBAClE,GAA8B,EAAE,QAAQ,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,gBAAgB,CAAC,YAAoB,KAAK;QACrD,IAAI,IAAI,CAAC,SAAS;YAChB,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,MAAM,QAAQ,GAAG,0CAA0C,IAAI,CAAC,SAAS,GAAG,CAAC;gBAC7E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC/D,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yBAAyB,GAAG,IAAI,CAAC,SAAS,EAC1C,CAAC,MAAe,EAAE,MAAc,EAAE,EAAE;gBAClC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,MAAM;oBACR,MAAM,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;;oBAC3D,OAAO,EAAE,CAAC;YACjB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACO,eAAe,CAAC,IAAe;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,iBAAiB,IAAI,CAAC,SAAS,sBAAsB,CAAC;YACvE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yBAAyB,GAAG,IAAI,CAAC,SAAS,EAC1C,IAAI,EACJ,QAAQ,CACT,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,OAAO,GAAc,IAAI,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CACjB,iDAAiD,IAAI,CAAC,SAAS,+BAC7D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,OAAO,EACP,CAAC,GAAsB,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,QAAQ,GAAG,kDAAkD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yBAAyB,GAAG,IAAI,CAAC,SAAS,EAC1C,IAAI,EACJ,QAAQ,CACT,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,mCAAmC,GAAG,GAAG,CAAC,OAAO,CAClD,CAAC;gBACF,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,yBAAyB,GAAG,IAAI,CAAC,SAAS,EAC1C,IAAI,EACJ,GAAG,CAAC,OAAO,CACZ,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAA4B,CAAC;YAC7C,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa;QACtB,MAAM,SAAS,GAAG,sBAAsB,CACtC,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,EAAE,EACF,IAAI,CAAC,OAAO,CACb,CAAC,OAAO,CAAC;QACV,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAG3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QACjB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB;QAC3B,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEO,WAAW;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACtC,MAAM,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE,CACZ,KAAK,EACL,KAAK,EAAE,MAAe,EAAE,GAA2C,EAAE,EAAE;YACrE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,CACxC,MAAyC,CAC1C,CAAC;YACF,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,UAAU;gBAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/C,OAAO,GAAG,CAAC;QACb,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAGjC;QACC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,QAAQ;gBACf,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,IAA8C,EAC9C,MAAM,CAAC,GAAG,CACX,CAAC;YACJ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EACL,yBAAyB;oBACzB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,iBAAiB,GAAG,KAAK,CAAC;IAC1B,UAAU,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEzD,IAAW,eAAe;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACtC,OAAO,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAEM,QAAQ,CAAC,GAAW;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,GAAG,GAAI,IAAI,CAAC,IAAgC,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAAW,CAAC,GAAG,EAAE,CAAC;YAChE,OAAQ,GAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAEM,yBAAyB;QAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAsB,EAAE,CAAC;gBAC9C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;oBACxD,OAAQ,IAAgC,CAAC,GAAG,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAYM,QAAQ,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,IAAc,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAQ,IAAI,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,SAAgB,CAAC;YACnE,MAAM,SAAS,GAAI,KAAiC,CAAC,IAAI,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,KAAK,GAAG,SAAS,CAAC;YACpB,CAAC;iBAAM,IACJ,KAA4C,CAAC,IAAI;gBACjD,KAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EACrE,CAAC;gBACD,KAAK,GAAI,KAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAgB,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAClB,EAAqB,EACrB,GAAW;QAEX,IAAI,CAAC,EAAE;YAAE,OAAO,SAAS,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM,EAAE,MAAM;YAAE,OAAO,MAAM,CAAC,MAAuC,CAAC;QAE1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,GAAG;gBAAE,OAAO,GAAoC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC;YACjC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;wBACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBAC1D,CAAC;oBACD,OAAO,MAAuC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,CACnB,GAAM,EACN,GAA8B;QAE9B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,GAAa,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,UAAU,CACxB,GAAW,EACX,GAAY,EACZ,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;aAC9B,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,IAAI,CAAC,GAAG,EAAE,CACT,IAAI,CAAC,qBAAqB,CACxB,GAAG,EACH,GAAG,EACH,MAAM,EACN,KAAK,EACL,QAAQ,EACR,cAAc,CACf,CACF,CAAC;QACJ,OAAO,IAAI,CAAC,UAIV,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,GAAW,EACX,GAAY,EACZ,MAAM,GAAG,KAAK,EACd,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK;QAEtB,MAAM,QAAQ,GAAI,GAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IACE,GAAG,KAAK,WAAW;YACnB,GAAG,KAAK,aAAa;YACrB,GAAG,KAAK,WAAW;YACnB,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,EAC9E,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,yBAAyB,GAAG,EAAE,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC5D,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,uBAAuB,EACpC,mDAAmD,CACpD,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,GAAG,GAAG,CAAC;YACvB,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;oBAC/B,CAAC,CAAC,GAAG,CAAC,GAAG,CACL,CAAC,CAAU,EAAE,EAAE,CAEX,CACD,EAAE,GAAG,EAAE,QAAQ,EAAE;wBACjB,CAA4B,EAAE,QAAQ,EAAE;wBACzC,CAAC,CACJ;oBACH,CAAC,CAAC,CACE,GACD,EAAE,GAAG,EAAE,QAAQ,EAAE;wBACjB,GAA8B,EAAE,QAAQ,EAAE;wBAC3C,GAAG,CAAC,CAAC;YACX,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAU,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;gBAC5C,CAAC,CAAE,UAAoB,CAAC,GAAG,CACvB,CAAC,CAAU,EAAE,EAAE,CAEX,CACD,EAAE,GAAG,EAAE,QAAQ,EAAE;oBACjB,CAA4B,EAAE,QAAQ,EAAE;oBACzC,CAAC,CACJ;gBACH,CAAC,CAAC,CACE,UACD,EAAE,GAAG,EAAE,QAAQ,EAAE;oBACjB,UAAqC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAExD,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;gBACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,mBAAmB,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;YAE1E,MAAM,IAAI,GAAI,GAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,GAAG,GAAG,IAAI,CAAC,IAA+B,CAAC;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;oBACjC,IACE,OAAO,QAAQ,KAAK,QAAQ;wBAC5B,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAe,CAAC,CAAC,EAC/C,CAAC;wBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAC1D,IAAI,CAAC,GAAG;4BACN,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,2BAA2B,EACxC,uCAAuC,GAAG,GAAG,CAC9C,CAAC;wBACJ,OAAO,MAAM,GAAG,CAAC,QAAQ,CACvB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAQ,EAClC,GAAU,CACX,CAAC;oBACJ,CAAC;oBACD,GAAG,GAAG,GAAG,CAAC,UAAU,CAA4B,CAAC;gBACnD,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACrC,GAAG,EACH,YAAY,EACZ,MAAM,EACN,QAAQ,CACT,CAAC;YACF,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAI,GAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,GAAG,GAAG,IAAI,CAAC,IAA+B,CAAC;gBAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAA4B,CAAC;gBACnD,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;gBAChD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;oBACpD,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ;wBAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzE,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,CAAC,MAAM,CACnB,IAA8C,EAC9C,GAAG,CACJ,CAAC;oBACF,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YACD,OAAO;gBACL,GAAG,GAAG;gBACN,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,mBAAmB,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG;aACzD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,uBAAuB,GAAG,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;YACF,MAAM,MAAM,GACV,KAAK,YAAY,QAAQ;gBACvB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,OAAO;aACpB,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,GAAW,EACX,KAAc,EACd,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,KAAK;QAEhB,IAAI,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,EAClC,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAClC,CAAC,GAA8B,EAAE,EAAE;gBACjC,OAAO,CAAC;oBACN,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAG,GAAW,CAAC,IAAI;oBACvB,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAES,UAAU,CAAC,GAAW,EAAE,KAAc;QAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAClB,kDAAkD,GAAG,MAAM,KAAK,EAAE,CACnE,CAAC;YACF,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,UAAU,EACvB,0BAA0B,IAAI,CAAC,SAAS,0BAA0B,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,EAAU;QAEV,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,GAAG;gBAAE,OAAO,GAAoC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,QAAgB,EAAE,KAAc;QAClE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,EAAE;oBAAE,SAAS;gBAClB,IAAI,MAAiD,CAAC;gBACtD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAE5B,CAAC;oBACd,IAAI,MAAM;wBAAE,MAAM;gBACpB,CAAC;gBACD,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU,EAAE,CAAC;oBAClG,MAAM,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,IAAK,IAAI,CAAC,IAAsC,CAAC,KAAK;YAAE,OAAO;QAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QACtC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAA+B,CAAC,EAAE,CAAC;YACpE,OAAQ,IAAI,CAAC,IAAgC,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACA,IAAI,CAAC,IAAsC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,SAAS,eAAe,CAAC,CAAC;IACjE,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAA+B,IAAI,CAAC,IAGnC,EACD,QAAgB,IAAI,EACpB,cAA4B,IAAI,GAAG,EAAE;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,MAAM,KAAK,GACT,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;YAClC,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAE,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAc;gBAChD,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAc;gBACxE,EAAE,CAAC;QACT,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,SAAS;YACtC,MAAM,OAAO,GACX,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBACvB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAY;gBACrD,CAAC,KAAK,CAAC,CAAC,CAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrG,IACE,OAAO;gBACP,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC;gBACR,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EACrB,CAAC;gBACD,MAAM,IAAI,CAAC,iBAAiB,CAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAClB,GAAG,CAAC,GAAG,CAA4B,CACpC,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,IACE,GAAG;gBACH,OAAO,GAAG,KAAK,QAAQ;gBACvB,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC;gBACtB,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC,EAC1B,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrB,MAAM,IAAI,CAAC,mBAAmB,CAC5B,GAA8B,EAC9B,WAAW,EACX,WAAW,CACZ,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,OAAiB,EACjB,MAA+B;QAE/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,QAAQ,GACX,MAAM,CAAC,GAA8B,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAE1E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,4CAA4C,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAEzB,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,qDAAqD,QAAQ,eAAe,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9G,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAI,IAAI,CAAC,IAAI,CAAC,GAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAI,GAAW,CAAC,IAA2C,CAAC;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,eAAe,GAAG,KAAK,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAI,IAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACrE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,eAAe,GAAG,IAAI,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,gDAAgD,CAAC,CAAC;gBACvE,MACE,GAUD,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAI,MAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;YAChF,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,iDAAiD,CAAC,CAAC;gBACxE,MACE,GAUD,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAClB,IAAI,GAAG,KAAK;QAEZ,IAAI,CAAC,IAAI;YACP,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,YAAY,GAAG,IAAI,CAAC,SAAS,EAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,EACb,CAAC,GAA8B,EAAE,EAAE;gBACjC,OAAO,CAAC;oBACN,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAG,GAAW,CAAC,IAAI;oBACvB,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;iBAC3B,CAAC,CAAC;YACL,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAsB,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,oBAAoB,CAClC,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,QAAQ,EAAE,CACN,CAAC;YACZ,IAAI,OAAO,IAAI,CAAE,IAAI,CAAC,IAAgC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBACpB,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,IAAY,EAAE,OAAiB;QACtE,IAAI,CAAC,wBAAwB,KAAK,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC3C,MAAM,EAAE,GACN,IAAI,CAAC,aAAa,CAAC,QAIpB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAI,CAAC,GAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAI,GAAW,CAAC,IAA2C,CAAC;YACzE,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,EAAE,GAAI,GAAG,CAAC,CAAC,CAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC;oBACtE,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;wBACnB,IAAI,CAAC,IAAgC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;wBACvD,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAI,GAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC;gBAChE,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAgC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;oBACvD,OAAO;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,eAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAsB,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,IAAI,OAAO;gBAAE,SAAS;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,KAAK,MAAM,KAAK,IAAI,QAAiB,EAAE,CAAC;gBACtC,IACE,KAAK;oBACL,OAAQ,KAAyD;yBAC9D,qBAAqB,KAAK,UAAU,EACvC,CAAC;oBACD,MACE,KACD,CAAC,qBAAqB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAES,KAAK,CAAC,QAAQ,CAAC,WAAoB,KAAK,EAAE,GAAY;QAC9D,uCAAuC;IACzC,CAAC;IAES,KAAK,CAAC,UAAU;QACxB,uCAAuC;IACzC,CAAC;;AAGH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAiC,EACjC,MAAc,EACd,MAAqB,EACrB,QAAkB,EAClB,OAAgC,EAChC,OAAoB;IAEpB,MAAM,KAAK,GAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAc,IAAI,EAAE,CAAC;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ,CAAC;gBACvD,CAAC,CAAE,QAAQ,CAAC,IAAI,CAA4B,EAAE,QAAQ,EAAE;gBACxD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,GAAI,QAAQ,CAAC,IAAI,CAAe;qBAC1C,GAAG,CACF,CAAC,IAAa,EAAE,EAAE,CAEd,IACD,EAAE,GAAG,EAAE,QAAQ,EAAE;oBACjB,IAA+B,EAAE,QAAQ,EAAE,CAC/C;qBACA,MAAM,CAAC,OAAO,CAAC,CAAC;;gBAEnB,OAAO,CAAC,IAAI,CAAC;oBAET,QAAQ,CAAC,IAAI,CACd,EAAE,GAAG,EAAE,QAAQ,EAAE;wBACjB,QAAQ,CAAC,IAAI,CAA4B,EAAE,QAAQ,EAAE,CAAC;QAC7D,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAE3D,CAAC;QACF,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CACpC,QAAQ,CAAC,IAAI,CAA4B,EACzC,IAAI,CAAC,SAAS,EACd,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,OAAO,CACR,CAAC,OAAO,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAA4B;IAK9D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IACvE,CAAC;IACD,IAAK,UAAkB,CAAC,WAAW,EAAE,CAAC;QACpC,OAAQ,UAAkB,CAAC,WAAW,CAAC;IACzC,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,IAAI,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;IAClC,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,KAAK,GACT,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;YACpC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YACvC,EAAE,CAAC;QACL,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACpG,IAAI,KAAK;oBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACvG,IAAI,MAAM;oBAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;YAC/C,GAAG;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,OAAO,SAAS,CAAC;gBACjC,IAAI,GAAG,GAAI,IAAI,CAAC,IAAgC,CAAC,GAAG,CAAC,CAAC;gBACtD,IAAI,GAAG,KAAK,IAAI;oBAAE,GAAG,GAAG,SAAS,CAAC;gBAClC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;oBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAoC,EAAE,CAAC;wBACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;4BACpB,IAAI,IAAI,EAAE,CAAC;gCACT,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gCAC1C,IAAI,GAAG;oCAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BAC5B,CAAC;wBACH,CAAC;wBACD,OAAO,MAAM,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,aAAa,CAAC,GAAwB,EAAE,GAAG,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,GAAG,CAAqC,CAAU;gBAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,UAAU,GAAG,CAAC,CAAC;oBACnB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;wBACf,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;4BACrB,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1B,IAAI,IAAK,IAAY,CAAC,GAAG;gCACvB,CAAC,CAAE,IAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;gCAC9B,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CACrB,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,UAAU,GAAI,CAAS,CAAC,GAAG;gCACzB,CAAC,CAAE,CAAS,CAAC,GAAG,CAAC,QAAQ,EAAE;gCAC3B,CAAC,CAAE,CAAS,CAAC,QAAQ,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;oBACA,IAAI,CAAC,IAAgC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAChD,UAAkB,CAAC,WAAW,GAAG,IAAI,CAAC;IACtC,UAAkB,CAAC,YAAY,GAAG,UAAU,CAAC;IAC7C,UAAkB,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,KAAoB,EACpB,IAAY;IAEZ,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -108,8 +108,25 @@ export type ServerUpdateRequest<T = unknown> = {
|
|
|
108
108
|
key: string;
|
|
109
109
|
value: unknown;
|
|
110
110
|
};
|
|
111
|
+
/**
|
|
112
|
+
* Property decorator that registers a property into the class reflection metadata.
|
|
113
|
+
*
|
|
114
|
+
* @param target - Prototype of the target class.
|
|
115
|
+
* @param propertyKey - Property name to register.
|
|
116
|
+
*/
|
|
111
117
|
export declare function classProp(target: object, propertyKey: string): void;
|
|
118
|
+
/**
|
|
119
|
+
* Property decorator for populated references pointing to another managed entity class.
|
|
120
|
+
*
|
|
121
|
+
* @param where - The target managed class name this property references.
|
|
122
|
+
* @returns Property decorator function.
|
|
123
|
+
*/
|
|
112
124
|
export declare function populatedRef(where: string): (target: object, propertyKey: string) => void;
|
|
125
|
+
/**
|
|
126
|
+
* Property decorator marking a property as an unresolved reference pointer.
|
|
127
|
+
*
|
|
128
|
+
* @returns Property decorator function.
|
|
129
|
+
*/
|
|
113
130
|
export declare function classRef(): (target: object, propertyKey: string) => void;
|
|
114
131
|
export type Pretty<T> = {
|
|
115
132
|
[K in keyof T]: T[K];
|
|
@@ -137,14 +154,7 @@ export declare const EVENT_NEW = "new";
|
|
|
137
154
|
export declare const EVENT_GET = "get";
|
|
138
155
|
export declare const EVENT_STARTUP = "startup";
|
|
139
156
|
export declare const EVENT_VERSION = "dem_version";
|
|
140
|
-
|
|
141
|
-
* Current version of the DEM library.
|
|
142
|
-
*/
|
|
143
|
-
export declare const DEM_VERSION = "0.6.5";
|
|
144
|
-
/**
|
|
145
|
-
* DEM socket protocol version.
|
|
146
|
-
*/
|
|
147
|
-
export declare const DEM_PROTOCOL_VERSION = "1.0.0";
|
|
157
|
+
export * from "./version.js";
|
|
148
158
|
/**
|
|
149
159
|
* Configuration options for DEM client-server version verification.
|
|
150
160
|
*/
|
|
@@ -188,24 +198,53 @@ export interface ParsedSemVer {
|
|
|
188
198
|
}
|
|
189
199
|
/**
|
|
190
200
|
* Parses a semantic version string (e.g. "0.6.5", "v1.2.3-alpha").
|
|
201
|
+
*
|
|
202
|
+
* @param version - Semantic version string to parse.
|
|
203
|
+
* @returns ParsedSemVer object containing major, minor, patch, and prerelease fields, or null if invalid.
|
|
191
204
|
*/
|
|
192
205
|
export declare function parseSemVer(version: string): ParsedSemVer | null;
|
|
193
206
|
/**
|
|
194
207
|
* Compares two semantic version strings.
|
|
195
|
-
*
|
|
208
|
+
*
|
|
209
|
+
* @param v1 - First version string.
|
|
210
|
+
* @param v2 - Second version string.
|
|
211
|
+
* @returns -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2.
|
|
196
212
|
*/
|
|
197
213
|
export declare function compareSemVer(v1: string, v2: string): number;
|
|
198
214
|
/**
|
|
199
215
|
* Verifies compatibility between client and server DEM versions.
|
|
216
|
+
* Evaluates SemVer rules, custom validators, and minimum required versions.
|
|
217
|
+
*
|
|
218
|
+
* @param clientVersion - DEM version of the client.
|
|
219
|
+
* @param serverVersion - DEM version of the server.
|
|
220
|
+
* @param options - Optional verification rules and callbacks.
|
|
221
|
+
* @returns Object describing compatibility result and status code.
|
|
200
222
|
*/
|
|
201
223
|
export declare function verifyDEMVersion(clientVersion: string, serverVersion: string, options?: DEMVersionOptions): DEMVersionVerificationResult;
|
|
224
|
+
/**
|
|
225
|
+
* Safely stringifies a value to JSON, catching circular reference errors.
|
|
226
|
+
*
|
|
227
|
+
* @param obj - The value to stringify.
|
|
228
|
+
* @returns JSON string or fallback warning message.
|
|
229
|
+
*/
|
|
202
230
|
export declare function safeStringify(obj: unknown): string;
|
|
231
|
+
/**
|
|
232
|
+
* Global cache storing object references across managers.
|
|
233
|
+
*/
|
|
203
234
|
export declare class DEMGlobalCache {
|
|
204
235
|
objects: Record<string, {
|
|
205
236
|
className: string;
|
|
206
237
|
object: IAutoUpdatedClientObjectBase;
|
|
207
238
|
}>;
|
|
239
|
+
/**
|
|
240
|
+
* Clears all objects in the cache.
|
|
241
|
+
*/
|
|
208
242
|
clear(): void;
|
|
243
|
+
/**
|
|
244
|
+
* Retrieves the number of stored objects.
|
|
245
|
+
*
|
|
246
|
+
* @returns Total count of cached objects.
|
|
247
|
+
*/
|
|
209
248
|
get size(): number;
|
|
210
249
|
}
|
|
211
250
|
export type GlobalCache = DEMGlobalCache;
|