From dd88363d98c366f556ec18827c5776125b7768d3 Mon Sep 17 00:00:00 2001 From: xavix-yo Date: Sun, 19 Jul 2026 10:16:37 +0100 Subject: [PATCH] whatsapp: fix crypto.subtle polyfill for Node 18, bump to v2.0.1 --- connectors/connectors.json | 4 ++-- connectors/whatsapp/connector.json | 2 +- connectors/whatsapp/index.js | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/connectors/connectors.json b/connectors/connectors.json index 006be94..e9b9466 100644 --- a/connectors/connectors.json +++ b/connectors/connectors.json @@ -314,8 +314,8 @@ }, "folder": "whatsapp", "files": [ - {"path": "connector.json", "sha256": "e6b20b9519e19f13297bc1361b342b74bedf234470dbb43d19b39622cd388a4c", "size": 1163}, - {"path": "index.js", "sha256": "38be3cc9a5e9ecf7193f917fc3b90e40aeca9753d98d69f27f8155f5f980b4c0", "size": 21258}, + {"path": "connector.json", "sha256": "716452f48594a4d9d960de85c0bd4d4f08c33673c6386959b1ef64afc53a6544", "size": 1163}, + {"path": "index.js", "sha256": "1627f115a1bfb5a954abd412dba76c38f7202640258d3cbc08c313c00446a14a", "size": 21668}, {"path": "package.json", "sha256": "b99a9dccfd286b59e8482076129f2e40f7b339eba6c3db2a744887d65bd4964e", "size": 302}, {"path": "icon_sm.png", "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", "size": 74223}, {"path": "icon_lg.png", "sha256": "1128f198b2a07041f2e0c8c330fc998d29c310ec3225f866073b9e921aa59b5f", "size": 74223} diff --git a/connectors/whatsapp/connector.json b/connectors/whatsapp/connector.json index b463f65..a932bd9 100644 --- a/connectors/whatsapp/connector.json +++ b/connectors/whatsapp/connector.json @@ -1,7 +1,7 @@ { "id": "whatsapp", "name": "WhatsApp", - "version": "2.0.0", + "version": "2.0.1", "type": "mcp_local", "scope": "user", "launch_command": "node index.js", diff --git a/connectors/whatsapp/index.js b/connectors/whatsapp/index.js index 430dfe0..638a993 100644 --- a/connectors/whatsapp/index.js +++ b/connectors/whatsapp/index.js @@ -24,6 +24,13 @@ * token — so there is nothing to paste back, only a QR to scan. */ +// Baileys uses the Web Crypto global (`crypto.subtle`), which Node only exposes as +// `globalThis.crypto` from v20+. The container ships Node 18 (Debian bookworm), so +// polyfill it from `node:crypto` — without this, the socket dies on connect with +// "crypto is not defined" and never reaches the QR. +const nodeCrypto = require('crypto'); +if (!globalThis.crypto) globalThis.crypto = nodeCrypto.webcrypto; + const fs = require('fs'); const path = require('path'); const readline = require('readline');