diff --git a/.github/dictionary.txt b/.github/dictionary.txt index aab2e8f804..02aaa2027f 100644 --- a/.github/dictionary.txt +++ b/.github/dictionary.txt @@ -13,6 +13,7 @@ incrby microtask nothrow peerStore +prehash reprovide reprovided reprovider diff --git a/interop/package.json b/interop/package.json index d06bc3eeb8..cb7bd30e53 100644 --- a/interop/package.json +++ b/interop/package.json @@ -26,7 +26,7 @@ "@multiformats/multiaddr": "^13.0.1", "aegir": "^47.0.22", "libp2p": "^3.0.0", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "redis": "^4.7.1" } } diff --git a/packages/connection-encrypter-noise/package.json b/packages/connection-encrypter-noise/package.json index f016098248..60a34a1ad6 100644 --- a/packages/connection-encrypter-noise/package.json +++ b/packages/connection-encrypter-noise/package.json @@ -58,9 +58,9 @@ "@libp2p/interface": "^3.0.0", "@libp2p/peer-id": "^6.0.0", "@libp2p/utils": "^7.0.0", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "^1.9.7", - "@noble/hashes": "^1.8.0", + "@noble/ciphers": "^2.0.1", + "@noble/curves": "^2.0.1", + "@noble/hashes": "^2.0.1", "protons-runtime": "^5.6.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0", diff --git a/packages/connection-encrypter-noise/src/crypto/js.ts b/packages/connection-encrypter-noise/src/crypto/js.ts index 7f9ca1684c..76a01ff807 100644 --- a/packages/connection-encrypter-noise/src/crypto/js.ts +++ b/packages/connection-encrypter-noise/src/crypto/js.ts @@ -1,7 +1,7 @@ -import { chacha20poly1305 } from '@noble/ciphers/chacha' -import { x25519 } from '@noble/curves/ed25519' -import { extract, expand } from '@noble/hashes/hkdf' -import { sha256 } from '@noble/hashes/sha2' +import { chacha20poly1305 } from '@noble/ciphers/chacha.js' +import { x25519 } from '@noble/curves/ed25519.js' +import { extract, expand } from '@noble/hashes/hkdf.js' +import { sha256 } from '@noble/hashes/sha2.js' import type { ICryptoInterface } from '../crypto.js' import type { KeyPair } from '../types.js' import type { Uint8ArrayList } from 'uint8arraylist' diff --git a/packages/connection-encrypter-tls/package.json b/packages/connection-encrypter-tls/package.json index 58cb6d8c9d..7cecd8ef06 100644 --- a/packages/connection-encrypter-tls/package.json +++ b/packages/connection-encrypter-tls/package.json @@ -50,7 +50,7 @@ "@peculiar/webcrypto": "^1.5.0", "@peculiar/x509": "^1.13.0", "asn1js": "^3.0.6", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "protons-runtime": "^5.6.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" diff --git a/packages/crypto/package.json b/packages/crypto/package.json index 5912d5b54e..78880fef5f 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -86,8 +86,8 @@ }, "dependencies": { "@libp2p/interface": "^3.0.0", - "@noble/curves": "^1.9.7", - "@noble/hashes": "^1.8.0", + "@noble/curves": "^2.0.1", + "@noble/hashes": "^2.0.1", "multiformats": "^13.4.0", "protons-runtime": "^5.6.0", "uint8arraylist": "^2.4.8", diff --git a/packages/crypto/src/keys/ed25519/index.browser.ts b/packages/crypto/src/keys/ed25519/index.browser.ts index 2114f629b2..eddb2c14e1 100644 --- a/packages/crypto/src/keys/ed25519/index.browser.ts +++ b/packages/crypto/src/keys/ed25519/index.browser.ts @@ -1,4 +1,4 @@ -import { ed25519 as ed } from '@noble/curves/ed25519' +import { ed25519 as ed } from '@noble/curves/ed25519.js' import { toString as uint8arrayToString } from 'uint8arrays/to-string' import crypto from '../../webcrypto/index.js' import type { Uint8ArrayKeyPair } from '../interface.js' @@ -24,7 +24,7 @@ const webCryptoEd25519SupportedPromise = (async () => { export function generateKey (): Uint8ArrayKeyPair { // the actual private key (32 bytes) - const privateKeyRaw = ed.utils.randomPrivateKey() + const privateKeyRaw = ed.utils.randomSecretKey() const publicKey = ed.getPublicKey(privateKeyRaw) // concatenated the public key to the private key @@ -78,7 +78,7 @@ async function hashAndSignWebCrypto (privateKey: Uint8Array, msg: Uint8Array | U return new Uint8Array(sig, 0, sig.byteLength) } -function hashAndSignNoble (privateKey: Uint8Array, msg: Uint8Array | Uint8ArrayList): Uint8Array { +export function hashAndSignNoble (privateKey: Uint8Array, msg: Uint8Array | Uint8ArrayList): Uint8Array { const privateKeyRaw = privateKey.subarray(0, KEYS_BYTE_LENGTH) return ed.sign(msg instanceof Uint8Array ? msg : msg.subarray(), privateKeyRaw) @@ -106,7 +106,7 @@ async function hashAndVerifyWebCrypto (publicKey: Uint8Array, sig: Uint8Array, m throw new TypeError('WebCrypto does not support SharedArrayBuffer for Ed25519 keys') } -function hashAndVerifyNoble (publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): boolean { +export function hashAndVerifyNoble (publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): boolean { return ed.verify(sig, msg instanceof Uint8Array ? msg : msg.subarray(), publicKey) } diff --git a/packages/crypto/src/keys/rsa/utils.ts b/packages/crypto/src/keys/rsa/utils.ts index 08e665a5a5..d872473a1c 100644 --- a/packages/crypto/src/keys/rsa/utils.ts +++ b/packages/crypto/src/keys/rsa/utils.ts @@ -1,5 +1,5 @@ import { InvalidParametersError, InvalidPublicKeyError } from '@libp2p/interface' -import { sha256 } from '@noble/hashes/sha256' +import { sha256 } from '@noble/hashes/sha2.js' import { create } from 'multiformats/hashes/digest' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/crypto/src/keys/secp256k1/index.browser.ts b/packages/crypto/src/keys/secp256k1/index.browser.ts index 51e36e41d1..c0545c7589 100644 --- a/packages/crypto/src/keys/secp256k1/index.browser.ts +++ b/packages/crypto/src/keys/secp256k1/index.browser.ts @@ -1,4 +1,4 @@ -import { secp256k1 as secp } from '@noble/curves/secp256k1' +import { secp256k1 as secp } from '@noble/curves/secp256k1.js' import { sha256 } from 'multiformats/hashes/sha2' import { SigningError, VerificationError } from '../../errors.js' import { isPromise } from '../../util.js' @@ -21,7 +21,10 @@ export function hashAndSign (key: Uint8Array, msg: Uint8Array | Uint8ArrayList, return p .then(({ digest }) => { options?.signal?.throwIfAborted() - return secp.sign(digest, key).toDERRawBytes() + return secp.sign(digest, key, { + prehash: false, + format: 'der' + }) }) .catch(err => { if (err.name === 'AbortError') { @@ -33,7 +36,10 @@ export function hashAndSign (key: Uint8Array, msg: Uint8Array | Uint8ArrayList, } try { - return secp.sign(p.digest, key).toDERRawBytes() + return secp.sign(p.digest, key, { + prehash: false, + format: 'der' + }) } catch (err) { throw new SigningError(String(err)) } @@ -49,7 +55,10 @@ export function hashAndVerify (key: Uint8Array, sig: Uint8Array, msg: Uint8Array return p .then(({ digest }) => { options?.signal?.throwIfAborted() - return secp.verify(sig, digest, key) + return secp.verify(sig, digest, key, { + prehash: false, + format: 'der' + }) }) .catch(err => { if (err.name === 'AbortError') { @@ -62,7 +71,10 @@ export function hashAndVerify (key: Uint8Array, sig: Uint8Array, msg: Uint8Array try { options?.signal?.throwIfAborted() - return secp.verify(sig, p.digest, key) + return secp.verify(sig, p.digest, key, { + prehash: false, + format: 'der' + }) } catch (err) { throw new VerificationError(String(err)) } diff --git a/packages/crypto/src/keys/secp256k1/index.ts b/packages/crypto/src/keys/secp256k1/index.ts index cc55521ed6..f97c7b2dc3 100644 --- a/packages/crypto/src/keys/secp256k1/index.ts +++ b/packages/crypto/src/keys/secp256k1/index.ts @@ -1,5 +1,5 @@ import crypto from 'node:crypto' -import { secp256k1 as secp } from '@noble/curves/secp256k1' +import { secp256k1 as secp } from '@noble/curves/secp256k1.js' import { SigningError, VerificationError } from '../../errors.js' import type { AbortOptions } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' @@ -29,8 +29,10 @@ export function hashAndSign (key: Uint8Array, msg: Uint8Array | Uint8ArrayList, const digest = hash.digest() try { - const signature = secp.sign(digest, key) - return signature.toDERRawBytes() + return secp.sign(digest, key, { + prehash: false, + format: 'der' + }) } catch (err) { throw new SigningError(String(err)) } @@ -54,7 +56,10 @@ export function hashAndVerify (key: Uint8Array, sig: Uint8Array, msg: Uint8Array const digest = hash.digest() try { - return secp.verify(sig, digest, key) + return secp.verify(sig, digest, key, { + prehash: false, + format: 'der' + }) } catch (err) { throw new VerificationError(String(err)) } diff --git a/packages/crypto/src/keys/secp256k1/utils.ts b/packages/crypto/src/keys/secp256k1/utils.ts index a6f3b7e54c..5eb58d3113 100644 --- a/packages/crypto/src/keys/secp256k1/utils.ts +++ b/packages/crypto/src/keys/secp256k1/utils.ts @@ -1,5 +1,5 @@ import { InvalidPrivateKeyError, InvalidPublicKeyError } from '@libp2p/interface' -import { secp256k1 as secp } from '@noble/curves/secp256k1' +import { secp256k1 as secp } from '@noble/curves/secp256k1.js' import { Secp256k1PublicKey as Secp256k1PublicKeyClass, Secp256k1PrivateKey as Secp256k1PrivateKeyClass } from './secp256k1.js' import type { Secp256k1PublicKey, Secp256k1PrivateKey } from '@libp2p/interface' @@ -21,13 +21,11 @@ export async function generateSecp256k1KeyPair (): Promise } export function compressSecp256k1PublicKey (key: Uint8Array): Uint8Array { - const point = secp.ProjectivePoint.fromHex(key).toRawBytes(true) - return point + return secp.Point.fromBytes(key).toBytes() } export function decompressSecp256k1PublicKey (key: Uint8Array): Uint8Array { - const point = secp.ProjectivePoint.fromHex(key).toRawBytes(false) - return point + return secp.Point.fromBytes(key).toBytes(false) } export function validateSecp256k1PrivateKey (key: Uint8Array): Uint8Array { @@ -42,7 +40,7 @@ export function validateSecp256k1PrivateKey (key: Uint8Array): Uint8Array { export function validateSecp256k1PublicKey (key: Uint8Array): Uint8Array { try { - secp.ProjectivePoint.fromHex(key) + secp.Point.fromBytes(key) return key } catch (err) { @@ -59,5 +57,5 @@ export function computeSecp256k1PublicKey (privateKey: Uint8Array): Uint8Array { } export function generateSecp256k1PrivateKey (): Uint8Array { - return secp.utils.randomPrivateKey() + return secp.utils.randomSecretKey() } diff --git a/packages/crypto/src/pbkdf2.ts b/packages/crypto/src/pbkdf2.ts index a90dafc7bf..0562d63327 100644 --- a/packages/crypto/src/pbkdf2.ts +++ b/packages/crypto/src/pbkdf2.ts @@ -1,8 +1,7 @@ import { InvalidParametersError } from '@libp2p/interface' -import { pbkdf2 as pbkdf2Sync } from '@noble/hashes/pbkdf2' -import { sha1 } from '@noble/hashes/sha1' -import { sha256 } from '@noble/hashes/sha256' -import { sha512 } from '@noble/hashes/sha512' +import { sha1 } from '@noble/hashes/legacy.js' +import { pbkdf2 as pbkdf2Sync } from '@noble/hashes/pbkdf2.js' +import { sha256, sha512 } from '@noble/hashes/sha2.js' import { base64 } from 'multiformats/bases/base64' /** diff --git a/packages/crypto/src/random-bytes.ts b/packages/crypto/src/random-bytes.ts index e1a3d208fc..f74c11c248 100644 --- a/packages/crypto/src/random-bytes.ts +++ b/packages/crypto/src/random-bytes.ts @@ -1,5 +1,5 @@ import { InvalidParametersError } from '@libp2p/interface' -import { randomBytes as randB } from '@noble/hashes/utils' +import { randomBytes as randB } from '@noble/hashes/utils.js' /** * Generates a Uint8Array with length `number` populated by random bytes diff --git a/packages/crypto/test/keys/ed25519.spec.ts b/packages/crypto/test/keys/ed25519.spec.ts index 3f73ef8a2b..aa78282029 100644 --- a/packages/crypto/test/keys/ed25519.spec.ts +++ b/packages/crypto/test/keys/ed25519.spec.ts @@ -4,6 +4,7 @@ import { expect } from 'aegir/chai' import { Uint8ArrayList } from 'uint8arraylist' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { randomBytes } from '../../src/index.js' +import { hashAndSignNoble, hashAndVerifyNoble } from '../../src/keys/ed25519/index.browser.ts' import { unmarshalEd25519PrivateKey, unmarshalEd25519PublicKey } from '../../src/keys/ed25519/utils.js' import { generateKeyPair, generateKeyPairFromSeed, privateKeyFromProtobuf, privateKeyFromRaw, publicKeyFromProtobuf, publicKeyFromRaw, privateKeyToCryptoKeyPair } from '../../src/keys/index.js' import fixtures from '../fixtures/go-key-ed25519.js' @@ -61,6 +62,20 @@ describe('ed25519', function () { expect(res).to.be.be.true() }) + it('signs using noble', async () => { + const text = randomBytes(512) + const sig = await key.sign(text) + const res = hashAndVerifyNoble(key.publicKey.raw, sig, text) + expect(res).to.be.be.true() + }) + + it('verifies using noble', async () => { + const text = randomBytes(512) + const sig = hashAndSignNoble(key.raw, text) + const res = await key.publicKey.verify(text, sig) + expect(res).to.be.be.true() + }) + it('signs a list', async () => { const text = new Uint8ArrayList( randomBytes(512), @@ -205,13 +220,18 @@ describe('ed25519', function () { }) describe('go interop', () => { - // @ts-check it('verifies with data from go', async () => { const key = publicKeyFromProtobuf(fixtures.verify.publicKey) const ok = await key.verify(fixtures.verify.data, fixtures.verify.signature) expect(ok).to.be.true() }) + it('verifies with data from go using noble', async () => { + const key = publicKeyFromProtobuf(fixtures.verify.publicKey) + const ok = hashAndVerifyNoble(key.raw, fixtures.verify.signature, fixtures.verify.data) + expect(ok).to.be.true() + }) + it('does not include the redundant public key when marshalling privatekey', async () => { const key = privateKeyFromProtobuf(fixtures.redundantPubKey.privateKey) const bytes = key.raw @@ -231,6 +251,12 @@ describe('ed25519', function () { expect(sig).to.eql(fixtures.verify.signature) }) + it('generates the same signature as go using nobel', async () => { + const key = privateKeyFromProtobuf(fixtures.verify.privateKey) + const sig = hashAndSignNoble(key.raw, fixtures.verify.data) + expect(sig).to.eql(fixtures.verify.signature) + }) + it('generates the same signature as go with redundant public key', async () => { const key = privateKeyFromProtobuf(fixtures.redundantPubKey.privateKey) const sig = await key.sign(fixtures.redundantPubKey.data) diff --git a/packages/crypto/test/keys/rsa.spec.ts b/packages/crypto/test/keys/rsa.spec.ts index 37147403dc..72eead835f 100644 --- a/packages/crypto/test/keys/rsa.spec.ts +++ b/packages/crypto/test/keys/rsa.spec.ts @@ -1,7 +1,7 @@ /* eslint max-nested-callbacks: ["error", 8] */ /* eslint-env mocha */ import { isPrivateKey, isPublicKey } from '@libp2p/interface' -import { sha256 } from '@noble/hashes/sha256' +import { sha256 } from '@noble/hashes/sha2.js' import { expect } from 'aegir/chai' import * as asn1js from 'asn1js' import { create } from 'multiformats/hashes/digest' diff --git a/packages/floodsub/package.json b/packages/floodsub/package.json index dce2b4a324..282655de14 100644 --- a/packages/floodsub/package.json +++ b/packages/floodsub/package.json @@ -77,7 +77,7 @@ "aegir": "^47.0.22", "delay": "^6.0.0", "it-all": "^3.0.9", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "protons": "^7.7.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0" diff --git a/packages/gossipsub/package.json b/packages/gossipsub/package.json index 45f64e573f..9ce1cdc728 100644 --- a/packages/gossipsub/package.json +++ b/packages/gossipsub/package.json @@ -102,9 +102,9 @@ "it-all": "^3.0.6", "mkdirp": "^3.0.1", "p-defer": "^4.0.0", - "p-event": "^6.0.0", + "p-event": "^7.0.0", "p-retry": "^7.0.0", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "protons": "^7.5.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 079e79a1b0..7f4fafe7a9 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -62,9 +62,9 @@ "main-event": "^1.0.1", "multiformats": "^13.4.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "p-retry": "^7.0.0", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", "uint8arraylist": "^2.4.8", diff --git a/packages/interface-compliance-tests/package.json b/packages/interface-compliance-tests/package.json index 82c07e5e8c..746e757ef4 100644 --- a/packages/interface-compliance-tests/package.json +++ b/packages/interface-compliance-tests/package.json @@ -101,9 +101,9 @@ "it-to-buffer": "^4.0.10", "libp2p": "^3.0.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "p-retry": "^7.0.0", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "protons-runtime": "^5.6.0", "race-signal": "^2.0.0", "sinon": "^21.0.0", diff --git a/packages/interop/package.json b/packages/interop/package.json index 5a233b3862..24e70abd9e 100644 --- a/packages/interop/package.json +++ b/packages/interop/package.json @@ -51,7 +51,7 @@ "it-first": "^3.0.9", "multiformats": "^13.4.0", "p-retry": "^7.0.0", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "protons-runtime": "^5.6.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index 5915fd50b8..31eb82f40d 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -71,7 +71,7 @@ "main-event": "^1.0.1", "multiformats": "^13.4.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "progress-events": "^1.0.1", "protons-runtime": "^5.6.0", "race-signal": "^2.0.0", diff --git a/packages/keychain/package.json b/packages/keychain/package.json index 204430f5b7..646dc27b04 100644 --- a/packages/keychain/package.json +++ b/packages/keychain/package.json @@ -54,7 +54,7 @@ "dependencies": { "@libp2p/crypto": "^5.1.9", "@libp2p/interface": "^3.0.0", - "@noble/hashes": "^1.8.0", + "@noble/hashes": "^2.0.1", "asn1js": "^3.0.6", "interface-datastore": "^8.3.2", "multiformats": "^13.4.0", diff --git a/packages/keychain/src/utils/export.ts b/packages/keychain/src/utils/export.ts index 6e7d577524..ad390808bc 100644 --- a/packages/keychain/src/utils/export.ts +++ b/packages/keychain/src/utils/export.ts @@ -3,8 +3,8 @@ import { AES_GCM } from '@libp2p/crypto/ciphers' import { privateKeyToProtobuf } from '@libp2p/crypto/keys' import webcrypto from '@libp2p/crypto/webcrypto' import { InvalidParametersError, UnsupportedKeyTypeError } from '@libp2p/interface' -import { pbkdf2Async } from '@noble/hashes/pbkdf2' -import { sha512 } from '@noble/hashes/sha512' +import { pbkdf2Async } from '@noble/hashes/pbkdf2.js' +import { sha512 } from '@noble/hashes/sha2.js' import * as asn1js from 'asn1js' import { base64 } from 'multiformats/bases/base64' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' diff --git a/packages/keychain/src/utils/import.ts b/packages/keychain/src/utils/import.ts index ed5d54b262..c44a1cb450 100644 --- a/packages/keychain/src/utils/import.ts +++ b/packages/keychain/src/utils/import.ts @@ -2,8 +2,8 @@ import { AES_GCM } from '@libp2p/crypto/ciphers' import { privateKeyFromProtobuf, privateKeyFromRaw } from '@libp2p/crypto/keys' import webcrypto from '@libp2p/crypto/webcrypto' import { InvalidParametersError } from '@libp2p/interface' -import { pbkdf2Async } from '@noble/hashes/pbkdf2' -import { sha512 } from '@noble/hashes/sha512' +import { pbkdf2Async } from '@noble/hashes/pbkdf2.js' +import { sha512 } from '@noble/hashes/sha2.js' import * as asn1js from 'asn1js' import { base64 } from 'multiformats/bases/base64' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' diff --git a/packages/libp2p-daemon-client/package.json b/packages/libp2p-daemon-client/package.json index 7358768c39..646553c97e 100644 --- a/packages/libp2p-daemon-client/package.json +++ b/packages/libp2p-daemon-client/package.json @@ -57,7 +57,7 @@ "@libp2p/kad-dht": "^16.0.0", "aegir": "^47.0.22", "it-all": "^3.0.9", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", "uint8arraylist": "^2.4.8", diff --git a/packages/libp2p-daemon-server/package.json b/packages/libp2p-daemon-server/package.json index 454e4f9b4d..a7f0f4b434 100644 --- a/packages/libp2p-daemon-server/package.json +++ b/packages/libp2p-daemon-server/package.json @@ -56,7 +56,7 @@ "it-length-prefixed": "^10.0.1", "it-pushable": "^3.2.3", "multiformats": "^13.4.0", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "uint8arrays": "^5.1.0" }, "devDependencies": { diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index ad5e8200e1..79fbaa598e 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -100,7 +100,7 @@ "main-event": "^1.0.1", "multiformats": "^13.4.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "p-retry": "^7.0.0", "progress-events": "^1.0.1", "race-signal": "^2.0.0", @@ -114,7 +114,7 @@ "it-length-prefixed": "^10.0.1", "it-map": "^3.1.4", "it-take": "^3.0.9", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", "uint8arraylist": "^2.4.8", diff --git a/packages/metrics-prometheus/package.json b/packages/metrics-prometheus/package.json index 687f3131ac..e2f767f08f 100644 --- a/packages/metrics-prometheus/package.json +++ b/packages/metrics-prometheus/package.json @@ -48,7 +48,7 @@ "@libp2p/logger": "^6.0.0", "@libp2p/utils": "^7.0.0", "aegir": "^47.0.22", - "p-event": "^6.0.1" + "p-event": "^7.0.0" }, "sideEffects": false } diff --git a/packages/multistream-select/package.json b/packages/multistream-select/package.json index 3a321f7008..b5412465e9 100644 --- a/packages/multistream-select/package.json +++ b/packages/multistream-select/package.json @@ -63,8 +63,8 @@ "it-all": "^3.0.9", "it-drain": "^3.0.10", "it-pipe": "^3.0.1", - "p-event": "^6.0.1", - "p-timeout": "^6.1.4" + "p-event": "^7.0.0", + "p-timeout": "^7.0.0" }, "sideEffects": false } diff --git a/packages/peer-discovery-mdns/package.json b/packages/peer-discovery-mdns/package.json index 5474e9ebca..2891902361 100644 --- a/packages/peer-discovery-mdns/package.json +++ b/packages/peer-discovery-mdns/package.json @@ -58,8 +58,8 @@ "@libp2p/interface-compliance-tests": "^7.0.0", "@libp2p/logger": "^6.0.0", "aegir": "^47.0.22", - "p-event": "^6.0.1", - "p-wait-for": "^5.0.2", + "p-event": "^7.0.0", + "p-wait-for": "^6.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/peer-store/package.json b/packages/peer-store/package.json index 361ea4b4c1..8f3e78896f 100644 --- a/packages/peer-store/package.json +++ b/packages/peer-store/package.json @@ -71,7 +71,7 @@ "datastore-core": "^10.0.4", "delay": "^6.0.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "protons": "^7.7.0", "sinon": "^21.0.0" }, diff --git a/packages/pnet/package.json b/packages/pnet/package.json index e5859fcec3..56e2ceecc6 100644 --- a/packages/pnet/package.json +++ b/packages/pnet/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@types/xsalsa20": "^1.1.3", "aegir": "^47.0.22", - "p-event": "^6.0.1" + "p-event": "^7.0.0" }, "sideEffects": false } diff --git a/packages/protocol-echo/package.json b/packages/protocol-echo/package.json index 672dcbf860..9eed166eba 100644 --- a/packages/protocol-echo/package.json +++ b/packages/protocol-echo/package.json @@ -48,7 +48,7 @@ "@libp2p/interface-internal": "^3.0.0", "@libp2p/utils": "^7.0.0", "@multiformats/multiaddr": "^13.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "uint8arraylist": "^2.4.8" }, "devDependencies": { diff --git a/packages/protocol-perf/package.json b/packages/protocol-perf/package.json index cb38f5c21e..477e4d378d 100644 --- a/packages/protocol-perf/package.json +++ b/packages/protocol-perf/package.json @@ -49,7 +49,7 @@ "@libp2p/interface-internal": "^3.0.0", "@multiformats/multiaddr": "^13.0.1", "it-pushable": "^3.2.3", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "uint8arraylist": "^2.4.8" }, "devDependencies": { diff --git a/packages/protocol-ping/package.json b/packages/protocol-ping/package.json index dc6f78503f..522d0c7fee 100644 --- a/packages/protocol-ping/package.json +++ b/packages/protocol-ping/package.json @@ -47,7 +47,7 @@ "@libp2p/interface": "^3.0.0", "@libp2p/interface-internal": "^3.0.0", "@multiformats/multiaddr": "^13.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "race-signal": "^2.0.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" diff --git a/packages/stream-multiplexer-mplex/package.json b/packages/stream-multiplexer-mplex/package.json index 7d54783de9..0b1c6bd06d 100644 --- a/packages/stream-multiplexer-mplex/package.json +++ b/packages/stream-multiplexer-mplex/package.json @@ -74,7 +74,7 @@ "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "it-stream-types": "^2.0.2", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "random-int": "^3.0.0" }, "sideEffects": false diff --git a/packages/stream-multiplexer-yamux/package.json b/packages/stream-multiplexer-yamux/package.json index 84e05227bd..dd2cc2900c 100644 --- a/packages/stream-multiplexer-yamux/package.json +++ b/packages/stream-multiplexer-yamux/package.json @@ -90,6 +90,6 @@ "it-all": "^3.0.9", "it-drain": "^3.0.10", "it-pushable": "^3.2.3", - "p-event": "^6.0.1" + "p-event": "^7.0.0" } } diff --git a/packages/transport-circuit-relay-v2/package.json b/packages/transport-circuit-relay-v2/package.json index 92d56d02c4..a71f20b160 100644 --- a/packages/transport-circuit-relay-v2/package.json +++ b/packages/transport-circuit-relay-v2/package.json @@ -70,8 +70,8 @@ "delay": "^6.0.0", "it-all": "^3.0.9", "it-protobuf-stream": "^2.0.3", - "p-event": "^6.0.1", - "p-wait-for": "^5.0.2", + "p-event": "^7.0.0", + "p-wait-for": "^6.0.0", "protons": "^7.7.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0" diff --git a/packages/transport-tcp/package.json b/packages/transport-tcp/package.json index 582cc4367c..63c1363cab 100644 --- a/packages/transport-tcp/package.json +++ b/packages/transport-tcp/package.json @@ -59,7 +59,7 @@ "@multiformats/multiaddr-matcher": "^3.0.1", "@types/sinon": "^17.0.4", "main-event": "^1.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" }, @@ -68,7 +68,7 @@ "aegir": "^47.0.22", "delay": "^6.0.0", "p-defer": "^4.0.1", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", "wherearewe": "^2.0.1" diff --git a/packages/transport-tcp/test/socket-to-conn.spec.ts b/packages/transport-tcp/test/socket-to-conn.spec.ts index 57db3d86e2..17fcd2aae3 100644 --- a/packages/transport-tcp/test/socket-to-conn.spec.ts +++ b/packages/transport-tcp/test/socket-to-conn.spec.ts @@ -34,7 +34,7 @@ async function setup (opts?: TestOptions): Promise { const [ serverSocket ] = await Promise.all([ - pEvent(server, 'connection'), + pEvent<'connection', Socket>(server, 'connection'), pEvent(client, 'connect') ]) diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index 53aa57904e..9faed4a1de 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -67,9 +67,9 @@ "multiformats": "^13.4.0", "node-datachannel": "^0.29.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", - "p-timeout": "^6.1.4", - "p-wait-for": "^5.0.2", + "p-event": "^7.0.0", + "p-timeout": "^7.0.0", + "p-wait-for": "^6.0.0", "progress-events": "^1.0.1", "protons-runtime": "^5.6.0", "race-signal": "^2.0.0", diff --git a/packages/transport-websockets/package.json b/packages/transport-websockets/package.json index f7548f62b5..0fae48eeb6 100644 --- a/packages/transport-websockets/package.json +++ b/packages/transport-websockets/package.json @@ -75,7 +75,7 @@ "@types/ws": "^8.18.1", "it-ws": "^6.1.5", "main-event": "^1.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0", @@ -85,7 +85,7 @@ "@libp2p/logger": "^6.0.0", "aegir": "^47.0.22", "is-loopback-addr": "^2.0.2", - "p-wait-for": "^5.0.2", + "p-wait-for": "^6.0.0", "sinon": "^21.0.0", "sinon-ts": "^2.0.0", "undici": "^7.15.0" diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index 0de0698a6c..04b7c64d64 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -61,14 +61,14 @@ "@libp2p/daemon-client": "^10.0.0", "@libp2p/logger": "^6.0.0", "@libp2p/ping": "^3.0.0", - "@noble/hashes": "^1.8.0", + "@noble/hashes": "^2.0.1", "aegir": "^47.0.22", "execa": "^9.6.0", "go-libp2p": "^1.6.0", "it-all": "^3.0.9", "libp2p": "^3.0.0", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "sinon-ts": "^2.0.0" }, "browser": { diff --git a/packages/transport-webtransport/test/fixtures/random-bytes.ts b/packages/transport-webtransport/test/fixtures/random-bytes.ts index f7339ae8c5..315e05d103 100644 --- a/packages/transport-webtransport/test/fixtures/random-bytes.ts +++ b/packages/transport-webtransport/test/fixtures/random-bytes.ts @@ -1,5 +1,5 @@ import { InvalidParametersError } from '@libp2p/interface' -import { randomBytes as randB } from '@noble/hashes/utils' +import { randomBytes as randB } from '@noble/hashes/utils.js' /** * Generates a Uint8Array with length `number` populated by random bytes diff --git a/packages/utils/package.json b/packages/utils/package.json index 62047809bc..4d3762921d 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -62,7 +62,7 @@ "main-event": "^1.0.1", "netmask": "^2.0.2", "p-defer": "^4.0.1", - "p-event": "^6.0.1", + "p-event": "^7.0.0", "race-signal": "^2.0.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8",