topsyde-utils 1.0.89 → 1.0.91
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 +2 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/server/bun/websocket/Client.js +2 -2
- package/dist/server/bun/websocket/Client.js.map +1 -1
- package/dist/server/bun/websocket/Websocket.d.ts +1 -1
- package/dist/server/bun/websocket/Websocket.js +20 -12
- package/dist/server/bun/websocket/Websocket.js.map +1 -1
- package/dist/server/bun/websocket/websocket.enums.d.ts +9 -1
- package/dist/server/bun/websocket/websocket.enums.js +10 -1
- package/dist/server/bun/websocket/websocket.enums.js.map +1 -1
- package/dist/server/bun/websocket/websocket.types.d.ts +7 -6
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
@@ -41,5 +41,5 @@ export { E_IS, E_ENVIRONMENTS } from "./enums";
|
|
41
41
|
export { ControllerResponse, ControllerAction, ControllerMap, ControllerOptions } from "./server/controller";
|
42
42
|
export { Routes } from "./server/bun/router/routes";
|
43
43
|
export { I_WebsocketConstructor } from "./server/bun/websocket/Websocket";
|
44
|
-
export { E_WebsocketMessageType } from "./server/bun/websocket/websocket.enums";
|
45
|
-
export { WebsocketMessage, WebsocketChannel, WebsocketStructuredMessage, WebsocketEntityData, I_WebsocketEntity, I_WebsocketClient, I_WebsocketChannelEntity, BroadcastOptions, I_WebsocketChannel, I_WebsocketInterface, } from "./server/bun/websocket/websocket.types";
|
44
|
+
export { E_WebsocketMessageType, E_WebsocketMessagePriority } from "./server/bun/websocket/websocket.enums";
|
45
|
+
export { WebsocketMessage, WebsocketChannel, WebsocketClients, WebsocketStructuredMessage, WebsocketEntityId, WebsocketEntityName, WebsocketEntityData, I_WebsocketEntity, I_WebsocketClient, I_WebsocketChannelEntity, BroadcastOptions, I_WebsocketChannel, I_WebsocketInterface, } from "./server/bun/websocket/websocket.types";
|
package/dist/index.js
CHANGED
@@ -19,7 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
19
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
20
20
|
};
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
22
|
-
exports.E_WebsocketMessageType = exports.E_ENVIRONMENTS = exports.E_IS = exports.LOG_ICONS = exports.LOG_COLORS = exports.DEFAULT_FALSE_RESPONSE = exports.RESPONSE_METHOD_OPTIONS = exports.RESPONSE_INIT = exports.WS_ERROR_CODE = exports.HTTP_ERROR_CODE = exports.ERROR_CODE = exports.Console = exports.Lib = exports.Guards = exports.Channel = exports.Websocket = exports.Client = exports.Router_Internal = exports.Router = exports.Controller = exports.Throwable = exports.Application = exports.Initializable = exports.Singleton = void 0;
|
22
|
+
exports.E_WebsocketMessagePriority = exports.E_WebsocketMessageType = exports.E_ENVIRONMENTS = exports.E_IS = exports.LOG_ICONS = exports.LOG_COLORS = exports.DEFAULT_FALSE_RESPONSE = exports.RESPONSE_METHOD_OPTIONS = exports.RESPONSE_INIT = exports.WS_ERROR_CODE = exports.HTTP_ERROR_CODE = exports.ERROR_CODE = exports.Console = exports.Lib = exports.Guards = exports.Channel = exports.Websocket = exports.Client = exports.Router_Internal = exports.Router = exports.Controller = exports.Throwable = exports.Application = exports.Initializable = exports.Singleton = void 0;
|
23
23
|
// Export all modules
|
24
24
|
__exportStar(require("./errors"), exports);
|
25
25
|
__exportStar(require("./singleton"), exports);
|
@@ -86,4 +86,5 @@ Object.defineProperty(exports, "E_IS", { enumerable: true, get: function () { re
|
|
86
86
|
Object.defineProperty(exports, "E_ENVIRONMENTS", { enumerable: true, get: function () { return enums_1.E_ENVIRONMENTS; } });
|
87
87
|
var websocket_enums_1 = require("./server/bun/websocket/websocket.enums");
|
88
88
|
Object.defineProperty(exports, "E_WebsocketMessageType", { enumerable: true, get: function () { return websocket_enums_1.E_WebsocketMessageType; } });
|
89
|
+
Object.defineProperty(exports, "E_WebsocketMessagePriority", { enumerable: true, get: function () { return websocket_enums_1.E_WebsocketMessagePriority; } });
|
89
90
|
//# sourceMappingURL=index.js.map
|
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,0EAAwD;AACxD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,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;AAI7B,
|
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,0EAAwD;AACxD,gEAA8C;AAC9C,mEAAiD;AACjD,yEAAuD;AACvD,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;AAI7B,0EAA4G;AAAnG,yHAAA,sBAAsB,OAAA;AAAE,6HAAA,0BAA0B,OAAA"}
|
@@ -39,14 +39,14 @@ class Client {
|
|
39
39
|
this.subscribe(channel_id);
|
40
40
|
this.channels.set(channel_id, channel);
|
41
41
|
if (send)
|
42
|
-
this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_JOIN_CHANNEL, content: { channel_id } });
|
42
|
+
this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_JOIN_CHANNEL, content: { message: "Welcome to the channel", channel_id } });
|
43
43
|
}
|
44
44
|
leaveChannel(channel, send = true) {
|
45
45
|
const channel_id = channel.getId();
|
46
46
|
this.channels.delete(channel_id);
|
47
47
|
this.unsubscribe(channel_id);
|
48
48
|
if (send)
|
49
|
-
this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_LEAVE_CHANNEL, content: { channel_id } });
|
49
|
+
this.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_LEAVE_CHANNEL, content: { message: "Left the channel", channel_id } });
|
50
50
|
}
|
51
51
|
joinChannels(channels, send = true) {
|
52
52
|
channels.forEach((channel) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":";;AAEA,uDAA2D;AAC3D,0CAAqC;AAErC,MAAqB,MAAM;IAM1B,IAAY,EAAE,CAAC,KAA2C;QACzD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,IAAY,EAAE,CAAC,KAAa;QAC3B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAY,IAAI,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAY,QAAQ,CAAC,KAA2C;QAC/D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,YAAY,MAAyB;QACpC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,OAA2B,EAAE,OAAgB,IAAI;QACnE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wCAAsB,CAAC,mBAAmB,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Client.ts"],"names":[],"mappings":";;AAEA,uDAA2D;AAC3D,0CAAqC;AAErC,MAAqB,MAAM;IAM1B,IAAY,EAAE,CAAC,KAA2C;QACzD,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,IAAY,EAAE,CAAC,KAAa;QAC3B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,IAAY,IAAI,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAY,QAAQ,CAAC,KAA2C;QAC/D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,YAAY,MAAyB;QACpC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,OAA2B,EAAE,OAAgB,IAAI;QACnE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wCAAsB,CAAC,mBAAmB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACvI,CAAC;IAEM,YAAY,CAAC,OAA2B,EAAE,OAAgB,IAAI;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wCAAsB,CAAC,oBAAoB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAClI,CAAC;IAEM,YAAY,CAAC,QAA8B,EAAE,OAAgB,IAAI;QACvE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wCAAsB,CAAC,oBAAoB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAEM,aAAa,CAAC,QAA+B,EAAE,OAAgB,IAAI;QACzE,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wCAAsB,CAAC,qBAAqB,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC;IAEM,MAAM;QACZ,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAEM,IAAI,CAAC,OAAmC;QAC9C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,OAAe;QACjC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,OAAmD;QAC9E,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBACjB,OAAO,WAAW,CAAC,WAA4B,CAAC;YACjD,CAAC;QACF,CAAC;QAED,mCAAmC;QACnC,WAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAxGD,yBAwGC"}
|
@@ -25,9 +25,9 @@ export default class Websocket extends Singleton {
|
|
25
25
|
static CreateChannel(id: string, name: string, limit?: number): I_WebsocketChannel<Websocket>;
|
26
26
|
setup(): WebSocketHandler<WebsocketEntityData>;
|
27
27
|
private clientMessageReceived;
|
28
|
-
private handleHeartbeat;
|
29
28
|
private clientConnected;
|
30
29
|
private clientDisconnected;
|
30
|
+
private handleHeartbeat;
|
31
31
|
protected createClient(entity: I_WebsocketEntity): I_WebsocketClient;
|
32
32
|
static Heartbeat(ws: ServerWebSocket<WebsocketEntityData>, message: WebsocketMessage): boolean;
|
33
33
|
static Server(): Server;
|
@@ -16,31 +16,31 @@ class Websocket extends singleton_1.default {
|
|
16
16
|
this.clientMessageReceived = (ws, message) => {
|
17
17
|
if (Websocket.Heartbeat(ws, message))
|
18
18
|
return;
|
19
|
-
const setup = this._ws_interface?.setup(this._channels);
|
19
|
+
const setup = this._ws_interface?.setup(this._channels, this._clients);
|
20
20
|
if (setup && setup.message)
|
21
21
|
return setup.message(ws, message);
|
22
22
|
ws.send("This is the message from the server: " + message);
|
23
23
|
Websocket.BraodcastAll({ type: "client.message.received", content: message });
|
24
24
|
};
|
25
|
-
this.handleHeartbeat = (ws, message) => {
|
26
|
-
if (message === "ping") {
|
27
|
-
const pong = { type: "pong", content: "pong" };
|
28
|
-
ws.send(JSON.stringify(pong));
|
29
|
-
return true;
|
30
|
-
}
|
31
|
-
return false;
|
32
|
-
};
|
33
25
|
this.clientConnected = (ws) => {
|
26
|
+
utils_1.Lib.Log("Client connected", ws.data);
|
27
|
+
const setup = this._ws_interface?.setup(this._channels, this._clients);
|
28
|
+
if (setup && setup.open)
|
29
|
+
return setup.open(ws);
|
34
30
|
const global = this._channels.get("global");
|
35
31
|
if (!global)
|
36
32
|
throw new Error("Global channel not found");
|
33
|
+
//TODO: handshake
|
37
34
|
const client = Websocket.CreateClient({ id: ws.data.id, ws: ws, name: ws.data.name });
|
38
35
|
this._clients.set(client.id, client);
|
39
36
|
global.addMember(client);
|
40
|
-
client.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_CONNECTED, content: { client: client.whoami() } });
|
37
|
+
client.send({ type: websocket_enums_1.E_WebsocketMessageType.CLIENT_CONNECTED, content: { message: "Welcome to the server", client: client.whoami() } });
|
41
38
|
};
|
42
|
-
this.clientDisconnected = (ws) => {
|
43
|
-
utils_1.Lib.Log("
|
39
|
+
this.clientDisconnected = (ws, code, reason) => {
|
40
|
+
utils_1.Lib.Log("Client disconnected", ws.data);
|
41
|
+
const setup = this._ws_interface?.setup(this._channels, this._clients);
|
42
|
+
if (setup && setup.close)
|
43
|
+
return setup.close(ws, code, reason);
|
44
44
|
const client = this._clients.get(ws.data.id);
|
45
45
|
if (!client)
|
46
46
|
return;
|
@@ -49,6 +49,14 @@ class Websocket extends singleton_1.default {
|
|
49
49
|
});
|
50
50
|
this._clients.delete(ws.data.id);
|
51
51
|
};
|
52
|
+
this.handleHeartbeat = (ws, message) => {
|
53
|
+
if (message === "ping") {
|
54
|
+
const pong = { type: "pong", content: "pong" };
|
55
|
+
ws.send(JSON.stringify(pong));
|
56
|
+
return true;
|
57
|
+
}
|
58
|
+
return false;
|
59
|
+
};
|
52
60
|
this._ws_interface = options?.ws_interface;
|
53
61
|
this._channels = options?.channels ?? new Map();
|
54
62
|
this._clientClass = options?.clientClass ?? Client_1.default;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":";;;;;AACA,mEAA2C;AAC3C,0CAAqC;AACrC,oDAAiD;AACjD,wDAAgC;AAChC,sDAA8B;AAW9B,uDAA2D;AAS3D,MAAqB,SAAU,SAAQ,mBAAS;IAO/C,YAAsB,OAAgC;QACrD,KAAK,EAAE,CAAC;QANC,aAAQ,GAAmC,IAAI,GAAG,EAAE,CAAC;QAmDvD,0BAAqB,GAAG,CAAC,EAAwC,EAAE,OAAyB,EAAE,EAAE;YACvG,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;gBAAE,OAAO;YAE7C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"Websocket.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/Websocket.ts"],"names":[],"mappings":"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"}
|
@@ -4,5 +4,13 @@ export declare enum E_WebsocketMessageType {
|
|
4
4
|
CLIENT_JOIN_CHANNEL = "client.join.channel",
|
5
5
|
CLIENT_LEAVE_CHANNEL = "client.leave.channel",
|
6
6
|
CLIENT_JOIN_CHANNELS = "client.join.channels",
|
7
|
-
CLIENT_LEAVE_CHANNELS = "client.leave.channels"
|
7
|
+
CLIENT_LEAVE_CHANNELS = "client.leave.channels",
|
8
|
+
PING = "ping",
|
9
|
+
PONG = "pong",
|
10
|
+
MESSAGE = "message"
|
11
|
+
}
|
12
|
+
export declare enum E_WebsocketMessagePriority {
|
13
|
+
LOW = 0,
|
14
|
+
MEDIUM = 1,
|
15
|
+
HIGH = 2
|
8
16
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.E_WebsocketMessageType = void 0;
|
3
|
+
exports.E_WebsocketMessagePriority = exports.E_WebsocketMessageType = void 0;
|
4
4
|
var E_WebsocketMessageType;
|
5
5
|
(function (E_WebsocketMessageType) {
|
6
6
|
E_WebsocketMessageType["CLIENT_CONNECTED"] = "client.connected";
|
@@ -9,5 +9,14 @@ var E_WebsocketMessageType;
|
|
9
9
|
E_WebsocketMessageType["CLIENT_LEAVE_CHANNEL"] = "client.leave.channel";
|
10
10
|
E_WebsocketMessageType["CLIENT_JOIN_CHANNELS"] = "client.join.channels";
|
11
11
|
E_WebsocketMessageType["CLIENT_LEAVE_CHANNELS"] = "client.leave.channels";
|
12
|
+
E_WebsocketMessageType["PING"] = "ping";
|
13
|
+
E_WebsocketMessageType["PONG"] = "pong";
|
14
|
+
E_WebsocketMessageType["MESSAGE"] = "message";
|
12
15
|
})(E_WebsocketMessageType || (exports.E_WebsocketMessageType = E_WebsocketMessageType = {}));
|
16
|
+
var E_WebsocketMessagePriority;
|
17
|
+
(function (E_WebsocketMessagePriority) {
|
18
|
+
E_WebsocketMessagePriority[E_WebsocketMessagePriority["LOW"] = 0] = "LOW";
|
19
|
+
E_WebsocketMessagePriority[E_WebsocketMessagePriority["MEDIUM"] = 1] = "MEDIUM";
|
20
|
+
E_WebsocketMessagePriority[E_WebsocketMessagePriority["HIGH"] = 2] = "HIGH";
|
21
|
+
})(E_WebsocketMessagePriority || (exports.E_WebsocketMessagePriority = E_WebsocketMessagePriority = {}));
|
13
22
|
//# sourceMappingURL=websocket.enums.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"websocket.enums.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/websocket.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
1
|
+
{"version":3,"file":"websocket.enums.js","sourceRoot":"","sources":["../../../../src/server/bun/websocket/websocket.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IACjC,+DAAqC,CAAA;IACrC,qEAA2C,CAAA;IAC3C,qEAA2C,CAAA;IAC3C,uEAA6C,CAAA;IAC7C,uEAA6C,CAAA;IAC7C,yEAA+C,CAAA;IAC/C,uCAAa,CAAA;IACb,uCAAa,CAAA;IACb,6CAAmB,CAAA;AACpB,CAAC,EAVW,sBAAsB,sCAAtB,sBAAsB,QAUjC;AAED,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yEAAO,CAAA;IACP,+EAAU,CAAA;IACV,2EAAQ,CAAA;AACT,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC"}
|
@@ -3,6 +3,7 @@ import Channel from "./Channel";
|
|
3
3
|
import Websocket from "./Websocket";
|
4
4
|
export type WebsocketMessage = string | Buffer<ArrayBufferLike>;
|
5
5
|
export type WebsocketChannel<T extends I_WebsocketChannel = Channel> = Map<string, T>;
|
6
|
+
export type WebsocketClients = Map<string, I_WebsocketClient>;
|
6
7
|
export type WebsocketStructuredMessage<T = any> = {
|
7
8
|
/**
|
8
9
|
* Message type identifier used for client-side routing
|
@@ -42,14 +43,14 @@ export type WebsocketStructuredMessage<T = any> = {
|
|
42
43
|
*/
|
43
44
|
[key: string]: any;
|
44
45
|
};
|
46
|
+
export type WebsocketEntityId = string;
|
47
|
+
export type WebsocketEntityName = string;
|
45
48
|
export type WebsocketEntityData = {
|
46
|
-
id:
|
47
|
-
name:
|
49
|
+
id: WebsocketEntityId;
|
50
|
+
name: WebsocketEntityName;
|
48
51
|
};
|
49
|
-
export interface I_WebsocketEntity {
|
52
|
+
export interface I_WebsocketEntity extends WebsocketEntityData {
|
50
53
|
ws: ServerWebSocket<WebsocketEntityData>;
|
51
|
-
id: string;
|
52
|
-
name: string;
|
53
54
|
}
|
54
55
|
export interface I_WebsocketClient extends I_WebsocketEntity {
|
55
56
|
channels: WebsocketChannel<I_WebsocketChannel>;
|
@@ -146,5 +147,5 @@ export interface I_WebsocketChannel<T extends Websocket = Websocket> extends I_W
|
|
146
147
|
canAddMember(): boolean;
|
147
148
|
}
|
148
149
|
export interface I_WebsocketInterface {
|
149
|
-
setup: (channels: WebsocketChannel) => Partial<WebSocketHandler<WebsocketEntityData>>;
|
150
|
+
setup: (channels: WebsocketChannel, clients: WebsocketClients) => Partial<WebSocketHandler<WebsocketEntityData>>;
|
150
151
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "topsyde-utils",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.91",
|
4
4
|
"description": "A bundle of TypeScript utility classes and functions",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"types": "dist/index.d.ts",
|
@@ -72,14 +72,14 @@
|
|
72
72
|
},
|
73
73
|
"homepage": "https://github.com/topsyde/topsyde-utils#readme",
|
74
74
|
"devDependencies": {
|
75
|
-
"@types/jest": "^29.5.
|
76
|
-
"@types/node": "^18.
|
75
|
+
"@types/jest": "^29.5.14",
|
76
|
+
"@types/node": "^18.19.78",
|
77
77
|
"@types/bun": "^1.2.4",
|
78
|
-
"jest": "^29.
|
79
|
-
"prettier": "^2.8.
|
78
|
+
"jest": "^29.7.0",
|
79
|
+
"prettier": "^2.8.8",
|
80
80
|
"rimraf": "^4.4.1",
|
81
|
-
"ts-jest": "^29.
|
82
|
-
"typescript": "^5.
|
81
|
+
"ts-jest": "^29.2.6",
|
82
|
+
"typescript": "^5.8.2"
|
83
83
|
},
|
84
84
|
"engines": {
|
85
85
|
"node": ">=14.0.0"
|