@prestizni-software/server-dem 0.9.2 → 0.10.2
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 +3 -1
- package/AutoUpdateClientManagerClass.js +21 -4
- package/AutoUpdateClientManagerClass.js.map +1 -1
- package/AutoUpdateManagerClass.d.ts +2 -1
- package/AutoUpdateManagerClass.js +3 -2
- package/AutoUpdateManagerClass.js.map +1 -1
- package/AutoUpdateServerManagerClass.d.ts +18 -1
- package/AutoUpdateServerManagerClass.js +172 -16
- package/AutoUpdateServerManagerClass.js.map +1 -1
- package/AutoUpdatedClientObjectClass.d.ts +24 -3
- package/AutoUpdatedClientObjectClass.js +133 -14
- package/AutoUpdatedClientObjectClass.js.map +1 -1
- package/AutoUpdatedServerObjectClass.js +49 -8
- package/AutoUpdatedServerObjectClass.js.map +1 -1
- package/CommonTypes.d.ts +10 -1
- package/CommonTypes.js +1 -0
- package/CommonTypes.js.map +1 -1
- package/package.json +1 -1
- package/sync/ClientStateReconciler.d.ts +1 -1
- package/sync/ClientStateReconciler.js +9 -2
- package/sync/ClientStateReconciler.js.map +1 -1
- package/version.d.ts +4 -4
- package/version.js +3 -3
- package/version.js.map +1 -1
|
@@ -46,6 +46,7 @@ export declare class AutoUpdateClientManager<T extends IAutoUpdatedClientObjectB
|
|
|
46
46
|
private pendingHydrations;
|
|
47
47
|
private _cachedObjectsArray;
|
|
48
48
|
private _reconnectHandler?;
|
|
49
|
+
private _deauthHandler?;
|
|
49
50
|
/**
|
|
50
51
|
* Initializes an AutoUpdateClientManager instance.
|
|
51
52
|
*
|
|
@@ -77,9 +78,10 @@ export declare class AutoUpdateClientManager<T extends IAutoUpdatedClientObjectB
|
|
|
77
78
|
* Deletes an object by ID from local cache, socket events, and persistent storage adapter.
|
|
78
79
|
*
|
|
79
80
|
* @param _id - Identifier of object to delete.
|
|
81
|
+
* @param isRemote - Whether the deletion originates from a remote server broadcast or delta sync.
|
|
80
82
|
* @returns Promise resolving to deletion outcome.
|
|
81
83
|
*/
|
|
82
|
-
deleteObject(_id: MongoId): Promise<{
|
|
84
|
+
deleteObject(_id: MongoId, isRemote?: boolean): Promise<{
|
|
83
85
|
success: boolean;
|
|
84
86
|
message: string;
|
|
85
87
|
code?: DEMErrorCode;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
|
|
2
|
-
import { globalCache, EVENT_GET, EVENT_UPDATE, DEM_CLIENT_VERSION, verifyDEMVersion, DEMError, DEMErrorCode, } from "./CommonTypes.js";
|
|
2
|
+
import { globalCache, EVENT_GET, EVENT_UPDATE, EVENT_DEAUTHENTICATE, DEM_CLIENT_VERSION, verifyDEMVersion, DEMError, DEMErrorCode, } from "./CommonTypes.js";
|
|
3
3
|
import { EventEmitter } from "eventemitter3";
|
|
4
4
|
import { ClientStateReconciler, } from "./sync/index.js";
|
|
5
5
|
const inFlightFactories = new WeakMap();
|
|
@@ -173,6 +173,7 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
173
173
|
pendingHydrations = new Map();
|
|
174
174
|
_cachedObjectsArray = null;
|
|
175
175
|
_reconnectHandler;
|
|
176
|
+
_deauthHandler;
|
|
176
177
|
/**
|
|
177
178
|
* Initializes an AutoUpdateClientManager instance.
|
|
178
179
|
*
|
|
@@ -229,6 +230,12 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
229
230
|
}
|
|
230
231
|
};
|
|
231
232
|
this.socket?.on?.("reconnect", this._reconnectHandler);
|
|
233
|
+
this._deauthHandler = (payload) => {
|
|
234
|
+
this.loggers.info?.(`[DEM - ${this.className} MANAGER] Received deauthenticate event, tearing down manager.`);
|
|
235
|
+
this.emitter.emit(EVENT_DEAUTHENTICATE, payload);
|
|
236
|
+
this.close();
|
|
237
|
+
};
|
|
238
|
+
this.socket?.on?.(EVENT_DEAUTHENTICATE, this._deauthHandler);
|
|
232
239
|
}
|
|
233
240
|
/**
|
|
234
241
|
* Normalizes loaded object count against total objects into a 0 to 1 progress fraction.
|
|
@@ -298,7 +305,7 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
298
305
|
try {
|
|
299
306
|
this.totalObjects -= 1;
|
|
300
307
|
this.loadedObjects -= 1;
|
|
301
|
-
await this.deleteObject(id);
|
|
308
|
+
await this.deleteObject(id, true);
|
|
302
309
|
}
|
|
303
310
|
catch (error) {
|
|
304
311
|
this.loggers.error("Error applying object deletion from manager " +
|
|
@@ -315,13 +322,14 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
315
322
|
* Deletes an object by ID from local cache, socket events, and persistent storage adapter.
|
|
316
323
|
*
|
|
317
324
|
* @param _id - Identifier of object to delete.
|
|
325
|
+
* @param isRemote - Whether the deletion originates from a remote server broadcast or delta sync.
|
|
318
326
|
* @returns Promise resolving to deletion outcome.
|
|
319
327
|
*/
|
|
320
|
-
async deleteObject(_id) {
|
|
328
|
+
async deleteObject(_id, isRemote = false) {
|
|
321
329
|
const _idStr = _id.toString();
|
|
322
330
|
this.socket.off(EVENT_UPDATE + this.className + _idStr);
|
|
323
331
|
this._cachedObjectsArray = null;
|
|
324
|
-
const res = await super.deleteObject(_id);
|
|
332
|
+
const res = await super.deleteObject(_id, isRemote);
|
|
325
333
|
if (this.storageAdapter) {
|
|
326
334
|
await ClientStateReconciler.persistToStorage(this, this.lastRevision, this.storageAdapter);
|
|
327
335
|
}
|
|
@@ -475,6 +483,11 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
475
483
|
}
|
|
476
484
|
// Clear old objects before populating new ones on full reload
|
|
477
485
|
for (const oldId of Object.keys(this.objects_)) {
|
|
486
|
+
this.socket.off(EVENT_UPDATE + this.className + oldId);
|
|
487
|
+
const oldObj = this.objects_[oldId];
|
|
488
|
+
if (oldObj && typeof oldObj.destroyImmediate === "function") {
|
|
489
|
+
oldObj.destroyImmediate();
|
|
490
|
+
}
|
|
478
491
|
delete globalCache.objects[oldId];
|
|
479
492
|
}
|
|
480
493
|
this.objects_ = {};
|
|
@@ -805,6 +818,10 @@ export class AutoUpdateClientManager extends AutoUpdateManager {
|
|
|
805
818
|
* Closes the manager and unbinds all socket event listeners.
|
|
806
819
|
*/
|
|
807
820
|
close() {
|
|
821
|
+
if (this._deauthHandler) {
|
|
822
|
+
this.socket?.off?.(EVENT_DEAUTHENTICATE, this._deauthHandler);
|
|
823
|
+
this._deauthHandler = undefined;
|
|
824
|
+
}
|
|
808
825
|
if (this._reconnectHandler) {
|
|
809
826
|
this.socket?.off?.("reconnect", this._reconnectHandler);
|
|
810
827
|
this._reconnectHandler = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdateClientManagerClass.js","sourceRoot":"","sources":["../AutoUpdateClientManagerClass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutoUpdateClientManagerClass.js","sourceRoot":"","sources":["../AutoUpdateClientManagerClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,9 +51,10 @@ export declare abstract class AutoUpdateManager<T extends IAutoUpdatedClientObje
|
|
|
51
51
|
* Deletes an object by its identifier, destroys the instance, and clears global caches.
|
|
52
52
|
*
|
|
53
53
|
* @param _id - The unique identifier of the object to delete.
|
|
54
|
+
* @param isRemote - Whether the deletion originates from a remote source.
|
|
54
55
|
* @returns A promise resolving to the deletion result object.
|
|
55
56
|
*/
|
|
56
|
-
deleteObject(_id: MongoId): Promise<{
|
|
57
|
+
deleteObject(_id: MongoId, isRemote?: boolean): Promise<{
|
|
57
58
|
success: boolean;
|
|
58
59
|
message: string;
|
|
59
60
|
code?: DEMErrorCode;
|
|
@@ -89,14 +89,15 @@ export class AutoUpdateManager {
|
|
|
89
89
|
* Deletes an object by its identifier, destroys the instance, and clears global caches.
|
|
90
90
|
*
|
|
91
91
|
* @param _id - The unique identifier of the object to delete.
|
|
92
|
+
* @param isRemote - Whether the deletion originates from a remote source.
|
|
92
93
|
* @returns A promise resolving to the deletion result object.
|
|
93
94
|
*/
|
|
94
|
-
async deleteObject(_id) {
|
|
95
|
+
async deleteObject(_id, isRemote = false) {
|
|
95
96
|
const _idStr = _id.toString();
|
|
96
97
|
const o = this.objects_[_idStr];
|
|
97
98
|
let res;
|
|
98
99
|
if (o && typeof o.destroy === "function") {
|
|
99
|
-
res = await o.destroy(true);
|
|
100
|
+
res = await o.destroy(true, isRemote);
|
|
100
101
|
}
|
|
101
102
|
if (res?.success || !o || typeof o?.destroy !== "function") {
|
|
102
103
|
delete this.objects_[_idStr];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,WAAW,EACX,QAAQ,EACR,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAE1B,MAAM,OAAgB,iBAAiB;IAQ3B,SAAS,GAAG,KAAK,CAAC;IACZ,MAAM,CAAU;IACtB,UAAU,CAAiB;IAC3B,UAAU,CAAW;IACf,SAAS,CAAS;IAClB,KAAK,GAAa;QAChC,UAAU,EAAE,EAAE;KACf,CAAC;IACc,QAAQ,CAAI;IAClB,SAAS,GAAG,KAAK,CAAC;IAClB,0BAA0B,GAA8B,EAAE,CAAC;IAC3D,OAAO,GAAgB;QAC/B,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf,CAAC;IACQ,OAAO,CAAgB;IAEjC;;;;;;;;;;;OAWG;IACH,YACE,UAA0B,EAC1B,SAAiB,EACjB,MAAe,EACf,OAAoB,EACpB,QAAW,EACX,OAAsB;QAEtB,IAAI,CAAC,UAAU;YACb,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,gBAAgB,EAC7B,uCAAuC,CACxC,CAAC;QACJ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC;QAClC,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,KAAK,GACT,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;gBACvC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;gBACpC,EAAE,CAAC;YACL,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CACjC,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAChC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CACjC,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAChC,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;QAEC,IAAI,CAAC,MAIN,CAAC,UAAU,EAAE,EAAE;YAEZ,IAAI,CAAC,MAIN,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,12 +167,29 @@ export declare class AutoUpdateServerManager<T extends IAutoUpdatedClientObject<
|
|
|
167
167
|
* @returns Dictionary mapping manager class names to arrays of extracted entity data.
|
|
168
168
|
*/
|
|
169
169
|
collectEntityGraph(rootObj: T, maxDepth: number): Record<string, any[]>;
|
|
170
|
+
/**
|
|
171
|
+
* Asynchronously traverses entity references to collect a graph of related entities,
|
|
172
|
+
* querying MongoDB for unhydrated entities when lazy loading is active.
|
|
173
|
+
*
|
|
174
|
+
* @param rootObj - Root entity to start traversal from.
|
|
175
|
+
* @param maxDepth - Maximum reference depth to traverse.
|
|
176
|
+
* @returns Promise resolving to dictionary mapping manager class names to arrays of extracted entity data.
|
|
177
|
+
*/
|
|
178
|
+
collectEntityGraphAsync(rootObj: T, maxDepth: number): Promise<Record<string, any[]>>;
|
|
170
179
|
/**
|
|
171
180
|
* Registers a client socket with the manager and binds startup, delete, and new event listeners.
|
|
172
181
|
*
|
|
173
182
|
* @param socket - Connected client Socket instance.
|
|
174
183
|
*/
|
|
175
184
|
registerSocket(socket: Socket): void;
|
|
185
|
+
/**
|
|
186
|
+
* Emits standardized deauthenticate event to a target client socket or all connected client sockets,
|
|
187
|
+
* triggering automatic teardown and memory cleanup on the client.
|
|
188
|
+
*
|
|
189
|
+
* @param targetSocket - Optional client socket to deauthenticate. If omitted, all registered client sockets are deauthenticated.
|
|
190
|
+
* @param reason - Optional explanation for deauthentication.
|
|
191
|
+
*/
|
|
192
|
+
deauthenticate(targetSocket?: Socket, reason?: string): void;
|
|
176
193
|
/**
|
|
177
194
|
* Retrieves a server managed object by identifier.
|
|
178
195
|
*
|
|
@@ -198,7 +215,7 @@ export declare class AutoUpdateServerManager<T extends IAutoUpdatedClientObject<
|
|
|
198
215
|
* @param _id - Identifier of entity to delete.
|
|
199
216
|
* @returns Promise resolving to deletion outcome object.
|
|
200
217
|
*/
|
|
201
|
-
deleteObject(_id: MongoId): Promise<{
|
|
218
|
+
deleteObject(_id: MongoId, isRemote?: boolean): Promise<{
|
|
202
219
|
success: boolean;
|
|
203
220
|
message: string;
|
|
204
221
|
code?: DEMErrorCode;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
|
|
2
2
|
import { createAutoUpdatedClass } from "./AutoUpdatedServerObjectClass.js";
|
|
3
|
-
import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP, EVENT_VERSION, DEM_VERSION, DEM_SERVER_VERSION, DEM_PROTOCOL_VERSION, safeStringify, verifyDEMVersion, DEMError, DEMErrorCode, toDEMError, } from "./CommonTypes.js";
|
|
3
|
+
import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP, EVENT_VERSION, EVENT_DEAUTHENTICATE, DEM_VERSION, DEM_SERVER_VERSION, DEM_PROTOCOL_VERSION, safeStringify, verifyDEMVersion, DEMError, DEMErrorCode, toDEMError, } from "./CommonTypes.js";
|
|
4
4
|
import { EventEmitter } from "eventemitter3";
|
|
5
5
|
import { getModelForClass } from "@typegoose/typegoose";
|
|
6
6
|
import { getMetadataRecursive, setupClassAccessors, } from "./AutoUpdatedClientObjectClass.js";
|
|
@@ -504,6 +504,81 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
504
504
|
}
|
|
505
505
|
return result;
|
|
506
506
|
}
|
|
507
|
+
/**
|
|
508
|
+
* Asynchronously traverses entity references to collect a graph of related entities,
|
|
509
|
+
* querying MongoDB for unhydrated entities when lazy loading is active.
|
|
510
|
+
*
|
|
511
|
+
* @param rootObj - Root entity to start traversal from.
|
|
512
|
+
* @param maxDepth - Maximum reference depth to traverse.
|
|
513
|
+
* @returns Promise resolving to dictionary mapping manager class names to arrays of extracted entity data.
|
|
514
|
+
*/
|
|
515
|
+
async collectEntityGraphAsync(rootObj, maxDepth) {
|
|
516
|
+
const visited = new Set();
|
|
517
|
+
const relatedByManager = {};
|
|
518
|
+
const rootIdStr = rootObj._id.toString();
|
|
519
|
+
visited.add(rootIdStr);
|
|
520
|
+
const queue = [{ obj: rootObj, manager: this, currentDepth: 0 }];
|
|
521
|
+
while (queue.length > 0) {
|
|
522
|
+
const { obj, manager, currentDepth } = queue.shift();
|
|
523
|
+
if (currentDepth >= maxDepth)
|
|
524
|
+
continue;
|
|
525
|
+
const classParam = manager.classParam;
|
|
526
|
+
let refProps = classParam?.__refPropsCache;
|
|
527
|
+
if (!refProps && classParam) {
|
|
528
|
+
const meta = setupClassAccessors(classParam);
|
|
529
|
+
refProps = classParam.__refPropsCache = Array.from(meta.refProps);
|
|
530
|
+
}
|
|
531
|
+
refProps = refProps ?? [];
|
|
532
|
+
const dataRec = obj.extractedData ?? obj.data ?? obj;
|
|
533
|
+
for (const prop of refProps) {
|
|
534
|
+
const val = dataRec[prop];
|
|
535
|
+
if (!val)
|
|
536
|
+
continue;
|
|
537
|
+
const targetClassName = (classParam?.__metaCache?.refsToMap?.get?.(prop)) ??
|
|
538
|
+
getMetadataRecursive("refsTo", classParam?.prototype ?? obj, prop) ??
|
|
539
|
+
getMetadataRecursive("refsTo", obj, prop);
|
|
540
|
+
const targetManager = targetClassName && this.managers
|
|
541
|
+
? this.managers[targetClassName]
|
|
542
|
+
: undefined;
|
|
543
|
+
if (!targetManager)
|
|
544
|
+
continue;
|
|
545
|
+
const rawIds = Array.isArray(val)
|
|
546
|
+
? val.map((v) => (v && v._id ? v._id.toString() : v?.toString())).filter(Boolean)
|
|
547
|
+
: [val && val._id ? val._id.toString() : val?.toString()].filter(Boolean);
|
|
548
|
+
for (const refId of rawIds) {
|
|
549
|
+
if (visited.has(refId))
|
|
550
|
+
continue;
|
|
551
|
+
visited.add(refId);
|
|
552
|
+
let refObj = targetManager.getObject(refId);
|
|
553
|
+
if (!refObj && typeof targetManager.handleGetMissingObject === "function") {
|
|
554
|
+
try {
|
|
555
|
+
refObj = await targetManager.handleGetMissingObject(refId);
|
|
556
|
+
}
|
|
557
|
+
catch {
|
|
558
|
+
// Ignore dangling references
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
if (refObj) {
|
|
562
|
+
if (!relatedByManager[targetManager.className]) {
|
|
563
|
+
relatedByManager[targetManager.className] = new Map();
|
|
564
|
+
}
|
|
565
|
+
const extracted = refObj.extractedData ?? refObj.data ?? refObj;
|
|
566
|
+
relatedByManager[targetManager.className].set(refId, extracted);
|
|
567
|
+
queue.push({
|
|
568
|
+
obj: refObj,
|
|
569
|
+
manager: targetManager,
|
|
570
|
+
currentDepth: currentDepth + 1,
|
|
571
|
+
});
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
const result = {};
|
|
577
|
+
for (const [mgrName, map] of Object.entries(relatedByManager)) {
|
|
578
|
+
result[mgrName] = Array.from(map.values());
|
|
579
|
+
}
|
|
580
|
+
return result;
|
|
581
|
+
}
|
|
507
582
|
/**
|
|
508
583
|
* Registers a client socket with the manager and binds startup, delete, and new event listeners.
|
|
509
584
|
*
|
|
@@ -741,8 +816,12 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
741
816
|
socket.on(EVENT_UPDATE + this.className, async () => { });
|
|
742
817
|
socket.on(EVENT_GET + this.className, async () => { });
|
|
743
818
|
socket.onAny(async (event, data, ack) => {
|
|
744
|
-
|
|
745
|
-
|
|
819
|
+
const updatePrefix = EVENT_UPDATE + this.className;
|
|
820
|
+
const getPrefix = EVENT_GET + this.className;
|
|
821
|
+
if (event.startsWith(updatePrefix)) {
|
|
822
|
+
const id = event.slice(updatePrefix.length);
|
|
823
|
+
if (!id)
|
|
824
|
+
return;
|
|
746
825
|
this.loggers.debug("Updating object in manager " +
|
|
747
826
|
this.className +
|
|
748
827
|
": " +
|
|
@@ -750,8 +829,10 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
750
829
|
" - " +
|
|
751
830
|
(typeof data === "object" ? "[object]" : String(data)));
|
|
752
831
|
try {
|
|
753
|
-
const id = event.replace(EVENT_UPDATE + this.className, "");
|
|
754
832
|
let obj = this.objects_[id];
|
|
833
|
+
if (!obj) {
|
|
834
|
+
obj = await this.handleGetMissingObject(id);
|
|
835
|
+
}
|
|
755
836
|
if (!obj)
|
|
756
837
|
throw new DEMError(DEMErrorCode.OBJECT_GET_FAILED, `Never... failed to get object somehow: ${id}`);
|
|
757
838
|
const res = await obj.setValue(data.key, data.value);
|
|
@@ -760,9 +841,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
760
841
|
? ack({
|
|
761
842
|
data: null,
|
|
762
843
|
success: res.success,
|
|
844
|
+
code: res.code,
|
|
763
845
|
message: res.msg,
|
|
764
846
|
})
|
|
765
847
|
: ack({
|
|
848
|
+
data: null,
|
|
766
849
|
success: res.success,
|
|
767
850
|
code: res.code ?? DEMErrorCode.DB_SAVE_FAILED,
|
|
768
851
|
message: res.msg,
|
|
@@ -781,18 +864,22 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
781
864
|
}
|
|
782
865
|
}
|
|
783
866
|
}
|
|
784
|
-
else if (event.startsWith(
|
|
785
|
-
event.
|
|
867
|
+
else if (event.startsWith(getPrefix)) {
|
|
868
|
+
const id = event.slice(getPrefix.length);
|
|
869
|
+
if (!id)
|
|
870
|
+
return;
|
|
786
871
|
try {
|
|
787
|
-
const id = event.replace(EVENT_GET + this.className, "");
|
|
788
872
|
let obj = this.objects_[id];
|
|
873
|
+
if (!obj) {
|
|
874
|
+
obj = await this.handleGetMissingObject(id);
|
|
875
|
+
}
|
|
789
876
|
if (!obj)
|
|
790
877
|
throw new DEMError(DEMErrorCode.OBJECT_NOT_FOUND, `Object not found: ${id}`);
|
|
791
878
|
const requestedDepth = typeof data === "object" && data && typeof data.depth === "number"
|
|
792
879
|
? data.depth
|
|
793
880
|
: 0;
|
|
794
881
|
if (requestedDepth > 0) {
|
|
795
|
-
const related = this.
|
|
882
|
+
const related = await this.collectEntityGraphAsync(obj, requestedDepth);
|
|
796
883
|
if (typeof ack === "function") {
|
|
797
884
|
ack({
|
|
798
885
|
data: obj.extractedData,
|
|
@@ -835,6 +922,27 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
835
922
|
this.knownObjectIdsBySocket.delete(socket);
|
|
836
923
|
});
|
|
837
924
|
}
|
|
925
|
+
/**
|
|
926
|
+
* Emits standardized deauthenticate event to a target client socket or all connected client sockets,
|
|
927
|
+
* triggering automatic teardown and memory cleanup on the client.
|
|
928
|
+
*
|
|
929
|
+
* @param targetSocket - Optional client socket to deauthenticate. If omitted, all registered client sockets are deauthenticated.
|
|
930
|
+
* @param reason - Optional explanation for deauthentication.
|
|
931
|
+
*/
|
|
932
|
+
deauthenticate(targetSocket, reason) {
|
|
933
|
+
const payload = {
|
|
934
|
+
reason: reason ?? "Session expired or unauthorized",
|
|
935
|
+
timestamp: Date.now(),
|
|
936
|
+
};
|
|
937
|
+
if (targetSocket) {
|
|
938
|
+
targetSocket.emit(EVENT_DEAUTHENTICATE, payload);
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
for (const s of this.clientSockets) {
|
|
942
|
+
s.emit(EVENT_DEAUTHENTICATE, payload);
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
}
|
|
838
946
|
/**
|
|
839
947
|
* Retrieves a server managed object by identifier.
|
|
840
948
|
*
|
|
@@ -871,19 +979,67 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
|
|
|
871
979
|
* @param _id - Identifier of entity to delete.
|
|
872
980
|
* @returns Promise resolving to deletion outcome object.
|
|
873
981
|
*/
|
|
874
|
-
async deleteObject(_id) {
|
|
982
|
+
async deleteObject(_id, isRemote = false) {
|
|
875
983
|
this._cachedObjectsArray = null;
|
|
984
|
+
this.startupPayloadCache = null;
|
|
876
985
|
const idStr = _id.toString();
|
|
877
|
-
|
|
878
|
-
|
|
986
|
+
let res;
|
|
987
|
+
const inMemoryObj = this.objects_[idStr];
|
|
988
|
+
if (inMemoryObj && typeof inMemoryObj.destroy === "function") {
|
|
989
|
+
res = await super.deleteObject(_id, isRemote);
|
|
879
990
|
}
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
991
|
+
else {
|
|
992
|
+
// Unhydrated or lazy object: delete directly from database
|
|
993
|
+
try {
|
|
994
|
+
let doc = null;
|
|
995
|
+
let deleted = false;
|
|
996
|
+
if (typeof this.model?.findById === "function") {
|
|
997
|
+
doc = await this.model.findById(idStr);
|
|
998
|
+
}
|
|
999
|
+
if (doc) {
|
|
1000
|
+
if (this.options?.onDeletion) {
|
|
1001
|
+
await this.options.onDeletion(doc);
|
|
1002
|
+
}
|
|
1003
|
+
if (typeof doc.deleteOne === "function") {
|
|
1004
|
+
await doc.deleteOne();
|
|
1005
|
+
deleted = true;
|
|
1006
|
+
}
|
|
1007
|
+
else if (typeof this.model?.deleteOne === "function") {
|
|
1008
|
+
await this.model.deleteOne({ _id: idStr });
|
|
1009
|
+
deleted = true;
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
else if (typeof this.model?.deleteOne === "function") {
|
|
1013
|
+
const delRes = await this.model.deleteOne({ _id: idStr });
|
|
1014
|
+
if (delRes && delRes.deletedCount > 0) {
|
|
1015
|
+
deleted = true;
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
delete this.objects_[idStr];
|
|
1019
|
+
delete globalCache.objects[idStr];
|
|
1020
|
+
res = { success: true, message: deleted ? "Deleted" : "Already gone" };
|
|
1021
|
+
}
|
|
1022
|
+
catch (error) {
|
|
1023
|
+
this.loggers.error?.(`Error deleting unhydrated object ${this.className} ${idStr}: ${error?.message ?? String(error)}`);
|
|
1024
|
+
return {
|
|
1025
|
+
success: false,
|
|
1026
|
+
code: DEMErrorCode.OBJECT_DELETE_FAILED,
|
|
1027
|
+
message: error?.message ?? String(error),
|
|
1028
|
+
};
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
if (res.success) {
|
|
1032
|
+
if (this.changeTracker) {
|
|
1033
|
+
this.changeTracker.recordChange("delete", idStr);
|
|
1034
|
+
}
|
|
1035
|
+
for (const socket of this.clientSockets) {
|
|
1036
|
+
const known = this.knownObjectIdsBySocket.get(socket);
|
|
1037
|
+
if (known) {
|
|
1038
|
+
known.delete(idStr);
|
|
1039
|
+
}
|
|
884
1040
|
}
|
|
885
1041
|
}
|
|
886
|
-
return
|
|
1042
|
+
return res;
|
|
887
1043
|
}
|
|
888
1044
|
pendingMissingFetches = new Map();
|
|
889
1045
|
/**
|