topsyde-utils 1.0.52 → 1.0.54
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/dist/index.d.ts +0 -1
- package/dist/index.js.map +1 -1
- package/dist/server/bun/router/router.js +2 -2
- package/dist/server/bun/router/router.js.map +1 -1
- package/dist/server/bun/websocket/Channel.js +1 -13
- package/dist/server/bun/websocket/Channel.js.map +1 -1
- package/dist/server/bun/websocket/Websocket.d.ts +4 -4
- package/dist/server/bun/websocket/Websocket.js +11 -10
- package/dist/server/bun/websocket/Websocket.js.map +1 -1
- package/dist/singleton.d.ts +6 -18
- package/dist/singleton.js +15 -28
- package/dist/singleton.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -31,7 +31,6 @@ export { default as Guards } from "./utils/Guards";
|
|
31
31
|
export { default as Lib } from "./utils/Lib";
|
32
32
|
export { default as Console } from "./utils/Console";
|
33
33
|
export { ERROR_CODE, HTTP_ERROR_CODE, WS_ERROR_CODE } from "./errors";
|
34
|
-
export { Constructor } from "./singleton";
|
35
34
|
export { InitializableOptions, InitializableEvent } from "./initializable";
|
36
35
|
export { RESPONSE_INIT, RESPONSE_METHOD_OPTIONS } from "./application";
|
37
36
|
export { DEFAULT_FALSE_RESPONSE, LOG_COLORS, LOG_ICONS } from "./consts";
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,qBAAqB;AACrB,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,sDAAoC;AACpC,6DAA2C;AAC3C,6DAA2C;AAC3C,sEAAoD;AACpD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,iEAA+C;AAC/C,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAEhC,yBAAyB;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,qDAA+D;AAAtD,iHAAA,OAAO,OAAU;AAC1B,uEAAiF;AAAxE,mIAAA,OAAO,OAAmB;AACnC,wDAAkE;AAAzD,iHAAA,OAAO,OAAU;AAC1B,8DAAwE;AAA/D,uHAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,mHAAA,OAAO,OAAW;AAC3B,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,mCAA6C;AAApC,2GAAA,OAAO,OAAO;AACvB,2CAAqD;AAA5C,mHAAA,OAAO,OAAW;AAE3B,sDAAsD;AACtD,mCAAsE;AAA7D,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,iCAAiC;;;;;;;;;;;;;;;;;;;;AAEjC,qBAAqB;AACrB,2CAAyB;AACzB,8CAA4B;AAC5B,kDAAgC;AAChC,gDAA8B;AAC9B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,sDAAoC;AACpC,6DAA2C;AAC3C,6DAA2C;AAC3C,sEAAoD;AACpD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,iEAA+C;AAC/C,iDAA+B;AAC/B,8CAA4B;AAC5B,kDAAgC;AAEhC,yBAAyB;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,kDAA4D;AAAnD,yHAAA,OAAO,OAAc;AAC9B,qDAA+D;AAAtD,iHAAA,OAAO,OAAU;AAC1B,uEAAiF;AAAxE,mIAAA,OAAO,OAAmB;AACnC,wDAAkE;AAAzD,iHAAA,OAAO,OAAU;AAC1B,8DAAwE;AAA/D,uHAAA,OAAO,OAAa;AAC7B,0DAAoE;AAA3D,mHAAA,OAAO,OAAW;AAC3B,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,mCAA6C;AAApC,2GAAA,OAAO,OAAO;AACvB,2CAAqD;AAA5C,mHAAA,OAAO,OAAW;AAE3B,sDAAsD;AACtD,mCAAsE;AAA7D,oGAAA,UAAU,OAAA;AAAE,yGAAA,eAAe,OAAA;AAAE,uGAAA,aAAa,OAAA;AAEnD,6CAAuE;AAA9D,4GAAA,aAAa,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AAC/C,mCAAyE;AAAhE,gHAAA,sBAAsB,OAAA;AAAE,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAEtD,iCAA+C;AAAtC,6FAAA,IAAI,OAAA;AAAE,uGAAA,cAAc,OAAA"}
|
@@ -25,10 +25,10 @@ class Router extends singleton_1.default {
|
|
25
25
|
return await method(request);
|
26
26
|
}
|
27
27
|
static SetRoutes(routes) {
|
28
|
-
|
28
|
+
this.GetInstance().setRoutes(routes);
|
29
29
|
}
|
30
30
|
static getMethodMap() {
|
31
|
-
const router =
|
31
|
+
const router = this.GetInstance();
|
32
32
|
return {
|
33
33
|
GET: async (req) => await router.internal.get(req),
|
34
34
|
POST: async (req) => await router.internal.post(req),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/server/bun/router/router.ts"],"names":[],"mappings":";;;;;AAAA,4CAA6C;AAC7C,mEAA2C;AAC3C,mEAA2C;AAC3C,wEAAgD;AAOhD,MAAM,MAAO,SAAQ,mBAAS;IAG7B,YAAmB,MAAe;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,SAAS,CAAC,MAAc;QAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAI,OAAgB;QAC3C,IAAI,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,mBAAU,CAAC,UAAU,CAAC;QACvD,MAAM,OAAO,GAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,mBAAU,CAAC,cAAc,CAAC;QAE1D,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAc;QACrC,
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../src/server/bun/router/router.ts"],"names":[],"mappings":";;;;;AAAA,4CAA6C;AAC7C,mEAA2C;AAC3C,mEAA2C;AAC3C,wEAAgD;AAOhD,MAAM,MAAO,SAAQ,mBAAS;IAG7B,YAAmB,MAAe;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAEO,SAAS,CAAC,MAAc;QAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAI,OAAgB;QAC3C,IAAI,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,mBAAU,CAAC,UAAU,CAAC;QACvD,MAAM,OAAO,GAAiB,IAAI,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,gBAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YAAE,MAAM,mBAAU,CAAC,cAAc,CAAC;QAE1D,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAc;QACrC,IAAI,CAAC,WAAW,EAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,YAAY;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAU,CAAC;QAC1C,OAAO;YACN,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAClD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;SACpD,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,OAAgB;QAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC,YAAY,CAAC;IACzB,CAAC;CACD;AAED,kBAAe,MAAM,CAAC"}
|
@@ -38,19 +38,7 @@ class Channel {
|
|
38
38
|
this.members.delete(entity.id);
|
39
39
|
}
|
40
40
|
broadcast(message, exclude) {
|
41
|
-
|
42
|
-
const websocketInstance = Websocket_1.default.GetInstance();
|
43
|
-
// Check if the server is set using getServer method
|
44
|
-
const server = websocketInstance.server;
|
45
|
-
if (!server) {
|
46
|
-
// If no server, send to individual clients instead
|
47
|
-
this.members.forEach(client => {
|
48
|
-
client.send(message);
|
49
|
-
});
|
50
|
-
return;
|
51
|
-
}
|
52
|
-
// Use the server to publish
|
53
|
-
server.publish(this.id, JSON.stringify(message));
|
41
|
+
Websocket_1.default.Broadcast(this.id, message);
|
54
42
|
}
|
55
43
|
hasMember(client) { }
|
56
44
|
getMember(client) { }
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Channel.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAEpC,sDAA8B;
|
1
|
+
{"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Channel.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAEpC,sDAA8B;AAG9B,MAAqB,OAAO;IAQ3B,YAAY,EAAU,EAAE,IAAY,EAAE,KAAc,EAAE,OAA6B,EAAE,QAAiC;QAP5G,cAAS,GAAU,IAAI,IAAI,EAAE,CAAC;QAQvC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,MAAyB;QACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QACjC,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAI,CAAC,SAAS,CAAC;YACd,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE;gBACR,SAAS,EAAE,IAAI,CAAC,EAAE;gBAClB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE;aACxB;SACD,CAAC,CAAC;IACJ,CAAC;IAEM,YAAY,CAAC,MAAyB;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,SAAS,CAAC,OAAmC,EAAE,OAAwC;QAC7F,mBAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS,CAAC,MAAkC,IAAG,CAAC;IAEhD,SAAS,CAAC,MAAkC,IAAG,CAAC;IAEhD,UAAU;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEM,WAAW;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,YAAY;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEM,KAAK;QACX,OAAO,IAAI,CAAC,EAAE,CAAC;IAChB,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1B,CAAC;IACO,YAAY;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;CACD;AA9ED,0BA8EC"}
|
@@ -8,13 +8,13 @@ export default class Websocket extends Singleton {
|
|
8
8
|
get server(): Server;
|
9
9
|
protected set server(value: Server);
|
10
10
|
set(server: Server): void;
|
11
|
+
setup(): WebSocketHandler<WebsocketClientData>;
|
12
|
+
private clientMessageReceived;
|
13
|
+
private clientConnected;
|
14
|
+
private clientDisconnected;
|
11
15
|
static Server(): Server;
|
12
16
|
static Broadcast(channel: string, message: WebsocketStructuredMessage): void;
|
13
17
|
static Publish(message: WebsocketStructuredMessage): void;
|
14
18
|
static Join(channel: string, entity: I_WebsocketEntity): void;
|
15
19
|
static Leave(channel: string, entity: I_WebsocketEntity): void;
|
16
|
-
setup(): WebSocketHandler<WebsocketClientData>;
|
17
|
-
private clientMessageReceived;
|
18
|
-
private clientConnected;
|
19
|
-
private clientDisconnected;
|
20
20
|
}
|
@@ -50,16 +50,24 @@ class Websocket extends singleton_1.default {
|
|
50
50
|
this.server = server;
|
51
51
|
Console_1.Console.success("Websocket server set");
|
52
52
|
}
|
53
|
+
setup() {
|
54
|
+
return {
|
55
|
+
open: this.clientConnected,
|
56
|
+
message: this.clientMessageReceived,
|
57
|
+
close: this.clientDisconnected,
|
58
|
+
};
|
59
|
+
}
|
53
60
|
static Server() {
|
54
61
|
return this.GetInstance().server;
|
55
62
|
}
|
56
63
|
static Broadcast(channel, message) {
|
57
|
-
|
58
|
-
|
64
|
+
// Get the server from the singleton instance
|
65
|
+
const server = this.GetInstance().server;
|
66
|
+
if (!server) {
|
59
67
|
utils_1.Lib.Warn("Websocket server not set");
|
60
68
|
return;
|
61
69
|
}
|
62
|
-
|
70
|
+
server.publish(channel, JSON.stringify(message));
|
63
71
|
}
|
64
72
|
static Publish(message) {
|
65
73
|
const ws = this.GetInstance();
|
@@ -75,13 +83,6 @@ class Websocket extends singleton_1.default {
|
|
75
83
|
const ws = this.GetInstance();
|
76
84
|
ws.channels.get(channel)?.removeMember(entity);
|
77
85
|
}
|
78
|
-
setup() {
|
79
|
-
return {
|
80
|
-
open: this.clientConnected,
|
81
|
-
message: this.clientMessageReceived,
|
82
|
-
close: this.clientDisconnected,
|
83
|
-
};
|
84
|
-
}
|
85
86
|
}
|
86
87
|
exports.default = Websocket;
|
87
88
|
//# sourceMappingURL=Websocket.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":";AAAA;;;;0FAI0F;;;;;AAG1F,mEAA2C;AAC3C,oDAAiD;AACjD,wDAAgC;AAEhC,0CAAqC;AAErC,MAAqB,SAAU,SAAQ,mBAAS;IAI/C;QACC,KAAK,EAAE,CAAC;QAJC,aAAQ,GAAqB,IAAI,GAAG,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":"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"}
|
package/dist/singleton.d.ts
CHANGED
@@ -1,20 +1,8 @@
|
|
1
|
-
export
|
2
|
-
|
3
|
-
|
4
|
-
declare abstract class Singleton {
|
5
|
-
private static readonly instances;
|
6
|
-
private static readonly shareInstances;
|
1
|
+
export default abstract class Singleton {
|
2
|
+
private static readonly _instances;
|
3
|
+
protected timestamp: Date;
|
7
4
|
protected constructor();
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
* @param share Whether to share instances with the base class (default: true)
|
12
|
-
*/
|
13
|
-
static ShareInstanceWithBaseClass<T extends Singleton>(classRef: Constructor<T>, share?: boolean): void;
|
14
|
-
/**
|
15
|
-
* Get the instance for a class, respecting the sharing configuration
|
16
|
-
*/
|
17
|
-
static GetInstance<T extends Singleton>(this: Constructor<T>, ...args: any[]): T;
|
18
|
-
static GetInstanceCount(): number;
|
5
|
+
static GetInstance<T extends Singleton>(): T;
|
6
|
+
static ResetInstances(): void;
|
7
|
+
static ResetInstance(className: string): void;
|
19
8
|
}
|
20
|
-
export default Singleton;
|
package/dist/singleton.js
CHANGED
@@ -1,38 +1,25 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
class Singleton {
|
4
|
-
constructor() {
|
5
|
-
|
6
|
-
* Configure a class to share instances with its base class
|
7
|
-
* @param classRef The class to configure
|
8
|
-
* @param share Whether to share instances with the base class (default: true)
|
9
|
-
*/
|
10
|
-
static ShareInstanceWithBaseClass(classRef, share = true) {
|
11
|
-
Singleton.shareInstances.set(classRef, share);
|
4
|
+
constructor() {
|
5
|
+
this.timestamp = new Date();
|
12
6
|
}
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
const shouldShare = Singleton.shareInstances.get(classReference) === true;
|
20
|
-
// If we already have an instance for this class, return it
|
21
|
-
if (Singleton.instances.has(classReference)) {
|
22
|
-
return Singleton.instances.get(classReference);
|
7
|
+
static GetInstance() {
|
8
|
+
const className = this.name;
|
9
|
+
const key = className.includes("Websocket") ? "Websocket" : className;
|
10
|
+
if (!Singleton._instances.has(key)) {
|
11
|
+
const instance = Reflect.construct(this, []);
|
12
|
+
Singleton._instances.set(key, instance);
|
23
13
|
}
|
24
|
-
|
25
|
-
const instance = new classReference(...args);
|
26
|
-
Singleton.instances.set(classReference, instance);
|
27
|
-
return instance;
|
14
|
+
return Singleton._instances.get(key);
|
28
15
|
}
|
29
|
-
static
|
30
|
-
|
16
|
+
static ResetInstances() {
|
17
|
+
Singleton._instances.clear();
|
18
|
+
}
|
19
|
+
static ResetInstance(className) {
|
20
|
+
Singleton._instances.delete(className);
|
31
21
|
}
|
32
22
|
}
|
33
|
-
|
34
|
-
Singleton.instances = new Map();
|
35
|
-
// Flag to determine if a class should share instances with its base class
|
36
|
-
Singleton.shareInstances = new Map();
|
23
|
+
Singleton._instances = new Map();
|
37
24
|
exports.default = Singleton;
|
38
25
|
//# sourceMappingURL=singleton.js.map
|
package/dist/singleton.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":";;AAAA,MAA8B,SAAS;IAKtC;QACC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,WAAW;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAM,CAAC;YAClD,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,cAAc;QAC3B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAGM,MAAM,CAAC,aAAa,CAAC,SAAiB;QAC5C,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;AA3BuB,oBAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;kBADrC,SAAS"}
|