@peerbit/libp2p-test-utils 3.0.10 → 3.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"inmemory-libp2p.d.ts","sourceRoot":"","sources":["../../src/inmemory-libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inmemory-libp2p.d.ts","sourceRoot":"","sources":["../../src/inmemory-libp2p.ts"],"names":[],"mappings":"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"}
@@ -23,16 +23,16 @@ const isPeerId = (value) => {
23
23
  };
24
24
  const decodeUVarint = (buf) => {
25
25
  let x = 0;
26
- let s = 0;
27
26
  for (let i = 0; i < buf.length; i++) {
28
27
  const b = buf[i];
28
+ x += (b & 0x7f) * 2 ** (7 * i);
29
+ if (!Number.isSafeInteger(x))
30
+ throw new Error("varint overflow");
29
31
  if (b < 0x80) {
30
- if (i > 9 || (i === 9 && b > 1))
31
- throw new Error("varint overflow");
32
- return { value: x | (b << s), bytes: i + 1 };
32
+ return { value: x, bytes: i + 1 };
33
33
  }
34
- x |= (b & 0x7f) << s;
35
- s += 7;
34
+ if (i >= 7)
35
+ throw new Error("varint overflow");
36
36
  }
37
37
  throw new Error("unexpected eof decoding varint");
38
38
  };
