@libp2p/mplex 8.0.1 → 8.0.3
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 +4 -4
- package/dist/src/decode.d.ts +1 -1
- package/dist/src/decode.d.ts.map +1 -1
- package/dist/src/decode.js +5 -1
- package/dist/src/decode.js.map +1 -1
- package/dist/src/encode.d.ts +1 -1
- package/dist/src/encode.d.ts.map +1 -1
- package/dist/src/encode.js +4 -2
- package/dist/src/encode.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mplex.d.ts +4 -4
- package/dist/src/mplex.d.ts.map +1 -1
- package/dist/src/mplex.js +16 -8
- package/dist/src/mplex.js.map +1 -1
- package/dist/src/stream.d.ts +20 -1
- package/dist/src/stream.d.ts.map +1 -1
- package/dist/src/stream.js +39 -191
- package/dist/src/stream.js.map +1 -1
- package/package.json +4 -5
- package/src/decode.ts +1 -1
- package/src/encode.ts +4 -4
- package/src/index.ts +1 -1
- package/src/mplex.ts +11 -11
- package/src/stream.ts +44 -226
package/dist/src/mplex.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mplex.d.ts","sourceRoot":"","sources":["../../src/mplex.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"mplex.d.ts","sourceRoot":"","sources":["../../src/mplex.ts"],"names":[],"mappings":"AASA,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAClF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AA0BpD,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,oBAAoB,EAAE,MAAM,MAAM,CAAA;IAClC,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAA;CAC3C;AAED,UAAU,oBAAqB,SAAQ,SAAS,EAAE,eAAe;CAAG;AAEpE,qBAAa,gBAAiB,YAAW,WAAW;IAC3C,QAAQ,SAAiB;IAEzB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9D,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IAEzC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+E;IACxG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8D;IACtF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;gBAElC,IAAI,CAAC,EAAE,oBAAoB;IAuCxC;;OAEG;IACH,IAAI,OAAO,IAAK,MAAM,EAAE,CAWvB;IAED;;;OAGG;IACH,SAAS,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAUjC;;OAEG;IACH,KAAK,CAAE,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI;IAWrC;;OAEG;IACH,kBAAkB,CAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAMvE,UAAU,CAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;KAAE,GAAG,WAAW;IAmCnI;;;OAGG;IACH,WAAW,IAAK,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IA2BxE;;;OAGG;IACH,aAAa,IAAK,GAAG;IAgBf,eAAe,CAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAwFxD"}
|
package/dist/src/mplex.js
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
import {
|
1
|
+
import { CodeError } from '@libp2p/interfaces/errors';
|
2
|
+
import { logger } from '@libp2p/logger';
|
2
3
|
import { abortableSource } from 'abortable-iterator';
|
3
|
-
import {
|
4
|
+
import { anySignal } from 'any-signal';
|
5
|
+
import { pushableV } from 'it-pushable';
|
6
|
+
import { RateLimiterMemory } from 'rate-limiter-flexible';
|
7
|
+
import { toString as uint8ArrayToString } from 'uint8arrays';
|
4
8
|
import { Decoder } from './decode.js';
|
9
|
+
import { encode } from './encode.js';
|
5
10
|
import { MessageTypes, MessageTypeNames } from './message-types.js';
|
6
11
|
import { createStream } from './stream.js';
|
7
|
-
import { toString as uint8ArrayToString } from 'uint8arrays';
|
8
|
-
import { logger } from '@libp2p/logger';
|
9
|
-
import { CodeError } from '@libp2p/interfaces/errors';
|
10
|
-
import { RateLimiterMemory } from 'rate-limiter-flexible';
|
11
|
-
import { anySignal } from 'any-signal';
|
12
12
|
const log = logger('libp2p:mplex');
|
13
13
|
const MAX_STREAMS_INBOUND_STREAMS_PER_CONNECTION = 1024;
|
14
14
|
const MAX_STREAMS_OUTBOUND_STREAMS_PER_CONNECTION = 1024;
|
@@ -28,8 +28,16 @@ function printMessage(msg) {
|
|
28
28
|
return output;
|
29
29
|
}
|
30
30
|
export class MplexStreamMuxer {
|
31
|
+
protocol = '/mplex/6.7.0';
|
32
|
+
sink;
|
33
|
+
source;
|
34
|
+
_streamId;
|
35
|
+
_streams;
|
36
|
+
_init;
|
37
|
+
_source;
|
38
|
+
closeController;
|
39
|
+
rateLimiter;
|
31
40
|
constructor(init) {
|
32
|
-
this.protocol = '/mplex/6.7.0';
|
33
41
|
init = init ?? {};
|
34
42
|
this._streamId = 0;
|
35
43
|
this._streams = {
|
package/dist/src/mplex.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mplex.js","sourceRoot":"","sources":["../../src/mplex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"mplex.js","sourceRoot":"","sources":["../../src/mplex.ts"],"names":[],"mappings":"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"}
|
package/dist/src/stream.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
import { AbstractStream, type AbstractStreamInit } from '@libp2p/interface-stream-muxer/stream';
|
2
|
+
import { Uint8ArrayList } from 'uint8arraylist';
|
1
3
|
import type { Message } from './message-types.js';
|
2
|
-
import type { MplexStream } from './mplex.js';
|
3
4
|
export interface Options {
|
4
5
|
id: number;
|
5
6
|
send: (msg: Message) => void;
|
@@ -8,5 +9,23 @@ export interface Options {
|
|
8
9
|
type?: 'initiator' | 'receiver';
|
9
10
|
maxMsgSize?: number;
|
10
11
|
}
|
12
|
+
interface MplexStreamInit extends AbstractStreamInit {
|
13
|
+
streamId: number;
|
14
|
+
name: string;
|
15
|
+
send: (msg: Message) => void;
|
16
|
+
}
|
17
|
+
declare class MplexStream extends AbstractStream {
|
18
|
+
private readonly name;
|
19
|
+
private readonly streamId;
|
20
|
+
private readonly send;
|
21
|
+
private readonly types;
|
22
|
+
constructor(init: MplexStreamInit);
|
23
|
+
sendNewStream(): void;
|
24
|
+
sendData(data: Uint8ArrayList): void;
|
25
|
+
sendReset(): void;
|
26
|
+
sendCloseWrite(): void;
|
27
|
+
sendCloseRead(): void;
|
28
|
+
}
|
11
29
|
export declare function createStream(options: Options): MplexStream;
|
30
|
+
export {};
|
12
31
|
//# sourceMappingURL=stream.d.ts.map
|
package/dist/src/stream.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAI/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IAC7B,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,eAAgB,SAAQ,kBAAkB;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7B;AAED,cAAM,WAAY,SAAQ,cAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;gBAEjC,IAAI,EAAE,eAAe;IASlC,aAAa,IAAK,IAAI;IAItB,QAAQ,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAIrC,SAAS,IAAK,IAAI;IAIlB,cAAc,IAAK,IAAI;IAIvB,aAAa,IAAK,IAAI;CAGvB;AAED,wBAAgB,YAAY,CAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CAY3D"}
|
package/dist/src/stream.js
CHANGED
@@ -1,198 +1,46 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import {
|
1
|
+
import { AbstractStream } from '@libp2p/interface-stream-muxer/stream';
|
2
|
+
import { Uint8ArrayList } from 'uint8arraylist';
|
3
|
+
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
4
4
|
import { MAX_MSG_SIZE } from './decode.js';
|
5
|
-
import { anySignal } from 'any-signal';
|
6
5
|
import { InitiatorMessageTypes, ReceiverMessageTypes } from './message-types.js';
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
class MplexStream extends AbstractStream {
|
7
|
+
name;
|
8
|
+
streamId;
|
9
|
+
send;
|
10
|
+
types;
|
11
|
+
constructor(init) {
|
12
|
+
super(init);
|
13
|
+
this.types = init.direction === 'outbound' ? InitiatorMessageTypes : ReceiverMessageTypes;
|
14
|
+
this.send = init.send;
|
15
|
+
this.name = init.name;
|
16
|
+
this.streamId = init.streamId;
|
17
|
+
}
|
18
|
+
sendNewStream() {
|
19
|
+
this.send({ id: this.streamId, type: InitiatorMessageTypes.NEW_STREAM, data: new Uint8ArrayList(uint8ArrayFromString(this.name)) });
|
20
|
+
}
|
21
|
+
sendData(data) {
|
22
|
+
this.send({ id: this.streamId, type: this.types.MESSAGE, data });
|
23
|
+
}
|
24
|
+
sendReset() {
|
25
|
+
this.send({ id: this.streamId, type: this.types.RESET });
|
26
|
+
}
|
27
|
+
sendCloseWrite() {
|
28
|
+
this.send({ id: this.streamId, type: this.types.CLOSE });
|
29
|
+
}
|
30
|
+
sendCloseRead() {
|
31
|
+
// mplex does not support close read, only close write
|
32
|
+
}
|
33
|
+
}
|
15
34
|
export function createStream(options) {
|
16
35
|
const { id, name, send, onEnd, type = 'initiator', maxMsgSize = MAX_MSG_SIZE } = options;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
let sinkSunk = false;
|
26
|
-
let endErr;
|
27
|
-
const timeline = {
|
28
|
-
open: Date.now()
|
29
|
-
};
|
30
|
-
const onSourceEnd = (err) => {
|
31
|
-
if (sourceEnded) {
|
32
|
-
return;
|
33
|
-
}
|
34
|
-
sourceEnded = true;
|
35
|
-
log.trace('%s stream %s source end - err: %o', type, streamName, err);
|
36
|
-
if (err != null && endErr == null) {
|
37
|
-
endErr = err;
|
38
|
-
}
|
39
|
-
if (sinkEnded) {
|
40
|
-
stream.stat.timeline.close = Date.now();
|
41
|
-
if (onEnd != null) {
|
42
|
-
onEnd(endErr);
|
43
|
-
}
|
44
|
-
}
|
45
|
-
};
|
46
|
-
const onSinkEnd = (err) => {
|
47
|
-
if (sinkEnded) {
|
48
|
-
return;
|
49
|
-
}
|
50
|
-
sinkEnded = true;
|
51
|
-
log.trace('%s stream %s sink end - err: %o', type, streamName, err);
|
52
|
-
if (err != null && endErr == null) {
|
53
|
-
endErr = err;
|
54
|
-
}
|
55
|
-
if (sourceEnded) {
|
56
|
-
timeline.close = Date.now();
|
57
|
-
if (onEnd != null) {
|
58
|
-
onEnd(endErr);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
};
|
62
|
-
const streamSource = pushable({
|
63
|
-
onEnd: onSourceEnd
|
36
|
+
return new MplexStream({
|
37
|
+
id: type === 'initiator' ? (`i${id}`) : `r${id}`,
|
38
|
+
streamId: id,
|
39
|
+
name: `${name == null ? id : name}`,
|
40
|
+
direction: type === 'initiator' ? 'outbound' : 'inbound',
|
41
|
+
maxDataSize: maxMsgSize,
|
42
|
+
onEnd,
|
43
|
+
send
|
64
44
|
});
|
65
|
-
const stream = {
|
66
|
-
// Close for both Reading and Writing
|
67
|
-
close: () => {
|
68
|
-
log.trace('%s stream %s close', type, streamName);
|
69
|
-
stream.closeRead();
|
70
|
-
stream.closeWrite();
|
71
|
-
},
|
72
|
-
// Close for reading
|
73
|
-
closeRead: () => {
|
74
|
-
log.trace('%s stream %s closeRead', type, streamName);
|
75
|
-
if (sourceEnded) {
|
76
|
-
return;
|
77
|
-
}
|
78
|
-
streamSource.end();
|
79
|
-
},
|
80
|
-
// Close for writing
|
81
|
-
closeWrite: () => {
|
82
|
-
log.trace('%s stream %s closeWrite', type, streamName);
|
83
|
-
if (sinkEnded) {
|
84
|
-
return;
|
85
|
-
}
|
86
|
-
closeController.abort();
|
87
|
-
try {
|
88
|
-
send({ id, type: Types.CLOSE });
|
89
|
-
}
|
90
|
-
catch (err) {
|
91
|
-
log.trace('%s stream %s error sending close', type, name, err);
|
92
|
-
}
|
93
|
-
onSinkEnd();
|
94
|
-
},
|
95
|
-
// Close for reading and writing (local error)
|
96
|
-
abort: (err) => {
|
97
|
-
log.trace('%s stream %s abort', type, streamName, err);
|
98
|
-
// End the source with the passed error
|
99
|
-
streamSource.end(err);
|
100
|
-
abortController.abort();
|
101
|
-
onSinkEnd(err);
|
102
|
-
},
|
103
|
-
// Close immediately for reading and writing (remote error)
|
104
|
-
reset: () => {
|
105
|
-
const err = new CodeError('stream reset', ERR_STREAM_RESET);
|
106
|
-
resetController.abort();
|
107
|
-
streamSource.end(err);
|
108
|
-
onSinkEnd(err);
|
109
|
-
},
|
110
|
-
sink: async (source) => {
|
111
|
-
if (sinkSunk) {
|
112
|
-
throw new CodeError('sink already called on stream', ERR_DOUBLE_SINK);
|
113
|
-
}
|
114
|
-
sinkSunk = true;
|
115
|
-
if (sinkEnded) {
|
116
|
-
throw new CodeError('stream closed for writing', ERR_SINK_ENDED);
|
117
|
-
}
|
118
|
-
const signal = anySignal([
|
119
|
-
abortController.signal,
|
120
|
-
resetController.signal,
|
121
|
-
closeController.signal
|
122
|
-
]);
|
123
|
-
try {
|
124
|
-
source = abortableSource(source, signal);
|
125
|
-
if (type === 'initiator') { // If initiator, open a new stream
|
126
|
-
send({ id, type: InitiatorMessageTypes.NEW_STREAM, data: new Uint8ArrayList(uint8ArrayFromString(streamName)) });
|
127
|
-
}
|
128
|
-
for await (let data of source) {
|
129
|
-
while (data.length > 0) {
|
130
|
-
if (data.length <= maxMsgSize) {
|
131
|
-
send({ id, type: Types.MESSAGE, data: data instanceof Uint8Array ? new Uint8ArrayList(data) : data });
|
132
|
-
break;
|
133
|
-
}
|
134
|
-
data = data instanceof Uint8Array ? new Uint8ArrayList(data) : data;
|
135
|
-
send({ id, type: Types.MESSAGE, data: data.sublist(0, maxMsgSize) });
|
136
|
-
data.consume(maxMsgSize);
|
137
|
-
}
|
138
|
-
}
|
139
|
-
}
|
140
|
-
catch (err) {
|
141
|
-
if (err.type === 'aborted' && err.message === 'The operation was aborted') {
|
142
|
-
if (closeController.signal.aborted) {
|
143
|
-
return;
|
144
|
-
}
|
145
|
-
if (resetController.signal.aborted) {
|
146
|
-
err.message = 'stream reset';
|
147
|
-
err.code = ERR_STREAM_RESET;
|
148
|
-
}
|
149
|
-
if (abortController.signal.aborted) {
|
150
|
-
err.message = 'stream aborted';
|
151
|
-
err.code = ERR_STREAM_ABORT;
|
152
|
-
}
|
153
|
-
}
|
154
|
-
// Send no more data if this stream was remotely reset
|
155
|
-
if (err.code === ERR_STREAM_RESET) {
|
156
|
-
log.trace('%s stream %s reset', type, name);
|
157
|
-
}
|
158
|
-
else {
|
159
|
-
log.trace('%s stream %s error', type, name, err);
|
160
|
-
try {
|
161
|
-
send({ id, type: Types.RESET });
|
162
|
-
}
|
163
|
-
catch (err) {
|
164
|
-
log.trace('%s stream %s error sending reset', type, name, err);
|
165
|
-
}
|
166
|
-
}
|
167
|
-
streamSource.end(err);
|
168
|
-
onSinkEnd(err);
|
169
|
-
return;
|
170
|
-
}
|
171
|
-
finally {
|
172
|
-
signal.clear();
|
173
|
-
}
|
174
|
-
try {
|
175
|
-
send({ id, type: Types.CLOSE });
|
176
|
-
}
|
177
|
-
catch (err) {
|
178
|
-
log.trace('%s stream %s error sending close', type, name, err);
|
179
|
-
}
|
180
|
-
onSinkEnd();
|
181
|
-
},
|
182
|
-
source: streamSource,
|
183
|
-
sourcePush: (data) => {
|
184
|
-
streamSource.push(data);
|
185
|
-
},
|
186
|
-
sourceReadableLength() {
|
187
|
-
return streamSource.readableLength;
|
188
|
-
},
|
189
|
-
stat: {
|
190
|
-
direction: type === 'initiator' ? 'outbound' : 'inbound',
|
191
|
-
timeline
|
192
|
-
},
|
193
|
-
metadata: {},
|
194
|
-
id: externalId
|
195
|
-
};
|
196
|
-
return stream;
|
197
45
|
}
|
198
46
|
//# sourceMappingURL=stream.js.map
|
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,
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA2B,MAAM,uCAAuC,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAkBhF,MAAM,WAAY,SAAQ,cAAc;IACrB,IAAI,CAAQ;IACZ,QAAQ,CAAQ;IAChB,IAAI,CAAwB;IAC5B,KAAK,CAAwB;IAE9C,YAAa,IAAqB;QAChC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAA;QACzF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAED,aAAa;QACX,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;IACrI,CAAC;IAED,QAAQ,CAAE,IAAoB;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,aAAa;QACX,sDAAsD;IACxD,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAE,OAAgB;IAC5C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,WAAW,EAAE,UAAU,GAAG,YAAY,EAAE,GAAG,OAAO,CAAA;IAExF,OAAO,IAAI,WAAW,CAAC;QACrB,EAAE,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;QAChD,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;QACnC,SAAS,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACxD,WAAW,EAAE,UAAU;QACvB,KAAK;QACL,IAAI;KACL,CAAC,CAAA;AACJ,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@libp2p/mplex",
|
3
|
-
"version": "8.0.
|
3
|
+
"version": "8.0.3",
|
4
4
|
"description": "JavaScript implementation of https://github.com/libp2p/mplex",
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-mplex#readme",
|
@@ -148,7 +148,7 @@
|
|
148
148
|
},
|
149
149
|
"dependencies": {
|
150
150
|
"@libp2p/interface-connection": "^5.0.0",
|
151
|
-
"@libp2p/interface-stream-muxer": "^4.
|
151
|
+
"@libp2p/interface-stream-muxer": "^4.1.2",
|
152
152
|
"@libp2p/interfaces": "^3.2.0",
|
153
153
|
"@libp2p/logger": "^2.0.0",
|
154
154
|
"abortable-iterator": "^5.0.0",
|
@@ -163,12 +163,11 @@
|
|
163
163
|
"varint": "^6.0.0"
|
164
164
|
},
|
165
165
|
"devDependencies": {
|
166
|
-
"@libp2p/interface-stream-muxer-compliance-tests": "^7.0.
|
166
|
+
"@libp2p/interface-stream-muxer-compliance-tests": "^7.0.3",
|
167
167
|
"@types/varint": "^6.0.0",
|
168
|
-
"aegir": "^
|
168
|
+
"aegir": "^39.0.7",
|
169
169
|
"cborg": "^1.8.1",
|
170
170
|
"delay": "^5.0.0",
|
171
|
-
"eslint-plugin-etc": "^2.0.2",
|
172
171
|
"iso-random-stream": "^2.0.2",
|
173
172
|
"it-all": "^3.0.1",
|
174
173
|
"it-drain": "^3.0.1",
|
package/src/decode.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { MessageTypeNames, MessageTypes } from './message-types.js'
|
2
1
|
import { Uint8ArrayList } from 'uint8arraylist'
|
2
|
+
import { MessageTypeNames, MessageTypes } from './message-types.js'
|
3
3
|
import type { Message } from './message-types.js'
|
4
4
|
|
5
5
|
export const MAX_MSG_SIZE = 1 << 20 // 1MB
|
package/src/encode.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
import
|
2
|
-
import varint from 'varint'
|
1
|
+
import batchedBytes from 'it-batched-bytes'
|
3
2
|
import { Uint8ArrayList } from 'uint8arraylist'
|
3
|
+
import varint from 'varint'
|
4
4
|
import { allocUnsafe } from './alloc-unsafe.js'
|
5
|
-
import { Message, MessageTypes } from './message-types.js'
|
6
|
-
import
|
5
|
+
import { type Message, MessageTypes } from './message-types.js'
|
6
|
+
import type { Source } from 'it-stream-types'
|
7
7
|
|
8
8
|
const POOL_SIZE = 10 * 1024
|
9
9
|
|
package/src/index.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface-stream-muxer'
|
2
1
|
import { MplexStreamMuxer } from './mplex.js'
|
2
|
+
import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interface-stream-muxer'
|
3
3
|
|
4
4
|
export interface MplexInit {
|
5
5
|
/**
|
package/src/mplex.ts
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
import {
|
1
|
+
import { CodeError } from '@libp2p/interfaces/errors'
|
2
|
+
import { logger } from '@libp2p/logger'
|
2
3
|
import { abortableSource } from 'abortable-iterator'
|
3
|
-
import {
|
4
|
+
import { anySignal } from 'any-signal'
|
5
|
+
import { pushableV } from 'it-pushable'
|
6
|
+
import { RateLimiterMemory } from 'rate-limiter-flexible'
|
7
|
+
import { toString as uint8ArrayToString } from 'uint8arrays'
|
4
8
|
import { Decoder } from './decode.js'
|
5
|
-
import {
|
9
|
+
import { encode } from './encode.js'
|
10
|
+
import { MessageTypes, MessageTypeNames, type Message } from './message-types.js'
|
6
11
|
import { createStream } from './stream.js'
|
7
|
-
import { toString as uint8ArrayToString } from 'uint8arrays'
|
8
|
-
import { logger } from '@libp2p/logger'
|
9
|
-
import { CodeError } from '@libp2p/interfaces/errors'
|
10
|
-
import { RateLimiterMemory } from 'rate-limiter-flexible'
|
11
|
-
import type { Sink, Source } from 'it-stream-types'
|
12
|
-
import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface-stream-muxer'
|
13
|
-
import type { Stream } from '@libp2p/interface-connection'
|
14
12
|
import type { MplexInit } from './index.js'
|
15
|
-
import {
|
13
|
+
import type { Stream } from '@libp2p/interface-connection'
|
14
|
+
import type { StreamMuxer, StreamMuxerInit } from '@libp2p/interface-stream-muxer'
|
15
|
+
import type { Sink, Source } from 'it-stream-types'
|
16
16
|
import type { Uint8ArrayList } from 'uint8arraylist'
|
17
17
|
|
18
18
|
const log = logger('libp2p:mplex')
|