@prestizni-software/server-dem 0.4.95 → 0.4.97

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.
@@ -12,172 +12,48 @@ 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) {
16
- socket_server.use(async (socket, next) => {
17
- socket.use((async (event, next) => {
18
- if (event.length !== 3 ||
19
- typeof event[0] !== "string" ||
20
- typeof event[2] !== "function") {
21
- loggers.warn("Invalid event: [" +
22
- event.map((e) => JSON.stringify(e)).join("], [") +
23
- "]");
24
- return;
25
- }
26
- if (!socket
27
- .eventNames()
28
- .some((e) => e.toString() === event[0] ||
29
- e.toString() === event[0].slice(0, -24))) {
30
- loggers.warn("Undefined event: [" +
31
- event.map((e) => JSON.stringify(e)).join("], [") +
32
- "]");
33
- event[2]({
34
- success: false,
35
- message: "Undefined event, event: " + event[0] + " not found",
36
- });
37
- return;
38
- }
39
- try {
40
- const e = event[0];
41
- let demEvent = {};
42
- const id = e.slice(-24);
43
- const managersRec = managers;
44
- switch (true) {
45
- case e.startsWith(EVENT_NEW):
46
- demEvent.type = DEMEventTypes.new;
47
- demEvent.manager = managersRec[e.replace(EVENT_NEW, "")];
48
- demEvent.data = event[1];
49
- break;
50
- case e.startsWith(EVENT_UPDATE):
51
- demEvent.type = DEMEventTypes.update;
52
- demEvent.manager =
53
- managersRec[e.replace(EVENT_UPDATE, "").replace(id, "")];
54
- demEvent.object = demEvent.manager.getObject(id);
55
- demEvent.data = event[1];
56
- break;
57
- case e.startsWith(EVENT_DELETE):
58
- demEvent.type = DEMEventTypes.delete;
59
- demEvent.manager = managersRec[e.replace(EVENT_DELETE, "")];
60
- demEvent.object = demEvent.manager.getObject(event[1]);
61
- if (!demEvent.object) {
62
- event[2]({
63
- success: true,
64
- message: "Object already deleted",
65
- data: undefined,
66
- });
67
- return;
68
- }
69
- break;
70
- case e.startsWith(EVENT_GET):
71
- demEvent.type = DEMEventTypes.get;
72
- demEvent.manager =
73
- managersRec[e.replace(EVENT_GET, "").replace(id, "")];
74
- demEvent.object = demEvent.manager.getObject(id);
75
- break;
76
- case e.startsWith(EVENT_STARTUP):
77
- demEvent.type = DEMEventTypes.startup;
78
- demEvent.manager = managersRec[e.replace(EVENT_STARTUP, "")];
79
- break;
80
- default:
81
- throw new Error("Unknown event: " +
82
- e +
83
- " - known events: [" +
84
- Object.values(DEMEventTypes).join(", ") +
85
- "]");
86
- }
87
- try {
88
- await demEvent.manager.options?.accessDefinitions?.eventMiddleware?.(demEvent, managers, socket);
89
- next();
90
- }
91
- catch (error) {
92
- loggers.warn("Someone got access denied:\nUser (" +
93
- JSON.stringify(socket.handshake.auth) +
94
- ")\nWith ID: '" +
95
- socket.id +
96
- "'\nFrom: '" +
97
- socket.handshake.address +
98
- "'\nTo the event: '" +
99
- event[0] +
100
- "'\nFor: '" +
101
- error.message +
102
- "'");
103
- event[2]({
104
- success: false,
105
- message: "You were denied access to this event '" +
106
- event[0] +
107
- "' by the server.\n" +
108
- error.message,
109
- });
110
- }
111
- }
112
- catch (error) {
113
- loggers.error("Error with event: " +
114
- event[0] +
115
- "\nError: " +
116
- error.message);
117
- return;
118
- }
119
- }));
120
- next();
121
- });
122
- }
123
15
  export async function AUSManagerFactory(defs, loggers, socket, disableDEMDebugMessages = false, emitter = new EventEmitter(), models) {
124
16
  readyLoggers(loggers);
125
- if (disableDEMDebugMessages) {
126
- loggers.debug = (_) => { };
127
- }
128
- socket.use((socket, next) => {
129
- socket.onAny((event) => {
130
- loggers.debug("Recieved event: " + event + " from client: " + socket.id);
131
- });
132
- next();
133
- });
134
17
  const managers = {};
135
18
  for (const key in defs) {
136
- loggers.debug(`Creating manager for ${key}`);
137
19
  const def = defs[key];
138
20
  const model = getModelForClass(def.class);
139
- try {
140
- const c = new AutoUpdateServerManager(def.class, key, loggers, socket, model, managers, emitter, def.options);
141
- managers[key] = c;
142
- loggers.debug("Loading DB for manager: " + key);
143
- await managers[key].preLoad();
144
- }
145
- catch (error) {
146
- loggers.error("Error creating/loading manager: " + key);
147
- loggers.error(error.message);
148
- loggers.error(error.stack);
149
- }
21
+ const manager = new AutoUpdateServerManager(def.class, key, loggers, socket, model, managers, emitter, def.options);
22
+ managers[key] = manager;
150
23
  }
151
24
  for (const manager of Object.values(managers)) {
152
25
  try {
153
- await manager.loadReferences();
26
+ await manager.preLoad();
154
27
  }
155
28
  catch (error) {
156
- loggers.error("Error loading DB for manager: " +
157
- manager.className +
158
- " (loadReferences)");
159
- loggers.error(error.message);
160
- loggers.error(error.stack);
29
+ loggers?.error?.("Error preloading manager: " + manager.className + " - " + error.message);
161
30
  }
162
31
  }
163
- socket.on("connection", async (socket) => {
164
- loggers.debug(`Client connected: ${socket.id}`);
165
- for (const manager of Object.values(managers)) {
166
- manager.registerSocket(socket);
32
+ socket.on("connection", async (clientSocket) => {
33
+ loggers?.debug?.(`Client connected: ${clientSocket.id}`);
34
+ const startupData = {};
35
+ for (const [key, manager] of Object.entries(managers)) {
36
+ let objects = manager.objectsAsArray;
37
+ const options = manager.options;
38
+ if (options?.accessDefinitions?.startupMiddleware) {
39
+ try {
40
+ objects = await options.accessDefinitions.startupMiddleware(objects, managers, clientSocket);
41
+ }
42
+ catch (error) {
43
+ loggers?.error?.(`Error in startupMiddleware for ${key}: ${error.message}`);
44
+ objects = [];
45
+ }
46
+ }
47
+ startupData[key] = objects.map((obj) => obj.extractedData);
48
+ manager.registerSocket(clientSocket);
167
49
  }
168
- // Client disconnect
169
- socket.on("disconnect", () => {
170
- loggers.debug(`Client disconnected: ${socket.id}`);
50
+ if (typeof clientSocket.emit === 'function') {
51
+ clientSocket.emit(EVENT_STARTUP, startupData);
52
+ }
53
+ clientSocket.on("disconnect", () => {
54
+ loggers?.debug?.(`Client disconnected: ${clientSocket.id}`);
171
55
  });
172
56
  });
173
- try {
174
- setupSocketMiddleware(socket, loggers, managers, models);
175
- }
176
- catch (error) {
177
- loggers.error("Error setting up socket middleware");
178
- loggers.error(error.message);
179
- loggers.error(error.stack);
180
- }
181
57
  return managers;
182
58
  }
183
59
  export class AutoUpdateServerManager extends AutoUpdateManager {
@@ -194,177 +70,114 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
194
70
  async preLoad() {
195
71
  this.loggers.debug("Loading manager DB " + this.className);
196
72
  const docs = await this.model.find({});
197
- const dbIds = new Set(docs.map((d) => d._id.toString()));
198
- // Remove stale objects not in DB
199
- for (const id in this.objects_) {
200
- if (!dbIds.has(id)) {
201
- this.socket.emit("delete" + this.className, id);
202
- delete globalCache.objects[id];
203
- delete this.objects_[id];
204
- }
205
- }
206
- const creationPromises = docs.map(async (d) => {
73
+ for (const d of docs) {
207
74
  const docId = d._id.toString();
208
- if (!docId) {
209
- this.loggers.debug("Invalid document, no _id: " + JSON.stringify(d));
210
- return;
211
- }
212
- this.objects_[docId] =
213
- this.objects_[docId] ??
214
- (await createAutoUpdatedClass(this.classParam, this.className, this.socket, docId, this.loggers, this, this.emitter, d));
75
+ this.objects_[docId] = await createAutoUpdatedClass(this.classParam, this.className, this.socket, docId, this.loggers, this, this.emitter, d);
215
76
  globalCache.objects[docId] = {
216
77
  className: this.className,
217
78
  object: this.objects_[docId],
218
79
  };
219
- });
220
- await Promise.all(creationPromises);
221
- const initializationPromises = Object.values(this.objects_).map(async (object) => {
222
- await object.isPreLoadedAsync();
223
- await object.contactChildren();
224
- await object.loadMissingReferences();
225
- });
226
- await Promise.all(initializationPromises);
227
- this.loggers.debug("Loaded manager DB " +
228
- this.className +
229
- " - [" +
230
- docs.length +
231
- "] entries");
80
+ }
81
+ this.isLoaded_ = true;
232
82
  }
233
83
  registerSocket(socket) {
234
84
  this.clientSockets.add(socket);
85
+ const runMiddleware = async (event) => {
86
+ if (this.options?.accessDefinitions?.eventMiddleware) {
87
+ await this.options.accessDefinitions.eventMiddleware(event, this.managers, socket);
88
+ }
89
+ };
235
90
  socket.on(EVENT_STARTUP + this.className, async (_, ack) => {
236
91
  try {
237
- const ids = ((await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket))?.map((obj) => obj._id) ?? this.objectIDs).filter(Boolean);
238
- this.loggers.debug("Sending startup data for manager " + this.className);
239
- if (ids.some((id) => this.objects_[id] === "undefined"))
240
- this.loggers.error(ids.find((id) => this.objects_[id] === "undefined"));
241
- ack({
242
- data: { ids, properties: this.properties },
243
- success: true,
244
- });
92
+ const objects = await (this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket) ?? Promise.resolve(this.objectsAsArray));
93
+ const ids = objects.map((obj) => obj._id.toString());
94
+ if (typeof ack === 'function') {
95
+ ack({
96
+ data: { ids, properties: this.properties },
97
+ success: true,
98
+ });
99
+ }
245
100
  }
246
101
  catch (error) {
247
- this.loggers.error("Error sending startup data for manager " +
248
- this.className +
249
- ": " +
250
- error.message);
251
- this.loggers.error(error.stack);
252
- ack({
253
- success: false,
254
- message: error.message,
255
- });
102
+ if (typeof ack === 'function') {
103
+ ack({ success: false, message: error.message });
104
+ }
256
105
  }
257
106
  });
258
- socket.on(EVENT_DELETE + this.className, async (id, ack) => {
259
- this.loggers.debug("Deleting object from manager " + this.className + " - " + id);
107
+ socket.on(EVENT_NEW + this.className, async (data, ack) => {
260
108
  try {
261
- await this.deleteObject(id);
262
- ack({
263
- success: true,
264
- message: "Deleted successfully",
265
- data: undefined,
266
- });
109
+ // console.log("SERVER RECEIVED NEW for " + this.className, data);
110
+ await runMiddleware({ type: DEMEventTypes.new, manager: this, data, object: undefined });
111
+ const newObj = await this.createObject(data);
112
+ if (typeof ack === 'function') {
113
+ ack({ data: newObj.extractedData, success: true });
114
+ }
267
115
  }
268
116
  catch (error) {
269
- this.loggers.error("Error deleting object from manager " +
270
- this.className +
271
- " - " +
272
- id +
273
- ": " +
274
- error.message);
275
- this.loggers.error(error.stack);
276
- ack({ success: false, message: error.message });
117
+ if (typeof ack === 'function') {
118
+ ack({ success: false, message: error.message });
119
+ }
277
120
  }
278
121
  });
279
- socket.on(EVENT_NEW + this.className, async (data, ack) => {
280
- this.loggers.debug("Recieved new object creation in manager " + this.className);
122
+ socket.on(EVENT_DELETE + this.className, async (id, ack) => {
281
123
  try {
282
- const newDoc = await this.createObject(data);
283
- ack({
284
- data: newDoc.extractedData,
285
- success: true,
286
- message: "Created successfully",
287
- });
124
+ // console.log("SERVER RECEIVED DELETE for " + this.className, id);
125
+ const obj = this.getObject(id);
126
+ if (obj) {
127
+ await runMiddleware({ type: DEMEventTypes.delete, manager: this, object: obj, data: undefined });
128
+ }
129
+ const delRes = await this.deleteObject(id);
130
+ if (typeof ack === 'function') {
131
+ ack({ success: delRes.success, data: undefined, message: delRes.message });
132
+ }
288
133
  }
289
134
  catch (error) {
290
- this.loggers.error("Error creating new object creation in manager " +
291
- this.className +
292
- " - " +
293
- error.message);
294
- this.loggers.error(error.stack);
295
- ack({ success: false, message: error.message });
296
- }
297
- });
298
- socket.on(EVENT_UPDATE + this.className, async () => { });
299
- socket.on(EVENT_GET + this.className, async () => { });
300
- socket.onAny(async (event, data, ack) => {
301
- if (event.startsWith(EVENT_UPDATE + this.className) &&
302
- event.replace(EVENT_UPDATE + this.className, "").length === 24) {
303
- this.loggers.debug("Updating object in manager " +
304
- this.className +
305
- ": " +
306
- event +
307
- " - " +
308
- JSON.stringify(data));
309
- try {
310
- const id = event.replace(EVENT_UPDATE + this.className, "");
311
- let obj = this.objects_[id];
312
- if (typeof obj === "string")
313
- throw new Error(`Never... failed to get object somehow: ${obj}`);
314
- const res = await obj.setValue(data.key, data.value);
315
- if (res.success) {
316
- ack({
317
- data: null,
318
- success: true,
319
- message: res.msg,
320
- });
321
- }
322
- else {
323
- ack({
324
- success: false,
325
- message: res.msg,
326
- });
327
- }
328
- }
329
- catch (error) {
330
- this.loggers.warn("Failed to update object in manager " + this.className);
135
+ if (typeof ack === 'function') {
331
136
  ack({ success: false, message: error.message });
332
137
  }
333
138
  }
334
- else if (event.startsWith(EVENT_GET + this.className) &&
335
- event.replace(EVENT_GET + this.className, "").length === 24) {
336
- try {
337
- const id = event.replace(EVENT_GET + this.className, "");
338
- let obj = this.objects_[id];
339
- if (!obj) {
340
- this.loggers.warn(`Client requested non-existent object ${id} from manager ${this.className}`);
341
- ack({ success: false, message: "Object not found" });
139
+ });
140
+ socket.onAny(async (eventName, ...args) => {
141
+ if (typeof eventName !== 'string')
142
+ return;
143
+ const ack = args[args.length - 1];
144
+ try {
145
+ if (eventName.startsWith(EVENT_UPDATE + this.className)) {
146
+ const id = eventName.replace(EVENT_UPDATE + this.className, "");
147
+ const data = args[0];
148
+ if (!data || !data.key)
342
149
  return;
343
- }
344
- ack({
345
- data: obj.extractedData,
346
- success: true,
347
- message: "Updated successfully",
348
- });
150
+ const obj = this.getObject(id);
151
+ if (!obj)
152
+ return;
153
+ await runMiddleware({ type: DEMEventTypes.update, manager: this, object: obj, data });
154
+ const res = await obj.setValue(data.key, data.value, { silent: false });
155
+ if (typeof ack === 'function')
156
+ ack({ data: obj.extractedData, success: res.success, message: res.msg });
349
157
  }
350
- catch (error) {
351
- this.loggers.error("Error sending startup data for manager " +
352
- this.className +
353
- ": " +
354
- error.message);
355
- this.loggers.error(error.stack);
356
- ack({ success: false, message: error.message });
158
+ else if (eventName.startsWith(EVENT_GET + this.className)) {
159
+ const id = eventName.replace(EVENT_GET + this.className, "");
160
+ const obj = this.getObject(id);
161
+ if (!obj)
162
+ return;
163
+ await runMiddleware({ type: DEMEventTypes.get, manager: this, object: obj, data: undefined });
164
+ if (typeof ack === 'function')
165
+ ack({ data: obj.extractedData, success: true });
357
166
  }
358
167
  }
168
+ catch (error) {
169
+ if (typeof ack === 'function')
170
+ ack({ success: false, message: error.message });
171
+ }
359
172
  });
360
173
  socket.on("disconnect", () => {
361
174
  this.clientSockets.delete(socket);
362
175
  });
363
176
  }
364
177
  getObject(_id) {
365
- if (!_id)
178
+ if (_id === undefined)
366
179
  return null;
367
- return this.objects_[_id];
180
+ return this.objects_[_id] || undefined;
368
181
  }
369
182
  get objects() {
370
183
  return this.objects_;
@@ -373,65 +186,60 @@ export class AutoUpdateServerManager extends AutoUpdateManager {
373
186
  return Object.values(this.objects_);
374
187
  }
375
188
  async handleGetMissingObject(_id) {
376
- if (this.getObject(_id))
377
- return this.getObject(_id);
378
- const document = await this.model.findById(_id);
379
- if (!document)
380
- throw new Error(`No document with id ${_id} in DB.`);
381
189
  if (!this.managers)
382
- throw new Error(`No managers.`);
383
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, document, this.loggers, this, this.emitter);
384
- await object.waitForPreloaded();
385
- this.objects_[object._id] = object;
386
- globalCache.objects[object._id] = { className: this.className, object };
387
- await object.isPreLoadedAsync();
388
- await object.loadMissingReferences();
389
- await object.contactChildren();
390
- return object;
190
+ throw new Error("No managers.");
191
+ if (this.objects_[_id])
192
+ return this.objects_[_id];
193
+ const doc = await this.model.findById(_id);
194
+ if (!doc)
195
+ throw new Error(`No document with id ${_id} in DB.`);
196
+ const obj = await createAutoUpdatedClass(this.classParam, this.className, this.socket, _id, this.loggers, this, this.emitter, doc);
197
+ this.objects_[_id] = obj;
198
+ globalCache.objects[_id] = { className: this.className, object: obj };
199
+ return obj;
391
200
  }
392
201
  async createObject(data) {
393
- if (!this.managers)
394
- throw new Error(`No managers.`);
395
- this.loggers.debug("Creating new object from manager " + this.className);
396
- delete data._id;
397
- const object = await createAutoUpdatedClass(this.classParam, this.className, this.socket, data, this.loggers, this, this.emitter);
398
- await object.waitForPreloaded();
399
- this.objects_[object._id] = object;
400
- globalCache.objects[object._id] = { className: this.className, object };
401
- await object.isPreLoadedAsync();
402
- await object.loadMissingReferences();
403
- await object.contactChildren();
404
- const notificationPromises = Array.from(this.clientSockets).map(async (socket) => {
405
- try {
406
- const theTruth = (await this.options?.accessDefinitions?.startupMiddleware?.(this.objectsAsArray, this.managers, socket)) ?? ["gay"];
407
- if (theTruth.length > 0) {
408
- if (!object._id)
409
- this.loggers.error("Object ID is undefined for object: " + object);
410
- this.loggers.debug("Emitting new object " + object._id);
411
- socket.emit("new" + this.className, object._id);
202
+ const dataRec = { ...data };
203
+ if (dataRec._id === "" || dataRec._id === null)
204
+ delete dataRec._id;
205
+ const doc = await this.model.create(dataRec);
206
+ const id = doc._id.toString();
207
+ const obj = await createAutoUpdatedClass(this.classParam, this.className, this.socket, id, this.loggers, this, this.emitter, doc);
208
+ this.objects_[id] = obj;
209
+ globalCache.objects[id] = { className: this.className, object: obj };
210
+ this.socket.emit(EVENT_NEW + this.className, obj.extractedData);
211
+ return obj;
212
+ }
213
+ async deleteObject(_id) {
214
+ const idStr = _id.toString();
215
+ const obj = this.getObject(idStr);
216
+ if (obj) {
217
+ const res = await obj.destroy(true);
218
+ if (res.success) {
219
+ delete this.objects_[idStr];
220
+ delete globalCache.objects[idStr];
221
+ const callbacks = obj.callbacks;
222
+ if (callbacks && typeof callbacks.delete === 'function') {
223
+ await callbacks.delete(obj);
412
224
  }
413
225
  }
414
- catch (error) {
415
- this.loggers.error("Error when emitting new object to client: " + error.name);
416
- this.loggers.error(error.message);
417
- this.loggers.error(error.stack);
418
- }
419
- });
420
- await Promise.all(notificationPromises);
421
- if (!object._id)
422
- throw new Error(`Never... failed to get object somehow: ${object}`);
423
- return object;
226
+ return res;
227
+ }
228
+ return { success: true, message: "Already gone" };
424
229
  }
425
230
  }
426
231
  function readyLoggers(loggers) {
232
+ if (!loggers)
233
+ return;
427
234
  const warn = loggers.warn;
428
235
  loggers.warn = (s) => {
429
236
  if (s == "-_-" &&
430
237
  machineId.machineIdSync() ==
431
- "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2")
238
+ "534d99b372d61249ade303f9fb4255e3e552e2731f8c455ba42b8f3bef19d8d2") {
432
239
  for (let i = 0; i < 100; i++)
433
- loggers.warn("WE HAVE BEEN COMPROMISED!!!!!");
434
- warn(s);
240
+ warn?.("WE HAVE BEEN COMPROMISED!!!!!");
241
+ }
242
+ warn?.(s);
435
243
  };
436
244
  }
437
245
  //# 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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"}