@prestizni-software/server-dem 0.2.23 → 0.2.25

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prestizni-software/server-dem",
3
- "version": "0.2.23",
3
+ "version": "0.2.25",
4
4
  "description": "An solution for when making http requests is not a good solution",
5
5
  "keywords": [
6
6
  "websockets"
@@ -8,11 +8,11 @@
8
8
  "license": "ISC",
9
9
  "author": "xx0055",
10
10
  "type": "module",
11
- "main": "./dist/server.js",
12
- "module": "./dist/server.mjs",
13
- "types": "./dist/server.d.ts",
11
+ "main": "./server.js",
12
+ "module": "./server.mjs",
13
+ "types": "./server.d.ts",
14
14
  "files": [
15
- "dist"
15
+ "./"
16
16
  ],
17
17
  "publishConfig": {
18
18
  "access": "public",
@@ -1,28 +0,0 @@
1
- import { AutoUpdated } from "./AutoUpdatedClientObjectClass.js";
2
- import { Constructor, IsData, LoggersType, SocketType } from "./CommonTypes.js";
3
- import "reflect-metadata";
4
- export declare abstract class AutoUpdateManager<T extends Constructor<any>> {
5
- protected classes: {
6
- [_id: string]: AutoUpdated<T>;
7
- };
8
- socket: SocketType;
9
- protected classParam: T;
10
- protected properties: (keyof T)[];
11
- readonly classers: Record<string, AutoUpdateManager<any>>;
12
- protected loggers: LoggersType;
13
- protected classesAsArray: AutoUpdated<T>[];
14
- protected emitter: EventTarget;
15
- private isLoaded;
16
- constructor(classParam: T, socket: SocketType, loggers: LoggersType, classers: Record<string, AutoUpdateManager<any>>, emitter: EventTarget);
17
- getObject(_id: string): AutoUpdated<T> | null;
18
- isLoadedAsync(): Promise<boolean>;
19
- deleteObject(_id: string): Promise<void>;
20
- get objectIDs(): string[];
21
- get objects(): {
22
- [_id: string]: AutoUpdated<T> | string;
23
- };
24
- get objectsAsArray(): AutoUpdated<T>[];
25
- get className(): string;
26
- protected abstract handleGetMissingObject(_id: string): Promise<AutoUpdated<T>>;
27
- abstract createObject(data: IsData<InstanceType<T>>): Promise<AutoUpdated<T>>;
28
- }
@@ -1,56 +0,0 @@
1
- import "reflect-metadata";
2
- export class AutoUpdateManager {
3
- classes = {};
4
- socket;
5
- classParam;
6
- properties;
7
- classers;
8
- loggers = {
9
- info: () => { },
10
- debug: () => { },
11
- error: () => { },
12
- warn: () => { },
13
- };
14
- classesAsArray = [];
15
- emitter;
16
- isLoaded = false;
17
- constructor(classParam, socket, loggers, classers, emitter) {
18
- this.emitter = emitter;
19
- this.classers = classers;
20
- this.socket = socket;
21
- this.classParam = classParam;
22
- this.properties = Reflect.getMetadata("props", Object.getPrototypeOf(classParam));
23
- loggers.warn = loggers.warn ?? loggers.info;
24
- this.loggers = loggers;
25
- }
26
- getObject(_id) {
27
- return this.classes[_id];
28
- }
29
- async isLoadedAsync() {
30
- if (this.isLoaded)
31
- return this.isLoaded;
32
- await new Promise((resolve) => this.emitter.addEventListener("ManagerLoaded" + this.classParam.name + this.className, resolve));
33
- this.isLoaded = true;
34
- return this.isLoaded;
35
- }
36
- async deleteObject(_id) {
37
- if (typeof this.classes[_id] === "string")
38
- this.classes[_id] = await this.handleGetMissingObject(this.classes[_id]);
39
- (this.classes[_id]).destroy();
40
- this.classesAsArray.splice(this.classesAsArray.indexOf(this.classes[_id]), 1);
41
- delete this.classes[_id];
42
- }
43
- get objectIDs() {
44
- return Object.keys(this.classes);
45
- }
46
- get objects() {
47
- return this.classes;
48
- }
49
- get objectsAsArray() {
50
- return this.classesAsArray;
51
- }
52
- get className() {
53
- return this.classParam.name;
54
- }
55
- }
56
- //# sourceMappingURL=AutoUpdateManagerClass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoUpdateManagerClass.js","sourceRoot":"","sources":["../AutoUpdateManagerClass.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAE1B,MAAM,OAAgB,iBAAiB;IAC3B,OAAO,GAAsC,EAAE,CAAC;IACnD,MAAM,CAAa;IAChB,UAAU,CAAI;IACd,UAAU,CAAc;IAClB,QAAQ,CAAyC;IACvD,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,cAAc,GAAqB,EAAE,CAAC;IACtC,OAAO,CAAc;IACvB,QAAQ,GAAG,KAAK,CAAC;IACzB,YACE,UAAa,EACb,MAAkB,EAClB,OAAoB,EACpB,QAAgD,EAChD,OAAoB;QAEpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CACnC,OAAO,EACP,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAClC,CAAC;QACF,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAGM,SAAS,CACd,GAAW;QAEX,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,aAAa;QACxB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,GAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5H,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAW;QACnC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;CAQF"}
@@ -1,55 +0,0 @@
1
- import { Server, Socket } from "socket.io";
2
- import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
3
- import { Constructor, IsData, LoggersType, Paths, PathValueOf } from "./CommonTypes.js";
4
- import { BeAnObject, ReturnModelType } from "@typegoose/typegoose/lib/types.js";
5
- export type WrappedInstances<T extends Record<string, Constructor<any>>> = {
6
- [K in keyof T]: AutoUpdateServerManager<T[K]>;
7
- };
8
- type AccessDefinitions<C extends Constructor<any>> = {
9
- [K in Paths<C>]?: {
10
- access?: string[];
11
- update?: boolean;
12
- };
13
- };
14
- export type AutoStatusDefinitions<C extends Constructor<any>, E extends Record<string, string | number>, S extends StatusDefinition<C>> = {
15
- statusProperty: Paths<C>;
16
- statusEnum: E;
17
- definitions: {
18
- [K in keyof E]: S;
19
- };
20
- };
21
- type StatusDefinition<C extends Constructor<any>> = {
22
- [K in Paths<C>]?: PathValueOf<C, K>;
23
- };
24
- export declare function createAutoStatusDefinitions<C extends Constructor<any>, E extends {
25
- [k: string]: string | number;
26
- }, S extends StatusDefinition<C>>(_class: C, _template: S, statusProperty: Paths<C>, statusEnum: E, definitions: {
27
- [K in keyof E]: S;
28
- }): AutoStatusDefinitions<C, E, S>;
29
- export type AUSDefinitions<T extends Record<string, Constructor<any>>> = {
30
- [K in keyof T]: ServerManagerDefinition<T[K]>;
31
- };
32
- export type AUSOption<C extends Constructor<any>> = {
33
- accessDefinitions?: Partial<AccessDefinitions<C>>;
34
- autoStatusDefinitions?: AutoStatusDefinitions<C, {
35
- [k: string]: string | number;
36
- }, StatusDefinition<C>>;
37
- };
38
- type ServerManagerDefinition<C extends Constructor<any>> = {
39
- class: C;
40
- options?: AUSOption<C>;
41
- };
42
- export declare function AUSManagerFactory<T extends Record<string, Constructor<any>>>(defs: AUSDefinitions<T>, loggers: LoggersType, socket: Server, emitter: EventTarget): Promise<{
43
- [K in keyof T]: AutoUpdateServerManager<T[K]>;
44
- }>;
45
- export declare class AutoUpdateServerManager<T extends Constructor<any>> extends AutoUpdateManager<T> {
46
- readonly model: ReturnModelType<T, BeAnObject>;
47
- private readonly clientSockets;
48
- readonly options?: AUSOption<T>;
49
- constructor(classParam: T, loggers: LoggersType, socket: Server, model: ReturnModelType<T, BeAnObject>, classers: Record<string, AutoUpdateManager<any>>, emitter: EventTarget, options?: AUSOption<T>);
50
- loadDB(): Promise<void>;
51
- registerSocket(socket: Socket): void;
52
- protected handleGetMissingObject(_id: string): Promise<import("./CommonTypes.js").AutoProps<T> & import("./AutoUpdatedServerObjectClass.js").AutoUpdatedServerObject<InstanceType<T>> & import("./CommonTypes.js").UnboxConstructor<InstanceType<T>> & import("./CommonTypes.js").DeRef<InstanceType<T>>>;
53
- createObject(data: Omit<IsData<InstanceType<T>>, "_id">): Promise<import("./CommonTypes.js").AutoProps<T> & import("./AutoUpdatedServerObjectClass.js").AutoUpdatedServerObject<InstanceType<T>> & import("./CommonTypes.js").UnboxConstructor<InstanceType<T>> & import("./CommonTypes.js").DeRef<InstanceType<T>>>;
54
- }
55
- export {};
@@ -1,126 +0,0 @@
1
- import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
2
- import { createAutoUpdatedClass, } from "./AutoUpdatedServerObjectClass.js";
3
- import { getModelForClass } from "@typegoose/typegoose";
4
- export function createAutoStatusDefinitions(_class, _template, statusProperty, statusEnum, definitions) {
5
- return {
6
- statusProperty,
7
- statusEnum,
8
- definitions,
9
- };
10
- }
11
- export async function AUSManagerFactory(defs, loggers, socket, emitter) {
12
- const classers = {};
13
- let i = 0;
14
- for (const key in defs) {
15
- const def = defs[key];
16
- const c = new AutoUpdateServerManager(def.class, loggers, socket, getModelForClass(def.class), classers, emitter, def.options);
17
- i++;
18
- classers[key] = c;
19
- await c.loadDB();
20
- }
21
- return classers;
22
- }
23
- export class AutoUpdateServerManager extends AutoUpdateManager {
24
- model;
25
- clientSockets = new Set();
26
- options;
27
- constructor(classParam, loggers, socket, model, classers, emitter, options) {
28
- super(classParam, socket, loggers, classers, emitter);
29
- this.model = model;
30
- this.options = options;
31
- }
32
- async loadDB() {
33
- const docs = await this.model.find({});
34
- for (const doc of docs) {
35
- this.classes[doc._id] =
36
- this.classes[doc._id] ??
37
- (await this.handleGetMissingObject(doc._id.toString()));
38
- }
39
- }
40
- registerSocket(socket) {
41
- this.clientSockets.add(socket);
42
- socket.on("startup" + this.className, async (ack) => {
43
- const ids = [];
44
- ack(this.objectIDs);
45
- });
46
- socket.on("delete" + this.className, async (id) => {
47
- this.classes[id].destroy();
48
- this.classesAsArray.splice(this.classesAsArray.indexOf(this.classes[id]), 1);
49
- delete this.classes[id];
50
- });
51
- socket.on("new" + this.className, async (data, ack) => {
52
- try {
53
- const newDoc = await this.createObject(data);
54
- ack({
55
- data: newDoc.extractedData,
56
- success: true,
57
- message: "Created successfully",
58
- });
59
- }
60
- catch (error) {
61
- this.loggers.error(error);
62
- ack({ success: false, message: error.message });
63
- }
64
- });
65
- socket.onAny(async (event, data, ack) => {
66
- if (event.startsWith("update" + this.className) &&
67
- event.replace("update" + this.className, "").length === 24) {
68
- try {
69
- const id = event.replace("update" + this.className, "");
70
- let obj = this.classes[id];
71
- if (typeof obj === "string")
72
- this.classes[id] = obj = await this.handleGetMissingObject(obj);
73
- if (typeof obj === "string")
74
- throw new Error(`Never...`);
75
- obj.setValue(data.key, data.value);
76
- ack({
77
- data: obj.extractedData,
78
- success: true,
79
- message: "Updated successfully",
80
- });
81
- }
82
- catch (error) {
83
- ack({ success: false, message: error.message });
84
- }
85
- }
86
- else if (event.startsWith("get" + this.className) &&
87
- event.replace("get" + this.className, "").length === 24) {
88
- try {
89
- const id = event.replace("get" + this.className, "");
90
- let obj = this.classes[id];
91
- ack({
92
- data: obj.extractedData,
93
- success: true,
94
- message: "Updated successfully",
95
- });
96
- }
97
- catch (error) {
98
- ack({ success: false, message: error.message });
99
- }
100
- }
101
- });
102
- socket.on("disconnect", () => {
103
- this.clientSockets.delete(socket);
104
- });
105
- }
106
- async handleGetMissingObject(_id) {
107
- const document = await this.model.findById(_id);
108
- if (!document)
109
- throw new Error(`No document with id ${_id} in DB.`);
110
- if (!this.classers)
111
- throw new Error(`No classers.`);
112
- return await createAutoUpdatedClass(this.classParam, this.socket, document, this.loggers, this, this.emitter);
113
- }
114
- async createObject(data) {
115
- if (!this.classers)
116
- throw new Error(`No classers.`);
117
- data._id = undefined;
118
- const entry = await this.model.create(data);
119
- const object = await createAutoUpdatedClass(this.classParam, this.socket, entry, this.loggers, this, this.emitter);
120
- object.checkAutoStatusChange();
121
- this.classes[object._id] = object;
122
- this.classesAsArray.push(object);
123
- return object;
124
- }
125
- }
126
- //# sourceMappingURL=AutoUpdateServerManagerClass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoUpdateServerManagerClass.js","sourceRoot":"","sources":["../AutoUpdateServerManagerClass.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAyBxD,MAAM,UAAU,2BAA2B,CAKzC,MAAS,EACT,SAAY,EACZ,cAAwB,EACxB,UAAa,EACb,WAAkC;IAElC,OAAO;QACL,cAAc;QACd,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC;AAoBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAGrC,IAAuB,EACvB,OAAoB,EACpB,MAAc,EACd,OAAoB;IAEpB,MAAM,QAAQ,GAAQ,EAAE,CAAC;IAEzB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,uBAAuB,CACnC,GAAG,CAAC,KAAK,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAC3B,QAAQ,EACR,OAAO,EACP,GAAG,CAAC,OAAO,CACL,CAAC;QACT,CAAC,EAAE,CAAC;QACJ,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,QAA+B,CAAC;AACzC,CAAC;AAED,MAAM,OAAO,uBAEX,SAAQ,iBAAoB;IACZ,KAAK,CAAiC;IACrC,aAAa,GAAgB,IAAI,GAAG,EAAU,CAAC;IAChD,OAAO,CAAgB;IACvC,YACE,UAAa,EACb,OAAoB,EACpB,MAAc,EACd,KAAqC,EACrC,QAAgD,EAChD,OAAoB,EACpB,OAAsB;QAEtB,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAE,GAAW,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAE,GAAW,CAAC,GAAG,CAAC;oBAC9B,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAE,GAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,MAAc;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE/B,MAAM,CAAC,EAAE,CACP,SAAS,GAAG,IAAI,CAAC,SAAS,EAC1B,KAAK,EAAE,GAA4B,EAAE,EAAE;YACrC,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC,CACF,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,CACxB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAC7C,CAAC,CACF,CAAC;YACF,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CACP,KAAK,GAAG,IAAI,CAAC,SAAS,EACtB,KAAK,EACH,IAA6B,EAC7B,GAAqC,EACrC,EAAE;YACF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG,CAAC;oBACF,IAAI,EAAE,MAAM,CAAC,aAAa;oBAC1B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,sBAAsB;iBAChC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAG,KAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,KAAK,CACV,KAAK,EACH,KAAa,EACb,IAA4B,EAC5B,GAAqC,EACrC,EAAE;YACF,IACE,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3C,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,EAC1D,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACxD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;wBACzB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;oBAClE,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;oBACzD,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1C,GAAG,CAAC;wBACF,IAAI,EAAE,GAAG,CAAC,aAAa;wBACvB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,sBAAsB;qBAChC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAG,KAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;iBAAM,IACL,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBACxC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,EAAE,EACvD,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3B,GAAG,CAAC;wBACF,IAAI,EAAE,GAAG,CAAC,aAAa;wBACvB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,sBAAsB;qBAChC,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAG,KAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,sBAAsB,CAAC,GAAW;QAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACpD,OAAO,MAAM,sBAAsB,CACjC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,IAAI,CAAC,OAAO,EACZ,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAA0C;QAClE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAY,CAAC,GAAG,GAAG,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,EACJ,IAAI,CAAC,OAAO,CACb,CAAC;QACF,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,47 +0,0 @@
1
- import "reflect-metadata";
2
- import { Constructor, DeRef, InstanceOf, IsData, LoggersType, LoggersTypeInternal, Paths, PathValueOf, RefToId, SocketType } from "./CommonTypes.js";
3
- import { AutoUpdateManager } from "./AutoUpdateManagerClass.js";
4
- import { AutoUpdateClientManager } from "./AutoUpdateClientManagerClass.js";
5
- export type AutoUpdated<T extends Constructor<any>> = AutoUpdatedClientObject<T> & DeRef<InstanceOf<T>>;
6
- export declare function createAutoUpdatedClass<C extends Constructor<any>>(classParam: C, socket: SocketType, data: RefToId<IsData<InstanceType<C>>> | string, loggers: LoggersType, autoClassers: AutoUpdateClientManager<any>, emitter: EventTarget): Promise<AutoUpdated<C>>;
7
- export declare abstract class AutoUpdatedClientObject<T extends Constructor<any>> {
8
- protected readonly socket: SocketType;
9
- protected data: IsData<T>;
10
- protected readonly isServer: boolean;
11
- protected readonly loggers: LoggersTypeInternal;
12
- protected isLoading: boolean;
13
- protected readonly emitter: EventTarget;
14
- protected readonly properties: (keyof T)[];
15
- protected readonly className: string;
16
- protected autoClasser: AutoUpdateManager<any>;
17
- protected isLoadingReferences: boolean;
18
- readonly classProp: Constructor<T>;
19
- private readonly EmitterID;
20
- private readonly loadShit;
21
- constructor(socket: SocketType, data: string | RefToId<IsData<T>>, loggers: LoggersType, properties: (keyof T)[], className: string, classProperty: Constructor<T>, autoClasser: AutoUpdateManager<any>, emitter: EventTarget);
22
- protected handleNewObject(data: IsData<T>): void;
23
- get extractedData(): {
24
- [K in keyof InstanceType<T>]: InstanceOf<InstanceType<T>>[K];
25
- };
26
- isLoaded(): boolean;
27
- isLoadedAsync(): Promise<boolean>;
28
- private openSockets;
29
- private handleUpdateRequest;
30
- private generateSettersAndGetters;
31
- protected findReference(id: string): AutoUpdated<any> | undefined;
32
- setValue<K extends Paths<InstanceOf<T>>>(key: K, val: PathValueOf<T, K>): Promise<boolean>;
33
- getValue(key: Paths<T>): any;
34
- protected setValueInternal(key: string, value: any): Promise<boolean>;
35
- protected makeUpdate(key: string, value: any): any;
36
- protected checkAutoStatusChange(): Promise<void>;
37
- protected resolveReference(id: string): AutoUpdatedClientObject<any> | null;
38
- private loadForceReferences;
39
- private handleLoadOnForced;
40
- destroy(): Promise<void>;
41
- protected wipeSelf(): void;
42
- }
43
- export declare function processIsRefProperties(instance: any, target: any, prefix?: string | null, allProps?: string[], newData?: any, loggers?: LoggersType): {
44
- allProps: string[];
45
- newData: any;
46
- };
47
- export declare function getMetadataRecursive(metaKey: string, proto: any, prop: string): any;
@@ -1,384 +0,0 @@
1
- import "reflect-metadata";
2
- import { ObjectId } from "bson";
3
- export async function createAutoUpdatedClass(classParam, socket, data, loggers, autoClassers, emitter) {
4
- if (typeof data !== "string")
5
- processIsRefProperties(data, classParam.prototype, undefined, [], loggers);
6
- const props = Reflect.getMetadata("props", classParam.prototype);
7
- const instance = new (class extends AutoUpdatedClientObject {
8
- })(socket, data, loggers, props, classParam.name, classParam, autoClassers, emitter);
9
- await instance.isLoadedAsync();
10
- return instance;
11
- }
12
- export class AutoUpdatedClientObject {
13
- socket;
14
- //protected updates: string[] = [];
15
- data;
16
- isServer = false;
17
- loggers = {
18
- info: () => { },
19
- debug: () => { },
20
- error: () => { },
21
- warn: () => { },
22
- };
23
- isLoading = false;
24
- emitter;
25
- properties;
26
- className;
27
- autoClasser;
28
- isLoadingReferences = false;
29
- classProp;
30
- EmitterID = new ObjectId().toHexString();
31
- loadShit = async () => {
32
- if (this.isLoaded()) {
33
- try {
34
- await this.loadForceReferences();
35
- }
36
- catch (error) {
37
- this.loggers.error(error);
38
- }
39
- this.isLoadingReferences = false;
40
- return;
41
- }
42
- this.emitter.addEventListener("loaded" + this.EmitterID, async () => {
43
- try {
44
- await this.loadForceReferences();
45
- }
46
- catch (error) {
47
- this.loggers.error(error);
48
- }
49
- this.isLoadingReferences = false;
50
- });
51
- };
52
- constructor(socket, data, loggers, properties, className, classProperty, autoClasser, emitter) {
53
- this.emitter = emitter;
54
- this.classProp = classProperty;
55
- this.isLoadingReferences = true;
56
- this.isLoading = true;
57
- this.autoClasser = autoClasser;
58
- this.className = className;
59
- this.properties = properties;
60
- this.loggers.debug = loggers.debug;
61
- this.loggers.info = loggers.info;
62
- this.loggers.error = loggers.error;
63
- this.loggers.warn = loggers.warn ?? loggers.info;
64
- this.socket = socket;
65
- if (typeof data === "string") {
66
- if (data === "")
67
- throw new Error("Cannot create a new AutoUpdatedClientClass with an empty string for ID.");
68
- this.socket.emit("get" + this.className + data, null, (res) => {
69
- if (!res.success) {
70
- this.isLoading = false;
71
- this.loggers.error("Could not load data from server:", res.message);
72
- this.emitter.dispatchEvent(new Event("loaded" + this.EmitterID));
73
- return;
74
- }
75
- checkForMissingRefs(res.data, properties, classProperty, autoClasser);
76
- this.data = res.data;
77
- this.isLoading = false;
78
- this.emitter.dispatchEvent(new Event("loaded" + this.EmitterID));
79
- });
80
- this.data = { _id: data };
81
- }
82
- else {
83
- this.isLoading = true;
84
- checkForMissingRefs(data, properties, classProperty, autoClasser);
85
- this.data = data;
86
- if (this.data._id === "")
87
- this.handleNewObject(data);
88
- else {
89
- this.isLoading = false;
90
- }
91
- ;
92
- }
93
- if (!this.isServer)
94
- this.openSockets();
95
- this.generateSettersAndGetters();
96
- }
97
- handleNewObject(data) {
98
- this.isLoading = true;
99
- if (!this.className)
100
- throw new Error("Cannot create a new AutoUpdatedClientClass without a class name.");
101
- this.socket.emit("new" + this.className, data, (res) => {
102
- if (!res.success) {
103
- this.isLoading = false;
104
- this.loggers.error("Could not create data on server:", res.message);
105
- this.emitter.dispatchEvent(new Event("loaded" + this.EmitterID));
106
- return;
107
- }
108
- checkForMissingRefs(res.data, this.properties, this.classProp, this.autoClasser);
109
- this.data = res.data;
110
- this.isLoading = false;
111
- this.emitter.dispatchEvent(new Event("loaded" + this.EmitterID));
112
- });
113
- }
114
- get extractedData() {
115
- const extracted = Object.fromEntries(Object.entries(processIsRefProperties(this.data, this.classProp.prototype).newData).filter(([k, v]) => typeof v !== "function"));
116
- return structuredClone(extracted);
117
- }
118
- isLoaded() {
119
- return !this.isLoading;
120
- }
121
- async isLoadedAsync() {
122
- await this.loadShit();
123
- return this.isLoading
124
- ? new Promise((resolve) => {
125
- this.emitter.addEventListener("loaded" + this.EmitterID, () => {
126
- resolve(this.isLoading === false);
127
- });
128
- })
129
- : true;
130
- }
131
- openSockets() {
132
- this.loggers.debug(`[${this.data._id}] Opening socket listeners`);
133
- this.socket.on("update" + this.className + this.data._id, async (update) => {
134
- await this.handleUpdateRequest(update);
135
- });
136
- }
137
- // Example server-side handler
138
- async handleUpdateRequest(update) {
139
- try {
140
- const path = update.key.split(".");
141
- let dataRef = this.data;
142
- for (let i = 0; i < path.length - 1; i++) {
143
- if (!dataRef[path[i]])
144
- dataRef[path[i]] = {};
145
- dataRef = dataRef[path[i]];
146
- }
147
- dataRef[path.at(-1)] = update.value;
148
- this.loggers.debug(`[${this.data._id}] Applied patch ${update.key} set to ${update.value}`);
149
- // Return success with the applied patch
150
- return { success: true, data: undefined, message: "" };
151
- }
152
- catch (error) {
153
- this.loggers.error(`[${this.data._id}] Error applying patch:`, error);
154
- return {
155
- success: false,
156
- message: "Error applying update: " + error.message,
157
- };
158
- }
159
- }
160
- generateSettersAndGetters() {
161
- for (const key of this.properties) {
162
- if (typeof key !== "string")
163
- return;
164
- const k = key;
165
- const isRef = getMetadataRecursive("isRef", this.classProp.prototype, key);
166
- Object.defineProperty(this, key, {
167
- get: () => {
168
- if (isRef)
169
- return typeof this.data[k] === "string"
170
- ? this.findReference(this.data[k])
171
- : this.data[k];
172
- else
173
- return this.data[k];
174
- },
175
- set: () => {
176
- throw new Error(`Cannot set ${key} this way, use "setValue" function.`);
177
- },
178
- enumerable: true,
179
- configurable: true,
180
- });
181
- }
182
- }
183
- findReference(id) {
184
- for (const classer of Object.values(this.autoClasser.classers)) {
185
- const result = classer.getObject(id);
186
- if (result)
187
- return result;
188
- }
189
- }
190
- async setValue(key, val) {
191
- let value = val;
192
- this.loggers.debug(`[${this.data._id}] Setting ${key} to ${value}`);
193
- try {
194
- if (value instanceof AutoUpdatedClientObject)
195
- value = value.extractedData._id;
196
- const path = key.split(".");
197
- let obj = this.data;
198
- let lastClass = this;
199
- let lastPath = key;
200
- for (let i = 0; i < path.length - 1; i++) {
201
- if (typeof obj[path[i]] !== "object" ||
202
- obj[path[i]] instanceof ObjectId) {
203
- let temp = this.resolveReference(obj[path[i]].toString());
204
- if (!temp) {
205
- return false;
206
- }
207
- lastClass = temp;
208
- lastPath = path.slice(i + 1).join(".");
209
- return await lastClass.setValue(lastPath, value);
210
- }
211
- else
212
- obj = obj[path[i]];
213
- }
214
- if (lastClass !== this || lastPath !== key)
215
- throw new Error("???");
216
- const success = await this.setValueInternal(lastPath, value);
217
- if (!success) {
218
- return false;
219
- }
220
- const pathArr = lastPath.split(".");
221
- if (pathArr.length === 1) {
222
- this.data[key] = value;
223
- await this.checkAutoStatusChange();
224
- return true;
225
- }
226
- const pathMinusLast = pathArr.splice(0, 1);
227
- let ref = this;
228
- for (const p of pathMinusLast) {
229
- ref = ref[p];
230
- }
231
- ref[pathArr.at(-1)] = value;
232
- await this.checkAutoStatusChange();
233
- return true;
234
- }
235
- catch (error) {
236
- this.loggers.error(error);
237
- return false;
238
- }
239
- }
240
- getValue(key) {
241
- let value;
242
- for (const part of key.split(".")) {
243
- if (value)
244
- value = value[part];
245
- else
246
- value = this.data[part];
247
- }
248
- return value;
249
- }
250
- async setValueInternal(key, value) {
251
- const update = this.makeUpdate(key, value);
252
- const promise = new Promise((resolve) => {
253
- try {
254
- this.socket.emit("update" + this.className + this.data._id, update, (res) => {
255
- resolve(res.success);
256
- });
257
- }
258
- catch (error) {
259
- this.loggers.error("Error sending update:", error);
260
- resolve(false);
261
- }
262
- });
263
- return promise;
264
- }
265
- makeUpdate(key, value) {
266
- const id = this.data._id.toString();
267
- return { _id: id, key, value };
268
- }
269
- async checkAutoStatusChange() {
270
- return;
271
- }
272
- // return a properly typed AutoUpdatedClientClass (or null)
273
- // inside AutoUpdatedClientClass
274
- resolveReference(id) {
275
- if (!this.autoClasser)
276
- throw new Error("No autoClasser");
277
- for (const autoClasser of Object.values(this.autoClasser.classers)) {
278
- const data = autoClasser.getObject(id);
279
- if (data)
280
- return data;
281
- }
282
- return null;
283
- }
284
- async loadForceReferences(obj = this.data, proto = this.classProp.prototype) {
285
- const props = Reflect.getMetadata("props", proto) || [];
286
- for (const key of props) {
287
- const isRef = Reflect.getMetadata("isRef", proto, key);
288
- if (isRef) {
289
- await this.handleLoadOnForced(obj, key);
290
- }
291
- // If the property itself is a nested object, check deeper
292
- if (obj[key] && typeof obj[key] === "object") {
293
- const nestedProto = Object.getPrototypeOf(obj[key]);
294
- if (nestedProto) {
295
- await this.loadForceReferences(obj[key], nestedProto);
296
- }
297
- }
298
- }
299
- }
300
- async handleLoadOnForced(obj, key) {
301
- if (!this.autoClasser)
302
- throw new Error("No autoClassers");
303
- const refId = obj[key];
304
- if (refId) {
305
- for (const classer of Object.values(this.autoClasser.classers)) {
306
- const result = classer.getObject(refId);
307
- if (result) {
308
- obj[key] = result;
309
- // Recursively load refs inside the resolved object
310
- if (typeof result.loadForceReferences === "function") {
311
- await result.loadForceReferences();
312
- }
313
- break;
314
- }
315
- }
316
- }
317
- }
318
- async destroy() {
319
- this.socket.emit("delete" + this.className, this.data._id);
320
- this.wipeSelf();
321
- }
322
- wipeSelf() {
323
- for (const key of Object.keys(this.data)) {
324
- delete this.data[key];
325
- }
326
- this.loggers.info(`[${this.data._id}] ${this.className} object wiped`);
327
- }
328
- }
329
- export function processIsRefProperties(instance, target, prefix = null, allProps = [], newData = {}, loggers) {
330
- const props = Reflect.getMetadata("props", target) || [];
331
- for (const prop of props) {
332
- const path = prefix ? `${prefix}.${prop}` : prop;
333
- allProps.push(path);
334
- newData[prop] = instance[prop];
335
- if (Reflect.getMetadata("isRef", target, prop)) {
336
- (loggers ?? console).debug("Changing isRef:", path);
337
- newData[prop] =
338
- typeof instance[prop] === "string"
339
- ? instance[prop]
340
- : instance[prop]?._id;
341
- }
342
- const type = Reflect.getMetadata("design:type", target, prop);
343
- if (type?.prototype) {
344
- const nestedProps = Reflect.getMetadata("props", type.prototype);
345
- if (nestedProps && instance[prop]) {
346
- newData[prop] = processIsRefProperties(instance[prop], type.prototype, path, allProps, undefined, loggers).newData;
347
- }
348
- }
349
- }
350
- return { allProps, newData };
351
- }
352
- export function getMetadataRecursive(metaKey, proto, prop) {
353
- while (proto) {
354
- const meta = Reflect.getMetadata(metaKey, proto, prop);
355
- if (meta !== undefined)
356
- return meta;
357
- proto = Object.getPrototypeOf(proto);
358
- }
359
- return undefined;
360
- }
361
- function checkForMissingRefs(data, props, classParam, autoClassers) {
362
- if (typeof data !== "string") {
363
- const entryKeys = Object.keys(data);
364
- for (const prop of props) {
365
- if (!entryKeys.includes(prop.toString()) &&
366
- getMetadataRecursive("isRef", classParam.prototype, prop.toString())) {
367
- findMissingObjectReference(data, prop, autoClassers.classers);
368
- }
369
- }
370
- }
371
- }
372
- function findMissingObjectReference(data, prop, autoClassers) {
373
- for (const ac of Object.values(autoClassers)) {
374
- for (const obj of ac.objectsAsArray) {
375
- const found = Object.values(obj.extractedData).find((value) => Array.isArray(value) ? value.includes(data._id) : value === data._id);
376
- if (found) {
377
- data[prop] = obj._id;
378
- return;
379
- }
380
- }
381
- }
382
- console.log("a");
383
- }
384
- //# sourceMappingURL=AutoUpdatedClientObjectClass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { IObjectWithTypegooseFunction } from "@typegoose/typegoose/lib/types.js";
2
- import { Types, Document } from "mongoose";
3
- import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
4
- import { AutoProps, Constructor, DeRef, IsData, LoggersType, SocketType, UnboxConstructor } from "./CommonTypes.js";
5
- import { AutoUpdateServerManager } from "./AutoUpdateServerManagerClass.js";
6
- import "reflect-metadata";
7
- export type AutoUpdated<T extends Constructor<any>> = AutoUpdatedServerObject<T> & UnboxConstructor<T>;
8
- export declare function createAutoUpdatedClass<C extends Constructor<any>>(classParam: C, socket: SocketType, data: DocWithProps<InstanceType<C>>, loggers: LoggersType, autoClasser: AutoUpdateServerManager<any>, emitter: EventTarget): Promise<AutoProps<C> & AutoUpdated<InstanceType<C>> & DeRef<InstanceType<C>>>;
9
- export declare abstract class AutoUpdatedServerObject<T extends Constructor<any>> extends AutoUpdatedClientObject<T> {
10
- protected readonly isServer: boolean;
11
- private readonly entry;
12
- protected autoClasser: AutoUpdateServerManager<any>;
13
- constructor(socket: SocketType, data: DocWithProps<T>, loggers: {
14
- info: (...args: any[]) => void;
15
- debug: (...args: any[]) => void;
16
- error: (...args: any[]) => void;
17
- warn?: (...args: any[]) => void;
18
- }, properties: (keyof T)[], className: string, classProp: Constructor<T>, autoClasser: AutoUpdateServerManager<any>, emitter: EventTarget);
19
- protected handleNewObject(_data: IsData<T>): void;
20
- protected setValueInternal(key: string, value: any): Promise<boolean>;
21
- destroy(): Promise<void>;
22
- checkAutoStatusChange(): Promise<void>;
23
- }
24
- export type DocWithProps<T> = Document & Omit<T & {
25
- _id: Types.ObjectId;
26
- __v: number;
27
- }, "typegooseName"> & IObjectWithTypegooseFunction;
@@ -1,64 +0,0 @@
1
- import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass.js";
2
- import "reflect-metadata";
3
- export async function createAutoUpdatedClass(classParam, socket, data, loggers, autoClasser, emitter) {
4
- const instance = new (class extends AutoUpdatedServerObject {
5
- })(socket, data, loggers, Reflect.getMetadata("props", classParam.prototype), classParam.name, classParam, autoClasser, emitter);
6
- await instance.isLoadedAsync();
7
- await instance.checkAutoStatusChange();
8
- return instance;
9
- }
10
- // ---------------------- Class ----------------------
11
- export class AutoUpdatedServerObject extends AutoUpdatedClientObject {
12
- isServer = true;
13
- entry;
14
- autoClasser;
15
- constructor(socket, data, loggers, properties, className, classProp, autoClasser, emitter) {
16
- super(socket, data.toObject(), loggers, properties, className, classProp, autoClasser, emitter);
17
- this.autoClasser = autoClasser;
18
- this.entry = data;
19
- }
20
- handleNewObject(_data) {
21
- throw new Error("Cannot create new objects like this.");
22
- }
23
- async setValueInternal(key, value) {
24
- try {
25
- await this.autoClasser.classers[this.className].model.updateOne({ _id: this.data._id }, { $set: { [key]: value } });
26
- const update = this.makeUpdate(key, value);
27
- this.socket.emit("update" + this.className + this.data._id, update);
28
- return true;
29
- }
30
- catch (error) {
31
- this.loggers.error("Error saving object:", error);
32
- return false;
33
- }
34
- }
35
- async destroy() {
36
- this.socket.emit("delete" + this.className, this.data._id);
37
- await this.entry.deleteOne({ _id: this.data._id });
38
- this.wipeSelf();
39
- }
40
- async checkAutoStatusChange() {
41
- if (!this.autoClasser.options?.autoStatusDefinitions)
42
- return;
43
- const statusPath = this.autoClasser.options.autoStatusDefinitions.statusProperty;
44
- let finalStatus = "null";
45
- for (const [currentStatus, statusDef] of Object.entries(this.autoClasser.options.autoStatusDefinitions.definitions)) {
46
- finalStatus = currentStatus;
47
- for (const [key, value] of Object.entries(statusDef)) {
48
- if (this.getValue(key) !== value) {
49
- finalStatus = null;
50
- break;
51
- }
52
- }
53
- if (!finalStatus)
54
- continue;
55
- if (this.autoClasser.options.autoStatusDefinitions.statusEnum[finalStatus] === this.getValue(statusPath))
56
- break;
57
- await this.setValue(statusPath, this.autoClasser.options.autoStatusDefinitions.statusEnum[finalStatus]);
58
- break;
59
- }
60
- if (!finalStatus)
61
- throw new Error(`No final status found`);
62
- }
63
- }
64
- //# sourceMappingURL=AutoUpdatedServerObjectClass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoUpdatedServerObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedServerObjectClass.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- import { DefaultEventsMap, Server } from "socket.io";
2
- import { Socket as SocketClient } from "socket.io-client";
3
- import { ObjectId } from "bson";
4
- import { AutoUpdated } from "./AutoUpdatedClientObjectClass.js";
5
- import "reflect-metadata";
6
- export type Ref<T> = string | (T extends Constructor<any> ? AutoUpdated<T> : (T & {
7
- _id: string;
8
- }));
9
- export type LoggersTypeInternal = LoggersType & {
10
- warn: (...args: any[]) => void;
11
- };
12
- export type LoggersType = {
13
- info: (...args: any[]) => void;
14
- debug: (...args: any[]) => void;
15
- error: (...args: any[]) => void;
16
- warn?: (...args: any[]) => void;
17
- };
18
- export type SocketType = SocketClient<DefaultEventsMap, DefaultEventsMap> | Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any>;
19
- export type IsData<T> = T extends {
20
- _id: string | ObjectId;
21
- } ? T : never;
22
- export type ServerResponse<T> = {
23
- data: T;
24
- message: string;
25
- success: true;
26
- } | {
27
- data?: null;
28
- message: string;
29
- success: false;
30
- };
31
- export type ServerUpdateResponse<T> = {
32
- data: Partial<IsData<T>>;
33
- message: string;
34
- success: true;
35
- updateId: string;
36
- };
37
- export type ServerUpdateRequest<T> = {
38
- _id: string;
39
- key: string;
40
- value: any;
41
- };
42
- export declare function classProp(target: any, propertyKey: string): void;
43
- export declare function classRef(target: any, propertyKey: string): void;
44
- export type AutoProps<T> = {
45
- readonly [K in keyof T]: T[K];
46
- };
47
- export type Constructor<T> = new (...args: any[]) => T;
48
- export type UnboxConstructor<T> = T extends new (...args: any[]) => infer I ? I : T;
49
- export type NonOptional<T> = Exclude<T, null | undefined>;
50
- export type DeRef<T> = {
51
- [K in keyof T]: T[K] extends Ref<infer U> ? NonOptional<U> : T[K] extends Ref<infer U> | null | undefined ? NonOptional<U> : NonOptional<T[K]>;
52
- };
53
- export type RefToId<T> = {
54
- [K in keyof T]: T[K] extends Ref<infer U> ? string : T[K];
55
- };
56
- export type InstanceOf<T> = T extends Constructor<infer I> ? I : T;
57
- export type NeededTypeAtPath<C extends Constructor<any>, T> = {
58
- [P in Paths<C>]: PathValueOf<C, P> extends T ? P : never;
59
- }[Paths<C>];
60
- type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
61
- type StripPrototypePrefix<P extends string> = P extends "prototype" ? never : P extends `prototype.${infer Rest}` ? Rest : P;
62
- type ResolveRef<T> = T extends Ref<infer U> ? U : T;
63
- type Recurseable<T> = T extends object ? T extends Array<any> | Function ? never : T : never;
64
- type Join<K extends string, P extends string> = `${K}.${P}`;
65
- type OnlyClassKeys<T> = {
66
- [K in keyof T]: K;
67
- }[keyof T] & string;
68
- export type Paths<T, Depth extends number = 5, OriginalDepth extends number = Depth> = Depth extends never ? never : {
69
- [K in OnlyClassKeys<DeRef<NonOptional<T>>>]: K extends "_id" ? StripPrototypePrefix<`${K}`> : StripPrototypePrefix<PathsHelper<K, DeRef<NonOptional<T>>[K], Depth, OriginalDepth>>;
70
- }[OnlyClassKeys<DeRef<NonOptional<T>>>];
71
- type PathsHelper<K extends string, V, Depth extends number, OriginalDepth extends number> = Recurseable<V> extends never ? `${K}` : `${K}` | Join<K, Paths<DeRef<NonOptional<V>>, Prev[Depth], OriginalDepth>>;
72
- type Split<S extends string> = S extends `${infer L}.${infer R}` ? [L, ...Split<R>] : [S];
73
- type PathValue<T, Parts extends readonly string[], Depth extends number = 5> = Depth extends 0 ? any : Parts extends [infer K, ...infer Rest] ? K extends keyof T ? Rest extends readonly string[] ? Rest["length"] extends 0 ? ResolveRef<T[K]> : PathValue<ResolveRef<T[K]>, Rest, Prev[Depth]> : never : never : T;
74
- export type PathValueOf<T, P extends string, Depth extends number = 5> = PathValue<DeRef<InstanceOf<T>>, Split<P>, Depth>;
75
- export type Pretty<T> = {
76
- [K in keyof T]: T[K];
77
- };
78
- export {};
@@ -1,10 +0,0 @@
1
- import "reflect-metadata";
2
- export function classProp(target, propertyKey) {
3
- const props = Reflect.getMetadata("props", target) || [];
4
- props.push(propertyKey);
5
- Reflect.defineMetadata("props", props, target);
6
- }
7
- export function classRef(target, propertyKey) {
8
- Reflect.defineMetadata("isRef", true, target, propertyKey);
9
- }
10
- //# sourceMappingURL=CommonTypes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAIA,OAAO,kBAAkB,CAAC;AAyC1B,MAAM,UAAU,SAAS,CAAC,MAAW,EAAE,WAAmB;IACxD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAW,EAAE,WAAmB;IACvD,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC"}
package/dist/server.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/server.js DELETED
@@ -1,13 +0,0 @@
1
- import * as AutoUpdateServerManagerClass from "./AutoUpdateServerManagerClass.js";
2
- import * as AutoUpdateManagerClass from "./AutoUpdateManagerClass.js";
3
- import * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass.js";
4
- import * as AutoUpdatedServerObjectClass from "./AutoUpdatedServerObjectClass.js";
5
- import * as CommonTypes from "./CommonTypes.js";
6
- module.exports = {
7
- AutoUpdateServerManagerClass,
8
- AutoUpdateManagerClass,
9
- AutoUpdatedClientObjectClass,
10
- AutoUpdatedServerObjectClass,
11
- CommonTypes,
12
- };
13
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,4BAA4B,MAAM,mCAAmC,CAAC;AAClF,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,OAAO,GAAG;IACf,4BAA4B;IAC5B,sBAAsB;IACtB,4BAA4B;IAC5B,4BAA4B;IAC5B,WAAW;CACZ,CAAC"}