mediasoup 3.20.9 → 3.21.0

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.
Files changed (74) hide show
  1. package/README.md +9 -3
  2. package/node/lib/Channel.d.ts.map +1 -1
  3. package/node/lib/Channel.js +7 -3
  4. package/node/lib/ConsumerTypes.d.ts.map +1 -1
  5. package/node/lib/PipeTransport.d.ts.map +1 -1
  6. package/node/lib/PipeTransport.js +2 -1
  7. package/node/lib/ProducerTypes.d.ts.map +1 -1
  8. package/node/lib/Router.d.ts.map +1 -1
  9. package/node/lib/Router.js +6 -6
  10. package/node/lib/RtpObserver.d.ts.map +1 -1
  11. package/node/lib/RtpObserver.js +3 -2
  12. package/node/lib/Transport.d.ts.map +1 -1
  13. package/node/lib/Transport.js +15 -3
  14. package/node/lib/TransportTypes.d.ts +2 -1
  15. package/node/lib/TransportTypes.d.ts.map +1 -1
  16. package/node/lib/WebRtcTransportTypes.d.ts.map +1 -1
  17. package/node/lib/errors.d.ts +9 -3
  18. package/node/lib/errors.d.ts.map +1 -1
  19. package/node/lib/errors.js +24 -7
  20. package/node/lib/fbs/transport/dump.d.ts +5 -1
  21. package/node/lib/fbs/transport/dump.d.ts.map +1 -1
  22. package/node/lib/fbs/transport/dump.js +23 -10
  23. package/node/lib/index.d.ts +4 -0
  24. package/node/lib/index.d.ts.map +1 -1
  25. package/node/lib/index.js +5 -1
  26. package/node/lib/rtpParametersTypes.d.ts.map +1 -1
  27. package/node/lib/test/test-ActiveSpeakerObserver.js +4 -0
  28. package/node/lib/test/test-AudioLevelObserver.js +4 -0
  29. package/node/lib/test/test-Consumer.js +16 -7
  30. package/node/lib/test/test-DataConsumer.js +11 -2
  31. package/node/lib/test/test-DataProducer.js +5 -2
  32. package/node/lib/test/test-DirectTransport.js +5 -2
  33. package/node/lib/test/test-PipeTransport.js +22 -1
  34. package/node/lib/test/test-PlainTransport.js +6 -3
  35. package/node/lib/test/test-Producer.js +6 -4
  36. package/node/lib/test/test-Router.js +4 -2
  37. package/node/lib/test/test-WebRtcServer.js +4 -2
  38. package/node/lib/test/test-WebRtcTransport.js +14 -7
  39. package/node/lib/test/test-Worker.js +4 -4
  40. package/node/lib/test/test-werift-sctp.js +7 -1
  41. package/npm-scripts.mjs +50 -10
  42. package/package.json +14 -10
  43. package/worker/fbs/transport.fbs +1 -0
  44. package/worker/include/Channel/ChannelRequest.hpp +2 -0
  45. package/worker/include/MediaSoupErrors.hpp +24 -0
  46. package/worker/include/RTC/ICE/StunPacket.hpp +21 -2
  47. package/worker/include/RTC/NackGenerator.hpp +2 -2
  48. package/worker/include/RTC/RTP/RtpStreamRecv.hpp +2 -2
  49. package/worker/include/RTC/Router.hpp +10 -6
  50. package/worker/include/RTC/Transport.hpp +19 -9
  51. package/worker/include/Worker.hpp +7 -5
  52. package/worker/include/handles/TcpConnectionHandle.hpp +2 -2
  53. package/worker/include/handles/TcpServerHandle.hpp +2 -2
  54. package/worker/include/handles/UdpSocketHandle.hpp +2 -2
  55. package/worker/src/Channel/ChannelRequest.cpp +21 -0
  56. package/worker/src/Channel/ChannelSocket.cpp +8 -0
  57. package/worker/src/RTC/Consumer.cpp +6 -0
  58. package/worker/src/RTC/ICE/IceServer.cpp +2 -1
  59. package/worker/src/RTC/ICE/StunPacket.cpp +8 -0
  60. package/worker/src/RTC/NackGenerator.cpp +1 -1
  61. package/worker/src/RTC/Producer.cpp +1 -1
  62. package/worker/src/RTC/Router.cpp +56 -53
  63. package/worker/src/RTC/SCTP/association/Association.cpp +0 -8
  64. package/worker/src/RTC/SeqManager.cpp +1 -3
  65. package/worker/src/RTC/SvcProducerStreamManager.cpp +1 -1
  66. package/worker/src/RTC/Transport.cpp +118 -76
  67. package/worker/src/Worker.cpp +51 -102
  68. package/worker/src/handles/TcpConnectionHandle.cpp +21 -7
  69. package/worker/src/handles/TcpServerHandle.cpp +10 -10
  70. package/worker/src/handles/UdpSocketHandle.cpp +15 -5
  71. package/worker/src/handles/UnixStreamSocketHandle.cpp +4 -3
  72. package/worker/test/src/RTC/ICE/TestStunPacket.cpp +6 -2
  73. package/worker/test/src/RTC/RTP/TestRtpStreamRecv.cpp +1 -1
  74. package/worker/test/src/RTC/TestNackGenerator.cpp +1 -1
@@ -38,6 +38,7 @@ exports.DumpT = exports.Dump = void 0;
38
38
  /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
39
39
  const flatbuffers = __importStar(require("flatbuffers"));
40
40
  const uint32_string_1 = require("../../fbs/common/uint32-string");
41
+ const sctp_negotiated_capabilities_1 = require("../../fbs/sctp-association/sctp-negotiated-capabilities");
41
42
  const sctp_parameters_1 = require("../../fbs/sctp-parameters/sctp-parameters");
42
43
  const recv_rtp_header_extensions_1 = require("../../fbs/transport/recv-rtp-header-extensions");
43
44
  const rtp_listener_1 = require("../../fbs/transport/rtp-listener");
