From 5eee682139ceed94c22e1b01cfb6eeb711992eb9 Mon Sep 17 00:00:00 2001 From: Luca Marturana Date: Fri, 9 Oct 2026 09:34:21 +0200 Subject: [PATCH] fix postgres emitter to work with latest version --- package-lock.json | 211 +++++++++++++++--- package.json | 2 +- .../socket.io-postgres-emitter/lib/index.ts | 2 + 3 files changed, 186 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index c64c5c208b..539e8a4d42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^1.0.0", "@sinonjs/fake-timers": "^11.2.2", - "@socket.io/postgres-adapter": "^0.1.0", + "@socket.io/postgres-adapter": "^0.5.0", "@socket.io/redis-streams-adapter": "~0.2.2", "@types/debug": "^4.1.12", "@types/expect.js": "^0.3.32", @@ -3659,28 +3659,22 @@ "link": true }, "node_modules/@socket.io/postgres-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@socket.io/postgres-adapter/-/postgres-adapter-0.1.1.tgz", - "integrity": "sha512-xUWeLC1Tz771XIEoJ0iuPTRUbEg8aQdyb1CSHXAT2y+WxvtGy7XxDN5kwkGSumyfxb+Qo8RSX8ZfTmbdx+gXXQ==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@socket.io/postgres-adapter/-/postgres-adapter-0.5.0.tgz", + "integrity": "sha512-s1vFsatB4lS429ZbeAi8ju+mZMgtgdSmi9UsZsdcEG++vVtX5z10yDEt4TV8saePscvvGjs6uXvJfMCxz8+M2Q==", "dev": true, "license": "MIT", "dependencies": { - "@msgpack/msgpack": "~2.7.0", - "debug": "~4.3.1", - "socket.io-adapter": "~2.3.0" + "@msgpack/msgpack": "~2.8.0", + "@types/pg": "^8.6.6", + "debug": "~4.3.4", + "pg": "^8.9.0" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@socket.io/postgres-adapter/node_modules/@msgpack/msgpack": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz", - "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "socket.io-adapter": "^2.5.4" } }, "node_modules/@socket.io/postgres-adapter/node_modules/debug": { @@ -3701,13 +3695,6 @@ } } }, - "node_modules/@socket.io/postgres-adapter/node_modules/socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@socket.io/postgres-emitter": { "resolved": "packages/socket.io-postgres-emitter", "link": true @@ -4310,6 +4297,22 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@wdio/cli/node_modules/chromium-bidi": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/@wdio/cli/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -4361,6 +4364,15 @@ "node": ">=16.9.0" } }, + "node_modules/@wdio/cli/node_modules/devtools-protocol": { + "version": "0.0.1608973", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", + "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, "node_modules/@wdio/cli/node_modules/edgedriver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-6.3.1.tgz", @@ -4739,6 +4751,27 @@ "node": ">=12" } }, + "node_modules/@wdio/cli/node_modules/puppeteer-core": { + "version": "24.43.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.43.1.tgz", + "integrity": "sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@puppeteer/browsers": "2.13.2", + "chromium-bidi": "14.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1608973", + "typed-query-selector": "^2.12.2", + "webdriver-bidi-protocol": "0.4.1", + "ws": "^8.20.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@wdio/cli/node_modules/read-pkg": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", @@ -5565,6 +5598,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@wdio/local-runner/node_modules/chromium-bidi": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/@wdio/local-runner/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -5616,6 +5665,15 @@ "node": ">=16.9.0" } }, + "node_modules/@wdio/local-runner/node_modules/devtools-protocol": { + "version": "0.0.1608973", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", + "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, "node_modules/@wdio/local-runner/node_modules/edgedriver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-6.3.1.tgz", @@ -5841,6 +5899,27 @@ "node": ">=12" } }, + "node_modules/@wdio/local-runner/node_modules/puppeteer-core": { + "version": "24.43.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.43.1.tgz", + "integrity": "sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@puppeteer/browsers": "2.13.2", + "chromium-bidi": "14.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1608973", + "typed-query-selector": "^2.12.2", + "webdriver-bidi-protocol": "0.4.1", + "ws": "^8.20.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@wdio/local-runner/node_modules/safaridriver": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safaridriver/-/safaridriver-1.0.1.tgz", @@ -6810,6 +6889,22 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@wdio/sauce-service/node_modules/chromium-bidi": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-14.0.0.tgz", + "integrity": "sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, "node_modules/@wdio/sauce-service/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -6861,6 +6956,15 @@ "node": ">=16.9.0" } }, + "node_modules/@wdio/sauce-service/node_modules/devtools-protocol": { + "version": "0.0.1608973", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz", + "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true + }, "node_modules/@wdio/sauce-service/node_modules/edgedriver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/edgedriver/-/edgedriver-6.3.1.tgz", @@ -7054,6 +7158,27 @@ "node": ">= 14" } }, + "node_modules/@wdio/sauce-service/node_modules/puppeteer-core": { + "version": "24.43.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.43.1.tgz", + "integrity": "sha512-T5ScUMAsmhdNbgDR41AGESYeS6V9MSgetkSnVhhW+gXvzC42VesKCn5ld87gAZDJ6vLHL9GkRvY9WtQWSnwFbw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "@puppeteer/browsers": "2.13.2", + "chromium-bidi": "14.0.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1608973", + "typed-query-selector": "^2.12.2", + "webdriver-bidi-protocol": "0.4.1", + "ws": "^8.20.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@wdio/sauce-service/node_modules/safaridriver": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safaridriver/-/safaridriver-1.0.1.tgz", @@ -18251,6 +18376,15 @@ "node": ">= 0.4" } }, + "node_modules/typed-query-selector": { + "version": "2.12.3", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.3.tgz", + "integrity": "sha512-/dtuMZyutHLlrxWhhC1uib00ELUr2dZ8C9B8YzZYsJmeE3V56OxRblrSM2UaF142pcMtak7ehZ6+poWGeehNIg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -18656,6 +18790,15 @@ "node": "^16.13 || >=18" } }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz", + "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "peer": true + }, "node_modules/webdriver/node_modules/@sindresorhus/is": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", @@ -19484,6 +19627,18 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "packages/engine.io": { "version": "6.6.11", "license": "MIT", @@ -19503,7 +19658,7 @@ } }, "packages/engine.io-client": { - "version": "6.6.6", + "version": "6.6.7", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -19529,7 +19684,7 @@ } }, "packages/socket.io": { - "version": "4.8.3", + "version": "4.8.4", "license": "MIT", "dependencies": { "accepts": "~1.3.4", @@ -19552,7 +19707,7 @@ } }, "packages/socket.io-client": { - "version": "4.8.3", + "version": "4.8.4", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", diff --git a/package.json b/package.json index 191f2dc6f1..72699c20d2 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-terser": "^1.0.0", "@sinonjs/fake-timers": "^11.2.2", - "@socket.io/postgres-adapter": "^0.1.0", + "@socket.io/postgres-adapter": "^0.5.0", "@socket.io/redis-streams-adapter": "~0.2.2", "@types/debug": "^4.1.12", "@types/expect.js": "^0.3.32", diff --git a/packages/socket.io-postgres-emitter/lib/index.ts b/packages/socket.io-postgres-emitter/lib/index.ts index 76ab377237..50a6e2f1bc 100644 --- a/packages/socket.io-postgres-emitter/lib/index.ts +++ b/packages/socket.io-postgres-emitter/lib/index.ts @@ -357,6 +357,8 @@ export class BroadcastOperator< private async publish(document: any) { document.uid = EMITTER_UID; + // the adapter routes incoming messages by their top-level `nsp` (since @socket.io/postgres-adapter@0.4.0) + document.nsp = this.emitter.nsp; try { if (