From 7352f63942d43c1c1d9ed55259355e8e62b9849c Mon Sep 17 00:00:00 2001 From: Artem Derevnjuk Date: Thu, 13 Jul 2023 10:54:07 +0400 Subject: [PATCH] fix(socketio): incomplete configuration Socket.IO closes #2381 --- packages/third-parties/socketio/package.json | 6 +- .../src/services/SocketIOServer.spec.ts | 32 +++++++ .../socketio/src/services/SocketIOServer.ts | 7 +- yarn.lock | 85 ++++++++++++------- 4 files changed, 93 insertions(+), 37 deletions(-) create mode 100644 packages/third-parties/socketio/src/services/SocketIOServer.spec.ts diff --git a/packages/third-parties/socketio/package.json b/packages/third-parties/socketio/package.json index 2eeef353d44..f08df35ab55 100644 --- a/packages/third-parties/socketio/package.json +++ b/packages/third-parties/socketio/package.json @@ -45,8 +45,8 @@ "@tsed/typescript": "7.33.0", "eslint": "^8.12.0", "express": "^4.17.1", - "socket.io": "4.4.1", - "socket.io-client": "^4.1.2" + "socket.io": "4.7.1", + "socket.io-client": "^4.7.1" }, "peerDependencies": { "@tsed/di": "^7.33.0", @@ -70,4 +70,4 @@ "optional": false } } -} \ No newline at end of file +} diff --git a/packages/third-parties/socketio/src/services/SocketIOServer.spec.ts b/packages/third-parties/socketio/src/services/SocketIOServer.spec.ts new file mode 100644 index 00000000000..24610fd013b --- /dev/null +++ b/packages/third-parties/socketio/src/services/SocketIOServer.spec.ts @@ -0,0 +1,32 @@ +import {PlatformTest} from "@tsed/common"; +import {SocketIOServer, Server} from "./SocketIOServer"; + +describe("SocketIOServer", () => { + describe("when there is configuration", () => { + beforeEach(() => + PlatformTest.create({ + socketIO: { + path: "/api/ws" + } + }) + ); + afterEach(PlatformTest.reset); + + it("should inject the SocketIO server", () => { + const server = PlatformTest.get(SocketIOServer); + + expect(server).toBeInstanceOf(Server); + }); + }); + + describe("when there is no configuration", () => { + beforeEach(() => PlatformTest.create({})); + afterEach(PlatformTest.reset); + + it("should inject the SocketIO server", () => { + const server = PlatformTest.get(SocketIOServer); + + expect(server).toBeInstanceOf(Server); + }); + }); +}); diff --git a/packages/third-parties/socketio/src/services/SocketIOServer.ts b/packages/third-parties/socketio/src/services/SocketIOServer.ts index 84985e3f3db..07e46b8b4e0 100644 --- a/packages/third-parties/socketio/src/services/SocketIOServer.ts +++ b/packages/third-parties/socketio/src/services/SocketIOServer.ts @@ -1,4 +1,4 @@ -import {registerProvider} from "@tsed/di"; +import {Configuration, registerProvider} from "@tsed/di"; import {Server} from "socket.io"; export type SocketIOServer = Server; @@ -10,7 +10,8 @@ export {Server}; registerProvider({ provide: Server, - useFactory() { - return new Server(); + deps: [Configuration], + useFactory(config: Configuration) { + return new Server(config.socketIO); } }); diff --git a/yarn.lock b/yarn.lock index b93276dca5c..3ab3190285e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4178,11 +4178,6 @@ dependencies: change-case "*" -"@types/component-emitter@^1.2.10": - version "1.2.11" - resolved "https://registry.yarnpkg.com/@types/component-emitter/-/component-emitter-1.2.11.tgz#50d47d42b347253817a39709fef03ce66a108506" - integrity sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ== - "@types/compression@1.7.2": version "1.7.2" resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.2.tgz#7cc1cdb01b4730eea284615a68fc70a2cdfd5e71" @@ -8905,7 +8900,7 @@ complain@^1.6.0: dependencies: error-stack-parser "^2.0.1" -component-emitter@^1.2.1, component-emitter@^1.3.0, component-emitter@~1.3.0: +component-emitter@^1.2.1, component-emitter@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -10487,6 +10482,17 @@ engine.io-client@~6.2.1: ws "~8.2.3" xmlhttprequest-ssl "~2.0.0" +engine.io-client@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.1.tgz#1735fb8ae3bae5ae13115e18d2f484daf005dd9c" + integrity sha512-hE5wKXH8Ru4L19MbM1GgYV/2Qo54JSMh1rlJbfpa40bEWkCKNo3ol2eOtGmowcr+ysgbI7+SGL+by42Q3pt/Ng== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.1.0" + ws "~8.11.0" + xmlhttprequest-ssl "~2.0.0" + engine.io-parser@~5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.3.tgz#ca1f0d7b11e290b4bfda251803baea765ed89c09" @@ -10494,10 +10500,15 @@ engine.io-parser@~5.0.3: dependencies: "@socket.io/base64-arraybuffer" "~1.0.2" -engine.io@~6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.1.3.tgz#f156293d011d99a3df5691ac29d63737c3302e6f" - integrity sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA== +engine.io-parser@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.1.0.tgz#d593d6372d7f79212df48f807b8cace1ea1cb1b8" + integrity sha512-enySgNiK5tyZFynt3z7iqBR+Bto9EVVVvDFuTT0ioHCGbzirZVGDGiQjZzEp8hWl6hd5FSVytJGuScX1C1C35w== + +engine.io@~6.5.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.1.tgz#59725f8593ccc891abb47f1efcdc52a089525a56" + integrity sha512-mGqhI+D7YxS9KJMppR6Iuo37Ed3abhU8NdfgSvJSDUafQutrN+sPTncJYTyM9+tkhSmWodKtVYGPPHyXJEwEQA== dependencies: "@types/cookie" "^0.4.1" "@types/cors" "^2.8.12" @@ -10507,8 +10518,8 @@ engine.io@~6.1.0: cookie "~0.4.1" cors "~2.8.5" debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" + engine.io-parser "~5.1.0" + ws "~8.11.0" enhanced-resolve@^4.5.0: version "4.5.0" @@ -21554,10 +21565,12 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -socket.io-adapter@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz#4d6111e4d42e9f7646e365b4f578269821f13486" - integrity sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ== +socket.io-adapter@~2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12" + integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA== + dependencies: + ws "~8.11.0" socket.io-client@^4.1.2: version "4.5.1" @@ -21569,14 +21582,15 @@ socket.io-client@^4.1.2: engine.io-client "~6.2.1" socket.io-parser "~4.2.0" -socket.io-parser@~4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0" - integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g== +socket.io-client@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.1.tgz#48e5f703abe4fb0402182bcf9c06b7820fb3453b" + integrity sha512-Qk3Xj8ekbnzKu3faejo4wk2MzXA029XppiXtTF/PkbTg+fcwaTw1PlDrTrrrU4mKoYC4dvlApOnSeyLCKwek2w== dependencies: - "@types/component-emitter" "^1.2.10" - component-emitter "~1.3.0" - debug "~4.3.1" + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.5.1" + socket.io-parser "~4.2.4" socket.io-parser@~4.2.0: version "4.2.0" @@ -21586,17 +21600,26 @@ socket.io-parser@~4.2.0: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" -socket.io@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.4.1.tgz#cd6de29e277a161d176832bb24f64ee045c56ab8" - integrity sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg== +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + +socket.io@4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.1.tgz#9009f31bf7be25478895145e92fbc972ad1db900" + integrity sha512-W+utHys2w//dhFjy7iQQu9sGd3eokCjGbl2r59tyLqNiJJBdIebn3GAKEXBr3osqHTObJi2die/25bCx2zsaaw== dependencies: accepts "~1.3.4" base64id "~2.0.0" + cors "~2.8.5" debug "~4.3.2" - engine.io "~6.1.0" - socket.io-adapter "~2.3.3" - socket.io-parser "~4.0.4" + engine.io "~6.5.0" + socket.io-adapter "~2.5.2" + socket.io-parser "~4.2.4" sockjs@^0.3.24: version "0.3.24" @@ -24575,7 +24598,7 @@ ws@7.x, "ws@^5.2.0 || ^6.0.0 || ^7.0.0": resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== -ws@^8.4.2: +ws@^8.4.2, ws@~8.11.0: version "8.11.0" resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==