@prestizni-software/server-dem 0.5.16 → 0.5.18

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.
@@ -1,6 +1,6 @@
1
- import { AutoUpdateManager } from "./AutoUpdateManagerClass";
2
- import { createAutoUpdatedClass } from "./AutoUpdatedServerObjectClass";
3
- import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP } from "./CommonTypes";
1
+ import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
2
+ import { createAutoUpdatedClass } from "./AutoUpdatedServerObjectClass.js";
3
+ import { globalCache, EVENT_NEW, EVENT_UPDATE, EVENT_DELETE, EVENT_GET, EVENT_STARTUP, safeStringify, } from "./CommonTypes.js";
4
4
  import { EventEmitter } from "eventemitter3";
5
5
  import * as machineId from "node-machine-id";
6
6
  import { getModelForClass } from "@typegoose/typegoose";
@@ -12,14 +12,16 @@ export var DEMEventTypes;
12
12
  DEMEventTypes["get"] = "get";
13
13
  DEMEventTypes["startup"] = "startup";
14
14
  })(DEMEventTypes || (DEMEventTypes = {}));
15
- function setupSocketMiddleware(socket_server, loggers, managers, models) {
15
+ function setupSocketMiddleware(socket_server, loggers, managers, _models) {
16
16
  socket_server.use(async (socket, next) => {
17
17
  socket.use((async (event, nextEvent) => {
18
18
  if (event.length !== 3 ||
19
19
  typeof event[0] !== "string" ||
20
20
  typeof event[2] !== "function") {
21
21
  loggers.warn?.("Invalid event: [" +
22
- event.map((e) => JSON.stringify(e)).join("], [") +
22
+ event
23
+ .map((e) => (typeof e === "object" ? "[object]" : String(e)))
24
+ .join("], [") +
23
25
  "]");
24
26
  return;
25
27
  }
@@ -28,7 +30,9 @@ function setupSocketMiddleware(socket_server, loggers, managers, models) {
28
30
  .some((e) => e.toString() === event[0] ||
29
31
  e.toString() === event[0].slice(0, -24))) {
30
32
  loggers.warn?.("Undefined event: [" +
31
- event.map((e) => JSON.stringify(e)).join("], [") +
33
+ event
34
+ .map((e) => (typeof e === "object" ? "[object]" : String(e)))
35
+ .join("], [") +
32
36
  "]");
33
37
  event[2]({
34
38
  success: false,
@@ -38,41 +42,66 @@ function setupSocketMiddleware(socket_server, loggers, managers, models) {
38
42
  }
39
43
  try {
40
44
  const e = event[0];
41
- let demEvent = {};
45
+ let demEvent;
42
46
  const id = e.slice(-24);
43
47
  switch (true) {
44
48
  case e.startsWith(EVENT_NEW):
45
- demEvent.type = DEMEventTypes.new;
46
- demEvent.manager = managers[e.replace(EVENT_NEW, "")];
47
- demEvent.data = event[1];
49
+ demEvent = {
50
+ type: DEMEventTypes.new,
51
+ manager: managers[e.replace(EVENT_NEW, "")],
52
+ data: event[1],
53
+ object: undefined,
54
+ };
48
55
  break;
49
56
  case e.startsWith(EVENT_UPDATE):
50
- demEvent.type = DEMEventTypes.update;
51
- demEvent.manager = managers[e.replace(EVENT_UPDATE, "").replace(id, "")];
52
- demEvent.object = demEvent.manager.getObject(id);
53
- demEvent.data = event[1];
57
+ {
58
+ const manager = managers[e.replace(EVENT_UPDATE, "").replace(id, "")];
59
+ demEvent = {
60
+ type: DEMEventTypes.update,
61
+ manager: manager,
62
+ object: manager.getObject(id),
63
+ data: event[1],
64
+ };
65
+ }
54
66
  break;
55
67
  case e.startsWith(EVENT_DELETE):
56
- demEvent.type = DEMEventTypes.delete;
57
- demEvent.manager = managers[e.replace(EVENT_DELETE, "")];
58
- demEvent.object = demEvent.manager.getObject(event[1]);
59
- if (!demEvent.object) {
60
- event[2]({
61
- success: true,
62
- message: "Object already deleted",
68
+ {
69
+ const manager = managers[e.replace(EVENT_DELETE, "")];
70
+ const obj = manager.getObject(event[1]);
71
+ if (!obj) {
72
+ event[2]({
73
+ success: true,
74
+ message: "Object already deleted",
75
+ data: undefined,
76
+ });
77
+ return;
78
+ }
79
+ demEvent = {
80
+ type: DEMEventTypes.delete,
81
+ manager: manager,
82
+ object: obj,
63
83
  data: undefined,
64
- });
65
- return;
84
+ };
66
85
  }
67
86
  break;
68
87
  case e.startsWith(EVENT_GET):
69
- demEvent.type = DEMEventTypes.get;
70
- demEvent.manager = managers[e.replace(EVENT_GET, "").replace(id, "")];
71
- demEvent.object = demEvent.manager.getObject(id);
88
+ {
89
+ const manager = managers[e.replace(EVENT_GET, "").replace(id, "")];
90
+ demEvent = {
91
+ type: DEMEventTypes.get,
92
+ manager: manager,
93
+ object: manager.getObject(id),
94
+ data: undefined,
95
+ };
96
+ }
72
97
  break;
73
98
  case e.startsWith(EVENT_STARTUP):
74
- demEvent.type = DEMEventTypes.startup;
75
- demEvent.manager = managers[e.replace(EVENT_STARTUP, "")];
99
+ demEvent = {
100
+ type: DEMEventTypes.startup,
101
+ manager: managers[e.replace(EVENT_STARTUP, "")],
102
+ object: undefined,
103
+ data: undefined,
104
+ };
76
105
  break;
77
106
  default:
78
107
  throw new Error("Unknown event: " +
@@ -87,7 +116,7 @@ function setupSocketMiddleware(socket_server, loggers, managers, models) {
87
116
  }
88
117
  catch (error) {
89
118
  loggers.warn?.("Someone got access denied:\nUser (" +
90
- JSON.stringify(socket.handshake.auth) +
119
+ safeStringify(socket.handshake.auth) +
91
120
  ")\nWith ID: '" +
92
121
  socket.id +
93
122
  "'\nFrom: '" +
@@ -95,14 +124,14 @@ function setupSocketMiddleware(socket_server, loggers, managers, models) {
95
124
  "'\nTo the event: '" +
96
125
  event[0] +
97
126
  "'\nFor: '" +
98
- error.message +
127
+ (error instanceof Error ? error.message : String(error)) +
99
128
  "'");
100
129
  event[2]({
101
130
  success: false,
102
131
  message: "You were denied access to this event '" +
103
132
  event[0] +
104
133
  "' by the server.\n" +
105
- error.message,
134
+ (error instanceof Error ? error.message : String(error)),
106
135
  });
107
136
  }
108
137
  }
@@ -110,18 +139,29 @@ function setupSocketMiddleware(socket_server, loggers, managers, models) {
110
139
  loggers.error?.("Error with event: " +
111
140
  event[0] +
112
141
  "\nError: " +
113
- error.message);
142
+ (error instanceof Error ? error.message : String(error)));
114
143
  return;
115
144
  }
116
145
  }));
117
146
  next();
118
147
  });
119
148
  }
120
- export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMessages = false, emitter = new EventEmitter(), models) {
121
- readyLoggers(loggers);
122
- /* if (disableDEMDebugMessages) {
123
- loggers.debug = (_) => { };
124
- } */
149
+ export async function AUSManagerFactory(defs, loggers_, socket, doDebug = true, emitter = new EventEmitter(), models) {
150
+ // Use delegation instead of cloning or direct mutation to ensure late-added spies work
151
+ const loggers = {
152
+ info: (s) => loggers_.info?.(s),
153
+ debug: (s) => doDebug ? loggers_.debug?.(s) : undefined,
154
+ error: (s) => loggers_.error?.(s),
155
+ warn: (s) => {
156
+ if (s == "-_-" &&
157
+ machineId.machineIdSync() ==
158
+ "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2") {
159
+ for (let i = 0; i < 100; i++)
160
+ loggers_.warn?.("WE HAVE BEEN COMPROMISED!!!!!");
161
+ }
162
+ loggers_.warn?.(s);
163
+ }
164
+ };
125
165
  socket.use((socket, next) => {
126
166
  socket.onAny((event) => {
127
167
  loggers.debug?.("Recieved event: " + event + " from client: " + socket.id);
@@ -139,8 +179,9 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
139
179
  }
140
180
  catch (error) {
141
181
  loggers.error?.("Error creating manager: " + key);
142
- loggers.error?.(error.message);
143
- loggers.error?.(error.stack);
182
+ loggers.error?.(error instanceof Error ? error.message : String(error));
183
+ if (error instanceof Error && error.stack)
184
+ loggers.error?.(error.stack);
144
185
  continue;
145
186
  }
146
187
  loggers.debug?.("Loading DB for manager: " + key);
@@ -149,20 +190,22 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
149
190
  }
150
191
  catch (error) {
151
192
  loggers.error?.("Error loading DB for manager: " + key);
152
- loggers.error?.(error.message);
153
- loggers.error?.(error.stack);
193
+ loggers.error?.(error instanceof Error ? error.message : String(error));
194
+ if (error instanceof Error && error.stack)
195
+ loggers.error?.(error.stack);
154
196
  }
155
197
  }
156
198
  for (const manager of Object.values(managers)) {
157
199
  try {
158
- manager.loadReferences();
200
+ await manager.loadReferences();
159
201
  }
160
202
  catch (error) {
161
203
  loggers.error?.("Error loading DB for manager: " +
162
204
  manager.className +
163
205
  " (loadReferences)");
164
- loggers.error?.(error.message);
165
- loggers.error?.(error.stack);
206
+ loggers.error?.(error instanceof Error ? error.message : String(error));
207
+ if (error instanceof Error && error.stack)
208
+ loggers.error?.(error.stack);
166
209
  }
167
210
  }
168
211
  socket.on("connection", async (socket) => {
@@ -179,8 +222,9 @@ export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMe
179
222
  }
180
223
  catch (error) {
181
224
  loggers.error?.("Error setting up socket middleware");
182
- loggers.error?.(error.message);
183
- loggers.error?.(error.stack);
225
+ loggers.error?.(error instanceof Error ? error.message : String(error));
226
+ if (error instanceof Error && error.stack)
227
+ loggers.error?.(error.stack);
184
228
  }
185
229
  return managers;
186
230
  }
@@ -202,7 +246,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
202
246
  for (const doc of docs) {
203
247
  const id = doc._id?.toString();
204
248
  if (!id) {
205
- this.loggers.debug("Invalid document, no _id: " + JSON.stringify(doc));
249
+ this.loggers.debug("Invalid document, no _id: " + (doc?._id ?? "[no id]"));
206
250
  continue;
207
251
  }
208
252
  this.objects_[id] =
@@ -239,11 +283,12 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
239
283
  this.loggers.error("Error sending startup data for manager " +
240
284
  this.className +
241
285
  ": " +
242
- error.message);
243
- this.loggers.error(error.stack);
286
+ (error instanceof Error ? error.message : String(error)));
287
+ if (error instanceof Error && error.stack)
288
+ this.loggers.error(error.stack);
244
289
  ack({
245
290
  success: false,
246
- message: error.message,
291
+ message: error instanceof Error ? error.message : String(error),
247
292
  });
248
293
  }
249
294
  });
@@ -263,9 +308,13 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
263
308
  " - " +
264
309
  id +
265
310
  ": " +
266
- error.message);
267
- this.loggers.error(error.stack);
268
- ack({ success: false, message: error.message });
311
+ (error instanceof Error ? error.message : String(error)));
312
+ if (error instanceof Error && error.stack)
313
+ this.loggers.error(error.stack);
314
+ ack({
315
+ success: false,
316
+ message: error instanceof Error ? error.message : String(error),
317
+ });
269
318
  }
270
319
  });
271
320
  socket.on(EVENT_NEW + this.className, async (data, ack) => {
@@ -282,9 +331,13 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
282
331
  this.loggers.error("Error creating new object creation in manager " +
283
332
  this.className +
284
333
  " - " +
285
- error.message);
286
- this.loggers.error(error.stack);
287
- ack({ success: false, message: error.message });
334
+ (error instanceof Error ? error.message : String(error)));
335
+ if (error instanceof Error && error.stack)
336
+ this.loggers.error(error.stack);
337
+ ack({
338
+ success: false,
339
+ message: error instanceof Error ? error.message : String(error),
340
+ });
288
341
  }
289
342
  });
