feat!: @waku/discovery (#1876)

* initialise the new package

* move dns-discovery

* move peer-exchange

* move local-peer-cache-discovery

* add polyfill for node - dynamic import

* update size-limit

* update release-please

* chore: update pacakge desc

* chore: cleanup

* add peer-exchange and local peer cache to size-limit
This commit is contained in:
Danish Arora 2024-03-12 15:56:49 +05:30 committed by GitHub
parent 8f867404e3
commit 1e86c3d63e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
62 changed files with 218 additions and 1775 deletions

2
.gitignore vendored
View File

@ -13,4 +13,4 @@ test-results
playwright-report
example
allure-results
packages/local-peer-cache-discovery/mock_local_storage
packages/discovery/mock_local_storage

View File

@ -4,11 +4,8 @@
"packages/interfaces": "0.0.22",
"packages/message-hash": "0.1.11",
"packages/enr": "0.0.21",
"packages/peer-exchange": "0.0.20",
"packages/core": "0.0.27",
"packages/dns-discovery": "0.0.21",
"packages/message-encryption": "0.0.25",
"packages/relay": "0.0.10",
"packages/sdk": "0.0.23",
"packages/local-peer-cache-discovery": "1.0.0"
"packages/sdk": "0.0.23"
}

View File

@ -24,9 +24,19 @@ module.exports = [
},
{
name: "DNS discovery",
path: "packages/dns-discovery/bundle/index.js",
path: "packages/discovery/bundle/index.js",
import: "{ PeerDiscoveryDns }",
},
{
name: "Peer Exchange discovery",
path: "packages/discovery/bundle/index.js",
import: "{ wakuPeerExchangeDiscovery }",
},
{
name: "Local Peer Cache Discovery",
path: "packages/discovery/bundle/index.js",
import: "{ wakuLocalPeerCacheDiscovery }",
},
{
name: "Privacy preserving protocols",
path: "packages/relay/bundle/index.js",

953
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,7 @@
"packages/enr",
"packages/core",
"packages/relay",
"packages/peer-exchange",
"packages/dns-discovery",
"packages/local-peer-cache-discovery",
"packages/discovery",
"packages/message-encryption",
"packages/sdk",
"packages/tests",

View File

@ -1,7 +1,7 @@
{
"name": "@waku/dns-discovery",
"version": "0.0.21",
"description": "DNS Peer Discovery (EIP-1459)",
"name": "@waku/discovery",
"version": "0.0.1",
"description": "Contains various discovery mechanisms: DNS Discovery (EIP-1459, Peer Exchange, Local Peer Cache Discovery.",
"types": "./dist/index.d.ts",
"module": "./dist/index.js",
"exports": {
@ -12,7 +12,7 @@
},
"type": "module",
"author": "Waku Team",
"homepage": "https://github.com/waku-org/js-waku/tree/master/packages/dns-discovery#readme",
"homepage": "https://github.com/waku-org/js-waku/tree/master/packages/discovery#readme",
"repository": {
"type": "git",
"url": "https://github.com/waku-org/js-waku.git"
@ -51,6 +51,8 @@
"node": ">=18"
},
"dependencies": {
"@waku/interfaces": "0.0.22",
"@waku/proto": "^0.0.6",
"@waku/enr": "0.0.21",
"@waku/utils": "0.0.15",
"debug": "^4.3.4",
@ -66,22 +68,31 @@
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.11",
"@types/node-localstorage": "^1.3.3",
"@waku/build-utils": "*",
"@waku/interfaces": "0.0.22",
"chai": "^4.3.10",
"chai-as-promised": "^7.1.1",
"cspell": "^8.3.2",
"mocha": "^10.3.0",
"node-localstorage": "^3.0.5",
"npm-run-all": "^4.1.5",
"rollup": "^4.12.0"
"rollup": "^4.12.0",
"sinon": "^17.0.1"
},
"peerDependencies": {
"@waku/core": "0.0.27",
"@waku/enr": "0.0.21",
"@waku/interfaces": "0.0.22",
"@waku/proto": "0.0.6",
"@waku/utils": "0.0.15",
"@waku/interfaces": "0.0.22"
"@libp2p/interface": "^1.1.2"
},
"peerDependenciesMeta": {
"@waku/interfaces": {
"optional": true
},
"@libp2p/interface": {
"optional": true
}
},
"files": [

View File

@ -0,0 +1,21 @@
// DNS Discovery
export { PeerDiscoveryDns, wakuDnsDiscovery } from "./dns/dns_discovery.js";
export { enrTree } from "./dns/constants.js";
export { DnsNodeDiscovery } from "./dns/dns.js";
// Peer Exchange Discovery
export {
wakuPeerExchange,
PeerExchangeCodec,
WakuPeerExchange
} from "./peer-exchange/waku_peer_exchange.js";
export {
wakuPeerExchangeDiscovery,
PeerExchangeDiscovery
} from "./peer-exchange/waku_peer_exchange_discovery.js";
// Local Peer Cache Discovery
export {
LocalPeerCacheDiscovery,
wakuLocalPeerCacheDiscovery
} from "./local-peer-cache/index.js";

View File

@ -11,14 +11,21 @@ import { LocalStoragePeerInfo } from "@waku/interfaces";
import chai, { expect } from "chai";
import chaiAsPromised from "chai-as-promised";
import { MemoryDatastore } from "datastore-core/memory";
import { LocalStorage } from "node-localstorage";
import sinon from "sinon";
import { LocalPeerCacheDiscovery } from "./index.js";
chai.use(chaiAsPromised);
global.localStorage = new LocalStorage("./mock_local_storage");
// dynamically importing the local storage polyfill for node
if (typeof window === "undefined") {
try {
const { LocalStorage } = await import("node-localstorage");
global.localStorage = new LocalStorage("./scratch");
} catch (error) {
console.error("Failed to load localStorage polyfill:", error);
}
}
const mockPeers = [
{

View File

@ -6,5 +6,5 @@
"tsBuildInfoFile": "dist/.tsbuildinfo"
},
"include": ["src"],
"exclude": ["src/**/*.spec.ts", "src/test_utils"]
"exclude": ["src/**/*.spec.ts"]
}

View File

@ -1,305 +0,0 @@
# Changelog
All notable changes to this project will be documented in this file.
The file is maintained by [Release Please](https://github.com/googleapis/release-please) based on [Conventional Commits](https://www.conventionalcommits.org) specification,
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.6 to 0.0.7
* devDependencies
* @waku/interfaces bumped from 0.0.8 to 0.0.9
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.7 to 0.0.8
* @waku/utils bumped from 0.0.2 to 0.0.3
* devDependencies
* @waku/interfaces bumped from 0.0.9 to 0.0.10
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.8 to 0.0.9
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.10 to 0.0.11
* @waku/utils bumped from 0.0.4 to 0.0.5
* devDependencies
* @waku/interfaces bumped from 0.0.11 to 0.0.12
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.12 to 0.0.13
* @waku/utils bumped from 0.0.6 to 0.0.7
* devDependencies
* @waku/interfaces bumped from 0.0.13 to 0.0.14
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.19 to 0.0.20
* @waku/utils bumped from 0.0.13 to 0.0.14
* devDependencies
* @waku/interfaces bumped from 0.0.20 to 0.0.21
## [0.0.21](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.20...dns-discovery-v0.0.21) (2024-03-04)
### ⚠ BREAKING CHANGES
* protocols filter peers as per configured shard ([#1756](https://github.com/waku-org/js-waku/issues/1756))
### Features
* Protocols filter peers as per configured shard ([#1756](https://github.com/waku-org/js-waku/issues/1756)) ([477c2a5](https://github.com/waku-org/js-waku/commit/477c2a5918f2f75cd2c14bc6ed75e1687c5a09b4))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.20 to 0.0.21
* @waku/utils bumped from 0.0.14 to 0.0.15
* devDependencies
* @waku/interfaces bumped from 0.0.21 to 0.0.22
## [0.0.19](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.18...dns-discovery-v0.0.19) (2023-11-01)
### Features
* Logger with log levels ([#1672](https://github.com/waku-org/js-waku/issues/1672)) ([0f7d63e](https://github.com/waku-org/js-waku/commit/0f7d63ef93716223dc8fea7e8cb09e12e267b386))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.18 to 0.0.19
* @waku/utils bumped from 0.0.12 to 0.0.13
* devDependencies
* @waku/interfaces bumped from 0.0.19 to 0.0.20
## [0.0.18](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.17...dns-discovery-v0.0.18) (2023-10-16)
### Features
* Add Firefox and Webkit to karma ([#1598](https://github.com/waku-org/js-waku/issues/1598)) ([d9e4bcb](https://github.com/waku-org/js-waku/commit/d9e4bcbe3f7bcc092f20621bd362d76426701dab))
* **static-sharding:** Filter peer connections per shards ([#1626](https://github.com/waku-org/js-waku/issues/1626)) ([124a29e](https://github.com/waku-org/js-waku/commit/124a29ebba59c05fbbf199d969e6ba3f9e57d45b))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.17 to 0.0.18
* @waku/utils bumped from 0.0.11 to 0.0.12
* devDependencies
* @waku/interfaces bumped from 0.0.18 to 0.0.19
## [0.0.17](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.16...dns-discovery-v0.0.17) (2023-09-11)
### ⚠ BREAKING CHANGES
* upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400))
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316))
### Features
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316)) ([50c2c25](https://github.com/waku-org/js-waku/commit/50c2c2540f3c5ff78d93f3fea646da0eee246e17))
* Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel ([#1379](https://github.com/waku-org/js-waku/issues/1379)) ([f32d7d9](https://github.com/waku-org/js-waku/commit/f32d7d9fe0b930b4fa9c46b8644e6d21be45d5c1))
* **dns-discovery:** Set default for `NodeRequirements` ([#1466](https://github.com/waku-org/js-waku/issues/1466)) ([aab9c08](https://github.com/waku-org/js-waku/commit/aab9c08caefb9f72460261ec0c38df88ae0f02ce))
* Upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400)) ([420e6c6](https://github.com/waku-org/js-waku/commit/420e6c698dd8f44d40d34e47d876da5d2e1ce85e))
### Bug Fixes
* **dns-discovery:** Use DOH list from dns-query ([1dd3210](https://github.com/waku-org/js-waku/commit/1dd32101baf2750527369f7f25981882aa1f9527))
* Improve connection manager error handling + edge cases ([#1450](https://github.com/waku-org/js-waku/issues/1450)) ([785df52](https://github.com/waku-org/js-waku/commit/785df528fe6e5010a61391994e222028dbc4e4c5))
* Remove typesVersions ([#1359](https://github.com/waku-org/js-waku/issues/1359)) ([0ad1954](https://github.com/waku-org/js-waku/commit/0ad19540d527309e0174afa7e9fff2924570d361))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.16 to 0.0.17
* @waku/utils bumped from 0.0.10 to 0.0.11
* devDependencies
* @waku/interfaces bumped from 0.0.17 to 0.0.18
## [0.0.16](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.15...dns-discovery-v0.0.16) (2023-08-02)
### Bug Fixes
* Improve connection manager error handling + edge cases ([#1450](https://github.com/waku-org/js-waku/issues/1450)) ([785df52](https://github.com/waku-org/js-waku/commit/785df528fe6e5010a61391994e222028dbc4e4c5))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.15 to 0.0.16
* @waku/utils bumped from 0.0.9 to 0.0.10
* devDependencies
* @waku/interfaces bumped from 0.0.16 to 0.0.17
## [0.0.15](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.14...dns-discovery-v0.0.15) (2023-07-26)
### ⚠ BREAKING CHANGES
* upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400))
### Features
* Upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400)) ([420e6c6](https://github.com/waku-org/js-waku/commit/420e6c698dd8f44d40d34e47d876da5d2e1ce85e))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.14 to 0.0.15
* @waku/utils bumped from 0.0.8 to 0.0.9
* devDependencies
* @waku/interfaces bumped from 0.0.15 to 0.0.16
## [0.0.14](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.13...dns-discovery-v0.0.14) (2023-06-08)
### Features
* Allow passing of multiple ENR URLs to DNS Discovery & dial multiple peers in parallel ([#1379](https://github.com/waku-org/js-waku/issues/1379)) ([f32d7d9](https://github.com/waku-org/js-waku/commit/f32d7d9fe0b930b4fa9c46b8644e6d21be45d5c1))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.13 to 0.0.14
* @waku/utils bumped from 0.0.7 to 0.0.8
* devDependencies
* @waku/interfaces bumped from 0.0.14 to 0.0.15
## [0.0.12](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.11...dns-discovery-v0.0.12) (2023-05-18)
### ⚠ BREAKING CHANGES
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316))
### Features
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316)) ([50c2c25](https://github.com/waku-org/js-waku/commit/50c2c2540f3c5ff78d93f3fea646da0eee246e17))
### Bug Fixes
* Remove typesVersions ([#1359](https://github.com/waku-org/js-waku/issues/1359)) ([0ad1954](https://github.com/waku-org/js-waku/commit/0ad19540d527309e0174afa7e9fff2924570d361))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from * to 0.0.12
* @waku/utils bumped from * to 0.0.6
* devDependencies
* @waku/interfaces bumped from * to 0.0.13
## [0.0.10](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.9...dns-discovery-v0.0.10) (2023-04-03)
### Bug Fixes
* **dns-discovery:** Use DOH list from dns-query ([1dd3210](https://github.com/waku-org/js-waku/commit/1dd32101baf2750527369f7f25981882aa1f9527))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.9 to 0.0.10
* @waku/utils bumped from 0.0.3 to 0.0.4
* devDependencies
* @waku/interfaces bumped from 0.0.10 to 0.0.11
## [0.0.6](https://github.com/waku-org/js-waku/compare/dns-discovery-v0.0.5...dns-discovery-v0.0.6) (2023-03-16)
### ⚠ BREAKING CHANGES
* add exports map to @waku/utils ([#1201](https://github.com/waku-org/js-waku/issues/1201))
* directly convert from ENR to `PeerInfo`, remove unneeded utility
* extract decoder code
* bump typescript
* bump libp2p dependencies
### Features
* Add mocha to dns-discovery ([#1154](https://github.com/waku-org/js-waku/issues/1154)) ([f945eb9](https://github.com/waku-org/js-waku/commit/f945eb90c49bb54322c4cb58c20cfdeee72ff4f2))
* DNS discovery as default bootstrap discovery ([#1114](https://github.com/waku-org/js-waku/issues/1114)) ([11819fc](https://github.com/waku-org/js-waku/commit/11819fc7b14e18385d421facaf2af0832cad1da8))
### Bug Fixes
* **dns-discovery/peer-exchange:** Check if peer is already tagged ([952aadd](https://github.com/waku-org/js-waku/commit/952aadd7bbbe1a7265c5126c1678f552bef0648d))
* Prettier and cspell ignore CHANGELOG ([#1235](https://github.com/waku-org/js-waku/issues/1235)) ([4d7b3e3](https://github.com/waku-org/js-waku/commit/4d7b3e39e6761afaf5d05a13cc4b3c23e15f9bd5))
### Miscellaneous Chores
* Add exports map to @waku/utils ([#1201](https://github.com/waku-org/js-waku/issues/1201)) ([a30b2bd](https://github.com/waku-org/js-waku/commit/a30b2bd747dedeef69b46cfafb88898ba35d8f67))
* Bump libp2p dependencies ([803ae7b](https://github.com/waku-org/js-waku/commit/803ae7bd8ed3de665026446c23cde90e7eba9d36))
* Bump typescript ([12d86e6](https://github.com/waku-org/js-waku/commit/12d86e6abcc68e27c39ca86b4f0dc2b68cdd6000))
* Directly convert from ENR to `PeerInfo`, remove unneeded utility ([6dbcde0](https://github.com/waku-org/js-waku/commit/6dbcde041ab8fa8c2df75cc25319a0eccf6b0454))
* Extract decoder code ([130c49b](https://github.com/waku-org/js-waku/commit/130c49b636807063364f309da0da2a24a68f2178))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from * to 0.0.6
* @waku/utils bumped from * to 0.0.2
* devDependencies
* @waku/interfaces bumped from * to 0.0.8
## [Unreleased]
## [0.0.5] - 2023-01-25
### Changed
- Replaced OpenDNS with AhaDNS in the default DoH DNS list.
### Fixed
- Moved `chai` to `devDependencies`.
## [0.0.4] - 2023-01-18
### Changed
- Improved test coverage, various fixes.
[unreleased]: https://github.com/waku-org/js-waku/compare/@waku/dns-discovery@0.0.5...HEAD
[0.0.5]: https://github.com/status-im/js-waku/compare/@waku/dns-discovery@0.0.4...@waku/dns-discovery@0.0.5
[0.0.4]: https://github.com/status-im/js-waku/compare/f7f28f03b01fa5bc89eaeb083b68981169b45c39...@waku/dns-discovery@0.0.4

View File

@ -1,10 +0,0 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "dist/",
"rootDir": "src",
"tsBuildInfoFile": "dist/.tsbuildinfo"
},
"include": ["src"],
"exclude": ["src/**/*.spec.ts", "src/test_utils"]
}

View File

@ -1,4 +0,0 @@
{
"extends": ["../../typedoc.base.json"],
"entryPoints": ["src/index.ts"]
}

View File

@ -1,6 +0,0 @@
module.exports = {
parserOptions: {
tsconfigRootDir: __dirname,
project: "./tsconfig.dev.json"
}
};

View File

@ -1,6 +0,0 @@
{
"reporterEnabled": "spec, allure-mocha",
"allureMochaReporter": {
"outputDir": "allure-results"
}
}

View File

@ -1,26 +0,0 @@
const config = {
extension: ['ts'],
spec: 'src/**/*.spec.ts',
require: ['ts-node/register', 'isomorphic-fetch'],
loader: 'ts-node/esm',
'node-option': [
'experimental-specifier-resolution=node',
'loader=ts-node/esm'
],
exit: true
};
if (process.env.CI) {
console.log("Running tests in parallel");
config.parallel = true;
config.jobs = 6;
console.log("Activating allure reporting");
config.reporter = 'mocha-multi-reporters';
config.reporterOptions = {
configFile: '.mocha.reporters.json'
};
} else {
console.log("Running tests serially. To enable parallel execution update mocha config");
}
module.exports = config;

View File

@ -1,20 +0,0 @@
# Changelog
## 1.0.0 (2024-03-04)
### ⚠ BREAKING CHANGES
* rename local-discovery to local-peer-cache-discovery ([#1867](https://github.com/waku-org/js-waku/issues/1867))
### Miscellaneous Chores
* Rename local-discovery to local-peer-cache-discovery ([#1867](https://github.com/waku-org/js-waku/issues/1867)) ([f3cb10d](https://github.com/waku-org/js-waku/commit/f3cb10d484bac134377b8cfd77e077ffc33bd319))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/interfaces bumped from ^0.0.21 to ^0.0.22
* @waku/utils bumped from ^0.0.14 to ^0.0.15

View File

@ -1,3 +0,0 @@
const config = require("../../karma.conf.cjs");
module.exports = config;

View File

@ -1,96 +0,0 @@
{
"name": "@waku/local-peer-cache-discovery",
"version": "1.0.0",
"description": "Local Peer Cache keeps records of healthy peers in the browser's local storage for quicker bootstrapping.",
"types": "./dist/index.d.ts",
"module": "./dist/index.js",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
}
},
"type": "module",
"author": "Waku Team",
"homepage": "https://github.com/waku-org/js-waku/tree/master/packages/local-peer-cache-discovery#readme",
"repository": {
"type": "git",
"url": "https://github.com/waku-org/js-waku.git"
},
"bugs": {
"url": "https://github.com/waku-org/js-waku/issues"
},
"license": "MIT OR Apache-2.0",
"keywords": [
"waku",
"decentralized",
"secure",
"communication",
"web3",
"ethereum",
"dapps",
"privacy"
],
"scripts": {
"build": "run-s build:**",
"build:esm": "tsc",
"build:bundle": "rollup --config rollup.config.js",
"fix": "run-s fix:*",
"fix:lint": "eslint src *.js --fix",
"check": "run-s check:*",
"check:lint": "eslint src --ext .ts",
"check:spelling": "cspell \"{README.md,src/**/*.ts}\"",
"check:tsc": "tsc -p tsconfig.dev.json",
"prepublish": "npm run build",
"reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build",
"test": "NODE_ENV=test run-s test:*",
"test:node": "NODE_ENV=test TS_NODE_PROJECT=./tsconfig.dev.json mocha"
},
"engines": {
"node": ">=18"
},
"dependencies": {
"@libp2p/interface": "^1.1.2",
"@waku/interfaces": "^0.0.22",
"@waku/utils": "^0.0.15"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.11",
"@types/node-localstorage": "^1.3.3",
"@waku/build-utils": "*",
"chai": "^4.3.10",
"chai-as-promised": "^7.1.1",
"cspell": "^7.3.2",
"mocha": "^10.2.0",
"node-localstorage": "^3.0.5",
"npm-run-all": "^4.1.5",
"rollup": "^4.12.0",
"sinon": "^17.0.1"
},
"peerDependencies": {
"@libp2p/interface": "^1.1.2",
"@waku/utils": "0.0.15",
"@waku/interfaces": "0.0.22"
},
"peerDependenciesMeta": {
"@waku/interfaces": {
"optional": true
},
"@libp2p/interface": {
"optional": true
}
},
"files": [
"dist",
"bundle",
"src/**/*.ts",
"!**/*.spec.*",
"!**/*.json",
"CHANGELOG.md",
"LICENSE",
"README.md"
]
}

View File

@ -1,24 +0,0 @@
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import { extractExports } from "@waku/build-utils";
import * as packageJson from "./package.json" assert { type: "json" };
const input = extractExports(packageJson);
export default {
input,
output: {
dir: "bundle",
format: "esm"
},
plugins: [
commonjs(),
json(),
nodeResolve({
browser: true,
preferBuiltins: false
})
]
};

View File

@ -1,3 +0,0 @@
{
"extends": "../../tsconfig.dev"
}

View File

@ -1,4 +0,0 @@
{
"extends": ["../../typedoc.base.json"],
"entryPoints": ["src/index.ts"]
}

View File

@ -1,6 +0,0 @@
module.exports = {
parserOptions: {
tsconfigRootDir: __dirname,
project: "./tsconfig.dev.json"
}
};

View File

@ -1,285 +0,0 @@
# Changelog
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.12 to 0.0.13
* @waku/enr bumped from 0.0.7 to 0.0.8
* @waku/proto bumped from 0.0.3 to 0.0.4
* @waku/utils bumped from * to 0.0.3
* devDependencies
* @waku/interfaces bumped from 0.0.9 to 0.0.10
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from 0.0.8 to 0.0.9
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.14 to 0.0.15
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.15 to 0.0.16
* @waku/enr bumped from 0.0.9 to 0.0.10
* @waku/utils bumped from 0.0.3 to 0.0.4
* devDependencies
* @waku/interfaces bumped from 0.0.10 to 0.0.11
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.16 to 0.0.17
* @waku/enr bumped from 0.0.10 to 0.0.11
* @waku/utils bumped from 0.0.4 to 0.0.5
* devDependencies
* @waku/interfaces bumped from 0.0.11 to 0.0.12
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.18 to 0.0.19
* @waku/enr bumped from 0.0.12 to 0.0.13
* @waku/proto bumped from * to 0.0.5
* @waku/utils bumped from 0.0.6 to 0.0.7
* devDependencies
* @waku/interfaces bumped from 0.0.13 to 0.0.14
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.19 to 0.0.20
* @waku/enr bumped from 0.0.13 to 0.0.14
* @waku/utils bumped from 0.0.7 to 0.0.8
* devDependencies
* @waku/interfaces bumped from 0.0.14 to 0.0.15
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.25 to 0.0.26
* @waku/enr bumped from 0.0.19 to 0.0.20
* @waku/interfaces bumped from 0.0.20 to 0.0.21
* @waku/proto bumped from 0.0.5 to 0.0.6
* @waku/utils bumped from 0.0.13 to 0.0.14
## [0.0.20](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.19...peer-exchange-v0.0.20) (2024-03-04)
### ⚠ BREAKING CHANGES
* protocols filter peers as per configured shard ([#1756](https://github.com/waku-org/js-waku/issues/1756))
### Features
* Decouple sharding params out of core ([e138b4f](https://github.com/waku-org/js-waku/commit/e138b4f5c49a35a37830e31e8be87d824f53249f))
* Protocols filter peers as per configured shard ([#1756](https://github.com/waku-org/js-waku/issues/1756)) ([477c2a5](https://github.com/waku-org/js-waku/commit/477c2a5918f2f75cd2c14bc6ed75e1687c5a09b4))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.26 to 0.0.27
* @waku/enr bumped from 0.0.20 to 0.0.21
* @waku/interfaces bumped from 0.0.21 to 0.0.22
* @waku/utils bumped from 0.0.14 to 0.0.15
## [0.0.18](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.17...peer-exchange-v0.0.18) (2023-11-01)
### Features
* Logger with log levels ([#1672](https://github.com/waku-org/js-waku/issues/1672)) ([0f7d63e](https://github.com/waku-org/js-waku/commit/0f7d63ef93716223dc8fea7e8cb09e12e267b386))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.24 to 0.0.25
* @waku/enr bumped from 0.0.18 to 0.0.19
* @waku/interfaces bumped from 0.0.19 to 0.0.20
* @waku/utils bumped from 0.0.12 to 0.0.13
## [0.0.17](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.16...peer-exchange-v0.0.17) (2023-10-16)
### Features
* **static-sharding:** Filter peer connections per shards ([#1626](https://github.com/waku-org/js-waku/issues/1626)) ([124a29e](https://github.com/waku-org/js-waku/commit/124a29ebba59c05fbbf199d969e6ba3f9e57d45b))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.23 to 0.0.24
* @waku/enr bumped from 0.0.17 to 0.0.18
* @waku/interfaces bumped from 0.0.18 to 0.0.19
* @waku/utils bumped from 0.0.11 to 0.0.12
## [0.0.16](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.15...peer-exchange-v0.0.16) (2023-09-11)
### ⚠ BREAKING CHANGES
* set peer-exchange with default bootstrap ([#1469](https://github.com/waku-org/js-waku/issues/1469))
### Features
* Pre-emptive stream creation for protocols ([#1516](https://github.com/waku-org/js-waku/issues/1516)) ([b4f8216](https://github.com/waku-org/js-waku/commit/b4f821676120aa06f4772eed62fb105d5afae7c6))
* Set peer-exchange with default bootstrap ([#1469](https://github.com/waku-org/js-waku/issues/1469)) ([81a52a8](https://github.com/waku-org/js-waku/commit/81a52a8097ba948783c9d798ba362af0f27e1c10))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.22 to 0.0.23
* @waku/enr bumped from 0.0.16 to 0.0.17
* @waku/interfaces bumped from 0.0.17 to 0.0.18
* @waku/utils bumped from 0.0.10 to 0.0.11
## [0.0.15](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.14...peer-exchange-v0.0.15) (2023-08-02)
### Bug Fixes
* Improve connection manager error handling + edge cases ([#1450](https://github.com/waku-org/js-waku/issues/1450)) ([785df52](https://github.com/waku-org/js-waku/commit/785df528fe6e5010a61391994e222028dbc4e4c5))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.21 to 0.0.22
* @waku/enr bumped from 0.0.15 to 0.0.16
* @waku/utils bumped from 0.0.9 to 0.0.10
* @waku/interfaces bumped from 0.0.16 to 0.0.17
## [0.0.14](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.13...peer-exchange-v0.0.14) (2023-07-26)
### ⚠ BREAKING CHANGES
* upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400))
### Features
* Enable event emission for peer discovery/connection in ConnectionManager ([#1438](https://github.com/waku-org/js-waku/issues/1438)) ([6ce898d](https://github.com/waku-org/js-waku/commit/6ce898d77132f30b5d8f33b48c7f6276992a486e))
* Upgrade to libp2p@0.45 ([#1400](https://github.com/waku-org/js-waku/issues/1400)) ([420e6c6](https://github.com/waku-org/js-waku/commit/420e6c698dd8f44d40d34e47d876da5d2e1ce85e))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from 0.0.20 to 0.0.21
* @waku/enr bumped from 0.0.14 to 0.0.15
* @waku/utils bumped from 0.0.8 to 0.0.9
* @waku/interfaces bumped from 0.0.15 to 0.0.16
## [0.0.11](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.10...peer-exchange-v0.0.11) (2023-05-18)
### ⚠ BREAKING CHANGES
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316))
### Features
* @waku/relay ([#1316](https://github.com/waku-org/js-waku/issues/1316)) ([50c2c25](https://github.com/waku-org/js-waku/commit/50c2c2540f3c5ff78d93f3fea646da0eee246e17))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from * to 0.0.18
* @waku/enr bumped from * to 0.0.12
* @waku/utils bumped from * to 0.0.6
* devDependencies
* @waku/interfaces bumped from * to 0.0.13
## [0.0.5](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.4...peer-exchange-v0.0.5) (2023-03-23)
### Features
* Compliance test for peer-exchange discovery ([#1186](https://github.com/waku-org/js-waku/issues/1186)) ([5b0c3c3](https://github.com/waku-org/js-waku/commit/5b0c3c3cac3ddb5687d8f59457d6056527a8666c))
### Bug Fixes
* @waku/peer-exchange uses @waku/core and should depend on it ([e922ed4](https://github.com/waku-org/js-waku/commit/e922ed49ec70553227751518251152c765efd07c))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/core bumped from * to 0.0.12
* @waku/enr bumped from 0.0.6 to 0.0.7
* devDependencies
* @waku/interfaces bumped from 0.0.8 to 0.0.9
## [0.0.4](https://github.com/waku-org/js-waku/compare/peer-exchange-v0.0.3...peer-exchange-v0.0.4) (2023-03-16)
### ⚠ BREAKING CHANGES
* directly convert from ENR to `PeerInfo`, remove unneeded utility
* extract decoder code
* bump typescript
* bump all prod dependencies
* bump libp2p dependencies
### Features
* Codec as a property of the protocol implementations ([a5ff788](https://github.com/waku-org/js-waku/commit/a5ff788eed419556e11319f22ca9e3109c81df92))
* DNS discovery as default bootstrap discovery ([#1114](https://github.com/waku-org/js-waku/issues/1114)) ([11819fc](https://github.com/waku-org/js-waku/commit/11819fc7b14e18385d421facaf2af0832cad1da8))
### Bug Fixes
* **dns-discovery/peer-exchange:** Check if peer is already tagged ([952aadd](https://github.com/waku-org/js-waku/commit/952aadd7bbbe1a7265c5126c1678f552bef0648d))
* Prettier and cspell ignore CHANGELOG ([#1235](https://github.com/waku-org/js-waku/issues/1235)) ([4d7b3e3](https://github.com/waku-org/js-waku/commit/4d7b3e39e6761afaf5d05a13cc4b3c23e15f9bd5))
* Remove initialising peer-exchange while creating a node ([#1158](https://github.com/waku-org/js-waku/issues/1158)) ([1b41569](https://github.com/waku-org/js-waku/commit/1b4156902387ea35b24b3d6f5d22e4635ea8cf18))
### Miscellaneous Chores
* Bump all prod dependencies ([88cc76d](https://github.com/waku-org/js-waku/commit/88cc76d2b811e1fa4460207f38704ecfe18fb260))
* Bump libp2p dependencies ([803ae7b](https://github.com/waku-org/js-waku/commit/803ae7bd8ed3de665026446c23cde90e7eba9d36))
* Bump typescript ([12d86e6](https://github.com/waku-org/js-waku/commit/12d86e6abcc68e27c39ca86b4f0dc2b68cdd6000))
* Directly convert from ENR to `PeerInfo`, remove unneeded utility ([6dbcde0](https://github.com/waku-org/js-waku/commit/6dbcde041ab8fa8c2df75cc25319a0eccf6b0454))
* Extract decoder code ([130c49b](https://github.com/waku-org/js-waku/commit/130c49b636807063364f309da0da2a24a68f2178))
### Dependencies
* The following workspace dependencies were updated
* dependencies
* @waku/enr bumped from * to 0.0.6
* @waku/proto bumped from * to 0.0.3
* devDependencies
* @waku/interfaces bumped from * to 0.0.8
## Changelog
All notable changes to this project will be documented in this file.
The file is maintained by [Release Please](https://github.com/googleapis/release-please) based on [Conventional Commits](https://www.conventionalcommits.org) specification,
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

View File

@ -1,95 +0,0 @@
{
"name": "@waku/peer-exchange",
"version": "0.0.20",
"description": "Peer Exchange (https://rfc.vac.dev/spec/34/) protocol for Waku",
"types": "./dist/index.d.ts",
"module": "./dist/index.js",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
}
},
"type": "module",
"author": "Waku Team",
"homepage": "https://github.com/waku-org/js-waku/tree/master/packages/peer-exchange#readme",
"repository": {
"type": "git",
"url": "https://github.com/waku-org/js-waku.git"
},
"bugs": {
"url": "https://github.com/waku-org/js-waku/issues"
},
"license": "MIT OR Apache-2.0",
"keywords": [
"waku",
"decentralized",
"secure",
"communication",
"web3",
"ethereum",
"dapps",
"privacy"
],
"scripts": {
"build": "run-s build:**",
"build:esm": "tsc",
"build:bundle": "rollup --config rollup.config.js",
"fix": "run-s fix:*",
"fix:lint": "eslint src *.js --fix",
"check": "run-s check:*",
"check:lint": "eslint src *.js",
"check:spelling": "cspell \"{README.md,src/**/*.ts}\"",
"check:tsc": "tsc -p tsconfig.dev.json",
"prepublish": "npm run build",
"reset-hard": "git clean -dfx -e .idea && git reset --hard && npm i && npm run build"
},
"engines": {
"node": ">=18"
},
"dependencies": {
"@libp2p/interfaces": "^3.3.2",
"@waku/core": "0.0.27",
"@waku/enr": "0.0.21",
"@waku/interfaces": "0.0.22",
"@waku/proto": "0.0.6",
"@waku/utils": "0.0.15",
"debug": "^4.3.4",
"it-all": "^3.0.4",
"it-length-prefixed": "^9.0.4",
"it-pipe": "^3.0.1"
},
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.0.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"@waku/build-utils": "*",
"chai": "^4.3.10",
"cspell": "^8.3.2",
"npm-run-all": "^4.1.5",
"rollup": "^4.12.0",
"uint8arraylist": "^2.4.3"
},
"peerDependencies": {
"@waku/core": "0.0.27",
"@waku/enr": "0.0.21",
"@waku/interfaces": "0.0.22",
"@waku/proto": "0.0.6",
"@waku/utils": "0.0.15"
},
"peerDependenciesMeta": {
"@waku/interfaces": {
"optional": true
}
},
"files": [
"dist",
"bundle",
"src/**/*.ts",
"!**/*.spec.*",
"!**/*.json",
"CHANGELOG.md",
"LICENSE",
"README.md"
]
}

View File

@ -1,24 +0,0 @@
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import { extractExports } from "@waku/build-utils";
import * as packageJson from "./package.json" assert { type: "json" };
const input = extractExports(packageJson);
export default {
input,
output: {
dir: "bundle",
format: "esm"
},
plugins: [
commonjs(),
json(),
nodeResolve({
browser: true,
preferBuiltins: false
})
]
};

View File

@ -1,3 +0,0 @@
{
"extends": "../../tsconfig.dev"
}

View File

@ -1,10 +0,0 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
"outDir": "dist/",
"rootDir": "src",
"tsBuildInfoFile": "dist/.tsbuildinfo"
},
"include": ["src"],
"exclude": ["src/**/*.spec.ts", "src/test_utils"]
}

View File

@ -1,4 +0,0 @@
{
"extends": ["../../typedoc.base.json"],
"entryPoints": ["src/index.ts"]
}

View File

@ -66,6 +66,7 @@
"@libp2p/mplex": "^10.0.12",
"@libp2p/ping": "^1.0.12",
"@libp2p/websockets": "^8.0.11",
"@waku/discovery": "0.0.1",
"@waku/core": "0.0.27",
"@waku/dns-discovery": "0.0.21",
"@waku/interfaces": "0.0.22",

View File

@ -74,9 +74,8 @@
"@types/mocha": "^10.0.6",
"@types/sinon": "^17.0.3",
"@types/tail": "^2.2.3",
"@waku/dns-discovery": "*",
"@waku/discovery": "*",
"@waku/message-encryption": "*",
"@waku/peer-exchange": "*",
"@waku/sdk": "*",
"allure-commandline": "^2.27.0",
"allure-mocha": "^2.9.2",

View File

@ -8,7 +8,7 @@ import {
enrTree,
PeerDiscoveryDns,
wakuDnsDiscovery
} from "@waku/dns-discovery";
} from "@waku/discovery";
import { Libp2pComponents } from "@waku/interfaces";
import { createLightNode } from "@waku/sdk";
import { expect } from "chai";

View File

@ -1,6 +1,6 @@
import tests from "@libp2p/interface-compliance-tests/peer-discovery";
import { PeerExchangeCodec, PeerExchangeDiscovery } from "@waku/discovery";
import type { LightNode } from "@waku/interfaces";
import { PeerExchangeCodec, PeerExchangeDiscovery } from "@waku/peer-exchange";
import { createLightNode } from "@waku/sdk";
import { singleShardInfoToPubsubTopic } from "@waku/utils";

View File

@ -1,7 +1,7 @@
import { bootstrap } from "@libp2p/bootstrap";
import type { PeerId } from "@libp2p/interface";
import { wakuPeerExchangeDiscovery } from "@waku/discovery";
import type { LightNode, PeersByDiscoveryResult } from "@waku/interfaces";
import { wakuPeerExchangeDiscovery } from "@waku/peer-exchange";
import { createLightNode, Tags } from "@waku/sdk";
import { Logger, singleShardInfoToPubsubTopic } from "@waku/utils";
import { expect } from "chai";

View File

@ -3,8 +3,8 @@ import {
Fleet,
getPredefinedBootstrapNodes
} from "@waku/core/lib/predefined_bootstrap_nodes";
import { wakuPeerExchangeDiscovery } from "@waku/discovery";
import type { LightNode } from "@waku/interfaces";
import { wakuPeerExchangeDiscovery } from "@waku/peer-exchange";
import { createLightNode, DefaultPubsubTopic } from "@waku/sdk";
import { expect } from "chai";

View File

@ -2,12 +2,12 @@ import { bootstrap } from "@libp2p/bootstrap";
import type { PeerId } from "@libp2p/interface";
import { multiaddr } from "@multiformats/multiaddr";
import type { Multiaddr } from "@multiformats/multiaddr";
import type { LightNode, PeerInfo } from "@waku/interfaces";
import {
PeerExchangeCodec,
WakuPeerExchange,
wakuPeerExchangeDiscovery
} from "@waku/peer-exchange";
} from "@waku/discovery";
import type { LightNode, PeerInfo } from "@waku/interfaces";
import { createLightNode, Libp2pComponents } from "@waku/sdk";
import { Logger, singleShardInfoToPubsubTopic } from "@waku/utils";
import { expect } from "chai";

View File

@ -1,6 +1,6 @@
import { bootstrap } from "@libp2p/bootstrap";
import type { PeerId } from "@libp2p/interface";
import { wakuPeerExchangeDiscovery } from "@waku/peer-exchange";
import { wakuPeerExchangeDiscovery } from "@waku/discovery";
import {
ContentTopicInfo,
createLightNode,

View File

@ -1,5 +1,5 @@
import { bootstrap } from "@libp2p/bootstrap";
import { enrTree, wakuDnsDiscovery } from "@waku/dns-discovery";
import { enrTree, wakuDnsDiscovery } from "@waku/discovery";
import { LightNode } from "@waku/interfaces";
import { createLightNode } from "@waku/sdk";
import { expect } from "chai";

View File

@ -11,12 +11,10 @@
"packages/interfaces": {},
"packages/message-hash": {},
"packages/enr": {},
"packages/peer-exchange": {},
"packages/core": {},
"packages/dns-discovery": {},
"packages/message-encryption": {},
"packages/sdk": {},
"packages/relay": {},
"packages/local-peer-cache-discovery": {}
"packages/discovery": {}
}
}