From bf5559150df054a4582baefae0c0d5cf265814f7 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Thu, 20 Nov 2025 14:09:02 -0800 Subject: [PATCH 1/3] feat: update waku dependencies in browser tests --- package-lock.json | 268 +++++++--------------------- packages/browser-tests/package.json | 6 +- packages/browser-tests/web/index.ts | 10 +- 3 files changed, 71 insertions(+), 213 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5af6364b73..df2a29dfd4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -105,9 +105,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", - "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -165,13 +165,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -243,17 +243,17 @@ "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", - "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.28.5", "@babel/helper-optimise-call-expression": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.3", + "@babel/traverse": "^7.28.5", "semver": "^6.3.1" }, "engines": { @@ -336,13 +336,13 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", - "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -362,14 +362,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -456,9 +456,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -501,12 +501,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -786,9 +786,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", - "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -801,9 +801,9 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz", - "integrity": "sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -811,7 +811,7 @@ "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -837,13 +837,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", - "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -853,9 +853,9 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", - "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1042,9 +1042,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz", - "integrity": "sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1147,13 +1147,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", - "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.5", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1" @@ -1196,17 +1196,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", + "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", + "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", + "@babel/types": "^7.28.5", "debug": "^4.3.1" }, "engines": { @@ -1214,13 +1214,13 @@ } }, "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -33430,9 +33430,9 @@ "version": "0.1.0", "dependencies": { "@playwright/test": "^1.51.1", - "@waku/discovery": "^0.0.11", - "@waku/interfaces": "^0.0.33", - "@waku/sdk": "^0.0.34", + "@waku/discovery": "^0.0.13", + "@waku/interfaces": "^0.0.34", + "@waku/sdk": "^0.0.36", "@waku/utils": "0.0.27", "cors": "^2.8.5", "dotenv-flow": "^0.4.0", @@ -33851,133 +33851,6 @@ "undici-types": "~6.19.2" } }, - "packages/browser-tests/node_modules/@waku/core": { - "version": "0.0.38", - "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.38.tgz", - "integrity": "sha512-Vm7o5uA7oQDc5tL6UHWUCsNqk8U7Dw+jAzbIjfsUJjNCtWov/8e1+ysrihcJfz0YmQnXfiuGA/rJSaJwMhtiNQ==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@libp2p/ping": "2.0.35", - "@noble/hashes": "^1.3.2", - "@waku/enr": "^0.0.32", - "@waku/interfaces": "0.0.33", - "@waku/proto": "0.0.13", - "@waku/utils": "0.0.26", - "debug": "^4.3.4", - "it-all": "^3.0.4", - "it-length-prefixed": "^9.0.4", - "it-pipe": "^3.0.1", - "uint8arraylist": "^2.4.3", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=22" - }, - "peerDependencies": { - "@multiformats/multiaddr": "^12.0.0", - "libp2p": "2.8.11" - }, - "peerDependenciesMeta": { - "@multiformats/multiaddr": { - "optional": true - }, - "libp2p": { - "optional": true - } - } - }, - "packages/browser-tests/node_modules/@waku/discovery": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@waku/discovery/-/discovery-0.0.11.tgz", - "integrity": "sha512-PeL1nECYHnkCAZlIAl72JBqnuKOABlaxU0LydhH6gyCuwfilw09aWD8JFk6oVwLyW2LhUpckkUWP8Gg18qIW8g==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@waku/core": "0.0.38", - "@waku/enr": "0.0.32", - "@waku/interfaces": "0.0.33", - "@waku/proto": "^0.0.13", - "@waku/utils": "0.0.26", - "debug": "^4.3.4", - "dns-over-http-resolver": "^3.0.8", - "hi-base32": "^0.5.1", - "uint8arrays": "^5.0.1" - }, - "engines": { - "node": ">=22" - } - }, - "packages/browser-tests/node_modules/@waku/enr": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.32.tgz", - "integrity": "sha512-bAC/uYV9L25mCjoFY0Z9dQzrZr8/OV60GhNGbbqvRi9uX/k6suiT4guWATzW01c3p1TsWEO1uJS2zDzSPvgcWg==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@ethersproject/rlp": "^5.7.0", - "@libp2p/crypto": "5.1.6", - "@libp2p/peer-id": "5.1.7", - "@multiformats/multiaddr": "^12.0.0", - "@noble/secp256k1": "^1.7.1", - "@waku/utils": "0.0.26", - "debug": "^4.3.4", - "js-sha3": "^0.9.2" - }, - "engines": { - "node": ">=22" - }, - "peerDependencies": { - "@multiformats/multiaddr": "^12.0.0" - }, - "peerDependenciesMeta": { - "@multiformats/multiaddr": { - "optional": true - } - } - }, - "packages/browser-tests/node_modules/@waku/interfaces": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.33.tgz", - "integrity": "sha512-+DAc6l/pxW+o8a9NQb3bjZ0auwItXGuamqJe8UmjJd5w70RVqNZgl8WNH9lAkOH2UswYBdQjKaS5VNxBMFj8ew==", - "license": "MIT OR Apache-2.0", - "engines": { - "node": ">=22" - } - }, - "packages/browser-tests/node_modules/@waku/proto": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.13.tgz", - "integrity": "sha512-t2ZFQ4TSJWsyljxBIRhA1lOvmgqDCReiX2GaRoJEXWnglOYxWlHzQ7rkIq1aONAiRqG6JWB4nfE4FcJVSE7TkA==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "protons-runtime": "^5.4.0" - }, - "engines": { - "node": ">=22" - } - }, - "packages/browser-tests/node_modules/@waku/sdk": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@waku/sdk/-/sdk-0.0.34.tgz", - "integrity": "sha512-1kLafimSX9QeSk2/W/V+ErcekZgMR/OmtqmtM78BhW7n+Yo9XpI1ZVsGGKIu3mXnt/mKgCt0Pg4mViEl4PIlIg==", - "license": "MIT OR Apache-2.0", - "dependencies": { - "@chainsafe/libp2p-noise": "16.1.3", - "@libp2p/bootstrap": "11.0.42", - "@libp2p/identify": "3.0.36", - "@libp2p/mplex": "11.0.42", - "@libp2p/ping": "2.0.35", - "@libp2p/websockets": "9.2.16", - "@noble/hashes": "^1.3.3", - "@waku/core": "0.0.38", - "@waku/discovery": "0.0.11", - "@waku/interfaces": "0.0.33", - "@waku/proto": "^0.0.13", - "@waku/utils": "0.0.26", - "libp2p": "2.8.11" - }, - "engines": { - "node": ">=22" - } - }, "packages/browser-tests/node_modules/dotenv": { "version": "7.0.0", "license": "BSD-2-Clause", @@ -34036,19 +33909,6 @@ "dev": true, "license": "MIT" }, - "packages/browser-tests/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "packages/build-utils": { "name": "@waku/build-utils", "version": "1.0.0", diff --git a/packages/browser-tests/package.json b/packages/browser-tests/package.json index 56e2e58a71..4fd2035373 100644 --- a/packages/browser-tests/package.json +++ b/packages/browser-tests/package.json @@ -18,9 +18,9 @@ }, "dependencies": { "@playwright/test": "^1.51.1", - "@waku/discovery": "^0.0.11", - "@waku/interfaces": "^0.0.33", - "@waku/sdk": "^0.0.34", + "@waku/discovery": "^0.0.13", + "@waku/interfaces": "^0.0.34", + "@waku/sdk": "^0.0.36", "@waku/utils": "0.0.27", "cors": "^2.8.5", "dotenv-flow": "^0.4.0", diff --git a/packages/browser-tests/web/index.ts b/packages/browser-tests/web/index.ts index df0e750a27..0375ac4aa7 100644 --- a/packages/browser-tests/web/index.ts +++ b/packages/browser-tests/web/index.ts @@ -15,8 +15,6 @@ import { CreateLibp2pOptions, IEncoder, ILightPush, - SDKProtocolResult, - Failure, } from "@waku/interfaces"; import { bootstrap } from "@libp2p/bootstrap"; import { EnrDecoder, TransportProtocol } from "@waku/enr"; @@ -36,12 +34,12 @@ export interface SerializableSDKProtocolResult { myPeerId?: string; } -function makeSerializable(result: SDKProtocolResult): SerializableSDKProtocolResult { +function makeSerializable(result: { successes: PeerId[], failures: Array<{ error: any, peerId?: PeerId }> }): SerializableSDKProtocolResult { return { ...result, successes: result.successes.map((peerId: PeerId) => peerId.toString()), - failures: result.failures.map((failure: Failure) => ({ - error: failure.error || failure.toString(), + failures: result.failures.map((failure) => ({ + error: String(failure.error), peerId: failure.peerId ? failure.peerId.toString() : undefined, })), }; @@ -158,7 +156,7 @@ export class WakuHeadless { lightPush: ILightPush, encoder: IEncoder, payload: Uint8Array, - ): Promise { + ) { return lightPush.send(encoder, { payload, timestamp: new Date(), From 89f4a6dbc22a39d8f239576b1fbbc90f30e6f929 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Mon, 1 Dec 2025 18:30:55 -0800 Subject: [PATCH 2/3] feat(browser-tests): use nwaku-style format for light push log --- packages/browser-tests/src/routes/waku.ts | 16 ++++++---- packages/browser-tests/web/index.ts | 38 +++++++++++++++++------ 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/packages/browser-tests/src/routes/waku.ts b/packages/browser-tests/src/routes/waku.ts index 61a9be9ee5..8ffeb55c3b 100644 --- a/packages/browser-tests/src/routes/waku.ts +++ b/packages/browser-tests/src/routes/waku.ts @@ -5,11 +5,7 @@ import { validators, errorHandlers, } from "../utils/endpoint-handler.js"; - -interface LightPushResult { - successes: string[]; - failures: Array<{ error: string; peerId?: string }>; -} +import type { SerializableSDKProtocolResult } from "../../web/index.js"; const log = new Logger("routes:waku"); const router = Router(); @@ -67,9 +63,17 @@ router.post( }, handleError: errorHandlers.lightpushError, transformResult: (result: unknown) => { - const lightPushResult = result as LightPushResult; + const lightPushResult = result as SerializableSDKProtocolResult; if (lightPushResult && lightPushResult.successes && lightPushResult.successes.length > 0) { log.info("[Server] Message successfully sent via v3 lightpush!"); + + const sentTime = Date.now() * 1000000; + const msgHash = lightPushResult.messageHash; + + const myPeerId = lightPushResult.myPeerId || 'unknown'; + lightPushResult.successes.forEach((peerId: string) => { + log.info(`publishWithConn my_peer_id=${myPeerId} peer_id=${peerId} msg_hash=${msgHash} sentTime=${sentTime}`); + }); return { success: true, result: lightPushResult, diff --git a/packages/browser-tests/web/index.ts b/packages/browser-tests/web/index.ts index 0375ac4aa7..b69c46f85f 100644 --- a/packages/browser-tests/web/index.ts +++ b/packages/browser-tests/web/index.ts @@ -15,6 +15,7 @@ import { CreateLibp2pOptions, IEncoder, ILightPush, + IMessage, } from "@waku/interfaces"; import { bootstrap } from "@libp2p/bootstrap"; import { EnrDecoder, TransportProtocol } from "@waku/enr"; @@ -22,6 +23,7 @@ import type { Multiaddr } from "@multiformats/multiaddr"; import type { ITestBrowser } from "../types/global.js"; import { Logger, StaticShardingRoutingInfo } from "@waku/utils"; import type { PeerId } from "@libp2p/interface"; +import { messageHashStr } from "@waku/core"; const log = new Logger("waku-headless"); @@ -32,6 +34,8 @@ export interface SerializableSDKProtocolResult { peerId?: string; }>; myPeerId?: string; + messageHash?: string; + timestamp?: number; } function makeSerializable(result: { successes: PeerId[], failures: Array<{ error: any, peerId?: PeerId }> }): SerializableSDKProtocolResult { @@ -155,12 +159,9 @@ export class WakuHeadless { private async send( lightPush: ILightPush, encoder: IEncoder, - payload: Uint8Array, + message: IMessage, ) { - return lightPush.send(encoder, { - payload, - timestamp: new Date(), - }); + return lightPush.send(encoder, message); } async pushMessageV3( @@ -192,6 +193,11 @@ export class WakuHeadless { processedPayload = new TextEncoder().encode(payload); } + const message: IMessage = { + payload: processedPayload, + timestamp: new Date(), + }; + try { const lightPush = this.waku.lightPush; if (!lightPush) { @@ -216,6 +222,11 @@ export class WakuHeadless { log.info("Pubsub topic:", pubsubTopic); log.info("Encoder pubsub topic:", encoder.pubsubTopic); + const protoObj = await encoder.toProtoObj(message); + if (!protoObj) { + throw new Error("Failed to convert message to proto object"); + } + if (pubsubTopic && pubsubTopic !== encoder.pubsubTopic) { log.warn( `Explicit pubsubTopic ${pubsubTopic} provided, but auto-sharding determined ${encoder.pubsubTopic}. Using auto-sharding.`, @@ -229,7 +240,7 @@ export class WakuHeadless { this.lightpushNode, ); if (preferredPeerId) { - result = await this.send(lightPush, encoder, processedPayload); + result = await this.send(lightPush, encoder, message); log.info("✅ Message sent via preferred lightpush node"); } else { throw new Error( @@ -241,13 +252,22 @@ export class WakuHeadless { "Couldn't send message via preferred lightpush node:", error, ); - result = await this.send(lightPush, encoder, processedPayload); + result = await this.send(lightPush, encoder, message); } } else { - result = await this.send(lightPush, encoder, processedPayload); + result = await this.send(lightPush, encoder, message); } - const serializableResult = makeSerializable(result); + let serializableResult = makeSerializable(result); + + serializableResult.myPeerId = this.waku.libp2p.peerId.toString(); + + const messageHash = '0x' + messageHashStr( + encoder.pubsubTopic, + protoObj, + ); + + serializableResult.messageHash = messageHash; return serializableResult; } catch (error) { From e8caeb1f0d82da0e0ff2c6aa661c8c2515936825 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Wed, 3 Dec 2025 20:02:07 -0800 Subject: [PATCH 3/3] fix: replace hardcoded error in lpv3 route --- packages/browser-tests/src/routes/waku.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser-tests/src/routes/waku.ts b/packages/browser-tests/src/routes/waku.ts index 8ffeb55c3b..fb3f071ad4 100644 --- a/packages/browser-tests/src/routes/waku.ts +++ b/packages/browser-tests/src/routes/waku.ts @@ -81,7 +81,7 @@ router.post( } else { return { success: false, - error: "Could not publish message: no suitable peers", + error: lightPushResult.failures[0].error, }; } },