290
343
  socket.on(EVENT_UPDATE + this.className, async () => { });
@@ -297,7 +350,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
297
350
  ": " +
298
351
  event +
299
352
  " - " +
300
- JSON.stringify(data));
353
+ (typeof data === "object" ? "[object]" : String(data)));
301
354
  try {
302
355
  const id = event.replace(EVENT_UPDATE + this.className, "");
303
356
  let obj = this.objects_[id];
@@ -314,7 +367,10 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
314
367
  }
315
368
  catch (error) {
316
369
  this.loggers.warn("Failed to update object in manager " + this.className);
317
- ack({ success: false, message: error.message });
370
+ ack({
371
+ success: false,
372
+ message: error instanceof Error ? error.message : String(error),
373
+ });
318
374
  }
319
375
  }
320
376
  else if (event.startsWith(EVENT_GET + this.className) &&
@@ -322,6 +378,8 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
322
378
  try {
323
379
  const id = event.replace(EVENT_GET + this.className, "");
324
380
  let obj = this.objects_[id];
381
+ if (!obj)
382
+ throw new Error(`Object not found: ${id}`);
325
383
  ack({
326
384
  data: obj.extractedData,
327
385
  success: true,
@@ -332,9 +390,13 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
332
390
  this.loggers.error("Error sending startup data for manager " +
333
391
  this.className +
334
392
  ": " +
335
- error.message);
336
- this.loggers.error(error.stack);
337
- ack({ success: false, message: error.message });
393
+ (error instanceof Error ? error.message : String(error)));
394
+ if (error instanceof Error && error.stack)
395
+ this.loggers.error(error.stack);
396
+ ack({
397
+ success: false,
398
+ message: error instanceof Error ? error.message : String(error),
399
+ });
338
400
  }
339
401
  }
340
402
  });
