@prestizni-software/client-dem 0.5.20 → 0.5.21

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,9 +1,14 @@
1
1
  import "reflect-metadata";
2
2
  import _ from "lodash";
3
- import { EVENT_INTERNAL_PRE_LOADED, EVENT_DELETE, EVENT_GET, EVENT_NEW, EVENT_UPDATE, globalCache, } from "./CommonTypes.js";
3
+ import { EVENT_INTERNAL_PRE_LOADED, EVENT_DELETE, EVENT_GET, EVENT_NEW, EVENT_UPDATE, globalCache, } from "./CommonTypes";
4
4
  import { ObjectId } from "bson";
5
5
  export class AutoUpdatedClientObject {
6
6
  entry;
7
+ preLoad;
8
+ registerSocket;
9
+ readyLoggers;
10
+ loadFromDB(a) { }
11
+ setValue_(a, b) { }
7
12
  socket;
8
13
  data;
9
14
  isServer = false;
@@ -32,7 +37,7 @@ export class AutoUpdatedClientObject {
32
37
  }
33
38
  }
34
39
  catch (error) {
35
- this.loggers.error?.("Error loading references: " + (error instanceof Error ? error.message : String(error)));
40
+ this.loggers.error?.("Error loading references: " + error.message);
36
41
  }
37
42
  finally {
38
43
  this.isLoadingReferences = false;
@@ -80,7 +85,7 @@ export class AutoUpdatedClientObject {
80
85
  const allProps = new Set();
81
86
  let proto_ = classParam.prototype;
82
87
  while (proto_ && proto_ !== Object.prototype) {
83
- const props = (Reflect.getOwnMetadata("props", proto_)) || [];
88
+ const props = Reflect.getOwnMetadata("props", proto_) || [];
84
89
  for (const p of props)
85
90
  allProps.add(p);
86
91
  proto_ = Object.getPrototypeOf(proto_);
@@ -88,10 +93,10 @@ export class AutoUpdatedClientObject {
88
93
  this.properties = Array.from(allProps);
89
94
  this.callbacks = callback;
90
95
  this.loggers = {
91
- debug: (s) => loggers.debug?.(`[DEM - ${this.className}: ${this.data?._id ?? (this)._id ?? "not loaded"}] ${s}`),
92
- info: (s) => loggers.info?.(`[DEM - ${this.className}: ${this.data?._id ?? (this)._id ?? "not loaded"}] ${s}`),
93
- warn: (s) => loggers.warn?.(`[DEM - ${this.className}: ${this.data?._id ?? (this)._id ?? "not loaded"}] ${s}`),
94
- error: (s) => loggers.error?.(`[DEM - ${this.className}: ${this.data?._id ?? (this)._id ?? "not loaded"}] ${s}`),
96
+ debug: (s) => loggers.debug?.(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
97
+ info: (s) => loggers.info?.(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
98
+ warn: (s) => loggers.warn?.(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
99
+ error: (s) => loggers.error?.(`[DEM - ${this.className}: ${this.data?._id ?? this._id ?? "not loaded"}] ${s}`),
95
100
  };
96
101
  if (typeof data === "string") {
97
102
  this.data = { _id: data };
@@ -118,17 +123,16 @@ export class AutoUpdatedClientObject {
118
123
  else {
119
124
  this.isLoading = true;
120
125
  this.data = data;
121
- for (const key of (this.properties) || []) {
126
+ for (const key of this.properties || []) {
122
127
  const isRef = getMetadataRecursive("isRef", this, key);
123
- const dataAsRecord = this.data;
124
- if (isRef && dataAsRecord[key]) {
125
- if (Array.isArray(dataAsRecord[key])) {
126
- dataAsRecord[key] = dataAsRecord[key].map((obj) => obj?._id?.toString() ?? obj?.toString());
128
+ if (isRef && this.data[key]) {
129
+ if (Array.isArray(this.data[key])) {
130
+ this.data[key] = this.data[key].map((obj) => obj._id?.toString() ?? obj?.toString());
127
131
  }
128
132
  else {
129
- dataAsRecord[key] =
130
- dataAsRecord[key]?._id?.toString() ??
131
- dataAsRecord[key]?.toString();
133
+ this.data[key] =
134
+ this.data[key]?._id?.toString() ??
135
+ this.data[key]?.toString();
132
136
  }
133
137
  }
134
138
  }
@@ -195,7 +199,7 @@ export class AutoUpdatedClientObject {
195
199
  this.generateSettersAndGetters();
196
200
  }
197
201
  openSockets() {
198
- const id = this.data?._id ?? (this)._id;
202
+ const id = this.data?._id ?? this._id;
199
203
  const event = EVENT_UPDATE + this.className + id.toString();
200
204
  this.socket.on(event, async (update, ack) => {
201
205
  const res = await this.handleUpdateRequest(update);
@@ -212,10 +216,10 @@ export class AutoUpdatedClientObject {
212
216
  return { success: true, data: undefined, message: "" };
213
217
  }
214
218
  catch (error) {
215
- this.loggers.error?.(`[${this.data._id}] Error applying patch: ${error instanceof Error ? error.message : String(error)}`);
219
+ this.loggers.error?.(`[${this.data._id}] Error applying patch: ${error.message}`);
216
220
  return {
217
221
  success: false,
218
- message: "Error applying update: " + (error instanceof Error ? error.message : String(error)),
222
+ message: "Error applying update: " + error.message,
219
223
  };
220
224
  }
221
225
  }
@@ -280,7 +284,7 @@ export class AutoUpdatedClientObject {
280
284
  return undefined;
281
285
  const idStr = id.toString();
282
286
  if (this.parentManager.cache.references[key])
283
- return this.parentManager.cache.references[key]?.getObject(idStr) ?? undefined;
287
+ return this.parentManager.cache.references[key].getObject(idStr);
284
288
  for (const manager of Object.values(this.parentManager.managers)) {
285
289
  const result = manager.getObject(idStr);
286
290
  if (result) {
@@ -303,13 +307,13 @@ export class AutoUpdatedClientObject {
303
307
  let valueToStore = val;
304
308
  if (isRef) {
305
309
  valueToStore = Array.isArray(val)
306
- ? val.map((v) => v?._id?.toString() ?? v?.toString() ?? v)
307
- : val?._id?.toString() ?? val?.toString() ?? val;
310
+ ? val.map((v) => v._id?.toString() ?? v.toString())
311
+ : val?._id ?? val?.toString() ?? val;
308
312
  }
309
313
  const currentVal = this.getValue(key);
310
314
  const currentValId = Array.isArray(currentVal)
311
- ? currentVal.map((v) => v?._id?.toString() ?? v?.toString() ?? v)
312
- : currentVal?._id?.toString() ?? currentVal?.toString();
315
+ ? currentVal.map((v) => v._id?.toString() ?? v.toString())
316
+ : currentVal?._id ?? currentVal?.toString();
313
317
  if (_.isEqual(currentValId, valueToStore))
314
318
  return { success: true, msg: "Successfully set " + key + " to " + val };
315
319
  const path = key.split(".");
@@ -317,10 +321,9 @@ export class AutoUpdatedClientObject {
317
321
  let obj = this.data;
318
322
  for (let i = 0; i < path.length - 1; i++) {
319
323
  const currentKey = path[i];
320
- const valAtKey = obj[currentKey];
321
- if (typeof valAtKey === "string" ||
322
- (valAtKey && ObjectId.isValid(valAtKey))) {
323
- const ref = await this.resolveReference(String(valAtKey));
324
+ if (typeof obj[currentKey] === "string" ||
325
+ ObjectId.isValid(obj[currentKey])) {
326
+ const ref = await this.resolveReference(obj[currentKey].toString());
324
327
  if (!ref)
325
328
  throw new Error("Could not resolve reference on path: " + key);
326
329
  return await ref.setValue(path.slice(i + 1).join("."), val);
@@ -348,15 +351,15 @@ export class AutoUpdatedClientObject {
348
351
  };
349
352
  }
350
353
  catch (error) {
351
- this.loggers.error?.(`Error setting value ${key}: ${error instanceof Error ? error.message : String(error)}`);
352
- return { success: false, msg: error instanceof Error ? error.message : String(error) };
354
+ this.loggers.error?.(`Error setting value ${key}: ${error.message}`);
355
+ return { success: false, msg: error.message };
353
356
  }
354
357
  }
355
358
  async setValueInternal(key, value, silent = false, noUpdate = false) {
356
359
  if (silent)
357
360
  return { success: true, msg: "Silent" };
358
361
  return new Promise((resolve) => {
359
- const id = this.data?._id ?? (this)._id;
362
+ const id = this.data?._id ?? this._id;
360
363
  this.socket.emit(EVENT_UPDATE + this.className + id, { _id: id.toString(), key, value }, (res) => {
361
364
  resolve({
362
365
  success: res.success,
@@ -366,7 +369,7 @@ export class AutoUpdatedClientObject {
366
369
  });
367
370
  }
368
371
  makeUpdate(key, value) {
369
- const id = this.data?._id ?? (this)._id;
372
+ const id = this.data?._id ?? this._id;
370
373
  if (!id) {
371
374
  this.loggers.error?.(`Probably missing the identifier ['_id'] again: ${key} = ${value}`);
372
375
  throw new Error(`Cannot make update for ${this.className} because _id is missing.`);
@@ -402,7 +405,7 @@ export class AutoUpdatedClientObject {
402
405
  async wipeSelf() {
403
406
  if (this.data.Wiped)
404
407
  return;
405
- const id = this.data?._id ?? (this)._id;
408
+ const id = this.data?._id ?? this._id;
406
409
  const _id = id ? id.toString() : "unknown";
407
410
  for (const key of Object.keys(this.data)) {
408
411
  delete this.data[key];
@@ -464,13 +467,13 @@ export class AutoUpdatedClientObject {
464
467
  if (pointer.length !== 2)
465
468
  return;
466
469
  const parentId = parent._id?.toString() ?? parent.toString();
467
- const obj = (this.parentManager.managers[pointer[0]])?.getObject(parentId);
470
+ const obj = this.parentManager.managers[pointer[0]]?.getObject(parentId);
468
471
  if (!obj)
469
472
  return;
470
473
  const val = obj.getValue(pointer[1]);
471
474
  const myId = this.data._id.toString();
472
475
  if (Array.isArray(val)) {
473
- const ids = val.map((v) => v?._id?.toString() ?? v?.toString());
476
+ const ids = val.map((v) => v._id?.toString() ?? v.toString());
474
477
  if (!ids.includes(myId)) {
475
478
  await obj.setValue__(pointer[1], [...val, myId], true, false, false, true);
476
479
  }
@@ -481,7 +484,7 @@ export class AutoUpdatedClientObject {
481
484
  }
482
485
  async destroy(once = false) {
483
486
  if (!once)
484
- return await this.parentManager.deleteObject(this.data._id.toString());
487
+ return await this.parentManager.deleteObject(this.data._id);
485
488
  return new Promise((resolve) => {
486
489
  this.socket.emit(EVENT_DELETE + this.className, this.data._id, (res) => {
487
490
  resolve({ success: res.success, message: res.message ?? "" });
@@ -506,7 +509,7 @@ export class AutoUpdatedClientObject {
506
509
  if (!ac)
507
510
  return;
508
511
  const targetId = this.data._id.toString();
509
- const allObjects = Object.values(ac.objectsAsArray);
512
+ const allObjects = Object.values(ac.objects);
510
513
  for (const obj of allObjects) {
511
514
  if (!obj.isLoaded)
512
515
  await obj.waitForPreloaded();
@@ -514,7 +517,7 @@ export class AutoUpdatedClientObject {
514
517
  if (!val)
515
518
  continue;
516
519
  const ids = Array.isArray(val)
517
- ? val.map((v) => v?._id?.toString() ?? v.toString())
520
+ ? val.map((v) => v._id?.toString() ?? v.toString())
518
521
  : [val._id?.toString() ?? val.toString()];
519
522
  if (ids.includes(targetId)) {
520
523
  this.data[prop] = obj._id;
@@ -548,7 +551,7 @@ export function processIsRefProperties(instance, target, prefix, allProps, newDa
548
551
  for (const prop of props) {
549
552
  const path = prefix ? `${prefix}.${prop}` : prop;
550
553
  allProps.push(path);
551
- newData[prop] = (instance[prop] && ObjectId.isValid(instance[prop]))
554
+ newData[prop] = ObjectId.isValid(instance[prop])
552
555
  ? instance[prop]?.toString()
553
556
  : instance[prop];
554
557
  if (Reflect.getMetadata("isRef", target, prop)) {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoUpdatedClientObjectClass.js","sourceRoot":"","sources":["../AutoUpdatedClientObjectClass.ts"],"names":[],"mappings":"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"}
@@ -1,58 +1,15 @@
1
1
  import { EventEmitter } from "eventemitter3";
2
2
  import { ObjectId, ObjectIdLike } from "bson";
3
3
  import "reflect-metadata";
4
- export type MongoId = string | ObjectId;
4
+ import { AutoUpdatedClientObject } from "./AutoUpdatedClientObjectClass";
5
+ import { AutoUpdateManager } from "./AutoUpdateManagerClass";
6
+ type RefType = string | ObjectId;
7
+ export type MongoId = RefType;
5
8
  export type EventEmitter3 = EventEmitter;
6
- export interface IAutoUpdateManager<T extends IAutoUpdatedClientObjectBase> {
7
- readonly className: string;
8
- readonly cache: DEMCache;
9
- readonly managers: Record<string, IAutoUpdateManager<IAutoUpdatedClientObjectBase>>;
10
- getObject(_id?: MongoId): T | null | undefined;
11
- deleteObject(_id: MongoId): Promise<{
12
- success: boolean;
13
- message: string;
14
- }>;
15
- readonly objectsAsArray: T[];
16
- readonly isLoaded: boolean;
17
- }
18
- export interface IAutoUpdatedClientObjectBase {
19
- readonly _id: MongoId;
20
- readonly properties: string[];
21
- readonly className: string;
22
- readonly isLoaded: boolean;
23
- loadMissingReferences(): Promise<void>;
24
- waitForPreloaded(): Promise<void>;
25
- destroy(once?: boolean): Promise<{
26
- success: boolean;
27
- message: string;
28
- }>;
29
- isPreLoadedAsync(): Promise<boolean>;
30
- contactChildren(): Promise<void>;
31
- onUpdate(): Promise<void>;
32
- getValue(key: string): any;
33
- setValue(key: string, val: any): Promise<{
34
- success: boolean;
35
- msg: string;
36
- }>;
37
- readonly parentManager: IAutoUpdateManager<IAutoUpdatedClientObjectBase>;
38
- readonly callbacks: any;
39
- readonly classParam: any;
40
- }
41
- export interface IAutoUpdatedClientObject<T extends object = any> extends IAutoUpdatedClientObjectBase {
42
- readonly extractedData: ExtractedData<T, IAutoUpdatedClientObject<any>>;
43
- getValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K): PathValueOf<T, K>;
44
- setValue<K extends Paths<T, IAutoUpdatedClientObject<any>>>(key: K, val: PathValueOf<IsData<T>, K>): Promise<{
45
- success: boolean;
46
- msg: string;
47
- }>;
48
- }
49
- export interface IAutoUpdatedServerObject<T extends object = any> extends IAutoUpdatedClientObject<T> {
50
- loadFromDB(): Promise<void>;
51
- loadFromDocument(document: unknown): Promise<void>;
52
- }
53
9
  export type AutoProps<T> = {
54
10
  readonly [K in keyof T]: T[K];
55
11
  };
12
+ export type InstanceOf<T> = T extends Constructor<infer I> ? I : T;
56
13
  export type Constructor<T> = new (...args: any[]) => T;
57
14
  export type UnboxConstructor<T> = T extends new (...args: any[]) => infer I ? I : T;
58
15
  export type LoggersType = {
@@ -61,29 +18,26 @@ export type LoggersType = {
61
18
  error: (s: string) => void;
62
19
  warn: (s: string) => void;
63
20
  };
64
- type IsAUCOBase<T> = T extends {
21
+ type IsAUCO<T> = T extends {
65
22
  className: string;
66
- _id: any;
67
23
  } ? true : false;
68
- type AllowStringForRefs<V> = NonNullable<V> extends Array<infer U> ? IsAUCOBase<NonNullable<U>> extends true ? (U | string | ObjectIdLike)[] : V : IsAUCOBase<NonNullable<V>> extends true ? V | string | ObjectIdLike : V;
69
- type OnlyStringForRefs<V> = V extends any ? (V extends Array<infer U> ? OnlyStringForRefs<U>[] : V extends IAutoUpdatedClientObjectBase ? string : V extends Date ? V : V extends ObjectId | ObjectIdLike ? string : V extends object ? {
70
- [K in keyof V as V[K] extends Function ? never : K]: K extends "_id" ? string : OnlyStringForRefs<V[K]>;
71
- } : V) : never;
72
- export type DEMCache = {
73
- references: Record<string, any>;
24
+ type AllowStringForRefs<V> = NonNullable<V> extends Array<infer U> ? IsAUCO<NonNullable<U>> extends true ? (U | string | ObjectIdLike)[] : V : IsAUCO<NonNullable<V>> extends true ? V | string | ObjectIdLike : V;
25
+ type OnlyStringForRefs<V> = NonNullable<V> extends Array<infer U> ? IsAUCO<NonNullable<U>> extends true ? string[] : V : IsAUCO<NonNullable<V>> extends true ? string : V;
26
+ export type Cache<T> = {
27
+ references: {
28
+ [K in keyof T]?: AutoUpdateManager<AutoUpdatedClientObject<any>>;
29
+ };
74
30
  };
75
- export type Pure<T extends object, Base = IAutoUpdatedClientObject<any>> = Omit<T, keyof Base | "parentManager" | "callbacks" | "classParam" | "className" | "properties" | "isLoaded" | "extractedData" | "getValue" | "setValue" | "loadFromDB" | "setValue_">;
76
- export type IsData<T extends object> = {
77
- [K in keyof Pure<T> as T[K] extends Function ? never : K]: AllowStringForRefs<T[K]>;
31
+ export type IsData<T> = {
32
+ [K in keyof T]: AllowStringForRefs<T[K]>;
78
33
  } & {
79
- _id: MongoId;
34
+ _id: any;
80
35
  };
81
- export type ExtractedData<T extends object, Base = IAutoUpdatedClientObject<any>> = {
82
- [K in keyof IsData<T> as K extends "_id" ? never : K]: OnlyStringForRefs<IsData<T>[K]>;
83
- } & {
84
- _id: string;
36
+ export type ExtractedData<T, Base = AutoUpdatedClientObject<T>> = {
37
+ [K in keyof FixPure<T, Base>]: OnlyStringForRefs<T[K]>;
85
38
  };
86
- export type SocketEvent = [string, unknown, (res: ServerResponse<unknown>) => void];
39
+ type FixPure<T, Base> = Omit<T, keyof Omit<Base, "_id">>;
40
+ export type SocketEvent = [string, any, (res: ServerResponse<any>) => void];
87
41
  export type ServerResponse<T> = {
88
42
  data: T;
89
43
  message?: string;
@@ -93,32 +47,33 @@ export type ServerResponse<T> = {
93
47
  success: false;
94
48
  };
95
49
  export type ServerUpdateRequest<T> = {
96
- _id: MongoId;
50
+ _id: RefType;
97
51
  key: string;
98
- value: unknown;
52
+ value: any;
99
53
  };
100
- export declare function classProp(target: object, propertyKey: string): void;
101
- export declare function populatedRef(where: string): (target: object, propertyKey: string) => void;
102
- export declare function classRef(): (target: object, propertyKey: string) => void;
54
+ export declare function classProp(target: any, propertyKey: string): void;
55
+ export declare function populatedRef(where: string): (target: any, propertyKey: string) => void;
56
+ export declare function classRef(): (target: any, propertyKey: string) => void;
103
57
  export type Pretty<T> = {
104
58
  [K in keyof T]: T[K];
105
59
  };
106
60
  export type StripPrototypePrefix<P extends string> = P extends "prototype" ? never : P extends `prototype.${infer Rest}` ? Rest : P;
107
- export type Recurseable<T> = T extends object ? T extends Array<unknown> | Function ? never : T : never;
61
+ export type Recurseable<T> = T extends object ? T extends Array<any> | Function ? never : T : never;
108
62
  export type OnlyClassKeys<T> = {
109
63
  [K in keyof T]: K;
110
64
  }[keyof T] & string;
111
65
  export type Split<S extends string> = S extends `${infer L}.${infer R}` ? [L, ...Split<R>] : [S];
112
66
  export type NonOptional<T> = Exclude<T, null | undefined>;
113
- export type DeAutoUpdate<T> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
114
- export type RecursiveDeAutoUpdate<T extends IAutoUpdatedClientObject<any>> = T extends IAutoUpdatedClientObject<any> ? unknown : T;
67
+ export type DeAutoUpdate<T> = T extends AutoUpdatedClientObject<infer U> ? U : T;
68
+ export type RecursiveDeAutoUpdate<T extends AutoUpdatedClientObject<any>> = T extends AutoUpdatedClientObject<infer U> ? U extends object ? DeAutoUpdate<U> : U : T;
115
69
  export type OnlyAddedKeys<Sub, Parent> = Pick<Sub, Exclude<keyof Sub, keyof Omit<Parent, "_id">>>;
116
70
  export type Prev = [never, 0, 1, 2, 3];
117
71
  export type Join<K, P> = K extends string | number ? P extends string | number ? `${K}${"" extends P ? "" : "."}${P}` : never : never;
118
- export type Paths<T, Base, D extends number = 3> = 0 extends (1 & T) ? string : [D] extends [never] ? never : NonNullable<T> extends object ? {
119
- [K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<unknown> | Date | ObjectId ? K : NonNullable<NonNullable<T>[K]> extends object ? K | Join<K, Paths<NonNullable<NonNullable<T>[K]>, Base, Prev[D]>> : K;
72
+ export type Paths<T, Base, D extends number = 3> = [D] extends [never] ? never : NonNullable<T> extends object ? {
73
+ [K in keyof OnlyAddedKeys<NonNullable<T>, Base> & string]-?: NonNullable<NonNullable<T>[K]> extends Function ? never : NonNullable<NonNullable<T>[K]> extends Array<any> | Date | ObjectId ? K : NonNullable<NonNullable<T>[K]> extends object ? K | Join<K, Paths<NonNullable<NonNullable<T>[K]>, Base, Prev[D]>> : K;
120
74
  }[keyof OnlyAddedKeys<NonNullable<T>, Base> & string] : never;
121
- export type PathValueOf<T, P extends string> = 0 extends (1 & T) ? any : P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? PathValueOf<NonNullable<NonNullable<T>[K]>, Rest> : never : P extends keyof NonNullable<T> ? NonNullable<T>[P] : never;
75
+ export type PathValueOf<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? PathValueOf<NonNullable<NonNullable<T>[K]>, Rest> : never : P extends keyof NonNullable<T> ? NonNullable<T>[P] : never;
76
+ export type Pure<T, Base = AutoUpdatedClientObject<T>> = FixPure<T, Base>;
122
77
  export declare const EVENT_INTERNAL_PRE_LOADED = "pre-loaded";
123
78
  export declare const EVENT_UPDATE = "update";
124
79
  export declare const EVENT_DELETE = "delete";
@@ -128,7 +83,7 @@ export declare const EVENT_STARTUP = "startup";
128
83
  export type GlobalCache = {
129
84
  objects: Record<string, {
130
85
  className: string;
131
- object: IAutoUpdatedClientObjectBase;
86
+ object: AutoUpdatedClientObject<any>;
132
87
  }>;
133
88
  };
134
89
  export declare const globalCache: GlobalCache;
@@ -1 +1 @@
1
- {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AA4G1B,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,WAAmB;IACzD,MAAM,KAAK,GAAI,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAc,IAAI,EAAE,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,UAAU,MAAc,EAAE,WAAmB;QAChD,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,OAAO,UAAU,MAAc,EAAE,WAAmB;QAChD,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC;AAkCD,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AASvC,MAAM,CAAC,MAAM,WAAW,GAAgB;IACpC,OAAO,EAAE,EAAE;CACd,CAAC"}
1
+ {"version":3,"file":"CommonTypes.js","sourceRoot":"","sources":["../CommonTypes.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,CAAC;AAoE1B,MAAM,UAAU,SAAS,CAAC,MAAW,EAAE,WAAmB;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,UAAU,MAAW,EAAE,WAAmB;QAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,OAAO,UAAU,MAAW,EAAE,WAAmB;QAC7C,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC,CAAC;AACN,CAAC;AAoCD,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AASvC,MAAM,CAAC,MAAM,WAAW,GAAgB;IACpC,OAAO,EAAE,EAAE;CACd,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass.js";
2
- export * as AutoUpdateManagerClass from "./AutoUpdateManagerClass.js";
3
- export * as AutoUpdateClientManagerClass from "./AutoUpdateClientManagerClass.js";
4
- export * as CommonTypes from "./CommonTypes.js";
1
+ import * as AutoUpdateClientManagerClass from "./AutoUpdateClientManagerClass";
2
+ import * as AutoUpdateManagerClass from "./AutoUpdateManagerClass";
3
+ import * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass";
4
+ import * as CommonTypes from "./CommonTypes";
5
+ export { AutoUpdateClientManagerClass, AutoUpdateManagerClass, AutoUpdatedClientObjectClass, CommonTypes, };
package/dist/client.js CHANGED
@@ -1,5 +1,6 @@
1
- export * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass.js";
2
- export * as AutoUpdateManagerClass from "./AutoUpdateManagerClass.js";
3
- export * as AutoUpdateClientManagerClass from "./AutoUpdateClientManagerClass.js";
4
- export * as CommonTypes from "./CommonTypes.js";
1
+ import * as AutoUpdateClientManagerClass from "./AutoUpdateClientManagerClass";
2
+ import * as AutoUpdateManagerClass from "./AutoUpdateManagerClass";
3
+ import * as AutoUpdatedClientObjectClass from "./AutoUpdatedClientObjectClass";
4
+ import * as CommonTypes from "./CommonTypes";
5
+ export { AutoUpdateClientManagerClass, AutoUpdateManagerClass, AutoUpdatedClientObjectClass, CommonTypes, };
5
6
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../client.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,WAAW,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,4BAA4B,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,sBAAsB,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,4BAA4B,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAE7C,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,WAAW,GACZ,CAAC"}