@prestizni-software/server-dem 0.7.1 → 0.7.4

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 (38) hide show
  1. package/dist/AutoUpdateManagerClass.d.ts +67 -1
  2. package/dist/AutoUpdateManagerClass.js +39 -2
  3. package/dist/AutoUpdateManagerClass.js.map +1 -1
  4. package/dist/AutoUpdateServerManagerClass.d.ts +109 -1
  5. package/dist/AutoUpdateServerManagerClass.js +185 -9
  6. package/dist/AutoUpdateServerManagerClass.js.map +1 -1
  7. package/dist/AutoUpdatedClientObjectClass.d.ts +119 -1
  8. package/dist/AutoUpdatedClientObjectClass.js +127 -10
  9. package/dist/AutoUpdatedClientObjectClass.js.map +1 -1
  10. package/dist/AutoUpdatedServerObjectClass.d.ts +96 -2
  11. package/dist/AutoUpdatedServerObjectClass.js +88 -7
  12. package/dist/AutoUpdatedServerObjectClass.js.map +1 -1
  13. package/dist/CommonTypes.d.ts +56 -1
  14. package/dist/CommonTypes.js +48 -1
  15. package/dist/CommonTypes.js.map +1 -1
  16. package/dist/DEMErrors.d.ts +89 -0
  17. package/dist/DEMErrors.js +155 -0
  18. package/dist/DEMErrors.js.map +1 -0
  19. package/dist/server.d.ts +1 -0
  20. package/dist/server.js +1 -0
  21. package/dist/server.js.map +1 -1
  22. package/dist/sync/ClientStateReconciler.d.ts +20 -0
  23. package/dist/sync/ClientStateReconciler.js +20 -0
  24. package/dist/sync/ClientStateReconciler.js.map +1 -1
  25. package/dist/sync/ServerChangeTracker.d.ts +46 -0
  26. package/dist/sync/ServerChangeTracker.js +46 -0
  27. package/dist/sync/ServerChangeTracker.js.map +1 -1
  28. package/dist/sync/storage/IndexedDbStorageAdapter.d.ts +31 -0
  29. package/dist/sync/storage/IndexedDbStorageAdapter.js +33 -1
  30. package/dist/sync/storage/IndexedDbStorageAdapter.js.map +1 -1
  31. package/dist/sync/storage/LocalStorageAdapter.d.ts +32 -0
  32. package/dist/sync/storage/LocalStorageAdapter.js +32 -0
  33. package/dist/sync/storage/LocalStorageAdapter.js.map +1 -1
  34. package/dist/sync/storage/MemoryStorageAdapter.d.ts +21 -0
  35. package/dist/sync/storage/MemoryStorageAdapter.js +21 -1
  36. package/dist/sync/storage/MemoryStorageAdapter.js.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +1 -1
@@ -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_PROTOCOL_VERSION, safeStringify, } from "./CommonTypes.js";
3
+ import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP, EVENT_VERSION, DEM_VERSION, DEM_PROTOCOL_VERSION, safeStringify, DEMError, DEMErrorCode, toDEMError, } from "./CommonTypes.js";
4
4
  import { EventEmitter } from "eventemitter3";
5
5
  import { getModelForClass } from "@typegoose/typegoose";
6
6
  import { ServerChangeTracker, } from "./sync/index.js";
@@ -12,6 +12,14 @@ export var DEMEventTypes;
12
12
  DEMEventTypes["get"] = "get";
13
13
  DEMEventTypes["startup"] = "startup";
14
14
  })(DEMEventTypes || (DEMEventTypes = {}));