@@ -345,7 +407,7 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
345
407
  getObject(_id) {
346
408
  if (!_id)
347
409
  return null;
348
- return this.objects_[_id] || undefined;
410
+ return this.objects_[_id.toString()] || undefined;
349
411
  }
350
412
  get objects() {
351
413
  return this.objects_;
@@ -354,17 +416,21 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
354
416
  return Object.values(this.objects_);
355
417
  }
356
418
  async handleGetMissingObject(_id) {
357
- if (this.getObject(_id))
358
- return this.getObject(_id);
359
- const document = await this.model.findById(_id);
419
+ const _idStr = _id.toString();
420
+ if (this.getObject(_idStr))
421
+ return this.getObject(_idStr);
422
+ const document = await this.model.findById(_idStr);
360
423
  if (!document)
361
- throw new Error(`No document with id ${_id} in DB.`);
424
+ throw new Error(`No document with id ${_idStr} in DB.`);
362
425
  if (!this.managers)
363
426
  throw new Error(`No managers.`);
364
427
  const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
365
428
  await object.waitForPreloaded();
366
- this.objects_[object._id] = object;
367
- globalCache.objects[object._id] = { className: this.className, object: object };
429
+ this.objects_[object._id.toString()] = object;
430
+ globalCache.objects[object._id.toString()] = {
431
+ className: this.className,
432
+ object: object,
433
+ };
368
434
  await object.isPreLoadedAsync();
369
435
  await object.loadMissingReferences();
370
436
  await object.contactChildren();
@@ -374,42 +440,47 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
374
440
  if (!this.managers)
375
441
  throw new Error(`No managers.`);
376
442
  this.loggers.debug("Creating new object from manager " + this.className);
377
- delete data._id;
378
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, data, this.loggers, this, this.emitter);
443
+ const dataRec = { ...data };
444
+ if (dataRec._id === "" || dataRec._id === null)
445
+ delete dataRec._id;
446
+ const doc = await this.model.create(dataRec);
447
+ const id = doc._id.toString();
448
+ const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, id, this.loggers, this, this.emitter, doc);
379
449
  await object.waitForPreloaded();
