From 8fd4b249de3b54772a3dbc38bb1ca872d2c3b743 Mon Sep 17 00:00:00 2001 From: Bas van den Aakster Date: Sun, 14 Dec 2025 14:05:36 +0100 Subject: [PATCH] Fix EventEmitter for cross-platform compatibility (v0.18.3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace Node.js 'events' module with 'eventemitter3' package to ensure compatibility in both browser and Node.js environments. Changes: - Replace import from 'events' to 'eventemitter3' - Add eventemitter3 as dependency - Remove @types/node (no longer needed) Fixes browser bundling error where 'events' module was not available. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- package-lock.json | 16 +++++++++++++--- package.json | 4 ++-- src/rondevu.ts | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index c80ad9e..0235eb8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,11 +9,11 @@ "version": "0.18.3", "license": "MIT", "dependencies": { - "@noble/ed25519": "^3.0.0" + "@noble/ed25519": "^3.0.0", + "eventemitter3": "^5.0.1" }, "devDependencies": { "@eslint/js": "^9.39.1", - "@types/node": "^25.0.2", "@typescript-eslint/eslint-plugin": "^8.48.1", "@typescript-eslint/parser": "^8.48.1", "eslint": "^9.39.1", @@ -1082,6 +1082,8 @@ "integrity": "sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -2001,6 +2003,12 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2844,7 +2852,9 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/update-browserslist-db": { "version": "1.2.2", diff --git a/package.json b/package.json index 03cb386..98b6513 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "license": "MIT", "devDependencies": { "@eslint/js": "^9.39.1", - "@types/node": "^25.0.2", "@typescript-eslint/eslint-plugin": "^8.48.1", "@typescript-eslint/parser": "^8.48.1", "eslint": "^9.39.1", @@ -42,6 +41,7 @@ "README.md" ], "dependencies": { - "@noble/ed25519": "^3.0.0" + "@noble/ed25519": "^3.0.0", + "eventemitter3": "^5.0.1" } } diff --git a/src/rondevu.ts b/src/rondevu.ts index 9522a93..ba0b6b2 100644 --- a/src/rondevu.ts +++ b/src/rondevu.ts @@ -1,6 +1,6 @@ import { RondevuAPI, Keypair, IceCandidate, BatcherOptions } from './api.js' import { CryptoAdapter } from './crypto-adapter.js' -import { EventEmitter } from 'events' +import { EventEmitter } from 'eventemitter3' // ICE server preset names export type IceServerPreset = 'ipv4-turn' | 'hostname-turns' | 'google-stun' | 'relay-only'