@@ -137,24 +138,28 @@ class Dump {
137
138
  const offset = this.bb.__offset(this.bb_pos, 30);
138
139
  return offset ? this.bb.readUint8(this.bb_pos + offset) : null;
139
140
  }
140
- sctpListener(obj) {
141
+ sctpNegotiatedCapabilities(obj) {
141
142
  const offset = this.bb.__offset(this.bb_pos, 32);
143
+ return offset ? (obj || new sctp_negotiated_capabilities_1.SctpNegotiatedCapabilities()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
144
+ }
145
+ sctpListener(obj) {
146
+ const offset = this.bb.__offset(this.bb_pos, 34);
142
147
  return offset ? (obj || new sctp_listener_1.SctpListener()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
143
148
  }
144
149
  traceEventTypes(index) {
145
- const offset = this.bb.__offset(this.bb_pos, 34);
150
+ const offset = this.bb.__offset(this.bb_pos, 36);
146
151
  return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
147
152
  }
148
153
  traceEventTypesLength() {
149
- const offset = this.bb.__offset(this.bb_pos, 34);
154
+ const offset = this.bb.__offset(this.bb_pos, 36);
150
155
  return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
151
156
  }
152
157
  traceEventTypesArray() {
153
- const offset = this.bb.__offset(this.bb_pos, 34);
158
+ const offset = this.bb.__offset(this.bb_pos, 36);
154
159
  return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
155
160
  }
156
161
  static startDump(builder) {
157
- builder.startObject(16);
162
+ builder.startObject(17);
158
163
  }
159
164
  static addId(builder, idOffset) {
160
165
  builder.addFieldOffset(0, idOffset, 0);
@@ -258,11 +263,14 @@ class Dump {
258
263
  static addSctpState(builder, sctpState) {
259
264
  builder.addFieldInt8(13, sctpState, null);
260
265
  }
266
+ static addSctpNegotiatedCapabilities(builder, sctpNegotiatedCapabilitiesOffset) {
267
+ builder.addFieldOffset(14, sctpNegotiatedCapabilitiesOffset, 0);
268
+ }
261
269
  static addSctpListener(builder, sctpListenerOffset) {
262
- builder.addFieldOffset(14, sctpListenerOffset, 0);
270
+ builder.addFieldOffset(15, sctpListenerOffset, 0);
263
271
  }
264
272
  static addTraceEventTypes(builder, traceEventTypesOffset) {
265
- builder.addFieldOffset(15, traceEventTypesOffset, 0);
273
+ builder.addFieldOffset(16, traceEventTypesOffset, 0);
266
274
  }
267
275
  static createTraceEventTypesVector(builder, data) {
268
276
  builder.startVector(1, data.length, 1);
@@ -285,11 +293,11 @@ class Dump {
285
293
  builder.requiredField(offset, 18); // data_consumer_ids
286
294
  builder.requiredField(offset, 20); // recv_rtp_header_extensions
287
295
  builder.requiredField(offset, 22); // rtp_listener
288
- builder.requiredField(offset, 34); // trace_event_types
296
+ builder.requiredField(offset, 36); // trace_event_types
289
297
  return offset;
290
298
  }
291
299
  unpack() {
292
- return new DumpT(this.id(), this.direct(), this.bb.createScalarList(this.producerIds.bind(this), this.producerIdsLength()), this.bb.createScalarList(this.consumerIds.bind(this), this.consumerIdsLength()), this.bb.createObjList(this.mapSsrcConsumerId.bind(this), this.mapSsrcConsumerIdLength()), this.bb.createObjList(this.mapRtxSsrcConsumerId.bind(this), this.mapRtxSsrcConsumerIdLength()), this.bb.createScalarList(this.dataProducerIds.bind(this), this.dataProducerIdsLength()), this.bb.createScalarList(this.dataConsumerIds.bind(this), this.dataConsumerIdsLength()), (this.recvRtpHeaderExtensions() !== null ? this.recvRtpHeaderExtensions().unpack() : null), (this.rtpListener() !== null ? this.rtpListener().unpack() : null), this.maxSendMessageSize(), this.maxReceiveMessageSize(), (this.sctpParameters() !== null ? this.sctpParameters().unpack() : null), this.sctpState(), (this.sctpListener() !== null ? this.sctpListener().unpack() : null), this.bb.createScalarList(this.traceEventTypes.bind(this), this.traceEventTypesLength()));
300
+ return new DumpT(this.id(), this.direct(), this.bb.createScalarList(this.producerIds.bind(this), this.producerIdsLength()), this.bb.createScalarList(this.consumerIds.bind(this), this.consumerIdsLength()), this.bb.createObjList(this.mapSsrcConsumerId.bind(this), this.mapSsrcConsumerIdLength()), this.bb.createObjList(this.mapRtxSsrcConsumerId.bind(this), this.mapRtxSsrcConsumerIdLength()), this.bb.createScalarList(this.dataProducerIds.bind(this), this.dataProducerIdsLength()), this.bb.createScalarList(this.dataConsumerIds.bind(this), this.dataConsumerIdsLength()), (this.recvRtpHeaderExtensions() !== null ? this.recvRtpHeaderExtensions().unpack() : null), (this.rtpListener() !== null ? this.rtpListener().unpack() : null), this.maxSendMessageSize(), this.maxReceiveMessageSize(), (this.sctpParameters() !== null ? this.sctpParameters().unpack() : null), this.sctpState(), (this.sctpNegotiatedCapabilities() !== null ? this.sctpNegotiatedCapabilities().unpack() : null), (this.sctpListener() !== null ? this.sctpListener().unpack() : null), this.bb.createScalarList(this.traceEventTypes.bind(this), this.traceEventTypesLength()));
293
301
  }
294
302
  unpackTo(_o) {
295
303
  _o.id = this.id();
@@ -306,6 +314,7 @@ class Dump {
306
314
  _o.maxReceiveMessageSize = this.maxReceiveMessageSize();
307
315
  _o.sctpParameters = (this.sctpParameters() !== null ? this.sctpParameters().unpack() : null);
308
316
  _o.sctpState = this.sctpState();
317
+ _o.sctpNegotiatedCapabilities = (this.sctpNegotiatedCapabilities() !== null ? this.sctpNegotiatedCapabilities().unpack() : null);
309
318
  _o.sctpListener = (this.sctpListener() !== null ? this.sctpListener().unpack() : null);
310
319
  _o.traceEventTypes = this.bb.createScalarList(this.traceEventTypes.bind(this), this.traceEventTypesLength());
311
320
  }
@@ -326,9 +335,10 @@ class DumpT {
326
335
  maxReceiveMessageSize;
327
336
  sctpParameters;
328
337
  sctpState;
338
+ sctpNegotiatedCapabilities;
329
339
  sctpListener;
330
340
  traceEventTypes;
331
- constructor(id = null, direct = false, producerIds = [], consumerIds = [], mapSsrcConsumerId = [], mapRtxSsrcConsumerId = [], dataProducerIds = [], dataConsumerIds = [], recvRtpHeaderExtensions = null, rtpListener = null, maxSendMessageSize = 0, maxReceiveMessageSize = 0, sctpParameters = null, sctpState = null, sctpListener = null, traceEventTypes = []) {
341
+ constructor(id = null, direct = false, producerIds = [], consumerIds = [], mapSsrcConsumerId = [], mapRtxSsrcConsumerId = [], dataProducerIds = [], dataConsumerIds = [], recvRtpHeaderExtensions = null, rtpListener = null, maxSendMessageSize = 0, maxReceiveMessageSize = 0, sctpParameters = null, sctpState = null, sctpNegotiatedCapabilities = null, sctpListener = null, traceEventTypes = []) {
332
342
  this.id = id;
333
343
  this.direct = direct;
334
344
  this.producerIds = producerIds;
@@ -343,6 +353,7 @@ class DumpT {
343
353
  this.maxReceiveMessageSize = maxReceiveMessageSize;
344
354
  this.sctpParameters = sctpParameters;
345
355
  this.sctpState = sctpState;
356
+ this.sctpNegotiatedCapabilities = sctpNegotiatedCapabilities;
346
357
  this.sctpListener = sctpListener;
347
358
  this.traceEventTypes = traceEventTypes;
348
359
  }
@@ -357,6 +368,7 @@ class DumpT {
357
368
  const recvRtpHeaderExtensions = (this.recvRtpHeaderExtensions !== null ? this.recvRtpHeaderExtensions.pack(builder) : 0);
358
369
  const rtpListener = (this.rtpListener !== null ? this.rtpListener.pack(builder) : 0);
359
370
  const sctpParameters = (this.sctpParameters !== null ? this.sctpParameters.pack(builder) : 0);
371
+ const sctpNegotiatedCapabilities = (this.sctpNegotiatedCapabilities !== null ? this.sctpNegotiatedCapabilities.pack(builder) : 0);
360
372
  const sctpListener = (this.sctpListener !== null ? this.sctpListener.pack(builder) : 0);
361
373
  const traceEventTypes = Dump.createTraceEventTypesVector(builder, this.traceEventTypes);
362
374
  Dump.startDump(builder);
@@ -375,6 +387,7 @@ class DumpT {
375
387
  Dump.addSctpParameters(builder, sctpParameters);
376
388
  if (this.sctpState !== null)
377
389
  Dump.addSctpState(builder, this.sctpState);
390
+ Dump.addSctpNegotiatedCapabilities(builder, sctpNegotiatedCapabilities);
378
391
  Dump.addSctpListener(builder, sctpListener);
379
392
  Dump.addTraceEventTypes(builder, traceEventTypes);
380
393
  return Dump.endDump(builder);
@@ -6,6 +6,10 @@ import type { AppData } from './types';
6
6
  * Expose all types.
7
7
  */
8
8
  export type * as types from './types';
9
+ /**
10
+ * Expose all errors.
11
+ */
12
+ export * as errors from './errors';
9
13
  /**
10
14
  * Expose mediasoup version.
11
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EAER,iBAAiB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;GAEG;AACH,YAAY,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC;;GAEG;AAEH,eAAO,MAAM,OAAO,EAAE,MAA8C,CAAC;AAErE,QAAA,MAAM,QAAQ,EAAE,QAAqD,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB;;GAEG;AACH,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,IAAI,CA0BxE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,EAAE,EAC3E,QAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,UAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAElB,SAAS,EACT,oBAAoB,EACpB,OAAO,GACP,GAAE,cAAc,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CA6BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CAEnE;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,EAER,iBAAiB,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC;;GAEG;AACH,YAAY,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC;;GAEG;AAEH,eAAO,MAAM,OAAO,EAAE,MAA8C,CAAC;AAErE,QAAA,MAAM,QAAQ,EAAE,QAAqD,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB;;GAEG;AACH,OAAO,EAAE,gBAAgB,IAAI,SAAS,EAAE,MAAM,UAAU,CAAC;AAIzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,iBAAiB,GAAG,IAAI,CA0BxE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,aAAa,SAAS,OAAO,GAAG,OAAO,EAAE,EAC3E,QAAkB,EAClB,OAAO,EACP,UAAkB,EAClB,UAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAElB,SAAS,EACT,oBAAoB,EACpB,OAAO,GACP,GAAE,cAAc,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CA6BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,qBAAqB,CAEnE;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC"}
package/node/lib/index.js CHANGED
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.extras = exports.ortc = exports.parseScalabilityMode = exports.workerBin = exports.observer = exports.version = void 0;
36
+ exports.extras = exports.ortc = exports.parseScalabilityMode = exports.workerBin = exports.observer = exports.version = exports.errors = void 0;
37
37
  exports.setLogEventListeners = setLogEventListeners;
38
38
  exports.createWorker = createWorker;
39
39
  exports.getSupportedRtpCapabilities = getSupportedRtpCapabilities;
@@ -43,6 +43,10 @@ const Worker_1 = require("./Worker");
43
43
  const supportedRtpCapabilities_1 = require("./supportedRtpCapabilities");
44
44
  const scalabilityModesUtils_1 = require("./scalabilityModesUtils");
45
45
  const utils = __importStar(require("./utils"));
46
+ /**
47
+ * Expose all errors.
48
+ */
49
+ exports.errors = __importStar(require("./errors"));
46
50
  /**
47
51
  * Expose mediasoup version.
48
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rtpParametersTypes.d.ts","sourceRoot":"","sources":["../src/rtpParametersTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAE9B;;OAEG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IACrE,MAAM,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAC1C,kBAAkB,EAClB,sBAAsB,CACtB,GAAG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GACpC,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAKhB,GAAG,EAAE,qBAAqB,CAAC;IAE3B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACxC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,4BAA4B,EAAE,CAAC;IAElD;;OAEG;IACH,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErC;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAEvB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC9B,qCAAqC,GACrC,+CAA+C,GAC/C,wDAAwD,GACxD,4DAA4D,GAC5D,2EAA2E,GAC3E,6CAA6C,GAC7C,yFAAyF,GACzF,4BAA4B,GAC5B,+DAA+D,GAC/D,oCAAoC,GACpC,4DAA4D,GAC5D,2CAA2C,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,4BAA4B,GAAG;IAC1C;;OAEG;IACH,GAAG,EAAE,qBAAqB,CAAC;IAE3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"rtpParametersTypes.d.ts","sourceRoot":"","sources":["../src/rtpParametersTypes.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mediasoup = __importStar(require("../"));
37
37
  const enhancedEvents_1 = require("../enhancedEvents");
38
+ const errors_1 = require("../errors");
38
39
  const utils = __importStar(require("../utils"));
39
40
  const ctx = {
40
41
  mediaCodecs: utils.deepFreeze([
@@ -100,6 +101,7 @@ test('activeSpeakerObserver.close() succeeds', async () => {
100
101
  expect(activeSpeakerObserver.closed).toBe(true);
101
102
  dump = await ctx.router.dump();
102
103
  expect(dump.rtpObserverIds.length).toBe(0);
104
+ await expect(activeSpeakerObserver.pause()).rejects.toThrow(errors_1.NotFoundError);
103
105
  }, 2000);
104
106
  test('ActiveSpeakerObserver emits "routerclose" if Router is closed', async () => {
105
107
  const activeSpeakerObserver = await ctx.router.createActiveSpeakerObserver();
@@ -107,6 +109,7 @@ test('ActiveSpeakerObserver emits "routerclose" if Router is closed', async () =
107
109
  ctx.router.close();
108
110
  await promise;
109
111
  expect(activeSpeakerObserver.closed).toBe(true);
112
+ await expect(activeSpeakerObserver.pause()).rejects.toThrow(errors_1.NotFoundError);
110
113
  }, 2000);
111
114
  test('ActiveSpeakerObserver emits "routerclose" if Worker is closed', async () => {
112
115
  const activeSpeakerObserver = await ctx.router.createActiveSpeakerObserver();
@@ -114,4 +117,5 @@ test('ActiveSpeakerObserver emits "routerclose" if Worker is closed', async () =
114
117
  ctx.worker.close();
115
118
  await promise;
116
119
  expect(activeSpeakerObserver.closed).toBe(true);
120
+ await expect(activeSpeakerObserver.pause()).rejects.toThrow(errors_1.WorkerClosedError);
117
121
  }, 2000);
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mediasoup = __importStar(require("../"));
37
37
  const enhancedEvents_1 = require("../enhancedEvents");
38
+ const errors_1 = require("../errors");
38
39
  const utils = __importStar(require("../utils"));
39
40
  const ctx = {
40
41
  mediaCodecs: utils.deepFreeze([
@@ -105,6 +106,7 @@ test('audioLevelObserver.close() succeeds', async () => {
105
106
  expect(audioLevelObserver.closed).toBe(true);
106
107
  dump = await ctx.router.dump();
107
108
  expect(dump.rtpObserverIds.length).toBe(0);
109
+ await expect(audioLevelObserver.pause()).rejects.toThrow(errors_1.NotFoundError);
108
110
  }, 2000);
109
111
  test('AudioLevelObserver emits "routerclose" if Router is closed', async () => {
110
112
  const audioLevelObserver = await ctx.router.createAudioLevelObserver();
@@ -112,6 +114,7 @@ test('AudioLevelObserver emits "routerclose" if Router is closed', async () => {
112
114
  ctx.router.close();
113
115
  await promise;
114
116
  expect(audioLevelObserver.closed).toBe(true);
117
+ await expect(audioLevelObserver.pause()).rejects.toThrow(errors_1.NotFoundError);
115
118
  }, 2000);
116
119
  test('AudioLevelObserver emits "routerclose" if Worker is closed', async () => {
117
120
  const audioLevelObserver = await ctx.router.createAudioLevelObserver();
@@ -119,4 +122,5 @@ test('AudioLevelObserver emits "routerclose" if Worker is closed', async () => {
119
122
  ctx.worker.close();
120
123
  await promise;
121
124
  expect(audioLevelObserver.closed).toBe(true);
125
+ await expect(audioLevelObserver.pause()).rejects.toThrow(errors_1.WorkerClosedError);
122
126
  }, 2000);
@@ -570,6 +570,12 @@ test('transport.consume() succeeds', async () => {
570
570
  ]),
571
571
  });
572
572
  }, 2000);
573
+ test('transport.consume() with unknown producerId fails', async () => {
574
+ await expect(ctx.webRtcTransport2.consume({
575
+ producerId: '12345678',
576
+ rtpCapabilities: ctx.consumerDeviceCapabilities,
577
+ })).rejects.toThrow(errors_1.NotFoundError);
578
+ }, 2000);
573
579
  test('transport.consume() with enableRtx succeeds', async () => {
574
580
  const audioConsumer2 = await ctx.webRtcTransport2.consume({
575
581
  producerId: ctx.audioProducer.id,
@@ -1137,6 +1143,7 @@ test('consumer.close() succeeds', async () => {
1137
1143
  audioConsumer.close();
1138
1144
  expect(onObserverClose).toHaveBeenCalledTimes(1);
1139
1145
  expect(audioConsumer.closed).toBe(true);
1146
+ await expect(audioConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
1140
1147
  const routerDump = await ctx.router.dump();
1141
1148
  expect(routerDump.mapProducerIdConsumerIds).toEqual(expect.arrayContaining([
1142
1149
  { key: ctx.audioProducer.id, values: [] },
@@ -1158,14 +1165,14 @@ test('Consumer methods reject if closed', async () => {
1158
1165
  rtpCapabilities: ctx.consumerDeviceCapabilities,
1159
1166
  });
1160
1167
  audioConsumer.close();
1161
- await expect(audioConsumer.dump()).rejects.toThrow(Error);
1162
- await expect(audioConsumer.getStats()).rejects.toThrow(Error);
1163
- await expect(audioConsumer.pause()).rejects.toThrow(Error);
1164
- await expect(audioConsumer.resume()).rejects.toThrow(Error);
1168
+ await expect(audioConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
1169
+ await expect(audioConsumer.getStats()).rejects.toThrow(errors_1.NotFoundError);
1170
+ await expect(audioConsumer.pause()).rejects.toThrow(errors_1.NotFoundError);
1171
+ await expect(audioConsumer.resume()).rejects.toThrow(errors_1.NotFoundError);
1165
1172
  // @ts-expect-error --- Testing purposes.
1166
- await expect(audioConsumer.setPreferredLayers({})).rejects.toThrow(Error);
1167
- await expect(audioConsumer.setPriority(2)).rejects.toThrow(Error);
1168
- await expect(audioConsumer.requestKeyFrame()).rejects.toThrow(Error);
1173
+ await expect(audioConsumer.setPreferredLayers({})).rejects.toThrow(TypeError);
1174
+ await expect(audioConsumer.setPriority(2)).rejects.toThrow(errors_1.NotFoundError);
1175
+ await expect(audioConsumer.requestKeyFrame()).rejects.toThrow(errors_1.NotFoundError);
1169
1176
  }, 2000);
1170
1177
  test('Consumer emits "producerclose" if Producer is closed', async () => {
1171
1178
  const audioConsumer = await ctx.webRtcTransport2.consume({
@@ -1179,6 +1186,7 @@ test('Consumer emits "producerclose" if Producer is closed', async () => {
1179
1186
  await promise;
1180
1187
  expect(onObserverClose).toHaveBeenCalledTimes(1);
1181
1188
  expect(audioConsumer.closed).toBe(true);
1189
+ await expect(audioConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
1182
1190
  }, 2000);
1183
1191
  test('Consumer emits "transportclose" if Transport is closed', async () => {
1184
1192
  const videoConsumer = await ctx.webRtcTransport2.consume({
@@ -1192,6 +1200,7 @@ test('Consumer emits "transportclose" if Transport is closed', async () => {
1192
1200
  await promise;
1193
1201
  expect(onObserverClose).toHaveBeenCalledTimes(1);
1194
1202
  expect(videoConsumer.closed).toBe(true);
1203
+ await expect(videoConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
1195
1204
  await expect(ctx.router.dump()).resolves.toMatchObject({
1196
1205
  mapProducerIdConsumerIds: expect.arrayContaining([
1197
1206
  { key: ctx.audioProducer.id, values: [] },
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mediasoup = __importStar(require("../"));
37
37
  const enhancedEvents_1 = require("../enhancedEvents");
38
+ const errors_1 = require("../errors");
38
39
  const utils = __importStar(require("../utils"));
39
40
  const ctx = {
40
41
  sctpDataProducerOptions: utils.deepFreeze({
@@ -108,6 +109,11 @@ test('transport.consumeData() succeeds', async () => {
108
109
  dataConsumerIds: [dataConsumer.id],
109
110
  });
110
111
  }, 2000);
112
+ test('transport.consumeData() with unknown dataProducerId fails', async () => {
113
+ await expect(ctx.webRtcTransport2.consumeData({
114
+ dataProducerId: '12345678',
115
+ })).rejects.toThrow(errors_1.NotFoundError);
116
+ }, 2000);
111
117
  test('dataConsumer.dump() succeeds', async () => {
112
118
  const dataConsumer = await ctx.webRtcTransport2.consumeData({
113
119
  dataProducerId: ctx.sctpDataProducer.id,
@@ -345,6 +351,7 @@ test('dataConsumer.close() succeeds', async () => {
345
351
  dataConsumer.close();
346
352
  expect(onObserverClose).toHaveBeenCalledTimes(1);
347
353
  expect(dataConsumer.closed).toBe(true);
354
+ await expect(dataConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
348
355
  const dump = await ctx.router.dump();
349
356
  expect(dump.mapDataProducerIdDataConsumerIds).toEqual(expect.arrayContaining([{ key: ctx.sctpDataProducer.id, values: [] }]));
350
357
  expect(dump.mapDataConsumerIdDataProducerId).toEqual([]);
@@ -359,8 +366,8 @@ test('Consumer methods reject if closed', async () => {
359
366
  dataProducerId: ctx.sctpDataProducer.id,
360
367
  });
361
368
  dataConsumer.close();
362
- await expect(dataConsumer.dump()).rejects.toThrow(Error);
363
- await expect(dataConsumer.getStats()).rejects.toThrow(Error);
369
+ await expect(dataConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
370
+ await expect(dataConsumer.getStats()).rejects.toThrow(errors_1.NotFoundError);
364
371
  }, 2000);
365
372
  test('DataConsumer emits "dataproducerclose" if DataProducer is closed', async () => {
366
373
  const dataConsumer = await ctx.webRtcTransport2.consumeData({
@@ -373,6 +380,7 @@ test('DataConsumer emits "dataproducerclose" if DataProducer is closed', async (
373
380
  await promise;
374
381
  expect(onObserverClose).toHaveBeenCalledTimes(1);
375
382
  expect(dataConsumer.closed).toBe(true);
383
+ await expect(dataConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
376
384
  }, 2000);
377
385
  test('DataConsumer emits "transportclose" if Transport is closed', async () => {
378
386
  const dataConsumer = await ctx.webRtcTransport2.consumeData({
@@ -385,6 +393,7 @@ test('DataConsumer emits "transportclose" if Transport is closed', async () => {
385
393
  await promise;
386
394
  expect(onObserverClose).toHaveBeenCalledTimes(1);
387
395
  expect(dataConsumer.closed).toBe(true);
396
+ await expect(dataConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
388
397
  await expect(ctx.router.dump()).resolves.toMatchObject({
389
398
  mapDataProducerIdDataConsumerIds: {},
390
399
  mapDataConsumerIdDataProducerId: {},
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mediasoup = __importStar(require("../"));
37
37
  const enhancedEvents_1 = require("../enhancedEvents");
38
+ const errors_1 = require("../errors");
38
39
  const utils = __importStar(require("../utils"));
39
40
  const ctx = {
40
41
  dataProducerOptions1: utils.deepFreeze({
@@ -249,6 +250,7 @@ test('dataProducer.close() succeeds', async () => {
249
250
  dataProducer1.close();
250
251
  expect(onObserverClose).toHaveBeenCalledTimes(1);
251
252
  expect(dataProducer1.closed).toBe(true);
253
+ await expect(dataProducer1.dump()).rejects.toThrow(errors_1.NotFoundError);
252
254
  await expect(ctx.router.dump()).resolves.toMatchObject({
253
255
  mapDataProducerIdDataConsumerIds: {},
254
256
  mapDataConsumerIdDataProducerId: {},
@@ -262,8 +264,8 @@ test('dataProducer.close() succeeds', async () => {
262
264
  test('DataProducer methods reject if closed', async () => {
263
265
  const dataProducer1 = await ctx.webRtcTransport1.produceData(ctx.dataProducerOptions1);
264
266
  dataProducer1.close();
265
- await expect(dataProducer1.dump()).rejects.toThrow(Error);
266
- await expect(dataProducer1.getStats()).rejects.toThrow(Error);
267
+ await expect(dataProducer1.dump()).rejects.toThrow(errors_1.NotFoundError);
268
+ await expect(dataProducer1.getStats()).rejects.toThrow(errors_1.NotFoundError);
267
269
  }, 2000);
268
270
  test('DataProducer emits "transportclose" if Transport is closed', async () => {
269
271
  const dataProducer2 = await ctx.webRtcTransport2.produceData(ctx.dataProducerOptions2);
@@ -274,4 +276,5 @@ test('DataProducer emits "transportclose" if Transport is closed', async () => {
274
276
  await promise;
275
277
  expect(onObserverClose).toHaveBeenCalledTimes(1);
276
278
  expect(dataProducer2.closed).toBe(true);
279
+ await expect(dataProducer2.dump()).rejects.toThrow(errors_1.NotFoundError);
277
280
  }, 2000);
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const mediasoup = __importStar(require("../"));
37
37
  const enhancedEvents_1 = require("../enhancedEvents");
38
+ const errors_1 = require("../errors");
38
39
  const ctx = {};
39
40
  beforeEach(async () => {
40
41
  ctx.worker = await mediasoup.createWorker();
@@ -309,8 +310,8 @@ test('DirectTransport methods reject if closed', async () => {
309
310
  directTransport.close();
310
311
  expect(onObserverClose).toHaveBeenCalledTimes(1);
311
312
  expect(directTransport.closed).toBe(true);
312
- await expect(directTransport.dump()).rejects.toThrow(Error);
313
- await expect(directTransport.getStats()).rejects.toThrow(Error);
313
+ await expect(directTransport.dump()).rejects.toThrow(errors_1.NotFoundError);
314
+ await expect(directTransport.getStats()).rejects.toThrow(errors_1.NotFoundError);
314
315
  }, 2000);
315
316
  test('DirectTransport emits "routerclose" if Router is closed', async () => {
316
317
  const directTransport = await ctx.router.createDirectTransport();
@@ -321,6 +322,7 @@ test('DirectTransport emits "routerclose" if Router is closed', async () => {
321
322
  await promise;
322
323
  expect(onObserverClose).toHaveBeenCalledTimes(1);
323
324
  expect(directTransport.closed).toBe(true);
325
+ await expect(directTransport.getStats()).rejects.toThrow(errors_1.NotFoundError);
324
326
  }, 2000);
325
327
  test('DirectTransport emits "routerclose" if Worker is closed', async () => {
326
328
  const directTransport = await ctx.router.createDirectTransport();
@@ -331,4 +333,5 @@ test('DirectTransport emits "routerclose" if Worker is closed', async () => {
331
333
  await promise;
332
334
  expect(onObserverClose).toHaveBeenCalledTimes(1);
333
335
  expect(directTransport.closed).toBe(true);
336
+ await expect(directTransport.getStats()).rejects.toThrow(errors_1.WorkerClosedError);
334
337
  }, 2000);
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const pick_port_1 = require("pick-port");
37
37
  const mediasoup = __importStar(require("../"));
38
38
  const enhancedEvents_1 = require("../enhancedEvents");
39
+ const errors_1 = require("../errors");
39
40
  const utils = __importStar(require("../utils"));
40
41
  const ctx = {
41
42
  mediaCodecs: utils.deepFreeze([
@@ -472,6 +473,24 @@ test('router.pipeToRouter() succeeds with video', async () => {
472
473
  ]);
473
474
  expect(pipeProducer.paused).toBe(true);
474
475
  }, 2000);
476
+ test('router.pipeToRouter() with unknown router, producerId or dataProducerId fails', async () => {
477
+ const router3 = await ctx.worker1.createRouter({
478
+ mediaCodecs: ctx.mediaCodecs,
479
+ });
480
+ router3.close();
481
+ await expect(ctx.router1.pipeToRouter({
482
+ router: router3,
483
+ producerId: ctx.videoProducer.id,
484
+ })).rejects.toThrow(errors_1.NotFoundError);
485
+ await expect(ctx.router1.pipeToRouter({
486
+ router: ctx.router2,
487
+ producerId: '12345678',
488
+ })).rejects.toThrow(errors_1.NotFoundError);
489
+ await expect(ctx.router1.pipeToRouter({
490
+ router: ctx.router2,
491
+ dataProducerId: '12345678',
492
+ })).rejects.toThrow(errors_1.NotFoundError);
493
+ }, 2000);
475
494
  test('router.createPipeTransport() with wrong arguments rejects with TypeError', async () => {
476
495
  // @ts-expect-error --- Testing purposes.
477
496
  await expect(ctx.router1.createPipeTransport({})).rejects.toThrow(TypeError);
@@ -776,7 +795,7 @@ test('producer.pause() and producer.resume() are transmitted to pipe Consumer',
776
795
  await ctx.videoProducer.pause();
777
796
  // We need to obtain the pipeProducer to await for its 'puase' and 'resume'
778
797
  // events, otherwise we may get errors like this:
779
- // InvalidStateError: Channel closed, pending request aborted [method:PRODUCER_PAUSE, id:8]
798
+ // WorkerClosedError: Channel closed, pending request aborted [method:PRODUCER_PAUSE, id:8]
780
799
  // See related fixed issue:
781
800
  // https://github.com/versatica/mediasoup/issues/1374
782
801
  const { pipeProducer: pipeVideoProducer } = await ctx.router1.pipeToRouter({
@@ -822,6 +841,7 @@ test('producer.close() is transmitted to pipe Consumer', async () => {
822
841
  await (0, enhancedEvents_1.enhancedOnce)(videoConsumer, 'producerclose');
823
842
  }
824
843
  expect(videoConsumer.closed).toBe(true);
844
+ await expect(videoConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
825
845
  }, 2000);
826
846
  test('router.pipeToRouter() with keepId: true fails if both Routers belong to the same Worker', async () => {
827
847
  const router1bis = await ctx.worker1.createRouter({
@@ -914,6 +934,7 @@ test('dataProducer.close() is transmitted to pipe DataConsumer', async () => {
914
934
  await (0, enhancedEvents_1.enhancedOnce)(dataConsumer, 'dataproducerclose');
915
935
  }
916
936
  expect(dataConsumer.closed).toBe(true);
937
+ await expect(dataConsumer.dump()).rejects.toThrow(errors_1.NotFoundError);
917
938
  }, 2000);
918
939
  test('router.pipeToRouter() called twice generates a single PipeTransport pair', async () => {
919
940
  const routerA = await ctx.worker1.createRouter({
@@ -37,6 +37,7 @@ const os = __importStar(require("node:os"));
37
37
  const pick_port_1 = require("pick-port");
38
38
  const mediasoup = __importStar(require("../"));
39
39
  const enhancedEvents_1 = require("../enhancedEvents");
40
+ const errors_1 = require("../errors");
40
41
  const utils = __importStar(require("../utils"));
41
42
  const IS_WINDOWS = os.platform() === 'win32';
42
43
  const ctx = {
@@ -460,9 +461,9 @@ test('PlainTransport methods reject if closed', async () => {
460
461
  plainTransport.close();
461
462
  expect(onObserverClose).toHaveBeenCalledTimes(1);
462
463
  expect(plainTransport.closed).toBe(true);
463
- await expect(plainTransport.dump()).rejects.toThrow(Error);
464
- await expect(plainTransport.getStats()).rejects.toThrow(Error);
465
- await expect(plainTransport.connect({})).rejects.toThrow(Error);
464
+ await expect(plainTransport.dump()).rejects.toThrow(errors_1.NotFoundError);
465
+ await expect(plainTransport.getStats()).rejects.toThrow(errors_1.NotFoundError);
466
+ await expect(plainTransport.connect({})).rejects.toThrow(errors_1.NotFoundError);
466
467
  }, 2000);
467
468
  test('router.createPlainTransport() with fixed port succeeds', async () => {
468
469
  const port = await (0, pick_port_1.pickPort)({
@@ -486,6 +487,7 @@ test('PlainTransport emits "routerclose" if Router is closed', async () => {
486
487
  await promise;
487
488
  expect(onObserverClose).toHaveBeenCalledTimes(1);
488
489
  expect(plainTransport.closed).toBe(true);
490
+ await expect(plainTransport.dump()).rejects.toThrow(errors_1.NotFoundError);
489
491
  }, 2000);
490
492
  test('PlainTransport emits "routerclose" if Worker is closed', async () => {
491
493
  const plainTransport = await ctx.router.createPlainTransport({
@@ -498,4 +500,5 @@ test('PlainTransport emits "routerclose" if Worker is closed', async () => {
498
500
  await promise;
499
501
  expect(onObserverClose).toHaveBeenCalledTimes(1);
500
502
  expect(plainTransport.closed).toBe(true);
503
+ await expect(plainTransport.dump()).rejects.toThrow(errors_1.WorkerClosedError);
501
504
  }, 2000);
@@ -650,6 +650,7 @@ test('producer.close() succeeds', async () => {
650
650
  audioProducer.close();
651
651
  expect(onObserverClose).toHaveBeenCalledTimes(1);
652
652
  expect(audioProducer.closed).toBe(true);
653
+ await expect(audioProducer.dump()).rejects.toThrow(errors_1.NotFoundError);
653
654
  await expect(ctx.router.dump()).resolves.toMatchObject({
654
655
  mapProducerIdConsumerIds: [],
655
656
  mapConsumerIdProducerId: [],
@@ -663,10 +664,10 @@ test('producer.close() succeeds', async () => {
663
664
  test('Producer methods reject if closed', async () => {
664
665
  const audioProducer = await ctx.webRtcTransport1.produce(ctx.audioProducerOptions);
665
666
  audioProducer.close();
666
- await expect(audioProducer.dump()).rejects.toThrow(Error);
667
- await expect(audioProducer.getStats()).rejects.toThrow(Error);
668
- await expect(audioProducer.pause()).rejects.toThrow(Error);
669
- await expect(audioProducer.resume()).rejects.toThrow(Error);
667
+ await expect(audioProducer.dump()).rejects.toThrow(errors_1.NotFoundError);
668
+ await expect(audioProducer.getStats()).rejects.toThrow(errors_1.NotFoundError);
669
+ await expect(audioProducer.pause()).rejects.toThrow(errors_1.NotFoundError);
670
+ await expect(audioProducer.resume()).rejects.toThrow(errors_1.NotFoundError);
670
671
  }, 2000);
671
672
  test('Producer emits "transportclose" if Transport is closed', async () => {
672
673
  const videoProducer = await ctx.webRtcTransport2.produce(ctx.videoProducerOptions);
@@ -677,4 +678,5 @@ test('Producer emits "transportclose" if Transport is closed', async () => {
677
678
  await promise;
678
679
  expect(onObserverClose).toHaveBeenCalledTimes(1);
679
680
  expect(videoProducer.closed).toBe(true);
681
+ await expect(videoProducer.dump()).rejects.toThrow(errors_1.NotFoundError);
680
682
  }, 2000);
@@ -143,9 +143,9 @@ test('worker.createRouter() with wrong arguments rejects with TypeError', async
143
143
  // @ts-expect-error --- Testing purposes.
144
144
  ctx.worker.createRouter({ appData: 'NOT-AN-OBJECT' })).rejects.toThrow(TypeError);
145
145
  }, 2000);
146
- test('worker.createRouter() rejects with InvalidStateError if Worker is closed', async () => {
146
+ test('worker.createRouter() rejects with WorkerClosedError if Worker is closed', async () => {
147
147
  ctx.worker.close();
148
- await expect(ctx.worker.createRouter({ mediaCodecs: ctx.mediaCodecs })).rejects.toThrow(errors_1.InvalidStateError);
148
+ await expect(ctx.worker.createRouter({ mediaCodecs: ctx.mediaCodecs })).rejects.toThrow(errors_1.WorkerClosedError);
149
149
  }, 2000);
150
150
  test('router.rtpCapabilities getter returns cloned RTP capabilities', async () => {
151
151
  const router = await ctx.worker.createRouter({
@@ -182,6 +182,7 @@ test('router.close() succeeds', async () => {
182
182
  router.close();
183
183
  expect(onObserverClose).toHaveBeenCalledTimes(1);
184
184
  expect(router.closed).toBe(true);
185
+ await expect(router.dump()).rejects.toThrow(errors_1.NotFoundError);
185
186
  }, 2000);
186
187
  test('Router emits "workerclose" if Worker is closed', async () => {
187
188
  const router = await ctx.worker.createRouter({
@@ -194,4 +195,5 @@ test('Router emits "workerclose" if Worker is closed', async () => {
194
195
  await promise;
195
196
  expect(onObserverClose).toHaveBeenCalledTimes(1);
196
197
  expect(router.closed).toBe(true);
198
+ await expect(router.dump()).rejects.toThrow(errors_1.WorkerClosedError);
197
199
  }, 2000);
@@ -282,7 +282,7 @@ test('worker.createWebRtcServer() with unavailable listenInfos rejects with Erro
282
282
  })).rejects.toThrow(Error);
283
283
  worker2.close();
284
284
  }, 2000);
285
- test('worker.createWebRtcServer() rejects with InvalidStateError if Worker is closed', async () => {
285
+ test('worker.createWebRtcServer() rejects with WorkerClosedError if Worker is closed', async () => {
286
286
  ctx.worker.close();
287
287
  const port = await (0, pick_port_1.pickPort)({
288
288
  type: 'udp',
@@ -291,7 +291,7 @@ test('worker.createWebRtcServer() rejects with InvalidStateError if Worker is cl
291
291
  });
292
292
  await expect(ctx.worker.createWebRtcServer({
293
293
  listenInfos: [{ protocol: 'udp', ip: '127.0.0.1', port }],
294
- })).rejects.toThrow(errors_1.InvalidStateError);
294
+ })).rejects.toThrow(errors_1.WorkerClosedError);
295
295
  }, 2000);
296
296
  test('webRtcServer.close() succeeds', async () => {
297
297
  const port = await (0, pick_port_1.pickPort)({
@@ -305,6 +305,7 @@ test('webRtcServer.close() succeeds', async () => {
305
305
  const onObserverClose = jest.fn();
306
306
  webRtcServer.observer.once('close', onObserverClose);
307
307
  webRtcServer.close();
308
+ await expect(webRtcServer.dump()).rejects.toThrow(errors_1.NotFoundError);
308
309
  expect(onObserverClose).toHaveBeenCalledTimes(1);
309
310
  expect(webRtcServer.closed).toBe(true);
310
311
  }, 2000);
@@ -324,6 +325,7 @@ test('WebRtcServer emits "workerclose" if Worker is closed', async () => {
324
325
  await promise;
325
326
  expect(onObserverClose).toHaveBeenCalledTimes(1);
326
327
  expect(webRtcServer.closed).toBe(true);
328
+ await expect(webRtcServer.dump()).rejects.toThrow(errors_1.WorkerClosedError);
327
329
  }, 2000);
328
330
  test('router.createWebRtcTransport() with webRtcServer succeeds and transport is closed', async () => {
329
331
  const port1 = await (0, pick_port_1.pickPort)({