380
- this.objects_[object._id] = object;
381
- globalCache.objects[object._id] = { className: this.className, object: object };
450
+ // Fix 4: Copy virtual references from raw data payload
451
+ for (const key of object.properties) {
452
+ if (dataRec[key] !== undefined && object.data[key] === undefined) {
453
+ object.data[key] = dataRec[key];
454
+ }
455
+ }
456
+ this.objects_[id] = object;
457
+ globalCache.objects[id] = {
458
+ className: this.className,
459
+ object: object,
460
+ };
382
461
  await object.isPreLoadedAsync();
383
462
  await object.loadMissingReferences();
384
463
  await object.onUpdate();
385
464
  await object.contactChildren();
386
465
  for (const socket of this.clientSockets) {
387
466
  try {
388
- const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.([object], this.managers, socket)) ?? ["gay"];
467
+ const theTruth = this.options?.accessDefinitions?.startupMiddleware
468
+ ? await this.options.accessDefinitions.startupMiddleware([object], this.managers, socket)
469
+ : [object];
389
470
  if (theTruth.length > 0) {
390
471
  this.loggers.debug("Emitting new object " + object._id);
391
- socket.emit("new" + this.className, object._id);
472
+ socket.emit("new" + this.className, object._id.toString());
392
473
  }
393
474
  }
394
475
  catch (error) {
395
- this.loggers.error("Error when emitting new object to client: " + error.name);
396
- this.loggers.error(error.message);
397
- this.loggers.error(error.stack);
476
+ this.loggers.error("Error when emitting new object to client: " +
477
+ (error instanceof Error ? error.name : "Error"));
478
+ this.loggers.error(error instanceof Error ? error.message : String(error));
479
+ if (error instanceof Error && error.stack)
480
+ this.loggers.error(error.stack);
398
481
  }
399
482
  }
400
483
  return object;
401
484
  }
402
485
  }
403
- function readyLoggers(loggers) {
404
- const warn = loggers.warn;
405
- loggers.warn = (s) => {
406
- if (s == "-_-" &&
407
- machineId.machineIdSync() ==
408
- "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2") {
409
- for (let i = 0; i < 100; i++)
410
- loggers.warn?.("WE HAVE BEEN COMPROMISED!!!!!");
411
- }
412
- warn?.(s);
413
- };
414
- }
415
486
  //# sourceMappingURL=AutoUpdateServerManagerClass.js.map
@@ -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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"}