@@ -100,7 +100,10 @@ class InMemoryStream extends EventTarget {
100
100
  highWaterMark;
101
101
  lowWaterMark;
102
102
  backpressured = false;
103
- pendingLengthPrefix;
103
+ pendingLengthPrefix = [];
104
+ pendingFrameChunks = [];
105
+ pendingFrameLength;
106
+ pendingFrameBytes = 0;
104
107
  peer;
105
108
  recordSend;
106
109
  shouldDrop;
@@ -141,65 +144,67 @@ class InMemoryStream extends EventTarget {
141
144
  if (this.closed) {
142
145
  throw new Error("Cannot send on closed stream");
143
146
  }
144
- // `it-length-prefixed` may yield the length prefix and the message body as
145
- // separate chunks. Dropping only one of them would corrupt framing and can
146
- // deadlock decoders. Buffer the prefix chunk so loss injection operates on
147
- // whole messages.
148
- if (this.pendingLengthPrefix) {
149
- const prefix = this.pendingLengthPrefix;
150
- this.pendingLengthPrefix = undefined;
151
- const frame = new Uint8Array(prefix.byteLength + data.byteLength);
152
- frame.set(prefix, 0);
153
- frame.set(data, prefix.byteLength);
147
+ const remote = this.peer;
148
+ if (!remote) {
149
+ throw new Error("Missing remote stream endpoint");
150
+ }
151
+ if (remote.closed) {
152
+ throw new Error("Remote stream endpoint is closed");
153
+ }
154
+ // LP encoding can split both the prefix and body across arbitrary chunks
155
+ // (notably DataMessage's separate header/payload), or coalesce frames.
156
+ // Only apply loss once the entire declared frame has arrived; leaking any
157
+ // fragment of a dropped frame would corrupt every later control message.
158
+ let offset = 0;
159
+ while (offset < data.length) {
160
+ if (this.pendingFrameLength == null) {
161
+ const byte = data[offset++];
162
+ this.pendingLengthPrefix.push(byte);
163
+ if (byte >= 0x80 && this.pendingLengthPrefix.length < 8)
164
+ continue;
165
+ try {
166
+ this.pendingFrameLength = decodeUVarint(Uint8Array.from(this.pendingLengthPrefix)).value;
167
+ }
168
+ catch (error) {
169
+ this.abort(error);
170
+ throw error;
171
+ }
172
+ }
173
+ const take = Math.min(this.pendingFrameLength - this.pendingFrameBytes, data.length - offset);
174
+ if (take > 0) {
175
+ this.pendingFrameChunks.push(data.subarray(offset, offset + take));
176
+ this.pendingFrameBytes += take;
177
+ offset += take;
178
+ }
179
+ if (this.pendingFrameBytes !== this.pendingFrameLength)
180
+ continue;
181
+ // Allocate only after receiving the body, never from an advertised size.
182
+ const frame = new Uint8Array(this.pendingLengthPrefix.length + this.pendingFrameBytes);
183
+ frame.set(this.pendingLengthPrefix);
184
+ let frameOffset = this.pendingLengthPrefix.length;
185
+ for (const chunk of this.pendingFrameChunks) {
186
+ frame.set(chunk, frameOffset);
187
+ frameOffset += chunk.length;
188
+ }
189
+ this.clearPendingFrame();
154
190
  this.recordSend?.(frame);
155
191
  if (this.shouldDrop?.(frame)) {
156
192
  this.recordDrop?.(frame);
157
- return true;
193
+ continue;
158
194
  }
159
- const remote = this.peer;
160
- if (!remote)
161
- throw new Error("Missing remote stream endpoint");
162
- if (remote.closed)
163
- throw new Error("Remote stream endpoint is closed");
164
195
  remote.bufferedBytes += frame.byteLength;
165
196
  remote.inbound.push(frame);
166
197
  if (remote.bufferedBytes > remote.highWaterMark) {
167
198
  remote.backpressured = true;
168
- return false;
169
- }
170
- return true;
171
- }
172
- // Prefix-only chunk? Buffer it and wait for the body chunk.
173
- try {
174
- const { bytes } = decodeUVarint(data);
175
- if (bytes === data.byteLength && data.byteLength <= 10) {
176
- this.pendingLengthPrefix = data;
177
- return true;
178
199
  }
179
200
  }
180
- catch {
181
- // not a varint prefix
182
- }
183
- // Full frame already (prefix+body).
184
- this.recordSend?.(data);
185
- if (this.shouldDrop?.(data)) {
186
- this.recordDrop?.(data);
187
- return true;
188
- }
189
- const remote = this.peer;
190
- if (!remote) {
191
- throw new Error("Missing remote stream endpoint");
192
- }
193
- if (remote.closed) {
194
- throw new Error("Remote stream endpoint is closed");
195
- }
196
- remote.bufferedBytes += data.byteLength;
197
- remote.inbound.push(data);
198
- if (remote.bufferedBytes > remote.highWaterMark) {
199
- remote.backpressured = true;
200
- return false;
201
- }
202
- return true;
201
+ return !remote.backpressured;
202
+ }
203
+ clearPendingFrame() {
204
+ this.pendingLengthPrefix = [];
205
+ this.pendingFrameChunks = [];
206
+ this.pendingFrameLength = undefined;
207
+ this.pendingFrameBytes = 0;
203
208
  }
204
209
  abort(_err) {
205
210
  this.closeLocal();
@@ -213,6 +218,7 @@ class InMemoryStream extends EventTarget {
213
218
  if (this.closed)
214
219
  return;
215
220
  this.closed = true;
221
+ this.clearPendingFrame();
216
222
  try {
217
223
  this.inbound.end();
218
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inmemory-libp2p.js","sourceRoot":"","sources":["../../src/inmemory-libp2p.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inmemory-libp2p.js","sourceRoot":"","sources":["../../src/inmemory-libp2p.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peerbit/libp2p-test-utils",
3
- "version": "3.0.10",
3
+ "version": "3.0.11",
4
4
  "description": "Test utils for Peerbit",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -84,15 +84,14 @@ const isPeerId = (value: unknown): value is PeerId => {
84
84
 
85
85
  const decodeUVarint = (buf: Uint8Array): { value: number; bytes: number } => {
86
86
  let x = 0;
87
- let s = 0;
88
87
  for (let i = 0; i < buf.length; i++) {
89
88
  const b = buf[i]!;
89
+ x += (b & 0x7f) * 2 ** (7 * i);
90
+ if (!Number.isSafeInteger(x)) throw new Error("varint overflow");
90
91
  if (b < 0x80) {
91
- if (i > 9 || (i === 9 && b > 1)) throw new Error("varint overflow");
92
- return { value: x | (b << s), bytes: i + 1 };
92
+ return { value: x, bytes: i + 1 };
93
93
  }
94
- x |= (b & 0x7f) << s;
95
- s += 7;
94
+ if (i >= 7) throw new Error("varint overflow");
96
95
  }
97
96
  throw new Error("unexpected eof decoding varint");
98
97
  };
@@ -182,7 +181,10 @@ class InMemoryStream extends EventTarget {
182
181
  private readonly lowWaterMark: number;
183
182
  private backpressured = false;
184
183
 
185
- private pendingLengthPrefix?: Uint8Array;
184
+ private pendingLengthPrefix: number[] = [];
185
+ private pendingFrameChunks: Uint8Array[] = [];
186
+ private pendingFrameLength?: number;
187
+ private pendingFrameBytes = 0;
186
188
 
187
189
  peer?: InMemoryStream;
188
190
  private readonly recordSend?: (encodedFrame: Uint8Array) => void;
@@ -242,66 +244,74 @@ class InMemoryStream extends EventTarget {
242
244
  throw new Error("Cannot send on closed stream");
243
245
  }
244
246
 
245
- // `it-length-prefixed` may yield the length prefix and the message body as
246
- // separate chunks. Dropping only one of them would corrupt framing and can
247
- // deadlock decoders. Buffer the prefix chunk so loss injection operates on
248
- // whole messages.
249
- if (this.pendingLengthPrefix) {
250
- const prefix = this.pendingLengthPrefix;
251
- this.pendingLengthPrefix = undefined;
252
- const frame = new Uint8Array(prefix.byteLength + data.byteLength);
253
- frame.set(prefix, 0);
254
- frame.set(data, prefix.byteLength);
247
+ const remote = this.peer;
248
+ if (!remote) {
249
+ throw new Error("Missing remote stream endpoint");
250
+ }
251
+ if (remote.closed) {
252
+ throw new Error("Remote stream endpoint is closed");
253
+ }
254
+ // LP encoding can split both the prefix and body across arbitrary chunks
255
+ // (notably DataMessage's separate header/payload), or coalesce frames.
256
+ // Only apply loss once the entire declared frame has arrived; leaking any
257
+ // fragment of a dropped frame would corrupt every later control message.
258
+ let offset = 0;
259
+ while (offset < data.length) {
260
+ if (this.pendingFrameLength == null) {
261
+ const byte = data[offset++];
262
+ this.pendingLengthPrefix.push(byte);
263
+ if (byte >= 0x80 && this.pendingLengthPrefix.length < 8) continue;
264
+ try {
265
+ this.pendingFrameLength = decodeUVarint(
266
+ Uint8Array.from(this.pendingLengthPrefix),
267
+ ).value;
268
+ } catch (error) {
269
+ this.abort(error);
270
+ throw error;
271
+ }
272
+ }
255
273
 
274
+ const take = Math.min(
275
+ this.pendingFrameLength - this.pendingFrameBytes,
276
+ data.length - offset,
277
+ );
278
+ if (take > 0) {
279
+ this.pendingFrameChunks.push(data.subarray(offset, offset + take));
280
+ this.pendingFrameBytes += take;
281
+ offset += take;
282
+ }
283
+ if (this.pendingFrameBytes !== this.pendingFrameLength) continue;
284
+
285
+ // Allocate only after receiving the body, never from an advertised size.
286
+ const frame = new Uint8Array(
287
+ this.pendingLengthPrefix.length + this.pendingFrameBytes,
288
+ );
289
+ frame.set(this.pendingLengthPrefix);
290
+ let frameOffset = this.pendingLengthPrefix.length;
291
+ for (const chunk of this.pendingFrameChunks) {
292
+ frame.set(chunk, frameOffset);
293
+ frameOffset += chunk.length;
294
+ }
295
+ this.clearPendingFrame();
256
296
  this.recordSend?.(frame);
257
297
  if (this.shouldDrop?.(frame)) {
258
298
  this.recordDrop?.(frame);
259
- return true;
299
+ continue;
260
300
  }
261
-
262
- const remote = this.peer;
263
- if (!remote) throw new Error("Missing remote stream endpoint");
264
- if (remote.closed) throw new Error("Remote stream endpoint is closed");
265
301
  remote.bufferedBytes += frame.byteLength;
266
302
  remote.inbound.push(frame);
267
303
  if (remote.bufferedBytes > remote.highWaterMark) {
268
304
  remote.backpressured = true;
269
- return false;
270
- }
271
- return true;
272
- }
273
-
274
- // Prefix-only chunk? Buffer it and wait for the body chunk.
275
- try {
276
- const { bytes } = decodeUVarint(data);
277
- if (bytes === data.byteLength && data.byteLength <= 10) {
278
- this.pendingLengthPrefix = data;
279
- return true;
280
305
  }
281
- } catch {
282
- // not a varint prefix
283
306
  }
307
+ return !remote.backpressured;
308
+ }
284
309
 
285
- // Full frame already (prefix+body).
286
- this.recordSend?.(data);
287
- if (this.shouldDrop?.(data)) {
288
- this.recordDrop?.(data);
289
- return true;
290
- }
291
- const remote = this.peer;
292
- if (!remote) {
293
- throw new Error("Missing remote stream endpoint");
294
- }
295
- if (remote.closed) {
296
- throw new Error("Remote stream endpoint is closed");
297
- }
298
- remote.bufferedBytes += data.byteLength;
299
- remote.inbound.push(data);
300
- if (remote.bufferedBytes > remote.highWaterMark) {
301
- remote.backpressured = true;
302
- return false;
303
- }
304
- return true;
310
+ private clearPendingFrame(): void {
311
+ this.pendingLengthPrefix = [];
312
+ this.pendingFrameChunks = [];
313
+ this.pendingFrameLength = undefined;
314
+ this.pendingFrameBytes = 0;
305
315
  }
306
316
 
307
317
  abort(_err?: any): void {
@@ -317,6 +327,7 @@ class InMemoryStream extends EventTarget {
317
327
  private closeLocal(): void {
318
328
  if (this.closed) return;
319
329
  this.closed = true;
330
+ this.clearPendingFrame();
320
331
  try {
321
332
  this.inbound.end();
322
333
  } catch {}