diff --git a/package.json b/package.json index f4da3b6..ea2ead7 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "pre-commit": "^1.2.2" }, "dependencies": { - "multiaddr": "^2.1.1" + "multiaddr": "^2.1.3" }, "contributors": [ "David Dias ", @@ -47,4 +47,4 @@ "Jeromy Johnson ", "dignifiedquire " ] -} \ No newline at end of file +} diff --git a/src/index.js b/src/index.js index d96ac3e..8266d2b 100644 --- a/src/index.js +++ b/src/index.js @@ -7,7 +7,9 @@ var TCP = and(IP, base('tcp')) var UDP = and(IP, base('udp')) var UTP = and(UDP, base('utp')) var WebSockets = and(TCP, base('ws')) +var HTTP = and(TCP, base('http')) var WebRTCStar = and(base('libp2p-webrtc-star'), WebSockets, base('ipfs')) +var WebRTCDirect = and(base('libp2p-webrtc-direct'), HTTP) var Reliable = or(WebSockets, TCP, UTP) // required cause some transports are already IPFS aware (like WebRTCStar) @@ -22,8 +24,10 @@ exports.IP = IP exports.TCP = TCP exports.UDP = UDP exports.UTP = UTP +exports.HTTP = HTTP exports.WebSockets = WebSockets exports.WebRTCStar = WebRTCStar +exports.WebRTCDirect = WebRTCDirect exports.Reliable = Reliable exports.IPFS = IPFS diff --git a/test/index.spec.js b/test/index.spec.js index 7bbe80c..43d91b2 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -56,6 +56,11 @@ describe('multiaddr validation', function () { '/libp2p-webrtc-star/ip6/::/tcp/0/ws/ipfs/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo5' ] + var goodWebRTCDirect = [ + '/libp2p-webrtc-direct/ip4/1.2.3.4/tcp/3456/http', + '/libp2p-webrtc-direct/ip6/::/tcp/0/http' + ] + var badWS = [ '/ip4/0.0.0.0/tcp/12345/udp/2222/ws', '/ip6/::/ip4/0.0.0.0/udp/1234/ws' @@ -120,6 +125,11 @@ describe('multiaddr validation', function () { assertMismatches(mafmt.WebRTCStar, goodIP, goodUDP, badWS) }) + it('WebRTC-direct validation', function () { + assertMatches(mafmt.WebRTCDirect, goodWebRTCDirect) + assertMismatches(mafmt.WebRTCDirect, goodIP, goodUDP, badWS) + }) + it('IPFS validation', function () { assertMatches(mafmt.IPFS, goodIPFS) })