mirror of
https://github.com/fluencelabs/js-libp2p-utils
synced 2025-04-24 23:22:30 +00:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
cacef402ee | ||
|
5bfad1908b | ||
|
4326d714d9 | ||
|
c206807805 | ||
|
e0552b5b6b |
74
.github/workflows/main.yml
vendored
Normal file
74
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
name: ci
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npm install
|
||||
- run: npx aegir lint
|
||||
- run: npx aegir ts -p check
|
||||
- run: npx aegir build
|
||||
- run: npx aegir dep-check
|
||||
- uses: ipfs/aegir/actions/bundle-size@master
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
test-node:
|
||||
needs: check
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, ubuntu-latest, macos-latest]
|
||||
node: [14, 15]
|
||||
fail-fast: true
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
- run: npm install
|
||||
- run: npx nyc --reporter=lcov aegir test -t node -- --bail
|
||||
- uses: codecov/codecov-action@v1
|
||||
test-chrome:
|
||||
needs: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npm install
|
||||
- run: npx aegir test -t browser -t webworker --bail
|
||||
test-firefox:
|
||||
needs: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npm install
|
||||
- run: npx aegir test -t browser -t webworker --bail -- --browsers FirefoxHeadless
|
||||
test-webkit:
|
||||
needs: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: microsoft/playwright-github-action@v1
|
||||
- run: npm install
|
||||
- run: npx aegir test -t browser -t webworker --bail -- --browser webkit
|
||||
test-electron-main:
|
||||
needs: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npm install
|
||||
- run: npx xvfb-maybe aegir test -t electron-main --bail
|
||||
test-electron-renderer:
|
||||
needs: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npm install
|
||||
- run: npx xvfb-maybe aegir test -t electron-renderer --bail
|
52
.travis.yml
52
.travis.yml
@ -1,52 +0,0 @@
|
||||
language: node_js
|
||||
cache: npm
|
||||
stages:
|
||||
- check
|
||||
- test
|
||||
- cov
|
||||
|
||||
node_js:
|
||||
- '10'
|
||||
- '12'
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
script: npx nyc -s npm run test:node -- --bail
|
||||
after_success: npx nyc report --reporter=text-lcov > coverage.lcov && npx codecov
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- os: windows
|
||||
filter_secrets: false
|
||||
cache: false
|
||||
|
||||
- stage: check
|
||||
script:
|
||||
- npx aegir commitlint --travis
|
||||
- npx aegir dep-check
|
||||
- npm run lint
|
||||
|
||||
- stage: test
|
||||
name: chrome
|
||||
addons:
|
||||
chrome: stable
|
||||
script: npx aegir test -t browser -t webworker
|
||||
|
||||
- stage: test
|
||||
name: firefox
|
||||
addons:
|
||||
firefox: latest
|
||||
script: npx aegir test -t browser -t webworker -- --browsers FirefoxHeadless
|
||||
|
||||
- stage: test
|
||||
name: electron
|
||||
services:
|
||||
- xvfb
|
||||
script:
|
||||
- npm run test:electron
|
||||
- npm run test:electron-renderer
|
||||
|
||||
notifications:
|
||||
email: false
|
@ -1,3 +1,12 @@
|
||||
# [0.3.0](https://github.com/libp2p/js-libp2p-utils/compare/v0.2.3...v0.3.0) (2021-04-08)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add types ([#16](https://github.com/libp2p/js-libp2p-utils/issues/16)) ([e0552b5](https://github.com/libp2p/js-libp2p-utils/commit/e0552b5b6b1d912a8f6f1e39b1a4b70fca91f547))
|
||||
|
||||
|
||||
|
||||
<a name="0.2.3"></a>
|
||||
## [0.2.3](https://github.com/libp2p/js-libp2p-utils/compare/v0.2.2...v0.2.3) (2020-11-30)
|
||||
|
||||
|
31
package.json
31
package.json
@ -1,10 +1,24 @@
|
||||
{
|
||||
"name": "libp2p-utils",
|
||||
"version": "0.2.3",
|
||||
"version": "0.3.0",
|
||||
"description": "Package to aggregate shared logic and dependencies for the libp2p ecosystem",
|
||||
"leadMaintainer": "Vasco Santos <santos.vasco10@gmail.com>",
|
||||
"main": "src/index.js",
|
||||
"types": "dist/src/index.d.ts",
|
||||
"typesVersions": {
|
||||
"*": {
|
||||
"src/*": [
|
||||
"dist/src/*",
|
||||
"dist/src/*/index"
|
||||
]
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"src",
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"prepare": "aegir build --no-bundle",
|
||||
"test": "aegir test",
|
||||
"test:browser": "aegir test -t browser",
|
||||
"test:node": "aegir test -t node",
|
||||
@ -29,18 +43,21 @@
|
||||
},
|
||||
"homepage": "https://github.com/libp2p/js-libp2p-utils#readme",
|
||||
"devDependencies": {
|
||||
"aegir": "^27.0.0",
|
||||
"@types/debug": "^4.1.5",
|
||||
"aegir": "^32.1.0",
|
||||
"it-pair": "^1.0.0",
|
||||
"it-pipe": "^1.1.0",
|
||||
"streaming-iterables": "^5.0.3"
|
||||
"libp2p-interfaces": "fluencelabs/js-libp2p-interfaces",
|
||||
"streaming-iterables": "^5.0.3",
|
||||
"util": "^0.12.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"abortable-iterator": "^3.0.0",
|
||||
"debug": "^4.2.0",
|
||||
"err-code": "^2.0.3",
|
||||
"ip-address": "^6.1.0",
|
||||
"debug": "^4.3.0",
|
||||
"err-code": "^3.0.1",
|
||||
"ip-address": "^7.1.0",
|
||||
"is-loopback-addr": "^1.0.0",
|
||||
"multiaddr": "^8.0.0",
|
||||
"multiaddr": "^9.0.1",
|
||||
"private-ip": "^2.1.1"
|
||||
},
|
||||
"contributors": [
|
||||
|
@ -2,6 +2,16 @@
|
||||
|
||||
const isPrivate = require('./multiaddr/is-private')
|
||||
|
||||
/**
|
||||
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef {Object} Address
|
||||
* @property {Multiaddr} multiaddr peer multiaddr.
|
||||
* @property {boolean} isCertified obtained from a signed peer record.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Compare function for array.sort().
|
||||
* This sort aims to move the private adresses to the end of the array.
|
||||
|
@ -1,5 +1,9 @@
|
||||
'use strict'
|
||||
|
||||
const debug = require('debug')
|
||||
const log = Object.assign(debug('libp2p:ip-port-to-multiaddr'), {
|
||||
error: debug('libp2p:ip-port-to-multiaddr:err')
|
||||
})
|
||||
const multiaddr = require('multiaddr')
|
||||
const errCode = require('err-code')
|
||||
const { Address4, Address6 } = require('ip-address')
|
||||
@ -21,25 +25,31 @@ function ipPortToMultiaddr (ip, port) {
|
||||
throw errCode(new Error(`invalid ip provided: ${ip}`), errors.ERR_INVALID_IP_PARAMETER)
|
||||
}
|
||||
|
||||
port = parseInt(port)
|
||||
if (typeof port === 'string') {
|
||||
port = parseInt(port)
|
||||
}
|
||||
|
||||
if (isNaN(port)) {
|
||||
throw errCode(new Error(`invalid port provided: ${port}`), errors.ERR_INVALID_PORT_PARAMETER)
|
||||
}
|
||||
|
||||
if (new Address4(ip).isValid()) {
|
||||
return multiaddr(`/ip4/${ip}/tcp/${port}`)
|
||||
}
|
||||
try {
|
||||
// Test valid IPv4
|
||||
new Address4(ip) // eslint-disable-line no-new
|
||||
return new multiaddr.Multiaddr(`/ip4/${ip}/tcp/${port}`)
|
||||
} catch {}
|
||||
|
||||
const ip6 = new Address6(ip)
|
||||
|
||||
if (ip6.isValid()) {
|
||||
try {
|
||||
// Test valid IPv6
|
||||
const ip6 = new Address6(ip)
|
||||
return ip6.is4()
|
||||
? multiaddr(`/ip4/${ip6.to4().correctForm()}/tcp/${port}`)
|
||||
: multiaddr(`/ip6/${ip}/tcp/${port}`)
|
||||
? new multiaddr.Multiaddr(`/ip4/${ip6.to4().correctForm()}/tcp/${port}`)
|
||||
: new multiaddr.Multiaddr(`/ip6/${ip}/tcp/${port}`)
|
||||
} catch (err) {
|
||||
const errMsg = `invalid ip:port for creating a multiaddr: ${ip}:${port}`
|
||||
log.error(errMsg)
|
||||
throw errCode(new Error(errMsg), errors.ERR_INVALID_IP)
|
||||
}
|
||||
|
||||
throw errCode(new Error(`invalid ip:port for creating a multiaddr: ${ip}:${port}`), errors.ERR_INVALID_IP)
|
||||
}
|
||||
|
||||
module.exports = ipPortToMultiaddr
|
||||
|
@ -1,7 +1,12 @@
|
||||
'use strict'
|
||||
|
||||
// @ts-ignore is-loopback-addr does not publish types
|
||||
const isLoopbackAddr = require('is-loopback-addr')
|
||||
|
||||
/**
|
||||
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||
*/
|
||||
|
||||
/**
|
||||
* Check if a given multiaddr is a loopback address.
|
||||
*
|
||||
|
@ -1,7 +1,12 @@
|
||||
'use strict'
|
||||
|
||||
// @ts-ignore private-ip does not publish types
|
||||
const isIpPrivate = require('private-ip')
|
||||
|
||||
/**
|
||||
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||
*/
|
||||
|
||||
/**
|
||||
* Check if a given multiaddr has a private address.
|
||||
*
|
||||
|
@ -1,24 +1,40 @@
|
||||
'use strict'
|
||||
|
||||
const abortable = require('abortable-iterator')
|
||||
const log = require('debug')('libp2p:stream:converter')
|
||||
const { source: abortable } = require('abortable-iterator')
|
||||
const debug = require('debug')
|
||||
const log = debug('libp2p:stream:converter')
|
||||
|
||||
/**
|
||||
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||
*
|
||||
* @typedef {Object} Timeline
|
||||
* @property {number} open - connection opening timestamp.
|
||||
* @property {number} [upgraded] - connection upgraded timestamp.
|
||||
* @property {number} [close]
|
||||
*/
|
||||
|
||||
/**
|
||||
* Convert a duplex iterable into a MultiaddrConnection.
|
||||
* https://github.com/libp2p/interface-transport#multiaddrconnection
|
||||
*
|
||||
* @param {object} streamProperties
|
||||
* @param {DuplexStream} streamProperties.stream
|
||||
* @param {MuxedStream} streamProperties.stream
|
||||
* @param {Multiaddr} streamProperties.remoteAddr
|
||||
* @param {Multiaddr} streamProperties.localAddr
|
||||
* @param {object} [options]
|
||||
* @param {AbortSignal} [options.signal]
|
||||
* @returns {import('libp2p-interfaces/src/transport/types').MultiaddrConnection}
|
||||
*/
|
||||
function streamToMaConnection ({ stream, remoteAddr, localAddr }, options = {}) {
|
||||
const { sink, source } = stream
|
||||
const maConn = {
|
||||
/**
|
||||
* @param {Uint8Array} source
|
||||
*/
|
||||
async sink (source) {
|
||||
if (options.signal) {
|
||||
// @ts-ignore ts infers source template will be a number
|
||||
source = abortable(source, options.signal)
|
||||
}
|
||||
|
||||
@ -35,16 +51,15 @@ function streamToMaConnection ({ stream, remoteAddr, localAddr }, options = {})
|
||||
}
|
||||
close()
|
||||
},
|
||||
|
||||
source: options.signal ? abortable(source, options.signal) : source,
|
||||
conn: stream,
|
||||
localAddr,
|
||||
remoteAddr,
|
||||
timeline: { open: Date.now() },
|
||||
|
||||
/** @type {Timeline} */
|
||||
timeline: { open: Date.now(), close: undefined },
|
||||
close () {
|
||||
sink([])
|
||||
close()
|
||||
sink(new Uint8Array(0))
|
||||
return close()
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,6 +67,7 @@ function streamToMaConnection ({ stream, remoteAddr, localAddr }, options = {})
|
||||
if (!maConn.timeline.close) {
|
||||
maConn.timeline.close = Date.now()
|
||||
}
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
return maConn
|
||||
|
@ -10,44 +10,44 @@ describe('address-sort', () => {
|
||||
it('should sort public addresses first', () => {
|
||||
const addresses = [
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/127.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'),
|
||||
isCertified: false
|
||||
},
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/30.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'),
|
||||
isCertified: false
|
||||
},
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/31.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'),
|
||||
isCertified: false
|
||||
}
|
||||
]
|
||||
|
||||
const sortedAddresses = publicAddressesFirst(addresses)
|
||||
expect(sortedAddresses[0].multiaddr.equals(multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[1].multiaddr.equals(multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[2].multiaddr.equals(multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[0].multiaddr.equals(new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[1].multiaddr.equals(new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[2].multiaddr.equals(new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
|
||||
})
|
||||
|
||||
it('should sort public certified addresses first', () => {
|
||||
const addresses = [
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/127.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'),
|
||||
isCertified: false
|
||||
},
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/30.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'),
|
||||
isCertified: false
|
||||
},
|
||||
{
|
||||
multiaddr: multiaddr('/ip4/31.0.0.1/tcp/4000'),
|
||||
multiaddr: new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'),
|
||||
isCertified: true
|
||||
}
|
||||
]
|
||||
|
||||
const sortedAddresses = publicAddressesFirst(addresses)
|
||||
expect(sortedAddresses[0].multiaddr.equals(multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[1].multiaddr.equals(multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[2].multiaddr.equals(multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[0].multiaddr.equals(new multiaddr.Multiaddr('/ip4/31.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[1].multiaddr.equals(new multiaddr.Multiaddr('/ip4/30.0.0.1/tcp/4000'))).to.eql(true)
|
||||
expect(sortedAddresses[2].multiaddr.equals(new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/4000'))).to.eql(true)
|
||||
})
|
||||
})
|
||||
|
@ -9,15 +9,15 @@ const arrayEquals = require('../src/array-equals')
|
||||
describe('non primitive array equals', () => {
|
||||
it('returns true if two arrays of multiaddrs are equal', () => {
|
||||
const a = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
const b = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
expect(arrayEquals(a, b)).to.eql(true)
|
||||
@ -25,15 +25,15 @@ describe('non primitive array equals', () => {
|
||||
|
||||
it('returns true if two arrays of multiaddrs have the same content but different orders', () => {
|
||||
const a = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
const b = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
expect(arrayEquals(a, b)).to.eql(true)
|
||||
@ -41,15 +41,15 @@ describe('non primitive array equals', () => {
|
||||
|
||||
it('returns false if two arrays of multiaddrs are different', () => {
|
||||
const a = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
const b = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8001'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8001'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
expect(arrayEquals(a, b)).to.eql(false)
|
||||
@ -57,14 +57,14 @@ describe('non primitive array equals', () => {
|
||||
|
||||
it('returns false if two arrays of multiaddrs are partially equal, but different lengths', () => {
|
||||
const a = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/3000/ws'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
const b = [
|
||||
multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
multiaddr('/dns4/test.libp2p.io')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/8000'),
|
||||
new multiaddr.Multiaddr('/dns4/test.libp2p.io')
|
||||
]
|
||||
|
||||
expect(arrayEquals(a, b)).to.eql(false)
|
||||
|
@ -9,10 +9,10 @@ const isLoopback = require('../../src/multiaddr/is-loopback')
|
||||
describe('multiaddr isLoopback', () => {
|
||||
it('identifies loopback ip4 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip4/127.0.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/127.0.1.1/tcp/1000'),
|
||||
multiaddr('/ip4/127.1.1.1/tcp/1000'),
|
||||
multiaddr('/ip4/127.255.255.255/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.0.1.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.1.1.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/127.255.255.255/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isLoopback(ma)).to.eql(true)
|
||||
})
|
||||
@ -20,10 +20,10 @@ describe('multiaddr isLoopback', () => {
|
||||
|
||||
it('identifies non loopback ip4 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip4/101.0.26.90/tcp/1000'),
|
||||
multiaddr('/ip4/10.0.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/192.168.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/172.16.0.1/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip4/101.0.26.90/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/10.0.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/192.168.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/172.16.0.1/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isLoopback(ma)).to.eql(false)
|
||||
})
|
||||
@ -31,7 +31,7 @@ describe('multiaddr isLoopback', () => {
|
||||
|
||||
it('identifies loopback ip6 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip6/::1/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip6/::1/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isLoopback(ma)).to.eql(true)
|
||||
})
|
||||
@ -39,8 +39,8 @@ describe('multiaddr isLoopback', () => {
|
||||
|
||||
it('identifies non loopback ip6 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
multiaddr('/ip6/::/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip6/::/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isLoopback(ma)).to.eql(false)
|
||||
})
|
||||
@ -48,8 +48,8 @@ describe('multiaddr isLoopback', () => {
|
||||
|
||||
it('identifies other multiaddrs as not loopback addresses', () => {
|
||||
[
|
||||
multiaddr('/dns4/wss0.bootstrap.libp2p.io/tcp/443'),
|
||||
multiaddr('/dns6/wss0.bootstrap.libp2p.io/tcp/443')
|
||||
new multiaddr.Multiaddr('/dns4/wss0.bootstrap.libp2p.io/tcp/443'),
|
||||
new multiaddr.Multiaddr('/dns6/wss0.bootstrap.libp2p.io/tcp/443')
|
||||
].forEach(ma => {
|
||||
expect(isLoopback(ma)).to.eql(false)
|
||||
})
|
||||
|
@ -9,10 +9,10 @@ const isPrivate = require('../../src/multiaddr/is-private')
|
||||
describe('multiaddr isPrivate', () => {
|
||||
it('identifies private ip4 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip4/127.0.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/10.0.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/192.168.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/172.16.0.1/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip4/127.0.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/10.0.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/192.168.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/172.16.0.1/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isPrivate(ma)).to.eql(true)
|
||||
})
|
||||
@ -20,10 +20,10 @@ describe('multiaddr isPrivate', () => {
|
||||
|
||||
it('identifies public ip4 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip4/101.0.26.90/tcp/1000'),
|
||||
multiaddr('/ip4/40.1.20.9/tcp/1000'),
|
||||
multiaddr('/ip4/92.168.0.1/tcp/1000'),
|
||||
multiaddr('/ip4/2.16.0.1/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip4/101.0.26.90/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/40.1.20.9/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/92.168.0.1/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip4/2.16.0.1/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isPrivate(ma)).to.eql(false)
|
||||
})
|
||||
@ -31,8 +31,8 @@ describe('multiaddr isPrivate', () => {
|
||||
|
||||
it('identifies private ip6 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip6/fd52:8342:fc46:6c91:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
multiaddr('/ip6/fd52:8342:fc46:6c91:3ac9:86ff:fe31:1/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip6/fd52:8342:fc46:6c91:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip6/fd52:8342:fc46:6c91:3ac9:86ff:fe31:1/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isPrivate(ma)).to.eql(true)
|
||||
})
|
||||
@ -40,8 +40,8 @@ describe('multiaddr isPrivate', () => {
|
||||
|
||||
it('identifies public ip6 multiaddrs', () => {
|
||||
[
|
||||
multiaddr('/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
multiaddr('/ip6/2000:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000')
|
||||
new multiaddr.Multiaddr('/ip6/2001:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000'),
|
||||
new multiaddr.Multiaddr('/ip6/2000:8a0:7ac5:4201:3ac9:86ff:fe31:7095/tcp/1000')
|
||||
].forEach(ma => {
|
||||
expect(isPrivate(ma)).to.eql(false)
|
||||
})
|
||||
@ -49,8 +49,8 @@ describe('multiaddr isPrivate', () => {
|
||||
|
||||
it('identifies other multiaddrs as not private addresses', () => {
|
||||
[
|
||||
multiaddr('/dns4/wss0.bootstrap.libp2p.io/tcp/443'),
|
||||
multiaddr('/dns6/wss0.bootstrap.libp2p.io/tcp/443')
|
||||
new multiaddr.Multiaddr('/dns4/wss0.bootstrap.libp2p.io/tcp/443'),
|
||||
new multiaddr.Multiaddr('/dns6/wss0.bootstrap.libp2p.io/tcp/443')
|
||||
].forEach(ma => {
|
||||
expect(isPrivate(ma)).to.eql(false)
|
||||
})
|
||||
|
@ -12,8 +12,8 @@ const streamToMaConn = require('../src/stream-to-ma-conn')
|
||||
describe('Convert stream into a multiaddr connection', () => {
|
||||
it('converts a stream and adds the provided metadata', () => {
|
||||
const stream = pair()
|
||||
const localAddr = multiaddr('/ip4/101.45.75.219/tcp/6000')
|
||||
const remoteAddr = multiaddr('/ip4/100.46.74.201/tcp/6002')
|
||||
const localAddr = new multiaddr.Multiaddr('/ip4/101.45.75.219/tcp/6000')
|
||||
const remoteAddr = new multiaddr.Multiaddr('/ip4/100.46.74.201/tcp/6002')
|
||||
|
||||
const maConn = streamToMaConn({
|
||||
stream,
|
||||
|
9
tsconfig.json
Normal file
9
tsconfig.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"extends": "aegir/src/config/tsconfig.aegir.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "dist"
|
||||
},
|
||||
"include": [
|
||||
"src"
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user