15
+ /**
16
+ * Configures event whitelisting and permission middleware for the Socket.IO server.
17
+ *
18
+ * @param socket_server - Socket.IO server instance.
19
+ * @param loggers - Logging interfaces.
20
+ * @param managers - Registry of server managers.
21
+ * @param _models - Optional models registry.
22
+ */
15
23
  function setupSocketMiddleware(socket_server, loggers, managers, _models) {
16
24
  socket_server.use(async (socket, next) => {
17
25
  socket.use((async (event, nextEvent) => {
@@ -36,6 +44,7 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
36
44
  "]");
37
45
  event[2]({
38
46
  success: false,
47
+ code: DEMErrorCode.UNDEFINED_EVENT,
39
48
  message: "Undefined event, event: " + event[0] + " not found",
40
49
  });
41
50
  return;
@@ -104,7 +113,7 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
104
113
  };
105
114
  break;
106
115
  default:
107
- throw new Error("Unknown event: " +
116
+ throw new DEMError(DEMErrorCode.UNKNOWN_EVENT, "Unknown event: " +
108
117
  e +
109
118
  " - known events: [" +
110
119
  Object.values(DEMEventTypes).join(", ") +
@@ -128,6 +137,7 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
128
137
  "'");
129
138
  event[2]({
130
139
  success: false,
140
+ code: DEMErrorCode.ACCESS_DENIED,
131
141
  message: "You were denied access to this event '" +
132
142
  event[0] +
133
143
  "' by the server.\n" +
@@ -136,16 +146,54 @@ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
136
146
  }
137
147
  }
138
148
  catch (error) {
149
+ const demErr = toDEMError(error, DEMErrorCode.INTERNAL_ERROR);
139
150
  loggers.error?.("Error with event: " +
140
151
  event[0] +
141
152
  "\nError: " +
142
- (error instanceof Error ? error.message : String(error)));
153
+ demErr.message);
154
+ event[2]({
155
+ success: false,
156
+ code: demErr.code,
157
+ message: error instanceof Error ? error.message : String(error),
158
+ });
143
159
  return;
144
160
  }
145
161
  }));
146
162
  next();
147
163
  });
148
164
  }
