@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.
Files changed (63) hide show
  1. package/AutoUpdateClientManagerClass.d.ts +141 -0
  2. package/{dist/AutoUpdateClientManagerClass.js → AutoUpdateClientManagerClass.js} +103 -12
  3. package/AutoUpdateClientManagerClass.js.map +1 -0
  4. package/AutoUpdateManagerClass.d.ts +102 -0
  5. package/{dist/AutoUpdateManagerClass.js → AutoUpdateManagerClass.js} +37 -0
  6. package/AutoUpdateManagerClass.js.map +1 -0
  7. package/{dist/AutoUpdatedClientObjectClass.d.ts → AutoUpdatedClientObjectClass.d.ts} +114 -0
  8. package/{dist/AutoUpdatedClientObjectClass.js → AutoUpdatedClientObjectClass.js} +108 -0
  9. package/AutoUpdatedClientObjectClass.js.map +1 -0
  10. package/{dist/CommonTypes.d.ts → CommonTypes.d.ts} +48 -9
  11. package/{dist/CommonTypes.js → CommonTypes.js} +52 -22
  12. package/CommonTypes.js.map +1 -0
  13. package/{dist/DEMErrors.d.ts → DEMErrors.d.ts} +22 -2
  14. package/{dist/DEMErrors.js → DEMErrors.js} +22 -2
  15. package/{dist/DEMErrors.js.map → DEMErrors.js.map} +1 -1
  16. package/package.json +20 -40
  17. package/{dist/sync → sync}/ClientStateReconciler.d.ts +20 -0
  18. package/{dist/sync → sync}/ClientStateReconciler.js +20 -0
  19. package/sync/ClientStateReconciler.js.map +1 -0
  20. package/{dist/sync → sync}/ServerChangeTracker.d.ts +46 -0
  21. package/{dist/sync → sync}/ServerChangeTracker.js +46 -0
  22. package/sync/ServerChangeTracker.js.map +1 -0
  23. package/sync/storage/IndexedDbStorageAdapter.d.ts +53 -0
  24. package/{dist/sync → sync}/storage/IndexedDbStorageAdapter.js +31 -0
  25. package/sync/storage/IndexedDbStorageAdapter.js.map +1 -0
  26. package/sync/storage/LocalStorageAdapter.d.ts +59 -0
  27. package/{dist/sync → sync}/storage/LocalStorageAdapter.js +32 -0
  28. package/sync/storage/LocalStorageAdapter.js.map +1 -0
  29. package/sync/storage/MemoryStorageAdapter.d.ts +34 -0
  30. package/sync/storage/MemoryStorageAdapter.js +45 -0
  31. package/sync/storage/MemoryStorageAdapter.js.map +1 -0
  32. package/version.d.ts +21 -0
  33. package/version.js +22 -0
  34. package/version.js.map +1 -0
  35. package/README.md +0 -18
  36. package/dist/AutoUpdateClientManagerClass.d.ts +0 -51
  37. package/dist/AutoUpdateClientManagerClass.js.map +0 -1
  38. package/dist/AutoUpdateManagerClass.d.ts +0 -37
  39. package/dist/AutoUpdateManagerClass.js.map +0 -1
  40. package/dist/AutoUpdatedClientObjectClass.js.map +0 -1
  41. package/dist/CommonTypes.js.map +0 -1
  42. package/dist/sync/ClientStateReconciler.js.map +0 -1
  43. package/dist/sync/ServerChangeTracker.js.map +0 -1
  44. package/dist/sync/storage/IndexedDbStorageAdapter.d.ts +0 -22
  45. package/dist/sync/storage/IndexedDbStorageAdapter.js.map +0 -1
  46. package/dist/sync/storage/LocalStorageAdapter.d.ts +0 -27
  47. package/dist/sync/storage/LocalStorageAdapter.js.map +0 -1
  48. package/dist/sync/storage/MemoryStorageAdapter.d.ts +0 -13
  49. package/dist/sync/storage/MemoryStorageAdapter.js +0 -25
  50. package/dist/sync/storage/MemoryStorageAdapter.js.map +0 -1
  51. package/dist/tsconfig.tsbuildinfo +0 -1
  52. /package/{dist/client.d.ts → client.d.ts} +0 -0
  53. /package/{dist/client.js → client.js} +0 -0
  54. /package/{dist/client.js.map → client.js.map} +0 -0
  55. /package/{dist/sync → sync}/index.d.ts +0 -0
  56. /package/{dist/sync → sync}/index.js +0 -0
  57. /package/{dist/sync → sync}/index.js.map +0 -0
  58. /package/{dist/sync → sync}/storage/IClientStorageAdapter.d.ts +0 -0
  59. /package/{dist/sync → sync}/storage/IClientStorageAdapter.js +0 -0
  60. /package/{dist/sync → sync}/storage/IClientStorageAdapter.js.map +0 -0
  61. /package/{dist/sync → sync}/types.d.ts +0 -0
  62. /package/{dist/sync → sync}/types.js +0 -0
  63. /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":"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"}
@@ -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
- * Returns -1 if v1 < v2, 0 if v1 === v2, 1 if v1 > v2.
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;