From dda8a8acc357d2d5afa617e63118fa3986857372 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Tue, 19 Sep 2023 12:06:41 +0100 Subject: [PATCH 01/30] feat: initial import --- .github/dependabot.yml | 11 + .github/workflows/automerge.yml | 8 + .github/workflows/js-test-and-release.yml | 182 +++++++++++++++ .gitignore | 9 + LICENSE | 4 + LICENSE-APACHE | 5 + LICENSE-MIT | 19 ++ README.md | 40 ++++ package.json | 54 +++++ src/index.ts | 255 ++++++++++++++++++++++ test/index.spec.ts | 31 +++ tsconfig.json | 10 + typedoc.json | 5 + 13 files changed, 633 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/automerge.yml create mode 100644 .github/workflows/js-test-and-release.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 LICENSE-APACHE create mode 100644 LICENSE-MIT create mode 100644 README.md create mode 100644 package.json create mode 100644 src/index.ts create mode 100644 test/index.spec.ts create mode 100644 tsconfig.json create mode 100644 typedoc.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..0bc3b42de8 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 10 + commit-message: + prefix: "deps" + prefix-development: "deps(dev)" diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml new file mode 100644 index 0000000000..d57c2a02b6 --- /dev/null +++ b/.github/workflows/automerge.yml @@ -0,0 +1,8 @@ +name: Automerge +on: [ pull_request ] + +jobs: + automerge: + uses: protocol/.github/.github/workflows/automerge.yml@master + with: + job: 'automerge' diff --git a/.github/workflows/js-test-and-release.yml b/.github/workflows/js-test-and-release.yml new file mode 100644 index 0000000000..a15c379170 --- /dev/null +++ b/.github/workflows/js-test-and-release.yml @@ -0,0 +1,182 @@ +name: test & maybe release +on: + push: + branches: + - main + pull_request: + +jobs: + + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present lint + - run: npm run --if-present dep-check + - run: npm run --if-present doc-check + + test-node: + needs: check + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-latest, ubuntu-latest, macos-latest] + node: [lts/*] + fail-fast: true + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:node + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: node + + test-chrome: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:chrome + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: chrome + + test-chrome-webworker: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:chrome-webworker + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: chrome-webworker + + test-firefox: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:firefox + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: firefox + + test-firefox-webworker: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:firefox-webworker + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: firefox-webworker + + test-webkit: + needs: check + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + node: [lts/*] + fail-fast: true + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:webkit + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: webkit + + test-webkit-webworker: + needs: check + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + node: [lts/*] + fail-fast: true + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npm run --if-present test:webkit-webworker + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: webkit-webworker + + test-electron-main: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npx xvfb-maybe npm run --if-present test:electron-main + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: electron-main + + test-electron-renderer: + needs: check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - run: npx xvfb-maybe npm run --if-present test:electron-renderer + - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + with: + flags: electron-renderer + + release: + needs: [test-node, test-chrome, test-chrome-webworker, test-firefox, test-firefox-webworker, test-webkit, test-webkit-webworker, test-electron-main, test-electron-renderer] + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-node@v3 + with: + node-version: lts/* + - uses: ipfs/aegir/actions/cache-node-modules@master + - uses: ipfs/aegir/actions/docker-login@master + with: + docker-token: ${{ secrets.DOCKER_TOKEN }} + docker-username: ${{ secrets.DOCKER_USERNAME }} + - run: npm run --if-present release + env: + GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN || github.token }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..7ad9e674ee --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +node_modules +build +dist +.docs +.coverage +node_modules +package-lock.json +yarn.lock +.vscode diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..20ce483c86 --- /dev/null +++ b/LICENSE @@ -0,0 +1,4 @@ +This project is dual licensed under MIT and Apache-2.0. + +MIT: https://www.opensource.org/licenses/mit +Apache-2.0: https://www.apache.org/licenses/license-2.0 diff --git a/LICENSE-APACHE b/LICENSE-APACHE new file mode 100644 index 0000000000..14478a3b60 --- /dev/null +++ b/LICENSE-APACHE @@ -0,0 +1,5 @@ +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 0000000000..72dc60d84b --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,19 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..646db5606e --- /dev/null +++ b/README.md @@ -0,0 +1,40 @@ +# @libp2p/simple-metrics + +[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io) +[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-simple-metrics.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-simple-metrics) +[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p-simple-metrics/js-test-and-release.yml?branch=main\&style=flat-square)](https://github.com/libp2p/js-libp2p-simple-metrics/actions/workflows/js-test-and-release.yml?query=branch%3Amain) + +> Simple in-memory metrics gathering for libp2p + +## Table of contents + +- [Install](#install) + - [Browser ` +``` + +## License + +Licensed under either of + +- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / ) +- MIT ([LICENSE-MIT](LICENSE-MIT) / ) + +## Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/package.json b/package.json new file mode 100644 index 0000000000..3bd26ea1c0 --- /dev/null +++ b/package.json @@ -0,0 +1,54 @@ +{ + "name": "@libp2p/simple-metrics", + "version": "0.0.0", + "description": "Simple in-memory metrics gathering for libp2p", + "license": "Apache-2.0 OR MIT", + "homepage": "https://github.com/libp2p/js-libp2p-simple-metrics#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/libp2p/js-libp2p-simple-metrics.git" + }, + "bugs": { + "url": "https://github.com/libp2p/js-libp2p-simple-metrics/issues" + }, + "type": "module", + "types": "./dist/src/index.d.ts", + "files": [ + "src", + "dist", + "!dist/test", + "!**/*.tsbuildinfo" + ], + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js" + } + }, + "eslintConfig": { + "extends": "ipfs", + "parserOptions": { + "sourceType": "module" + } + }, + "scripts": { + "clean": "aegir clean", + "lint": "aegir lint", + "build": "aegir build", + "test": "aegir test", + "test:node": "aegir test -t node --cov", + "test:chrome": "aegir test -t browser --cov", + "test:chrome-webworker": "aegir test -t webworker", + "test:firefox": "aegir test -t browser -- --browser firefox", + "test:firefox-webworker": "aegir test -t webworker -- --browser firefox", + "dep-check": "aegir dep-check -i events" + }, + "dependencies": { + "@libp2p/interface": "^0.1.2", + "@libp2p/logger": "^3.0.2" + }, + "devDependencies": { + "aegir": "^40.0.13", + "p-defer": "^4.0.0" + } +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000000..4e44d701c6 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,255 @@ +/** + * @packageDocumentation + * + * Stores metrics in memory and periodically invokes a configured callback + * to receive them. + * + * @example + * + * ```ts + * import { createLibp2p } from 'libp2p' + * import { simpleMetrics } from '@libp2p/simple-metrics' + * + * const node = await createLibp2p({ + * // ... other options + * metrics: simpleMetrics({ + * onMetrics: (metrics) => { + * // do something with metrics + * } + * }), + * intervalMs: 1000 // default 1s + * }) + * + * ``` + */ + +import { logger } from '@libp2p/logger' +import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection' +import type { Startable } from '@libp2p/interface/dist/src/startable' +import type { Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions, Counter, CounterGroup, CalculateMetric } from '@libp2p/interface/metrics' + +const log = logger('libp2p:simple-metrics') + +class DefaultMetric implements Metric { + public value: number = 0 + + update (value: number): void { + this.value = value + } + + increment (value: number = 1): void { + this.value += value + } + + decrement (value: number = 1): void { + this.value -= value + } + + reset (): void { + this.value = 0 + } + + timer (): StopTimer { + const start = Date.now() + + return () => { + this.value = Date.now() - start + } + } +} + +class DefaultGroupMetric implements MetricGroup { + public values: Record = {} + + update (values: Record): void { + Object.entries(values).forEach(([key, value]) => { + this.values[key] = value + }) + } + + increment (values: Record): void { + Object.entries(values).forEach(([key, value]) => { + this.values[key] = this.values[key] ?? 0 + const inc = typeof value === 'number' ? value : 1 + + this.values[key] += Number(inc) + }) + } + + decrement (values: Record): void { + Object.entries(values).forEach(([key, value]) => { + this.values[key] = this.values[key] ?? 0 + const dec = typeof value === 'number' ? value : 1 + + this.values[key] -= Number(dec) + }) + } + + reset (): void { + this.values = {} + } + + timer (key: string): StopTimer { + const start = Date.now() + + return () => { + this.values[key] = Date.now() - start + } + } +} + +export interface OnMetrics { (metrics: Record): void } + +export interface SimpleMetricsInit { + /** + * How often to invoke the onMetrics callback + */ + intervalMs?: number + + /** + * A callback periodically invoked with collected metrics + */ + onMetrics: OnMetrics +} + +class SimpleMetrics implements Metrics, Startable { + public metrics = new Map() + private started: boolean + private interval?: ReturnType + private readonly intervalMs: number + private readonly onMetrics: OnMetrics + + constructor (components: unknown, init: SimpleMetricsInit) { + this.started = false + + this._emitMetrics = this._emitMetrics.bind(this) + + this.intervalMs = init.intervalMs ?? 1000 + this.onMetrics = init.onMetrics + } + + isStarted (): boolean { + return this.started + } + + start (): void { + this.started = true + + this.interval = setInterval(this._emitMetrics, this.intervalMs) + } + + stop (): void { + this.started = false + + clearInterval(this.interval) + } + + private _emitMetrics (): void { + void Promise.resolve().then(async () => { + const output: Record = {} + + for (const [name, metric] of this.metrics.entries()) { + if (metric instanceof DefaultMetric) { + output[name] = metric.value + } else if (metric instanceof DefaultGroupMetric) { + output[name] = metric.values + } else { + output[name] = await metric() + } + } + + this.onMetrics(output) + }) + .catch(err => { + log.error('could not invoke onMetrics callback', err) + }) + } + + trackMultiaddrConnection (maConn: MultiaddrConnection): void { + + } + + trackProtocolStream (stream: Stream, connection: Connection): void { + + } + + registerMetric (name: string, opts: CalculatedMetricOptions): void + registerMetric (name: string, opts?: MetricOptions): Metric + registerMetric (name: string, opts: any = {}): any { + if (name == null ?? name.trim() === '') { + throw new Error('Metric name is required') + } + + if (opts?.calculate != null) { + // calculated metric + this.metrics.set(name, opts.calculate) + return + } + + const metric = new DefaultMetric() + this.metrics.set(name, metric) + + return metric + } + + registerMetricGroup (name: string, opts: CalculatedMetricOptions>): void + registerMetricGroup (name: string, opts?: MetricOptions): MetricGroup + registerMetricGroup (name: string, opts: any = {}): any { + if (name == null ?? name.trim() === '') { + throw new Error('Metric name is required') + } + + if (opts?.calculate != null) { + // calculated metric + this.metrics.set(name, opts.calculate) + return + } + + const metric = new DefaultMetric() + this.metrics.set(name, metric) + + return metric + } + + registerCounter (name: string, opts: CalculatedMetricOptions): void + registerCounter (name: string, opts?: MetricOptions): Counter + registerCounter (name: string, opts: any = {}): any { + if (name == null ?? name.trim() === '') { + throw new Error('Metric name is required') + } + + if (opts?.calculate != null) { + // calculated metric + this.metrics.set(name, opts.calculate) + return + } + + const metric = new DefaultGroupMetric() + this.metrics.set(name, metric) + + return metric + } + + registerCounterGroup (name: string, opts: CalculatedMetricOptions>): void + registerCounterGroup (name: string, opts?: MetricOptions): CounterGroup + registerCounterGroup (name: string, opts: any = {}): any { + if (name == null ?? name.trim() === '') { + throw new Error('Metric name is required') + } + + if (opts?.calculate != null) { + // calculated metric + this.metrics.set(name, opts.calculate) + return + } + + const metric = new DefaultGroupMetric() + this.metrics.set(name, metric) + + return metric + } +} + +export function simpleMetrics (init: SimpleMetricsInit): (components: unknown) => Metrics { + return (components: unknown) => new SimpleMetrics(components, init) +} diff --git a/test/index.spec.ts b/test/index.spec.ts new file mode 100644 index 0000000000..e3b81b4c11 --- /dev/null +++ b/test/index.spec.ts @@ -0,0 +1,31 @@ +import { start, stop } from '@libp2p/interface/startable' +import { expect } from 'aegir/chai' +import pDefer from 'p-defer' +import { simpleMetrics } from '../src/index.js' +import type { Metrics } from '@libp2p/interface/src/metrics' + +describe('simple-metrics', () => { + let s: Metrics + + afterEach(async () => { + if (s != null) { + await stop(s) + } + }) + + it('should invoke the onMetrics callback', async () => { + const deferred = pDefer() + + s = simpleMetrics({ + onMetrics: (metrics) => { + deferred.resolve(metrics) + }, + intervalMs: 10 + })({}) + + await start(s) + + const metrics = await deferred.promise + expect(metrics).to.be.ok() + }) +}) diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000000..13a3599639 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "aegir/src/config/tsconfig.aegir.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": [ + "src", + "test" + ] +} diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000000..f599dc728d --- /dev/null +++ b/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": [ + "./src/index.ts" + ] +} From 0705c63daeb84b9e89d9538a6540d871d60d0bc3 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 19 Sep 2023 12:44:35 +0000 Subject: [PATCH 02/30] chore: Update .github/workflows/stale.yml [skip ci] --- .github/workflows/stale.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 0000000000..16d65d7217 --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,13 @@ +name: Close and mark stale issue + +on: + schedule: + - cron: '0 0 * * *' + +permissions: + issues: write + pull-requests: write + +jobs: + stale: + uses: pl-strflt/.github/.github/workflows/reusable-stale-issue.yml@v0.3 From 817545386ccf1a01bf10c20851925bdb1cf53970 Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 19 Sep 2023 12:44:36 +0000 Subject: [PATCH 03/30] chore: Update .github/workflows/semantic-pull-request.yml [skip ci] --- .github/workflows/semantic-pull-request.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/workflows/semantic-pull-request.yml diff --git a/.github/workflows/semantic-pull-request.yml b/.github/workflows/semantic-pull-request.yml new file mode 100644 index 0000000000..bd00f090c1 --- /dev/null +++ b/.github/workflows/semantic-pull-request.yml @@ -0,0 +1,12 @@ +name: Semantic PR + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + main: + uses: pl-strflt/.github/.github/workflows/reusable-semantic-pull-request.yml@v0.3 From ede5c648f7667ea05dcdb5c9f1e7f8c1d75da922 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 20 Sep 2023 10:29:20 +0100 Subject: [PATCH 04/30] fix: emit copy of metrics (#1) To prevent observers changing internal state, emit a copy of the metrics. --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 4e44d701c6..d44ae54366 100644 --- a/src/index.ts +++ b/src/index.ts @@ -158,7 +158,7 @@ class SimpleMetrics implements Metrics, Startable { } } - this.onMetrics(output) + this.onMetrics(JSON.parse(JSON.stringify(output))) }) .catch(err => { log.error('could not invoke onMetrics callback', err) From 107ee5e1911e6816ad01f854dbf553058eb4e493 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 20 Sep 2023 13:23:42 +0100 Subject: [PATCH 05/30] chore: add release script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 3bd26ea1c0..aedd113fc2 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "test:chrome-webworker": "aegir test -t webworker", "test:firefox": "aegir test -t browser -- --browser firefox", "test:firefox-webworker": "aegir test -t webworker -- --browser firefox", + "release": "aegir release", "dep-check": "aegir dep-check -i events" }, "dependencies": { From 65106819fc7c0a359d3b089d827ed99291425c23 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Wed, 20 Sep 2023 13:29:35 +0100 Subject: [PATCH 06/30] chore: update project config --- package.json | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/package.json b/package.json index aedd113fc2..f1ddaf369c 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,91 @@ "sourceType": "module" } }, + "release": { + "branches": [ + "main" + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "conventionalcommits", + "releaseRules": [ + { + "breaking": true, + "release": "major" + }, + { + "revert": true, + "release": "patch" + }, + { + "type": "feat", + "release": "minor" + }, + { + "type": "fix", + "release": "patch" + }, + { + "type": "docs", + "release": "patch" + }, + { + "type": "test", + "release": "patch" + }, + { + "type": "deps", + "release": "patch" + }, + { + "scope": "no-release", + "release": false + } + ] + } + ], + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "chore", + "section": "Trivial Changes" + }, + { + "type": "docs", + "section": "Documentation" + }, + { + "type": "deps", + "section": "Dependencies" + }, + { + "type": "test", + "section": "Tests" + } + ] + } + } + ], + "@semantic-release/changelog", + "@semantic-release/npm", + "@semantic-release/github", + "@semantic-release/git" + ] + }, "scripts": { "clean": "aegir clean", "lint": "aegir lint", From a31a9a75a8db7905e2af58a675f113b4aca5fbd9 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 20 Sep 2023 12:33:36 +0000 Subject: [PATCH 07/30] chore(release): 1.0.0 [skip ci] ## 1.0.0 (2023-09-20) ### Features * initial import ([dda8a8a](https://github.com/libp2p/js-libp2p-simple-metrics/commit/dda8a8acc357d2d5afa617e63118fa3986857372)) ### Bug Fixes * emit copy of metrics ([#1](https://github.com/libp2p/js-libp2p-simple-metrics/issues/1)) ([ede5c64](https://github.com/libp2p/js-libp2p-simple-metrics/commit/ede5c648f7667ea05dcdb5c9f1e7f8c1d75da922)) ### Trivial Changes * add release script ([107ee5e](https://github.com/libp2p/js-libp2p-simple-metrics/commit/107ee5e1911e6816ad01f854dbf553058eb4e493)) * Update .github/workflows/semantic-pull-request.yml [skip ci] ([8175453](https://github.com/libp2p/js-libp2p-simple-metrics/commit/817545386ccf1a01bf10c20851925bdb1cf53970)) * Update .github/workflows/stale.yml [skip ci] ([0705c63](https://github.com/libp2p/js-libp2p-simple-metrics/commit/0705c63daeb84b9e89d9538a6540d871d60d0bc3)) * update project config ([6510681](https://github.com/libp2p/js-libp2p-simple-metrics/commit/65106819fc7c0a359d3b089d827ed99291425c23)) --- CHANGELOG.md | 19 +++++++++++++++++++ package.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..97feaf1284 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,19 @@ +## 1.0.0 (2023-09-20) + + +### Features + +* initial import ([dda8a8a](https://github.com/libp2p/js-libp2p-simple-metrics/commit/dda8a8acc357d2d5afa617e63118fa3986857372)) + + +### Bug Fixes + +* emit copy of metrics ([#1](https://github.com/libp2p/js-libp2p-simple-metrics/issues/1)) ([ede5c64](https://github.com/libp2p/js-libp2p-simple-metrics/commit/ede5c648f7667ea05dcdb5c9f1e7f8c1d75da922)) + + +### Trivial Changes + +* add release script ([107ee5e](https://github.com/libp2p/js-libp2p-simple-metrics/commit/107ee5e1911e6816ad01f854dbf553058eb4e493)) +* Update .github/workflows/semantic-pull-request.yml [skip ci] ([8175453](https://github.com/libp2p/js-libp2p-simple-metrics/commit/817545386ccf1a01bf10c20851925bdb1cf53970)) +* Update .github/workflows/stale.yml [skip ci] ([0705c63](https://github.com/libp2p/js-libp2p-simple-metrics/commit/0705c63daeb84b9e89d9538a6540d871d60d0bc3)) +* update project config ([6510681](https://github.com/libp2p/js-libp2p-simple-metrics/commit/65106819fc7c0a359d3b089d827ed99291425c23)) diff --git a/package.json b/package.json index f1ddaf369c..d11aebc78a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/simple-metrics", - "version": "0.0.0", + "version": "1.0.0", "description": "Simple in-memory metrics gathering for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p-simple-metrics#readme", From caafb3d103fd7df0a2a4e6b3e800f4bc9c35c58f Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Tue, 26 Sep 2023 08:04:07 -0400 Subject: [PATCH 08/30] fix: track stream metrics (#2) Adds missing stream metrics --- package.json | 4 +++- src/index.ts | 46 ++++++++++++++++++++++++++++++++++++++++++++-- test/index.spec.ts | 29 ++++++++++++++++++++++++++++- 3 files changed, 75 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index d11aebc78a..6cbf906662 100644 --- a/package.json +++ b/package.json @@ -131,7 +131,9 @@ }, "dependencies": { "@libp2p/interface": "^0.1.2", - "@libp2p/logger": "^3.0.2" + "@libp2p/logger": "^3.0.2", + "it-foreach": "^2.0.4", + "it-stream-types": "^2.0.1" }, "devDependencies": { "aegir": "^40.0.13", diff --git a/src/index.ts b/src/index.ts index d44ae54366..36e81da3e9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -24,9 +24,11 @@ */ import { logger } from '@libp2p/logger' +import each from 'it-foreach' import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection' import type { Startable } from '@libp2p/interface/dist/src/startable' import type { Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions, Counter, CounterGroup, CalculateMetric } from '@libp2p/interface/metrics' +import type { Duplex, Source } from 'it-stream-types' const log = logger('libp2p:simple-metrics') @@ -114,6 +116,7 @@ export interface SimpleMetricsInit { class SimpleMetrics implements Metrics, Startable { public metrics = new Map() + private readonly transferStats: Map private started: boolean private interval?: ReturnType private readonly intervalMs: number @@ -126,6 +129,9 @@ class SimpleMetrics implements Metrics, Startable { this.intervalMs = init.intervalMs ?? 1000 this.onMetrics = init.onMetrics + + // holds global and per-protocol sent/received stats + this.transferStats = new Map() } isStarted (): boolean { @@ -158,19 +164,55 @@ class SimpleMetrics implements Metrics, Startable { } } - this.onMetrics(JSON.parse(JSON.stringify(output))) + this.onMetrics(structuredClone(output)) }) .catch(err => { log.error('could not invoke onMetrics callback', err) }) } - trackMultiaddrConnection (maConn: MultiaddrConnection): void { + /** + * Increment the transfer stat for the passed key, making sure + * it exists first + */ + _incrementValue (key: string, value: number): void { + const existing = this.transferStats.get(key) ?? 0 + + this.transferStats.set(key, existing + value) + } + + /** + * Override the sink/source of the stream to count the bytes + * in and out + */ + _track (stream: Duplex>, name: string): void { + const self = this + + const sink = stream.sink + stream.sink = async function trackedSink (source) { + await sink(each(source, buf => { + self._incrementValue(`${name} sent`, buf.byteLength) + })) + } + + const source = stream.source + stream.source = each(source, buf => { + self._incrementValue(`${name} received`, buf.byteLength) + }) + } + trackMultiaddrConnection (maConn: MultiaddrConnection): void { + this._track(maConn, 'global') } trackProtocolStream (stream: Stream, connection: Connection): void { + if (stream.protocol == null) { + // protocol not negotiated yet, should not happen as the upgrader + // calls this handler after protocol negotiation + return + } + this._track(stream, stream.protocol) } registerMetric (name: string, opts: CalculatedMetricOptions): void diff --git a/test/index.spec.ts b/test/index.spec.ts index e3b81b4c11..3220de5151 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -14,7 +14,7 @@ describe('simple-metrics', () => { }) it('should invoke the onMetrics callback', async () => { - const deferred = pDefer() + const deferred = pDefer>() s = simpleMetrics({ onMetrics: (metrics) => { @@ -28,4 +28,31 @@ describe('simple-metrics', () => { const metrics = await deferred.promise expect(metrics).to.be.ok() }) + + it('should not allow altering internal state', async () => { + const deferred = pDefer() + const list: Array> = [] + + s = simpleMetrics({ + onMetrics: (metrics) => { + list.push(metrics) + + if (list.length === 2) { + deferred.resolve() + } + }, + intervalMs: 10 + })({}) + + const group = s.registerMetricGroup('foo') + group.update({ bar: 5 }) + + await start(s) + + await deferred.promise + + list[0].foo.baz = 'qux' + + expect(list).to.not.have.nested.property('[1].foo.baz') + }) }) From b28ee3fee2296b2deaf36272e891b22e436f252f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Tue, 26 Sep 2023 12:08:58 +0000 Subject: [PATCH 09/30] chore(release): 1.0.1 [skip ci] ## [1.0.1](https://github.com/libp2p/js-libp2p-simple-metrics/compare/v1.0.0...v1.0.1) (2023-09-26) ### Bug Fixes * track stream metrics ([#2](https://github.com/libp2p/js-libp2p-simple-metrics/issues/2)) ([caafb3d](https://github.com/libp2p/js-libp2p-simple-metrics/commit/caafb3d103fd7df0a2a4e6b3e800f4bc9c35c58f)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97feaf1284..ff50051d17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +## [1.0.1](https://github.com/libp2p/js-libp2p-simple-metrics/compare/v1.0.0...v1.0.1) (2023-09-26) + + +### Bug Fixes + +* track stream metrics ([#2](https://github.com/libp2p/js-libp2p-simple-metrics/issues/2)) ([caafb3d](https://github.com/libp2p/js-libp2p-simple-metrics/commit/caafb3d103fd7df0a2a4e6b3e800f4bc9c35c58f)) + ## 1.0.0 (2023-09-20) diff --git a/package.json b/package.json index 6cbf906662..e271d41b8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/simple-metrics", - "version": "1.0.0", + "version": "1.0.1", "description": "Simple in-memory metrics gathering for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p-simple-metrics#readme", From 55f13980b3673dcf26f3a6673fd70eee0971b6cc Mon Sep 17 00:00:00 2001 From: GitHub Date: Tue, 26 Sep 2023 15:30:37 +0000 Subject: [PATCH 10/30] chore: Update .github/pull_request_template.md [skip ci] --- .github/pull_request_template.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..4bf8b2bd06 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,28 @@ +## Title + + +## Description + + + +## Notes & open questions + + + +## Change checklist + +- [ ] I have performed a self-review of my own code +- [ ] I have made corresponding changes to the documentation if necessary (this includes comments as well) +- [ ] I have added tests that prove my fix is effective or that my feature works \ No newline at end of file From e6d96cb8f928868711acc55fb13f7fd7a5442800 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 31 Jan 2024 16:48:17 +0000 Subject: [PATCH 11/30] chore: Update .github/workflows/stale.yml [skip ci] From 5b2422054150bd1b3cabfd986833ed8e4fbac9c9 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 31 Jan 2024 16:51:22 +0000 Subject: [PATCH 12/30] chore: Update .github/workflows/semantic-pull-request.yml [skip ci] From 28980a91a69090e2c75aa946d50923e926b66358 Mon Sep 17 00:00:00 2001 From: GitHub Date: Wed, 31 Jan 2024 16:51:56 +0000 Subject: [PATCH 13/30] chore: Update .github/pull_request_template.md [skip ci] From b0554a5321fc1ec069d6273370da03f99e3445e9 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 15 May 2024 12:10:23 +0100 Subject: [PATCH 14/30] chore: release main (#2519) --- .release-please-manifest.json | 2 +- interop/CHANGELOG.md | 17 +++++++++++ interop/package.json | 20 ++++++------- .../CHANGELOG.md | 9 ++++++ .../package.json | 4 +-- .../connection-encrypter-tls/CHANGELOG.md | 9 ++++++ .../connection-encrypter-tls/package.json | 4 +-- .../interface-compliance-tests/CHANGELOG.md | 11 ++++++++ .../interface-compliance-tests/package.json | 8 +++--- packages/interface-internal/CHANGELOG.md | 9 ++++++ packages/interface-internal/package.json | 4 +-- packages/kad-dht/CHANGELOG.md | 24 ++++++++++++++++ packages/kad-dht/package.json | 12 ++++---- packages/libp2p/CHANGELOG.md | 28 +++++++++++++++++++ packages/libp2p/package.json | 24 ++++++++-------- packages/metrics-prometheus/CHANGELOG.md | 9 ++++++ packages/metrics-prometheus/package.json | 4 +-- packages/peer-collections/CHANGELOG.md | 14 ++++++++++ packages/peer-collections/package.json | 4 +-- .../peer-discovery-bootstrap/CHANGELOG.md | 9 ++++++ .../peer-discovery-bootstrap/package.json | 4 +-- packages/peer-discovery-mdns/CHANGELOG.md | 12 ++++++++ packages/peer-discovery-mdns/package.json | 8 +++--- packages/peer-record/CHANGELOG.md | 9 ++++++ packages/peer-record/package.json | 4 +-- packages/peer-store/CHANGELOG.md | 10 +++++++ packages/peer-store/package.json | 6 ++-- packages/protocol-autonat/CHANGELOG.md | 10 +++++++ packages/protocol-autonat/package.json | 6 ++-- packages/protocol-dcutr/CHANGELOG.md | 10 +++++++ packages/protocol-dcutr/package.json | 6 ++-- packages/protocol-echo/CHANGELOG.md | 9 ++++++ packages/protocol-echo/package.json | 4 +-- packages/protocol-fetch/CHANGELOG.md | 9 ++++++ packages/protocol-fetch/package.json | 4 +-- packages/protocol-identify/CHANGELOG.md | 12 ++++++++ packages/protocol-identify/package.json | 8 +++--- packages/protocol-perf/CHANGELOG.md | 11 ++++++++ packages/protocol-perf/package.json | 6 ++-- packages/protocol-ping/CHANGELOG.md | 9 ++++++ packages/protocol-ping/package.json | 4 +-- packages/pubsub-floodsub/CHANGELOG.md | 12 ++++++++ packages/pubsub-floodsub/package.json | 8 +++--- packages/pubsub/CHANGELOG.md | 11 ++++++++ packages/pubsub/package.json | 8 +++--- .../stream-multiplexer-mplex/CHANGELOG.md | 11 ++++++++ .../stream-multiplexer-mplex/package.json | 6 ++-- .../transport-circuit-relay-v2/CHANGELOG.md | 14 ++++++++++ .../transport-circuit-relay-v2/package.json | 12 ++++---- packages/transport-tcp/CHANGELOG.md | 11 ++++++++ packages/transport-tcp/package.json | 6 ++-- packages/transport-webrtc/CHANGELOG.md | 16 +++++++++++ packages/transport-webrtc/package.json | 14 +++++----- packages/transport-websockets/CHANGELOG.md | 11 ++++++++ packages/transport-websockets/package.json | 6 ++-- packages/transport-webtransport/CHANGELOG.md | 11 ++++++++ packages/transport-webtransport/package.json | 6 ++-- packages/upnp-nat/CHANGELOG.md | 10 +++++++ packages/upnp-nat/package.json | 6 ++-- packages/utils/CHANGELOG.md | 9 ++++++ packages/utils/package.json | 2 +- 61 files changed, 466 insertions(+), 110 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 4e9f74b7db..c4f6797bda 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"interop":"2.0.31","packages/connection-encrypter-plaintext":"1.0.22","packages/connection-encrypter-tls":"1.0.9","packages/crypto":"4.1.1","packages/interface":"1.3.1","packages/interface-compliance-tests":"5.4.3","packages/interface-internal":"1.2.0","packages/kad-dht":"12.0.15","packages/keychain":"4.0.14","packages/libp2p":"1.5.1","packages/logger":"4.0.12","packages/metrics-prometheus":"3.0.22","packages/multistream-select":"5.1.9","packages/peer-collections":"5.2.0","packages/peer-discovery-bootstrap":"10.0.22","packages/peer-discovery-mdns":"10.0.22","packages/peer-id":"4.1.1","packages/peer-id-factory":"4.1.1","packages/peer-record":"7.0.16","packages/peer-store":"10.0.17","packages/protocol-autonat":"1.0.19","packages/protocol-dcutr":"1.0.19","packages/protocol-echo":"1.0.5","packages/protocol-fetch":"1.0.16","packages/protocol-identify":"2.0.0","packages/protocol-perf":"3.0.22","packages/protocol-ping":"1.0.17","packages/pubsub":"9.0.17","packages/pubsub-floodsub":"9.0.18","packages/record":"4.0.1","packages/stream-multiplexer-mplex":"10.0.22","packages/transport-circuit-relay-v2":"1.0.22","packages/transport-tcp":"9.0.24","packages/transport-webrtc":"4.0.31","packages/transport-websockets":"8.0.22","packages/transport-webtransport":"4.0.30","packages/upnp-nat":"1.0.20","packages/utils":"5.4.0"} \ No newline at end of file +{"interop":"2.0.32","packages/connection-encrypter-plaintext":"1.0.23","packages/connection-encrypter-tls":"1.0.10","packages/crypto":"4.1.1","packages/interface":"1.3.1","packages/interface-compliance-tests":"5.4.4","packages/interface-internal":"1.2.1","packages/kad-dht":"12.0.16","packages/keychain":"4.0.14","packages/libp2p":"1.5.2","packages/logger":"4.0.12","packages/metrics-prometheus":"3.0.23","packages/multistream-select":"5.1.9","packages/peer-collections":"5.2.1","packages/peer-discovery-bootstrap":"10.0.23","packages/peer-discovery-mdns":"10.0.23","packages/peer-id":"4.1.1","packages/peer-id-factory":"4.1.1","packages/peer-record":"7.0.17","packages/peer-store":"10.0.18","packages/protocol-autonat":"1.0.20","packages/protocol-dcutr":"1.0.20","packages/protocol-echo":"1.0.6","packages/protocol-fetch":"1.0.17","packages/protocol-identify":"2.0.1","packages/protocol-perf":"3.0.23","packages/protocol-ping":"1.0.18","packages/pubsub":"9.0.18","packages/pubsub-floodsub":"9.0.19","packages/record":"4.0.1","packages/stream-multiplexer-mplex":"10.0.23","packages/transport-circuit-relay-v2":"1.0.23","packages/transport-tcp":"9.0.25","packages/transport-webrtc":"4.0.32","packages/transport-websockets":"8.0.23","packages/transport-webtransport":"4.0.31","packages/upnp-nat":"1.0.21","packages/utils":"5.4.1"} \ No newline at end of file diff --git a/interop/CHANGELOG.md b/interop/CHANGELOG.md index 82d09cd173..925938eda6 100644 --- a/interop/CHANGELOG.md +++ b/interop/CHANGELOG.md @@ -168,6 +168,23 @@ * @libp2p/webtransport bumped from ^4.0.18 to ^4.0.19 * libp2p bumped from ^1.2.2 to ^1.2.3 +## [2.0.32](https://github.com/libp2p/js-libp2p/compare/multidim-interop-v2.0.31...multidim-interop-v2.0.32) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.22 to ^1.0.23 + * @libp2p/identify bumped from ^2.0.0 to ^2.0.1 + * @libp2p/mplex bumped from ^10.0.22 to ^10.0.23 + * @libp2p/ping bumped from ^1.0.17 to ^1.0.18 + * @libp2p/tcp bumped from ^9.0.24 to ^9.0.25 + * @libp2p/webrtc bumped from ^4.0.31 to ^4.0.32 + * @libp2p/websockets bumped from ^8.0.22 to ^8.0.23 + * @libp2p/webtransport bumped from ^4.0.30 to ^4.0.31 + * libp2p bumped from ^1.5.1 to ^1.5.2 + ## [2.0.31](https://github.com/libp2p/js-libp2p/compare/multidim-interop-v2.0.30...multidim-interop-v2.0.31) (2024-05-01) diff --git a/interop/package.json b/interop/package.json index 076424c806..1e2c46029a 100644 --- a/interop/package.json +++ b/interop/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/multidim-interop", - "version": "2.0.31", + "version": "2.0.32", "description": "Multidimensional interop tests", "author": "Glen De Cauwsemaecker / @marcopolo", "license": "Apache-2.0 OR MIT", @@ -57,18 +57,18 @@ "dependencies": { "@chainsafe/libp2p-noise": "^15.0.0", "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.22", - "@libp2p/identify": "^2.0.0", - "@libp2p/mplex": "^10.0.22", - "@libp2p/ping": "^1.0.17", - "@libp2p/tcp": "^9.0.24", - "@libp2p/webrtc": "^4.0.31", - "@libp2p/websockets": "^8.0.22", - "@libp2p/webtransport": "^4.0.30", + "@libp2p/circuit-relay-v2": "^1.0.23", + "@libp2p/identify": "^2.0.1", + "@libp2p/mplex": "^10.0.23", + "@libp2p/ping": "^1.0.18", + "@libp2p/tcp": "^9.0.25", + "@libp2p/webrtc": "^4.0.32", + "@libp2p/websockets": "^8.0.23", + "@libp2p/webtransport": "^4.0.31", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.1", "aegir": "^42.2.5", - "libp2p": "^1.5.1", + "libp2p": "^1.5.2", "redis": "^4.6.13" }, "browser": { diff --git a/packages/connection-encrypter-plaintext/CHANGELOG.md b/packages/connection-encrypter-plaintext/CHANGELOG.md index de2a975caf..d324c6ec41 100644 --- a/packages/connection-encrypter-plaintext/CHANGELOG.md +++ b/packages/connection-encrypter-plaintext/CHANGELOG.md @@ -72,6 +72,15 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.23](https://github.com/libp2p/js-libp2p/compare/plaintext-v1.0.22...plaintext-v1.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [1.0.22](https://github.com/libp2p/js-libp2p/compare/plaintext-v1.0.21...plaintext-v1.0.22) (2024-05-01) diff --git a/packages/connection-encrypter-plaintext/package.json b/packages/connection-encrypter-plaintext/package.json index a498bd728e..bd0dceebd6 100644 --- a/packages/connection-encrypter-plaintext/package.json +++ b/packages/connection-encrypter-plaintext/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/plaintext", - "version": "1.0.22", + "version": "1.0.23", "description": "An insecure connection encrypter", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/connection-encrypter-plaintext#readme", @@ -60,7 +60,7 @@ "uint8arraylist": "^2.4.8" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "@multiformats/multiaddr": "^12.2.1", diff --git a/packages/connection-encrypter-tls/CHANGELOG.md b/packages/connection-encrypter-tls/CHANGELOG.md index 7367c61267..1897fba319 100644 --- a/packages/connection-encrypter-tls/CHANGELOG.md +++ b/packages/connection-encrypter-tls/CHANGELOG.md @@ -6,6 +6,15 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.10](https://github.com/libp2p/js-libp2p/compare/tls-v1.0.9...tls-v1.0.10) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [1.0.9](https://github.com/libp2p/js-libp2p/compare/tls-v1.0.8...tls-v1.0.9) (2024-05-01) diff --git a/packages/connection-encrypter-tls/package.json b/packages/connection-encrypter-tls/package.json index b52bc81470..a30a9db979 100644 --- a/packages/connection-encrypter-tls/package.json +++ b/packages/connection-encrypter-tls/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/tls", - "version": "1.0.9", + "version": "1.0.10", "description": "A connection encrypter that uses TLS 1.3", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/connection-encrypter-tls#readme", @@ -63,7 +63,7 @@ "uint8arrays": "^5.0.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "@multiformats/multiaddr": "^12.2.1", diff --git a/packages/interface-compliance-tests/CHANGELOG.md b/packages/interface-compliance-tests/CHANGELOG.md index efd38db95b..7f855f554f 100644 --- a/packages/interface-compliance-tests/CHANGELOG.md +++ b/packages/interface-compliance-tests/CHANGELOG.md @@ -75,6 +75,17 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [5.4.4](https://github.com/libp2p/js-libp2p/compare/interface-compliance-tests-v5.4.3...interface-compliance-tests-v5.4.4) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [5.4.3](https://github.com/libp2p/js-libp2p/compare/interface-compliance-tests-v5.4.2...interface-compliance-tests-v5.4.3) (2024-05-01) diff --git a/packages/interface-compliance-tests/package.json b/packages/interface-compliance-tests/package.json index adec80666b..e4d4c33ce4 100644 --- a/packages/interface-compliance-tests/package.json +++ b/packages/interface-compliance-tests/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/interface-compliance-tests", - "version": "5.4.3", + "version": "5.4.4", "description": "Compliance tests for JS libp2p interfaces", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-compliance-tests#readme", @@ -113,13 +113,13 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/logger": "^4.0.12", "@libp2p/multistream-select": "^5.1.9", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "abortable-iterator": "^5.0.1", "aegir": "^42.2.5", diff --git a/packages/interface-internal/CHANGELOG.md b/packages/interface-internal/CHANGELOG.md index bf38ec3d26..a782741b25 100644 --- a/packages/interface-internal/CHANGELOG.md +++ b/packages/interface-internal/CHANGELOG.md @@ -32,6 +32,15 @@ * dependencies * @libp2p/peer-collections bumped from ^5.1.3 to ^5.1.4 +## [1.2.1](https://github.com/libp2p/js-libp2p/compare/interface-internal-v1.2.0...interface-internal-v1.2.1) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + ## [1.2.0](https://github.com/libp2p/js-libp2p/compare/interface-internal-v1.1.1...interface-internal-v1.2.0) (2024-05-01) diff --git a/packages/interface-internal/package.json b/packages/interface-internal/package.json index 8fdfab8549..405fe8d483 100644 --- a/packages/interface-internal/package.json +++ b/packages/interface-internal/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/interface-internal", - "version": "1.2.0", + "version": "1.2.1", "description": "Interfaces implemented by internal libp2p components", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-internal#readme", @@ -49,7 +49,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/peer-collections": "^5.2.1", "@multiformats/multiaddr": "^12.2.1", "uint8arraylist": "^2.4.8" }, diff --git a/packages/kad-dht/CHANGELOG.md b/packages/kad-dht/CHANGELOG.md index f0f44498cb..f18397535f 100644 --- a/packages/kad-dht/CHANGELOG.md +++ b/packages/kad-dht/CHANGELOG.md @@ -106,6 +106,30 @@ * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 * @libp2p/peer-store bumped from ^10.0.9 to ^10.0.10 +## [12.0.16](https://github.com/libp2p/js-libp2p/compare/kad-dht-v12.0.15...kad-dht-v12.0.16) (2024-05-14) + + +### Bug Fixes + +* increase default DHT query timeout ([#2525](https://github.com/libp2p/js-libp2p/issues/2525)) ([1488a73](https://github.com/libp2p/js-libp2p/commit/1488a7371eb80751662b7ab71967ab537d912119)) +* load peerstore peers into routing table at startup ([#2534](https://github.com/libp2p/js-libp2p/issues/2534)) ([510d9ce](https://github.com/libp2p/js-libp2p/commit/510d9ce6563095e9d01a64e88dd7dab8e18641ee)) +* time out DHT network requests separately from query ([#2524](https://github.com/libp2p/js-libp2p/issues/2524)) ([bfa7660](https://github.com/libp2p/js-libp2p/commit/bfa7660d5f91d1b9bf4a6859d4567d3613404de2)) +* use prefix binary tree for routing table ([#2536](https://github.com/libp2p/js-libp2p/issues/2536)) ([7ae6063](https://github.com/libp2p/js-libp2p/commit/7ae6063dfbc754f95a2c4bd0a6bd146f2989a5f5)) +* use xor-compare for finding closer peers ([#2538](https://github.com/libp2p/js-libp2p/issues/2538)) ([83c14d0](https://github.com/libp2p/js-libp2p/commit/83c14d08f4f10a207f142f0d7d383e0fbff7858a)) + + +### Dependencies + +* **dev:** bump execa from 8.0.1 to 9.0.2 ([#2542](https://github.com/libp2p/js-libp2p/issues/2542)) ([43046b9](https://github.com/libp2p/js-libp2p/commit/43046b9aebebfadeb1c092a1ef768c63c32298e3)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + * @libp2p/peer-store bumped from ^10.0.17 to ^10.0.18 + ## [12.0.15](https://github.com/libp2p/js-libp2p/compare/kad-dht-v12.0.14...kad-dht-v12.0.15) (2024-05-01) diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index 7e9135c96c..510c58e2ad 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/kad-dht", - "version": "12.0.15", + "version": "12.0.16", "description": "JavaScript implementation of the Kad-DHT for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/kad-dht#readme", @@ -59,11 +59,11 @@ "dependencies": { "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/record": "^4.0.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "any-signal": "^4.1.1", "hashlru": "^2.3.0", @@ -89,10 +89,10 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/peer-store": "^10.0.17", + "@libp2p/peer-store": "^10.0.18", "@types/lodash.random": "^3.2.9", "@types/lodash.range": "^3.2.9", "@types/sinon": "^17.0.3", diff --git a/packages/libp2p/CHANGELOG.md b/packages/libp2p/CHANGELOG.md index 68578cd18f..57aa59d412 100644 --- a/packages/libp2p/CHANGELOG.md +++ b/packages/libp2p/CHANGELOG.md @@ -110,6 +110,34 @@ * @libp2p/tcp bumped from ^9.0.14 to ^9.0.15 * @libp2p/websockets bumped from ^8.0.14 to ^8.0.15 +## [1.5.2](https://github.com/libp2p/js-libp2p/compare/libp2p-v1.5.1...libp2p-v1.5.2) (2024-05-14) + + +### Bug Fixes + +* add randomwalk to components ([#2518](https://github.com/libp2p/js-libp2p/issues/2518)) ([a11e135](https://github.com/libp2p/js-libp2p/commit/a11e135c221543b20fe746ab8ae85d54316ffe97)) +* pass autodial config thorugh in connection manager init ([#2523](https://github.com/libp2p/js-libp2p/issues/2523)) ([767b23e](https://github.com/libp2p/js-libp2p/commit/767b23e710b1a9b545421365f2f9603c37cbec78)) +* prune connections based on stream counts and direction ([#2521](https://github.com/libp2p/js-libp2p/issues/2521)) ([8e36fc5](https://github.com/libp2p/js-libp2p/commit/8e36fc5094c69083989650ccf3dfff001e5b0034)) +* use xor-compare for finding closer peers ([#2538](https://github.com/libp2p/js-libp2p/issues/2538)) ([83c14d0](https://github.com/libp2p/js-libp2p/commit/83c14d08f4f10a207f142f0d7d383e0fbff7858a)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/peer-store bumped from ^10.0.17 to ^10.0.18 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.22 to ^1.0.23 + * @libp2p/identify bumped from ^2.0.0 to ^2.0.1 + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + * @libp2p/mplex bumped from ^10.0.22 to ^10.0.23 + * @libp2p/plaintext bumped from ^1.0.22 to ^1.0.23 + * @libp2p/tcp bumped from ^9.0.24 to ^9.0.25 + * @libp2p/websockets bumped from ^8.0.22 to ^8.0.23 + ## [1.5.1](https://github.com/libp2p/js-libp2p/compare/libp2p-v1.5.0...libp2p-v1.5.1) (2024-05-01) diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 41cbb0fe4f..a5363b86eb 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -1,6 +1,6 @@ { "name": "libp2p", - "version": "1.5.1", + "version": "1.5.2", "description": "JavaScript implementation of libp2p, a modular peer to peer network stack", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p#readme", @@ -87,14 +87,14 @@ "dependencies": { "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/logger": "^4.0.12", "@libp2p/multistream-select": "^5.1.9", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/peer-store": "^10.0.17", - "@libp2p/utils": "^5.4.0", + "@libp2p/peer-store": "^10.0.18", + "@libp2p/utils": "^5.4.1", "@multiformats/dns": "^1.0.5", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-matcher": "^1.2.0", @@ -112,13 +112,13 @@ }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.22", - "@libp2p/identify": "^2.0.0", - "@libp2p/interface-compliance-tests": "^5.4.3", - "@libp2p/mplex": "^10.0.22", - "@libp2p/plaintext": "^1.0.22", - "@libp2p/tcp": "^9.0.24", - "@libp2p/websockets": "^8.0.22", + "@libp2p/circuit-relay-v2": "^1.0.23", + "@libp2p/identify": "^2.0.1", + "@libp2p/interface-compliance-tests": "^5.4.4", + "@libp2p/mplex": "^10.0.23", + "@libp2p/plaintext": "^1.0.23", + "@libp2p/tcp": "^9.0.25", + "@libp2p/websockets": "^8.0.23", "@multiformats/mafmt": "^12.1.6", "aegir": "^42.2.5", "delay": "^6.0.0", diff --git a/packages/metrics-prometheus/CHANGELOG.md b/packages/metrics-prometheus/CHANGELOG.md index 02436675e9..ee858848a9 100644 --- a/packages/metrics-prometheus/CHANGELOG.md +++ b/packages/metrics-prometheus/CHANGELOG.md @@ -81,6 +81,15 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [3.0.23](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v3.0.22...prometheus-metrics-v3.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [3.0.22](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v3.0.21...prometheus-metrics-v3.0.22) (2024-05-01) diff --git a/packages/metrics-prometheus/package.json b/packages/metrics-prometheus/package.json index 8ced2d12d8..56970f7f29 100644 --- a/packages/metrics-prometheus/package.json +++ b/packages/metrics-prometheus/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/prometheus-metrics", - "version": "3.0.22", + "version": "3.0.23", "description": "Collect libp2p metrics for scraping by Prometheus or Graphana", "author": "", "license": "Apache-2.0 OR MIT", @@ -55,7 +55,7 @@ "uint8arraylist": "^2.4.8" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "@multiformats/multiaddr": "^12.2.1", diff --git a/packages/peer-collections/CHANGELOG.md b/packages/peer-collections/CHANGELOG.md index dca9b1af37..9cecf914c0 100644 --- a/packages/peer-collections/CHANGELOG.md +++ b/packages/peer-collections/CHANGELOG.md @@ -35,6 +35,20 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [5.2.1](https://github.com/libp2p/js-libp2p/compare/peer-collections-v5.2.0...peer-collections-v5.2.1) (2024-05-14) + + +### Bug Fixes + +* update peer filter jsdoc comments ([#2543](https://github.com/libp2p/js-libp2p/issues/2543)) ([9d4b059](https://github.com/libp2p/js-libp2p/commit/9d4b0596fa3066dce145f54290984a9870cbc934)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [5.2.0](https://github.com/libp2p/js-libp2p/compare/peer-collections-v5.1.11...peer-collections-v5.2.0) (2024-05-01) diff --git a/packages/peer-collections/package.json b/packages/peer-collections/package.json index ebebce0972..2c129041f3 100644 --- a/packages/peer-collections/package.json +++ b/packages/peer-collections/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-collections", - "version": "5.2.0", + "version": "5.2.1", "description": "Stores values against a peer id", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-collections#readme", @@ -56,7 +56,7 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0" + "@libp2p/utils": "^5.4.1" }, "devDependencies": { "@libp2p/peer-id-factory": "^4.1.1", diff --git a/packages/peer-discovery-bootstrap/CHANGELOG.md b/packages/peer-discovery-bootstrap/CHANGELOG.md index e464ee056a..4acab2b46f 100644 --- a/packages/peer-discovery-bootstrap/CHANGELOG.md +++ b/packages/peer-discovery-bootstrap/CHANGELOG.md @@ -83,6 +83,15 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.23](https://github.com/libp2p/js-libp2p/compare/bootstrap-v10.0.22...bootstrap-v10.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [10.0.22](https://github.com/libp2p/js-libp2p/compare/bootstrap-v10.0.21...bootstrap-v10.0.22) (2024-05-01) diff --git a/packages/peer-discovery-bootstrap/package.json b/packages/peer-discovery-bootstrap/package.json index a516492136..80157bbc13 100644 --- a/packages/peer-discovery-bootstrap/package.json +++ b/packages/peer-discovery-bootstrap/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/bootstrap", - "version": "10.0.22", + "version": "10.0.23", "description": "Peer discovery via a list of bootstrap peers", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-discovery-bootstrap#readme", @@ -60,7 +60,7 @@ "@multiformats/multiaddr": "^12.2.1" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "aegir": "^42.2.5", "sinon-ts": "^2.0.0" diff --git a/packages/peer-discovery-mdns/CHANGELOG.md b/packages/peer-discovery-mdns/CHANGELOG.md index ab558ad670..227d051580 100644 --- a/packages/peer-discovery-mdns/CHANGELOG.md +++ b/packages/peer-discovery-mdns/CHANGELOG.md @@ -105,6 +105,18 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.23](https://github.com/libp2p/js-libp2p/compare/mdns-v10.0.22...mdns-v10.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [10.0.22](https://github.com/libp2p/js-libp2p/compare/mdns-v10.0.21...mdns-v10.0.22) (2024-05-01) diff --git a/packages/peer-discovery-mdns/package.json b/packages/peer-discovery-mdns/package.json index 92c0cd86a1..7455093d63 100644 --- a/packages/peer-discovery-mdns/package.json +++ b/packages/peer-discovery-mdns/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/mdns", - "version": "10.0.22", + "version": "10.0.23", "description": "Node.js libp2p mDNS discovery implementation for peer discovery", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-discovery-mdns#readme", @@ -51,16 +51,16 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", "multicast-dns": "^7.2.5" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "aegir": "^42.2.5", diff --git a/packages/peer-record/CHANGELOG.md b/packages/peer-record/CHANGELOG.md index cf9b28c3ee..28252118ef 100644 --- a/packages/peer-record/CHANGELOG.md +++ b/packages/peer-record/CHANGELOG.md @@ -60,6 +60,15 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [7.0.17](https://github.com/libp2p/js-libp2p/compare/peer-record-v7.0.16...peer-record-v7.0.17) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [7.0.16](https://github.com/libp2p/js-libp2p/compare/peer-record-v7.0.15...peer-record-v7.0.16) (2024-05-01) diff --git a/packages/peer-record/package.json b/packages/peer-record/package.json index c79d4c740f..16e98ae2fb 100644 --- a/packages/peer-record/package.json +++ b/packages/peer-record/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-record", - "version": "7.0.16", + "version": "7.0.17", "description": "Used to transfer signed peer data across the network", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-record#readme", @@ -64,7 +64,7 @@ "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "protons-runtime": "^5.4.0", "uint8-varint": "^2.0.4", diff --git a/packages/peer-store/CHANGELOG.md b/packages/peer-store/CHANGELOG.md index 550da15639..0a96772fb4 100644 --- a/packages/peer-store/CHANGELOG.md +++ b/packages/peer-store/CHANGELOG.md @@ -68,6 +68,16 @@ * dependencies * @libp2p/peer-record bumped from ^7.0.8 to ^7.0.9 +## [10.0.18](https://github.com/libp2p/js-libp2p/compare/peer-store-v10.0.17...peer-store-v10.0.18) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/peer-record bumped from ^7.0.16 to ^7.0.17 + ## [10.0.17](https://github.com/libp2p/js-libp2p/compare/peer-store-v10.0.16...peer-store-v10.0.17) (2024-05-01) diff --git a/packages/peer-store/package.json b/packages/peer-store/package.json index 6ddec21bca..a171ddf10d 100644 --- a/packages/peer-store/package.json +++ b/packages/peer-store/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-store", - "version": "10.0.17", + "version": "10.0.18", "description": "Stores information about peers libp2p knows on the network", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-store#readme", @@ -60,9 +60,9 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.16", + "@libp2p/peer-record": "^7.0.17", "@multiformats/multiaddr": "^12.2.1", "interface-datastore": "^8.2.11", "it-all": "^3.0.4", diff --git a/packages/protocol-autonat/CHANGELOG.md b/packages/protocol-autonat/CHANGELOG.md index f2fffcdf25..a6c7901357 100644 --- a/packages/protocol-autonat/CHANGELOG.md +++ b/packages/protocol-autonat/CHANGELOG.md @@ -55,6 +55,16 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.20](https://github.com/libp2p/js-libp2p/compare/autonat-v1.0.19...autonat-v1.0.20) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [1.0.19](https://github.com/libp2p/js-libp2p/compare/autonat-v1.0.18...autonat-v1.0.19) (2024-05-01) diff --git a/packages/protocol-autonat/package.json b/packages/protocol-autonat/package.json index da4b1e81b4..c0b895313f 100644 --- a/packages/protocol-autonat/package.json +++ b/packages/protocol-autonat/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/autonat", - "version": "1.0.19", + "version": "1.0.20", "description": "Implementation of Autonat Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-autonat#readme", @@ -53,10 +53,10 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "it-first": "^3.0.4", "it-length-prefixed": "^9.0.4", diff --git a/packages/protocol-dcutr/CHANGELOG.md b/packages/protocol-dcutr/CHANGELOG.md index cbae3ac8ad..ca726615b3 100644 --- a/packages/protocol-dcutr/CHANGELOG.md +++ b/packages/protocol-dcutr/CHANGELOG.md @@ -44,6 +44,16 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.20](https://github.com/libp2p/js-libp2p/compare/dcutr-v1.0.19...dcutr-v1.0.20) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [1.0.19](https://github.com/libp2p/js-libp2p/compare/dcutr-v1.0.18...dcutr-v1.0.19) (2024-05-01) diff --git a/packages/protocol-dcutr/package.json b/packages/protocol-dcutr/package.json index a3f15d6852..366ad5c86a 100644 --- a/packages/protocol-dcutr/package.json +++ b/packages/protocol-dcutr/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/dcutr", - "version": "1.0.19", + "version": "1.0.20", "description": "Implementation of the DCUtR Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-dcutr#readme", @@ -53,8 +53,8 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", - "@libp2p/utils": "^5.4.0", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-matcher": "^1.2.0", "delay": "^6.0.0", diff --git a/packages/protocol-echo/CHANGELOG.md b/packages/protocol-echo/CHANGELOG.md index 74e6f33821..30312d7f67 100644 --- a/packages/protocol-echo/CHANGELOG.md +++ b/packages/protocol-echo/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [1.0.6](https://github.com/libp2p/js-libp2p/compare/echo-v1.0.5...echo-v1.0.6) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + ## [1.0.5](https://github.com/libp2p/js-libp2p/compare/echo-v1.0.4...echo-v1.0.5) (2024-05-01) diff --git a/packages/protocol-echo/package.json b/packages/protocol-echo/package.json index fa7bc5ece5..4263ad15be 100644 --- a/packages/protocol-echo/package.json +++ b/packages/protocol-echo/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/echo", - "version": "1.0.5", + "version": "1.0.6", "description": "Implementation of an Echo protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-echo#readme", @@ -53,7 +53,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "it-pipe": "^3.0.1" }, "devDependencies": { diff --git a/packages/protocol-fetch/CHANGELOG.md b/packages/protocol-fetch/CHANGELOG.md index 07d5854013..f45be2c769 100644 --- a/packages/protocol-fetch/CHANGELOG.md +++ b/packages/protocol-fetch/CHANGELOG.md @@ -48,6 +48,15 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [1.0.17](https://github.com/libp2p/js-libp2p/compare/fetch-v1.0.16...fetch-v1.0.17) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + ## [1.0.16](https://github.com/libp2p/js-libp2p/compare/fetch-v1.0.15...fetch-v1.0.16) (2024-05-01) diff --git a/packages/protocol-fetch/package.json b/packages/protocol-fetch/package.json index 664c6c898a..9d852ee899 100644 --- a/packages/protocol-fetch/package.json +++ b/packages/protocol-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/fetch", - "version": "1.0.16", + "version": "1.0.17", "description": "Implementation of the Fetch Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-fetch#readme", @@ -53,7 +53,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "it-protobuf-stream": "^1.1.2", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", diff --git a/packages/protocol-identify/CHANGELOG.md b/packages/protocol-identify/CHANGELOG.md index 31400e4b6e..3c94125e80 100644 --- a/packages/protocol-identify/CHANGELOG.md +++ b/packages/protocol-identify/CHANGELOG.md @@ -76,6 +76,18 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [2.0.1](https://github.com/libp2p/js-libp2p/compare/identify-v2.0.0...identify-v2.0.1) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-record bumped from ^7.0.16 to ^7.0.17 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [2.0.0](https://github.com/libp2p/js-libp2p/compare/identify-v1.0.21...identify-v2.0.0) (2024-05-01) diff --git a/packages/protocol-identify/package.json b/packages/protocol-identify/package.json index 840526b41e..def8046c9d 100644 --- a/packages/protocol-identify/package.json +++ b/packages/protocol-identify/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/identify", - "version": "2.0.0", + "version": "2.0.1", "description": "Implementation of the Identify Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-identify#readme", @@ -53,9 +53,9 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.16", + "@libp2p/peer-record": "^7.0.17", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-matcher": "^1.2.0", "it-drain": "^3.0.7", @@ -67,7 +67,7 @@ "wherearewe": "^2.0.1" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "aegir": "^42.2.5", diff --git a/packages/protocol-perf/CHANGELOG.md b/packages/protocol-perf/CHANGELOG.md index 937bdec900..79894f9743 100644 --- a/packages/protocol-perf/CHANGELOG.md +++ b/packages/protocol-perf/CHANGELOG.md @@ -82,6 +82,17 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [3.0.23](https://github.com/libp2p/js-libp2p/compare/perf-v3.0.22...perf-v3.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [3.0.22](https://github.com/libp2p/js-libp2p/compare/perf-v3.0.21...perf-v3.0.22) (2024-05-01) diff --git a/packages/protocol-perf/package.json b/packages/protocol-perf/package.json index 57d0c3139c..0033f4f23d 100644 --- a/packages/protocol-perf/package.json +++ b/packages/protocol-perf/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/perf", - "version": "3.0.22", + "version": "3.0.23", "description": "Implementation of Perf Protocol", "author": "@maschad / @marcopolo", "license": "Apache-2.0 OR MIT", @@ -53,12 +53,12 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@multiformats/multiaddr": "^12.2.1", "it-pushable": "^3.2.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "aegir": "^42.2.5", "it-last": "^3.0.4", diff --git a/packages/protocol-ping/CHANGELOG.md b/packages/protocol-ping/CHANGELOG.md index e40210927e..57d52107a3 100644 --- a/packages/protocol-ping/CHANGELOG.md +++ b/packages/protocol-ping/CHANGELOG.md @@ -50,6 +50,15 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [1.0.18](https://github.com/libp2p/js-libp2p/compare/ping-v1.0.17...ping-v1.0.18) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + ## [1.0.17](https://github.com/libp2p/js-libp2p/compare/ping-v1.0.16...ping-v1.0.17) (2024-05-01) diff --git a/packages/protocol-ping/package.json b/packages/protocol-ping/package.json index 46c0623d3d..d3298327d2 100644 --- a/packages/protocol-ping/package.json +++ b/packages/protocol-ping/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/ping", - "version": "1.0.17", + "version": "1.0.18", "description": "Implementation of Ping Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-ping#readme", @@ -52,7 +52,7 @@ "dependencies": { "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@multiformats/multiaddr": "^12.2.1", "it-first": "^3.0.4", "it-pipe": "^3.0.1", diff --git a/packages/pubsub-floodsub/CHANGELOG.md b/packages/pubsub-floodsub/CHANGELOG.md index cb0262a55e..caf6406358 100644 --- a/packages/pubsub-floodsub/CHANGELOG.md +++ b/packages/pubsub-floodsub/CHANGELOG.md @@ -98,6 +98,18 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [9.0.19](https://github.com/libp2p/js-libp2p/compare/floodsub-v9.0.18...floodsub-v9.0.19) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/pubsub bumped from ^9.0.17 to ^9.0.18 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + ## [9.0.18](https://github.com/libp2p/js-libp2p/compare/floodsub-v9.0.17...floodsub-v9.0.18) (2024-05-01) diff --git a/packages/pubsub-floodsub/package.json b/packages/pubsub-floodsub/package.json index b85487e568..849c71f60f 100644 --- a/packages/pubsub-floodsub/package.json +++ b/packages/pubsub-floodsub/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/floodsub", - "version": "9.0.18", + "version": "9.0.19", "description": "libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/pubsub-floodsub#readme", @@ -61,15 +61,15 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/pubsub": "^9.0.17", + "@libp2p/pubsub": "^9.0.18", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.0.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id-factory": "^4.1.1", "@multiformats/multiaddr": "^12.2.1", "@types/sinon": "^17.0.3", diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index 7acaa505e2..f11d140d9a 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -75,6 +75,17 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [9.0.18](https://github.com/libp2p/js-libp2p/compare/pubsub-v9.0.17...pubsub-v9.0.18) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [9.0.17](https://github.com/libp2p/js-libp2p/compare/pubsub-v9.0.16...pubsub-v9.0.17) (2024-05-01) diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 066fca7b19..73c98029c4 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/pubsub", - "version": "9.0.17", + "version": "9.0.18", "description": "libp2p pubsub base class", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/pubsub#readme", @@ -86,10 +86,10 @@ "dependencies": { "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "it-length-prefixed": "^9.0.4", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", diff --git a/packages/stream-multiplexer-mplex/CHANGELOG.md b/packages/stream-multiplexer-mplex/CHANGELOG.md index 269bc841bb..a3a6ac5768 100644 --- a/packages/stream-multiplexer-mplex/CHANGELOG.md +++ b/packages/stream-multiplexer-mplex/CHANGELOG.md @@ -78,6 +78,17 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.23](https://github.com/libp2p/js-libp2p/compare/mplex-v10.0.22...mplex-v10.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [10.0.22](https://github.com/libp2p/js-libp2p/compare/mplex-v10.0.21...mplex-v10.0.22) (2024-05-01) diff --git a/packages/stream-multiplexer-mplex/package.json b/packages/stream-multiplexer-mplex/package.json index 60fc4e1fcc..9643069b5a 100644 --- a/packages/stream-multiplexer-mplex/package.json +++ b/packages/stream-multiplexer-mplex/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/mplex", - "version": "10.0.22", + "version": "10.0.23", "description": "JavaScript implementation of https://github.com/libp2p/mplex", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/stream-multiplexer-mplex#readme", @@ -63,7 +63,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", @@ -72,7 +72,7 @@ "uint8arrays": "^5.0.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "aegir": "^42.2.5", "benchmark": "^2.1.4", diff --git a/packages/transport-circuit-relay-v2/CHANGELOG.md b/packages/transport-circuit-relay-v2/CHANGELOG.md index 56a5ae5c79..2ac9c78d1c 100644 --- a/packages/transport-circuit-relay-v2/CHANGELOG.md +++ b/packages/transport-circuit-relay-v2/CHANGELOG.md @@ -101,6 +101,20 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.23](https://github.com/libp2p/js-libp2p/compare/circuit-relay-v2-v1.0.22...circuit-relay-v2-v1.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/peer-collections bumped from ^5.2.0 to ^5.2.1 + * @libp2p/peer-record bumped from ^7.0.16 to ^7.0.17 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [1.0.22](https://github.com/libp2p/js-libp2p/compare/circuit-relay-v2-v1.0.21...circuit-relay-v2-v1.0.22) (2024-05-01) diff --git a/packages/transport-circuit-relay-v2/package.json b/packages/transport-circuit-relay-v2/package.json index 0e2484c5fb..764941de74 100644 --- a/packages/transport-circuit-relay-v2/package.json +++ b/packages/transport-circuit-relay-v2/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/circuit-relay-v2", - "version": "1.0.22", + "version": "1.0.23", "description": "Implementation of Circuit Relay v2", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-circuit-relay-v2#readme", @@ -53,11 +53,11 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", - "@libp2p/peer-collections": "^5.2.0", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.16", - "@libp2p/utils": "^5.4.0", + "@libp2p/peer-record": "^7.0.17", + "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.1", "any-signal": "^4.1.1", @@ -71,7 +71,7 @@ "uint8arrays": "^5.0.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "aegir": "^42.2.5", diff --git a/packages/transport-tcp/CHANGELOG.md b/packages/transport-tcp/CHANGELOG.md index 572e8d9fc5..a53185fb76 100644 --- a/packages/transport-tcp/CHANGELOG.md +++ b/packages/transport-tcp/CHANGELOG.md @@ -89,6 +89,17 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [9.0.25](https://github.com/libp2p/js-libp2p/compare/tcp-v9.0.24...tcp-v9.0.25) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [9.0.24](https://github.com/libp2p/js-libp2p/compare/tcp-v9.0.23...tcp-v9.0.24) (2024-05-01) diff --git a/packages/transport-tcp/package.json b/packages/transport-tcp/package.json index ed1cdedcb9..c41b1a592b 100644 --- a/packages/transport-tcp/package.json +++ b/packages/transport-tcp/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/tcp", - "version": "9.0.24", + "version": "9.0.25", "description": "A TCP transport for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-tcp#readme", @@ -57,14 +57,14 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.1", "@types/sinon": "^17.0.3", "stream-to-it": "^1.0.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "aegir": "^42.2.5", "it-all": "^3.0.4", diff --git a/packages/transport-webrtc/CHANGELOG.md b/packages/transport-webrtc/CHANGELOG.md index cd15f20a89..ec0d743942 100644 --- a/packages/transport-webrtc/CHANGELOG.md +++ b/packages/transport-webrtc/CHANGELOG.md @@ -111,6 +111,22 @@ * @libp2p/websockets bumped from ^8.0.14 to ^8.0.15 * libp2p bumped from ^1.2.2 to ^1.2.3 +## [4.0.32](https://github.com/libp2p/js-libp2p/compare/webrtc-v4.0.31...webrtc-v4.0.32) (2024-05-14) + + +### Dependencies + +* bump node-datachannel from 0.8.0 to 0.9.0 ([#2532](https://github.com/libp2p/js-libp2p/issues/2532)) ([d9366f9](https://github.com/libp2p/js-libp2p/commit/d9366f9aa1c88e3fc4ba281307dc11266a9e388b)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.22 to ^1.0.23 + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + * @libp2p/websockets bumped from ^8.0.22 to ^8.0.23 + * libp2p bumped from ^1.5.1 to ^1.5.2 + ## [4.0.31](https://github.com/libp2p/js-libp2p/compare/webrtc-v4.0.30...webrtc-v4.0.31) (2024-05-01) diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index 65b892fa36..42b84a57a6 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/webrtc", - "version": "4.0.31", + "version": "4.0.32", "description": "A libp2p transport using WebRTC connections", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webrtc#readme", @@ -52,9 +52,9 @@ "dependencies": { "@chainsafe/libp2p-noise": "^15.0.0", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-matcher": "^1.2.0", @@ -77,11 +77,11 @@ }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.22", - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/circuit-relay-v2": "^1.0.23", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/websockets": "^8.0.22", + "@libp2p/websockets": "^8.0.23", "@types/sinon": "^17.0.3", "aegir": "^42.2.5", "delay": "^6.0.0", @@ -91,7 +91,7 @@ "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "it-to-buffer": "^4.0.5", - "libp2p": "^1.5.1", + "libp2p": "^1.5.2", "p-retry": "^6.2.0", "protons": "^7.5.0", "sinon": "^17.0.1", diff --git a/packages/transport-websockets/CHANGELOG.md b/packages/transport-websockets/CHANGELOG.md index 9a1263affd..5ee5a4aa9d 100644 --- a/packages/transport-websockets/CHANGELOG.md +++ b/packages/transport-websockets/CHANGELOG.md @@ -70,6 +70,17 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [8.0.23](https://github.com/libp2p/js-libp2p/compare/websockets-v8.0.22...websockets-v8.0.23) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.3 to ^5.4.4 + ## [8.0.22](https://github.com/libp2p/js-libp2p/compare/websockets-v8.0.21...websockets-v8.0.22) (2024-05-01) diff --git a/packages/transport-websockets/package.json b/packages/transport-websockets/package.json index adb8fd9517..3b8092031c 100644 --- a/packages/transport-websockets/package.json +++ b/packages/transport-websockets/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/websockets", - "version": "8.0.22", + "version": "8.0.23", "description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-websockets#readme", @@ -75,7 +75,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-to-uri": "^10.0.1", @@ -86,7 +86,7 @@ "ws": "^8.16.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.3", + "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "aegir": "^42.2.5", "is-loopback-addr": "^2.0.2", diff --git a/packages/transport-webtransport/CHANGELOG.md b/packages/transport-webtransport/CHANGELOG.md index 845eb38691..7531488964 100644 --- a/packages/transport-webtransport/CHANGELOG.md +++ b/packages/transport-webtransport/CHANGELOG.md @@ -96,6 +96,17 @@ * devDependencies * libp2p bumped from ^1.2.2 to ^1.2.3 +## [4.0.31](https://github.com/libp2p/js-libp2p/compare/webtransport-v4.0.30...webtransport-v4.0.31) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + * devDependencies + * libp2p bumped from ^1.5.1 to ^1.5.2 + ## [4.0.30](https://github.com/libp2p/js-libp2p/compare/webtransport-v4.0.29...webtransport-v4.0.30) (2024-05-01) diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index 7ce5398a72..7fcb3a0ea0 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/webtransport", - "version": "4.0.30", + "version": "4.0.31", "description": "JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webtransport#readme", @@ -53,7 +53,7 @@ "@chainsafe/libp2p-noise": "^15.0.0", "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.0", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "@multiformats/multiaddr-matcher": "^1.2.0", "it-stream-types": "^2.0.1", @@ -69,7 +69,7 @@ "aegir": "^42.2.5", "it-map": "^3.1.0", "it-to-buffer": "^4.0.7", - "libp2p": "^1.5.1", + "libp2p": "^1.5.2", "p-defer": "^4.0.1", "p-wait-for": "^5.0.2" }, diff --git a/packages/upnp-nat/CHANGELOG.md b/packages/upnp-nat/CHANGELOG.md index d9f97cb9bf..d7ae0acbbb 100644 --- a/packages/upnp-nat/CHANGELOG.md +++ b/packages/upnp-nat/CHANGELOG.md @@ -64,6 +64,16 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.21](https://github.com/libp2p/js-libp2p/compare/upnp-nat-v1.0.20...upnp-nat-v1.0.21) (2024-05-14) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface-internal bumped from ^1.2.0 to ^1.2.1 + * @libp2p/utils bumped from ^5.4.0 to ^5.4.1 + ## [1.0.20](https://github.com/libp2p/js-libp2p/compare/upnp-nat-v1.0.19...upnp-nat-v1.0.20) (2024-05-01) diff --git a/packages/upnp-nat/package.json b/packages/upnp-nat/package.json index a39e066e70..6f92ce6de0 100644 --- a/packages/upnp-nat/package.json +++ b/packages/upnp-nat/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/upnp-nat", - "version": "1.0.20", + "version": "1.0.21", "description": "UPnP NAT hole punching", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/upnp-nat#readme", @@ -52,8 +52,8 @@ "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.13", "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.0", - "@libp2p/utils": "^5.4.0", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/utils": "^5.4.1", "@multiformats/multiaddr": "^12.2.1", "wherearewe": "^2.0.1" }, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 29ec011e5a..84be1a73de 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -36,6 +36,15 @@ * @libp2p/logger bumped from ^4.0.2 to ^4.0.3 * @libp2p/peer-id-factory bumped from ^4.0.1 to ^4.0.2 +## [5.4.1](https://github.com/libp2p/js-libp2p/compare/utils-v5.4.0...utils-v5.4.1) (2024-05-14) + + +### Bug Fixes + +* prune connections based on stream counts and direction ([#2521](https://github.com/libp2p/js-libp2p/issues/2521)) ([8e36fc5](https://github.com/libp2p/js-libp2p/commit/8e36fc5094c69083989650ccf3dfff001e5b0034)) +* time out DHT network requests separately from query ([#2524](https://github.com/libp2p/js-libp2p/issues/2524)) ([bfa7660](https://github.com/libp2p/js-libp2p/commit/bfa7660d5f91d1b9bf4a6859d4567d3613404de2)) +* use xor-compare for finding closer peers ([#2538](https://github.com/libp2p/js-libp2p/issues/2538)) ([83c14d0](https://github.com/libp2p/js-libp2p/commit/83c14d08f4f10a207f142f0d7d383e0fbff7858a)) + ## [5.4.0](https://github.com/libp2p/js-libp2p/compare/utils-v5.3.2...utils-v5.4.0) (2024-05-01) diff --git a/packages/utils/package.json b/packages/utils/package.json index a61f94e57e..994c513cf3 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/utils", - "version": "5.4.0", + "version": "5.4.1", "description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme", From 3c73707ff5c1635d4ab26dcc39499ab497d217a6 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Wed, 15 May 2024 12:33:03 +0100 Subject: [PATCH 15/30] feat: add optional topology filter (#2544) Adds a `filter` option to topologies to allow filtering out duplicate notifications. --- packages/interface/src/topology/index.ts | 28 +- packages/libp2p/src/registrar.ts | 15 + packages/libp2p/test/registrar/errors.spec.ts | 54 ++ .../libp2p/test/registrar/protocols.spec.ts | 58 ++ .../libp2p/test/registrar/registrar.spec.ts | 629 +++++++++--------- 5 files changed, 458 insertions(+), 326 deletions(-) create mode 100644 packages/libp2p/test/registrar/errors.spec.ts create mode 100644 packages/libp2p/test/registrar/protocols.spec.ts diff --git a/packages/interface/src/topology/index.ts b/packages/interface/src/topology/index.ts index 76bb64c1ee..1df12a601e 100644 --- a/packages/interface/src/topology/index.ts +++ b/packages/interface/src/topology/index.ts @@ -1,10 +1,36 @@ import type { Connection } from '../connection/index.js' import type { PeerId } from '../peer-id/index.js' +/** + * A topology filter + * + * @see https://libp2p.github.io/js-libp2p/functions/_libp2p_peer_collections.peerFilter-1.html + */ +export interface TopologyFilter { + has (peerId: PeerId): boolean + add (peerId: PeerId): void + remove (peerId: PeerId): void +} + +/** + * A topology is a network overlay that contains a subset of peers in the + * complete network. + * + * It is a way to be notified when peers that support a given protocol connect + * to or disconnect from the current node. + */ export interface Topology { + /** + * An optional filter can prevent duplicate topology notifications for the + * same peer. + */ + filter?: TopologyFilter + /** * If true, invoke `onConnect` for this topology on transient (e.g. short-lived - * and/or data-limited) connections. (default: false) + * and/or data-limited) connections + * + * @default false */ notifyOnTransient?: boolean diff --git a/packages/libp2p/src/registrar.ts b/packages/libp2p/src/registrar.ts index d6f669d724..0936096c41 100644 --- a/packages/libp2p/src/registrar.ts +++ b/packages/libp2p/src/registrar.ts @@ -164,6 +164,11 @@ export class DefaultRegistrar implements Registrar { } for (const topology of topologies.values()) { + if (topology.filter?.has(remotePeer) === false) { + continue + } + + topology.filter?.remove(remotePeer) topology.onDisconnect?.(remotePeer) } } @@ -195,6 +200,11 @@ export class DefaultRegistrar implements Registrar { } for (const topology of topologies.values()) { + if (topology.filter?.has(peer.id) === false) { + continue + } + + topology.filter?.remove(peer.id) topology.onDisconnect?.(peer.id) } } @@ -222,6 +232,11 @@ export class DefaultRegistrar implements Registrar { continue } + if (topology.filter?.has(peerId) === true) { + continue + } + + topology.filter?.add(peerId) topology.onConnect?.(peerId, connection) } } diff --git a/packages/libp2p/test/registrar/errors.spec.ts b/packages/libp2p/test/registrar/errors.spec.ts new file mode 100644 index 0000000000..ff78d2097d --- /dev/null +++ b/packages/libp2p/test/registrar/errors.spec.ts @@ -0,0 +1,54 @@ +/* eslint-env mocha */ + +import { TypedEventEmitter, type ConnectionGater, type PeerId } from '@libp2p/interface' +import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { createEd25519PeerId } from '@libp2p/peer-id-factory' +import { PersistentPeerStore } from '@libp2p/peer-store' +import { expect } from 'aegir/chai' +import { MemoryDatastore } from 'datastore-core/memory' +import { stubInterface } from 'sinon-ts' +import { defaultComponents } from '../../src/components.js' +import { DefaultConnectionManager } from '../../src/connection-manager/index.js' +import { DefaultRegistrar } from '../../src/registrar.js' +import type { Components } from '../../src/components.js' +import type { Registrar, TransportManager } from '@libp2p/interface-internal' + +describe('registrar errors', () => { + let components: Components + let registrar: Registrar + let peerId: PeerId + + before(async () => { + peerId = await createEd25519PeerId() + const events = new TypedEventEmitter() + components = defaultComponents({ + peerId, + events, + datastore: new MemoryDatastore(), + upgrader: mockUpgrader({ events }), + transportManager: stubInterface(), + connectionGater: stubInterface() + }) + components.peerStore = new PersistentPeerStore(components) + components.connectionManager = new DefaultConnectionManager(components, { + minConnections: 50, + maxConnections: 1000, + inboundUpgradeTimeout: 1000 + }) + registrar = new DefaultRegistrar(components) + }) + + it('should fail to register a protocol if no multicodec is provided', () => { + // @ts-expect-error invalid parameters + return expect(registrar.register()).to.eventually.be.rejected() + }) + + it('should fail to register a protocol if an invalid topology is provided', () => { + const fakeTopology = { + random: 1 + } + + // @ts-expect-error invalid parameters + return expect(registrar.register(fakeTopology)).to.eventually.be.rejected() + }) +}) diff --git a/packages/libp2p/test/registrar/protocols.spec.ts b/packages/libp2p/test/registrar/protocols.spec.ts new file mode 100644 index 0000000000..698cfcdd08 --- /dev/null +++ b/packages/libp2p/test/registrar/protocols.spec.ts @@ -0,0 +1,58 @@ +/* eslint-env mocha */ + +import { yamux } from '@chainsafe/libp2p-yamux' +import { mplex } from '@libp2p/mplex' +import { createEd25519PeerId } from '@libp2p/peer-id-factory' +import { plaintext } from '@libp2p/plaintext' +import { webSockets } from '@libp2p/websockets' +import { expect } from 'aegir/chai' +import pDefer from 'p-defer' +import { createLibp2pNode } from '../../src/libp2p.js' +import type { Components } from '../../src/components.js' +import type { Libp2pNode } from '../../src/libp2p.js' + +describe('registrar protocols', () => { + let libp2p: Libp2pNode + + it('should be able to register and unregister a handler', async () => { + const deferred = pDefer() + + libp2p = await createLibp2pNode({ + peerId: await createEd25519PeerId(), + transports: [ + webSockets() + ], + streamMuxers: [ + yamux(), + mplex() + ], + connectionEncryption: [ + plaintext() + ], + services: { + test: (components: any) => { + deferred.resolve(components) + } + } + }) + + const components = await deferred.promise + + const registrar = components.registrar + + expect(registrar.getProtocols()).to.not.have.any.keys(['/echo/1.0.0', '/echo/1.0.1']) + + const echoHandler = (): void => {} + await libp2p.handle(['/echo/1.0.0', '/echo/1.0.1'], echoHandler) + expect(registrar.getHandler('/echo/1.0.0')).to.have.property('handler', echoHandler) + expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) + + await libp2p.unhandle(['/echo/1.0.0']) + expect(registrar.getProtocols()).to.not.have.any.keys(['/echo/1.0.0']) + expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) + + await expect(libp2p.peerStore.get(libp2p.peerId)).to.eventually.have.deep.property('protocols', [ + '/echo/1.0.1' + ]) + }) +}) diff --git a/packages/libp2p/test/registrar/registrar.spec.ts b/packages/libp2p/test/registrar/registrar.spec.ts index a0ca3995f4..3e0671d540 100644 --- a/packages/libp2p/test/registrar/registrar.spec.ts +++ b/packages/libp2p/test/registrar/registrar.spec.ts @@ -1,437 +1,416 @@ /* eslint-env mocha */ -import { yamux } from '@chainsafe/libp2p-yamux' -import { TypedEventEmitter, type TypedEventTarget, type Libp2pEvents, type ConnectionGater, type PeerId, type PeerStore, type Topology } from '@libp2p/interface' +import { TypedEventEmitter } from '@libp2p/interface' import { matchPeerId } from '@libp2p/interface-compliance-tests/matchers' -import { mockDuplex, mockMultiaddrConnection, mockUpgrader, mockConnection } from '@libp2p/interface-compliance-tests/mocks' +import { mockDuplex, mockMultiaddrConnection, mockConnection } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' -import { mplex } from '@libp2p/mplex' +import { peerFilter } from '@libp2p/peer-collections' import { createEd25519PeerId } from '@libp2p/peer-id-factory' -import { PersistentPeerStore } from '@libp2p/peer-store' -import { plaintext } from '@libp2p/plaintext' -import { webSockets } from '@libp2p/websockets' import { expect } from 'aegir/chai' -import { MemoryDatastore } from 'datastore-core/memory' import pDefer from 'p-defer' -import { type StubbedInstance, stubInterface } from 'sinon-ts' -import { type Components, defaultComponents } from '../../src/components.js' -import { DefaultConnectionManager } from '../../src/connection-manager/index.js' -import { createLibp2pNode, type Libp2pNode } from '../../src/libp2p.js' +import { stubInterface } from 'sinon-ts' import { DefaultRegistrar } from '../../src/registrar.js' -import type { ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' +import type { TypedEventTarget, Libp2pEvents, PeerId, PeerStore, Topology, Peer } from '@libp2p/interface' +import type { ConnectionManager, Registrar } from '@libp2p/interface-internal' +import type { StubbedInstance } from 'sinon-ts' const protocol = '/test/1.0.0' -describe('registrar', () => { - let components: Components +describe('registrar topologies', () => { let registrar: Registrar let peerId: PeerId - let libp2p: Libp2pNode before(async () => { peerId = await createEd25519PeerId() }) - describe('errors', () => { - beforeEach(() => { - const events = new TypedEventEmitter() - components = defaultComponents({ - peerId, - events, - datastore: new MemoryDatastore(), - upgrader: mockUpgrader({ events }), - transportManager: stubInterface(), - connectionGater: stubInterface() - }) - components.peerStore = new PersistentPeerStore(components) - components.connectionManager = new DefaultConnectionManager(components, { - minConnections: 50, - maxConnections: 1000, - inboundUpgradeTimeout: 1000 - }) - registrar = new DefaultRegistrar(components) - }) + let connectionManager: StubbedInstance + let peerStore: StubbedInstance + let events: TypedEventTarget - it('should fail to register a protocol if no multicodec is provided', () => { - // @ts-expect-error invalid parameters - return expect(registrar.register()).to.eventually.be.rejected() + beforeEach(async () => { + peerId = await createEd25519PeerId() + connectionManager = stubInterface() + peerStore = stubInterface() + events = new TypedEventEmitter() + + registrar = new DefaultRegistrar({ + peerId, + connectionManager, + peerStore, + events, + logger: defaultLogger() }) + }) - it('should fail to register a protocol if an invalid topology is provided', () => { - const fakeTopology = { - random: 1 - } + it('should be able to register a protocol', async () => { + const topology: Topology = { + onConnect: () => { }, + onDisconnect: () => { } + } - // @ts-expect-error invalid parameters - return expect(registrar.register(fakeTopology)).to.eventually.be.rejected() - }) + expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) + + const identifier = await registrar.register(protocol, topology) + + expect(identifier).to.exist() + expect(registrar.getTopologies(protocol)).to.have.lengthOf(1) }) - describe('registration', () => { - let registrar: Registrar - let peerId: PeerId - let connectionManager: StubbedInstance - let peerStore: StubbedInstance - let events: TypedEventTarget - - beforeEach(async () => { - peerId = await createEd25519PeerId() - connectionManager = stubInterface() - peerStore = stubInterface() - events = new TypedEventEmitter() - - registrar = new DefaultRegistrar({ - peerId, - connectionManager, - peerStore, - events, - logger: defaultLogger() - }) - }) + it('should be able to unregister a protocol', async () => { + const topology: Topology = { + onConnect: () => { }, + onDisconnect: () => { } + } - it('should be able to register a protocol', async () => { - const topology: Topology = { - onConnect: () => { }, - onDisconnect: () => { } - } + expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) - expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) + const identifier = await registrar.register(protocol, topology) - const identifier = await registrar.register(protocol, topology) + expect(registrar.getTopologies(protocol)).to.have.lengthOf(1) - expect(identifier).to.exist() - expect(registrar.getTopologies(protocol)).to.have.lengthOf(1) - }) + registrar.unregister(identifier) - it('should be able to unregister a protocol', async () => { - const topology: Topology = { - onConnect: () => { }, - onDisconnect: () => { } - } + expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) + }) - expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) + it('should not error if unregistering unregistered topology handler', () => { + registrar.unregister('bad-identifier') + }) - const identifier = await registrar.register(protocol, topology) + it('should call onConnect handler for connected peers after register', async () => { + const onConnectDefer = pDefer() + const onDisconnectDefer = pDefer() - expect(registrar.getTopologies(protocol)).to.have.lengthOf(1) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - registrar.unregister(identifier) + // return connection from connection manager + connectionManager.getConnections.withArgs(remotePeerId).returns([conn]) - expect(registrar.getTopologies(protocol)).to.have.lengthOf(0) - }) + const topology: Topology = { + onConnect: (peerId, connection) => { + expect(peerId.equals(remotePeerId)).to.be.true() + expect(connection.id).to.eql(conn.id) - it('should not error if unregistering unregistered topology handler', () => { - registrar.unregister('bad-identifier') + onConnectDefer.resolve() + }, + onDisconnect: (peerId) => { + expect(peerId.equals(remotePeerId)).to.be.true() + + onDisconnectDefer.resolve() + } + } + + // Register protocol + await registrar.register(protocol, topology) + + // Peer data is in the peer store + peerStore.get.withArgs(matchPeerId(remotePeerId)).resolves({ + id: remotePeerId, + addresses: [], + protocols: [protocol], + metadata: new Map(), + tags: new Map() }) - it('should call onConnect handler for connected peers after register', async () => { - const onConnectDefer = pDefer() - const onDisconnectDefer = pDefer() + // remote peer connects + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, + protocols: [protocol], + connection: conn + } + }) + await onConnectDefer.promise - // Setup connections before registrar - const remotePeerId = await createEd25519PeerId() - const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + // remote peer disconnects + await conn.close() + events.safeDispatchEvent('peer:disconnect', { + detail: remotePeerId + }) + await onDisconnectDefer.promise + }) - // return connection from connection manager - connectionManager.getConnections.withArgs(remotePeerId).returns([conn]) + it('should call onConnect handler after register, once a peer is connected and protocols are updated', async () => { + const onConnectDefer = pDefer() + const onDisconnectDefer = pDefer() - const topology: Topology = { - onConnect: (peerId, connection) => { - expect(peerId.equals(remotePeerId)).to.be.true() - expect(connection.id).to.eql(conn.id) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - onConnectDefer.resolve() - }, - onDisconnect: (peerId) => { - expect(peerId.equals(remotePeerId)).to.be.true() + // return connection from connection manager + connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) - onDisconnectDefer.resolve() - } + const topology: Topology = { + onConnect: () => { + onConnectDefer.resolve() + }, + onDisconnect: () => { + onDisconnectDefer.resolve() } + } - // Register protocol - await registrar.register(protocol, topology) + // Register protocol + await registrar.register(protocol, topology) - // Peer data is in the peer store - peerStore.get.withArgs(matchPeerId(remotePeerId)).resolves({ - id: remotePeerId, - addresses: [], + // remote peer connects + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, protocols: [protocol], - metadata: new Map(), - tags: new Map() - }) - - // remote peer connects - events.safeDispatchEvent('peer:identify', { - detail: { - peerId: remotePeerId, - protocols: [protocol], - connection: conn - } - }) - await onConnectDefer.promise + connection: conn + } + }) - // remote peer disconnects - await conn.close() - events.safeDispatchEvent('peer:disconnect', { - detail: remotePeerId - }) - await onDisconnectDefer.promise + // Can get details after identify + peerStore.get.withArgs(matchPeerId(conn.remotePeer)).resolves({ + id: conn.remotePeer, + addresses: [], + protocols: [protocol], + metadata: new Map(), + tags: new Map() }) - it('should call onConnect handler after register, once a peer is connected and protocols are updated', async () => { - const onConnectDefer = pDefer() - const onDisconnectDefer = pDefer() + // we have a connection to this peer + connectionManager.getConnections.withArgs(matchPeerId(conn.remotePeer)).returns([conn]) - // Setup connections before registrar - const remotePeerId = await createEd25519PeerId() - const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + // identify completes + events.safeDispatchEvent('peer:update', { + detail: { + peer: { + id: conn.remotePeer, + protocols: [protocol], + addresses: [], + metadata: new Map() + } + } + }) - // return connection from connection manager - connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) + await onConnectDefer.promise - const topology: Topology = { - onConnect: () => { - onConnectDefer.resolve() + // Peer no longer supports the protocol our topology is registered for + events.safeDispatchEvent('peer:update', { + detail: { + peer: { + id: conn.remotePeer, + protocols: [], + addresses: [], + metadata: new Map() }, - onDisconnect: () => { - onDisconnectDefer.resolve() + previous: { + id: conn.remotePeer, + protocols: [protocol], + addresses: [], + metadata: new Map() } } + }) - // Register protocol - await registrar.register(protocol, topology) + await onDisconnectDefer.promise + }) - // remote peer connects - events.safeDispatchEvent('peer:identify', { - detail: { - peerId: remotePeerId, - protocols: [protocol], - connection: conn - } - }) + it('should not call topology handlers for transient connection', async () => { + const onConnectDefer = pDefer() + const onDisconnectDefer = pDefer() - // Can get details after identify - peerStore.get.withArgs(matchPeerId(conn.remotePeer)).resolves({ - id: conn.remotePeer, - addresses: [], - protocols: [protocol], - metadata: new Map(), - tags: new Map() - }) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - // we have a connection to this peer - connectionManager.getConnections.withArgs(matchPeerId(conn.remotePeer)).returns([conn]) + // connection is transient + conn.transient = true - // identify completes - events.safeDispatchEvent('peer:update', { - detail: { - peer: { - id: conn.remotePeer, - protocols: [protocol], - addresses: [], - metadata: new Map() - } - } - }) + // return connection from connection manager + connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) - await onConnectDefer.promise + const topology: Topology = { + onConnect: () => { + onConnectDefer.reject(new Error('Topolgy onConnect called for transient connection')) + }, + onDisconnect: () => { + onDisconnectDefer.reject(new Error('Topolgy onDisconnect called for transient connection')) + } + } - // Peer no longer supports the protocol our topology is registered for - events.safeDispatchEvent('peer:update', { - detail: { - peer: { - id: conn.remotePeer, - protocols: [], - addresses: [], - metadata: new Map() - }, - previous: { - id: conn.remotePeer, - protocols: [protocol], - addresses: [], - metadata: new Map() - } - } - }) + // register topology for protocol + await registrar.register(protocol, topology) - await onDisconnectDefer.promise + // remote peer connects + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, + protocols: [protocol], + connection: conn + } }) - it('should not call topology handlers for transient connection', async () => { - const onConnectDefer = pDefer() - const onDisconnectDefer = pDefer() + await expect(Promise.any([ + onConnectDefer.promise, + onDisconnectDefer.promise, + new Promise((resolve) => { + setTimeout(() => { + resolve() + }, 1000) + }) + ])).to.eventually.not.be.rejected() + }) - // Setup connections before registrar - const remotePeerId = await createEd25519PeerId() - const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + it('should call topology onConnect handler for transient connection when explicitly requested', async () => { + const onConnectDefer = pDefer() - // connection is transient - conn.transient = true + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - // return connection from connection manager - connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) + // connection is transient + conn.transient = true - const topology: Topology = { - onConnect: () => { - onConnectDefer.reject(new Error('Topolgy onConnect called for transient connection')) - }, - onDisconnect: () => { - onDisconnectDefer.reject(new Error('Topolgy onDisconnect called for transient connection')) - } + // return connection from connection manager + connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) + + const topology: Topology = { + notifyOnTransient: true, + onConnect: () => { + onConnectDefer.resolve() } + } - // Register topology for protocol - await registrar.register(protocol, topology) + // register topology for protocol + await registrar.register(protocol, topology) - // remote peer connects - events.safeDispatchEvent('peer:identify', { - detail: { - peerId: remotePeerId, - protocols: [protocol], - connection: conn - } - }) - - await expect(Promise.any([ - onConnectDefer.promise, - onDisconnectDefer.promise, - new Promise((resolve) => { - setTimeout(() => { - resolve() - }, 1000) - }) - ])).to.eventually.not.be.rejected() + // remote peer connects + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, + protocols: [protocol], + connection: conn + } }) - it('should call topology onConnect handler for transient connection when explicitly requested', async () => { - const onConnectDefer = pDefer() - - // Setup connections before registrar - const remotePeerId = await createEd25519PeerId() - const conn = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + await expect(onConnectDefer.promise).to.eventually.be.undefined() + }) - // connection is transient - conn.transient = true + it('should call topology handlers for non-transient connection opened after transient connection', async () => { + const onConnectDefer = pDefer() + let callCount = 0 - // return connection from connection manager - connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([conn]) + const topology: Topology = { + notifyOnTransient: true, + onConnect: () => { + callCount++ - const topology: Topology = { - notifyOnTransient: true, - onConnect: () => { + if (callCount === 2) { onConnectDefer.resolve() } } + } - // Register topology for protocol - await registrar.register(protocol, topology) + // register topology for protocol + await registrar.register(protocol, topology) - // remote peer connects - events.safeDispatchEvent('peer:identify', { - detail: { - peerId: remotePeerId, - protocols: [protocol], - connection: conn - } - }) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const transientConnection = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + transientConnection.transient = true - await expect(onConnectDefer.promise).to.eventually.be.undefined() - }) + const nonTransientConnection = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) + nonTransientConnection.transient = false - it('should call topology handlers for non-transient connection opened after transient connection', async () => { - const onConnectDefer = pDefer() - let callCount = 0 + // return connection from connection manager + connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([ + transientConnection, + nonTransientConnection + ]) - const topology: Topology = { - notifyOnTransient: true, - onConnect: () => { - callCount++ + // remote peer connects over transient connection + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, + protocols: [protocol], + connection: transientConnection + } + }) - if (callCount === 2) { - onConnectDefer.resolve() - } - } + // remote peer opens non-transient connection + events.safeDispatchEvent('peer:identify', { + detail: { + peerId: remotePeerId, + protocols: [protocol], + connection: nonTransientConnection } + }) - // Register topology for protocol - await registrar.register(protocol, topology) + await expect(onConnectDefer.promise).to.eventually.be.undefined() + }) - // Setup connections before registrar - const remotePeerId = await createEd25519PeerId() - const transientConnection = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - transientConnection.transient = true + it('should use a filter to prevent duplicate onConnect notifications', async () => { + const topology: Topology = stubInterface({ + filter: peerFilter(1024) + }) - const nonTransientConnection = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - nonTransientConnection.transient = false + // register topology for protocol + await registrar.register(protocol, topology) - // return connection from connection manager - connectionManager.getConnections.withArgs(matchPeerId(remotePeerId)).returns([ - transientConnection, - nonTransientConnection - ]) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() + const connection = mockConnection(mockMultiaddrConnection(mockDuplex(), remotePeerId)) - // remote peer connects over transient connection + // remote peer runs identify a few times + for (let i = 0; i < 5; i++) { events.safeDispatchEvent('peer:identify', { detail: { peerId: remotePeerId, protocols: [protocol], - connection: transientConnection + connection } }) + } - // remote peer opens non-transient connection - events.safeDispatchEvent('peer:identify', { + // remote peer updates details a few times + for (let i = 0; i < 5; i++) { + events.safeDispatchEvent('peer:update', { detail: { - peerId: remotePeerId, - protocols: [protocol], - connection: nonTransientConnection - } - }) - - await expect(onConnectDefer.promise).to.eventually.be.undefined() - }) - - it('should be able to register and unregister a handler', async () => { - const deferred = pDefer() - - libp2p = await createLibp2pNode({ - peerId: await createEd25519PeerId(), - transports: [ - webSockets() - ], - streamMuxers: [ - yamux(), - mplex() - ], - connectionEncryption: [ - plaintext() - ], - services: { - test: (components: any) => { - deferred.resolve(components) + peer: { + id: remotePeerId, + protocols: [protocol] + }, + previous: { + protocols: [] } } }) + } - const components = await deferred.promise + // should only have notified once + expect(topology.onConnect).to.have.property('callCount', 1) + }) - const registrar = components.registrar + it('should use a filter to prevent onDisconnect notifications that had no previous onConnect notification', async () => { + const topology: Topology = stubInterface({ + filter: peerFilter(1024) + }) - expect(registrar.getProtocols()).to.not.have.any.keys(['/echo/1.0.0', '/echo/1.0.1']) + // register topology for protocol + await registrar.register(protocol, topology) - const echoHandler = (): void => {} - await libp2p.handle(['/echo/1.0.0', '/echo/1.0.1'], echoHandler) - expect(registrar.getHandler('/echo/1.0.0')).to.have.property('handler', echoHandler) - expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) + // setup connections before registrar + const remotePeerId = await createEd25519PeerId() - await libp2p.unhandle(['/echo/1.0.0']) - expect(registrar.getProtocols()).to.not.have.any.keys(['/echo/1.0.0']) - expect(registrar.getHandler('/echo/1.0.1')).to.have.property('handler', echoHandler) + // peer exists in peer store with the regsitered protocol + peerStore.get.withArgs(remotePeerId).resolves(stubInterface({ + protocols: [protocol] + })) - await expect(libp2p.peerStore.get(libp2p.peerId)).to.eventually.have.deep.property('protocols', [ - '/echo/1.0.1' - ]) + // the peer disconnects + events.safeDispatchEvent('peer:disconnect', { + detail: remotePeerId }) + + // should not have notified + expect(topology.onConnect).to.have.property('called', false) + expect(topology.onDisconnect).to.have.property('called', false) }) }) From 7cba34b15c600f635ef57e1a855b87a57b910e8c Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 16 May 2024 11:04:16 +0100 Subject: [PATCH 16/30] chore: move files before merge --- CHANGELOG.md => packages/metrics-simple/CHANGELOG.md | 0 LICENSE => packages/metrics-simple/LICENSE | 0 LICENSE-APACHE => packages/metrics-simple/LICENSE-APACHE | 0 LICENSE-MIT => packages/metrics-simple/LICENSE-MIT | 0 README.md => packages/metrics-simple/README.md | 0 package.json => packages/metrics-simple/package.json | 0 {src => packages/metrics-simple/src}/index.ts | 0 {test => packages/metrics-simple/test}/index.spec.ts | 0 tsconfig.json => packages/metrics-simple/tsconfig.json | 0 typedoc.json => packages/metrics-simple/typedoc.json | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename CHANGELOG.md => packages/metrics-simple/CHANGELOG.md (100%) rename LICENSE => packages/metrics-simple/LICENSE (100%) rename LICENSE-APACHE => packages/metrics-simple/LICENSE-APACHE (100%) rename LICENSE-MIT => packages/metrics-simple/LICENSE-MIT (100%) rename README.md => packages/metrics-simple/README.md (100%) rename package.json => packages/metrics-simple/package.json (100%) rename {src => packages/metrics-simple/src}/index.ts (100%) rename {test => packages/metrics-simple/test}/index.spec.ts (100%) rename tsconfig.json => packages/metrics-simple/tsconfig.json (100%) rename typedoc.json => packages/metrics-simple/typedoc.json (100%) diff --git a/CHANGELOG.md b/packages/metrics-simple/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to packages/metrics-simple/CHANGELOG.md diff --git a/LICENSE b/packages/metrics-simple/LICENSE similarity index 100% rename from LICENSE rename to packages/metrics-simple/LICENSE diff --git a/LICENSE-APACHE b/packages/metrics-simple/LICENSE-APACHE similarity index 100% rename from LICENSE-APACHE rename to packages/metrics-simple/LICENSE-APACHE diff --git a/LICENSE-MIT b/packages/metrics-simple/LICENSE-MIT similarity index 100% rename from LICENSE-MIT rename to packages/metrics-simple/LICENSE-MIT diff --git a/README.md b/packages/metrics-simple/README.md similarity index 100% rename from README.md rename to packages/metrics-simple/README.md diff --git a/package.json b/packages/metrics-simple/package.json similarity index 100% rename from package.json rename to packages/metrics-simple/package.json diff --git a/src/index.ts b/packages/metrics-simple/src/index.ts similarity index 100% rename from src/index.ts rename to packages/metrics-simple/src/index.ts diff --git a/test/index.spec.ts b/packages/metrics-simple/test/index.spec.ts similarity index 100% rename from test/index.spec.ts rename to packages/metrics-simple/test/index.spec.ts diff --git a/tsconfig.json b/packages/metrics-simple/tsconfig.json similarity index 100% rename from tsconfig.json rename to packages/metrics-simple/tsconfig.json diff --git a/typedoc.json b/packages/metrics-simple/typedoc.json similarity index 100% rename from typedoc.json rename to packages/metrics-simple/typedoc.json From af31a785f91ecd6f35063ca089857aca850069c3 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 16 May 2024 11:17:29 +0100 Subject: [PATCH 17/30] chore: update changelog --- packages/metrics-simple/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/metrics-simple/CHANGELOG.md b/packages/metrics-simple/CHANGELOG.md index ff50051d17..868e5a8104 100644 --- a/packages/metrics-simple/CHANGELOG.md +++ b/packages/metrics-simple/CHANGELOG.md @@ -1,4 +1,4 @@ -## [1.0.1](https://github.com/libp2p/js-libp2p-simple-metrics/compare/v1.0.0...v1.0.1) (2023-09-26) +## [1.0.1](https://github.com/libp2p/js-libp2p/compare/simple-metrics-v1.0.0...simple-metrics-v1.0.1) (2023-09-26) ### Bug Fixes From 1cc6a940547a03fa8c0f2b73b155eda795ab88c4 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 16 May 2024 11:28:15 +0100 Subject: [PATCH 18/30] chore: update project --- packages/metrics-simple/README.md | 63 ++++++++++--- packages/metrics-simple/package.json | 102 +++------------------ packages/metrics-simple/src/index.ts | 20 ++-- packages/metrics-simple/test/index.spec.ts | 4 +- packages/metrics-simple/tsconfig.json | 8 ++ 5 files changed, 79 insertions(+), 118 deletions(-) diff --git a/packages/metrics-simple/README.md b/packages/metrics-simple/README.md index 646db5606e..3038752d72 100644 --- a/packages/metrics-simple/README.md +++ b/packages/metrics-simple/README.md @@ -1,26 +1,57 @@ -# @libp2p/simple-metrics +# @libp2p/simple-metrics [![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) [![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io) -[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-simple-metrics.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-simple-metrics) -[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p-simple-metrics/js-test-and-release.yml?branch=main\&style=flat-square)](https://github.com/libp2p/js-libp2p-simple-metrics/actions/workflows/js-test-and-release.yml?query=branch%3Amain) +[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p) +[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p/main.yml?branch=main\&style=flat-square)](https://github.com/libp2p/js-libp2p/actions/workflows/main.yml?query=branch%3Amain) > Simple in-memory metrics gathering for libp2p -## Table of contents +# About -- [Install](#install) - - [Browser ` ``` -## License +# API Docs + +- + +# License Licensed under either of -- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / ) -- MIT ([LICENSE-MIT](LICENSE-MIT) / ) +- Apache 2.0, ([LICENSE-APACHE](https://github.com/libp2p/js-libp2p/blob/main/packages/metrics-simple/LICENSE-APACHE) / ) +- MIT ([LICENSE-MIT](https://github.com/libp2p/js-libp2p/blob/main/packages/metrics-simple/LICENSE-MIT) / ) -## Contribution +# Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/packages/metrics-simple/package.json b/packages/metrics-simple/package.json index e271d41b8d..d7ad46e556 100644 --- a/packages/metrics-simple/package.json +++ b/packages/metrics-simple/package.json @@ -3,13 +3,17 @@ "version": "1.0.1", "description": "Simple in-memory metrics gathering for libp2p", "license": "Apache-2.0 OR MIT", - "homepage": "https://github.com/libp2p/js-libp2p-simple-metrics#readme", + "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-simple#readme", "repository": { "type": "git", - "url": "git+https://github.com/libp2p/js-libp2p-simple-metrics.git" + "url": "git+https://github.com/libp2p/js-libp2p.git" }, "bugs": { - "url": "https://github.com/libp2p/js-libp2p-simple-metrics/issues" + "url": "https://github.com/libp2p/js-libp2p/issues" + }, + "publishConfig": { + "access": "public", + "provenance": true }, "type": "module", "types": "./dist/src/index.d.ts", @@ -28,94 +32,10 @@ "eslintConfig": { "extends": "ipfs", "parserOptions": { + "project": true, "sourceType": "module" } }, - "release": { - "branches": [ - "main" - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "conventionalcommits", - "releaseRules": [ - { - "breaking": true, - "release": "major" - }, - { - "revert": true, - "release": "patch" - }, - { - "type": "feat", - "release": "minor" - }, - { - "type": "fix", - "release": "patch" - }, - { - "type": "docs", - "release": "patch" - }, - { - "type": "test", - "release": "patch" - }, - { - "type": "deps", - "release": "patch" - }, - { - "scope": "no-release", - "release": false - } - ] - } - ], - [ - "@semantic-release/release-notes-generator", - { - "preset": "conventionalcommits", - "presetConfig": { - "types": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "chore", - "section": "Trivial Changes" - }, - { - "type": "docs", - "section": "Documentation" - }, - { - "type": "deps", - "section": "Dependencies" - }, - { - "type": "test", - "section": "Tests" - } - ] - } - } - ], - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/github", - "@semantic-release/git" - ] - }, "scripts": { "clean": "aegir clean", "lint": "aegir lint", @@ -130,13 +50,13 @@ "dep-check": "aegir dep-check -i events" }, "dependencies": { - "@libp2p/interface": "^0.1.2", - "@libp2p/logger": "^3.0.2", + "@libp2p/interface": "^1.3.1", + "@libp2p/logger": "^4.0.12", "it-foreach": "^2.0.4", "it-stream-types": "^2.0.1" }, "devDependencies": { - "aegir": "^40.0.13", + "aegir": "^42.2.11", "p-defer": "^4.0.0" } } diff --git a/packages/metrics-simple/src/index.ts b/packages/metrics-simple/src/index.ts index 36e81da3e9..d8f25688b5 100644 --- a/packages/metrics-simple/src/index.ts +++ b/packages/metrics-simple/src/index.ts @@ -1,8 +1,8 @@ /** * @packageDocumentation * - * Stores metrics in memory and periodically invokes a configured callback - * to receive them. + * Stores metrics in memory and periodically invokes a configured callback to + * receive them. * * @example * @@ -25,10 +25,8 @@ import { logger } from '@libp2p/logger' import each from 'it-foreach' -import type { MultiaddrConnection, Stream, Connection } from '@libp2p/interface/connection' -import type { Startable } from '@libp2p/interface/dist/src/startable' -import type { Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions, Counter, CounterGroup, CalculateMetric } from '@libp2p/interface/metrics' -import type { Duplex, Source } from 'it-stream-types' +import type { Startable, MultiaddrConnection, Stream, Connection, Metric, MetricGroup, StopTimer, Metrics, CalculatedMetricOptions, MetricOptions, Counter, CounterGroup, CalculateMetric } from '@libp2p/interface' +import type { Duplex } from 'it-stream-types' const log = logger('libp2p:simple-metrics') @@ -185,7 +183,7 @@ class SimpleMetrics implements Metrics, Startable { * Override the sink/source of the stream to count the bytes * in and out */ - _track (stream: Duplex>, name: string): void { + _track (stream: Duplex>, name: string): void { const self = this const sink = stream.sink @@ -218,7 +216,7 @@ class SimpleMetrics implements Metrics, Startable { registerMetric (name: string, opts: CalculatedMetricOptions): void registerMetric (name: string, opts?: MetricOptions): Metric registerMetric (name: string, opts: any = {}): any { - if (name == null ?? name.trim() === '') { + if (name == null || name.trim() === '') { throw new Error('Metric name is required') } @@ -237,7 +235,7 @@ class SimpleMetrics implements Metrics, Startable { registerMetricGroup (name: string, opts: CalculatedMetricOptions>): void registerMetricGroup (name: string, opts?: MetricOptions): MetricGroup registerMetricGroup (name: string, opts: any = {}): any { - if (name == null ?? name.trim() === '') { + if (name == null || name.trim() === '') { throw new Error('Metric name is required') } @@ -256,7 +254,7 @@ class SimpleMetrics implements Metrics, Startable { registerCounter (name: string, opts: CalculatedMetricOptions): void registerCounter (name: string, opts?: MetricOptions): Counter registerCounter (name: string, opts: any = {}): any { - if (name == null ?? name.trim() === '') { + if (name == null || name.trim() === '') { throw new Error('Metric name is required') } @@ -275,7 +273,7 @@ class SimpleMetrics implements Metrics, Startable { registerCounterGroup (name: string, opts: CalculatedMetricOptions>): void registerCounterGroup (name: string, opts?: MetricOptions): CounterGroup registerCounterGroup (name: string, opts: any = {}): any { - if (name == null ?? name.trim() === '') { + if (name == null || name.trim() === '') { throw new Error('Metric name is required') } diff --git a/packages/metrics-simple/test/index.spec.ts b/packages/metrics-simple/test/index.spec.ts index 3220de5151..6cc860f637 100644 --- a/packages/metrics-simple/test/index.spec.ts +++ b/packages/metrics-simple/test/index.spec.ts @@ -1,8 +1,8 @@ -import { start, stop } from '@libp2p/interface/startable' +import { start, stop } from '@libp2p/interface' import { expect } from 'aegir/chai' import pDefer from 'p-defer' import { simpleMetrics } from '../src/index.js' -import type { Metrics } from '@libp2p/interface/src/metrics' +import type { Metrics } from '@libp2p/interface' describe('simple-metrics', () => { let s: Metrics diff --git a/packages/metrics-simple/tsconfig.json b/packages/metrics-simple/tsconfig.json index 13a3599639..b382e52ffe 100644 --- a/packages/metrics-simple/tsconfig.json +++ b/packages/metrics-simple/tsconfig.json @@ -6,5 +6,13 @@ "include": [ "src", "test" + ], + "references": [ + { + "path": "../interface" + }, + { + "path": "../logger" + } ] } From 1cd5aae1179cb564e99c9d135c4c2ab8b840b2e8 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Thu, 16 May 2024 15:21:17 +0100 Subject: [PATCH 19/30] chore: test WebTransport with precompiled go libp2p (#2549) To reduce the number of pre-requisites needed to run the the test suite, and to reduce our exposure to the nightmare of `go.mod` maintenance, use a pre-compiled version of go-libp2p to test the WebTransport transport. --- packages/transport-webtransport/.aegir.js | 100 +- .../go-libp2p-webtransport-server/go.mod | 95 -- .../go-libp2p-webtransport-server/go.sum | 1183 ----------------- .../go-libp2p-webtransport-server/main.go | 48 - packages/transport-webtransport/package.json | 4 + packages/transport-webtransport/src/index.ts | 17 +- packages/transport-webtransport/src/stream.ts | 27 +- .../transport-webtransport/test/browser.ts | 85 +- 8 files changed, 92 insertions(+), 1467 deletions(-) delete mode 100644 packages/transport-webtransport/go-libp2p-webtransport-server/go.mod delete mode 100644 packages/transport-webtransport/go-libp2p-webtransport-server/go.sum delete mode 100644 packages/transport-webtransport/go-libp2p-webtransport-server/main.go diff --git a/packages/transport-webtransport/.aegir.js b/packages/transport-webtransport/.aegir.js index 5f7d52f3db..6a6b15a72c 100644 --- a/packages/transport-webtransport/.aegir.js +++ b/packages/transport-webtransport/.aegir.js @@ -1,67 +1,67 @@ -/* eslint-disable no-console */ -import { spawn, exec } from 'child_process' -import { existsSync } from 'node:fs' -import os from 'node:os' -import defer from 'p-defer' +import { createClient } from '@libp2p/daemon-client' +import { multiaddr } from '@multiformats/multiaddr' +import { execa } from 'execa' +import { path as p2pd } from 'go-libp2p' +import pDefer from 'p-defer' /** @type {import('aegir/types').PartialOptions} */ export default { test: { async before () { - const main = os.platform() === 'win32' ? 'main.exe' : 'main' - - if (!existsSync('./go-libp2p-webtransport-server/main')) { - await new Promise((resolve, reject) => { - exec(`go build -o ${main} main.go`, - { cwd: './go-libp2p-webtransport-server' }, - (error, stdout, stderr) => { - if (error) { - reject(error) - console.error(`exec error: ${error}`) - return - } - resolve() - }) - }) - } - - const server = spawn(`./${main}`, [], { cwd: './go-libp2p-webtransport-server', killSignal: 'SIGINT' }) - server.stderr.on('data', (data) => { - console.log('stderr:', data.toString()) - }) - const serverAddr = defer() - const serverAddr6 = defer() - const disableIp6 = process.env.DISABLE_IPV6 != null - - server.stdout.on('data', (buf) => { - const data = buf.toString() - - console.log('stdout:', data); - if (data.includes('addr=/ip4')) { - // Parse the addr out - serverAddr.resolve(`/ip4${data.match(/addr=\/ip4(.*)/)[1]}`) - } - - if (data.includes('addr=/ip6')) { - // Parse the addr out - serverAddr6.resolve(`/ip6${data.match(/addr=\/ip6(.*)/)[1]}`) - } - }) + const goLibp2p = await createGoLibp2p() return { - server, + goLibp2p, env: { - serverAddr: await serverAddr.promise, - serverAddr6: disableIp6 === false ? await serverAddr6.promise : 'skipping', - disableIp6 + GO_LIBP2P_ADDR: goLibp2p.multiaddr } } }, - async after (_, { server }) { - server.kill('SIGINT') + async after (_, before) { + await before.goLibp2p.proc.kill() } }, build: { bundlesizeMax: '18kB' } } + +async function createGoLibp2p () { + const controlPort = Math.floor(Math.random() * (50000 - 10000 + 1)) + 10000 + const apiAddr = multiaddr(`/ip4/127.0.0.1/tcp/${controlPort}`) + const deferred = pDefer() + const proc = execa(p2pd(), [ + `-listen=${apiAddr.toString()}`, + '-hostAddrs=/ip4/127.0.0.1/udp/0/quic-v1/webtransport', + '-noise=true', + '-dhtServer', + '-relay', + '-muxer=mplex', + '-echo' + ], { + reject: false, + env: { + GOLOG_LOG_LEVEL: 'debug' + } + }) + + proc.stdout?.on('data', (buf) => { + const str = buf.toString() + + // daemon has started + if (str.includes('Control socket:')) { + deferred.resolve() + } + }) + await deferred.promise + + const daemonClient = createClient(apiAddr) + const id = await daemonClient.identify() + + return { + apiAddr, + peerId: id.peerId.toString(), + multiaddr: id.addrs.map(ma => ma.encapsulate(`/p2p/${id.peerId}`).toString()).pop(), + proc + } +} diff --git a/packages/transport-webtransport/go-libp2p-webtransport-server/go.mod b/packages/transport-webtransport/go-libp2p-webtransport-server/go.mod deleted file mode 100644 index c27896ab74..0000000000 --- a/packages/transport-webtransport/go-libp2p-webtransport-server/go.mod +++ /dev/null @@ -1,95 +0,0 @@ -module github.com/libp2p/js-libp2p-webtransport/go-libp2p-webtransport-server/m/v2 - -go 1.19 - -require ( - github.com/libp2p/go-libp2p v0.27.8 - github.com/multiformats/go-multiaddr v0.9.0 -) - -require ( - github.com/benbjohnson/clock v1.3.0 // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/containerd/cgroups v1.1.0 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect - github.com/docker/go-units v0.5.0 // indirect - github.com/elastic/gosigar v0.14.2 // indirect - github.com/flynn/noise v1.0.0 // indirect - github.com/francoispqt/gojay v1.2.13 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/mock v1.6.0 // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/huin/goupnp v1.1.0 // indirect - github.com/ipfs/go-cid v0.4.1 // indirect - github.com/ipfs/go-log/v2 v2.5.1 // indirect - github.com/jackpal/go-nat-pmp v1.0.2 // indirect - github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect - github.com/klauspost/compress v1.16.4 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect - github.com/koron/go-ssdp v0.0.4 // indirect - github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/libp2p/go-cidranger v1.1.0 // indirect - github.com/libp2p/go-flow-metrics v0.1.0 // indirect - github.com/libp2p/go-libp2p-asn-util v0.3.0 // indirect - github.com/libp2p/go-msgio v0.3.0 // indirect - github.com/libp2p/go-nat v0.1.0 // indirect - github.com/libp2p/go-netroute v0.2.1 // indirect - github.com/libp2p/go-reuseport v0.2.0 // indirect - github.com/libp2p/go-yamux/v4 v4.0.0 // indirect - github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect - github.com/mattn/go-isatty v0.0.18 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/miekg/dns v1.1.53 // indirect - github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect - github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect - github.com/minio/sha256-simd v1.0.0 // indirect - github.com/mr-tron/base58 v1.2.0 // indirect - github.com/multiformats/go-base32 v0.1.0 // indirect - github.com/multiformats/go-base36 v0.2.0 // indirect - github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect - github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect - github.com/multiformats/go-multibase v0.2.0 // indirect - github.com/multiformats/go-multicodec v0.8.1 // indirect - github.com/multiformats/go-multihash v0.2.1 // indirect - github.com/multiformats/go-multistream v0.4.1 // indirect - github.com/multiformats/go-varint v0.0.7 // indirect - github.com/onsi/ginkgo/v2 v2.9.2 // indirect - github.com/opencontainers/runtime-spec v1.0.2 // indirect - github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.14.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.9.0 // indirect - github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-19 v0.3.3 // indirect - github.com/quic-go/qtls-go1-20 v0.2.3 // indirect - github.com/quic-go/quic-go v0.33.0 // indirect - github.com/quic-go/webtransport-go v0.5.2 // indirect - github.com/raulk/go-watchdog v1.3.0 // indirect - github.com/spaolacci/murmur3 v1.1.0 // indirect - go.uber.org/atomic v1.10.0 // indirect - go.uber.org/dig v1.16.1 // indirect - go.uber.org/fx v1.19.2 // indirect - go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.24.0 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect - golang.org/x/mod v0.10.0 // indirect - golang.org/x/net v0.23.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.7.0 // indirect - google.golang.org/protobuf v1.33.0 // indirect - lukechampine.com/blake3 v1.1.7 // indirect - nhooyr.io/websocket v1.8.7 // indirect -) diff --git a/packages/transport-webtransport/go-libp2p-webtransport-server/go.sum b/packages/transport-webtransport/go-libp2p-webtransport-server/go.sum deleted file mode 100644 index 69d1aac216..0000000000 --- a/packages/transport-webtransport/go-libp2p-webtransport-server/go.sum +++ /dev/null @@ -1,1183 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.31.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.0/go.mod h1:TS1dMSSfndXH133OKGwekG838Om/cQT0BUHV3HcBgoo= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= -dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= -dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= -git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= -github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= -github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.22.1/go.mod h1:wqgTSL29+50LRkmOVknEdmt8ZojIzhuWvgu/iptuN7Y= -github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= -github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o= -github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= -github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= -github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= -github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= -github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= -github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheekybits/genny v1.0.0/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= -github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= -github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= -github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= -github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA= -github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= -github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR6AkioZ1ySsx5yxlDQZ8stG2b88gTPxgJU= -github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= -github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= -github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= -github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= -github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= -github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= -github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ= -github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= -github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= -github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM= -github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= -github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b h1:Qcx5LM0fSiks9uCyFZwDBUasd3lxd1RM0GYpL+Li5o4= -github.com/google/pprof v0.0.0-20230405160723-4a4c7d95572b/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= -github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/v2 v2.0.2/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= -github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= -github.com/huin/goupnp v1.1.0 h1:gEe0Dp/lZmPZiDFzJJaOfUpOvv2MKUkoBX8lDrn9vKU= -github.com/huin/goupnp v1.1.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= -github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20220517205856-0058ec4f073c/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I= -github.com/ipfs/go-cid v0.2.0/go.mod h1:P+HXFDF4CVhaVayiEb4wkAy7zBHxBwsJyt0Y5U6MLro= -github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= -github.com/ipfs/go-cid v0.4.1/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk= -github.com/ipfs/go-datastore v0.5.0/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= -github.com/ipfs/go-datastore v0.5.1/go.mod h1:9zhEApYMTl17C8YDp7JmU7sQZi2/wqiYh73hakZ90Bk= -github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8O4Vn9YAT8= -github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= -github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= -github.com/ipfs/go-ds-badger v0.3.0/go.mod h1:1ke6mXNqeV8K3y5Ak2bAA0osoTfmxUdupVCGm4QUIek= -github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q= -github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= -github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ= -github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscwkWG+dw= -github.com/ipfs/go-log/v2 v2.5.0/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= -github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= -github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= -github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jbenet/go-cienv v0.1.0/go.mod h1:TqNnHUmJgXau0nCzC7kXWeotg3J9W34CUv5Djy1+FlA= -github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= -github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= -github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= -github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= -github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU= -github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.1.0/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk= -github.com/koron/go-ssdp v0.0.3/go.mod h1:b2MxI6yh02pKrsyNoQUsk4+YNikaGhe4894J+Q5lDvA= -github.com/koron/go-ssdp v0.0.4 h1:1IDwrghSKYM7yLf7XCzbByg2sJ/JcNOZRXS2jczTwz0= -github.com/koron/go-ssdp v0.0.4/go.mod h1:oDXq+E5IL5q0U8uSBcoAXzTzInwy5lEgC91HoKtbmZk= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/libp2p/go-buffer-pool v0.0.2/go.mod h1:MvaB6xw5vOrDl8rYZGLFdKAuk/hRoRZd1Vi32+RXyFM= -github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= -github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= -github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= -github.com/libp2p/go-flow-metrics v0.0.3/go.mod h1:HeoSNUrOJVK1jEpDqVEiUOIXqhbnS27omG0uWU5slZs= -github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= -github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= -github.com/libp2p/go-libp2p v0.22.0/go.mod h1:UDolmweypBSjQb2f7xutPnwZ/fxioLbMBxSjRksxxU4= -github.com/libp2p/go-libp2p v0.27.8 h1:IX5x/4yKwyPQeVS2AXHZ3J4YATM9oHBGH1gBc23jBAI= -github.com/libp2p/go-libp2p v0.27.8/go.mod h1:eCFFtd0s5i/EVKR7+5Ki8bM7qwkNW3TPTTSSW9sz8NE= -github.com/libp2p/go-libp2p-asn-util v0.2.0/go.mod h1:WoaWxbHKBymSN41hWSq/lGKJEca7TNm58+gGJi2WsLI= -github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= -github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNzVVaMNmq2NACuqyB9w= -github.com/libp2p/go-libp2p-core v0.19.0/go.mod h1:AkA+FUKQfYt1FLNef5fOPlo/naAWjKy/RCjkcPjqzYg= -github.com/libp2p/go-libp2p-testing v0.11.0/go.mod h1:qG4sF27dfKFoK9KlVzK2y52LQKhp0VEmLjV5aDqr1Hg= -github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= -github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg= -github.com/libp2p/go-mplex v0.7.0/go.mod h1:rW8ThnRcYWft/Jb2jeORBmPd6xuG3dGxWN/W168L9EU= -github.com/libp2p/go-msgio v0.0.6/go.mod h1:4ecVB6d9f4BDSL5fqvPiC4A3KivjWn+Venn/1ALLMWA= -github.com/libp2p/go-msgio v0.2.0/go.mod h1:dBVM1gW3Jk9XqHkU4eKdGvVHdLa51hoGfll6jMJMSlY= -github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= -github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= -github.com/libp2p/go-nat v0.1.0 h1:MfVsH6DLcpa04Xr+p8hmVRG4juse0s3J8HyNWYHffXg= -github.com/libp2p/go-nat v0.1.0/go.mod h1:X7teVkwRHNInVNWQiO/tAiAVRwSr5zoRz4YSTC3uRBM= -github.com/libp2p/go-netroute v0.1.2/go.mod h1:jZLDV+1PE8y5XxBySEBgbuVAXbhtuHSdmLPL2n9MKbk= -github.com/libp2p/go-netroute v0.2.0/go.mod h1:Vio7LTzZ+6hoT4CMZi5/6CpY3Snzh2vgZhWgxMNwlQI= -github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= -github.com/libp2p/go-netroute v0.2.1/go.mod h1:hraioZr0fhBjG0ZRXJJ6Zj2IVEVNx6tDTFQfSmcq7mQ= -github.com/libp2p/go-openssl v0.0.7/go.mod h1:unDrJpgy3oFr+rqXsarWifmJuNnJR4chtO1HmaZjggc= -github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= -github.com/libp2p/go-reuseport v0.2.0 h1:18PRvIMlpY6ZK85nIAicSBuXXvrYoSw3dsBAR7zc560= -github.com/libp2p/go-reuseport v0.2.0/go.mod h1:bvVho6eLMm6Bz5hmU0LYN3ixd3nPPvtIlaURZZgOY4k= -github.com/libp2p/go-sockaddr v0.0.2/go.mod h1:syPvOmNs24S3dFVGJA1/mrqdeijPxLV2Le3BRLKd68k= -github.com/libp2p/go-yamux/v3 v3.1.2/go.mod h1:jeLEQgLXqE2YqX1ilAClIfCMDY+0uXQUKmmb/qp0gT4= -github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= -github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= -github.com/libp2p/zeroconf/v2 v2.2.0/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= -github.com/lucas-clemente/quic-go v0.28.1/go.mod h1:oGz5DKK41cJt5+773+BSO9BXDsREY4HLf7+0odGAPO0= -github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= -github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= -github.com/marten-seemann/qtls-go1-17 v0.1.2/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= -github.com/marten-seemann/qtls-go1-18 v0.1.2/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= -github.com/marten-seemann/qtls-go1-19 v0.1.0-beta.1/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= -github.com/marten-seemann/qtls-go1-19 v0.1.0/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI= -github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= -github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= -github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= -github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= -github.com/miekg/dns v1.1.50/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= -github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw= -github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= -github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= -github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= -github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= -github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b/go.mod h1:lxPUiZwKoFL8DUUmalo2yJJUCxbPKtm8OKfqr2/FTNU= -github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc h1:PTfri+PuQmWDqERdnNMiD9ZejrlswWrCpBEZgWOiTrc= -github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc/go.mod h1:cGKTAVKx4SxOuR/czcZ/E2RSJ3sfHs8FpHhQ5CWMf9s= -github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1/go.mod h1:pD8RvIylQ358TN4wwqatJ8rNavkEINozVn9DtGI3dfQ= -github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= -github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= -github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mr-tron/base58 v1.1.3/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= -github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= -github.com/multiformats/go-base32 v0.0.3/go.mod h1:pLiuGC8y0QR3Ue4Zug5UzK9LjgbkL8NSQj0zQ5Nz/AA= -github.com/multiformats/go-base32 v0.0.4/go.mod h1:jNLFzjPZtp3aIARHbJRZIaPuspdH0J6q39uUM5pnABM= -github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= -github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= -github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoRdUUOENyW/Vv6sM= -github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= -github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= -github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= -github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.4.1/go.mod h1:3afI9HfVW8csiF8UZqtpYRiDyew8pRX7qLIGHu9FLuM= -github.com/multiformats/go-multiaddr v0.6.0/go.mod h1:F4IpaKZuPP360tOMn2Tpyu0At8w23aRyVqeK0DbFeGM= -github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= -github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= -github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= -github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= -github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= -github.com/multiformats/go-multiaddr-fmt v0.1.0/go.mod h1:hGtDIW4PU4BqJ50gW2quDuPVjyWNZxToGUh/HwTZYJo= -github.com/multiformats/go-multibase v0.0.3/go.mod h1:5+1R4eQrT3PkYZ24C3W2Ue2tPwIdYQD509ZjSb5y9Oc= -github.com/multiformats/go-multibase v0.1.1/go.mod h1:ZEjHE+IsUrgp5mhlEAYjMtZwK1k4haNkcaPg9aoe1a8= -github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= -github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= -github.com/multiformats/go-multicodec v0.4.1/go.mod h1:1Hj/eHRaVWSXiSNNfcEPcwZleTmdNP81xlxDLnWU9GQ= -github.com/multiformats/go-multicodec v0.5.0/go.mod h1:DiY2HFaEp5EhEXb/iYzVAunmyX/aSFMxq2KMKfWEues= -github.com/multiformats/go-multicodec v0.8.1 h1:ycepHwavHafh3grIbR1jIXnKCsFm0fqsfEOsJ8NtKE8= -github.com/multiformats/go-multicodec v0.8.1/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= -github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= -github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc= -github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg= -github.com/multiformats/go-multihash v0.2.1 h1:aem8ZT0VA2nCHHk7bPJ1BjUbHNciqZC/d16Vve9l108= -github.com/multiformats/go-multihash v0.2.1/go.mod h1:WxoMcYG85AZVQUyRyo9s4wULvW5qrI9vb2Lt6evduFc= -github.com/multiformats/go-multistream v0.3.3/go.mod h1:ODRoqamLUsETKS9BNcII4gcRsJBU5VAwRIv7O39cEXg= -github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo= -github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q= -github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= -github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= -github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= -github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= -github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= -github.com/onsi/ginkgo/v2 v2.2.0/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= -github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0= -github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= -github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw= -github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= -github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= -github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= -github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= -github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= -github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= -github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= -github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= -github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM= -github.com/onsi/gomega v1.24.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= -github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM= -github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= -github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= -github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= -github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= -github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= -github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= -github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= -github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= -github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= -github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= -github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= -github.com/prometheus/procfs v0.0.0-20180725123919-05ee40e3a273/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= -github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= -github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= -github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= -github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-19 v0.2.1/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-19 v0.3.3 h1:wznEHvJwd+2X3PqftRha0SUKmGsnb6dfArMhy9PeJVE= -github.com/quic-go/qtls-go1-19 v0.3.3/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/qtls-go1-20 v0.1.1/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/qtls-go1-20 v0.2.3 h1:m575dovXn1y2ATOb1XrRFcrv0F+EQmlowTkoraNkDPI= -github.com/quic-go/qtls-go1-20 v0.2.3/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo= -github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0= -github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA= -github.com/quic-go/webtransport-go v0.5.2 h1:GA6Bl6oZY+g/flt00Pnu0XtivSD8vukOu3lYhJjnGEk= -github.com/quic-go/webtransport-go v0.5.2/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= -github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= -github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= -github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= -github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= -github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c/go.mod h1:8d3azKNyqcHP1GaQE/c6dDgjkgSx2BZ4IoEi4F1reUI= -github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b/go.mod h1:ZpfEhSmds4ytuByIcDnOLkTHGUI6KNqRNPDLHDk+mUU= -github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20/go.mod h1:UDKB5a1T23gOMUJrI+uSuH0VRDStOiUVSjBTRDVBVag= -github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9/go.mod h1:+rgNQw2P9ARFAs37qieuu7ohDNQ3gds9msbT2yn85sg= -github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50/go.mod h1:zPn1wHpTIePGnXSHpsVPWEktKXHr6+SS6x/IKRb7cpw= -github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc/go.mod h1:aYMfkZ6DWSJPJ6c4Wwz3QtW22G7mf/PEgaB9k/ik5+Y= -github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= -github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q= -github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191/go.mod h1:e2qWDig5bLteJ4fwvDAc2NHzqFEthkqn7aOZAOpj+PQ= -github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241/go.mod h1:NPpHK2TI7iSaM0buivtFUc9offApnI0Alt/K8hcHy0I= -github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122/go.mod h1:b5uSkrEVM1jQUspwbixRBhaIjIzL2xazXp6kntxYle0= -github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2/go.mod h1:eWdoE5JD4R5UVWDucdOPg1g2fqQRq78IQa9zlOV1vpQ= -github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82/go.mod h1:TCR1lToEk4d2s07G3XGfz2QrgHXg4RJBvjrOozvoWfk= -github.com/shurcooL/sanitized_anchor_name v0.0.0-20170918181015-86672fcb3f95/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= -github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= -github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= -github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= -github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= -github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= -github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= -github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/dig v1.16.1 h1:+alNIBsl0qfY0j6epRubp/9obgtrObRAc5aD+6jbWY8= -go.uber.org/dig v1.16.1/go.mod h1:557JTAUZT5bUK0SvCwikmLPPtdQhfvLYtO5tJgQSbnk= -go.uber.org/fx v1.19.2 h1:SyFgYQFr1Wl0AYstE8vyYIzP4bFz2URrScjwC4cwUvY= -go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= -go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= -go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.22.0/go.mod h1:H4siCOZOrAolnUPJEkfaSjDqyP+BDS0DdDWzwcgt3+U= -go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200602180216-279210d13fed/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= -golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181029044818-c44066c5c816/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181106065722-10aee1819953/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190313220215-9f648a60d977/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20220812174116-3211cb980234/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.0.0-20220923203811-8be639271d50/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= -golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= -golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181029174526-d69651ed3497/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190228124157-a34e9553db1e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190316082340-a2f829d7f35f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= -golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= -google.golang.org/api v0.1.0/go.mod h1:UGEZY7KEX120AnNLIHFMKIo4obdJhkp2tPbaPlQx13Y= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181029155118-b69ba1387ce2/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181202183823-bd91e49a0898/go.mod h1:7Ep/1NZk928CDR8SjdVbjWNpdIf6nzjE3BTgJDr2Atg= -google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -lukechampine.com/blake3 v1.1.6/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0= -lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA= -nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= -nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= -sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/packages/transport-webtransport/go-libp2p-webtransport-server/main.go b/packages/transport-webtransport/go-libp2p-webtransport-server/main.go deleted file mode 100644 index 6a388e2ab0..0000000000 --- a/packages/transport-webtransport/go-libp2p-webtransport-server/main.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "fmt" - "io" - "os" - "os/signal" - "time" - - "github.com/libp2p/go-libp2p" - "github.com/libp2p/go-libp2p/core/network" - webtransport "github.com/libp2p/go-libp2p/p2p/transport/webtransport" - "github.com/multiformats/go-multiaddr" -) - -func main() { - h, err := libp2p.New(libp2p.Transport(webtransport.New)) - if err != nil { - panic(err) - } - - err = h.Network().Listen(multiaddr.StringCast("/ip4/127.0.0.1/udp/0/quic-v1/webtransport")) - if err != nil { - panic(err) - } - - err = h.Network().Listen(multiaddr.StringCast("/ip6/::1/udp/0/quic-v1/webtransport")) - if err != nil { - panic(err) - } - - h.SetStreamHandler("echo", func(s network.Stream) { - io.Copy(s, s) - s.Close() - }) - - for _, a := range h.Addrs() { - withP2p := a.Encapsulate(multiaddr.StringCast("/p2p/" + h.ID().String())) - fmt.Printf("addr=%s\n", withP2p.String()) - } - - c := make(chan os.Signal, 1) - signal.Notify(c, os.Interrupt) - select { - case <-c: - case <-time.After(time.Minute): - } -} diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index 7fcb3a0ea0..bbb237c3a4 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -63,10 +63,14 @@ "uint8arrays": "^5.0.3" }, "devDependencies": { + "@libp2p/daemon-client": "^8.0.5", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/ping": "^1.0.18", "@noble/hashes": "^1.4.0", "aegir": "^42.2.5", + "execa": "^9.1.0", + "go-libp2p": "^1.2.0", "it-map": "^3.1.0", "it-to-buffer": "^4.0.7", "libp2p": "^1.5.2", diff --git a/packages/transport-webtransport/src/index.ts b/packages/transport-webtransport/src/index.ts index 24f7c7a8d6..1ebe1cd508 100644 --- a/packages/transport-webtransport/src/index.ts +++ b/packages/transport-webtransport/src/index.ts @@ -117,20 +117,9 @@ class WebTransportTransport implements Transport { options = options ?? {} const { url, certhashes, remotePeer } = parseMultiaddr(ma) - - if (remotePeer == null) { - throw new CodeError('Need a target peerid', 'ERR_INVALID_PARAMETERS') - } - - if (certhashes.length === 0) { - throw new CodeError('Expected multiaddr to contain certhashes', 'ERR_INVALID_PARAMETERS') - } - let abortListener: (() => void) | undefined let maConn: MultiaddrConnection | undefined - let cleanUpWTSession: WebTransportSessionCleanup = () => {} - let closed = false let ready = false let authenticated = false @@ -246,7 +235,7 @@ class WebTransportTransport implements Transport { } } - async authenticateWebTransport (wt: WebTransport, localPeer: PeerId, remotePeer: PeerId, certhashes: Array>, signal?: AbortSignal): Promise { + async authenticateWebTransport (wt: WebTransport, localPeer: PeerId, remotePeer?: PeerId, certhashes: Array> = [], signal?: AbortSignal): Promise { if (signal?.aborted === true) { throw new AbortError() } @@ -327,9 +316,9 @@ class WebTransportTransport implements Transport { return false } - const { url, certhashes, remotePeer } = parseMultiaddr(ma) + const { url, certhashes } = parseMultiaddr(ma) - return url != null && remotePeer != null && certhashes.length > 0 + return url != null && certhashes.length > 0 }) } } diff --git a/packages/transport-webtransport/src/stream.ts b/packages/transport-webtransport/src/stream.ts index 4730dd60bd..c73b3b8a15 100644 --- a/packages/transport-webtransport/src/stream.ts +++ b/packages/transport-webtransport/src/stream.ts @@ -17,20 +17,21 @@ class WebTransportStream extends AbstractStream { this.writer = init.bidiStream.writable.getWriter() this.reader = init.bidiStream.readable.getReader() - Promise.resolve().then(async () => { - while (true) { - const result = await this.reader.read() - - if (result.done) { - init.log('remote closed write') - return - } - - if (result.value != null) { - this.sourcePush(new Uint8ArrayList(result.value)) + Promise.resolve() + .then(async () => { + while (true) { + const result = await this.reader.read() + + if (result.done) { + init.log('remote closed write') + return + } + + if (result.value != null) { + this.sourcePush(new Uint8ArrayList(result.value)) + } } - } - }) + }) .catch(err => { init.log.error('error reading from stream', err) this.abort(err) diff --git a/packages/transport-webtransport/test/browser.ts b/packages/transport-webtransport/test/browser.ts index ae8b3d3a42..7da82aee05 100644 --- a/packages/transport-webtransport/test/browser.ts +++ b/packages/transport-webtransport/test/browser.ts @@ -1,6 +1,7 @@ /* eslint-env mocha */ import { noise } from '@chainsafe/libp2p-noise' +import { ping } from '@libp2p/ping' import { multiaddr } from '@multiformats/multiaddr' import { expect } from 'aegir/chai' import map from 'it-map' @@ -8,10 +9,10 @@ import toBuffer from 'it-to-buffer' import { createLibp2p, type Libp2p } from 'libp2p' import pWaitFor from 'p-wait-for' import { webTransport } from '../src/index.js' -import { randomBytes } from './fixtures/random-bytes.js' +import type { PingService } from '@libp2p/ping' describe('libp2p-webtransport', () => { - let node: Libp2p + let node: Libp2p<{ ping: PingService }> beforeEach(async () => { node = await createLibp2p({ @@ -22,6 +23,9 @@ describe('libp2p-webtransport', () => { }, connectionManager: { minConnections: 0 + }, + services: { + ping: ping() } }) }) @@ -36,59 +40,27 @@ describe('libp2p-webtransport', () => { }) it('webtransport connects to go-libp2p', async () => { - if (process.env.serverAddr == null) { - throw new Error('serverAddr not found') + if (process.env.GO_LIBP2P_ADDR == null) { + throw new Error('GO_LIBP2P_ADDR not found') } - const maStr: string = process.env.serverAddr + const maStr: string = process.env.GO_LIBP2P_ADDR const ma = multiaddr(maStr) // Ping many times - for (let index = 0; index < 100; index++) { - const now = Date.now() - - // Note we're re-implementing the ping protocol here because as of this - // writing, go-libp2p will reset the stream instead of close it. The next - // version of go-libp2p v0.24.0 will have this fix. When that's released - // we can use the builtin ping system - const stream = await node.dialProtocol(ma, '/ipfs/ping/1.0.0') - - const data = randomBytes(32) - - const pong = new Promise((resolve, reject) => { - (async () => { - for await (const chunk of stream.source) { - const v = chunk.subarray() - const byteMatches: boolean = v.every((byte: number, i: number) => byte === data[i]) - if (byteMatches) { - resolve() - } else { - reject(new Error('Wrong pong')) - } - } - })().catch(reject) - }) - - let res = -1 - await stream.sink((async function * () { - yield data - // Wait for the pong before we close the write side - await pong - res = Date.now() - now - })()) - - await stream.close() + for (let index = 0; index < 50; index++) { + const res = await node.services.ping.ping(ma) expect(res).to.be.greaterThan(-1) } }) it('fails to connect without certhashes', async () => { - if (process.env.serverAddr == null) { - throw new Error('serverAddr not found') + if (process.env.GO_LIBP2P_ADDR == null) { + throw new Error('GO_LIBP2P_ADDR not found') } - const maStr: string = process.env.serverAddr + const maStr: string = process.env.GO_LIBP2P_ADDR const maStrNoCerthash: string = maStr.split('/certhash')[0] const maStrP2p = maStr.split('/p2p/')[1] const ma = multiaddr(maStrNoCerthash + '/p2p/' + maStrP2p) @@ -98,11 +70,11 @@ describe('libp2p-webtransport', () => { }) it('fails to connect due to an aborted signal', async () => { - if (process.env.serverAddr == null) { - throw new Error('serverAddr not found') + if (process.env.GO_LIBP2P_ADDR == null) { + throw new Error('GO_LIBP2P_ADDR not found') } - const maStr: string = process.env.serverAddr + const maStr: string = process.env.GO_LIBP2P_ADDR const ma = multiaddr(maStr) const controller = new AbortController() @@ -114,28 +86,13 @@ describe('libp2p-webtransport', () => { expect(err.toString()).to.contain('aborted') }) - it('connects to ipv6 addresses', async function () { - if (process.env.disableIp6 === 'true') { - return this.skip() - } - if (process.env.serverAddr6 == null) { - throw new Error('serverAddr6 not found') - } - - const ma = multiaddr(process.env.serverAddr6) - - // the address is unreachable but we can parse it correctly - const stream = await node.dialProtocol(ma, '/ipfs/ping/1.0.0') - await stream.close() - }) - it('closes writes of streams after they have sunk a source', async () => { // This is the behavior of stream muxers: (see mplex, yamux and compliance tests: https://github.com/libp2p/js-libp2p/blob/main/packages/interface-compliance-tests/src/stream-muxer/close-test.ts) - if (process.env.serverAddr == null) { - throw new Error('serverAddr not found') + if (process.env.GO_LIBP2P_ADDR == null) { + throw new Error('GO_LIBP2P_ADDR not found') } - const maStr: string = process.env.serverAddr + const maStr: string = process.env.GO_LIBP2P_ADDR const ma = multiaddr(maStr) const data = [ @@ -150,7 +107,7 @@ describe('libp2p-webtransport', () => { yield * data } - const stream = await node.dialProtocol(ma, 'echo') + const stream = await node.dialProtocol(ma, '/echo/1.0.0') expect(stream.timeline.closeWrite).to.be.undefined() expect(stream.timeline.closeRead).to.be.undefined() From 7de56f2444f0501e2e38b7aa658a4271441f8a9c Mon Sep 17 00:00:00 2001 From: achingbrain Date: Thu, 16 May 2024 16:39:20 +0100 Subject: [PATCH 20/30] chore: remove extra build file --- .github/workflows/js-test-and-release.yml | 182 ---------------------- .github/workflows/main.yml | 8 - 2 files changed, 190 deletions(-) delete mode 100644 .github/workflows/js-test-and-release.yml diff --git a/.github/workflows/js-test-and-release.yml b/.github/workflows/js-test-and-release.yml deleted file mode 100644 index a15c379170..0000000000 --- a/.github/workflows/js-test-and-release.yml +++ /dev/null @@ -1,182 +0,0 @@ -name: test & maybe release -on: - push: - branches: - - main - pull_request: - -jobs: - - check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present lint - - run: npm run --if-present dep-check - - run: npm run --if-present doc-check - - test-node: - needs: check - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest, ubuntu-latest, macos-latest] - node: [lts/*] - fail-fast: true - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:node - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: node - - test-chrome: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:chrome - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: chrome - - test-chrome-webworker: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:chrome-webworker - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: chrome-webworker - - test-firefox: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:firefox - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: firefox - - test-firefox-webworker: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:firefox-webworker - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: firefox-webworker - - test-webkit: - needs: check - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - node: [lts/*] - fail-fast: true - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:webkit - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: webkit - - test-webkit-webworker: - needs: check - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest] - node: [lts/*] - fail-fast: true - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npm run --if-present test:webkit-webworker - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: webkit-webworker - - test-electron-main: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npx xvfb-maybe npm run --if-present test:electron-main - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: electron-main - - test-electron-renderer: - needs: check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - run: npx xvfb-maybe npm run --if-present test:electron-renderer - - uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 - with: - flags: electron-renderer - - release: - needs: [test-node, test-chrome, test-chrome-webworker, test-firefox, test-firefox-webworker, test-webkit, test-webkit-webworker, test-electron-main, test-electron-renderer] - runs-on: ubuntu-latest - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/setup-node@v3 - with: - node-version: lts/* - - uses: ipfs/aegir/actions/cache-node-modules@master - - uses: ipfs/aegir/actions/docker-login@master - with: - docker-token: ${{ secrets.DOCKER_TOKEN }} - docker-username: ${{ secrets.DOCKER_USERNAME }} - - run: npm run --if-present release - env: - GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN || github.token }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e7423281bd..b1179ea8c7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,10 +62,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - # needed for webtransport tests, remove after https://github.com/libp2p/js-libp2p/pull/2422 - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: '1.20' - uses: actions/setup-node@v4 with: node-version: lts/* @@ -82,10 +78,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - # needed for webtransport tests, remove after https://github.com/libp2p/js-libp2p/pull/2422 - - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 - with: - go-version: '1.20' - uses: actions/setup-node@v4 with: node-version: lts/* From 5b7380259ddcd36e3e919dadb6380dc939ae9537 Mon Sep 17 00:00:00 2001 From: Chad Nehemiah Date: Thu, 16 May 2024 10:40:57 -0500 Subject: [PATCH 21/30] docs: update React Native instructions in config (#2540) Update React Native instructions in config Closes #2136 --- doc/GETTING_STARTED.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/GETTING_STARTED.md b/doc/GETTING_STARTED.md index fa6d15ecf5..76645520bf 100644 --- a/doc/GETTING_STARTED.md +++ b/doc/GETTING_STARTED.md @@ -16,6 +16,7 @@ Welcome to libp2p! This guide will walk you through setting up a fully functiona - [Debugging](#debugging) - [Node](#node) - [Browser](#browser) + - [React Native](#react-native) - [What is next](#what-is-next) ## Install @@ -271,6 +272,10 @@ localStorage.setItem('debug', 'libp2p:*') // then refresh the page to ensure the localStorage.setItem('debug', 'libp2p:websockets,libp2p:webtransport,libp2p:kad-dht,libp2p:dialer') ``` +## React Native + +Libp2p can be used in React Native applications. However, there are some limitations and considerations to take into account as not all transports are supported and some of the underlying dependencies may not work as expected. There is on-going work to address these issues, particularly around the support of TCP. For a demo on how to use libp2p in a React Native application, see https://github.com/ipfs-shipyard/js-libp2p-react-native + ## What is next There are a lot of other concepts within `libp2p`, that are not covered in this guide. For additional configuration options we recommend checking out the [Configuration Readme](https://github.com/libp2p/js-libp2p/blob/main/doc/CONFIGURATION.md) and the [examples repo](https://github.com/libp2p/js-libp2p-examples). If you have any problems getting started, or if anything isn't clear, please let us know by submitting an issue! From 36f0a6e3568c2b6cbbe4bede6f1941b592e9db6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 18:08:42 +0100 Subject: [PATCH 22/30] ci: bump codecov/codecov-action from 4.3.0 to 4.3.1 (#2527) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/84508663e988701840491b86de86b666e8a86bed...5ecb98a3c6b747ed38dc09f787459979aebb39be) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Potsides --- .github/workflows/main.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1179ea8c7..37bcad347d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,7 +51,7 @@ jobs: node-version: ${{ matrix.node }} - uses: ipfs/aegir/actions/cache-node-modules@master - run: npm run --if-present test:node - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: node files: .coverage/*,packages/*/.coverage/* @@ -67,7 +67,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npm run --if-present test:chrome - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: chrome files: .coverage/*,packages/*/.coverage/* @@ -83,7 +83,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npm run --if-present test:chrome-webworker - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: chrome-webworker files: .coverage/*,packages/*/.coverage/* @@ -99,7 +99,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npm run --if-present test:firefox - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: firefox files: .coverage/*,packages/*/.coverage/* @@ -115,7 +115,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npm run --if-present test:firefox-webworker - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: firefox-webworker files: .coverage/*,packages/*/.coverage/* @@ -136,7 +136,7 @@ jobs: sudo apt-get update - run: npx playwright install-deps - run: npm run --if-present test:webkit - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: webkit files: .coverage/*,packages/*/.coverage/* @@ -152,7 +152,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npx xvfb-maybe npm run --if-present test:electron-main - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: electron-main files: .coverage/*,packages/*/.coverage/* @@ -168,7 +168,7 @@ jobs: node-version: lts/* - uses: ipfs/aegir/actions/cache-node-modules@master - run: npx xvfb-maybe npm run --if-present test:electron-renderer - - uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0 + - uses: codecov/codecov-action@5ecb98a3c6b747ed38dc09f787459979aebb39be # v4.3.1 with: flags: electron-renderer files: .coverage/*,packages/*/.coverage/* From 1eb5b2713585e0d4dde927ecd307ada0b774d824 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 13:02:49 -0500 Subject: [PATCH 23/30] deps: bump sinon from 17.0.2 to 18.0.0 (#2548) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex Potsides Co-authored-by: Chad Nehemiah --- packages/connection-encrypter-plaintext/package.json | 2 +- packages/connection-encrypter-tls/package.json | 2 +- packages/integration-tests/package.json | 2 +- packages/interface-compliance-tests/package.json | 2 +- packages/kad-dht/package.json | 2 +- packages/libp2p/package.json | 2 +- packages/logger/package.json | 2 +- packages/peer-collections/package.json | 2 +- packages/peer-store/package.json | 2 +- packages/protocol-autonat/package.json | 2 +- packages/protocol-dcutr/package.json | 2 +- packages/protocol-echo/package.json | 2 +- packages/protocol-fetch/package.json | 2 +- packages/pubsub-floodsub/package.json | 2 +- packages/pubsub/package.json | 2 +- packages/transport-circuit-relay-v2/package.json | 2 +- packages/transport-tcp/package.json | 2 +- packages/transport-webrtc/package.json | 2 +- packages/utils/package.json | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/connection-encrypter-plaintext/package.json b/packages/connection-encrypter-plaintext/package.json index bd0dceebd6..114af5fb48 100644 --- a/packages/connection-encrypter-plaintext/package.json +++ b/packages/connection-encrypter-plaintext/package.json @@ -66,7 +66,7 @@ "@multiformats/multiaddr": "^12.2.1", "aegir": "^42.2.5", "protons": "^7.5.0", - "sinon": "^17.0.1" + "sinon": "^18.0.0" }, "sideEffects": false } diff --git a/packages/connection-encrypter-tls/package.json b/packages/connection-encrypter-tls/package.json index a30a9db979..390ca215c2 100644 --- a/packages/connection-encrypter-tls/package.json +++ b/packages/connection-encrypter-tls/package.json @@ -69,7 +69,7 @@ "@multiformats/multiaddr": "^12.2.1", "aegir": "^42.2.5", "protons": "^7.5.0", - "sinon": "^17.0.1" + "sinon": "^18.0.0" }, "sideEffects": false } diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 38d14742c2..1f5e987054 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -76,7 +76,7 @@ "p-event": "^6.0.1", "p-retry": "^6.2.0", "p-wait-for": "^5.0.2", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.0.3", "wherearewe": "^2.0.1" diff --git a/packages/interface-compliance-tests/package.json b/packages/interface-compliance-tests/package.json index e4d4c33ce4..e32e36e5f3 100644 --- a/packages/interface-compliance-tests/package.json +++ b/packages/interface-compliance-tests/package.json @@ -141,7 +141,7 @@ "p-limit": "^5.0.0", "p-wait-for": "^5.0.2", "protons-runtime": "^5.4.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.0.3" }, diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index 510c58e2ad..fa28998837 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -112,7 +112,7 @@ "p-retry": "^6.2.0", "p-wait-for": "^5.0.2", "protons": "^7.5.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0", "which": "^4.0.0" }, diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index a5363b86eb..7375879f73 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -131,7 +131,7 @@ "it-take": "^3.0.4", "p-event": "^6.0.1", "p-wait-for": "^5.0.2", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0", "uint8arraylist": "^2.4.8" }, diff --git a/packages/logger/package.json b/packages/logger/package.json index 1211ef9b66..933af0cc6e 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -64,7 +64,7 @@ "@libp2p/peer-id": "^4.1.1", "@types/debug": "^4.1.12", "aegir": "^42.2.5", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "uint8arrays": "^5.0.3" }, "sideEffects": false diff --git a/packages/peer-collections/package.json b/packages/peer-collections/package.json index 2c129041f3..ceeb5b15c9 100644 --- a/packages/peer-collections/package.json +++ b/packages/peer-collections/package.json @@ -62,7 +62,7 @@ "@libp2p/peer-id-factory": "^4.1.1", "@types/sinon": "^17.0.3", "aegir": "^42.2.5", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/peer-store/package.json b/packages/peer-store/package.json index a171ddf10d..42b1cd254e 100644 --- a/packages/peer-store/package.json +++ b/packages/peer-store/package.json @@ -82,7 +82,7 @@ "p-defer": "^4.0.1", "p-event": "^6.0.1", "protons": "^7.5.0", - "sinon": "^17.0.1" + "sinon": "^18.0.0" }, "sideEffects": false } diff --git a/packages/protocol-autonat/package.json b/packages/protocol-autonat/package.json index c0b895313f..91688563a5 100644 --- a/packages/protocol-autonat/package.json +++ b/packages/protocol-autonat/package.json @@ -72,7 +72,7 @@ "it-all": "^3.0.4", "it-pushable": "^3.2.3", "protons": "^7.5.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/protocol-dcutr/package.json b/packages/protocol-dcutr/package.json index 366ad5c86a..91240b4485 100644 --- a/packages/protocol-dcutr/package.json +++ b/packages/protocol-dcutr/package.json @@ -65,7 +65,7 @@ "devDependencies": { "aegir": "^42.2.5", "protons": "^7.5.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/protocol-echo/package.json b/packages/protocol-echo/package.json index 4263ad15be..f721458f30 100644 --- a/packages/protocol-echo/package.json +++ b/packages/protocol-echo/package.json @@ -61,7 +61,7 @@ "aegir": "^42.2.5", "it-all": "^3.0.4", "it-pair": "^2.0.6", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0", "uint8arraylist": "^2.4.8" }, diff --git a/packages/protocol-fetch/package.json b/packages/protocol-fetch/package.json index 9d852ee899..e7645121b1 100644 --- a/packages/protocol-fetch/package.json +++ b/packages/protocol-fetch/package.json @@ -65,7 +65,7 @@ "aegir": "^42.2.5", "it-pair": "^2.0.6", "protons": "^7.5.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/pubsub-floodsub/package.json b/packages/pubsub-floodsub/package.json index 849c71f60f..7dc3333a34 100644 --- a/packages/pubsub-floodsub/package.json +++ b/packages/pubsub-floodsub/package.json @@ -77,7 +77,7 @@ "multiformats": "^13.1.0", "p-wait-for": "^5.0.2", "protons": "^7.5.0", - "sinon": "^17.0.1" + "sinon": "^18.0.0" }, "sideEffects": false } diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 73c98029c4..ee7e4b39a0 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -109,7 +109,7 @@ "p-wait-for": "^5.0.2", "protons": "^7.5.0", "protons-runtime": "^5.4.0", - "sinon": "^17.0.1" + "sinon": "^18.0.0" }, "sideEffects": false } diff --git a/packages/transport-circuit-relay-v2/package.json b/packages/transport-circuit-relay-v2/package.json index 764941de74..add4937bb8 100644 --- a/packages/transport-circuit-relay-v2/package.json +++ b/packages/transport-circuit-relay-v2/package.json @@ -83,7 +83,7 @@ "p-wait-for": "^5.0.2", "protons": "^7.5.0", "race-signal": "^1.0.2", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/transport-tcp/package.json b/packages/transport-tcp/package.json index c41b1a592b..aeec94b08a 100644 --- a/packages/transport-tcp/package.json +++ b/packages/transport-tcp/package.json @@ -70,7 +70,7 @@ "it-all": "^3.0.4", "it-pipe": "^3.0.1", "p-defer": "^4.0.1", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "uint8arrays": "^5.0.3" }, "sideEffects": false diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index 42b84a57a6..a3d741d568 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -94,7 +94,7 @@ "libp2p": "^1.5.2", "p-retry": "^6.2.0", "protons": "^7.5.0", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "browser": { diff --git a/packages/utils/package.json b/packages/utils/package.json index 994c513cf3..0357df7e66 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -182,7 +182,7 @@ "it-drain": "^3.0.5", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, "sideEffects": false From 8214dcfb0e14e7bf377b5f0d9864551038c069fa Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Fri, 17 May 2024 15:52:48 +0100 Subject: [PATCH 24/30] fix: allow creating counter groups (#2550) Fixes a small bug in the creation of in-memory metrics. --- packages/metrics-simple/src/index.ts | 4 +- packages/metrics-simple/test/index.spec.ts | 88 ++++++++++++++++++++++ 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/packages/metrics-simple/src/index.ts b/packages/metrics-simple/src/index.ts index d8f25688b5..8e312c5fc9 100644 --- a/packages/metrics-simple/src/index.ts +++ b/packages/metrics-simple/src/index.ts @@ -245,7 +245,7 @@ class SimpleMetrics implements Metrics, Startable { return } - const metric = new DefaultMetric() + const metric = new DefaultGroupMetric() this.metrics.set(name, metric) return metric @@ -264,7 +264,7 @@ class SimpleMetrics implements Metrics, Startable { return } - const metric = new DefaultGroupMetric() + const metric = new DefaultMetric() this.metrics.set(name, metric) return metric diff --git a/packages/metrics-simple/test/index.spec.ts b/packages/metrics-simple/test/index.spec.ts index 6cc860f637..c9ab3cd8df 100644 --- a/packages/metrics-simple/test/index.spec.ts +++ b/packages/metrics-simple/test/index.spec.ts @@ -55,4 +55,92 @@ describe('simple-metrics', () => { expect(list).to.not.have.nested.property('[1].foo.baz') }) + + it('should create a metric', async () => { + const deferred = pDefer>() + + s = simpleMetrics({ + onMetrics: (metrics) => { + deferred.resolve(metrics) + }, + intervalMs: 10 + })({}) + + await start(s) + + const m = s.registerMetric('test_metric') + m.update(10) + + const metrics = await deferred.promise + expect(metrics).to.have.property('test_metric', 10) + }) + + it('should create a counter metric', async () => { + const deferred = pDefer>() + + s = simpleMetrics({ + onMetrics: (metrics) => { + deferred.resolve(metrics) + }, + intervalMs: 10 + })({}) + + await start(s) + + const m = s.registerCounter('test_metric') + m.increment() + + const metrics = await deferred.promise + expect(metrics).to.have.property('test_metric', 1) + }) + + it('should create a metric group', async () => { + const deferred = pDefer>() + + s = simpleMetrics({ + onMetrics: (metrics) => { + deferred.resolve(metrics) + }, + intervalMs: 10 + })({}) + + await start(s) + + const m = s.registerMetricGroup('test_metric') + m.update({ + foo: 10, + bar: 20 + }) + + const metrics = await deferred.promise + expect(metrics).to.have.deep.property('test_metric', { + foo: 10, + bar: 20 + }) + }) + + it('should create a metric counter group', async () => { + const deferred = pDefer>() + + s = simpleMetrics({ + onMetrics: (metrics) => { + deferred.resolve(metrics) + }, + intervalMs: 10 + })({}) + + await start(s) + + const m = s.registerCounterGroup('test_metric') + m.increment({ + foo: 10, + bar: 20 + }) + + const metrics = await deferred.promise + expect(metrics).to.have.deep.property('test_metric', { + foo: 10, + bar: 20 + }) + }) }) From 1a41c28bb76a365c3474f94e3f7dcf7691c0cec2 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 17 May 2024 18:25:24 +0100 Subject: [PATCH 25/30] chore: add metrics-simple to config --- .release-please-manifest.json | 2 +- .release-please.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c4f6797bda..767d65defb 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"interop":"2.0.32","packages/connection-encrypter-plaintext":"1.0.23","packages/connection-encrypter-tls":"1.0.10","packages/crypto":"4.1.1","packages/interface":"1.3.1","packages/interface-compliance-tests":"5.4.4","packages/interface-internal":"1.2.1","packages/kad-dht":"12.0.16","packages/keychain":"4.0.14","packages/libp2p":"1.5.2","packages/logger":"4.0.12","packages/metrics-prometheus":"3.0.23","packages/multistream-select":"5.1.9","packages/peer-collections":"5.2.1","packages/peer-discovery-bootstrap":"10.0.23","packages/peer-discovery-mdns":"10.0.23","packages/peer-id":"4.1.1","packages/peer-id-factory":"4.1.1","packages/peer-record":"7.0.17","packages/peer-store":"10.0.18","packages/protocol-autonat":"1.0.20","packages/protocol-dcutr":"1.0.20","packages/protocol-echo":"1.0.6","packages/protocol-fetch":"1.0.17","packages/protocol-identify":"2.0.1","packages/protocol-perf":"3.0.23","packages/protocol-ping":"1.0.18","packages/pubsub":"9.0.18","packages/pubsub-floodsub":"9.0.19","packages/record":"4.0.1","packages/stream-multiplexer-mplex":"10.0.23","packages/transport-circuit-relay-v2":"1.0.23","packages/transport-tcp":"9.0.25","packages/transport-webrtc":"4.0.32","packages/transport-websockets":"8.0.23","packages/transport-webtransport":"4.0.31","packages/upnp-nat":"1.0.21","packages/utils":"5.4.1"} \ No newline at end of file +{"interop":"2.0.32","packages/connection-encrypter-plaintext":"1.0.23","packages/connection-encrypter-tls":"1.0.10","packages/crypto":"4.1.1","packages/interface":"1.3.1","packages/interface-compliance-tests":"5.4.4","packages/interface-internal":"1.2.1","packages/kad-dht":"12.0.16","packages/keychain":"4.0.14","packages/libp2p":"1.5.2","packages/logger":"4.0.12","packages/metrics-prometheus":"3.0.23","packages/metrics-simple":"1.0.1","packages/multistream-select":"5.1.9","packages/peer-collections":"5.2.1","packages/peer-discovery-bootstrap":"10.0.23","packages/peer-discovery-mdns":"10.0.23","packages/peer-id":"4.1.1","packages/peer-id-factory":"4.1.1","packages/peer-record":"7.0.17","packages/peer-store":"10.0.18","packages/protocol-autonat":"1.0.20","packages/protocol-dcutr":"1.0.20","packages/protocol-echo":"1.0.6","packages/protocol-fetch":"1.0.17","packages/protocol-identify":"2.0.1","packages/protocol-perf":"3.0.23","packages/protocol-ping":"1.0.18","packages/pubsub":"9.0.18","packages/pubsub-floodsub":"9.0.19","packages/record":"4.0.1","packages/stream-multiplexer-mplex":"10.0.23","packages/transport-circuit-relay-v2":"1.0.23","packages/transport-tcp":"9.0.25","packages/transport-webrtc":"4.0.32","packages/transport-websockets":"8.0.23","packages/transport-webtransport":"4.0.31","packages/upnp-nat":"1.0.21","packages/utils":"5.4.1"} \ No newline at end of file diff --git a/.release-please.json b/.release-please.json index 6bafb871e1..c558e0fcb0 100644 --- a/.release-please.json +++ b/.release-please.json @@ -21,6 +21,7 @@ "packages/libp2p": {}, "packages/logger": {}, "packages/metrics-prometheus": {}, + "packages/metrics-simple": {}, "packages/multistream-select": {}, "packages/peer-collections": {}, "packages/peer-discovery-bootstrap": {}, From 48444f750ebe3f03290bf70e84d7590edc030ea4 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 17 May 2024 18:29:25 +0100 Subject: [PATCH 26/30] fix: update project config --- .gitignore | 7 +-- doc/package.json | 2 +- interop/package.json | 6 +- .../package.json | 6 +- .../connection-encrypter-tls/package.json | 6 +- packages/crypto/package.json | 4 +- packages/integration-tests/package.json | 62 +++++++++---------- .../interface-compliance-tests/package.json | 20 +++--- packages/interface-internal/package.json | 4 +- packages/interface/package.json | 4 +- packages/kad-dht/package.json | 28 ++++----- packages/keychain/package.json | 4 +- packages/libp2p/package.json | 20 +++--- packages/logger/package.json | 6 +- packages/metrics-prometheus/package.json | 10 +-- packages/metrics-simple/README.md | 4 +- packages/metrics-simple/package.json | 4 +- packages/multistream-select/package.json | 10 +-- packages/peer-collections/package.json | 2 +- .../peer-discovery-bootstrap/package.json | 4 +- packages/peer-discovery-mdns/package.json | 4 +- packages/peer-id-factory/package.json | 4 +- packages/peer-id/package.json | 4 +- packages/peer-record/package.json | 6 +- packages/peer-store/package.json | 8 +-- packages/pnet/package.json | 22 +++---- packages/protocol-autonat/package.json | 12 ++-- packages/protocol-dcutr/package.json | 8 +-- packages/protocol-echo/package.json | 4 +- packages/protocol-fetch/package.json | 6 +- packages/protocol-identify/README.md | 2 +- packages/protocol-identify/package.json | 10 +-- packages/protocol-perf/package.json | 6 +- packages/protocol-ping/package.json | 10 +-- packages/pubsub-floodsub/package.json | 6 +- packages/pubsub/package.json | 4 +- packages/record/package.json | 4 +- .../stream-multiplexer-mplex/package.json | 14 ++--- .../transport-circuit-relay-v2/package.json | 12 ++-- packages/transport-tcp/package.json | 10 +-- packages/transport-webrtc/package.json | 20 +++--- packages/transport-websockets/package.json | 12 ++-- packages/transport-webtransport/package.json | 8 +-- packages/transport-webtransport/tsconfig.json | 6 ++ packages/upnp-nat/package.json | 4 +- packages/utils/package.json | 30 ++++----- packages/utils/tsconfig.json | 3 + packages/utils/typedoc.json | 6 ++ 48 files changed, 234 insertions(+), 224 deletions(-) diff --git a/.gitignore b/.gitignore index 4a257bfffa..7ad9e674ee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +node_modules build dist .docs @@ -5,10 +6,4 @@ dist node_modules package-lock.json yarn.lock -.tmp-compiled-docs -tsconfig-doc-check.aegir.json - -# IDE -.DS_Store .vscode -packages/transport-webtransport/go-libp2p-webtransport-server/main diff --git a/doc/package.json b/doc/package.json index 90e81225a7..792bf07988 100644 --- a/doc/package.json +++ b/doc/package.json @@ -24,7 +24,7 @@ "doc-check": "aegir doc-check" }, "devDependencies": { - "aegir": "^42.2.5" + "aegir": "^42.2.11" }, "private": true } diff --git a/interop/package.json b/interop/package.json index 1e2c46029a..e072d06346 100644 --- a/interop/package.json +++ b/interop/package.json @@ -66,10 +66,10 @@ "@libp2p/websockets": "^8.0.23", "@libp2p/webtransport": "^4.0.31", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", - "aegir": "^42.2.5", + "@multiformats/multiaddr": "^12.2.3", + "aegir": "^42.2.11", "libp2p": "^1.5.2", - "redis": "^4.6.13" + "redis": "^4.6.14" }, "browser": { "@libp2p/tcp": false diff --git a/packages/connection-encrypter-plaintext/package.json b/packages/connection-encrypter-plaintext/package.json index 114af5fb48..eb45c9abb0 100644 --- a/packages/connection-encrypter-plaintext/package.json +++ b/packages/connection-encrypter-plaintext/package.json @@ -54,7 +54,7 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "it-stream-types": "^2.0.1", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8" @@ -63,8 +63,8 @@ "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "@multiformats/multiaddr": "^12.2.1", - "aegir": "^42.2.5", + "@multiformats/multiaddr": "^12.2.3", + "aegir": "^42.2.11", "protons": "^7.5.0", "sinon": "^18.0.0" }, diff --git a/packages/connection-encrypter-tls/package.json b/packages/connection-encrypter-tls/package.json index 390ca215c2..869e0bd5f2 100644 --- a/packages/connection-encrypter-tls/package.json +++ b/packages/connection-encrypter-tls/package.json @@ -60,14 +60,14 @@ "it-stream-types": "^2.0.1", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "@multiformats/multiaddr": "^12.2.1", - "aegir": "^42.2.5", + "@multiformats/multiaddr": "^12.2.3", + "aegir": "^42.2.11", "protons": "^7.5.0", "sinon": "^18.0.0" }, diff --git a/packages/crypto/package.json b/packages/crypto/package.json index 35a53703a7..d5222c2b2c 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -91,11 +91,11 @@ "multiformats": "^13.1.0", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@types/mocha": "^10.0.6", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "benchmark": "^2.1.4", "protons": "^7.5.0" }, diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 1f5e987054..cfa11c3b72 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -36,40 +36,40 @@ "@chainsafe/libp2p-gossipsub": "^13.0.0", "@chainsafe/libp2p-noise": "^15.0.0", "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/bootstrap": "^10.0.17", - "@libp2p/circuit-relay-v2": "^1.0.17", - "@libp2p/crypto": "^4.0.4", - "@libp2p/daemon-client": "^8.0.4", - "@libp2p/daemon-server": "^7.0.4", - "@libp2p/dcutr": "^1.0.14", - "@libp2p/fetch": "^1.0.12", - "@libp2p/floodsub": "^9.0.13", - "@libp2p/identify": "^2.0.0", - "@libp2p/interface": "^1.1.5", - "@libp2p/interface-compliance-tests": "^5.3.3", - "@libp2p/interface-internal": "^1.0.10", + "@libp2p/bootstrap": "^10.0.23", + "@libp2p/circuit-relay-v2": "^1.0.23", + "@libp2p/crypto": "^4.1.1", + "@libp2p/daemon-client": "^8.0.5", + "@libp2p/daemon-server": "^7.0.5", + "@libp2p/dcutr": "^1.0.20", + "@libp2p/fetch": "^1.0.17", + "@libp2p/floodsub": "^9.0.19", + "@libp2p/identify": "^2.0.1", + "@libp2p/interface": "^1.3.1", + "@libp2p/interface-compliance-tests": "^5.4.4", + "@libp2p/interface-internal": "^1.2.1", "@libp2p/interop": "^11.0.0", - "@libp2p/kad-dht": "^12.0.10", - "@libp2p/logger": "^4.0.8", - "@libp2p/mdns": "^10.0.17", - "@libp2p/mplex": "^10.0.17", - "@libp2p/peer-id": "^4.0.8", - "@libp2p/peer-id-factory": "^4.0.8", - "@libp2p/ping": "^1.0.13", - "@libp2p/plaintext": "^1.0.17", - "@libp2p/tcp": "^9.0.17", - "@libp2p/tls": "^1.0.4", - "@libp2p/webrtc": "^4.0.23", - "@libp2p/websockets": "^8.0.17", + "@libp2p/kad-dht": "^12.0.16", + "@libp2p/logger": "^4.0.12", + "@libp2p/mdns": "^10.0.23", + "@libp2p/mplex": "^10.0.23", + "@libp2p/peer-id": "^4.1.1", + "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/ping": "^1.0.18", + "@libp2p/plaintext": "^1.0.23", + "@libp2p/tcp": "^9.0.25", + "@libp2p/tls": "^1.0.10", + "@libp2p/webrtc": "^4.0.32", + "@libp2p/websockets": "^8.0.23", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", - "aegir": "^42.2.5", + "@multiformats/multiaddr": "^12.2.3", + "aegir": "^42.2.11", "delay": "^6.0.0", - "execa": "^9.0.2", - "go-libp2p": "^1.1.1", - "it-all": "^3.0.4", + "execa": "^9.1.0", + "go-libp2p": "^1.2.0", + "it-all": "^3.0.6", "it-pipe": "^3.0.1", - "libp2p": "^1.3.1", + "libp2p": "^1.5.2", "merge-options": "^3.0.4", "multiformats": "^13.1.0", "p-defer": "^4.0.1", @@ -78,7 +78,7 @@ "p-wait-for": "^5.0.2", "sinon": "^18.0.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3", + "uint8arrays": "^5.1.0", "wherearewe": "^2.0.1" }, "browser": { diff --git a/packages/interface-compliance-tests/package.json b/packages/interface-compliance-tests/package.json index e32e36e5f3..735e76b47c 100644 --- a/packages/interface-compliance-tests/package.json +++ b/packages/interface-compliance-tests/package.json @@ -120,21 +120,21 @@ "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-id-factory": "^4.1.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "abortable-iterator": "^5.0.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", - "it-all": "^3.0.4", - "it-byte-stream": "^1.0.8", - "it-drain": "^3.0.5", - "it-map": "^3.0.5", - "it-ndjson": "^1.0.5", + "it-all": "^3.0.6", + "it-byte-stream": "^1.0.10", + "it-drain": "^3.0.7", + "it-map": "^3.1.0", + "it-ndjson": "^1.0.6", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", - "it-to-buffer": "^4.0.5", + "it-to-buffer": "^4.0.7", "merge-options": "^3.0.4", "p-defer": "^4.0.1", "p-event": "^6.0.1", @@ -143,7 +143,7 @@ "protons-runtime": "^5.4.0", "sinon": "^18.0.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "protons": "^7.5.0" diff --git a/packages/interface-internal/package.json b/packages/interface-internal/package.json index 405fe8d483..3f0cbc3809 100644 --- a/packages/interface-internal/package.json +++ b/packages/interface-internal/package.json @@ -50,11 +50,11 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/peer-collections": "^5.2.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "uint8arraylist": "^2.4.8" }, "devDependencies": { - "aegir": "^42.2.5" + "aegir": "^42.2.11" }, "sideEffects": false } diff --git a/packages/interface/package.json b/packages/interface/package.json index a95882f10e..deb8d9c4af 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -48,7 +48,7 @@ "build": "aegir build" }, "dependencies": { - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", "multiformats": "^13.1.0", @@ -56,7 +56,7 @@ "uint8arraylist": "^2.4.8" }, "devDependencies": { - "aegir": "^42.2.5" + "aegir": "^42.2.11" }, "browser": { "events": "./dist/src/events.browser.js" diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index fa28998837..d00e71c173 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -64,19 +64,19 @@ "@libp2p/peer-id": "^4.1.1", "@libp2p/record": "^4.0.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "any-signal": "^4.1.1", "hashlru": "^2.3.0", "interface-datastore": "^8.2.11", - "it-drain": "^3.0.5", - "it-length": "^3.0.4", + "it-drain": "^3.0.7", + "it-length": "^3.0.6", "it-length-prefixed": "^9.0.4", - "it-map": "^3.0.5", - "it-merge": "^3.0.3", - "it-parallel": "^3.0.6", + "it-map": "^3.1.0", + "it-merge": "^3.0.5", + "it-parallel": "^3.0.7", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.1.2", - "it-take": "^3.0.4", + "it-protobuf-stream": "^1.1.3", + "it-take": "^3.0.5", "multiformats": "^13.1.0", "p-defer": "^4.0.1", "p-event": "^6.0.1", @@ -97,14 +97,14 @@ "@types/lodash.range": "^3.2.9", "@types/sinon": "^17.0.3", "@types/which": "^3.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "datastore-core": "^9.2.9", - "datastore-level": "^10.1.7", + "datastore-level": "^10.1.8", "delay": "^6.0.0", - "execa": "^9.0.2", - "it-all": "^3.0.4", - "it-filter": "^3.0.4", - "it-last": "^3.0.4", + "execa": "^9.1.0", + "it-all": "^3.0.6", + "it-filter": "^3.1.0", + "it-last": "^3.0.6", "it-pair": "^2.0.6", "it-stream-types": "^2.0.1", "lodash.random": "^3.2.0", diff --git a/packages/keychain/package.json b/packages/keychain/package.json index acb1910a1e..a14224aa6d 100644 --- a/packages/keychain/package.json +++ b/packages/keychain/package.json @@ -66,12 +66,12 @@ "merge-options": "^3.0.4", "multiformats": "^13.1.0", "sanitize-filename": "^1.6.3", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "datastore-core": "^9.2.9" }, "sideEffects": false diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 7375879f73..6456f56db0 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -95,20 +95,20 @@ "@libp2p/peer-id-factory": "^4.1.1", "@libp2p/peer-store": "^10.0.18", "@libp2p/utils": "^5.4.1", - "@multiformats/dns": "^1.0.5", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "any-signal": "^4.1.1", "datastore-core": "^9.2.9", "interface-datastore": "^8.2.11", - "it-merge": "^3.0.3", - "it-parallel": "^3.0.6", + "it-merge": "^3.0.5", + "it-parallel": "^3.0.7", "merge-options": "^3.0.4", "multiformats": "^13.1.0", "p-defer": "^4.0.1", "race-event": "^1.3.0", "race-signal": "^1.0.2", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", @@ -120,15 +120,15 @@ "@libp2p/tcp": "^9.0.25", "@libp2p/websockets": "^8.0.23", "@multiformats/mafmt": "^12.1.6", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", - "it-all": "^3.0.4", - "it-drain": "^3.0.5", + "it-all": "^3.0.6", + "it-drain": "^3.0.7", "it-map": "^3.1.0", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", - "it-take": "^3.0.4", + "it-take": "^3.0.5", "p-event": "^6.0.1", "p-wait-for": "^5.0.2", "sinon": "^18.0.0", diff --git a/packages/logger/package.json b/packages/logger/package.json index 933af0cc6e..e9caabe90d 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -55,7 +55,7 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "debug": "^4.3.4", "interface-datastore": "^8.2.11", "multiformats": "^13.1.0" @@ -63,9 +63,9 @@ "devDependencies": { "@libp2p/peer-id": "^4.1.1", "@types/debug": "^4.1.12", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "sinon": "^18.0.0", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "sideEffects": false } diff --git a/packages/metrics-prometheus/package.json b/packages/metrics-prometheus/package.json index 56970f7f29..b6a321d508 100644 --- a/packages/metrics-prometheus/package.json +++ b/packages/metrics-prometheus/package.json @@ -49,18 +49,18 @@ }, "dependencies": { "@libp2p/interface": "^1.3.1", - "it-foreach": "^2.0.6", + "it-foreach": "^2.1.0", "it-stream-types": "^2.0.1", - "prom-client": "^15.1.1", + "prom-client": "^15.1.2", "uint8arraylist": "^2.4.8" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "@multiformats/multiaddr": "^12.2.1", - "aegir": "^42.2.5", - "it-drain": "^3.0.5", + "@multiformats/multiaddr": "^12.2.3", + "aegir": "^42.2.11", + "it-drain": "^3.0.7", "it-pipe": "^3.0.1", "p-defer": "^4.0.1" }, diff --git a/packages/metrics-simple/README.md b/packages/metrics-simple/README.md index 3038752d72..975bd00c01 100644 --- a/packages/metrics-simple/README.md +++ b/packages/metrics-simple/README.md @@ -24,8 +24,8 @@ repo and examine the changes made. --> -Stores metrics in memory and periodically invokes a configured callback -to receive them. +Stores metrics in memory and periodically invokes a configured callback to +receive them. ## Example diff --git a/packages/metrics-simple/package.json b/packages/metrics-simple/package.json index d7ad46e556..5a49ae73f8 100644 --- a/packages/metrics-simple/package.json +++ b/packages/metrics-simple/package.json @@ -52,11 +52,11 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/logger": "^4.0.12", - "it-foreach": "^2.0.4", + "it-foreach": "^2.1.0", "it-stream-types": "^2.0.1" }, "devDependencies": { "aegir": "^42.2.11", - "p-defer": "^4.0.0" + "p-defer": "^4.0.1" } } diff --git a/packages/multistream-select/package.json b/packages/multistream-select/package.json index 8269fd8ba8..468cc725b1 100644 --- a/packages/multistream-select/package.json +++ b/packages/multistream-select/package.json @@ -60,20 +60,20 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "it-length-prefixed": "^9.0.4", - "it-length-prefixed-stream": "^1.1.6", + "it-length-prefixed-stream": "^1.1.7", "it-stream-types": "^2.0.1", "p-defer": "^4.0.1", "race-signal": "^1.0.2", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "iso-random-stream": "^2.0.2", - "it-all": "^3.0.4", - "it-drain": "^3.0.5", + "it-all": "^3.0.6", + "it-drain": "^3.0.7", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "p-timeout": "^6.1.2" diff --git a/packages/peer-collections/package.json b/packages/peer-collections/package.json index ceeb5b15c9..0eeaa1a321 100644 --- a/packages/peer-collections/package.json +++ b/packages/peer-collections/package.json @@ -61,7 +61,7 @@ "devDependencies": { "@libp2p/peer-id-factory": "^4.1.1", "@types/sinon": "^17.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "sinon": "^18.0.0", "sinon-ts": "^2.0.0" }, diff --git a/packages/peer-discovery-bootstrap/package.json b/packages/peer-discovery-bootstrap/package.json index 80157bbc13..6176ef8a11 100644 --- a/packages/peer-discovery-bootstrap/package.json +++ b/packages/peer-discovery-bootstrap/package.json @@ -57,12 +57,12 @@ "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1" + "@multiformats/multiaddr": "^12.2.3" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/peer-discovery-mdns/package.json b/packages/peer-discovery-mdns/package.json index 7455093d63..e53861b4db 100644 --- a/packages/peer-discovery-mdns/package.json +++ b/packages/peer-discovery-mdns/package.json @@ -54,7 +54,7 @@ "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", "multicast-dns": "^7.2.5" @@ -63,7 +63,7 @@ "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "p-wait-for": "^5.0.2", "sinon-ts": "^2.0.0" }, diff --git a/packages/peer-id-factory/package.json b/packages/peer-id-factory/package.json index 7f924e0fa6..44049c5614 100644 --- a/packages/peer-id-factory/package.json +++ b/packages/peer-id-factory/package.json @@ -63,10 +63,10 @@ "@libp2p/peer-id": "^4.1.1", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { - "aegir": "^42.2.5", + "aegir": "^42.2.11", "multiformats": "^13.1.0", "protons": "^7.5.0" }, diff --git a/packages/peer-id/package.json b/packages/peer-id/package.json index 89a9a2ea5c..8e4e8aaeee 100644 --- a/packages/peer-id/package.json +++ b/packages/peer-id/package.json @@ -56,10 +56,10 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "multiformats": "^13.1.0", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { - "aegir": "^42.2.5" + "aegir": "^42.2.11" }, "sideEffects": false } diff --git a/packages/peer-record/package.json b/packages/peer-record/package.json index 16e98ae2fb..4052621d9b 100644 --- a/packages/peer-record/package.json +++ b/packages/peer-record/package.json @@ -65,15 +65,15 @@ "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "protons-runtime": "^5.4.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "protons": "^7.5.0" }, "sideEffects": false diff --git a/packages/peer-store/package.json b/packages/peer-store/package.json index 42b1cd254e..5342c54950 100644 --- a/packages/peer-store/package.json +++ b/packages/peer-store/package.json @@ -63,20 +63,20 @@ "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-record": "^7.0.17", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "interface-datastore": "^8.2.11", - "it-all": "^3.0.4", + "it-all": "^3.0.6", "mortice": "^3.0.4", "multiformats": "^13.1.0", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "@types/sinon": "^17.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "datastore-core": "^9.2.9", "delay": "^6.0.0", "p-defer": "^4.0.1", diff --git a/packages/pnet/package.json b/packages/pnet/package.json index 868cc08bd0..3074bf7eef 100644 --- a/packages/pnet/package.json +++ b/packages/pnet/package.json @@ -50,25 +50,25 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/crypto": "^4.0.4", - "@libp2p/interface": "^1.1.5", - "it-byte-stream": "^1.0.8", - "it-map": "^3.0.5", + "@libp2p/crypto": "^4.1.1", + "@libp2p/interface": "^1.3.1", + "it-byte-stream": "^1.0.10", + "it-map": "^3.1.0", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "it-stream-types": "^2.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3", + "uint8arrays": "^5.1.0", "xsalsa20": "^1.2.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.3.3", - "@libp2p/logger": "^4.0.8", - "@libp2p/peer-id-factory": "^4.0.8", - "@multiformats/multiaddr": "^12.2.1", + "@libp2p/interface-compliance-tests": "^5.4.4", + "@libp2p/logger": "^4.0.12", + "@libp2p/peer-id-factory": "^4.1.1", + "@multiformats/multiaddr": "^12.2.3", "@types/xsalsa20": "^1.1.3", - "aegir": "^42.2.5", - "it-all": "^3.0.4" + "aegir": "^42.2.11", + "it-all": "^3.0.6" }, "sideEffects": false } diff --git a/packages/protocol-autonat/package.json b/packages/protocol-autonat/package.json index 91688563a5..095629d20c 100644 --- a/packages/protocol-autonat/package.json +++ b/packages/protocol-autonat/package.json @@ -57,19 +57,19 @@ "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-id-factory": "^4.1.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", - "it-first": "^3.0.4", + "@multiformats/multiaddr": "^12.2.3", + "it-first": "^3.0.6", "it-length-prefixed": "^9.0.4", - "it-map": "^3.0.5", - "it-parallel": "^3.0.6", + "it-map": "^3.1.0", + "it-parallel": "^3.0.7", "it-pipe": "^3.0.1", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8" }, "devDependencies": { "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", - "it-all": "^3.0.4", + "aegir": "^42.2.11", + "it-all": "^3.0.6", "it-pushable": "^3.2.3", "protons": "^7.5.0", "sinon": "^18.0.0", diff --git a/packages/protocol-dcutr/package.json b/packages/protocol-dcutr/package.json index 91240b4485..56150ede92 100644 --- a/packages/protocol-dcutr/package.json +++ b/packages/protocol-dcutr/package.json @@ -55,15 +55,15 @@ "@libp2p/interface": "^1.3.1", "@libp2p/interface-internal": "^1.2.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "delay": "^6.0.0", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8" }, "devDependencies": { - "aegir": "^42.2.5", + "aegir": "^42.2.11", "protons": "^7.5.0", "sinon": "^18.0.0", "sinon-ts": "^2.0.0" diff --git a/packages/protocol-echo/package.json b/packages/protocol-echo/package.json index f721458f30..e14a1a8a19 100644 --- a/packages/protocol-echo/package.json +++ b/packages/protocol-echo/package.json @@ -58,8 +58,8 @@ }, "devDependencies": { "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", - "it-all": "^3.0.4", + "aegir": "^42.2.11", + "it-all": "^3.0.6", "it-pair": "^2.0.6", "sinon": "^18.0.0", "sinon-ts": "^2.0.0", diff --git a/packages/protocol-fetch/package.json b/packages/protocol-fetch/package.json index e7645121b1..1820d1284e 100644 --- a/packages/protocol-fetch/package.json +++ b/packages/protocol-fetch/package.json @@ -54,15 +54,15 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/interface-internal": "^1.2.1", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "it-pair": "^2.0.6", "protons": "^7.5.0", "sinon": "^18.0.0", diff --git a/packages/protocol-identify/README.md b/packages/protocol-identify/README.md index 4803307c5a..b555b0df45 100644 --- a/packages/protocol-identify/README.md +++ b/packages/protocol-identify/README.md @@ -32,7 +32,7 @@ A second function, `identifyPush` is also exported to add support for [identify/ This protocol will send updates to all connected peers when the multiaddrs or protocols of the current node change. -> [!TIP] +> \[!TIP] > For maximum network compatibility you should configure both protocols ## Example - Enabling identify diff --git a/packages/protocol-identify/package.json b/packages/protocol-identify/package.json index def8046c9d..a3c15d2194 100644 --- a/packages/protocol-identify/package.json +++ b/packages/protocol-identify/package.json @@ -56,21 +56,21 @@ "@libp2p/interface-internal": "^1.2.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/peer-record": "^7.0.17", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "it-drain": "^3.0.7", "it-parallel": "^3.0.7", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3", + "uint8arrays": "^5.1.0", "wherearewe": "^2.0.1" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", "it-length-prefixed": "^9.0.4", "it-pair": "^2.0.6", diff --git a/packages/protocol-perf/package.json b/packages/protocol-perf/package.json index 0033f4f23d..7e43ed92e0 100644 --- a/packages/protocol-perf/package.json +++ b/packages/protocol-perf/package.json @@ -54,14 +54,14 @@ "dependencies": { "@libp2p/interface": "^1.3.1", "@libp2p/interface-internal": "^1.2.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "it-pushable": "^3.2.3" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", - "it-last": "^3.0.4", + "aegir": "^42.2.11", + "it-last": "^3.0.6", "it-pair": "^2.0.6", "sinon-ts": "^2.0.0" }, diff --git a/packages/protocol-ping/package.json b/packages/protocol-ping/package.json index d3298327d2..486417578a 100644 --- a/packages/protocol-ping/package.json +++ b/packages/protocol-ping/package.json @@ -53,16 +53,16 @@ "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", "@libp2p/interface-internal": "^1.2.1", - "@multiformats/multiaddr": "^12.2.1", - "it-first": "^3.0.4", + "@multiformats/multiaddr": "^12.2.3", + "it-first": "^3.0.6", "it-pipe": "^3.0.1", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", - "it-byte-stream": "^1.0.8", + "aegir": "^42.2.11", + "it-byte-stream": "^1.0.10", "it-pair": "^2.0.6", "p-defer": "^4.0.1", "sinon-ts": "^2.0.0" diff --git a/packages/pubsub-floodsub/package.json b/packages/pubsub-floodsub/package.json index 7dc3333a34..5872430517 100644 --- a/packages/pubsub-floodsub/package.json +++ b/packages/pubsub-floodsub/package.json @@ -64,16 +64,16 @@ "@libp2p/pubsub": "^9.0.18", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-collections": "^5.2.1", "@libp2p/peer-id-factory": "^4.1.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "@types/sinon": "^17.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "multiformats": "^13.1.0", "p-wait-for": "^5.0.2", "protons": "^7.5.0", diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index ee7e4b39a0..92ed78ba42 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -96,13 +96,13 @@ "multiformats": "^13.1.0", "p-queue": "^8.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", "@types/sinon": "^17.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", "it-pair": "^2.0.6", "p-defer": "^4.0.1", diff --git a/packages/record/package.json b/packages/record/package.json index 55c22f8ea8..a2a55d382b 100644 --- a/packages/record/package.json +++ b/packages/record/package.json @@ -59,13 +59,13 @@ "dependencies": { "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@types/lodash.random": "^3.2.9", "@types/lodash.range": "^3.2.9", "@types/which": "^3.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "multiformats": "^13.1.0", "protons": "^7.5.0" }, diff --git a/packages/stream-multiplexer-mplex/package.json b/packages/stream-multiplexer-mplex/package.json index 9643069b5a..4c683c5cbc 100644 --- a/packages/stream-multiplexer-mplex/package.json +++ b/packages/stream-multiplexer-mplex/package.json @@ -69,20 +69,20 @@ "it-stream-types": "^2.0.1", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "benchmark": "^2.1.4", - "cborg": "^4.1.4", + "cborg": "^4.2.0", "delay": "^6.0.0", "iso-random-stream": "^2.0.2", - "it-all": "^3.0.4", - "it-drain": "^3.0.5", - "it-foreach": "^2.0.6", - "it-map": "^3.0.5", + "it-all": "^3.0.6", + "it-drain": "^3.0.7", + "it-foreach": "^2.1.0", + "it-map": "^3.1.0", "it-pair": "^2.0.6", "p-defer": "^4.0.1", "random-int": "^3.0.0" diff --git a/packages/transport-circuit-relay-v2/package.json b/packages/transport-circuit-relay-v2/package.json index add4937bb8..ac14f255f0 100644 --- a/packages/transport-circuit-relay-v2/package.json +++ b/packages/transport-circuit-relay-v2/package.json @@ -59,27 +59,27 @@ "@libp2p/peer-record": "^7.0.17", "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "any-signal": "^4.1.1", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "it-stream-types": "^2.0.1", "multiformats": "^13.1.0", "p-defer": "^4.0.1", "p-retry": "^6.2.0", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", - "it-drain": "^3.0.5", + "it-drain": "^3.0.7", "it-pair": "^2.0.6", "it-pushable": "^3.2.3", - "it-to-buffer": "^4.0.5", + "it-to-buffer": "^4.0.7", "p-wait-for": "^5.0.2", "protons": "^7.5.0", "race-signal": "^1.0.2", diff --git a/packages/transport-tcp/package.json b/packages/transport-tcp/package.json index aeec94b08a..05032d5831 100644 --- a/packages/transport-tcp/package.json +++ b/packages/transport-tcp/package.json @@ -59,19 +59,19 @@ "@libp2p/interface": "^1.3.1", "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "@types/sinon": "^17.0.3", - "stream-to-it": "^1.0.0" + "stream-to-it": "^1.0.1" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", - "it-all": "^3.0.4", + "aegir": "^42.2.11", + "it-all": "^3.0.6", "it-pipe": "^3.0.1", "p-defer": "^4.0.1", "sinon": "^18.0.0", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "sideEffects": false } diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index a3d741d568..04c4be7ffc 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -56,11 +56,11 @@ "@libp2p/peer-id": "^4.1.1", "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "detect-browser": "^5.3.0", "it-length-prefixed": "^9.0.4", - "it-protobuf-stream": "^1.1.2", + "it-protobuf-stream": "^1.1.3", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", "multiformats": "^13.1.0", @@ -71,9 +71,9 @@ "p-timeout": "^6.1.2", "protons-runtime": "^5.4.0", "race-signal": "^1.0.2", - "react-native-webrtc": "^118.0.3", + "react-native-webrtc": "^118.0.7", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", @@ -83,14 +83,14 @@ "@libp2p/peer-id-factory": "^4.1.1", "@libp2p/websockets": "^8.0.23", "@types/sinon": "^17.0.3", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", - "it-drain": "^3.0.5", - "it-length": "^3.0.4", - "it-map": "^3.0.5", + "it-drain": "^3.0.7", + "it-length": "^3.0.6", + "it-map": "^3.1.0", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", - "it-to-buffer": "^4.0.5", + "it-to-buffer": "^4.0.7", "libp2p": "^1.5.2", "p-retry": "^6.2.0", "protons": "^7.5.0", diff --git a/packages/transport-websockets/package.json b/packages/transport-websockets/package.json index 3b8092031c..ec686b52fb 100644 --- a/packages/transport-websockets/package.json +++ b/packages/transport-websockets/package.json @@ -77,27 +77,27 @@ "@libp2p/interface": "^1.3.1", "@libp2p/utils": "^5.4.1", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-to-uri": "^10.0.1", "@types/ws": "^8.5.10", "it-ws": "^6.1.1", "p-defer": "^4.0.1", "wherearewe": "^2.0.1", - "ws": "^8.16.0" + "ws": "^8.17.0" }, "devDependencies": { "@libp2p/interface-compliance-tests": "^5.4.4", "@libp2p/logger": "^4.0.12", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "is-loopback-addr": "^2.0.2", - "it-all": "^3.0.4", - "it-drain": "^3.0.5", + "it-all": "^3.0.6", + "it-drain": "^3.0.7", "it-goodbye": "^4.0.6", "it-pipe": "^3.0.1", "it-stream-types": "^2.0.1", "p-wait-for": "^5.0.2", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "browser": { "./dist/src/listener.js": "./dist/src/listener.browser.js" diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index bbb237c3a4..d3d9277833 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -54,13 +54,13 @@ "@libp2p/interface": "^1.3.1", "@libp2p/peer-id": "^4.1.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "it-stream-types": "^2.0.1", "multiformats": "^13.1.0", "race-signal": "^1.0.2", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/daemon-client": "^8.0.5", @@ -68,7 +68,7 @@ "@libp2p/peer-id-factory": "^4.1.1", "@libp2p/ping": "^1.0.18", "@noble/hashes": "^1.4.0", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "execa": "^9.1.0", "go-libp2p": "^1.2.0", "it-map": "^3.1.0", diff --git a/packages/transport-webtransport/tsconfig.json b/packages/transport-webtransport/tsconfig.json index acb9cb96db..810cd64263 100644 --- a/packages/transport-webtransport/tsconfig.json +++ b/packages/transport-webtransport/tsconfig.json @@ -22,6 +22,12 @@ }, { "path": "../peer-id-factory" + }, + { + "path": "../protocol-ping" + }, + { + "path": "../utils" } ] } diff --git a/packages/upnp-nat/package.json b/packages/upnp-nat/package.json index 6f92ce6de0..08b4c942dc 100644 --- a/packages/upnp-nat/package.json +++ b/packages/upnp-nat/package.json @@ -54,13 +54,13 @@ "@libp2p/interface": "^1.3.1", "@libp2p/interface-internal": "^1.2.1", "@libp2p/utils": "^5.4.1", - "@multiformats/multiaddr": "^12.2.1", + "@multiformats/multiaddr": "^12.2.3", "wherearewe": "^2.0.1" }, "devDependencies": { "@libp2p/logger": "^4.0.12", "@libp2p/peer-id-factory": "^4.1.1", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "sinon-ts": "^2.0.0" }, "sideEffects": false diff --git a/packages/utils/package.json b/packages/utils/package.json index 0357df7e66..adc1a9ec64 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -52,26 +52,26 @@ "types": "./dist/src/abstract-stream.d.ts", "import": "./dist/src/abstract-stream.js" }, - "./address-sort": { - "types": "./dist/src/address-sort.d.ts", - "import": "./dist/src/address-sort.js" - }, "./adaptive-timeout": { "types": "./dist/src/adaptive-timeout.d.ts", "import": "./dist/src/adaptive-timeout.js" }, + "./address-sort": { + "types": "./dist/src/address-sort.d.ts", + "import": "./dist/src/address-sort.js" + }, "./array-equals": { "types": "./dist/src/array-equals.d.ts", "import": "./dist/src/array-equals.js" }, - "./close-source": { - "types": "./dist/src/close-source.d.ts", - "import": "./dist/src/close-source.js" - }, "./close": { "types": "./dist/src/close.d.ts", "import": "./dist/src/close.js" }, + "./close-source": { + "types": "./dist/src/close-source.d.ts", + "import": "./dist/src/close-source.js" + }, "./filters": { "types": "./dist/src/filters/index.d.ts", "import": "./dist/src/filters/index.js" @@ -155,8 +155,8 @@ "@libp2p/crypto": "^4.1.1", "@libp2p/interface": "^1.3.1", "@libp2p/logger": "^4.0.12", - "@multiformats/multiaddr": "^12.2.1", - "@multiformats/multiaddr-matcher": "^1.2.0", + "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr-matcher": "^1.2.1", "@sindresorhus/fnv1a": "^3.1.0", "@types/murmurhash3js-revisited": "^3.0.3", "any-signal": "^4.1.1", @@ -168,18 +168,18 @@ "murmurhash3js-revisited": "^3.0.0", "netmask": "^2.0.2", "p-defer": "^4.0.1", - "race-event": "^1.2.0", + "race-event": "^1.3.0", "race-signal": "^1.0.2", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.3" + "uint8arrays": "^5.1.0" }, "devDependencies": { "@libp2p/peer-id-factory": "^4.1.1", "@types/netmask": "^2.0.5", - "aegir": "^42.2.5", + "aegir": "^42.2.11", "delay": "^6.0.0", - "it-all": "^3.0.4", - "it-drain": "^3.0.5", + "it-all": "^3.0.6", + "it-drain": "^3.0.7", "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "sinon": "^18.0.0", diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index 3206b9ea4d..e53f70aafa 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -8,6 +8,9 @@ "test" ], "references": [ + { + "path": "../crypto" + }, { "path": "../interface" }, diff --git a/packages/utils/typedoc.json b/packages/utils/typedoc.json index 50b7ce1bc7..91d67530bf 100644 --- a/packages/utils/typedoc.json +++ b/packages/utils/typedoc.json @@ -1,15 +1,21 @@ { "entryPoints": [ "./src/index.ts", + "./src/abort-options.ts", "./src/abstract-stream.ts", + "./src/adaptive-timeout.ts", "./src/address-sort.ts", "./src/array-equals.ts", + "./src/close.ts", "./src/close-source.ts", + "./src/filters/index.ts", "./src/ip-port-to-multiaddr.ts", "./src/is-promise.ts", + "./src/moving-average.ts", "./src/multiaddr/is-loopback.ts", "./src/multiaddr/is-private.ts", "./src/peer-queue.ts", + "./src/priority-queue.ts", "./src/private-ip.ts", "./src/queue/index.ts", "./src/rate-limiter.ts", From a3e8beabdc2b551594952b5d5621555296eff79a Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Fri, 17 May 2024 20:04:00 +0100 Subject: [PATCH 27/30] fix: log error correctly (#2552) The peer id was meant to be passed to the format string with the error afterwards. --- packages/libp2p/src/upgrader.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/libp2p/src/upgrader.ts b/packages/libp2p/src/upgrader.ts index 8ae4b566e6..ac4efe74ba 100644 --- a/packages/libp2p/src/upgrader.ts +++ b/packages/libp2p/src/upgrader.ts @@ -641,7 +641,7 @@ export class DefaultUpgrader implements Upgrader { protocol } } catch (err: any) { - connection.log.error('encrypting inbound connection to %p failed', err) + connection.log.error('encrypting inbound connection failed', err) throw new CodeError(err.message, codes.ERR_ENCRYPTION_FAILED) } } @@ -678,7 +678,7 @@ export class DefaultUpgrader implements Upgrader { protocol } } catch (err: any) { - connection.log.error('encrypting outbound connection to %p failed', err) + connection.log.error('encrypting outbound connection to %p failed', remotePeerId, err) throw new CodeError(err.message, codes.ERR_ENCRYPTION_FAILED) } } From f9df63299d5e73168f2aef452d42f9723f56e810 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Mon, 20 May 2024 11:59:32 +0100 Subject: [PATCH 28/30] chore: release main (#2546) --- .release-please-manifest.json | 2 +- interop/CHANGELOG.md | 22 +++++++++++ interop/package.json | 20 +++++----- .../CHANGELOG.md | 20 ++++++++++ .../package.json | 12 +++--- .../connection-encrypter-tls/CHANGELOG.md | 21 ++++++++++ .../connection-encrypter-tls/package.json | 14 +++---- packages/crypto/CHANGELOG.md | 14 +++++++ packages/crypto/package.json | 4 +- .../interface-compliance-tests/CHANGELOG.md | 22 +++++++++++ .../interface-compliance-tests/package.json | 18 ++++----- packages/interface-internal/CHANGELOG.md | 15 ++++++++ packages/interface-internal/package.json | 6 +-- packages/interface/CHANGELOG.md | 12 ++++++ packages/interface/package.json | 2 +- packages/kad-dht/CHANGELOG.md | 26 +++++++++++++ packages/kad-dht/package.json | 24 ++++++------ packages/keychain/CHANGELOG.md | 19 ++++++++++ packages/keychain/package.json | 12 +++--- packages/libp2p/CHANGELOG.md | 38 +++++++++++++++++++ packages/libp2p/package.json | 36 +++++++++--------- packages/logger/CHANGELOG.md | 17 +++++++++ packages/logger/package.json | 6 +-- packages/metrics-prometheus/CHANGELOG.md | 18 +++++++++ packages/metrics-prometheus/package.json | 10 ++--- packages/metrics-simple/CHANGELOG.md | 16 ++++++++ packages/metrics-simple/package.json | 6 +-- packages/multistream-select/CHANGELOG.md | 16 ++++++++ packages/multistream-select/package.json | 6 +-- packages/peer-collections/CHANGELOG.md | 19 ++++++++++ packages/peer-collections/package.json | 10 ++--- .../peer-discovery-bootstrap/CHANGELOG.md | 18 +++++++++ .../peer-discovery-bootstrap/package.json | 10 ++--- packages/peer-discovery-mdns/CHANGELOG.md | 21 ++++++++++ packages/peer-discovery-mdns/package.json | 16 ++++---- packages/peer-id-factory/CHANGELOG.md | 16 ++++++++ packages/peer-id-factory/package.json | 8 ++-- packages/peer-id/CHANGELOG.md | 14 +++++++ packages/peer-id/package.json | 4 +- packages/peer-record/CHANGELOG.md | 19 ++++++++++ packages/peer-record/package.json | 12 +++--- packages/peer-store/CHANGELOG.md | 21 ++++++++++ packages/peer-store/package.json | 14 +++---- packages/protocol-autonat/CHANGELOG.md | 21 ++++++++++ packages/protocol-autonat/package.json | 14 +++---- packages/protocol-dcutr/CHANGELOG.md | 17 +++++++++ packages/protocol-dcutr/package.json | 8 ++-- packages/protocol-echo/CHANGELOG.md | 18 +++++++++ packages/protocol-echo/package.json | 8 ++-- packages/protocol-fetch/CHANGELOG.md | 19 ++++++++++ packages/protocol-fetch/package.json | 10 ++--- packages/protocol-identify/CHANGELOG.md | 21 ++++++++++ packages/protocol-identify/package.json | 16 ++++---- packages/protocol-perf/CHANGELOG.md | 18 +++++++++ packages/protocol-perf/package.json | 10 ++--- packages/protocol-ping/CHANGELOG.md | 19 ++++++++++ packages/protocol-ping/package.json | 12 +++--- packages/pubsub-floodsub/CHANGELOG.md | 21 ++++++++++ packages/pubsub-floodsub/package.json | 14 +++---- packages/pubsub/CHANGELOG.md | 23 +++++++++++ packages/pubsub/package.json | 18 ++++----- packages/record/CHANGELOG.md | 7 ++++ packages/record/package.json | 2 +- .../stream-multiplexer-mplex/CHANGELOG.md | 18 +++++++++ .../stream-multiplexer-mplex/package.json | 10 ++--- .../transport-circuit-relay-v2/CHANGELOG.md | 24 ++++++++++++ .../transport-circuit-relay-v2/package.json | 20 +++++----- packages/transport-tcp/CHANGELOG.md | 19 ++++++++++ packages/transport-tcp/package.json | 10 ++--- packages/transport-webrtc/CHANGELOG.md | 25 ++++++++++++ packages/transport-webrtc/package.json | 22 +++++------ packages/transport-websockets/CHANGELOG.md | 18 +++++++++ packages/transport-websockets/package.json | 10 ++--- packages/transport-webtransport/CHANGELOG.md | 21 ++++++++++ packages/transport-webtransport/package.json | 16 ++++---- packages/upnp-nat/CHANGELOG.md | 19 ++++++++++ packages/upnp-nat/package.json | 12 +++--- packages/utils/CHANGELOG.md | 19 ++++++++++ packages/utils/package.json | 10 ++--- 79 files changed, 988 insertions(+), 237 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 767d65defb..e08af06f65 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"interop":"2.0.32","packages/connection-encrypter-plaintext":"1.0.23","packages/connection-encrypter-tls":"1.0.10","packages/crypto":"4.1.1","packages/interface":"1.3.1","packages/interface-compliance-tests":"5.4.4","packages/interface-internal":"1.2.1","packages/kad-dht":"12.0.16","packages/keychain":"4.0.14","packages/libp2p":"1.5.2","packages/logger":"4.0.12","packages/metrics-prometheus":"3.0.23","packages/metrics-simple":"1.0.1","packages/multistream-select":"5.1.9","packages/peer-collections":"5.2.1","packages/peer-discovery-bootstrap":"10.0.23","packages/peer-discovery-mdns":"10.0.23","packages/peer-id":"4.1.1","packages/peer-id-factory":"4.1.1","packages/peer-record":"7.0.17","packages/peer-store":"10.0.18","packages/protocol-autonat":"1.0.20","packages/protocol-dcutr":"1.0.20","packages/protocol-echo":"1.0.6","packages/protocol-fetch":"1.0.17","packages/protocol-identify":"2.0.1","packages/protocol-perf":"3.0.23","packages/protocol-ping":"1.0.18","packages/pubsub":"9.0.18","packages/pubsub-floodsub":"9.0.19","packages/record":"4.0.1","packages/stream-multiplexer-mplex":"10.0.23","packages/transport-circuit-relay-v2":"1.0.23","packages/transport-tcp":"9.0.25","packages/transport-webrtc":"4.0.32","packages/transport-websockets":"8.0.23","packages/transport-webtransport":"4.0.31","packages/upnp-nat":"1.0.21","packages/utils":"5.4.1"} \ No newline at end of file +{"interop":"2.0.33","packages/connection-encrypter-plaintext":"1.0.24","packages/connection-encrypter-tls":"1.0.11","packages/crypto":"4.1.2","packages/interface":"1.4.0","packages/interface-compliance-tests":"5.4.5","packages/interface-internal":"1.2.2","packages/kad-dht":"12.0.17","packages/keychain":"4.0.15","packages/libp2p":"1.6.0","packages/logger":"4.0.13","packages/metrics-prometheus":"3.0.24","packages/metrics-simple":"1.0.2","packages/multistream-select":"5.1.10","packages/peer-collections":"5.2.2","packages/peer-discovery-bootstrap":"10.0.24","packages/peer-discovery-mdns":"10.0.24","packages/peer-id":"4.1.2","packages/peer-id-factory":"4.1.2","packages/peer-record":"7.0.18","packages/peer-store":"10.0.19","packages/protocol-autonat":"1.0.21","packages/protocol-dcutr":"1.0.21","packages/protocol-echo":"1.0.7","packages/protocol-fetch":"1.0.18","packages/protocol-identify":"2.0.2","packages/protocol-perf":"3.0.24","packages/protocol-ping":"1.0.19","packages/pubsub":"9.0.19","packages/pubsub-floodsub":"9.0.20","packages/record":"4.0.2","packages/stream-multiplexer-mplex":"10.0.24","packages/transport-circuit-relay-v2":"1.0.24","packages/transport-tcp":"9.0.26","packages/transport-webrtc":"4.0.33","packages/transport-websockets":"8.0.24","packages/transport-webtransport":"4.0.32","packages/upnp-nat":"1.0.22","packages/utils":"5.4.2"} \ No newline at end of file diff --git a/interop/CHANGELOG.md b/interop/CHANGELOG.md index 925938eda6..dbe904fc5a 100644 --- a/interop/CHANGELOG.md +++ b/interop/CHANGELOG.md @@ -168,6 +168,28 @@ * @libp2p/webtransport bumped from ^4.0.18 to ^4.0.19 * libp2p bumped from ^1.2.2 to ^1.2.3 +## [2.0.33](https://github.com/libp2p/js-libp2p/compare/multidim-interop-v2.0.32...multidim-interop-v2.0.33) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.23 to ^1.0.24 + * @libp2p/identify bumped from ^2.0.1 to ^2.0.2 + * @libp2p/mplex bumped from ^10.0.23 to ^10.0.24 + * @libp2p/ping bumped from ^1.0.18 to ^1.0.19 + * @libp2p/tcp bumped from ^9.0.25 to ^9.0.26 + * @libp2p/webrtc bumped from ^4.0.32 to ^4.0.33 + * @libp2p/websockets bumped from ^8.0.23 to ^8.0.24 + * @libp2p/webtransport bumped from ^4.0.31 to ^4.0.32 + * libp2p bumped from ^1.5.2 to ^1.6.0 + ## [2.0.32](https://github.com/libp2p/js-libp2p/compare/multidim-interop-v2.0.31...multidim-interop-v2.0.32) (2024-05-14) diff --git a/interop/package.json b/interop/package.json index e072d06346..602fa8a28c 100644 --- a/interop/package.json +++ b/interop/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/multidim-interop", - "version": "2.0.32", + "version": "2.0.33", "description": "Multidimensional interop tests", "author": "Glen De Cauwsemaecker / @marcopolo", "license": "Apache-2.0 OR MIT", @@ -57,18 +57,18 @@ "dependencies": { "@chainsafe/libp2p-noise": "^15.0.0", "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.23", - "@libp2p/identify": "^2.0.1", - "@libp2p/mplex": "^10.0.23", - "@libp2p/ping": "^1.0.18", - "@libp2p/tcp": "^9.0.25", - "@libp2p/webrtc": "^4.0.32", - "@libp2p/websockets": "^8.0.23", - "@libp2p/webtransport": "^4.0.31", + "@libp2p/circuit-relay-v2": "^1.0.24", + "@libp2p/identify": "^2.0.2", + "@libp2p/mplex": "^10.0.24", + "@libp2p/ping": "^1.0.19", + "@libp2p/tcp": "^9.0.26", + "@libp2p/webrtc": "^4.0.33", + "@libp2p/websockets": "^8.0.24", + "@libp2p/webtransport": "^4.0.32", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "aegir": "^42.2.11", - "libp2p": "^1.5.2", + "libp2p": "^1.6.0", "redis": "^4.6.14" }, "browser": { diff --git a/packages/connection-encrypter-plaintext/CHANGELOG.md b/packages/connection-encrypter-plaintext/CHANGELOG.md index d324c6ec41..2d92569b44 100644 --- a/packages/connection-encrypter-plaintext/CHANGELOG.md +++ b/packages/connection-encrypter-plaintext/CHANGELOG.md @@ -72,6 +72,26 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.24](https://github.com/libp2p/js-libp2p/compare/plaintext-v1.0.23...plaintext-v1.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.23](https://github.com/libp2p/js-libp2p/compare/plaintext-v1.0.22...plaintext-v1.0.23) (2024-05-14) diff --git a/packages/connection-encrypter-plaintext/package.json b/packages/connection-encrypter-plaintext/package.json index eb45c9abb0..6286827aa1 100644 --- a/packages/connection-encrypter-plaintext/package.json +++ b/packages/connection-encrypter-plaintext/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/plaintext", - "version": "1.0.23", + "version": "1.0.24", "description": "An insecure connection encrypter", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/connection-encrypter-plaintext#readme", @@ -52,17 +52,17 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", "it-protobuf-stream": "^1.1.3", "it-stream-types": "^2.0.1", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "@multiformats/multiaddr": "^12.2.3", "aegir": "^42.2.11", "protons": "^7.5.0", diff --git a/packages/connection-encrypter-tls/CHANGELOG.md b/packages/connection-encrypter-tls/CHANGELOG.md index 1897fba319..d7ced9b1e0 100644 --- a/packages/connection-encrypter-tls/CHANGELOG.md +++ b/packages/connection-encrypter-tls/CHANGELOG.md @@ -6,6 +6,27 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.11](https://github.com/libp2p/js-libp2p/compare/tls-v1.0.10...tls-v1.0.11) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.10](https://github.com/libp2p/js-libp2p/compare/tls-v1.0.9...tls-v1.0.10) (2024-05-14) diff --git a/packages/connection-encrypter-tls/package.json b/packages/connection-encrypter-tls/package.json index 869e0bd5f2..4fc1fa26d8 100644 --- a/packages/connection-encrypter-tls/package.json +++ b/packages/connection-encrypter-tls/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/tls", - "version": "1.0.10", + "version": "1.0.11", "description": "A connection encrypter that uses TLS 1.3", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/connection-encrypter-tls#readme", @@ -48,9 +48,9 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", "@peculiar/asn1-schema": "^2.3.8", "@peculiar/asn1-x509": "^2.3.8", "@peculiar/webcrypto": "^1.4.6", @@ -63,9 +63,9 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "@multiformats/multiaddr": "^12.2.3", "aegir": "^42.2.11", "protons": "^7.5.0", diff --git a/packages/crypto/CHANGELOG.md b/packages/crypto/CHANGELOG.md index ef746faf64..4e76bc93e8 100644 --- a/packages/crypto/CHANGELOG.md +++ b/packages/crypto/CHANGELOG.md @@ -17,6 +17,20 @@ * dependencies * @libp2p/interface bumped from ^1.0.2 to ^1.1.0 +## [4.1.2](https://github.com/libp2p/js-libp2p/compare/crypto-v4.1.1...crypto-v4.1.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + ## [4.1.1](https://github.com/libp2p/js-libp2p/compare/crypto-v4.1.0...crypto-v4.1.1) (2024-05-01) diff --git a/packages/crypto/package.json b/packages/crypto/package.json index d5222c2b2c..2c973d0e7a 100644 --- a/packages/crypto/package.json +++ b/packages/crypto/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/crypto", - "version": "4.1.1", + "version": "4.1.2", "description": "Crypto primitives for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/crypto#readme", @@ -84,7 +84,7 @@ "generate": "protons ./src/keys/keys.proto" }, "dependencies": { - "@libp2p/interface": "^1.3.1", + "@libp2p/interface": "^1.4.0", "@noble/curves": "^1.4.0", "@noble/hashes": "^1.4.0", "asn1js": "^3.0.5", diff --git a/packages/interface-compliance-tests/CHANGELOG.md b/packages/interface-compliance-tests/CHANGELOG.md index 7f855f554f..74514a4f4f 100644 --- a/packages/interface-compliance-tests/CHANGELOG.md +++ b/packages/interface-compliance-tests/CHANGELOG.md @@ -75,6 +75,28 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [5.4.5](https://github.com/libp2p/js-libp2p/compare/interface-compliance-tests-v5.4.4...interface-compliance-tests-v5.4.5) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/multistream-select bumped from ^5.1.9 to ^5.1.10 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + ## [5.4.4](https://github.com/libp2p/js-libp2p/compare/interface-compliance-tests-v5.4.3...interface-compliance-tests-v5.4.4) (2024-05-14) diff --git a/packages/interface-compliance-tests/package.json b/packages/interface-compliance-tests/package.json index 735e76b47c..70e32ef8ff 100644 --- a/packages/interface-compliance-tests/package.json +++ b/packages/interface-compliance-tests/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/interface-compliance-tests", - "version": "5.4.4", + "version": "5.4.5", "description": "Compliance tests for JS libp2p interfaces", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-compliance-tests#readme", @@ -112,14 +112,14 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/logger": "^4.0.12", - "@libp2p/multistream-select": "^5.1.9", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/logger": "^4.0.13", + "@libp2p/multistream-select": "^5.1.10", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "abortable-iterator": "^5.0.1", "aegir": "^42.2.11", diff --git a/packages/interface-internal/CHANGELOG.md b/packages/interface-internal/CHANGELOG.md index a782741b25..cd209a5420 100644 --- a/packages/interface-internal/CHANGELOG.md +++ b/packages/interface-internal/CHANGELOG.md @@ -32,6 +32,21 @@ * dependencies * @libp2p/peer-collections bumped from ^5.1.3 to ^5.1.4 +## [1.2.2](https://github.com/libp2p/js-libp2p/compare/interface-internal-v1.2.1...interface-internal-v1.2.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + ## [1.2.1](https://github.com/libp2p/js-libp2p/compare/interface-internal-v1.2.0...interface-internal-v1.2.1) (2024-05-14) diff --git a/packages/interface-internal/package.json b/packages/interface-internal/package.json index 3f0cbc3809..893147cb72 100644 --- a/packages/interface-internal/package.json +++ b/packages/interface-internal/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/interface-internal", - "version": "1.2.1", + "version": "1.2.2", "description": "Interfaces implemented by internal libp2p components", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface-internal#readme", @@ -48,8 +48,8 @@ "build": "aegir build" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-collections": "^5.2.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-collections": "^5.2.2", "@multiformats/multiaddr": "^12.2.3", "uint8arraylist": "^2.4.8" }, diff --git a/packages/interface/CHANGELOG.md b/packages/interface/CHANGELOG.md index 2dfeb33b17..5e34898de6 100644 --- a/packages/interface/CHANGELOG.md +++ b/packages/interface/CHANGELOG.md @@ -5,6 +5,18 @@ * add start/stop events to libp2p interface ([#407](https://github.com/libp2p/js-libp2p-interfaces/issues/407)) ([016c1e8](https://github.com/libp2p/js-libp2p-interfaces/commit/016c1e82b060c93c80546cd8c493ec6e6c97cbec)) +## [1.4.0](https://github.com/libp2p/js-libp2p/compare/interface-v1.3.1...interface-v1.4.0) (2024-05-17) + + +### Features + +* add optional topology filter ([#2544](https://github.com/libp2p/js-libp2p/issues/2544)) ([3c73707](https://github.com/libp2p/js-libp2p/commit/3c73707ff5c1635d4ab26dcc39499ab497d217a6)) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + ## [1.3.1](https://github.com/libp2p/js-libp2p/compare/interface-v1.3.0...interface-v1.3.1) (2024-05-01) diff --git a/packages/interface/package.json b/packages/interface/package.json index deb8d9c4af..e6525ba461 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/interface", - "version": "1.3.1", + "version": "1.4.0", "description": "The interface implemented by a libp2p node", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface#readme", diff --git a/packages/kad-dht/CHANGELOG.md b/packages/kad-dht/CHANGELOG.md index f18397535f..d9e875f44c 100644 --- a/packages/kad-dht/CHANGELOG.md +++ b/packages/kad-dht/CHANGELOG.md @@ -106,6 +106,32 @@ * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 * @libp2p/peer-store bumped from ^10.0.9 to ^10.0.10 +## [12.0.17](https://github.com/libp2p/js-libp2p/compare/kad-dht-v12.0.16...kad-dht-v12.0.17) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/record bumped from ^4.0.1 to ^4.0.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-store bumped from ^10.0.18 to ^10.0.19 + ## [12.0.16](https://github.com/libp2p/js-libp2p/compare/kad-dht-v12.0.15...kad-dht-v12.0.16) (2024-05-14) diff --git a/packages/kad-dht/package.json b/packages/kad-dht/package.json index d00e71c173..338ea52518 100644 --- a/packages/kad-dht/package.json +++ b/packages/kad-dht/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/kad-dht", - "version": "12.0.16", + "version": "12.0.17", "description": "JavaScript implementation of the Kad-DHT for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/kad-dht#readme", @@ -57,13 +57,13 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/record": "^4.0.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/record": "^4.0.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "any-signal": "^4.1.1", "hashlru": "^2.3.0", @@ -89,10 +89,10 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/peer-store": "^10.0.18", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/peer-store": "^10.0.19", "@types/lodash.random": "^3.2.9", "@types/lodash.range": "^3.2.9", "@types/sinon": "^17.0.3", diff --git a/packages/keychain/CHANGELOG.md b/packages/keychain/CHANGELOG.md index 5ceadfc8d9..3d60204788 100644 --- a/packages/keychain/CHANGELOG.md +++ b/packages/keychain/CHANGELOG.md @@ -47,6 +47,25 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [4.0.15](https://github.com/libp2p/js-libp2p/compare/keychain-v4.0.14...keychain-v4.0.15) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [4.0.14](https://github.com/libp2p/js-libp2p/compare/keychain-v4.0.13...keychain-v4.0.14) (2024-05-01) diff --git a/packages/keychain/package.json b/packages/keychain/package.json index a14224aa6d..ca7c325daa 100644 --- a/packages/keychain/package.json +++ b/packages/keychain/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/keychain", - "version": "4.0.14", + "version": "4.0.15", "description": "Key management and cryptographically protected messages", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/keychain#readme", @@ -59,9 +59,9 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", "interface-datastore": "^8.2.11", "merge-options": "^3.0.4", "multiformats": "^13.1.0", @@ -69,8 +69,8 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "datastore-core": "^9.2.9" }, diff --git a/packages/libp2p/CHANGELOG.md b/packages/libp2p/CHANGELOG.md index 57aa59d412..c4ed8da6fa 100644 --- a/packages/libp2p/CHANGELOG.md +++ b/packages/libp2p/CHANGELOG.md @@ -110,6 +110,44 @@ * @libp2p/tcp bumped from ^9.0.14 to ^9.0.15 * @libp2p/websockets bumped from ^8.0.14 to ^8.0.15 +## [1.6.0](https://github.com/libp2p/js-libp2p/compare/libp2p-v1.5.2...libp2p-v1.6.0) (2024-05-17) + + +### Features + +* add optional topology filter ([#2544](https://github.com/libp2p/js-libp2p/issues/2544)) ([3c73707](https://github.com/libp2p/js-libp2p/commit/3c73707ff5c1635d4ab26dcc39499ab497d217a6)) + + +### Bug Fixes + +* log error correctly ([#2552](https://github.com/libp2p/js-libp2p/issues/2552)) ([a3e8bea](https://github.com/libp2p/js-libp2p/commit/a3e8beabdc2b551594952b5d5621555296eff79a)) +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/multistream-select bumped from ^5.1.9 to ^5.1.10 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-store bumped from ^10.0.18 to ^10.0.19 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.23 to ^1.0.24 + * @libp2p/identify bumped from ^2.0.1 to ^2.0.2 + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/mplex bumped from ^10.0.23 to ^10.0.24 + * @libp2p/plaintext bumped from ^1.0.23 to ^1.0.24 + * @libp2p/tcp bumped from ^9.0.25 to ^9.0.26 + * @libp2p/websockets bumped from ^8.0.23 to ^8.0.24 + ## [1.5.2](https://github.com/libp2p/js-libp2p/compare/libp2p-v1.5.1...libp2p-v1.5.2) (2024-05-14) diff --git a/packages/libp2p/package.json b/packages/libp2p/package.json index 6456f56db0..278b44b64b 100644 --- a/packages/libp2p/package.json +++ b/packages/libp2p/package.json @@ -1,6 +1,6 @@ { "name": "libp2p", - "version": "1.5.2", + "version": "1.6.0", "description": "JavaScript implementation of libp2p, a modular peer to peer network stack", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p#readme", @@ -85,16 +85,16 @@ "test:webkit": "aegir test -t browser -f \"./dist/test/**/*.spec.js\" -- --browser webkit" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/logger": "^4.0.12", - "@libp2p/multistream-select": "^5.1.9", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/peer-store": "^10.0.18", - "@libp2p/utils": "^5.4.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/logger": "^4.0.13", + "@libp2p/multistream-select": "^5.1.10", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/peer-store": "^10.0.19", + "@libp2p/utils": "^5.4.2", "@multiformats/dns": "^1.0.6", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", @@ -112,13 +112,13 @@ }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.23", - "@libp2p/identify": "^2.0.1", - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/mplex": "^10.0.23", - "@libp2p/plaintext": "^1.0.23", - "@libp2p/tcp": "^9.0.25", - "@libp2p/websockets": "^8.0.23", + "@libp2p/circuit-relay-v2": "^1.0.24", + "@libp2p/identify": "^2.0.2", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/mplex": "^10.0.24", + "@libp2p/plaintext": "^1.0.24", + "@libp2p/tcp": "^9.0.26", + "@libp2p/websockets": "^8.0.24", "@multiformats/mafmt": "^12.1.6", "aegir": "^42.2.11", "delay": "^6.0.0", diff --git a/packages/logger/CHANGELOG.md b/packages/logger/CHANGELOG.md index 9472e37811..2befe9df01 100644 --- a/packages/logger/CHANGELOG.md +++ b/packages/logger/CHANGELOG.md @@ -21,6 +21,23 @@ * devDependencies * @libp2p/peer-id bumped from ^4.0.2 to ^4.0.3 +## [4.0.13](https://github.com/libp2p/js-libp2p/compare/logger-v4.0.12...logger-v4.0.13) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * devDependencies + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + ## [4.0.12](https://github.com/libp2p/js-libp2p/compare/logger-v4.0.11...logger-v4.0.12) (2024-05-01) diff --git a/packages/logger/package.json b/packages/logger/package.json index e9caabe90d..777b0ef684 100644 --- a/packages/logger/package.json +++ b/packages/logger/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/logger", - "version": "4.0.12", + "version": "4.0.13", "description": "A logging component for use in js-libp2p modules", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/logger#readme", @@ -54,14 +54,14 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", + "@libp2p/interface": "^1.4.0", "@multiformats/multiaddr": "^12.2.3", "debug": "^4.3.4", "interface-datastore": "^8.2.11", "multiformats": "^13.1.0" }, "devDependencies": { - "@libp2p/peer-id": "^4.1.1", + "@libp2p/peer-id": "^4.1.2", "@types/debug": "^4.1.12", "aegir": "^42.2.11", "sinon": "^18.0.0", diff --git a/packages/metrics-prometheus/CHANGELOG.md b/packages/metrics-prometheus/CHANGELOG.md index ee858848a9..7a78c07fae 100644 --- a/packages/metrics-prometheus/CHANGELOG.md +++ b/packages/metrics-prometheus/CHANGELOG.md @@ -81,6 +81,24 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [3.0.24](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v3.0.23...prometheus-metrics-v3.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [3.0.23](https://github.com/libp2p/js-libp2p/compare/prometheus-metrics-v3.0.22...prometheus-metrics-v3.0.23) (2024-05-14) diff --git a/packages/metrics-prometheus/package.json b/packages/metrics-prometheus/package.json index b6a321d508..a722b15fd2 100644 --- a/packages/metrics-prometheus/package.json +++ b/packages/metrics-prometheus/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/prometheus-metrics", - "version": "3.0.23", + "version": "3.0.24", "description": "Collect libp2p metrics for scraping by Prometheus or Graphana", "author": "", "license": "Apache-2.0 OR MIT", @@ -48,16 +48,16 @@ "test:electron-main": "aegir test -t electron-main --cov" }, "dependencies": { - "@libp2p/interface": "^1.3.1", + "@libp2p/interface": "^1.4.0", "it-foreach": "^2.1.0", "it-stream-types": "^2.0.1", "prom-client": "^15.1.2", "uint8arraylist": "^2.4.8" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "@multiformats/multiaddr": "^12.2.3", "aegir": "^42.2.11", "it-drain": "^3.0.7", diff --git a/packages/metrics-simple/CHANGELOG.md b/packages/metrics-simple/CHANGELOG.md index 868e5a8104..3636ea70d5 100644 --- a/packages/metrics-simple/CHANGELOG.md +++ b/packages/metrics-simple/CHANGELOG.md @@ -5,6 +5,22 @@ * track stream metrics ([#2](https://github.com/libp2p/js-libp2p-simple-metrics/issues/2)) ([caafb3d](https://github.com/libp2p/js-libp2p-simple-metrics/commit/caafb3d103fd7df0a2a4e6b3e800f4bc9c35c58f)) +## [1.0.2](https://github.com/libp2p/js-libp2p/compare/simple-metrics-v1.0.1...simple-metrics-v1.0.2) (2024-05-17) + + +### Bug Fixes + +* allow creating counter groups ([#2550](https://github.com/libp2p/js-libp2p/issues/2550)) ([8214dcf](https://github.com/libp2p/js-libp2p/commit/8214dcfb0e14e7bf377b5f0d9864551038c069fa)) +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## 1.0.0 (2023-09-20) diff --git a/packages/metrics-simple/package.json b/packages/metrics-simple/package.json index 5a49ae73f8..d0f5ad82f7 100644 --- a/packages/metrics-simple/package.json +++ b/packages/metrics-simple/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/simple-metrics", - "version": "1.0.1", + "version": "1.0.2", "description": "Simple in-memory metrics gathering for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-simple#readme", @@ -50,8 +50,8 @@ "dep-check": "aegir dep-check -i events" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface": "^1.4.0", + "@libp2p/logger": "^4.0.13", "it-foreach": "^2.1.0", "it-stream-types": "^2.0.1" }, diff --git a/packages/multistream-select/CHANGELOG.md b/packages/multistream-select/CHANGELOG.md index b5cff498d9..4c34eec1ad 100644 --- a/packages/multistream-select/CHANGELOG.md +++ b/packages/multistream-select/CHANGELOG.md @@ -19,6 +19,22 @@ * devDependencies * @libp2p/logger bumped from ^4.0.1 to ^4.0.2 +## [5.1.10](https://github.com/libp2p/js-libp2p/compare/multistream-select-v5.1.9...multistream-select-v5.1.10) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [5.1.9](https://github.com/libp2p/js-libp2p/compare/multistream-select-v5.1.8...multistream-select-v5.1.9) (2024-05-01) diff --git a/packages/multistream-select/package.json b/packages/multistream-select/package.json index 468cc725b1..9a3a3d5875 100644 --- a/packages/multistream-select/package.json +++ b/packages/multistream-select/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/multistream-select", - "version": "5.1.9", + "version": "5.1.10", "description": "JavaScript implementation of multistream-select", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/multistream-select#readme", @@ -58,7 +58,7 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", + "@libp2p/interface": "^1.4.0", "it-length-prefixed": "^9.0.4", "it-length-prefixed-stream": "^1.1.7", "it-stream-types": "^2.0.1", @@ -69,7 +69,7 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "iso-random-stream": "^2.0.2", "it-all": "^3.0.6", diff --git a/packages/peer-collections/CHANGELOG.md b/packages/peer-collections/CHANGELOG.md index 9cecf914c0..7661880433 100644 --- a/packages/peer-collections/CHANGELOG.md +++ b/packages/peer-collections/CHANGELOG.md @@ -35,6 +35,25 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [5.2.2](https://github.com/libp2p/js-libp2p/compare/peer-collections-v5.2.1...peer-collections-v5.2.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [5.2.1](https://github.com/libp2p/js-libp2p/compare/peer-collections-v5.2.0...peer-collections-v5.2.1) (2024-05-14) diff --git a/packages/peer-collections/package.json b/packages/peer-collections/package.json index 0eeaa1a321..73cbd6eb90 100644 --- a/packages/peer-collections/package.json +++ b/packages/peer-collections/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-collections", - "version": "5.2.1", + "version": "5.2.2", "description": "Stores values against a peer id", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-collections#readme", @@ -54,12 +54,12 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1" + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/peer-id-factory": "^4.1.2", "@types/sinon": "^17.0.3", "aegir": "^42.2.11", "sinon": "^18.0.0", diff --git a/packages/peer-discovery-bootstrap/CHANGELOG.md b/packages/peer-discovery-bootstrap/CHANGELOG.md index 4acab2b46f..194f8fc468 100644 --- a/packages/peer-discovery-bootstrap/CHANGELOG.md +++ b/packages/peer-discovery-bootstrap/CHANGELOG.md @@ -83,6 +83,24 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.24](https://github.com/libp2p/js-libp2p/compare/bootstrap-v10.0.23...bootstrap-v10.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [10.0.23](https://github.com/libp2p/js-libp2p/compare/bootstrap-v10.0.22...bootstrap-v10.0.23) (2024-05-14) diff --git a/packages/peer-discovery-bootstrap/package.json b/packages/peer-discovery-bootstrap/package.json index 6176ef8a11..963a005381 100644 --- a/packages/peer-discovery-bootstrap/package.json +++ b/packages/peer-discovery-bootstrap/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/bootstrap", - "version": "10.0.23", + "version": "10.0.24", "description": "Peer discovery via a list of bootstrap peers", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-discovery-bootstrap#readme", @@ -54,14 +54,14 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "sinon-ts": "^2.0.0" }, diff --git a/packages/peer-discovery-mdns/CHANGELOG.md b/packages/peer-discovery-mdns/CHANGELOG.md index 227d051580..12aee67ab9 100644 --- a/packages/peer-discovery-mdns/CHANGELOG.md +++ b/packages/peer-discovery-mdns/CHANGELOG.md @@ -105,6 +105,27 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.24](https://github.com/libp2p/js-libp2p/compare/mdns-v10.0.23...mdns-v10.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [10.0.23](https://github.com/libp2p/js-libp2p/compare/mdns-v10.0.22...mdns-v10.0.23) (2024-05-14) diff --git a/packages/peer-discovery-mdns/package.json b/packages/peer-discovery-mdns/package.json index e53861b4db..ce177635c6 100644 --- a/packages/peer-discovery-mdns/package.json +++ b/packages/peer-discovery-mdns/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/mdns", - "version": "10.0.23", + "version": "10.0.24", "description": "Node.js libp2p mDNS discovery implementation for peer discovery", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-discovery-mdns#readme", @@ -50,19 +50,19 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", "multicast-dns": "^7.2.5" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "p-wait-for": "^5.0.2", "sinon-ts": "^2.0.0" diff --git a/packages/peer-id-factory/CHANGELOG.md b/packages/peer-id-factory/CHANGELOG.md index dd898051c7..15799215e1 100644 --- a/packages/peer-id-factory/CHANGELOG.md +++ b/packages/peer-id-factory/CHANGELOG.md @@ -27,6 +27,22 @@ * dependencies * @libp2p/crypto bumped from ^3.0.4 to ^4.0.0 +## [4.1.2](https://github.com/libp2p/js-libp2p/compare/peer-id-factory-v4.1.1...peer-id-factory-v4.1.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + ## [4.1.1](https://github.com/libp2p/js-libp2p/compare/peer-id-factory-v4.1.0...peer-id-factory-v4.1.1) (2024-05-01) diff --git a/packages/peer-id-factory/package.json b/packages/peer-id-factory/package.json index 44049c5614..ee4b9225e7 100644 --- a/packages/peer-id-factory/package.json +++ b/packages/peer-id-factory/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-id-factory", - "version": "4.1.1", + "version": "4.1.2", "description": "Create PeerId instances", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-id-factory#readme", @@ -58,9 +58,9 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" diff --git a/packages/peer-id/CHANGELOG.md b/packages/peer-id/CHANGELOG.md index 8af483c8a5..d42bbbc2d3 100644 --- a/packages/peer-id/CHANGELOG.md +++ b/packages/peer-id/CHANGELOG.md @@ -11,6 +11,20 @@ * dependencies * @libp2p/interface bumped from ^1.0.1 to ^1.0.2 +## [4.1.2](https://github.com/libp2p/js-libp2p/compare/peer-id-v4.1.1...peer-id-v4.1.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + ## [4.1.1](https://github.com/libp2p/js-libp2p/compare/peer-id-v4.1.0...peer-id-v4.1.1) (2024-05-01) diff --git a/packages/peer-id/package.json b/packages/peer-id/package.json index 8e4e8aaeee..2aa24401c0 100644 --- a/packages/peer-id/package.json +++ b/packages/peer-id/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-id", - "version": "4.1.1", + "version": "4.1.2", "description": "Implementation of @libp2p/interface-peer-id", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-id#readme", @@ -54,7 +54,7 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", + "@libp2p/interface": "^1.4.0", "multiformats": "^13.1.0", "uint8arrays": "^5.1.0" }, diff --git a/packages/peer-record/CHANGELOG.md b/packages/peer-record/CHANGELOG.md index 28252118ef..1fe1e03162 100644 --- a/packages/peer-record/CHANGELOG.md +++ b/packages/peer-record/CHANGELOG.md @@ -60,6 +60,25 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [7.0.18](https://github.com/libp2p/js-libp2p/compare/peer-record-v7.0.17...peer-record-v7.0.18) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [7.0.17](https://github.com/libp2p/js-libp2p/compare/peer-record-v7.0.16...peer-record-v7.0.17) (2024-05-14) diff --git a/packages/peer-record/package.json b/packages/peer-record/package.json index 4052621d9b..e3b27035f3 100644 --- a/packages/peer-record/package.json +++ b/packages/peer-record/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-record", - "version": "7.0.17", + "version": "7.0.18", "description": "Used to transfer signed peer data across the network", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-record#readme", @@ -61,10 +61,10 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "protons-runtime": "^5.4.0", "uint8-varint": "^2.0.4", @@ -72,7 +72,7 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "protons": "^7.5.0" }, diff --git a/packages/peer-store/CHANGELOG.md b/packages/peer-store/CHANGELOG.md index 0a96772fb4..1d9d144c5e 100644 --- a/packages/peer-store/CHANGELOG.md +++ b/packages/peer-store/CHANGELOG.md @@ -68,6 +68,27 @@ * dependencies * @libp2p/peer-record bumped from ^7.0.8 to ^7.0.9 +## [10.0.19](https://github.com/libp2p/js-libp2p/compare/peer-store-v10.0.18...peer-store-v10.0.19) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-record bumped from ^7.0.17 to ^7.0.18 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [10.0.18](https://github.com/libp2p/js-libp2p/compare/peer-store-v10.0.17...peer-store-v10.0.18) (2024-05-14) diff --git a/packages/peer-store/package.json b/packages/peer-store/package.json index 5342c54950..507856b7d5 100644 --- a/packages/peer-store/package.json +++ b/packages/peer-store/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/peer-store", - "version": "10.0.18", + "version": "10.0.19", "description": "Stores information about peers libp2p knows on the network", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/peer-store#readme", @@ -59,10 +59,10 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.17", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-record": "^7.0.18", "@multiformats/multiaddr": "^12.2.3", "interface-datastore": "^8.2.11", "it-all": "^3.0.6", @@ -73,8 +73,8 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "@types/sinon": "^17.0.3", "aegir": "^42.2.11", "datastore-core": "^9.2.9", diff --git a/packages/protocol-autonat/CHANGELOG.md b/packages/protocol-autonat/CHANGELOG.md index a6c7901357..1fbfe3bfcf 100644 --- a/packages/protocol-autonat/CHANGELOG.md +++ b/packages/protocol-autonat/CHANGELOG.md @@ -55,6 +55,27 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.21](https://github.com/libp2p/js-libp2p/compare/autonat-v1.0.20...autonat-v1.0.21) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [1.0.20](https://github.com/libp2p/js-libp2p/compare/autonat-v1.0.19...autonat-v1.0.20) (2024-05-14) diff --git a/packages/protocol-autonat/package.json b/packages/protocol-autonat/package.json index 095629d20c..97f7af9774 100644 --- a/packages/protocol-autonat/package.json +++ b/packages/protocol-autonat/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/autonat", - "version": "1.0.20", + "version": "1.0.21", "description": "Implementation of Autonat Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-autonat#readme", @@ -52,11 +52,11 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "it-first": "^3.0.6", "it-length-prefixed": "^9.0.4", @@ -67,7 +67,7 @@ "uint8arraylist": "^2.4.8" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "it-all": "^3.0.6", "it-pushable": "^3.2.3", diff --git a/packages/protocol-dcutr/CHANGELOG.md b/packages/protocol-dcutr/CHANGELOG.md index ca726615b3..a403cc2c3e 100644 --- a/packages/protocol-dcutr/CHANGELOG.md +++ b/packages/protocol-dcutr/CHANGELOG.md @@ -44,6 +44,23 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.21](https://github.com/libp2p/js-libp2p/compare/dcutr-v1.0.20...dcutr-v1.0.21) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + ## [1.0.20](https://github.com/libp2p/js-libp2p/compare/dcutr-v1.0.19...dcutr-v1.0.20) (2024-05-14) diff --git a/packages/protocol-dcutr/package.json b/packages/protocol-dcutr/package.json index 56150ede92..ca317f7e14 100644 --- a/packages/protocol-dcutr/package.json +++ b/packages/protocol-dcutr/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/dcutr", - "version": "1.0.20", + "version": "1.0.21", "description": "Implementation of the DCUtR Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-dcutr#readme", @@ -52,9 +52,9 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "delay": "^6.0.0", diff --git a/packages/protocol-echo/CHANGELOG.md b/packages/protocol-echo/CHANGELOG.md index 30312d7f67..0caacb0fae 100644 --- a/packages/protocol-echo/CHANGELOG.md +++ b/packages/protocol-echo/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [1.0.7](https://github.com/libp2p/js-libp2p/compare/echo-v1.0.6...echo-v1.0.7) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [1.0.6](https://github.com/libp2p/js-libp2p/compare/echo-v1.0.5...echo-v1.0.6) (2024-05-14) diff --git a/packages/protocol-echo/package.json b/packages/protocol-echo/package.json index e14a1a8a19..b0be5852c1 100644 --- a/packages/protocol-echo/package.json +++ b/packages/protocol-echo/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/echo", - "version": "1.0.6", + "version": "1.0.7", "description": "Implementation of an Echo protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-echo#readme", @@ -52,12 +52,12 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", "it-pipe": "^3.0.1" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "it-all": "^3.0.6", "it-pair": "^2.0.6", diff --git a/packages/protocol-fetch/CHANGELOG.md b/packages/protocol-fetch/CHANGELOG.md index f45be2c769..2e9feab500 100644 --- a/packages/protocol-fetch/CHANGELOG.md +++ b/packages/protocol-fetch/CHANGELOG.md @@ -48,6 +48,25 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [1.0.18](https://github.com/libp2p/js-libp2p/compare/fetch-v1.0.17...fetch-v1.0.18) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.17](https://github.com/libp2p/js-libp2p/compare/fetch-v1.0.16...fetch-v1.0.17) (2024-05-14) diff --git a/packages/protocol-fetch/package.json b/packages/protocol-fetch/package.json index 1820d1284e..ff16368940 100644 --- a/packages/protocol-fetch/package.json +++ b/packages/protocol-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/fetch", - "version": "1.0.17", + "version": "1.0.18", "description": "Implementation of the Fetch Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-fetch#readme", @@ -52,16 +52,16 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", "it-protobuf-stream": "^1.1.3", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "it-pair": "^2.0.6", "protons": "^7.5.0", diff --git a/packages/protocol-identify/CHANGELOG.md b/packages/protocol-identify/CHANGELOG.md index 3c94125e80..d648b0ce66 100644 --- a/packages/protocol-identify/CHANGELOG.md +++ b/packages/protocol-identify/CHANGELOG.md @@ -76,6 +76,27 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [2.0.2](https://github.com/libp2p/js-libp2p/compare/identify-v2.0.1...identify-v2.0.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-record bumped from ^7.0.17 to ^7.0.18 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [2.0.1](https://github.com/libp2p/js-libp2p/compare/identify-v2.0.0...identify-v2.0.1) (2024-05-14) diff --git a/packages/protocol-identify/package.json b/packages/protocol-identify/package.json index a3c15d2194..3648773a7a 100644 --- a/packages/protocol-identify/package.json +++ b/packages/protocol-identify/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/identify", - "version": "2.0.1", + "version": "2.0.2", "description": "Implementation of the Identify Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-identify#readme", @@ -52,10 +52,10 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.17", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-record": "^7.0.18", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "it-drain": "^3.0.7", @@ -67,9 +67,9 @@ "wherearewe": "^2.0.1" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "delay": "^6.0.0", "it-length-prefixed": "^9.0.4", diff --git a/packages/protocol-perf/CHANGELOG.md b/packages/protocol-perf/CHANGELOG.md index 79894f9743..b32cb8313c 100644 --- a/packages/protocol-perf/CHANGELOG.md +++ b/packages/protocol-perf/CHANGELOG.md @@ -82,6 +82,24 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [3.0.24](https://github.com/libp2p/js-libp2p/compare/perf-v3.0.23...perf-v3.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [3.0.23](https://github.com/libp2p/js-libp2p/compare/perf-v3.0.22...perf-v3.0.23) (2024-05-14) diff --git a/packages/protocol-perf/package.json b/packages/protocol-perf/package.json index 7e43ed92e0..87b9f85e47 100644 --- a/packages/protocol-perf/package.json +++ b/packages/protocol-perf/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/perf", - "version": "3.0.23", + "version": "3.0.24", "description": "Implementation of Perf Protocol", "author": "@maschad / @marcopolo", "license": "Apache-2.0 OR MIT", @@ -52,14 +52,14 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", "@multiformats/multiaddr": "^12.2.3", "it-pushable": "^3.2.3" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "it-last": "^3.0.6", "it-pair": "^2.0.6", diff --git a/packages/protocol-ping/CHANGELOG.md b/packages/protocol-ping/CHANGELOG.md index 57d52107a3..7d21d08141 100644 --- a/packages/protocol-ping/CHANGELOG.md +++ b/packages/protocol-ping/CHANGELOG.md @@ -50,6 +50,25 @@ * devDependencies * @libp2p/peer-id-factory bumped from ^4.0.3 to ^4.0.4 +## [1.0.19](https://github.com/libp2p/js-libp2p/compare/ping-v1.0.18...ping-v1.0.19) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.18](https://github.com/libp2p/js-libp2p/compare/ping-v1.0.17...ping-v1.0.18) (2024-05-14) diff --git a/packages/protocol-ping/package.json b/packages/protocol-ping/package.json index 486417578a..dc5529334f 100644 --- a/packages/protocol-ping/package.json +++ b/packages/protocol-ping/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/ping", - "version": "1.0.18", + "version": "1.0.19", "description": "Implementation of Ping Protocol", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/protocol-ping#readme", @@ -50,17 +50,17 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", "@multiformats/multiaddr": "^12.2.3", "it-first": "^3.0.6", "it-pipe": "^3.0.1", "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "it-byte-stream": "^1.0.10", "it-pair": "^2.0.6", diff --git a/packages/pubsub-floodsub/CHANGELOG.md b/packages/pubsub-floodsub/CHANGELOG.md index caf6406358..f3844e9b10 100644 --- a/packages/pubsub-floodsub/CHANGELOG.md +++ b/packages/pubsub-floodsub/CHANGELOG.md @@ -98,6 +98,27 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [9.0.20](https://github.com/libp2p/js-libp2p/compare/floodsub-v9.0.19...floodsub-v9.0.20) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/pubsub bumped from ^9.0.18 to ^9.0.19 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [9.0.19](https://github.com/libp2p/js-libp2p/compare/floodsub-v9.0.18...floodsub-v9.0.19) (2024-05-14) diff --git a/packages/pubsub-floodsub/package.json b/packages/pubsub-floodsub/package.json index 5872430517..6229b0e97c 100644 --- a/packages/pubsub-floodsub/package.json +++ b/packages/pubsub-floodsub/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/floodsub", - "version": "9.0.19", + "version": "9.0.20", "description": "libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/pubsub-floodsub#readme", @@ -60,17 +60,17 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/pubsub": "^9.0.18", + "@libp2p/interface": "^1.4.0", + "@libp2p/pubsub": "^9.0.19", "protons-runtime": "^5.4.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id-factory": "^4.1.2", "@multiformats/multiaddr": "^12.2.3", "@types/sinon": "^17.0.3", "aegir": "^42.2.11", diff --git a/packages/pubsub/CHANGELOG.md b/packages/pubsub/CHANGELOG.md index f11d140d9a..af406a3bd6 100644 --- a/packages/pubsub/CHANGELOG.md +++ b/packages/pubsub/CHANGELOG.md @@ -75,6 +75,29 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [9.0.19](https://github.com/libp2p/js-libp2p/compare/pubsub-v9.0.18...pubsub-v9.0.19) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [9.0.18](https://github.com/libp2p/js-libp2p/compare/pubsub-v9.0.17...pubsub-v9.0.18) (2024-05-14) diff --git a/packages/pubsub/package.json b/packages/pubsub/package.json index 92ed78ba42..fa4b8f163b 100644 --- a/packages/pubsub/package.json +++ b/packages/pubsub/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/pubsub", - "version": "9.0.18", + "version": "9.0.19", "description": "libp2p pubsub base class", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/pubsub#readme", @@ -84,12 +84,12 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2", "it-length-prefixed": "^9.0.4", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", @@ -99,8 +99,8 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "@types/sinon": "^17.0.3", "aegir": "^42.2.11", "delay": "^6.0.0", diff --git a/packages/record/CHANGELOG.md b/packages/record/CHANGELOG.md index fa79a9f8e3..d45be9c991 100644 --- a/packages/record/CHANGELOG.md +++ b/packages/record/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [4.0.2](https://github.com/libp2p/js-libp2p/compare/record-v4.0.1...record-v4.0.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + ## [4.0.1](https://github.com/libp2p/js-libp2p/compare/record-v4.0.0...record-v4.0.1) (2024-04-24) diff --git a/packages/record/package.json b/packages/record/package.json index a2a55d382b..83a617de55 100644 --- a/packages/record/package.json +++ b/packages/record/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/record", - "version": "4.0.1", + "version": "4.0.2", "description": "libp2p record implementation", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/record#readme", diff --git a/packages/stream-multiplexer-mplex/CHANGELOG.md b/packages/stream-multiplexer-mplex/CHANGELOG.md index a3a6ac5768..0484fba813 100644 --- a/packages/stream-multiplexer-mplex/CHANGELOG.md +++ b/packages/stream-multiplexer-mplex/CHANGELOG.md @@ -78,6 +78,24 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [10.0.24](https://github.com/libp2p/js-libp2p/compare/mplex-v10.0.23...mplex-v10.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [10.0.23](https://github.com/libp2p/js-libp2p/compare/mplex-v10.0.22...mplex-v10.0.23) (2024-05-14) diff --git a/packages/stream-multiplexer-mplex/package.json b/packages/stream-multiplexer-mplex/package.json index 4c683c5cbc..a5c022ea3c 100644 --- a/packages/stream-multiplexer-mplex/package.json +++ b/packages/stream-multiplexer-mplex/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/mplex", - "version": "10.0.23", + "version": "10.0.24", "description": "JavaScript implementation of https://github.com/libp2p/mplex", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/stream-multiplexer-mplex#readme", @@ -62,8 +62,8 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/utils": "^5.4.2", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", "it-stream-types": "^2.0.1", @@ -72,8 +72,8 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "benchmark": "^2.1.4", "cborg": "^4.2.0", diff --git a/packages/transport-circuit-relay-v2/CHANGELOG.md b/packages/transport-circuit-relay-v2/CHANGELOG.md index 2ac9c78d1c..c06f380497 100644 --- a/packages/transport-circuit-relay-v2/CHANGELOG.md +++ b/packages/transport-circuit-relay-v2/CHANGELOG.md @@ -101,6 +101,30 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [1.0.24](https://github.com/libp2p/js-libp2p/compare/circuit-relay-v2-v1.0.23...circuit-relay-v2-v1.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-collections bumped from ^5.2.1 to ^5.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/peer-record bumped from ^7.0.17 to ^7.0.18 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.23](https://github.com/libp2p/js-libp2p/compare/circuit-relay-v2-v1.0.22...circuit-relay-v2-v1.0.23) (2024-05-14) diff --git a/packages/transport-circuit-relay-v2/package.json b/packages/transport-circuit-relay-v2/package.json index ac14f255f0..1f0e712b40 100644 --- a/packages/transport-circuit-relay-v2/package.json +++ b/packages/transport-circuit-relay-v2/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/circuit-relay-v2", - "version": "1.0.23", + "version": "1.0.24", "description": "Implementation of Circuit Relay v2", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-circuit-relay-v2#readme", @@ -52,12 +52,12 @@ "doc-check": "aegir doc-check" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-collections": "^5.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/peer-record": "^7.0.17", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-collections": "^5.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/peer-record": "^7.0.18", + "@libp2p/utils": "^5.4.2", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "any-signal": "^4.1.1", @@ -71,9 +71,9 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "delay": "^6.0.0", "it-drain": "^3.0.7", diff --git a/packages/transport-tcp/CHANGELOG.md b/packages/transport-tcp/CHANGELOG.md index a53185fb76..e7b4867d77 100644 --- a/packages/transport-tcp/CHANGELOG.md +++ b/packages/transport-tcp/CHANGELOG.md @@ -89,6 +89,25 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [9.0.26](https://github.com/libp2p/js-libp2p/compare/tcp-v9.0.25...tcp-v9.0.26) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [9.0.25](https://github.com/libp2p/js-libp2p/compare/tcp-v9.0.24...tcp-v9.0.25) (2024-05-14) diff --git a/packages/transport-tcp/package.json b/packages/transport-tcp/package.json index 05032d5831..ab720914cf 100644 --- a/packages/transport-tcp/package.json +++ b/packages/transport-tcp/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/tcp", - "version": "9.0.25", + "version": "9.0.26", "description": "A TCP transport for libp2p", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-tcp#readme", @@ -56,16 +56,16 @@ "test:electron-main": "aegir test -t electron-main" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/utils": "^5.4.2", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "@types/sinon": "^17.0.3", "stream-to-it": "^1.0.1" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "it-all": "^3.0.6", "it-pipe": "^3.0.1", diff --git a/packages/transport-webrtc/CHANGELOG.md b/packages/transport-webrtc/CHANGELOG.md index ec0d743942..0c94c2daa7 100644 --- a/packages/transport-webrtc/CHANGELOG.md +++ b/packages/transport-webrtc/CHANGELOG.md @@ -111,6 +111,31 @@ * @libp2p/websockets bumped from ^8.0.14 to ^8.0.15 * libp2p bumped from ^1.2.2 to ^1.2.3 +## [4.0.33](https://github.com/libp2p/js-libp2p/compare/webrtc-v4.0.32...webrtc-v4.0.33) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/circuit-relay-v2 bumped from ^1.0.23 to ^1.0.24 + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/websockets bumped from ^8.0.23 to ^8.0.24 + * libp2p bumped from ^1.5.2 to ^1.6.0 + ## [4.0.32](https://github.com/libp2p/js-libp2p/compare/webrtc-v4.0.31...webrtc-v4.0.32) (2024-05-14) diff --git a/packages/transport-webrtc/package.json b/packages/transport-webrtc/package.json index 04c4be7ffc..0ad02ab631 100644 --- a/packages/transport-webrtc/package.json +++ b/packages/transport-webrtc/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/webrtc", - "version": "4.0.32", + "version": "4.0.33", "description": "A libp2p transport using WebRTC connections", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webrtc#readme", @@ -51,10 +51,10 @@ }, "dependencies": { "@chainsafe/libp2p-noise": "^15.0.0", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", @@ -77,11 +77,11 @@ }, "devDependencies": { "@chainsafe/libp2p-yamux": "^6.0.2", - "@libp2p/circuit-relay-v2": "^1.0.23", - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/websockets": "^8.0.23", + "@libp2p/circuit-relay-v2": "^1.0.24", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/websockets": "^8.0.24", "@types/sinon": "^17.0.3", "aegir": "^42.2.11", "delay": "^6.0.0", @@ -91,7 +91,7 @@ "it-pair": "^2.0.6", "it-pipe": "^3.0.1", "it-to-buffer": "^4.0.7", - "libp2p": "^1.5.2", + "libp2p": "^1.6.0", "p-retry": "^6.2.0", "protons": "^7.5.0", "sinon": "^18.0.0", diff --git a/packages/transport-websockets/CHANGELOG.md b/packages/transport-websockets/CHANGELOG.md index 5ee5a4aa9d..84be3b5079 100644 --- a/packages/transport-websockets/CHANGELOG.md +++ b/packages/transport-websockets/CHANGELOG.md @@ -70,6 +70,24 @@ * devDependencies * @libp2p/interface-compliance-tests bumped from ^5.3.0 to ^5.3.1 +## [8.0.24](https://github.com/libp2p/js-libp2p/compare/websockets-v8.0.23...websockets-v8.0.24) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/interface-compliance-tests bumped from ^5.4.4 to ^5.4.5 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + ## [8.0.23](https://github.com/libp2p/js-libp2p/compare/websockets-v8.0.22...websockets-v8.0.23) (2024-05-14) diff --git a/packages/transport-websockets/package.json b/packages/transport-websockets/package.json index ec686b52fb..6d6c918237 100644 --- a/packages/transport-websockets/package.json +++ b/packages/transport-websockets/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/websockets", - "version": "8.0.23", + "version": "8.0.24", "description": "JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-websockets#readme", @@ -74,8 +74,8 @@ "test:electron-main": "aegir test -t electron-main -f ./dist/test/node.js --cov" }, "dependencies": { - "@libp2p/interface": "^1.3.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/utils": "^5.4.2", "@multiformats/mafmt": "^12.1.6", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-to-uri": "^10.0.1", @@ -86,8 +86,8 @@ "ws": "^8.17.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^5.4.4", - "@libp2p/logger": "^4.0.12", + "@libp2p/interface-compliance-tests": "^5.4.5", + "@libp2p/logger": "^4.0.13", "aegir": "^42.2.11", "is-loopback-addr": "^2.0.2", "it-all": "^3.0.6", diff --git a/packages/transport-webtransport/CHANGELOG.md b/packages/transport-webtransport/CHANGELOG.md index 7531488964..678c2169b3 100644 --- a/packages/transport-webtransport/CHANGELOG.md +++ b/packages/transport-webtransport/CHANGELOG.md @@ -96,6 +96,27 @@ * devDependencies * libp2p bumped from ^1.2.2 to ^1.2.3 +## [4.0.32](https://github.com/libp2p/js-libp2p/compare/webtransport-v4.0.31...webtransport-v4.0.32) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/peer-id bumped from ^4.1.1 to ^4.1.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + * @libp2p/ping bumped from ^1.0.18 to ^1.0.19 + * libp2p bumped from ^1.5.2 to ^1.6.0 + ## [4.0.31](https://github.com/libp2p/js-libp2p/compare/webtransport-v4.0.30...webtransport-v4.0.31) (2024-05-14) diff --git a/packages/transport-webtransport/package.json b/packages/transport-webtransport/package.json index d3d9277833..7a833df242 100644 --- a/packages/transport-webtransport/package.json +++ b/packages/transport-webtransport/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/webtransport", - "version": "4.0.31", + "version": "4.0.32", "description": "JavaScript implementation of the WebTransport module that libp2p uses and that implements the interface-transport spec", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/transport-webtransport#readme", @@ -51,9 +51,9 @@ }, "dependencies": { "@chainsafe/libp2p-noise": "^15.0.0", - "@libp2p/interface": "^1.3.1", - "@libp2p/peer-id": "^4.1.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/peer-id": "^4.1.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "it-stream-types": "^2.0.1", @@ -64,16 +64,16 @@ }, "devDependencies": { "@libp2p/daemon-client": "^8.0.5", - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", - "@libp2p/ping": "^1.0.18", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", + "@libp2p/ping": "^1.0.19", "@noble/hashes": "^1.4.0", "aegir": "^42.2.11", "execa": "^9.1.0", "go-libp2p": "^1.2.0", "it-map": "^3.1.0", "it-to-buffer": "^4.0.7", - "libp2p": "^1.5.2", + "libp2p": "^1.6.0", "p-defer": "^4.0.1", "p-wait-for": "^5.0.2" }, diff --git a/packages/upnp-nat/CHANGELOG.md b/packages/upnp-nat/CHANGELOG.md index d7ae0acbbb..2be5f6cd8b 100644 --- a/packages/upnp-nat/CHANGELOG.md +++ b/packages/upnp-nat/CHANGELOG.md @@ -64,6 +64,25 @@ * dependencies * @libp2p/utils bumped from ^5.2.4 to ^5.2.5 +## [1.0.22](https://github.com/libp2p/js-libp2p/compare/upnp-nat-v1.0.21...upnp-nat-v1.0.22) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* The following workspace dependencies were updated + * dependencies + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/interface-internal bumped from ^1.2.1 to ^1.2.2 + * @libp2p/utils bumped from ^5.4.1 to ^5.4.2 + * devDependencies + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [1.0.21](https://github.com/libp2p/js-libp2p/compare/upnp-nat-v1.0.20...upnp-nat-v1.0.21) (2024-05-14) diff --git a/packages/upnp-nat/package.json b/packages/upnp-nat/package.json index 08b4c942dc..0f4cf95fec 100644 --- a/packages/upnp-nat/package.json +++ b/packages/upnp-nat/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/upnp-nat", - "version": "1.0.21", + "version": "1.0.22", "description": "UPnP NAT hole punching", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/upnp-nat#readme", @@ -51,15 +51,15 @@ }, "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.13", - "@libp2p/interface": "^1.3.1", - "@libp2p/interface-internal": "^1.2.1", - "@libp2p/utils": "^5.4.1", + "@libp2p/interface": "^1.4.0", + "@libp2p/interface-internal": "^1.2.2", + "@libp2p/utils": "^5.4.2", "@multiformats/multiaddr": "^12.2.3", "wherearewe": "^2.0.1" }, "devDependencies": { - "@libp2p/logger": "^4.0.12", - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/logger": "^4.0.13", + "@libp2p/peer-id-factory": "^4.1.2", "aegir": "^42.2.11", "sinon-ts": "^2.0.0" }, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 84be1a73de..4e1d1b7298 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -36,6 +36,25 @@ * @libp2p/logger bumped from ^4.0.2 to ^4.0.3 * @libp2p/peer-id-factory bumped from ^4.0.1 to ^4.0.2 +## [5.4.2](https://github.com/libp2p/js-libp2p/compare/utils-v5.4.1...utils-v5.4.2) (2024-05-17) + + +### Bug Fixes + +* update project config ([48444f7](https://github.com/libp2p/js-libp2p/commit/48444f750ebe3f03290bf70e84d7590edc030ea4)) + + +### Dependencies + +* bump sinon from 17.0.2 to 18.0.0 ([#2548](https://github.com/libp2p/js-libp2p/issues/2548)) ([1eb5b27](https://github.com/libp2p/js-libp2p/commit/1eb5b2713585e0d4dde927ecd307ada0b774d824)) +* The following workspace dependencies were updated + * dependencies + * @libp2p/crypto bumped from ^4.1.1 to ^4.1.2 + * @libp2p/interface bumped from ^1.3.1 to ^1.4.0 + * @libp2p/logger bumped from ^4.0.12 to ^4.0.13 + * devDependencies + * @libp2p/peer-id-factory bumped from ^4.1.1 to ^4.1.2 + ## [5.4.1](https://github.com/libp2p/js-libp2p/compare/utils-v5.4.0...utils-v5.4.1) (2024-05-14) diff --git a/packages/utils/package.json b/packages/utils/package.json index adc1a9ec64..9c12eda5b9 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@libp2p/utils", - "version": "5.4.1", + "version": "5.4.2", "description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem", "license": "Apache-2.0 OR MIT", "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/utils#readme", @@ -152,9 +152,9 @@ }, "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/crypto": "^4.1.1", - "@libp2p/interface": "^1.3.1", - "@libp2p/logger": "^4.0.12", + "@libp2p/crypto": "^4.1.2", + "@libp2p/interface": "^1.4.0", + "@libp2p/logger": "^4.0.13", "@multiformats/multiaddr": "^12.2.3", "@multiformats/multiaddr-matcher": "^1.2.1", "@sindresorhus/fnv1a": "^3.1.0", @@ -174,7 +174,7 @@ "uint8arrays": "^5.1.0" }, "devDependencies": { - "@libp2p/peer-id-factory": "^4.1.1", + "@libp2p/peer-id-factory": "^4.1.2", "@types/netmask": "^2.0.5", "aegir": "^42.2.11", "delay": "^6.0.0", From e69a2f1b608be8dbd1456b84270a4b481ee036f7 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Tue, 28 May 2024 08:20:33 +0100 Subject: [PATCH 29/30] fix: bind redis proxy to all interfaces (#2559) Sometimes docker in CI resolves localhost to an ip4 address, sometimes an ip6 address so just bind to all interfaces. --- interop/.aegir.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interop/.aegir.js b/interop/.aegir.js index bde53c197a..055269a688 100644 --- a/interop/.aegir.js +++ b/interop/.aegir.js @@ -68,7 +68,7 @@ export default { } const proxyServer = http.createServer(requestListener) - await new Promise(resolve => { proxyServer.listen(0, 'localhost', () => { resolve() }) }) + await new Promise(resolve => { proxyServer.listen(0, () => { resolve() }) }) return { redisClient, From 7464dc00caef2d95bfcfc75346f48e0901458df6 Mon Sep 17 00:00:00 2001 From: Alex Potsides Date: Tue, 28 May 2024 08:50:25 +0100 Subject: [PATCH 30/30] feat: add devtools metrics (#2551) Adds a metrics implementation that broadcasts metrics to a browser DevTools plugin. --- .release-please-manifest.json | 2 +- .release-please.json | 2 +- packages/metrics-devtools/LICENSE | 4 + packages/metrics-devtools/LICENSE-APACHE | 5 + packages/metrics-devtools/LICENSE-MIT | 19 + packages/metrics-devtools/README.md | 68 +++ packages/metrics-devtools/package.json | 63 +++ packages/metrics-devtools/src/index.ts | 469 +++++++++++++++++++ packages/metrics-devtools/test/index.spec.ts | 86 ++++ packages/metrics-devtools/tsconfig.json | 27 ++ packages/metrics-devtools/typedoc.json | 5 + 11 files changed, 748 insertions(+), 2 deletions(-) create mode 100644 packages/metrics-devtools/LICENSE create mode 100644 packages/metrics-devtools/LICENSE-APACHE create mode 100644 packages/metrics-devtools/LICENSE-MIT create mode 100644 packages/metrics-devtools/README.md create mode 100644 packages/metrics-devtools/package.json create mode 100644 packages/metrics-devtools/src/index.ts create mode 100644 packages/metrics-devtools/test/index.spec.ts create mode 100644 packages/metrics-devtools/tsconfig.json create mode 100644 packages/metrics-devtools/typedoc.json diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e08af06f65..9b674ae0f0 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{"interop":"2.0.33","packages/connection-encrypter-plaintext":"1.0.24","packages/connection-encrypter-tls":"1.0.11","packages/crypto":"4.1.2","packages/interface":"1.4.0","packages/interface-compliance-tests":"5.4.5","packages/interface-internal":"1.2.2","packages/kad-dht":"12.0.17","packages/keychain":"4.0.15","packages/libp2p":"1.6.0","packages/logger":"4.0.13","packages/metrics-prometheus":"3.0.24","packages/metrics-simple":"1.0.2","packages/multistream-select":"5.1.10","packages/peer-collections":"5.2.2","packages/peer-discovery-bootstrap":"10.0.24","packages/peer-discovery-mdns":"10.0.24","packages/peer-id":"4.1.2","packages/peer-id-factory":"4.1.2","packages/peer-record":"7.0.18","packages/peer-store":"10.0.19","packages/protocol-autonat":"1.0.21","packages/protocol-dcutr":"1.0.21","packages/protocol-echo":"1.0.7","packages/protocol-fetch":"1.0.18","packages/protocol-identify":"2.0.2","packages/protocol-perf":"3.0.24","packages/protocol-ping":"1.0.19","packages/pubsub":"9.0.19","packages/pubsub-floodsub":"9.0.20","packages/record":"4.0.2","packages/stream-multiplexer-mplex":"10.0.24","packages/transport-circuit-relay-v2":"1.0.24","packages/transport-tcp":"9.0.26","packages/transport-webrtc":"4.0.33","packages/transport-websockets":"8.0.24","packages/transport-webtransport":"4.0.32","packages/upnp-nat":"1.0.22","packages/utils":"5.4.2"} \ No newline at end of file +{"packages/connection-encrypter-plaintext":"1.0.24","packages/connection-encrypter-tls":"1.0.11","packages/crypto":"4.1.2","packages/interface":"1.4.0","packages/interface-compliance-tests":"5.4.5","packages/interface-internal":"1.2.2","packages/kad-dht":"12.0.17","packages/keychain":"4.0.15","packages/libp2p":"1.6.0","packages/logger":"4.0.13","packages/metrics-devtools":"0.0.1","packages/metrics-prometheus":"3.0.24","packages/metrics-simple":"1.0.2","packages/multistream-select":"5.1.10","packages/peer-collections":"5.2.2","packages/peer-discovery-bootstrap":"10.0.24","packages/peer-discovery-mdns":"10.0.24","packages/peer-id":"4.1.2","packages/peer-id-factory":"4.1.2","packages/peer-record":"7.0.18","packages/peer-store":"10.0.19","packages/protocol-autonat":"1.0.21","packages/protocol-dcutr":"1.0.21","packages/protocol-echo":"1.0.7","packages/protocol-fetch":"1.0.18","packages/protocol-identify":"2.0.2","packages/protocol-perf":"3.0.24","packages/protocol-ping":"1.0.19","packages/pubsub":"9.0.19","packages/pubsub-floodsub":"9.0.20","packages/record":"4.0.2","packages/stream-multiplexer-mplex":"10.0.24","packages/transport-circuit-relay-v2":"1.0.24","packages/transport-tcp":"9.0.26","packages/transport-webrtc":"4.0.33","packages/transport-websockets":"8.0.24","packages/transport-webtransport":"4.0.32","packages/upnp-nat":"1.0.22","packages/utils":"5.4.2"} diff --git a/.release-please.json b/.release-please.json index c558e0fcb0..8b8b5e462b 100644 --- a/.release-please.json +++ b/.release-please.json @@ -9,7 +9,6 @@ { "type": "refactor", "section": "Refactors", "hidden": false } ], "packages": { - "interop": {}, "packages/connection-encrypter-plaintext": {}, "packages/connection-encrypter-tls": {}, "packages/crypto": {}, @@ -20,6 +19,7 @@ "packages/keychain": {}, "packages/libp2p": {}, "packages/logger": {}, + "packages/metrics-devtools": {}, "packages/metrics-prometheus": {}, "packages/metrics-simple": {}, "packages/multistream-select": {}, diff --git a/packages/metrics-devtools/LICENSE b/packages/metrics-devtools/LICENSE new file mode 100644 index 0000000000..20ce483c86 --- /dev/null +++ b/packages/metrics-devtools/LICENSE @@ -0,0 +1,4 @@ +This project is dual licensed under MIT and Apache-2.0. + +MIT: https://www.opensource.org/licenses/mit +Apache-2.0: https://www.apache.org/licenses/license-2.0 diff --git a/packages/metrics-devtools/LICENSE-APACHE b/packages/metrics-devtools/LICENSE-APACHE new file mode 100644 index 0000000000..14478a3b60 --- /dev/null +++ b/packages/metrics-devtools/LICENSE-APACHE @@ -0,0 +1,5 @@ +Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. diff --git a/packages/metrics-devtools/LICENSE-MIT b/packages/metrics-devtools/LICENSE-MIT new file mode 100644 index 0000000000..72dc60d84b --- /dev/null +++ b/packages/metrics-devtools/LICENSE-MIT @@ -0,0 +1,19 @@ +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/packages/metrics-devtools/README.md b/packages/metrics-devtools/README.md new file mode 100644 index 0000000000..f862d9dc9b --- /dev/null +++ b/packages/metrics-devtools/README.md @@ -0,0 +1,68 @@ +# @libp2p/devtools-metrics + +[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io) +[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p) +[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p/main.yml?branch=main\&style=flat-square)](https://github.com/libp2p/js-libp2p/actions/workflows/main.yml?query=branch%3Amain) + +> Collect libp2p metrics and send them to browser DevTools + +# About + + + +Configure your browser-based libp2p node with DevTools metrics: + +```typescript +import { createLibp2p } from 'libp2p' +import { devToolsMetrics } from '@libp2p/devtools-metrics' + +const node = await createLibp2p({ + metrics: devToolsMetrics() +}) +``` + +Then use the [DevTools plugin](https://github.com/ipfs-shipyard/js-libp2p-devtools) +for Chrome or Firefox to inspect the state of your running node. + +# Install + +```console +$ npm i @libp2p/devtools-metrics +``` + +## Browser ` +``` + +# API Docs + +- + +# License + +Licensed under either of + +- Apache 2.0, ([LICENSE-APACHE](https://github.com/libp2p/js-libp2p/blob/main/packages/metrics-devtools/LICENSE-APACHE) / ) +- MIT ([LICENSE-MIT](https://github.com/libp2p/js-libp2p/blob/main/packages/metrics-devtools/LICENSE-MIT) / ) + +# Contribution + +Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. diff --git a/packages/metrics-devtools/package.json b/packages/metrics-devtools/package.json new file mode 100644 index 0000000000..1b3d8e0044 --- /dev/null +++ b/packages/metrics-devtools/package.json @@ -0,0 +1,63 @@ +{ + "name": "@libp2p/devtools-metrics", + "version": "0.0.1", + "description": "Collect libp2p metrics and send them to browser DevTools", + "author": "", + "license": "Apache-2.0 OR MIT", + "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/metrics-devtools#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/libp2p/js-libp2p.git" + }, + "bugs": { + "url": "https://github.com/libp2p/js-libp2p/issues" + }, + "publishConfig": { + "access": "public", + "provenance": true + }, + "type": "module", + "types": "./dist/src/index.d.ts", + "files": [ + "src", + "dist", + "!dist/test", + "!**/*.tsbuildinfo" + ], + "exports": { + ".": { + "types": "./dist/src/index.d.ts", + "import": "./dist/src/index.js" + } + }, + "eslintConfig": { + "extends": "ipfs", + "parserOptions": { + "project": true, + "sourceType": "module" + } + }, + "scripts": { + "clean": "aegir clean", + "lint": "aegir lint", + "dep-check": "aegir dep-check", + "doc-check": "aegir doc-check", + "build": "aegir build", + "test": "aegir test -t browser", + "test:chrome": "aegir test -t browser --cov" + }, + "dependencies": { + "@libp2p/interface": "^1.3.1", + "@libp2p/interface-internal": "^1.2.1", + "@libp2p/logger": "^4.0.12", + "@libp2p/simple-metrics": "^1.0.1", + "multiformats": "^13.1.0" + }, + "devDependencies": { + "@libp2p/peer-id-factory": "^4.1.1", + "aegir": "^42.2.5", + "race-event": "^1.3.0", + "sinon-ts": "^2.0.0" + }, + "sideEffects": false +} diff --git a/packages/metrics-devtools/src/index.ts b/packages/metrics-devtools/src/index.ts new file mode 100644 index 0000000000..a0118a4543 --- /dev/null +++ b/packages/metrics-devtools/src/index.ts @@ -0,0 +1,469 @@ +/** + * @packageDocumentation + * + * Configure your browser-based libp2p node with DevTools metrics: + * + * ```typescript + * import { createLibp2p } from 'libp2p' + * import { devToolsMetrics } from '@libp2p/devtools-metrics' + * + * const node = await createLibp2p({ + * metrics: devToolsMetrics() + * }) + * ``` + * + * Then use the [DevTools plugin](https://github.com/ipfs-shipyard/js-libp2p-devtools) + * for Chrome or Firefox to inspect the state of your running node. + */ + +import { start, stop } from '@libp2p/interface' +import { enable, disable } from '@libp2p/logger' +import { simpleMetrics } from '@libp2p/simple-metrics' +import { base64 } from 'multiformats/bases/base64' +import type { ComponentLogger, Connection, Libp2pEvents, Logger, Metrics, MultiaddrConnection, PeerId, Peer as PeerStorePeer, PeerStore, PeerUpdate, Stream, TypedEventEmitter } from '@libp2p/interface' +import type { TransportManager, Registrar, ConnectionManager } from '@libp2p/interface-internal' + +export const SOURCE_DEVTOOLS = '@libp2p/devtools-metrics:devtools' +export const SOURCE_SERVICE_WORKER = '@libp2p/devtools-metrics:worker' +export const SOURCE_CONTENT_SCRIPT = '@libp2p/devtools-metrics:content' +export const SOURCE_METRICS = '@libp2p/devtools-metrics:metrics' +export const LIBP2P_DEVTOOLS_METRICS_KEY = '________libp2p_devtools_metrics' + +// let devtools know we are here +Object.defineProperty(globalThis, LIBP2P_DEVTOOLS_METRICS_KEY, { + value: true, + enumerable: false, + writable: false +}) + +/** + * Sent when new metrics are available + */ +export interface MetricsMessage { + source: typeof SOURCE_METRICS + type: 'metrics' + metrics: Record +} + +/** + * This message represents the current state of the libp2p node + */ +export interface SelfMessage { + source: typeof SOURCE_METRICS + type: 'self' + peer: SelfPeer +} + +/** + * This message represents the current state of the libp2p node + */ +export interface PeersMessage { + source: typeof SOURCE_METRICS + type: 'peers' + peers: Peer[] +} + +/** + * Sent by the DevTools service worker to the DevTools panel when the inspected + * page has finished (re)loading + */ +export interface PageLoadedMessage { + source: '@libp2p/devtools-metrics:devtools' + type: 'page-loaded' + tabId: number +} + +/** + * Sent by the DevTools service worker to the DevTools panel when it has failed + * to send a message to the inspected page as there is no receiving end present. + * + * This normally means the content script has not been loaded due to the user + * not having granted permission for the script to run. + */ +export interface PermissionsErrorMessage { + source: '@libp2p/devtools-metrics:devtools' + type: 'permissions-error' + tabId: number +} + +/** + * This message is sent by DevTools when no `self` message has been received + */ +export interface IdentifyMessage { + source: '@libp2p/devtools-metrics:devtools' + type: 'identify' + tabId: number +} + +/** + * This message is sent by DevTools when no `self` message has been received + */ +export interface EnableDebugMessage { + source: '@libp2p/devtools-metrics:devtools' + type: 'debug' + namespace: string + tabId: number +} + +/** + * We cannot use the web extension API to copy text to the cliboard yet as it's + * not supported in Firefox yet, so get the page to do it + * + * @see https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#writing_to_the_clipboard + */ +export interface CopyToClipboardMessage { + source: '@libp2p/devtools-metrics:devtools' + type: 'copy-to-clipboard' + value: string + tabId: number +} + +/** + * Messages that are sent from the application page to the DevTools panel + */ +export type ApplicationMessage = MetricsMessage | SelfMessage | PeersMessage + +/** + * Messages that are sent from the service worker + */ +export type WorkerMessage = PageLoadedMessage | PermissionsErrorMessage + +/** + * Messages that are sent from the DevTools panel page to the application page + */ +export type DevToolsMessage = IdentifyMessage | EnableDebugMessage | CopyToClipboardMessage + +export interface SelfPeer { + /** + * The identifier of the peer + */ + id: string + + /** + * The list of multiaddrs the peer is listening on + */ + multiaddrs: string[] + + /** + * Any peer store tags the peer has + */ + tags: Record + + /** + * Any peer store metadata the peer has + */ + metadata: Record + + /** + * The protocols the peer supports + */ + protocols: string[] +} + +export interface Address { + /** + * The multiaddr this address represents + */ + multiaddr: string + + /** + * If `true`, this multiaddr came from a signed peer record + */ + isCertified?: boolean + + /** + * If `true`, the current node has an active connection to this peer via this + * address + */ + isConnected?: boolean +} + +export interface Peer { + /** + * The identifier of the remote peer + */ + id: string + + /** + * The list of addresses the peer has that we know about + */ + addresses: Address[] + + /** + * Any peer store tags the peer has + */ + tags: Record + + /** + * Any peer store metadata the peer has + */ + metadata: Record + + /** + * The protocols the peer supports, if known + */ + protocols: string[] +} + +export interface DevToolsMetricsInit { + /** + * How often to pass metrics to the DevTools panel + */ + intervalMs?: number +} + +export interface DevToolsMetricsComponents { + logger: ComponentLogger + events: TypedEventEmitter + peerId: PeerId + transportManager: TransportManager + registrar: Registrar + connectionManager: ConnectionManager + peerStore: PeerStore +} + +class DevToolsMetrics implements Metrics { + private readonly log: Logger + private readonly components: DevToolsMetricsComponents + private readonly simpleMetrics: Metrics + private readonly intervalMs?: number + + constructor (components: DevToolsMetricsComponents, init?: Partial) { + this.log = components.logger.forComponent('libp2p:devtools-metrics') + this.intervalMs = init?.intervalMs + this.components = components + + // collect information on current peers and sent it to the dev tools panel + this.onPeersUpdate = debounce(this.onPeersUpdate.bind(this), 1000) + this.onSelfUpdate = this.onSelfUpdate.bind(this) + this.onIncomingMessage = this.onIncomingMessage.bind(this) + + // collect metrics + this.simpleMetrics = simpleMetrics({ + intervalMs: this.intervalMs, + onMetrics: (metrics) => { + const message: MetricsMessage = { + source: SOURCE_METRICS, + type: 'metrics', + metrics + } + + this.log('post metrics message') + window.postMessage(message, '*') + } + })({}) + } + + trackMultiaddrConnection (maConn: MultiaddrConnection): void { + this.simpleMetrics.trackMultiaddrConnection(maConn) + } + + trackProtocolStream (stream: Stream, connection: Connection): void { + this.simpleMetrics.trackProtocolStream(stream, connection) + } + + registerMetric (name: any, options: any): any { + return this.simpleMetrics.registerMetric(name, options) + } + + registerMetricGroup (name: any, options: any): any { + return this.simpleMetrics.registerMetricGroup(name, options) + } + + registerCounter (name: any, options: any): any { + return this.simpleMetrics.registerCounter(name, options) + } + + registerCounterGroup (name: any, options: any): any { + return this.simpleMetrics.registerCounterGroup(name, options) + } + + async start (): Promise { + // send peer updates + this.components.events.addEventListener('peer:connect', this.onPeersUpdate) + this.components.events.addEventListener('peer:disconnect', this.onPeersUpdate) + this.components.events.addEventListener('peer:identify', this.onPeersUpdate) + this.components.events.addEventListener('peer:update', this.onPeersUpdate) + + // send node status updates + this.components.events.addEventListener('self:peer:update', this.onSelfUpdate) + + // process incoming messages from devtools + window.addEventListener('message', this.onIncomingMessage) + + // send metrics + await start(this.simpleMetrics) + } + + async stop (): Promise { + window.removeEventListener('message', this.onIncomingMessage) + this.components.events.removeEventListener('self:peer:update', this.onSelfUpdate) + this.components.events.removeEventListener('peer:connect', this.onPeersUpdate) + this.components.events.removeEventListener('peer:disconnect', this.onPeersUpdate) + this.components.events.removeEventListener('peer:identify', this.onPeersUpdate) + this.components.events.removeEventListener('peer:update', this.onPeersUpdate) + await stop(this.simpleMetrics) + } + + private onPeersUpdate (): void { + Promise.resolve().then(async () => { + const message: PeersMessage = { + source: SOURCE_METRICS, + type: 'peers', + peers: [] + } + + const connections = this.components.connectionManager.getConnectionsMap() + const connectedAddresses = [...connections.values()].flatMap(conn => conn).map(conn => conn.remoteAddr.toString()) + + for (const [peerId, conns] of connections.entries()) { + try { + const peer = await this.components.peerStore.get(peerId) + + message.peers.push({ + id: peerId.toString(), + addresses: peer.addresses.map(({ isCertified, multiaddr }) => { + const addr = multiaddr.toString() + + return { + multiaddr: addr, + isCertified, + isConnected: connectedAddresses.includes(addr) + } + }), + protocols: [...peer.protocols], + tags: toObject(peer.tags, (t) => t.value), + metadata: toObject(peer.metadata, (buf) => base64.encode(buf)) + }) + } catch (err) { + this.log.error('could not load peer data from peer store', err) + + message.peers.push({ + id: peerId.toString(), + addresses: conns.map(conn => { + const addr = conn.remoteAddr.toString() + + return { + multiaddr: addr, + isConnected: connectedAddresses.includes(addr) + } + }), + protocols: [], + tags: {}, + metadata: {} + }) + } + } + + window.postMessage(message, '*') + }) + .catch(err => { + this.log.error('error sending peers message', err) + }) + } + + private onSelfUpdate (evt: CustomEvent): void { + this.sendSelfUpdate(evt.detail.peer) + } + + private sendSelfUpdate (peer: PeerStorePeer): void { + Promise.resolve() + .then(async () => { + const message: SelfMessage = { + source: SOURCE_METRICS, + type: 'self', + peer: { + id: peer.id.toString(), + multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr.toString()), + protocols: [...peer.protocols], + tags: toObject(peer.tags, (t) => t.value), + metadata: toObject(peer.metadata, (buf) => base64.encode(buf)) + } + } + + this.log('post node update message') + window.postMessage(message, '*') + }) + .catch(err => { + this.log.error('error sending self update', err) + }) + } + + private onIncomingMessage (event: MessageEvent): void { + // Only accept messages from same frame + if (event.source !== window) { + return + } + + const message = event.data + + // Only accept messages of correct format (our messages) + if (message?.source !== SOURCE_DEVTOOLS) { + return + } + + // respond to identify request + if (message.type === 'identify') { + Promise.resolve() + .then(async () => { + const peer = await this.components.peerStore.get(this.components.peerId) + + this.sendSelfUpdate(peer) + // also send our current peer list + this.onPeersUpdate() + }) + .catch(err => { + this.log.error('error sending identify response', err) + }) + } + + // handle enabling/disabling debug namespaces + if (message.type === 'debug') { + if (message.namespace.length > 0) { + enable(message.namespace) + } else { + disable() + } + } + } +} + +export function devToolsMetrics (init?: Partial): (components: DevToolsMetricsComponents) => Metrics { + return (components) => { + return new DevToolsMetrics(components, init) + } +} + +function toObject (map: Map, transform: (value: T) => R): Record { + const output: Record = {} + + for (const [key, value] of map.entries()) { + output[key] = transform(value) + } + + return output +} + +function debounce (callback: () => void, wait: number = 100): () => void { + let timeout: ReturnType + let start: number | undefined + + return (): void => { + if (start == null) { + start = Date.now() + } + + if (timeout != null && Date.now() - start > wait) { + clearTimeout(timeout) + start = undefined + callback() + return + } + + clearTimeout(timeout) + timeout = setTimeout(() => { + start = undefined + callback() + }, wait) + } +} diff --git a/packages/metrics-devtools/test/index.spec.ts b/packages/metrics-devtools/test/index.spec.ts new file mode 100644 index 0000000000..d20ce2cbbf --- /dev/null +++ b/packages/metrics-devtools/test/index.spec.ts @@ -0,0 +1,86 @@ +import { TypedEventEmitter, start, stop } from '@libp2p/interface' +import { defaultLogger } from '@libp2p/logger' +import { createEd25519PeerId } from '@libp2p/peer-id-factory' +import { expect } from 'aegir/chai' +import { raceEvent } from 'race-event' +import { stubInterface, type StubbedInstance } from 'sinon-ts' +import { LIBP2P_DEVTOOLS_METRICS_KEY, SOURCE_METRICS, SOURCE_DEVTOOLS, devToolsMetrics, type ApplicationMessage } from '../src/index.js' +import type { ComponentLogger, Libp2pEvents, Metrics, PeerId, PeerStore } from '@libp2p/interface' +import type { ConnectionManager, Registrar, TransportManager } from '@libp2p/interface-internal' + +interface StubbedComponents { + logger: ComponentLogger + events: TypedEventEmitter + peerId: PeerId + transportManager: StubbedInstance + registrar: StubbedInstance + connectionManager: StubbedInstance + peerStore: StubbedInstance +} + +describe('devtools-metrics', () => { + let components: StubbedComponents + let metrics: Metrics + + beforeEach(async () => { + components = { + logger: defaultLogger(), + events: new TypedEventEmitter(), + peerId: await createEd25519PeerId(), + transportManager: stubInterface(), + registrar: stubInterface(), + connectionManager: stubInterface(), + peerStore: stubInterface() + } + + metrics = devToolsMetrics({ + intervalMs: 10 + })(components) + + await start(metrics) + }) + + afterEach(async () => { + await stop(metrics) + }) + + it('should broadcast metrics', async () => { + const event = await raceEvent>(window, 'message', AbortSignal.timeout(1000), { + filter: (evt) => { + return evt.data.source === SOURCE_METRICS && evt.data.type === 'metrics' + } + }) + + expect(event).to.have.nested.property('data.metrics') + }) + + it('should identify node', async () => { + components.transportManager.getListeners.returns([]) + components.registrar.getProtocols.returns([]) + components.peerStore.get.withArgs(components.peerId).resolves({ + id: components.peerId, + addresses: [], + metadata: new Map(), + protocols: [], + tags: new Map() + }) + + // devtools asks the node to reveal itself + window.postMessage({ + source: SOURCE_DEVTOOLS, + type: 'identify' + }, '*') + + const event = await raceEvent>(window, 'message', AbortSignal.timeout(1000), { + filter: (evt) => { + return evt.data.source === SOURCE_METRICS && evt.data.type === 'self' + } + }) + + expect(event).to.have.nested.property('data.peer.id') + }) + + it('should signal presence of metrics', () => { + expect(globalThis).to.have.property(LIBP2P_DEVTOOLS_METRICS_KEY).that.is.true() + }) +}) diff --git a/packages/metrics-devtools/tsconfig.json b/packages/metrics-devtools/tsconfig.json new file mode 100644 index 0000000000..4c8f70ddb3 --- /dev/null +++ b/packages/metrics-devtools/tsconfig.json @@ -0,0 +1,27 @@ +{ + "extends": "aegir/src/config/tsconfig.aegir.json", + "compilerOptions": { + "outDir": "dist" + }, + "include": [ + "src", + "test" + ], + "references": [ + { + "path": "../interface" + }, + { + "path": "../interface-internal" + }, + { + "path": "../logger" + }, + { + "path": "../peer-id-factory" + }, + { + "path": "../metrics-simple" + } + ] +} diff --git a/packages/metrics-devtools/typedoc.json b/packages/metrics-devtools/typedoc.json new file mode 100644 index 0000000000..f599dc728d --- /dev/null +++ b/packages/metrics-devtools/typedoc.json @@ -0,0 +1,5 @@ +{ + "entryPoints": [ + "./src/index.ts" + ] +}