diff --git a/.aegir.js b/.aegir.js index aaa4bc2..86189db 100644 --- a/.aegir.js +++ b/.aegir.js @@ -1,5 +1,5 @@ import { Multiaddr } from '@multiformats/multiaddr' -import { mockRegistrar, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockRegistrar, mockUpgrader } from '@libp2p/interface-mocks' import { pipe }from 'it-pipe' /** @type {import('aegir/types').PartialOptions} */ diff --git a/README.md b/README.md index 98c4baa..bb1fa18 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,34 @@ -# js-libp2p-websockets - -[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) -[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) -[![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23ipfs) -[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io) -[![Coverage Status](https://coveralls.io/repos/github/libp2p/js-libp2p-websockets/badge.svg?branch=master)](https://coveralls.io/github/libp2p/js-libp2p-websockets?branch=master) -[![Build Status](https://github.com/libp2p/js-libp2p-websockets/actions/workflows/js-test-and-release.yml/badge.svg?branch=main)](https://github.com/libp2p/js-libp2p-websockets/actions/workflows/js-test-and-release.yml) -[![Dependency Status](https://david-dm.org/libp2p/js-libp2p-websockets.svg?style=flat-square)](https://david-dm.org/libp2p/js-libp2p-websockets) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) -![](https://img.shields.io/badge/Node.js-%3E%3D14.0.0-orange.svg?style=flat-square) +# @libp2p/websockets -[![](https://github.com/raw/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport) -[![](https://github.com/raw/libp2p/interface-connection/master/img/badge.png)](https://github.com/libp2p/interface-connection) +[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/) +[![IRC](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p) +[![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-websockets.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-websockets) +[![CI](https://img.shields.io/github/workflow/status/libp2p/js-libp2p-interfaces/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/libp2p/js-libp2p-websockets/actions/workflows/js-test-and-release.yml) -> JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport interface +> JavaScript implementation of the WebSockets module that libp2p uses and that implements the interface-transport spec -## Table of Contents +## Table of contents +- [Install](#install) - [Description](#description) - [Usage](#usage) -- [Install](#install) - - [npm](#npm) - [Constructor properties](#constructor-properties) - [Libp2p Usage Example](#libp2p-usage-example) - [API](#api) - [Transport](#transport) - [Connection](#connection) - [License](#license) - - [Contribution](#contribution) +- [Contribution](#contribution) + +## Install + +```console +$ npm i @libp2p/websockets +``` + +[![](https://github.com/raw/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport) +[![](https://github.com/raw/libp2p/interface-connection/master/img/badge.png)](https://github.com/libp2p/interface-connection) ## Description @@ -35,10 +36,6 @@ ## Usage -## Install - -### npm - ```sh > npm i @libp2p/websockets ``` @@ -56,10 +53,10 @@ const properties = { const ws = new WS(properties) ``` -| Name | Type | Description | Default | -|------|------|-------------|---------| -| upgrader | [`Upgrader`](https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-interfaces/src/transport#upgrader) | connection upgrader object with `upgradeOutbound` and `upgradeInbound` | **REQUIRED** | -| filter | `(multiaddrs: Array) => Array` | override transport addresses filter | **Browser:** DNS+WSS multiaddrs / **Node.js:** DNS+{WS, WSS} multiaddrs | +| Name | Type | Description | Default | +| -------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| upgrader | [`Upgrader`](https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-interfaces/src/transport#upgrader) | connection upgrader object with `upgradeOutbound` and `upgradeInbound` | **REQUIRED** | +| filter | `(multiaddrs: Array) => Array` | override transport addresses filter | **Browser:** DNS+WSS multiaddrs / **Node.js:** DNS+{WS, WSS} multiaddrs | You can create your own address filters for this transports, or rely in the filters [provided](./src/filters.js). @@ -114,9 +111,9 @@ For more information see [libp2p/js-libp2p/doc/CONFIGURATION.md#customizing-tran Licensed under either of - * Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / http://www.apache.org/licenses/LICENSE-2.0) - * MIT ([LICENSE-MIT](LICENSE-MIT) / http://opensource.org/licenses/MIT) +- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / ) +- MIT ([LICENSE-MIT](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/package.json b/package.json index 0ecedba..82c9455 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,11 @@ ], "exports": { ".": { + "types": "./src/index.d.ts", "import": "./dist/src/index.js" }, "./filters": { + "types": "./dist/src/filters.d.ts", "import": "./dist/src/filters.js" } }, @@ -152,7 +154,9 @@ "release": "aegir release" }, "dependencies": { - "@libp2p/interfaces": "^2.0.1", + "@libp2p/interface-connection": "^1.0.1", + "@libp2p/interface-transport": "^1.0.0", + "@libp2p/interfaces": "^3.0.1", "@libp2p/logger": "^1.1.3", "@libp2p/utils": "^1.0.10", "@multiformats/mafmt": "^11.0.2", @@ -166,9 +170,10 @@ "wherearewe": "^1.0.0" }, "devDependencies": { - "@libp2p/interface-compliance-tests": "^2.0.1", + "@libp2p/interface-mocks": "^1.0.1", + "@libp2p/interface-transport-compliance-tests": "^1.0.0", "@types/ws": "^8.2.2", - "aegir": "^37.0.12", + "aegir": "^37.2.0", "is-loopback-addr": "^2.0.1", "it-all": "^1.0.6", "it-drain": "^1.0.5", diff --git a/src/index.ts b/src/index.ts index c55c169..b2640c7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,7 +7,7 @@ import env from 'wherearewe' import { createListener } from './listener.js' import { socketToMaConn } from './socket-to-conn.js' import * as filters from './filters.js' -import { Transport, MultiaddrFilter, symbol, CreateListenerOptions, DialOptions } from '@libp2p/interfaces/transport' +import { Transport, MultiaddrFilter, symbol, CreateListenerOptions, DialOptions } from '@libp2p/interface-transport' import type { AbortOptions } from '@libp2p/interfaces' import type { Multiaddr } from '@multiformats/multiaddr' import type { DuplexWebSocket } from 'it-ws/duplex' diff --git a/src/listener.ts b/src/listener.ts index b3bd61e..ef0b8a3 100644 --- a/src/listener.ts +++ b/src/listener.ts @@ -4,12 +4,12 @@ import { createServer } from 'it-ws/server' import { logger } from '@libp2p/logger' import { socketToMaConn } from './socket-to-conn.js' import { ipPortToMultiaddr as toMultiaddr } from '@libp2p/utils/ip-port-to-multiaddr' -import type { Listener, ListenerEvents, CreateListenerOptions } from '@libp2p/interfaces/transport' +import type { Listener, ListenerEvents, CreateListenerOptions } from '@libp2p/interface-transport' import type { Server } from 'http' import type { WebSocketServer } from 'it-ws/server' import type { DuplexWebSocket } from 'it-ws/duplex' import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' const log = logger('libp2p:websockets:listener') diff --git a/src/socket-to-conn.ts b/src/socket-to-conn.ts index 18a854a..bc5d3f2 100644 --- a/src/socket-to-conn.ts +++ b/src/socket-to-conn.ts @@ -3,7 +3,7 @@ import { CLOSE_TIMEOUT } from './constants.js' import pTimeout from 'p-timeout' import { logger } from '@libp2p/logger' import type { AbortOptions } from '@libp2p/interfaces' -import type { MultiaddrConnection } from '@libp2p/interfaces/transport' +import type { MultiaddrConnection } from '@libp2p/interface-connection' import type { Multiaddr } from '@multiformats/multiaddr' import type { DuplexWebSocket } from 'it-ws/duplex' diff --git a/test/browser.ts b/test/browser.ts index 60d1035..d788fbc 100644 --- a/test/browser.ts +++ b/test/browser.ts @@ -6,9 +6,9 @@ import { pipe } from 'it-pipe' import all from 'it-all' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { WebSockets } from '../src/index.js' -import { mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockUpgrader } from '@libp2p/interface-mocks' import env from 'wherearewe' -import type { Connection } from '@libp2p/interfaces/connection' +import type { Connection } from '@libp2p/interface-connection' const protocol = '/echo/1.0.0' diff --git a/test/compliance.node.ts b/test/compliance.node.ts index 4abeab9..893d15f 100644 --- a/test/compliance.node.ts +++ b/test/compliance.node.ts @@ -1,6 +1,6 @@ /* eslint-env mocha */ -import tests from '@libp2p/interface-compliance-tests/transport' +import tests from '@libp2p/interface-transport-compliance-tests' import { Multiaddr } from '@multiformats/multiaddr' import http from 'http' import { WebSockets } from '../src/index.js' diff --git a/test/node.ts b/test/node.ts index d600256..6bf73b8 100644 --- a/test/node.ts +++ b/test/node.ts @@ -10,13 +10,13 @@ import { isLoopbackAddr } from 'is-loopback-addr' import all from 'it-all' import { pipe } from 'it-pipe' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' -import { mockRegistrar, mockUpgrader } from '@libp2p/interface-compliance-tests/mocks' +import { mockRegistrar, mockUpgrader } from '@libp2p/interface-mocks' import defer from 'p-defer' import waitFor from 'p-wait-for' import { WebSockets } from '../src/index.js' import * as filters from '../src/filters.js' import drain from 'it-drain' -import type { Listener } from '@libp2p/interfaces/transport' +import type { Listener } from '@libp2p/interface-transport' import './compliance.node.js'