node-datachannel 0.26.0 → 0.28.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 (103) hide show
  1. package/.eslintrc.json +25 -25
  2. package/.prettierignore +4 -0
  3. package/.prettierrc +1 -0
  4. package/API.md +4 -4
  5. package/BULDING.md +11 -2
  6. package/CMakeLists.txt +37 -13
  7. package/README.md +22 -18
  8. package/dist/cjs/index.cjs.map +1 -1
  9. package/dist/cjs/lib/datachannel-stream.cjs +13 -13
  10. package/dist/cjs/lib/datachannel-stream.cjs.map +1 -1
  11. package/dist/cjs/lib/index.cjs +1 -3
  12. package/dist/cjs/lib/index.cjs.map +1 -1
  13. package/dist/cjs/lib/websocket-server.cjs.map +1 -1
  14. package/dist/cjs/lib/websocket.cjs.map +1 -1
  15. package/dist/cjs/polyfill/Events.cjs +52 -3
  16. package/dist/cjs/polyfill/Events.cjs.map +1 -1
  17. package/dist/cjs/polyfill/Exception.cjs.map +1 -1
  18. package/dist/cjs/polyfill/RTCCertificate.cjs +5 -2
  19. package/dist/cjs/polyfill/RTCCertificate.cjs.map +1 -1
  20. package/dist/cjs/polyfill/RTCDataChannel.cjs +27 -19
  21. package/dist/cjs/polyfill/RTCDataChannel.cjs.map +1 -1
  22. package/dist/cjs/polyfill/RTCDtlsTransport.cjs +6 -5
  23. package/dist/cjs/polyfill/RTCDtlsTransport.cjs.map +1 -1
  24. package/dist/cjs/polyfill/RTCError.cjs +9 -2
  25. package/dist/cjs/polyfill/RTCError.cjs.map +1 -1
  26. package/dist/cjs/polyfill/RTCIceCandidate.cjs +13 -8
  27. package/dist/cjs/polyfill/RTCIceCandidate.cjs.map +1 -1
  28. package/dist/cjs/polyfill/RTCIceTransport.cjs +26 -16
  29. package/dist/cjs/polyfill/RTCIceTransport.cjs.map +1 -1
  30. package/dist/cjs/polyfill/RTCPeerConnection.cjs +80 -70
  31. package/dist/cjs/polyfill/RTCPeerConnection.cjs.map +1 -1
  32. package/dist/cjs/polyfill/RTCSctpTransport.cjs +9 -11
  33. package/dist/cjs/polyfill/RTCSctpTransport.cjs.map +1 -1
  34. package/dist/cjs/polyfill/RTCSessionDescription.cjs +10 -2
  35. package/dist/cjs/polyfill/RTCSessionDescription.cjs.map +1 -1
  36. package/dist/cjs/polyfill/index.cjs.map +1 -1
  37. package/dist/esm/index.mjs.map +1 -1
  38. package/dist/esm/lib/datachannel-stream.mjs.map +1 -1
  39. package/dist/esm/lib/index.mjs +1 -3
  40. package/dist/esm/lib/index.mjs.map +1 -1
  41. package/dist/esm/lib/websocket-server.mjs.map +1 -1
  42. package/dist/esm/lib/websocket.mjs.map +1 -1
  43. package/dist/esm/polyfill/Events.mjs +52 -4
  44. package/dist/esm/polyfill/Events.mjs.map +1 -1
  45. package/dist/esm/polyfill/Exception.mjs.map +1 -1
  46. package/dist/esm/polyfill/RTCCertificate.mjs +5 -2
  47. package/dist/esm/polyfill/RTCCertificate.mjs.map +1 -1
  48. package/dist/esm/polyfill/RTCDataChannel.mjs +27 -19
  49. package/dist/esm/polyfill/RTCDataChannel.mjs.map +1 -1
  50. package/dist/esm/polyfill/RTCDtlsTransport.mjs +6 -5
  51. package/dist/esm/polyfill/RTCDtlsTransport.mjs.map +1 -1
  52. package/dist/esm/polyfill/RTCError.mjs +9 -2
  53. package/dist/esm/polyfill/RTCError.mjs.map +1 -1
  54. package/dist/esm/polyfill/RTCIceCandidate.mjs +13 -8
  55. package/dist/esm/polyfill/RTCIceCandidate.mjs.map +1 -1
  56. package/dist/esm/polyfill/RTCIceTransport.mjs +26 -17
  57. package/dist/esm/polyfill/RTCIceTransport.mjs.map +1 -1
  58. package/dist/esm/polyfill/RTCPeerConnection.mjs +80 -70
  59. package/dist/esm/polyfill/RTCPeerConnection.mjs.map +1 -1
  60. package/dist/esm/polyfill/RTCSctpTransport.mjs +9 -11
  61. package/dist/esm/polyfill/RTCSctpTransport.mjs.map +1 -1
  62. package/dist/esm/polyfill/RTCSessionDescription.mjs +10 -2
  63. package/dist/esm/polyfill/RTCSessionDescription.mjs.map +1 -1
  64. package/dist/esm/polyfill/index.mjs.map +1 -1
  65. package/dist/types/lib/index.d.ts +5 -2
  66. package/dist/types/lib/types.d.ts +6 -6
  67. package/dist/types/polyfill/Events.d.ts +3 -3
  68. package/dist/types/polyfill/RTCCertificate.d.ts +1 -0
  69. package/dist/types/polyfill/RTCDataChannel.d.ts +6 -6
  70. package/dist/types/polyfill/RTCDtlsTransport.d.ts +4 -6
  71. package/dist/types/polyfill/RTCError.d.ts +1 -0
  72. package/dist/types/polyfill/RTCIceCandidate.d.ts +1 -1
  73. package/dist/types/polyfill/RTCIceTransport.d.ts +16 -10
  74. package/dist/types/polyfill/RTCPeerConnection.d.ts +29 -22
  75. package/dist/types/polyfill/RTCSctpTransport.d.ts +2 -4
  76. package/dist/types/polyfill/RTCSessionDescription.d.ts +1 -0
  77. package/jest.config.ts +8 -8
  78. package/package.json +114 -112
  79. package/rollup.config.mjs +1 -1
  80. package/src/cpp/data-channel-wrapper.cpp +11 -0
  81. package/src/cpp/main.cpp +14 -0
  82. package/src/cpp/peer-connection-wrapper.cpp +9 -1
  83. package/src/cpp/peer-connection-wrapper.h +5 -1
  84. package/src/cpp/rtc-wrapper.cpp +18 -0
  85. package/src/index.ts +0 -1
  86. package/src/lib/datachannel-stream.ts +83 -84
  87. package/src/lib/index.ts +165 -139
  88. package/src/lib/types.ts +97 -72
  89. package/src/lib/websocket-server.ts +25 -25
  90. package/src/lib/websocket.ts +19 -19
  91. package/src/polyfill/Events.ts +65 -19
  92. package/src/polyfill/Exception.ts +24 -24
  93. package/src/polyfill/README.md +8 -8
  94. package/src/polyfill/RTCCertificate.ts +16 -12
  95. package/src/polyfill/RTCDataChannel.ts +198 -192
  96. package/src/polyfill/RTCDtlsTransport.ts +38 -39
  97. package/src/polyfill/RTCError.ts +63 -56
  98. package/src/polyfill/RTCIceCandidate.ts +120 -116
  99. package/src/polyfill/RTCIceTransport.ts +71 -64
  100. package/src/polyfill/RTCPeerConnection.ts +436 -420
  101. package/src/polyfill/RTCSctpTransport.ts +43 -47
  102. package/src/polyfill/RTCSessionDescription.ts +26 -17
  103. package/src/polyfill/index.ts +22 -22
