@libp2p/webrtc 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +17 -18
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/pb/message.d.ts +20 -0
- package/dist/src/pb/message.d.ts.map +1 -0
- package/dist/src/pb/message.js +73 -0
- package/dist/src/pb/message.js.map +1 -0
- package/dist/src/private-to-private/handler.d.ts.map +1 -0
- package/dist/src/{peer_transport → private-to-private}/handler.js +9 -9
- package/dist/src/private-to-private/handler.js.map +1 -0
- package/dist/src/private-to-private/listener.d.ts.map +1 -0
- package/dist/src/private-to-private/listener.js.map +1 -0
- package/dist/src/{peer_transport/pb/index.d.ts → private-to-private/pb/message.d.ts} +2 -2
- package/dist/src/private-to-private/pb/message.d.ts.map +1 -0
- package/dist/src/{peer_transport/pb/index.js → private-to-private/pb/message.js} +1 -1
- package/dist/src/private-to-private/pb/message.js.map +1 -0
- package/dist/src/private-to-private/transport.d.ts.map +1 -0
- package/dist/src/private-to-private/transport.js.map +1 -0
- package/dist/src/{peer_transport → private-to-private}/util.d.ts +3 -4
- package/dist/src/private-to-private/util.d.ts.map +1 -0
- package/dist/src/{peer_transport → private-to-private}/util.js +3 -5
- package/dist/src/private-to-private/util.js.map +1 -0
- package/dist/src/private-to-public/options.d.ts.map +1 -0
- package/dist/src/private-to-public/options.js.map +1 -0
- package/dist/src/private-to-public/sdp.d.ts.map +1 -0
- package/dist/src/{sdp.js → private-to-public/sdp.js} +1 -1
- package/dist/src/private-to-public/sdp.js.map +1 -0
- package/dist/src/private-to-public/transport.d.ts.map +1 -0
- package/dist/src/{transport.js → private-to-public/transport.js} +5 -5
- package/dist/src/private-to-public/transport.js.map +1 -0
- package/dist/src/private-to-public/util.d.ts +2 -0
- package/dist/src/private-to-public/util.d.ts.map +1 -0
- package/dist/src/private-to-public/util.js +3 -0
- package/dist/src/private-to-public/util.js.map +1 -0
- package/dist/src/stream.d.ts +2 -2
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +16 -16
- package/dist/src/stream.js.map +1 -1
- package/dist/src/util.d.ts +1 -1
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +3 -2
- package/dist/src/util.js.map +1 -1
- package/package.json +2 -5
- package/src/index.ts +3 -3
- package/src/{message.proto → pb/message.proto} +2 -4
- package/src/pb/message.ts +92 -0
- package/src/{peer_transport → private-to-private}/handler.ts +9 -9
- package/src/{peer_transport/pb/index.ts → private-to-private/pb/message.ts} +1 -1
- package/src/{peer_transport → private-to-private}/util.ts +5 -8
- package/src/{sdp.ts → private-to-public/sdp.ts} +1 -1
- package/src/{transport.ts → private-to-public/transport.ts} +5 -5
- package/src/private-to-public/util.ts +3 -0
- package/src/stream.ts +18 -18
- package/src/util.ts +5 -3
- package/dist/proto_ts/message.d.ts +0 -56
- package/dist/proto_ts/message.d.ts.map +0 -1
- package/dist/proto_ts/message.js +0 -86
- package/dist/proto_ts/message.js.map +0 -1
- package/dist/src/options.d.ts.map +0 -1
- package/dist/src/options.js.map +0 -1
- package/dist/src/peer_transport/handler.d.ts.map +0 -1
- package/dist/src/peer_transport/handler.js.map +0 -1
- package/dist/src/peer_transport/listener.d.ts.map +0 -1
- package/dist/src/peer_transport/listener.js.map +0 -1
- package/dist/src/peer_transport/pb/index.d.ts.map +0 -1
- package/dist/src/peer_transport/pb/index.js.map +0 -1
- package/dist/src/peer_transport/transport.d.ts.map +0 -1
- package/dist/src/peer_transport/transport.js.map +0 -1
- package/dist/src/peer_transport/util.d.ts.map +0 -1
- package/dist/src/peer_transport/util.js.map +0 -1
- package/dist/src/sdp.d.ts.map +0 -1
- package/dist/src/sdp.js.map +0 -1
- package/dist/src/transport.d.ts.map +0 -1
- package/dist/src/transport.js.map +0 -1
- package/proto_ts/message.ts +0 -106
- /package/dist/src/{peer_transport → private-to-private}/handler.d.ts +0 -0
- /package/dist/src/{peer_transport → private-to-private}/listener.d.ts +0 -0
- /package/dist/src/{peer_transport → private-to-private}/listener.js +0 -0
- /package/dist/src/{peer_transport → private-to-private}/transport.d.ts +0 -0
- /package/dist/src/{peer_transport → private-to-private}/transport.js +0 -0
- /package/dist/src/{options.d.ts → private-to-public/options.d.ts} +0 -0
- /package/dist/src/{options.js → private-to-public/options.js} +0 -0
- /package/dist/src/{sdp.d.ts → private-to-public/sdp.d.ts} +0 -0
- /package/dist/src/{transport.d.ts → private-to-public/transport.d.ts} +0 -0
- /package/src/{peer_transport → private-to-private}/listener.ts +0 -0
- /package/src/{peer_transport/pb/index.proto → private-to-private/pb/message.proto} +0 -0
- /package/src/{peer_transport → private-to-private}/transport.ts +0 -0
- /package/src/{options.ts → private-to-public/options.ts} +0 -0
package/dist/src/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAA+B,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"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"}
|
package/dist/src/util.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
+
export declare const isFirefox: boolean;
|
|
1
2
|
export declare const nopSource: () => AsyncGenerator<Uint8Array, any, unknown>;
|
|
2
3
|
export declare const nopSink: (_: any) => Promise<void>;
|
|
3
|
-
export declare const genUfrag: (len: number) => string;
|
|
4
4
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/src/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,SAAS,SAAoD,CAAA;AAE1E,eAAO,MAAM,SAAS,QAA4B,eAAe,UAAU,EAAE,GAAG,EAAE,OAAO,CAAI,CAAA;AAE7F,eAAO,MAAM,OAAO,MAAa,GAAG,KAAG,QAAQ,IAAI,CAAO,CAAA"}
|
package/dist/src/util.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { detect } from 'detect-browser';
|
|
2
|
+
const browser = detect();
|
|
3
|
+
export const isFirefox = ((browser != null) && browser.name === 'firefox');
|
|
1
4
|
export const nopSource = async function* nop() { };
|
|
2
5
|
export const nopSink = async (_) => { };
|
|
3
|
-
const charset = Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/');
|
|
4
|
-
export const genUfrag = (len) => [...Array(len)].map(() => charset.at(Math.floor(Math.random() * charset.length))).join('');
|
|
5
6
|
//# sourceMappingURL=util.js.map
|
package/dist/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;AACxB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,SAAU,CAAC,CAAC,GAAG,KAA+C,CAAC,CAAA;AAE7F,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,CAAM,EAAiB,EAAE,GAAE,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/webrtc",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "A libp2p transport using WebRTC connections",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -123,8 +123,7 @@
|
|
|
123
123
|
]
|
|
124
124
|
},
|
|
125
125
|
"scripts": {
|
|
126
|
-
"generate
|
|
127
|
-
"generate:webrtc-direct": "protons src/peer_transport/pb/index.proto",
|
|
126
|
+
"generate": "protons src/private-to-private/pb/message.proto src/pb/message.proto",
|
|
128
127
|
"build": "aegir build",
|
|
129
128
|
"test": "aegir test -t browser",
|
|
130
129
|
"test:chrome": "aegir test -t browser --cov",
|
|
@@ -148,7 +147,6 @@
|
|
|
148
147
|
"@libp2p/logger": "^2.0.7",
|
|
149
148
|
"@libp2p/peer-id": "^2.0.3",
|
|
150
149
|
"@multiformats/multiaddr": "^12.1.2",
|
|
151
|
-
"@protobuf-ts/runtime": "^2.9.0",
|
|
152
150
|
"abortable-iterator": "^5.0.1",
|
|
153
151
|
"detect-browser": "^5.3.0",
|
|
154
152
|
"it-length-prefixed": "^9.0.1",
|
|
@@ -167,7 +165,6 @@
|
|
|
167
165
|
"devDependencies": {
|
|
168
166
|
"@libp2p/interface-mocks": "^12.0.1",
|
|
169
167
|
"@libp2p/peer-id-factory": "^2.0.3",
|
|
170
|
-
"@protobuf-ts/protoc": "^2.9.0",
|
|
171
168
|
"@types/sinon": "^10.0.14",
|
|
172
169
|
"aegir": "^39.0.6",
|
|
173
170
|
"it-pair": "^2.0.6",
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { WebRTCTransport } from './
|
|
2
|
-
import { WebRTCDirectTransport, type WebRTCDirectTransportComponents } from './transport.js'
|
|
3
|
-
import type { WebRTCTransportComponents, WebRTCTransportInit } from './
|
|
1
|
+
import { WebRTCTransport } from './private-to-private/transport.js'
|
|
2
|
+
import { WebRTCDirectTransport, type WebRTCDirectTransportComponents } from './private-to-public/transport.js'
|
|
3
|
+
import type { WebRTCTransportComponents, WebRTCTransportInit } from './private-to-private/transport.js'
|
|
4
4
|
import type { Transport } from '@libp2p/interface-transport'
|
|
5
5
|
|
|
6
6
|
function webRTCDirect (): (components: WebRTCDirectTransportComponents) => Transport {
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
syntax = "
|
|
2
|
-
|
|
3
|
-
package webrtc.pb;
|
|
1
|
+
syntax = "proto3";
|
|
4
2
|
|
|
5
3
|
message Message {
|
|
6
4
|
enum Flag {
|
|
@@ -10,7 +8,7 @@ message Message {
|
|
|
10
8
|
// The sender will no longer read messages on the stream. Incoming data is
|
|
11
9
|
// being discarded on receipt.
|
|
12
10
|
STOP_SENDING = 1;
|
|
13
|
-
|
|
11
|
+
|
|
14
12
|
// The sender abruptly terminates the sending part of the stream. The
|
|
15
13
|
// receiver can discard any data that it already received on that stream.
|
|
16
14
|
RESET = 2;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/* eslint-disable import/export */
|
|
2
|
+
/* eslint-disable complexity */
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-namespace */
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-boolean-literal-compare */
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
6
|
+
|
|
7
|
+
import { enumeration, encodeMessage, decodeMessage, message } from 'protons-runtime'
|
|
8
|
+
import type { Codec } from 'protons-runtime'
|
|
9
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
10
|
+
|
|
11
|
+
export interface Message {
|
|
12
|
+
flag?: Message.Flag
|
|
13
|
+
message?: Uint8Array
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export namespace Message {
|
|
17
|
+
export enum Flag {
|
|
18
|
+
FIN = 'FIN',
|
|
19
|
+
STOP_SENDING = 'STOP_SENDING',
|
|
20
|
+
RESET = 'RESET'
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
enum __FlagValues {
|
|
24
|
+
FIN = 0,
|
|
25
|
+
STOP_SENDING = 1,
|
|
26
|
+
RESET = 2
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export namespace Flag {
|
|
30
|
+
export const codec = (): Codec<Flag> => {
|
|
31
|
+
return enumeration<Flag>(__FlagValues)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
let _codec: Codec<Message>
|
|
36
|
+
|
|
37
|
+
export const codec = (): Codec<Message> => {
|
|
38
|
+
if (_codec == null) {
|
|
39
|
+
_codec = message<Message>((obj, w, opts = {}) => {
|
|
40
|
+
if (opts.lengthDelimited !== false) {
|
|
41
|
+
w.fork()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (obj.flag != null) {
|
|
45
|
+
w.uint32(8)
|
|
46
|
+
Message.Flag.codec().encode(obj.flag, w)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (obj.message != null) {
|
|
50
|
+
w.uint32(18)
|
|
51
|
+
w.bytes(obj.message)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (opts.lengthDelimited !== false) {
|
|
55
|
+
w.ldelim()
|
|
56
|
+
}
|
|
57
|
+
}, (reader, length) => {
|
|
58
|
+
const obj: any = {}
|
|
59
|
+
|
|
60
|
+
const end = length == null ? reader.len : reader.pos + length
|
|
61
|
+
|
|
62
|
+
while (reader.pos < end) {
|
|
63
|
+
const tag = reader.uint32()
|
|
64
|
+
|
|
65
|
+
switch (tag >>> 3) {
|
|
66
|
+
case 1:
|
|
67
|
+
obj.flag = Message.Flag.codec().decode(reader)
|
|
68
|
+
break
|
|
69
|
+
case 2:
|
|
70
|
+
obj.message = reader.bytes()
|
|
71
|
+
break
|
|
72
|
+
default:
|
|
73
|
+
reader.skipType(tag & 7)
|
|
74
|
+
break
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return obj
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return _codec
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export const encode = (obj: Partial<Message>): Uint8Array => {
|
|
86
|
+
return encodeMessage(obj, Message.codec())
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const decode = (buf: Uint8Array | Uint8ArrayList): Message => {
|
|
90
|
+
return decodeMessage(buf, Message.codec())
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -3,7 +3,7 @@ import { abortableDuplex } from 'abortable-iterator'
|
|
|
3
3
|
import { pbStream } from 'it-pb-stream'
|
|
4
4
|
import pDefer, { type DeferredPromise } from 'p-defer'
|
|
5
5
|
import { DataChannelMuxerFactory } from '../muxer.js'
|
|
6
|
-
import
|
|
6
|
+
import { Message } from './pb/message.js'
|
|
7
7
|
import { readCandidatesUntilConnected, resolveOnConnected } from './util.js'
|
|
8
8
|
import type { Stream } from '@libp2p/interface-connection'
|
|
9
9
|
import type { IncomingStreamData } from '@libp2p/interface-registrar'
|
|
@@ -17,7 +17,7 @@ export type IncomingStreamOpts = { rtcConfiguration?: RTCConfiguration } & Incom
|
|
|
17
17
|
|
|
18
18
|
export async function handleIncomingStream ({ rtcConfiguration, stream: rawStream }: IncomingStreamOpts): Promise<{ pc: RTCPeerConnection, muxerFactory: StreamMuxerFactory, remoteAddress: string }> {
|
|
19
19
|
const signal = AbortSignal.timeout(DEFAULT_TIMEOUT)
|
|
20
|
-
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(
|
|
20
|
+
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message)
|
|
21
21
|
const pc = new RTCPeerConnection(rtcConfiguration)
|
|
22
22
|
const muxerFactory = new DataChannelMuxerFactory(pc)
|
|
23
23
|
|
|
@@ -30,7 +30,7 @@ export async function handleIncomingStream ({ rtcConfiguration, stream: rawStrea
|
|
|
30
30
|
answerSentPromise.promise.then(
|
|
31
31
|
() => {
|
|
32
32
|
stream.write({
|
|
33
|
-
type:
|
|
33
|
+
type: Message.Type.ICE_CANDIDATE,
|
|
34
34
|
data: (candidate != null) ? JSON.stringify(candidate.toJSON()) : ''
|
|
35
35
|
})
|
|
36
36
|
},
|
|
@@ -44,7 +44,7 @@ export async function handleIncomingStream ({ rtcConfiguration, stream: rawStrea
|
|
|
44
44
|
|
|
45
45
|
// read an SDP offer
|
|
46
46
|
const pbOffer = await stream.read()
|
|
47
|
-
if (pbOffer.type !==
|
|
47
|
+
if (pbOffer.type !== Message.Type.SDP_OFFER) {
|
|
48
48
|
throw new Error(`expected message type SDP_OFFER, received: ${pbOffer.type ?? 'undefined'} `)
|
|
49
49
|
}
|
|
50
50
|
const offer = new RTCSessionDescription({
|
|
@@ -64,7 +64,7 @@ export async function handleIncomingStream ({ rtcConfiguration, stream: rawStrea
|
|
|
64
64
|
throw new Error('Failed to create answer')
|
|
65
65
|
})
|
|
66
66
|
// write the answer to the remote
|
|
67
|
-
stream.write({ type:
|
|
67
|
+
stream.write({ type: Message.Type.SDP_ANSWER, data: answer.sdp })
|
|
68
68
|
|
|
69
69
|
await pc.setLocalDescription(answer).catch(err => {
|
|
70
70
|
log.error('could not execute setLocalDescription', err)
|
|
@@ -89,7 +89,7 @@ export interface ConnectOptions {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
export async function initiateConnection ({ rtcConfiguration, signal, stream: rawStream }: ConnectOptions): Promise<{ pc: RTCPeerConnection, muxerFactory: StreamMuxerFactory, remoteAddress: string }> {
|
|
92
|
-
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(
|
|
92
|
+
const stream = pbStream(abortableDuplex(rawStream, signal)).pb(Message)
|
|
93
93
|
// setup peer connection
|
|
94
94
|
const pc = new RTCPeerConnection(rtcConfiguration)
|
|
95
95
|
const muxerFactory = new DataChannelMuxerFactory(pc)
|
|
@@ -107,14 +107,14 @@ export async function initiateConnection ({ rtcConfiguration, signal, stream: ra
|
|
|
107
107
|
// peer
|
|
108
108
|
pc.onicecandidate = ({ candidate }) => {
|
|
109
109
|
stream.write({
|
|
110
|
-
type:
|
|
110
|
+
type: Message.Type.ICE_CANDIDATE,
|
|
111
111
|
data: (candidate != null) ? JSON.stringify(candidate.toJSON()) : ''
|
|
112
112
|
})
|
|
113
113
|
}
|
|
114
114
|
// create an offer
|
|
115
115
|
const offerSdp = await pc.createOffer()
|
|
116
116
|
// write the offer to the stream
|
|
117
|
-
stream.write({ type:
|
|
117
|
+
stream.write({ type: Message.Type.SDP_OFFER, data: offerSdp.sdp })
|
|
118
118
|
// set offer as local description
|
|
119
119
|
await pc.setLocalDescription(offerSdp).catch(err => {
|
|
120
120
|
log.error('could not execute setLocalDescription', err)
|
|
@@ -123,7 +123,7 @@ export async function initiateConnection ({ rtcConfiguration, signal, stream: ra
|
|
|
123
123
|
|
|
124
124
|
// read answer
|
|
125
125
|
const answerMessage = await stream.read()
|
|
126
|
-
if (answerMessage.type !==
|
|
126
|
+
if (answerMessage.type !== Message.Type.SDP_ANSWER) {
|
|
127
127
|
throw new Error('remote should send an SDP answer')
|
|
128
128
|
}
|
|
129
129
|
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { isFirefox } from '../util.js'
|
|
3
|
+
import { Message } from './pb/message.js'
|
|
4
4
|
import type { DeferredPromise } from 'p-defer'
|
|
5
5
|
|
|
6
|
-
const browser = detect()
|
|
7
|
-
export const isFirefox = ((browser != null) && browser.name === 'firefox')
|
|
8
|
-
|
|
9
6
|
interface MessageStream {
|
|
10
|
-
read: () => Promise<
|
|
11
|
-
write: (d:
|
|
7
|
+
read: () => Promise<Message>
|
|
8
|
+
write: (d: Message) => void | Promise<void>
|
|
12
9
|
}
|
|
13
10
|
|
|
14
11
|
const log = logger('libp2p:webrtc:peer:util')
|
|
@@ -19,7 +16,7 @@ export const readCandidatesUntilConnected = async (connectedPromise: DeferredPro
|
|
|
19
16
|
// check if readResult is a message
|
|
20
17
|
if (readResult instanceof Object) {
|
|
21
18
|
const message = readResult
|
|
22
|
-
if (message.type !==
|
|
19
|
+
if (message.type !== Message.Type.ICE_CANDIDATE) {
|
|
23
20
|
throw new Error('expected only ice candidates')
|
|
24
21
|
}
|
|
25
22
|
// end of candidates has been signalled
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
2
|
import { bases } from 'multiformats/basics'
|
|
3
3
|
import * as multihashes from 'multihashes'
|
|
4
|
-
import { inappropriateMultiaddr, invalidArgument, invalidFingerprint, unsupportedHashAlgorithm } from '
|
|
4
|
+
import { inappropriateMultiaddr, invalidArgument, invalidFingerprint, unsupportedHashAlgorithm } from '../error.js'
|
|
5
5
|
import { CERTHASH_CODE } from './transport.js'
|
|
6
6
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
7
7
|
import type { HashCode, HashName } from 'multihashes'
|
|
@@ -6,12 +6,12 @@ import { protocols } from '@multiformats/multiaddr'
|
|
|
6
6
|
import * as multihashes from 'multihashes'
|
|
7
7
|
import { concat } from 'uint8arrays/concat'
|
|
8
8
|
import { fromString as uint8arrayFromString } from 'uint8arrays/from-string'
|
|
9
|
-
import { dataChannelError, inappropriateMultiaddr, unimplemented, invalidArgument } from '
|
|
10
|
-
import { WebRTCMultiaddrConnection } from '
|
|
11
|
-
import { DataChannelMuxerFactory } from '
|
|
12
|
-
import {
|
|
9
|
+
import { dataChannelError, inappropriateMultiaddr, unimplemented, invalidArgument } from '../error.js'
|
|
10
|
+
import { WebRTCMultiaddrConnection } from '../maconn.js'
|
|
11
|
+
import { DataChannelMuxerFactory } from '../muxer.js'
|
|
12
|
+
import { WebRTCStream } from '../stream.js'
|
|
13
|
+
import { isFirefox } from '../util.js'
|
|
13
14
|
import * as sdp from './sdp.js'
|
|
14
|
-
import { WebRTCStream } from './stream.js'
|
|
15
15
|
import { genUfrag } from './util.js'
|
|
16
16
|
import type { WebRTCDialOptions } from './options.js'
|
|
17
17
|
import type { Connection } from '@libp2p/interface-connection'
|
package/src/stream.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { pipe } from 'it-pipe'
|
|
|
5
5
|
import { pushable } from 'it-pushable'
|
|
6
6
|
import defer, { type DeferredPromise } from 'p-defer'
|
|
7
7
|
import { Uint8ArrayList } from 'uint8arraylist'
|
|
8
|
-
import
|
|
8
|
+
import { Message } from './pb/message.js'
|
|
9
9
|
import type { Stream, StreamStat, Direction } from '@libp2p/interface-connection'
|
|
10
10
|
import type { Source } from 'it-stream-types'
|
|
11
11
|
|
|
@@ -66,7 +66,7 @@ interface StreamStateInput {
|
|
|
66
66
|
* 1 = STOP_SENDING
|
|
67
67
|
* 2 = RESET
|
|
68
68
|
*/
|
|
69
|
-
flag:
|
|
69
|
+
flag: Message.Flag
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
export enum StreamStates {
|
|
@@ -99,7 +99,7 @@ class StreamState {
|
|
|
99
99
|
|
|
100
100
|
if (direction === 'inbound') {
|
|
101
101
|
switch (flag) {
|
|
102
|
-
case
|
|
102
|
+
case Message.Flag.FIN:
|
|
103
103
|
if (this.state === StreamStates.OPEN) {
|
|
104
104
|
this.state = StreamStates.READ_CLOSED
|
|
105
105
|
} else if (this.state === StreamStates.WRITE_CLOSED) {
|
|
@@ -107,7 +107,7 @@ class StreamState {
|
|
|
107
107
|
}
|
|
108
108
|
break
|
|
109
109
|
|
|
110
|
-
case
|
|
110
|
+
case Message.Flag.STOP_SENDING:
|
|
111
111
|
if (this.state === StreamStates.OPEN) {
|
|
112
112
|
this.state = StreamStates.WRITE_CLOSED
|
|
113
113
|
} else if (this.state === StreamStates.READ_CLOSED) {
|
|
@@ -115,7 +115,7 @@ class StreamState {
|
|
|
115
115
|
}
|
|
116
116
|
break
|
|
117
117
|
|
|
118
|
-
case
|
|
118
|
+
case Message.Flag.RESET:
|
|
119
119
|
this.state = StreamStates.CLOSED
|
|
120
120
|
break
|
|
121
121
|
default:
|
|
@@ -123,7 +123,7 @@ class StreamState {
|
|
|
123
123
|
}
|
|
124
124
|
} else {
|
|
125
125
|
switch (flag) {
|
|
126
|
-
case
|
|
126
|
+
case Message.Flag.FIN:
|
|
127
127
|
if (this.state === StreamStates.OPEN) {
|
|
128
128
|
this.state = StreamStates.WRITE_CLOSED
|
|
129
129
|
} else if (this.state === StreamStates.READ_CLOSED) {
|
|
@@ -131,7 +131,7 @@ class StreamState {
|
|
|
131
131
|
}
|
|
132
132
|
break
|
|
133
133
|
|
|
134
|
-
case
|
|
134
|
+
case Message.Flag.STOP_SENDING:
|
|
135
135
|
if (this.state === StreamStates.OPEN) {
|
|
136
136
|
this.state = StreamStates.READ_CLOSED
|
|
137
137
|
} else if (this.state === StreamStates.WRITE_CLOSED) {
|
|
@@ -139,7 +139,7 @@ class StreamState {
|
|
|
139
139
|
}
|
|
140
140
|
break
|
|
141
141
|
|
|
142
|
-
case
|
|
142
|
+
case Message.Flag.RESET:
|
|
143
143
|
this.state = StreamStates.CLOSED
|
|
144
144
|
break
|
|
145
145
|
|
|
@@ -313,7 +313,7 @@ export class WebRTCStream implements Stream {
|
|
|
313
313
|
if (this.streamState.isWriteClosed()) {
|
|
314
314
|
return
|
|
315
315
|
}
|
|
316
|
-
const msgbuf =
|
|
316
|
+
const msgbuf = Message.encode({ message: buf.subarray() })
|
|
317
317
|
const sendbuf = lengthPrefixed.encode.single(msgbuf)
|
|
318
318
|
|
|
319
319
|
this.channel.send(sendbuf.subarray())
|
|
@@ -324,7 +324,7 @@ export class WebRTCStream implements Stream {
|
|
|
324
324
|
* Handle incoming
|
|
325
325
|
*/
|
|
326
326
|
processIncomingProtobuf (buffer: Uint8Array): Uint8Array | undefined {
|
|
327
|
-
const message =
|
|
327
|
+
const message = Message.decode(buffer)
|
|
328
328
|
|
|
329
329
|
if (message.flag !== undefined) {
|
|
330
330
|
const [currentState, nextState] = this.streamState.transition({ direction: 'inbound', flag: message.flag })
|
|
@@ -371,14 +371,14 @@ export class WebRTCStream implements Stream {
|
|
|
371
371
|
* Close a stream for reading only
|
|
372
372
|
*/
|
|
373
373
|
closeRead (): void {
|
|
374
|
-
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag:
|
|
374
|
+
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag: Message.Flag.STOP_SENDING })
|
|
375
375
|
if (currentState === nextState) {
|
|
376
376
|
// No change, no op
|
|
377
377
|
return
|
|
378
378
|
}
|
|
379
379
|
|
|
380
380
|
if (currentState === StreamStates.OPEN || currentState === StreamStates.WRITE_CLOSED) {
|
|
381
|
-
this._sendFlag(
|
|
381
|
+
this._sendFlag(Message.Flag.STOP_SENDING)
|
|
382
382
|
this._innersrc.end()
|
|
383
383
|
}
|
|
384
384
|
|
|
@@ -391,14 +391,14 @@ export class WebRTCStream implements Stream {
|
|
|
391
391
|
* Close a stream for writing only
|
|
392
392
|
*/
|
|
393
393
|
closeWrite (): void {
|
|
394
|
-
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag:
|
|
394
|
+
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag: Message.Flag.FIN })
|
|
395
395
|
if (currentState === nextState) {
|
|
396
396
|
// No change, no op
|
|
397
397
|
return
|
|
398
398
|
}
|
|
399
399
|
|
|
400
400
|
if (currentState === StreamStates.OPEN || currentState === StreamStates.READ_CLOSED) {
|
|
401
|
-
this._sendFlag(
|
|
401
|
+
this._sendFlag(Message.Flag.FIN)
|
|
402
402
|
this.closeWritePromise.resolve()
|
|
403
403
|
}
|
|
404
404
|
|
|
@@ -421,20 +421,20 @@ export class WebRTCStream implements Stream {
|
|
|
421
421
|
* @see this.closeWrite
|
|
422
422
|
*/
|
|
423
423
|
reset (): void {
|
|
424
|
-
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag:
|
|
424
|
+
const [currentState, nextState] = this.streamState.transition({ direction: 'outbound', flag: Message.Flag.RESET })
|
|
425
425
|
if (currentState === nextState) {
|
|
426
426
|
// No change, no op
|
|
427
427
|
return
|
|
428
428
|
}
|
|
429
429
|
|
|
430
|
-
this._sendFlag(
|
|
430
|
+
this._sendFlag(Message.Flag.RESET)
|
|
431
431
|
this.close()
|
|
432
432
|
}
|
|
433
433
|
|
|
434
|
-
private _sendFlag (flag:
|
|
434
|
+
private _sendFlag (flag: Message.Flag): void {
|
|
435
435
|
try {
|
|
436
436
|
log.trace('Sending flag: %s', flag.toString())
|
|
437
|
-
const msgbuf =
|
|
437
|
+
const msgbuf = Message.encode({ flag })
|
|
438
438
|
this.channel.send(lengthPrefixed.encode.single(msgbuf).subarray())
|
|
439
439
|
} catch (err) {
|
|
440
440
|
if (err instanceof Error) {
|
package/src/util.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { detect } from 'detect-browser'
|
|
2
|
+
|
|
3
|
+
const browser = detect()
|
|
4
|
+
export const isFirefox = ((browser != null) && browser.name === 'firefox')
|
|
5
|
+
|
|
1
6
|
export const nopSource = async function * nop (): AsyncGenerator<Uint8Array, any, unknown> {}
|
|
2
7
|
|
|
3
8
|
export const nopSink = async (_: any): Promise<void> => {}
|
|
4
|
-
|
|
5
|
-
const charset = Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')
|
|
6
|
-
export const genUfrag = (len: number): string => [...Array(len)].map(() => charset.at(Math.floor(Math.random() * charset.length))).join('')
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
|
|
2
|
-
import type { IBinaryWriter } from "@protobuf-ts/runtime";
|
|
3
|
-
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
|
|
4
|
-
import type { IBinaryReader } from "@protobuf-ts/runtime";
|
|
5
|
-
import type { PartialMessage } from "@protobuf-ts/runtime";
|
|
6
|
-
import { MessageType } from "@protobuf-ts/runtime";
|
|
7
|
-
/**
|
|
8
|
-
* @generated from protobuf message webrtc.pb.Message
|
|
9
|
-
*/
|
|
10
|
-
export interface Message {
|
|
11
|
-
/**
|
|
12
|
-
* @generated from protobuf field: optional webrtc.pb.Message.Flag flag = 1;
|
|
13
|
-
*/
|
|
14
|
-
flag?: Message_Flag;
|
|
15
|
-
/**
|
|
16
|
-
* @generated from protobuf field: optional bytes message = 2;
|
|
17
|
-
*/
|
|
18
|
-
message?: Uint8Array;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @generated from protobuf enum webrtc.pb.Message.Flag
|
|
22
|
-
*/
|
|
23
|
-
export declare enum Message_Flag {
|
|
24
|
-
/**
|
|
25
|
-
* The sender will no longer send messages on the stream.
|
|
26
|
-
*
|
|
27
|
-
* @generated from protobuf enum value: FIN = 0;
|
|
28
|
-
*/
|
|
29
|
-
FIN = 0,
|
|
30
|
-
/**
|
|
31
|
-
* The sender will no longer read messages on the stream. Incoming data is
|
|
32
|
-
* being discarded on receipt.
|
|
33
|
-
*
|
|
34
|
-
* @generated from protobuf enum value: STOP_SENDING = 1;
|
|
35
|
-
*/
|
|
36
|
-
STOP_SENDING = 1,
|
|
37
|
-
/**
|
|
38
|
-
* The sender abruptly terminates the sending part of the stream. The
|
|
39
|
-
* receiver can discard any data that it already received on that stream.
|
|
40
|
-
*
|
|
41
|
-
* @generated from protobuf enum value: RESET = 2;
|
|
42
|
-
*/
|
|
43
|
-
RESET = 2
|
|
44
|
-
}
|
|
45
|
-
declare class Message$Type extends MessageType<Message> {
|
|
46
|
-
constructor();
|
|
47
|
-
create(value?: PartialMessage<Message>): Message;
|
|
48
|
-
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Message): Message;
|
|
49
|
-
internalBinaryWrite(message: Message, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* @generated MessageType for protobuf message webrtc.pb.Message
|
|
53
|
-
*/
|
|
54
|
-
export declare const Message: Message$Type;
|
|
55
|
-
export {};
|
|
56
|
-
//# sourceMappingURL=message.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../proto_ts/message.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;CACxB;AACD;;GAEG;AACH,oBAAY,YAAY;IACpB;;;;OAIG;IACH,GAAG,IAAI;IACP;;;;;OAKG;IACH,YAAY,IAAI;IAChB;;;;;OAKG;IACH,KAAK,IAAI;CACZ;AAED,cAAM,YAAa,SAAQ,WAAW,CAAC,OAAO,CAAC;;IAO3C,MAAM,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO;IAOhD,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAsBhH,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,GAAG,aAAa;CAY3G;AACD;;GAEG;AACH,eAAO,MAAM,OAAO,cAAqB,CAAC"}
|