165
+ /**
166
+ * Inspects database readiness states across all configured server managers.
167
+ *
168
+ * @param managers - Registry of server managers to inspect.
169
+ * @param loggers - Optional logger callbacks.
170
+ * @param emitter - Optional event emitter for error events.
171
+ * @throws {DEMError} Throws DEMErrorCode.DB_NOT_CONNECTED if any database is disconnected.
172
+ */
173
+ export function checkServerDbStates(managers, loggers, emitter) {
174
+ for (const [key, manager] of Object.entries(managers)) {
175
+ if (!manager)
176
+ continue;
177
+ const status = manager.checkDbState();
178
+ if (!status.connected) {
179
+ const err = new DEMError(DEMErrorCode.DB_NOT_CONNECTED, `Server DB state check failed for '${key}': Database is in state '${status.stateName}' (code: ${status.readyState}). Database must be connected before DEM starts loading.`, { manager: key, readyState: status.readyState, stateName: status.stateName });
180
+ emitter?.emit("error", err);
181
+ loggers?.error?.(err.message);
182
+ throw err;
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Initializes and starts all server managers, executes DB state assertions, preloads data, and attaches sockets.
188
+ *
189
+ * @param defs - Server manager definitions including class constructors and options.
190
+ * @param loggers_ - Loggers interface.
191
+ * @param socket - Socket.IO server instance.
192
+ * @param doDebug - Flag indicating whether debug logging is enabled.
193
+ * @param emitter - Shared event emitter.
194
+ * @param models - Optional model registry.
195
+ * @returns Promise resolving to the map of initialized server managers.
196
+ */
149
197
  export async function AUSManagerFactory(defs, loggers_, socket, doDebug = true, emitter = new EventEmitter(), models) {
150
198
  // Use delegation instead of cloning or direct mutation to ensure late-added spies work
151
199
  const loggers = {
@@ -176,6 +224,8 @@ export async function AUSManagerFactory(defs, loggers_, socket, doDebug = true,
176
224
  loggers.error?.(error.stack);
177
225
  }
178
226
  }
227
+ // 1.5. Inspect database states before loading starts
228
+ checkServerDbStates(managers, loggers, emitter);
179
229
  // 2. Pre-load all managers in parallel
180
230
  await Promise.all(keys.map(async (key) => {
181
231
  if (!managers[key])
@@ -239,6 +289,18 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
239
289
  startupPayloadCache = null;
240
290
  _cachedObjectsArray = null;
241
291
  changeTracker;
292
+ /**
293
+ * Initializes an AutoUpdateServerManager instance.
294
+ *
295
+ * @param classParam - Target server object class constructor.
296
+ * @param className - Managed entity class name.
297
+ * @param socket - Socket.IO Server instance.
298
+ * @param loggers - Logger callbacks interface.
299
+ * @param model - Typegoose Mongoose model for database operations.
300
+ * @param managers - Sibling server managers registry.
301
+ * @param emitter - Shared event emitter.
302
+ * @param options - Server manager options including access middlewares and delta sync settings.
303
+ */
242
304
  constructor(classParam, className, socket, loggers, model, managers, emitter, options) {
243
305
  super(classParam, className, socket, loggers, managers, emitter);
244
306
  this.managers = managers;
@@ -251,7 +313,53 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
251
313
  }
252
314
  }
253
315
  }
316
+ /**
317
+ * Inspects current database connection state.
318
+ *
319
+ * @returns Object describing connected flag, numeric readyState, and stateName.
320
+ */
321
+ checkDbState() {
322
+ const db = this.model?.db;
323
+ if (!db || typeof db.readyState !== "number") {
324
+ return { connected: true, readyState: 1, stateName: "connected" };
325
+ }
326
+ const readyState = db.readyState;
327
+ const stateNames = {
328
+ 0: "disconnected",
329
+ 1: "connected",
330
+ 2: "connecting",
331
+ 3: "disconnecting",
332
+ 99: "uninitialized",
333
+ };
334
+ const stateName = stateNames[readyState] ?? "unknown";
335
+ return {
336
+ connected: readyState === 1,
337
+ readyState,
338
+ stateName,
339
+ };
340
+ }
341
+ /**
342
+ * Verifies database connection is active.
343
+ *
344
+ * @throws {DEMError} Throws DEMErrorCode.DB_NOT_CONNECTED if database is not connected.
345
+ */
346
+ assertDbConnected() {
347
+ const status = this.checkDbState();
348
+ if (!status.connected) {
349
+ const err = new DEMError(DEMErrorCode.DB_NOT_CONNECTED, `Database for manager '${this.className}' is in state '${status.stateName}' (code: ${status.readyState}). Database must be connected before DEM starts loading.`, { className: this.className, readyState: status.readyState, stateName: status.stateName });
350
+ this.emitter.emit("error", err);
351
+ this.loggers.error?.(err.message);
352
+ throw err;
353
+ }
354
+ }
355
+ /**
356
+ * Preloads all database documents into memory for the manager class.
357
+ *
358
+ * @param options - Optional batch loading options.
359
+ * @returns Promise resolving when all entities are loaded and populated in globalCache.
360
+ */
254
361
  async preLoad(options) {
362
+ this.assertDbConnected();
255
363
  this.loggers.debug("Loading manager DB " + this.className);
256
364
  const docs = await this.model.find({});
257
365
  // Optimization: Parallelize object creation to ensure all objects are in globalCache
@@ -278,6 +386,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
278
386
  docs.length +
279
387
  "] entries");
280
388
  }
389
+ /**
390
+ * Resolves back-references and pointers across loaded objects.
391
+ *
392
+ * @returns Promise resolving when reference resolution completes.
393
+ */
281
394
  async loadReferences() {
282
395
  // Phase 1: Initial reference resolution (including back-references/createdWithParent)
283
396
  // This MUST happen after all managers have finished preLoad so that all objects exist in globalCache.
@@ -285,6 +398,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
285
398
  // Phase 2: Resolve missing references (pointers) and set isLoaded_ = true
286
399
  await super.loadReferences();
287
400
  }
401
+ /**
402
+ * Registers a client socket with the manager and binds startup, delete, and new event listeners.
403
+ *
404
+ * @param socket - Connected client Socket instance.
405
+ */
288
406
  registerSocket(socket) {
289
407
  this.clientSockets.add(socket);
290
408
  socket.on(EVENT_STARTUP + this.className, async (req, ack) => {
@@ -389,9 +507,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
389
507
  (error instanceof Error ? error.message : String(error)));
390
508
  if (error instanceof Error && error.stack)
391
509
  this.loggers.error(error.stack);
510
+ const demErr = toDEMError(error, DEMErrorCode.STARTUP_FAILED);
392
511
  if (typeof ack === "function") {
393
512
  ack({
394
513
  success: false,
514
+ code: demErr.code,
395
515
  message: error instanceof Error ? error.message : String(error),
396
516
  });
397
517
  }
@@ -406,6 +526,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
406
526
  if (res && !res.success) {
407
527
  ack({
408
528
  success: false,
529
+ code: res.code ?? DEMErrorCode.OBJECT_DELETE_FAILED,
409
530
  message: res.message || "Deletion unsuccessful",
410
531
  });
411
532
  }
@@ -427,9 +548,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
427
548
  (error instanceof Error ? error.message : String(error)));
428
549
  if (error instanceof Error && error.stack)
429
550
  this.loggers.error(error.stack);
551
+ const demErr = toDEMError(error, DEMErrorCode.OBJECT_DELETE_FAILED);
430
552
  if (typeof ack === "function") {
431
553
  ack({
432
554
  success: false,
555
+ code: demErr.code,
433
556
  message: error instanceof Error ? error.message : String(error),
434
557
  });
435
558
  }
@@ -455,9 +578,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
455
578
  (error instanceof Error ? error.message : String(error)));
456
579
  if (error instanceof Error && error.stack)
457
580
  this.loggers.error(error.stack);
581
+ const demErr = toDEMError(error, DEMErrorCode.OBJECT_CREATE_FAILED);
458
582
  if (typeof ack === "function") {
459
583
  ack({
460
584
  success: false,
585
+ code: demErr.code,
461
586
  message: error instanceof Error ? error.message : String(error),
462
587
  });
463
588
  }
@@ -479,7 +604,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
479
604
  const id = event.replace(EVENT_UPDATE + this.className, "");
480
605
  let obj = this.objects_[id];
481
606
  if (!obj)
482
- throw new Error(`Never... failed to get object somehow: ${id}`);
607
+ throw new DEMError(DEMErrorCode.OBJECT_GET_FAILED, `Never... failed to get object somehow: ${id}`);
483
608
  const res = await obj.setValue(data.key, data.value);
484
609
  if (typeof ack === "function") {
485
610
  res.success
@@ -488,14 +613,20 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
488
613
  success: res.success,
489
614
  message: res.msg,
490
615
  })
491
- : ack({ success: res.success, message: res.msg });
616
+ : ack({
617
+ success: res.success,
618
+ code: res.code ?? DEMErrorCode.DB_SAVE_FAILED,
619
+ message: res.msg,
620
+ });
492
621
  }
493
622
  }
494
623
  catch (error) {
495
624
  this.loggers.warn("Failed to update object in manager " + this.className);
625
+ const demErr = toDEMError(error, DEMErrorCode.DB_SAVE_FAILED);
496
626
  if (typeof ack === "function") {
497
627
  ack({
498
628
  success: false,
629
+ code: demErr.code,
499
630
  message: error instanceof Error ? error.message : String(error),
500
631
  });
501
632
  }
@@ -507,7 +638,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
507
638
  const id = event.replace(EVENT_GET + this.className, "");
508
639
  let obj = this.objects_[id];
509
640
  if (!obj)
510
- throw new Error(`Object not found: ${id}`);
641
+ throw new DEMError(DEMErrorCode.OBJECT_NOT_FOUND, `Object not found: ${id}`);
511
642
  if (typeof ack === "function") {
512
643
  ack({
513
644
  data: obj.extractedData,
@@ -523,9 +654,11 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
523
654
  (error instanceof Error ? error.message : String(error)));
524
655
  if (error instanceof Error && error.stack)
525
656
  this.loggers.error(error.stack);
657
+ const demErr = toDEMError(error, DEMErrorCode.OBJECT_GET_FAILED);
526
658
  if (typeof ack === "function") {
527
659
  ack({
528
660
  success: false,
661
+ code: demErr.code,
529
662
  message: error instanceof Error ? error.message : String(error),
530
663
  });
531
664
  }
@@ -537,20 +670,42 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
537
670
  this.knownObjectIdsBySocket.delete(socket);
538
671
  });
539
672
  }
673
+ /**
674
+ * Retrieves a server managed object by identifier.
675
+ *
676
+ * @param _id - Optional entity identifier.
677
+ * @returns Managed entity instance, null, or undefined.
678
+ */
540
679
  getObject(_id) {
541
680
  if (!_id)
542
681
  return null;
543
682
  return this.objects_[_id.toString()] || undefined;
544
683
  }
684
+ /**
685
+ * Dictionary of all managed entities keyed by their string IDs.
686
+ *
687
+ * @returns Map of managed entities.
688
+ */
545
689
  get objects() {
546
690
  return this.objects_;
547
691
  }
692
+ /**
693
+ * Array representation of all managed entities.
694
+ *
695
+ * @returns Array containing all managed entities.
696
+ */
548
697
  get objectsAsArray() {
549
698
  if (!this._cachedObjectsArray) {
550
699
  this._cachedObjectsArray = Object.values(this.objects_);
551
700
  }
552
701
  return this._cachedObjectsArray;
553
702
  }
703
+ /**
704
+ * Deletes an entity from database, manager cache, and mutation tracker.
705
+ *
706
+ * @param _id - Identifier of entity to delete.
707
+ * @returns Promise resolving to deletion outcome object.
708
+ */
554
709
  async deleteObject(_id) {
555
710
  this._cachedObjectsArray = null;
556
711
  const idStr = _id.toString();
@@ -566,6 +721,13 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
566
721
  return super.deleteObject(_id);
567
722
  }
568
723
  pendingMissingFetches = new Map();
724
+ /**
725
+ * Retrieves an entity missing from memory by querying MongoDB directly.
726
+ *
727
+ * @param _id - Identifier of missing entity.
728
+ * @returns Promise resolving to the retrieved server object.
729
+ * @throws {DEMError} Throws DEMErrorCode.DOCUMENT_NOT_FOUND or MANAGERS_NOT_INITIALIZED.
730
+ */
569
731
  async handleGetMissingObject(_id) {
570
732
  const _idStr = _id.toString();
571
733
  if (this.getObject(_idStr))
@@ -577,9 +739,9 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
577
739
  try {
578
740
  const document = await this.model.findById(_idStr);
579
741
  if (!document)
580
- throw new Error(`No document with id ${_idStr} in DB.`);
742
+ throw new DEMError(DEMErrorCode.DOCUMENT_NOT_FOUND, `No document with id ${_idStr} in DB.`);
581
743
  if (!this.managers)
582
- throw new Error(`No managers.`);
744
+ throw new DEMError(DEMErrorCode.MANAGERS_NOT_INITIALIZED, `No managers.`);
583
745
  const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
584
746
  await object.waitForPreloaded();
585
747
  this.objects_[object._id.toString()] = object;
@@ -600,9 +762,17 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
600
762
  this.pendingMissingFetches.set(_idStr, fetchPromise);
601
763
  return fetchPromise;
602
764
  }
765
+ /**
766
+ * Creates a new entity document in MongoDB and instantiates its manager wrapper.
767
+ * Broadcasts creation event to client sockets with authorized access.
768
+ *
769
+ * @param data - Initial entity properties.
770
+ * @returns Promise resolving to the created server entity.
771
+ * @throws {DEMError} Throws DEMErrorCode.MANAGERS_NOT_INITIALIZED.
772
+ */
603
773
  async createObject(data) {
604
774
  if (!this.managers)
605
- throw new Error(`No managers.`);
775
+ throw new DEMError(DEMErrorCode.MANAGERS_NOT_INITIALIZED, `No managers.`);
606
776
  this.loggers.debug("Creating new object from manager " + this.className);
607
777
  const rawRec = { ...data };
608
778
  if (rawRec._id === "" || rawRec._id === null)
@@ -684,6 +854,12 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
684
854
  }
685
855
  return object;
686
856
  }
857
+ /**
858
+ * Re-evaluates client socket permissions against dynamic startup middleware rules.
859
+ * Emits 'new' or 'delete' socket events when client access changes dynamically.
860
+ *
861
+ * @param object - Entity to evaluate.
862
+ */
687
863
  async checkPermissionBoundaries(object) {
688
864
  if (!this.options?.accessDefinitions?.startupMiddleware)
689
865
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"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"}