@@ -10,31 +10,30 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
10
10
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
11
11
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
12
12
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
13
- var _pc, _extraFunctions, _transport;
13
+ var _pc, _transport;
14
14
  class RTCSctpTransport extends EventTarget {
15
15
  constructor(initial) {
16
16
  super();
17
17
  __privateAdd(this, _pc, null);
18
- __privateAdd(this, _extraFunctions, null);
19
18
  __privateAdd(this, _transport, null);
20
19
  __publicField(this, "onstatechange", null);
21
20
  __privateSet(this, _pc, initial.pc);
22
- __privateSet(this, _extraFunctions, initial.extraFunctions);
23
- __privateSet(this, _transport, new RTCDtlsTransport({ pc: initial.pc, extraFunctions: initial.extraFunctions }));
21
+ __privateSet(this, _transport, new RTCDtlsTransport({
22
+ pc: initial.pc
23
+ }));
24
24
  __privateGet(this, _pc).addEventListener("connectionstatechange", () => {
25
- this.dispatchEvent(new Event("statechange"));
26
- });
27
- this.addEventListener("statechange", (e) => {
28
- if (this.onstatechange) this.onstatechange(e);
25
+ const e = new Event("statechange");
26
+ this.dispatchEvent(e);
27
+ this.onstatechange?.(e);
29
28
  });
30
29
  }
31
30
  get maxChannels() {
32
31
  if (this.state !== "connected") return null;
33
- return __privateGet(this, _pc) ? __privateGet(this, _extraFunctions).maxDataChannelId() : 0;
32
+ return __privateGet(this, _pc).ext_maxDataChannelId;
34
33
  }
35
34
  get maxMessageSize() {
36
35
  if (this.state !== "connected") return null;
37
- return __privateGet(this, _pc) ? __privateGet(this, _extraFunctions).maxMessageSize() : 0;
36
+ return __privateGet(this, _pc)?.ext_maxMessageSize ?? 65536;
38
37
  }
39
38
  get state() {
40
39
  let state = __privateGet(this, _pc).connectionState;
@@ -50,7 +49,6 @@ class RTCSctpTransport extends EventTarget {
50
49
  }
51
50
  }
52
51
  _pc = new WeakMap();
53
- _extraFunctions = new WeakMap();
54
52
  _transport = new WeakMap();
55
53
 
56
54
  export { RTCSctpTransport as default };
@@ -1 +1 @@
1
- {"version":3,"file":"RTCSctpTransport.mjs","sources":["../../../src/polyfill/RTCSctpTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCSctpTransport extends EventTarget implements globalThis.RTCSctpTransport {\n #pc: RTCPeerConnection = null;\n #extraFunctions = null;\n #transport: RTCDtlsTransport = null;\n\n onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null = null;\n\n constructor(initial: { pc: RTCPeerConnection, extraFunctions }) {\n super();\n this.#pc = initial.pc;\n this.#extraFunctions = initial.extraFunctions;\n\n this.#transport = new RTCDtlsTransport({ pc: initial.pc, extraFunctions: initial.extraFunctions });\n\n // forward peerConnection events\n this.#pc.addEventListener('connectionstatechange', () => {\n this.dispatchEvent(new Event('statechange'));\n });\n\n // forward events to properties\n this.addEventListener('statechange', (e) => {\n if (this.onstatechange) this.onstatechange(e);\n });\n }\n\n get maxChannels(): number | null {\n if (this.state !== 'connected') return null;\n return this.#pc ? this.#extraFunctions.maxDataChannelId() : 0;\n }\n\n get maxMessageSize(): number {\n if (this.state !== 'connected') return null;\n return this.#pc ? this.#extraFunctions.maxMessageSize() : 0;\n }\n\n get state(): globalThis.RTCSctpTransportState {\n // reduce state from new, connecting, connected, disconnected, failed, closed, unknown\n // to RTCSctpTransport states connecting, connected, closed\n let state = this.#pc.connectionState;\n if (state === 'new' || state === 'connecting') {\n state = 'connecting';\n } else if (state === 'disconnected' || state === 'failed' || state === 'closed') {\n state = 'closed';\n }\n return state;\n }\n\n get transport(): RTCDtlsTransport {\n return this.#transport;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,eAAA,EAAA,UAAA,CAAA;AAIA,MAAqB,yBAAyB,WAAmD,CAAA;AAAA,EAO7F,YAAY,OAAoD,EAAA;AAC5D,IAAM,KAAA,EAAA,CAAA;AAPV,IAAyB,YAAA,CAAA,IAAA,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA;AACzB,IAAkB,YAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAClB,IAA+B,YAAA,CAAA,IAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAE/B,IAAqE,aAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAIjE,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,OAAQ,CAAA,EAAA,CAAA,CAAA;AACnB,IAAA,YAAA,CAAA,IAAA,EAAK,iBAAkB,OAAQ,CAAA,cAAA,CAAA,CAAA;AAE/B,IAAK,YAAA,CAAA,IAAA,EAAA,UAAA,EAAa,IAAI,gBAAA,CAAiB,EAAE,EAAA,EAAI,QAAQ,EAAI,EAAA,cAAA,EAAgB,OAAQ,CAAA,cAAA,EAAgB,CAAA,CAAA,CAAA;AAGjG,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,uBAAA,EAAyB,MAAM;AACrD,MAAA,IAAA,CAAK,aAAc,CAAA,IAAI,KAAM,CAAA,aAAa,CAAC,CAAA,CAAA;AAAA,KAC9C,CAAA,CAAA;AAGD,IAAK,IAAA,CAAA,gBAAA,CAAiB,aAAe,EAAA,CAAC,CAAM,KAAA;AACxC,MAAA,IAAI,IAAK,CAAA,aAAA,EAAoB,IAAA,CAAA,aAAA,CAAc,CAAC,CAAA,CAAA;AAAA,KAC/C,CAAA,CAAA;AAAA,GACL;AAAA,EAEA,IAAI,WAA6B,GAAA;AAC7B,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,eAAA,CAAA,CAAgB,kBAAqB,GAAA,CAAA,CAAA;AAAA,GAChE;AAAA,EAEA,IAAI,cAAyB,GAAA;AACzB,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,eAAA,CAAA,CAAgB,gBAAmB,GAAA,CAAA,CAAA;AAAA,GAC9D;AAAA,EAEA,IAAI,KAA0C,GAAA;AAG1C,IAAI,IAAA,KAAA,GAAQ,mBAAK,GAAI,CAAA,CAAA,eAAA,CAAA;AACrB,IAAI,IAAA,KAAA,KAAU,KAAS,IAAA,KAAA,KAAU,YAAc,EAAA;AAC3C,MAAQ,KAAA,GAAA,YAAA,CAAA;AAAA,eACD,KAAU,KAAA,cAAA,IAAkB,KAAU,KAAA,QAAA,IAAY,UAAU,QAAU,EAAA;AAC7E,MAAQ,KAAA,GAAA,QAAA,CAAA;AAAA,KACZ;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACX;AAAA,EAEA,IAAI,SAA8B,GAAA;AAC9B,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AAAA,GAChB;AACJ,CAAA;AAjDI,GAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,eAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
1
+ {"version":3,"file":"RTCSctpTransport.mjs","sources":["../../../src/polyfill/RTCSctpTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCSctpTransport extends EventTarget implements globalThis.RTCSctpTransport {\n #pc: RTCPeerConnection = null;\n #transport: globalThis.RTCDtlsTransport = null;\n\n onstatechange: globalThis.RTCSctpTransport['onstatechange'] = null;\n\n constructor(initial: { pc: RTCPeerConnection }) {\n super();\n this.#pc = initial.pc;\n\n this.#transport = new RTCDtlsTransport({\n pc: initial.pc\n });\n\n this.#pc.addEventListener('connectionstatechange', () => {\n const e = new Event('statechange');\n this.dispatchEvent(e);\n this.onstatechange?.(e);\n });\n }\n\n get maxChannels(): number | null {\n if (this.state !== 'connected') return null;\n return this.#pc.ext_maxDataChannelId;\n }\n\n get maxMessageSize(): number {\n if (this.state !== 'connected') return null;\n return this.#pc?.ext_maxMessageSize ?? 65536;;\n }\n\n get state(): globalThis.RTCSctpTransportState {\n // reduce state from new, connecting, connected, disconnected, failed, closed, unknown\n // to RTCSctpTransport states connecting, connected, closed\n let state = this.#pc.connectionState;\n if (state === 'new' || state === 'connecting') {\n state = 'connecting';\n } else if (state === 'disconnected' || state === 'failed' || state === 'closed') {\n state = 'closed';\n }\n return state;\n }\n\n get transport(): globalThis.RTCDtlsTransport {\n return this.#transport;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,UAAA,CAAA;AAIA,MAAqB,yBAAyB,WAAmD,CAAA;AAAA,EAM/F,YAAY,OAAoC,EAAA;AAC9C,IAAM,KAAA,EAAA,CAAA;AANR,IAAyB,YAAA,CAAA,IAAA,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA;AACzB,IAA0C,YAAA,CAAA,IAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAE1C,IAA8D,aAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAI5D,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,OAAQ,CAAA,EAAA,CAAA,CAAA;AAEnB,IAAK,YAAA,CAAA,IAAA,EAAA,UAAA,EAAa,IAAI,gBAAiB,CAAA;AAAA,MACrC,IAAI,OAAQ,CAAA,EAAA;AAAA,KACb,CAAA,CAAA,CAAA;AAED,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,uBAAA,EAAyB,MAAM;AACvD,MAAM,MAAA,CAAA,GAAI,IAAI,KAAA,CAAM,aAAa,CAAA,CAAA;AACjC,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA,CAAA;AACpB,MAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,IAAI,WAA6B,GAAA;AAC/B,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAA,OAAO,mBAAK,GAAI,CAAA,CAAA,oBAAA,CAAA;AAAA,GAClB;AAAA,EAEA,IAAI,cAAyB,GAAA;AAC3B,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,MAAK,kBAAsB,IAAA,KAAA,CAAA;AAAM,GAC/C;AAAA,EAEA,IAAI,KAA0C,GAAA;AAG5C,IAAI,IAAA,KAAA,GAAQ,mBAAK,GAAI,CAAA,CAAA,eAAA,CAAA;AACrB,IAAI,IAAA,KAAA,KAAU,KAAS,IAAA,KAAA,KAAU,YAAc,EAAA;AAC7C,MAAQ,KAAA,GAAA,YAAA,CAAA;AAAA,eACC,KAAU,KAAA,cAAA,IAAkB,KAAU,KAAA,QAAA,IAAY,UAAU,QAAU,EAAA;AAC/E,MAAQ,KAAA,GAAA,QAAA,CAAA;AAAA,KACV;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAAA,EAEA,IAAI,SAAyC,GAAA;AAC3C,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AAAA,GACd;AACF,CAAA;AA7CE,GAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
@@ -10,12 +10,20 @@ class RTCSessionDescription {
10
10
  constructor(init) {
11
11
  __privateAdd(this, _type);
12
12
  __privateAdd(this, _sdp);
13
- __privateSet(this, _type, init ? init.type : null);
14
- __privateSet(this, _sdp, init ? init.sdp : null);
13
+ __privateSet(this, _type, init?.type);
14
+ __privateSet(this, _sdp, init?.sdp ?? "");
15
15
  }
16
16
  get type() {
17
17
  return __privateGet(this, _type);
18
18
  }
19
+ set type(type) {
20
+ if (type !== "offer" && type !== "answer" && type !== "pranswer" && type !== "rollback") {
21
+ throw new TypeError(
22
+ `Failed to set the 'type' property on 'RTCSessionDescription': The provided value '${type}' is not a valid enum value of type RTCSdpType.`
23
+ );
24
+ }
25
+ __privateSet(this, _type, type);
26
+ }
19
27
  get sdp() {
20
28
  return __privateGet(this, _sdp);
21
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RTCSessionDescription.mjs","sources":["../../../src/polyfill/RTCSessionDescription.ts"],"sourcesContent":["// https://developer.mozilla.org/docs/Web/API/RTCSessionDescription\n//\n// Example usage\n// const init = {\n// type: 'offer',\n// sdp: 'v=0\\r\\no=- 1234567890 1234567890 IN IP4 192.168.1.1\\r\\ns=-\\r\\nt=0 0\\r\\na=ice-ufrag:abcd\\r\\na=ice-pwd:efgh\\r\\n'\n// };\n\nexport default class RTCSessionDescription implements globalThis.RTCSessionDescriptionInit {\n #type: globalThis.RTCSdpType;\n #sdp: string;\n\n constructor(init: globalThis.RTCSessionDescriptionInit) {\n this.#type = init ? init.type : null;\n this.#sdp = init ? init.sdp : null;\n }\n\n get type(): globalThis.RTCSdpType {\n return this.#type;\n }\n\n get sdp(): string {\n return this.#sdp;\n }\n\n toJSON(): globalThis.RTCSessionDescriptionInit {\n return {\n sdp: this.#sdp,\n type: this.#type,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,KAAA,EAAA,IAAA,CAAA;AAQA,MAAqB,qBAAsE,CAAA;AAAA,EAIvF,YAAY,IAA4C,EAAA;AAHxD,IAAA,YAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAGI,IAAK,YAAA,CAAA,IAAA,EAAA,KAAA,EAAQ,IAAO,GAAA,IAAA,CAAK,IAAO,GAAA,IAAA,CAAA,CAAA;AAChC,IAAK,YAAA,CAAA,IAAA,EAAA,IAAA,EAAO,IAAO,GAAA,IAAA,CAAK,GAAM,GAAA,IAAA,CAAA,CAAA;AAAA,GAClC;AAAA,EAEA,IAAI,IAA8B,GAAA;AAC9B,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GAChB;AAAA,EAEA,IAAI,GAAc,GAAA;AACd,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GAChB;AAAA,EAEA,MAA+C,GAAA;AAC3C,IAAO,OAAA;AAAA,MACH,KAAK,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA;AAAA,MACV,MAAM,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA;AAAA,KACf,CAAA;AAAA,GACJ;AACJ,CAAA;AAtBI,KAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,IAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
1
+ {"version":3,"file":"RTCSessionDescription.mjs","sources":["../../../src/polyfill/RTCSessionDescription.ts"],"sourcesContent":["// https://developer.mozilla.org/docs/Web/API/RTCSessionDescription\n//\n// Example usage\n// const init = {\n// type: 'offer',\n// sdp: 'v=0\\r\\no=- 1234567890 1234567890 IN IP4 192.168.1.1\\r\\ns=-\\r\\nt=0 0\\r\\na=ice-ufrag:abcd\\r\\na=ice-pwd:efgh\\r\\n'\n// };\n\nexport default class RTCSessionDescription implements globalThis.RTCSessionDescriptionInit {\n #type: globalThis.RTCSdpType;\n #sdp: string;\n\n constructor(init: globalThis.RTCSessionDescriptionInit) {\n this.#type = init?.type;\n this.#sdp = init?.sdp ?? '';\n }\n\n get type(): globalThis.RTCSdpType {\n return this.#type;\n }\n\n set type(type) {\n if (type !== 'offer' && type !== 'answer' && type !== 'pranswer' && type !== 'rollback') {\n throw new TypeError(\n `Failed to set the 'type' property on 'RTCSessionDescription': The provided value '${type}' is not a valid enum value of type RTCSdpType.`,\n );\n }\n this.#type = type;\n }\n\n get sdp(): string {\n return this.#sdp;\n }\n\n toJSON(): globalThis.RTCSessionDescriptionInit {\n return {\n sdp: this.#sdp,\n type: this.#type,\n };\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,KAAA,EAAA,IAAA,CAAA;AAQA,MAAqB,qBAAsE,CAAA;AAAA,EAIzF,YAAY,IAA4C,EAAA;AAHxD,IAAA,YAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACA,IAAA,YAAA,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAGE,IAAA,YAAA,CAAA,IAAA,EAAK,OAAQ,IAAM,EAAA,IAAA,CAAA,CAAA;AACnB,IAAK,YAAA,CAAA,IAAA,EAAA,IAAA,EAAO,MAAM,GAAO,IAAA,EAAA,CAAA,CAAA;AAAA,GAC3B;AAAA,EAEA,IAAI,IAA8B,GAAA;AAChC,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,IAAI,KAAK,IAAM,EAAA;AACb,IAAA,IAAI,SAAS,OAAW,IAAA,IAAA,KAAS,YAAY,IAAS,KAAA,UAAA,IAAc,SAAS,UAAY,EAAA;AACvF,MAAA,MAAM,IAAI,SAAA;AAAA,QACR,qFAAqF,IAAI,CAAA,+CAAA,CAAA;AAAA,OAC3F,CAAA;AAAA,KACF;AACA,IAAA,YAAA,CAAA,IAAA,EAAK,KAAQ,EAAA,IAAA,CAAA,CAAA;AAAA,GACf;AAAA,EAEA,IAAI,GAAc,GAAA;AAChB,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAA+C,GAAA;AAC7C,IAAO,OAAA;AAAA,MACL,KAAK,YAAK,CAAA,IAAA,EAAA,IAAA,CAAA;AAAA,MACV,MAAM,YAAK,CAAA,IAAA,EAAA,KAAA,CAAA;AAAA,KACb,CAAA;AAAA,GACF;AACF,CAAA;AA/BE,KAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,IAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/polyfill/index.ts"],"sourcesContent":["import RTCCertificate from './RTCCertificate';\nimport RTCDataChannel from './RTCDataChannel';\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCIceCandidate from './RTCIceCandidate';\nimport RTCIceTransport from './RTCIceTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\nimport RTCSctpTransport from './RTCSctpTransport';\nimport RTCSessionDescription from './RTCSessionDescription';\nimport { RTCDataChannelEvent, RTCPeerConnectionIceEvent } from './Events';\nimport RTCError from './RTCError';\n\nexport {\n RTCCertificate,\n RTCDataChannel,\n RTCDtlsTransport,\n RTCIceCandidate,\n RTCIceTransport,\n RTCPeerConnection,\n RTCSctpTransport,\n RTCSessionDescription,\n RTCDataChannelEvent,\n RTCPeerConnectionIceEvent,\n RTCError,\n};\n\nexport default {\n RTCCertificate,\n RTCDataChannel,\n RTCDtlsTransport,\n RTCIceCandidate,\n RTCIceTransport,\n RTCPeerConnection,\n RTCSctpTransport,\n RTCSessionDescription,\n RTCDataChannelEvent,\n RTCPeerConnectionIceEvent,\n RTCError,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAyBA,QAAe;AAAA,EACX,cAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,mBAAA;AAAA,EACA,yBAAA;AAAA,EACA,QAAA;AACJ,CAAA;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/polyfill/index.ts"],"sourcesContent":["import RTCCertificate from './RTCCertificate';\nimport RTCDataChannel from './RTCDataChannel';\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCIceCandidate from './RTCIceCandidate';\nimport RTCIceTransport from './RTCIceTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\nimport RTCSctpTransport from './RTCSctpTransport';\nimport RTCSessionDescription from './RTCSessionDescription';\nimport { RTCDataChannelEvent, RTCPeerConnectionIceEvent } from './Events';\nimport RTCError from './RTCError';\n\nexport {\n RTCCertificate,\n RTCDataChannel,\n RTCDtlsTransport,\n RTCIceCandidate,\n RTCIceTransport,\n RTCPeerConnection,\n RTCSctpTransport,\n RTCSessionDescription,\n RTCDataChannelEvent,\n RTCPeerConnectionIceEvent,\n RTCError,\n};\n\nexport default {\n RTCCertificate,\n RTCDataChannel,\n RTCDtlsTransport,\n RTCIceCandidate,\n RTCIceTransport,\n RTCPeerConnection,\n RTCSctpTransport,\n RTCSessionDescription,\n RTCDataChannelEvent,\n RTCPeerConnectionIceEvent,\n RTCError,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAyBA,QAAe;AAAA,EACb,cAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,qBAAA;AAAA,EACA,mBAAA;AAAA,EACA,yBAAA;AAAA,EACA,QAAA;AACF,CAAA;;;;"}
@@ -143,8 +143,11 @@ interface PeerConnection {
143
143
  declare const PeerConnection: {
144
144
  new (peerName: string, config: RtcConfig): PeerConnection;
145
145
  };
146
- declare class RtcpReceivingSession {
146
+ interface RtcpReceivingSession {
147
147
  }
148
+ declare const RtcpReceivingSession: {
149
+ new (): RtcpReceivingSession;
150
+ };
148
151
 
149
152
  declare const DataChannelStream: typeof DataChannelStream$1;
150
153
  declare const _default: {
@@ -153,7 +156,7 @@ declare const _default: {
153
156
  preload: typeof preload;
154
157
  setSctpSettings: typeof setSctpSettings;
155
158
  getLibraryVersion: typeof getLibraryVersion;
156
- RtcpReceivingSession: typeof RtcpReceivingSession;
159
+ RtcpReceivingSession: new () => RtcpReceivingSession;
157
160
  Track: new () => Track;
158
161
  Video: new (mid: string, dir: Direction) => Video;
159
162
  Audio: new (mid: string, dir: Direction) => Audio;
@@ -65,12 +65,12 @@ interface RtcConfig {
65
65
  }
66
66
  type DescriptionType = 'unspec' | 'offer' | 'answer' | 'pranswer' | 'rollback';
67
67
  type RTCSdpType = 'answer' | 'offer' | 'pranswer' | 'rollback';
68
- type RTCIceTransportState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
69
- type RTCPeerConnectionState = "closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";
70
- type RTCIceConnectionState = "checking" | "closed" | "completed" | "connected" | "disconnected" | "failed" | "new";
71
- type RTCIceGathererState = "complete" | "gathering" | "new";
72
- type RTCIceGatheringState = "complete" | "gathering" | "new";
73
- type RTCSignalingState = "closed" | "have-local-offer" | "have-local-pranswer" | "have-remote-offer" | "have-remote-pranswer" | "stable";
68
+ type RTCIceTransportState = 'checking' | 'closed' | 'completed' | 'connected' | 'disconnected' | 'failed' | 'new';
69
+ type RTCPeerConnectionState = 'closed' | 'connected' | 'connecting' | 'disconnected' | 'failed' | 'new';
70
+ type RTCIceConnectionState = 'checking' | 'closed' | 'completed' | 'connected' | 'disconnected' | 'failed' | 'new';
71
+ type RTCIceGathererState = 'complete' | 'gathering' | 'new';
72
+ type RTCIceGatheringState = 'complete' | 'gathering' | 'new';
73
+ type RTCSignalingState = 'closed' | 'have-local-offer' | 'have-local-pranswer' | 'have-remote-offer' | 'have-remote-pranswer' | 'stable';
74
74
  interface DataChannelInitConfig {
75
75
  protocol?: string;
76
76
  negotiated?: boolean;
@@ -1,10 +1,10 @@
1
1
  import RTCDataChannel from './RTCDataChannel.js';
2
- import RTCIceCandidate from './RTCIceCandidate.js';
3
2
 
4
3
  declare class RTCPeerConnectionIceEvent extends Event implements globalThis.RTCPeerConnectionIceEvent {
5
4
  #private;
6
- constructor(candidate: RTCIceCandidate);
7
- get candidate(): RTCIceCandidate;
5
+ constructor(candidate: globalThis.RTCIceCandidate);
6
+ get candidate(): globalThis.RTCIceCandidate;
7
+ get url(): string;
8
8
  }
9
9
  declare class RTCDataChannelEvent extends Event implements globalThis.RTCDataChannelEvent {
10
10
  #private;
@@ -3,6 +3,7 @@ declare class RTCCertificate implements globalThis.RTCCertificate {
3
3
  constructor();
4
4
  get expires(): number;
5
5
  getFingerprints(): globalThis.RTCDtlsFingerprint[];
6
+ getAlgorithm(): string;
6
7
  }
7
8
 
8
9
  export { RTCCertificate as default };
@@ -2,12 +2,12 @@ import { DataChannel } from '../lib/index';
2
2
 
3
3
  declare class RTCDataChannel extends EventTarget implements globalThis.RTCDataChannel {
4
4
  #private;
5
- onbufferedamountlow: ((this: RTCDataChannel, ev: Event) => any) | null;
6
- onclose: ((this: RTCDataChannel, ev: Event) => any) | null;
7
- onclosing: ((this: RTCDataChannel, ev: Event) => any) | null;
8
- onerror: ((this: RTCDataChannel, ev: Event) => any) | null;
9
- onmessage: ((this: RTCDataChannel, ev: MessageEvent) => any) | null;
10
- onopen: ((this: RTCDataChannel, ev: Event) => any) | null;
5
+ onbufferedamountlow: globalThis.RTCDataChannel['onbufferedamountlow'];
6
+ onclose: globalThis.RTCDataChannel['onclose'];
7
+ onclosing: globalThis.RTCDataChannel['onclosing'];
8
+ onerror: globalThis.RTCDataChannel['onerror'];
9
+ onmessage: globalThis.RTCDataChannel['onmessage'];
10
+ onopen: globalThis.RTCDataChannel['onopen'];
11
11
  constructor(dataChannel: DataChannel, opts?: globalThis.RTCDataChannelInit);
12
12
  set binaryType(type: BinaryType);
13
13
  get binaryType(): BinaryType;
@@ -1,16 +1,14 @@
1
- import RTCIceTransport from './RTCIceTransport.js';
2
1
  import RTCPeerConnection from './RTCPeerConnection.js';
3
2
 
4
3
  declare class RTCDtlsTransport extends EventTarget implements globalThis.RTCDtlsTransport {
5
4
  #private;
6
- onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;
7
- onerror: ((this: RTCDtlsTransport, ev: Event) => any) | null;
5
+ onstatechange: globalThis.RTCDtlsTransport['onstatechange'];
6
+ onerror: globalThis.RTCDtlsTransport['onstatechange'];
8
7
  constructor(init: {
9
8
  pc: RTCPeerConnection;
10
- extraFunctions: any;
11
9
  });
12
- get iceTransport(): RTCIceTransport;
13
- get state(): RTCDtlsTransportState;
10
+ get iceTransport(): globalThis.RTCIceTransport;
11
+ get state(): globalThis.RTCDtlsTransportState;
14
12
  getRemoteCertificates(): ArrayBuffer[];
15
13
  }
16
14
 
@@ -7,6 +7,7 @@ declare class RTCError extends DOMException implements globalThis.RTCError {
7
7
  set receivedAlert(_value: number | null);
8
8
  get sctpCauseCode(): number | null;
9
9
  set sctpCauseCode(_value: number | null);
10
+ get httpRequestStatusCode(): number | null;
10
11
  get sdpLineNumber(): number | null;
11
12
  set sdpLineNumber(_value: number | null);
12
13
  get sentAlert(): number | null;
@@ -1,6 +1,6 @@
1
1
  declare class RTCIceCandidate implements globalThis.RTCIceCandidate {
2
2
  #private;
3
- constructor({ candidate, sdpMLineIndex, sdpMid, usernameFragment }: globalThis.RTCIceCandidateInit);
3
+ constructor({ candidate, sdpMLineIndex, sdpMid, usernameFragment, }: globalThis.RTCIceCandidateInit);
4
4
  get address(): string | null;
5
5
  get candidate(): string;
6
6
  get component(): globalThis.RTCIceComponent | null;
@@ -1,24 +1,30 @@
1
- import RTCIceCandidate from './RTCIceCandidate.js';
2
1
  import RTCPeerConnection from './RTCPeerConnection.js';
3
2
 
4
3
  declare class RTCIceTransport extends EventTarget implements globalThis.RTCIceTransport {
5
4
  #private;
6
- ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
7
- onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null;
8
- onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null;
5
+ ongatheringstatechange: globalThis.RTCIceTransport['ongatheringstatechange'];
6
+ onselectedcandidatepairchange: globalThis.RTCIceTransport['onselectedcandidatepairchange'];
7
+ onstatechange: globalThis.RTCIceTransport['onstatechange'];
9
8
  constructor(init: {
10
9
  pc: RTCPeerConnection;
11
- extraFunctions: any;
12
10
  });
13
11
  get component(): globalThis.RTCIceComponent;
14
12
  get gatheringState(): globalThis.RTCIceGatheringState;
15
- get role(): string;
13
+ get role(): globalThis.RTCIceRole;
16
14
  get state(): globalThis.RTCIceTransportState;
17
- getLocalCandidates(): RTCIceCandidate[];
18
- getLocalParameters(): any;
19
- getRemoteCandidates(): RTCIceCandidate[];
15
+ getLocalCandidates(): globalThis.RTCIceCandidate[];
16
+ getLocalParameters(): RTCIceParameters | null;
17
+ getRemoteCandidates(): globalThis.RTCIceCandidate[];
20
18
  getRemoteParameters(): any;
21
19
  getSelectedCandidatePair(): globalThis.RTCIceCandidatePair | null;
22
20
  }
21
+ declare class RTCIceParameters implements globalThis.RTCIceParameters {
22
+ usernameFragment: string;
23
+ password: string;
24
+ constructor({ usernameFragment, password }: {
25
+ usernameFragment: any;
26
+ password?: string;
27
+ });
28
+ }
23
29
 
24
- export { RTCIceTransport as default };
30
+ export { RTCIceParameters, RTCIceTransport as default };
@@ -1,8 +1,7 @@
1
+ import { SelectedCandidateInfo } from '../lib/types';
1
2
  import { PeerConnection } from '../lib/index';
2
- import RTCSessionDescription from './RTCSessionDescription.js';
3
3
  import RTCDataChannel from './RTCDataChannel.js';
4
- import { RTCDataChannelEvent, RTCPeerConnectionIceEvent } from './Events.js';
5
- import RTCSctpTransport from './RTCSctpTransport.js';
4
+ import { RTCDataChannelEvent } from './Events.js';
6
5
  import RTCCertificate from './RTCCertificate.js';
7
6
 
8
7
  interface RTCConfiguration extends globalThis.RTCConfiguration {
@@ -12,41 +11,49 @@ interface RTCConfiguration extends globalThis.RTCConfiguration {
12
11
  declare class RTCPeerConnection extends EventTarget implements globalThis.RTCPeerConnection {
13
12
  #private;
14
13
  static generateCertificate(): Promise<RTCCertificate>;
15
- onconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
16
- ondatachannel: ((this: RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;
17
- onicecandidate: ((this: RTCPeerConnection, ev: RTCPeerConnectionIceEvent) => any) | null;
18
- onicecandidateerror: ((this: RTCPeerConnection, ev: Event) => any) | null;
19
- oniceconnectionstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
20
- onicegatheringstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
21
- onnegotiationneeded: ((this: RTCPeerConnection, ev: Event) => any) | null;
22
- onsignalingstatechange: ((this: RTCPeerConnection, ev: Event) => any) | null;
23
- ontrack: ((this: RTCPeerConnection, ev: globalThis.RTCTrackEvent) => any) | null;
14
+ onconnectionstatechange: globalThis.RTCPeerConnection['onconnectionstatechange'];
15
+ ondatachannel: ((this: globalThis.RTCPeerConnection, ev: RTCDataChannelEvent) => any) | null;
16
+ onicecandidate: globalThis.RTCPeerConnection['onicecandidate'];
17
+ onicecandidateerror: globalThis.RTCPeerConnection['onicecandidateerror'];
18
+ oniceconnectionstatechange: globalThis.RTCPeerConnection['oniceconnectionstatechange'];
19
+ onicegatheringstatechange: globalThis.RTCPeerConnection['onicegatheringstatechange'];
20
+ onnegotiationneeded: globalThis.RTCPeerConnection['onnegotiationneeded'];
21
+ onsignalingstatechange: globalThis.RTCPeerConnection['onsignalingstatechange'];
22
+ ontrack: globalThis.RTCPeerConnection['ontrack'];
24
23
  private _checkConfiguration;
25
- setConfiguration(config: RTCConfiguration): void;
24
+ setConfiguration(config: globalThis.RTCConfiguration): void;
26
25
  constructor(config?: RTCConfiguration);
26
+ get ext_maxDataChannelId(): number;
27
+ get ext_maxMessageSize(): number;
28
+ get ext_localCandidates(): globalThis.RTCIceCandidate[];
29
+ get ext_remoteCandidates(): globalThis.RTCIceCandidate[];
30
+ selectedCandidatePair(): {
31
+ local: SelectedCandidateInfo;
32
+ remote: SelectedCandidateInfo;
33
+ } | null;
27
34
  get canTrickleIceCandidates(): boolean | null;
28
35
  get connectionState(): globalThis.RTCPeerConnectionState;
29
36
  get iceConnectionState(): globalThis.RTCIceConnectionState;
30
37
  get iceGatheringState(): globalThis.RTCIceGatheringState;
31
- get currentLocalDescription(): RTCSessionDescription;
32
- get currentRemoteDescription(): RTCSessionDescription;
33
- get localDescription(): RTCSessionDescription;
34
- get pendingLocalDescription(): RTCSessionDescription;
35
- get pendingRemoteDescription(): RTCSessionDescription;
36
- get remoteDescription(): RTCSessionDescription;
37
- get sctp(): RTCSctpTransport;
38
+ get currentLocalDescription(): globalThis.RTCSessionDescription;
39
+ get currentRemoteDescription(): globalThis.RTCSessionDescription;
40
+ get localDescription(): globalThis.RTCSessionDescription;
41
+ get pendingLocalDescription(): globalThis.RTCSessionDescription;
42
+ get pendingRemoteDescription(): globalThis.RTCSessionDescription;
43
+ get remoteDescription(): globalThis.RTCSessionDescription;
44
+ get sctp(): globalThis.RTCSctpTransport;
38
45
  get signalingState(): globalThis.RTCSignalingState;
39
46
  addIceCandidate(candidate?: globalThis.RTCIceCandidateInit | null): Promise<void>;
40
47
  addTrack(_track: any, ..._streams: any[]): globalThis.RTCRtpSender;
41
48
  addTransceiver(_trackOrKind: any, _init: any): globalThis.RTCRtpTransceiver;
42
49
  close(): void;
43
50
  createAnswer(): Promise<globalThis.RTCSessionDescriptionInit | any>;
44
- createDataChannel(label: any, opts?: {}): RTCDataChannel;
51
+ createDataChannel(label: string, opts?: globalThis.RTCDataChannelInit): RTCDataChannel;
45
52
  createOffer(): Promise<globalThis.RTCSessionDescriptionInit | any>;
46
53
  getConfiguration(): globalThis.RTCConfiguration;
47
54
  getReceivers(): globalThis.RTCRtpReceiver[];
48
55
  getSenders(): globalThis.RTCRtpSender[];
49
- getStats(): Promise<globalThis.RTCStatsReport>;
56
+ getStats(): Promise<globalThis.RTCStatsReport> | any;
50
57
  getTransceivers(): globalThis.RTCRtpTransceiver[];
51
58
  removeTrack(): void;
52
59
  restartIce(): Promise<void>;
@@ -1,17 +1,15 @@
1
- import RTCDtlsTransport from './RTCDtlsTransport.js';
2
1
  import RTCPeerConnection from './RTCPeerConnection.js';
3
2
 
4
3
  declare class RTCSctpTransport extends EventTarget implements globalThis.RTCSctpTransport {
5
4
  #private;
6
- onstatechange: ((this: RTCSctpTransport, ev: Event) => any) | null;
5
+ onstatechange: globalThis.RTCSctpTransport['onstatechange'];
7
6
  constructor(initial: {
8
7
  pc: RTCPeerConnection;
9
- extraFunctions: any;
10
8
  });
11
9
  get maxChannels(): number | null;
12
10
  get maxMessageSize(): number;
13
11
  get state(): globalThis.RTCSctpTransportState;
14
- get transport(): RTCDtlsTransport;
12
+ get transport(): globalThis.RTCDtlsTransport;
15
13
  }
16
14
 
17
15
  export { RTCSctpTransport as default };
@@ -2,6 +2,7 @@ declare class RTCSessionDescription implements globalThis.RTCSessionDescriptionI
2
2
  #private;
3
3
  constructor(init: globalThis.RTCSessionDescriptionInit);
4
4
  get type(): globalThis.RTCSdpType;
5
+ set type(type: globalThis.RTCSdpType);
5
6
  get sdp(): string;
6
7
  toJSON(): globalThis.RTCSessionDescriptionInit;
7
8
  }
package/jest.config.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import type { Config } from 'jest';
2
2
 
3
3
  const config: Config = {
4
- clearMocks: true,
5
- collectCoverage: false,
6
- coverageDirectory: "coverage",
7
- coverageProvider: "v8",
8
- preset: 'ts-jest',
9
- testEnvironment: "jest-environment-node",
10
- testRegex: '(/test/jest-tests/.*|(\\.|/)(test|spec))\\.(m)?ts$',
11
- testPathIgnorePatterns: ['node_modules', 'multiple-run.test'],
4
+ clearMocks: true,
5
+ collectCoverage: false,
6
+ coverageDirectory: 'coverage',
7
+ coverageProvider: 'v8',
8
+ preset: 'ts-jest',
9
+ testEnvironment: 'jest-environment-node',
10
+ testRegex: '(/test/jest-tests/.*|(\\.|/)(test|spec))\\.(m)?ts$',
11
+ testPathIgnorePatterns: ['node_modules', 'multiple-run.test'],
12
12
  };
13
13
 
14
14
  export default config;