node-datachannel 0.12.0 → 0.20.0-alpha.2

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 (219) hide show
  1. package/.eslintignore +5 -1
  2. package/.eslintrc.json +27 -0
  3. package/.prettierrc +12 -0
  4. package/CMakeLists.txt +13 -13
  5. package/dist/cjs/index.cjs +11 -0
  6. package/dist/cjs/index.cjs.map +1 -0
  7. package/dist/cjs/lib/datachannel-stream.cjs +101 -0
  8. package/dist/cjs/lib/datachannel-stream.cjs.map +1 -0
  9. package/dist/cjs/lib/index.cjs +61 -0
  10. package/dist/cjs/lib/index.cjs.map +1 -0
  11. package/dist/cjs/lib/node-datachannel.cjs +14 -0
  12. package/dist/cjs/lib/node-datachannel.cjs.map +1 -0
  13. package/dist/cjs/lib/websocket-server.cjs +44 -0
  14. package/dist/cjs/lib/websocket-server.cjs.map +1 -0
  15. package/dist/cjs/lib/websocket.cjs +8 -0
  16. package/dist/cjs/lib/websocket.cjs.map +1 -0
  17. package/dist/cjs/polyfill/Events.cjs +37 -0
  18. package/dist/cjs/polyfill/Events.cjs.map +1 -0
  19. package/dist/cjs/polyfill/Exception.cjs +34 -0
  20. package/dist/cjs/polyfill/Exception.cjs.map +1 -0
  21. package/dist/cjs/polyfill/RTCCertificate.cjs +31 -0
  22. package/dist/cjs/polyfill/RTCCertificate.cjs.map +1 -0
  23. package/dist/cjs/polyfill/RTCDataChannel.cjs +179 -0
  24. package/dist/cjs/polyfill/RTCDataChannel.cjs.map +1 -0
  25. package/dist/cjs/polyfill/RTCDtlsTransport.cjs +52 -0
  26. package/dist/cjs/polyfill/RTCDtlsTransport.cjs.map +1 -0
  27. package/dist/cjs/polyfill/RTCError.cjs +76 -0
  28. package/dist/cjs/polyfill/RTCError.cjs.map +1 -0
  29. package/dist/cjs/polyfill/RTCIceCandidate.cjs +129 -0
  30. package/dist/cjs/polyfill/RTCIceCandidate.cjs.map +1 -0
  31. package/dist/cjs/polyfill/RTCIceTransport.cjs +84 -0
  32. package/dist/cjs/polyfill/RTCIceTransport.cjs.map +1 -0
  33. package/dist/cjs/polyfill/RTCPeerConnection.cjs +417 -0
  34. package/dist/cjs/polyfill/RTCPeerConnection.cjs.map +1 -0
  35. package/dist/cjs/polyfill/RTCSctpTransport.cjs +61 -0
  36. package/dist/cjs/polyfill/RTCSctpTransport.cjs.map +1 -0
  37. package/dist/cjs/polyfill/RTCSessionDescription.cjs +37 -0
  38. package/dist/cjs/polyfill/RTCSessionDescription.cjs.map +1 -0
  39. package/dist/cjs/polyfill/index.cjs +42 -0
  40. package/dist/cjs/polyfill/index.cjs.map +1 -0
  41. package/dist/esm/index.mjs +8 -0
  42. package/dist/esm/index.mjs.map +1 -0
  43. package/dist/esm/lib/datachannel-stream.mjs +78 -0
  44. package/dist/esm/lib/datachannel-stream.mjs.map +1 -0
  45. package/dist/esm/lib/index.mjs +44 -0
  46. package/dist/esm/lib/index.mjs.map +1 -0
  47. package/dist/esm/lib/node-datachannel.mjs +18 -0
  48. package/dist/esm/lib/node-datachannel.mjs.map +1 -0
  49. package/dist/esm/lib/websocket-server.mjs +42 -0
  50. package/dist/esm/lib/websocket-server.mjs.map +1 -0
  51. package/dist/esm/lib/websocket.mjs +6 -0
  52. package/dist/esm/lib/websocket.mjs.map +1 -0
  53. package/dist/esm/polyfill/Events.mjs +34 -0
  54. package/dist/esm/polyfill/Events.mjs.map +1 -0
  55. package/dist/esm/polyfill/Exception.mjs +28 -0
  56. package/dist/esm/polyfill/Exception.mjs.map +1 -0
  57. package/dist/esm/polyfill/RTCCertificate.mjs +27 -0
  58. package/dist/esm/polyfill/RTCCertificate.mjs.map +1 -0
  59. package/dist/esm/polyfill/RTCDataChannel.mjs +175 -0
  60. package/dist/esm/polyfill/RTCDataChannel.mjs.map +1 -0
  61. package/dist/esm/polyfill/RTCDtlsTransport.mjs +48 -0
  62. package/dist/esm/polyfill/RTCDtlsTransport.mjs.map +1 -0
  63. package/dist/esm/polyfill/RTCError.mjs +72 -0
  64. package/dist/esm/polyfill/RTCError.mjs.map +1 -0
  65. package/dist/esm/polyfill/RTCIceCandidate.mjs +125 -0
  66. package/dist/esm/polyfill/RTCIceCandidate.mjs.map +1 -0
  67. package/dist/esm/polyfill/RTCIceTransport.mjs +80 -0
  68. package/dist/esm/polyfill/RTCIceTransport.mjs.map +1 -0
  69. package/dist/esm/polyfill/RTCPeerConnection.mjs +413 -0
  70. package/dist/esm/polyfill/RTCPeerConnection.mjs.map +1 -0
  71. package/dist/esm/polyfill/RTCSctpTransport.mjs +57 -0
  72. package/dist/esm/polyfill/RTCSctpTransport.mjs.map +1 -0
  73. package/dist/esm/polyfill/RTCSessionDescription.mjs +33 -0
  74. package/dist/esm/polyfill/RTCSessionDescription.mjs.map +1 -0
  75. package/dist/esm/polyfill/index.mjs +27 -0
  76. package/dist/esm/polyfill/index.mjs.map +1 -0
  77. package/dist/types/lib/datachannel-stream.d.ts +24 -0
  78. package/dist/types/lib/index.d.ts +164 -0
  79. package/dist/types/lib/types.d.ts +106 -0
  80. package/dist/types/lib/websocket-server.d.ts +13 -0
  81. package/dist/types/lib/websocket.d.ts +25 -0
  82. package/dist/types/polyfill/Events.d.ts +15 -0
  83. package/dist/types/polyfill/RTCCertificate.d.ts +8 -0
  84. package/dist/types/polyfill/RTCDataChannel.d.ts +29 -0
  85. package/dist/types/polyfill/RTCDtlsTransport.d.ts +17 -0
  86. package/dist/types/polyfill/RTCError.d.ts +16 -0
  87. package/dist/types/polyfill/RTCIceCandidate.d.ts +21 -0
  88. package/dist/types/polyfill/RTCIceTransport.d.ts +24 -0
  89. package/dist/types/polyfill/RTCPeerConnection.d.ts +56 -0
  90. package/dist/types/polyfill/RTCSctpTransport.d.ts +17 -0
  91. package/dist/types/polyfill/RTCSessionDescription.d.ts +9 -0
  92. package/{polyfill → dist/types/polyfill}/index.d.ts +3 -14
  93. package/jest.config.ts +14 -0
  94. package/package.json +47 -43
  95. package/rollup.config.mjs +63 -0
  96. package/src/index.ts +10 -0
  97. package/{lib/datachannel-stream.js → src/lib/datachannel-stream.ts} +16 -11
  98. package/src/lib/index.ts +180 -0
  99. package/src/lib/node-datachannel.ts +13 -0
  100. package/src/lib/types.ts +126 -0
  101. package/{lib/websocket-server.js → src/lib/websocket-server.ts} +10 -8
  102. package/src/lib/websocket.ts +26 -0
  103. package/src/polyfill/Events.ts +33 -0
  104. package/src/polyfill/Exception.ts +37 -0
  105. package/src/polyfill/RTCCertificate.ts +17 -0
  106. package/{polyfill/RTCDataChannel.js → src/polyfill/RTCDataChannel.ts} +43 -40
  107. package/src/polyfill/RTCDtlsTransport.ts +47 -0
  108. package/src/polyfill/RTCError.ts +71 -0
  109. package/{polyfill/RTCIceCandidate.js → src/polyfill/RTCIceCandidate.ts} +35 -35
  110. package/{polyfill/RTCIceTransport.js → src/polyfill/RTCIceTransport.ts} +22 -20
  111. package/{polyfill/RTCPeerConnection.js → src/polyfill/RTCPeerConnection.ts} +128 -114
  112. package/{polyfill/RTCSctpTransport.js → src/polyfill/RTCSctpTransport.ts} +16 -14
  113. package/{polyfill/RTCSessionDescription.js → src/polyfill/RTCSessionDescription.ts} +7 -12
  114. package/{polyfill/index.js → src/polyfill/index.ts} +10 -10
  115. package/tsconfig.json +20 -13
  116. package/.eslintrc.cjs +0 -8
  117. package/.github/FUNDING.yml +0 -2
  118. package/.github/workflows/build-linux.yml +0 -109
  119. package/.github/workflows/build-mac-m1.yml +0 -38
  120. package/.github/workflows/build-mac-x64.yml +0 -40
  121. package/.github/workflows/build-win.yml +0 -74
  122. package/.github/workflows/lint.yml +0 -20
  123. package/.github/workflows/npm-publish-manual.yml +0 -23
  124. package/.prettierrc.cjs +0 -8
  125. package/build-containers/Dockerfile.alpine +0 -6
  126. package/build-containers/Dockerfile.debian +0 -7
  127. package/cmake/toolchain/ci.cmake +0 -23
  128. package/examples/client-server/README.md +0 -22
  129. package/examples/client-server/client-benchmark.js +0 -230
  130. package/examples/client-server/client-periodic.js +0 -189
  131. package/examples/client-server/client.js +0 -111
  132. package/examples/client-server/package-lock.json +0 -289
  133. package/examples/client-server/package.json +0 -16
  134. package/examples/client-server/signaling-server.js +0 -39
  135. package/examples/electron-demo/README.md +0 -58
  136. package/examples/electron-demo/forge.config.js +0 -49
  137. package/examples/electron-demo/package-lock.json +0 -15877
  138. package/examples/electron-demo/package.json +0 -44
  139. package/examples/electron-demo/src/index.css +0 -7
  140. package/examples/electron-demo/src/index.html +0 -29
  141. package/examples/electron-demo/src/main.js +0 -53
  142. package/examples/electron-demo/src/node-datachannel.js +0 -123
  143. package/examples/electron-demo/src/preload.js +0 -28
  144. package/examples/electron-demo/src/renderer.js +0 -58
  145. package/examples/electron-demo/webpack.main.config.js +0 -21
  146. package/examples/electron-demo/webpack.renderer.config.js +0 -13
  147. package/examples/electron-demo/webpack.rules.js +0 -35
  148. package/examples/media/README.md +0 -34
  149. package/examples/media/main.html +0 -45
  150. package/examples/media/media.js +0 -54
  151. package/examples/simple-peer-usage/main.js +0 -28
  152. package/examples/simple-peer-usage/package-lock.json +0 -317
  153. package/examples/simple-peer-usage/package.json +0 -16
  154. package/examples/websocket/websocket-client.js +0 -20
  155. package/examples/websocket/websocket-server.js +0 -22
  156. package/jest.config.cjs +0 -7
  157. package/lib/index.cjs +0 -194
  158. package/lib/index.d.cts +0 -300
  159. package/lib/index.d.ts +0 -300
  160. package/lib/index.js +0 -58
  161. package/lib/node-datachannel.js +0 -7
  162. package/polyfill/Events.d.ts +0 -9
  163. package/polyfill/Events.js +0 -29
  164. package/polyfill/Exception.js +0 -23
  165. package/polyfill/RTCCertificate.d.ts +0 -7
  166. package/polyfill/RTCCertificate.js +0 -17
  167. package/polyfill/RTCDataChannel.d.ts +0 -35
  168. package/polyfill/RTCDtlsTransport.d.ts +0 -10
  169. package/polyfill/RTCDtlsTransport.js +0 -47
  170. package/polyfill/RTCError.d.ts +0 -11
  171. package/polyfill/RTCError.js +0 -65
  172. package/polyfill/RTCIceCandidate.d.ts +0 -20
  173. package/polyfill/RTCIceTransport.d.ts +0 -18
  174. package/polyfill/RTCPeerConnection.d.ts +0 -62
  175. package/polyfill/RTCSctpTransport.d.ts +0 -10
  176. package/polyfill/RTCSessionDescription.d.ts +0 -8
  177. package/polyfill/index.cjs +0 -1333
  178. package/polyfill/index.d.cts +0 -37
  179. package/test/connectivity.js +0 -86
  180. package/test/jest-tests/basic.test.js +0 -37
  181. package/test/jest-tests/multiple-run.test.js +0 -73
  182. package/test/jest-tests/p2p.test.js +0 -99
  183. package/test/jest-tests/polyfill.test.js +0 -10
  184. package/test/jest-tests/streams.test.js +0 -48
  185. package/test/jest-tests/websocket.test.js +0 -69
  186. package/test/polyfill-connectivity.js +0 -89
  187. package/test/websockets.js +0 -50
  188. package/test/wpt-tests/README.md +0 -46
  189. package/test/wpt-tests/chrome-failed-tests.js +0 -42
  190. package/test/wpt-tests/index.js +0 -96
  191. package/test/wpt-tests/last-test-results.md +0 -301
  192. package/test/wpt-tests/package-lock.json +0 -1712
  193. package/test/wpt-tests/package.json +0 -19
  194. package/test/wpt-tests/wpt-test-list.js +0 -139
  195. package/test/wpt-tests/wpt.js +0 -131
  196. /package/src/{data-channel-wrapper.cpp → cpp/data-channel-wrapper.cpp} +0 -0
  197. /package/src/{data-channel-wrapper.h → cpp/data-channel-wrapper.h} +0 -0
  198. /package/src/{main.cpp → cpp/main.cpp} +0 -0
  199. /package/src/{media-audio-wrapper.cpp → cpp/media-audio-wrapper.cpp} +0 -0
  200. /package/src/{media-audio-wrapper.h → cpp/media-audio-wrapper.h} +0 -0
  201. /package/src/{media-direction.cpp → cpp/media-direction.cpp} +0 -0
  202. /package/src/{media-direction.h → cpp/media-direction.h} +0 -0
  203. /package/src/{media-rtcpreceivingsession-wrapper.cpp → cpp/media-rtcpreceivingsession-wrapper.cpp} +0 -0
  204. /package/src/{media-rtcpreceivingsession-wrapper.h → cpp/media-rtcpreceivingsession-wrapper.h} +0 -0
  205. /package/src/{media-track-wrapper.cpp → cpp/media-track-wrapper.cpp} +0 -0
  206. /package/src/{media-track-wrapper.h → cpp/media-track-wrapper.h} +0 -0
  207. /package/src/{media-video-wrapper.cpp → cpp/media-video-wrapper.cpp} +0 -0
  208. /package/src/{media-video-wrapper.h → cpp/media-video-wrapper.h} +0 -0
  209. /package/src/{peer-connection-wrapper.cpp → cpp/peer-connection-wrapper.cpp} +0 -0
  210. /package/src/{peer-connection-wrapper.h → cpp/peer-connection-wrapper.h} +0 -0
  211. /package/src/{rtc-wrapper.cpp → cpp/rtc-wrapper.cpp} +0 -0
  212. /package/src/{rtc-wrapper.h → cpp/rtc-wrapper.h} +0 -0
  213. /package/src/{thread-safe-callback.cpp → cpp/thread-safe-callback.cpp} +0 -0
  214. /package/src/{thread-safe-callback.h → cpp/thread-safe-callback.h} +0 -0
  215. /package/src/{web-socket-server-wrapper.cpp → cpp/web-socket-server-wrapper.cpp} +0 -0
  216. /package/src/{web-socket-server-wrapper.h → cpp/web-socket-server-wrapper.h} +0 -0
  217. /package/src/{web-socket-wrapper.cpp → cpp/web-socket-wrapper.cpp} +0 -0
  218. /package/src/{web-socket-wrapper.h → cpp/web-socket-wrapper.h} +0 -0
  219. /package/{polyfill → src/polyfill}/README.md +0 -0
@@ -1,317 +0,0 @@
1
- {
2
- "name": "simple-peer-test",
3
- "version": "1.0.0",
4
- "lockfileVersion": 2,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "simple-peer-test",
9
- "version": "1.0.0",
10
- "license": "ISC",
11
- "dependencies": {
12
- "simple-peer": "^9.11.1"
13
- }
14
- },
15
- "node_modules/base64-js": {
16
- "version": "1.5.1",
17
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
18
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
19
- "funding": [
20
- {
21
- "type": "github",
22
- "url": "https://github.com/sponsors/feross"
23
- },
24
- {
25
- "type": "patreon",
26
- "url": "https://www.patreon.com/feross"
27
- },
28
- {
29
- "type": "consulting",
30
- "url": "https://feross.org/support"
31
- }
32
- ]
33
- },
34
- "node_modules/buffer": {
35
- "version": "6.0.3",
36
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
37
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
38
- "funding": [
39
- {
40
- "type": "github",
41
- "url": "https://github.com/sponsors/feross"
42
- },
43
- {
44
- "type": "patreon",
45
- "url": "https://www.patreon.com/feross"
46
- },
47
- {
48
- "type": "consulting",
49
- "url": "https://feross.org/support"
50
- }
51
- ],
52
- "dependencies": {
53
- "base64-js": "^1.3.1",
54
- "ieee754": "^1.2.1"
55
- }
56
- },
57
- "node_modules/debug": {
58
- "version": "4.3.4",
59
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
60
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
61
- "dependencies": {
62
- "ms": "2.1.2"
63
- },
64
- "engines": {
65
- "node": ">=6.0"
66
- },
67
- "peerDependenciesMeta": {
68
- "supports-color": {
69
- "optional": true
70
- }
71
- }
72
- },
73
- "node_modules/err-code": {
74
- "version": "3.0.1",
75
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
76
- "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
77
- },
78
- "node_modules/get-browser-rtc": {
79
- "version": "1.1.0",
80
- "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz",
81
- "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ=="
82
- },
83
- "node_modules/ieee754": {
84
- "version": "1.2.1",
85
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
86
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
87
- "funding": [
88
- {
89
- "type": "github",
90
- "url": "https://github.com/sponsors/feross"
91
- },
92
- {
93
- "type": "patreon",
94
- "url": "https://www.patreon.com/feross"
95
- },
96
- {
97
- "type": "consulting",
98
- "url": "https://feross.org/support"
99
- }
100
- ]
101
- },
102
- "node_modules/inherits": {
103
- "version": "2.0.4",
104
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
105
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
106
- },
107
- "node_modules/ms": {
108
- "version": "2.1.2",
109
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
110
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
111
- },
112
- "node_modules/queue-microtask": {
113
- "version": "1.2.3",
114
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
115
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
116
- "funding": [
117
- {
118
- "type": "github",
119
- "url": "https://github.com/sponsors/feross"
120
- },
121
- {
122
- "type": "patreon",
123
- "url": "https://www.patreon.com/feross"
124
- },
125
- {
126
- "type": "consulting",
127
- "url": "https://feross.org/support"
128
- }
129
- ]
130
- },
131
- "node_modules/randombytes": {
132
- "version": "2.1.0",
133
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
134
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
135
- "dependencies": {
136
- "safe-buffer": "^5.1.0"
137
- }
138
- },
139
- "node_modules/readable-stream": {
140
- "version": "3.6.2",
141
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
142
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
143
- "dependencies": {
144
- "inherits": "^2.0.3",
145
- "string_decoder": "^1.1.1",
146
- "util-deprecate": "^1.0.1"
147
- },
148
- "engines": {
149
- "node": ">= 6"
150
- }
151
- },
152
- "node_modules/safe-buffer": {
153
- "version": "5.2.1",
154
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
155
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
156
- "funding": [
157
- {
158
- "type": "github",
159
- "url": "https://github.com/sponsors/feross"
160
- },
161
- {
162
- "type": "patreon",
163
- "url": "https://www.patreon.com/feross"
164
- },
165
- {
166
- "type": "consulting",
167
- "url": "https://feross.org/support"
168
- }
169
- ]
170
- },
171
- "node_modules/simple-peer": {
172
- "version": "9.11.1",
173
- "resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz",
174
- "integrity": "sha512-D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==",
175
- "funding": [
176
- {
177
- "type": "github",
178
- "url": "https://github.com/sponsors/feross"
179
- },
180
- {
181
- "type": "patreon",
182
- "url": "https://www.patreon.com/feross"
183
- },
184
- {
185
- "type": "consulting",
186
- "url": "https://feross.org/support"
187
- }
188
- ],
189
- "dependencies": {
190
- "buffer": "^6.0.3",
191
- "debug": "^4.3.2",
192
- "err-code": "^3.0.1",
193
- "get-browser-rtc": "^1.1.0",
194
- "queue-microtask": "^1.2.3",
195
- "randombytes": "^2.1.0",
196
- "readable-stream": "^3.6.0"
197
- }
198
- },
199
- "node_modules/string_decoder": {
200
- "version": "1.3.0",
201
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
202
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
203
- "dependencies": {
204
- "safe-buffer": "~5.2.0"
205
- }
206
- },
207
- "node_modules/util-deprecate": {
208
- "version": "1.0.2",
209
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
210
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
211
- }
212
- },
213
- "dependencies": {
214
- "base64-js": {
215
- "version": "1.5.1",
216
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
217
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
218
- },
219
- "buffer": {
220
- "version": "6.0.3",
221
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
222
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
223
- "requires": {
224
- "base64-js": "^1.3.1",
225
- "ieee754": "^1.2.1"
226
- }
227
- },
228
- "debug": {
229
- "version": "4.3.4",
230
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
231
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
232
- "requires": {
233
- "ms": "2.1.2"
234
- }
235
- },
236
- "err-code": {
237
- "version": "3.0.1",
238
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
239
- "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
240
- },
241
- "get-browser-rtc": {
242
- "version": "1.1.0",
243
- "resolved": "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz",
244
- "integrity": "sha512-MghbMJ61EJrRsDe7w1Bvqt3ZsBuqhce5nrn/XAwgwOXhcsz53/ltdxOse1h/8eKXj5slzxdsz56g5rzOFSGwfQ=="
245
- },
246
- "ieee754": {
247
- "version": "1.2.1",
248
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
249
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
250
- },
251
- "inherits": {
252
- "version": "2.0.4",
253
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
254
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
255
- },
256
- "ms": {
257
- "version": "2.1.2",
258
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
259
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
260
- },
261
- "queue-microtask": {
262
- "version": "1.2.3",
263
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
264
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
265
- },
266
- "randombytes": {
267
- "version": "2.1.0",
268
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
269
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
270
- "requires": {
271
- "safe-buffer": "^5.1.0"
272
- }
273
- },
274
- "readable-stream": {
275
- "version": "3.6.2",
276
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
277
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
278
- "requires": {
279
- "inherits": "^2.0.3",
280
- "string_decoder": "^1.1.1",
281
- "util-deprecate": "^1.0.1"
282
- }
283
- },
284
- "safe-buffer": {
285
- "version": "5.2.1",
286
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
287
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
288
- },
289
- "simple-peer": {
290
- "version": "9.11.1",
291
- "resolved": "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz",
292
- "integrity": "sha512-D1SaWpOW8afq1CZGWB8xTfrT3FekjQmPValrqncJMX7QFl8YwhrPTZvMCANLtgBwwdS+7zURyqxDDEmY558tTw==",
293
- "requires": {
294
- "buffer": "^6.0.3",
295
- "debug": "^4.3.2",
296
- "err-code": "^3.0.1",
297
- "get-browser-rtc": "^1.1.0",
298
- "queue-microtask": "^1.2.3",
299
- "randombytes": "^2.1.0",
300
- "readable-stream": "^3.6.0"
301
- }
302
- },
303
- "string_decoder": {
304
- "version": "1.3.0",
305
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
306
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
307
- "requires": {
308
- "safe-buffer": "~5.2.0"
309
- }
310
- },
311
- "util-deprecate": {
312
- "version": "1.0.2",
313
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
314
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
315
- }
316
- }
317
- }
@@ -1,16 +0,0 @@
1
- {
2
- "name": "simple-peer-test",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "index.js",
6
- "type": "module",
7
- "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
9
- },
10
- "keywords": [],
11
- "author": "",
12
- "license": "ISC",
13
- "dependencies": {
14
- "simple-peer": "^9.11.1"
15
- }
16
- }
@@ -1,20 +0,0 @@
1
- import * as nodeDataChannel from '../../lib/index.js';
2
-
3
- const clientSocket = new nodeDataChannel.WebSocket();
4
-
5
- clientSocket.open('ws://127.0.0.1:3000');
6
-
7
- clientSocket.onOpen(() => {
8
- console.log('Client socket opened');
9
- clientSocket.sendMessage('Echo this!');
10
- });
11
-
12
- clientSocket.onMessage((message) => {
13
- console.log('Message from server: ' + message);
14
- });
15
-
16
- clientSocket.onClosed(() => {
17
- console.log('Client socket closed');
18
- });
19
-
20
- // clientSocket.close();
@@ -1,22 +0,0 @@
1
- import * as nodeDataChannel from '../../lib/index.js';
2
-
3
- const ws = new nodeDataChannel.WebSocketServer({ bindAddress: '127.0.0.1', port: 3000 });
4
-
5
- ws.onClient((clientSocket) => {
6
- clientSocket.onOpen(() => {
7
- console.log('Client socket opened');
8
- clientSocket.sendMessage('Hello from server');
9
- });
10
-
11
- clientSocket.onMessage((message) => {
12
- console.log('Message from client: ' + message);
13
- clientSocket.sendMessage(message);
14
- });
15
-
16
- clientSocket.onClosed(() => {
17
- console.log('Client socket closed');
18
- });
19
- });
20
-
21
- // When done, close the server
22
- // ws.stop();
package/jest.config.cjs DELETED
@@ -1,7 +0,0 @@
1
- /** @type {import('jest').Config} */
2
- const config = {
3
- verbose: true,
4
- testPathIgnorePatterns: ['node_modules', 'multiple-run.test', 'wpt-tests'],
5
- };
6
-
7
- module.exports = config;
package/lib/index.cjs DELETED
@@ -1,194 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var module$1 = require('module');
6
- var stream = require('stream');
7
- var events = require('events');
8
-
9
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
10
- // createRequire is native in node version >= 12
11
- const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)));
12
-
13
- const nodeDataChannel = require$1('../build/Release/node_datachannel.node');
14
-
15
- /**
16
- * Turns a node-datachannel DataChannel into a real Node.js stream, complete with buffering,
17
- * backpressure (up to a point - if the buffer fills up, messages are dropped), and
18
- * support for piping data elsewhere.
19
- *
20
- * Read & written data may be either UTF-8 strings or Buffers - this difference exists at
21
- * the protocol level, and is preserved here throughout.
22
- */
23
- class DataChannelStream extends stream.Duplex {
24
- constructor(rawChannel, streamOptions) {
25
- super({
26
- allowHalfOpen: false, // Default to autoclose on end().
27
- ...streamOptions,
28
- objectMode: true, // Preserve the string/buffer distinction (WebRTC treats them differently)
29
- });
30
-
31
- this._rawChannel = rawChannel;
32
- this._readActive = true;
33
-
34
- rawChannel.onMessage((msg) => {
35
- if (!this._readActive) return; // If the buffer is full, drop messages.
36
-
37
- // If the push is rejected, we pause reading until the next call to _read().
38
- this._readActive = this.push(msg);
39
- });
40
-
41
- // When the DataChannel closes, the readable & writable ends close
42
- rawChannel.onClosed(() => {
43
- this.push(null);
44
- this.destroy();
45
- });
46
-
47
- rawChannel.onError((errMsg) => {
48
- this.destroy(new Error(`DataChannel error: ${errMsg}`));
49
- });
50
-
51
- // Buffer all writes until the DataChannel opens
52
- if (!rawChannel.isOpen()) {
53
- this.cork();
54
- rawChannel.onOpen(() => this.uncork());
55
- }
56
- }
57
-
58
- _read() {
59
- // Stop dropping messages, if the buffer filling up meant we were doing so before.
60
- this._readActive = true;
61
- }
62
-
63
- _write(chunk, encoding, callback) {
64
- let sentOk;
65
-
66
- try {
67
- if (Buffer.isBuffer(chunk)) {
68
- sentOk = this._rawChannel.sendMessageBinary(chunk);
69
- } else if (typeof chunk === 'string') {
70
- sentOk = this._rawChannel.sendMessage(chunk);
71
- } else {
72
- const typeName = chunk.constructor.name || typeof chunk;
73
- throw new Error(`Cannot write ${typeName} to DataChannel stream`);
74
- }
75
- } catch (err) {
76
- return callback(err);
77
- }
78
-
79
- if (sentOk) {
80
- callback(null);
81
- } else {
82
- callback(new Error('Failed to write to DataChannel'));
83
- }
84
- }
85
-
86
- _final(callback) {
87
- if (!this.allowHalfOpen) this.destroy();
88
- callback(null);
89
- }
90
-
91
- _destroy(maybeErr, callback) {
92
- // When the stream is destroyed, we close the DataChannel.
93
- this._rawChannel.close();
94
- callback(maybeErr);
95
- }
96
-
97
- get label() {
98
- return this._rawChannel.getLabel();
99
- }
100
-
101
- get id() {
102
- return this._rawChannel.getId();
103
- }
104
-
105
- get protocol() {
106
- return this._rawChannel.getProtocol();
107
- }
108
- }
109
-
110
- class WebSocketServer extends events.EventEmitter {
111
- #server;
112
- #clients = [];
113
-
114
- constructor(options) {
115
- super();
116
- this.#server = new nodeDataChannel.WebSocketServer(options);
117
-
118
- this.#server.onClient((client) => {
119
- this.emit('client', client);
120
- this.#clients.push(client);
121
- });
122
- }
123
-
124
- port() {
125
- return this.#server?.port() || 0;
126
- }
127
-
128
- stop() {
129
- this.#clients.forEach((client) => {
130
- client?.close();
131
- });
132
- this.#server?.stop();
133
- this.#server = null;
134
- this.removeAllListeners();
135
- }
136
-
137
- onClient(cb) {
138
- if (this.#server) this.on('client', cb);
139
- }
140
- }
141
-
142
- const {
143
- initLogger,
144
- cleanup,
145
- preload,
146
- setSctpSettings,
147
- RtcpReceivingSession,
148
- Track,
149
- Video,
150
- Audio,
151
- DataChannel,
152
- PeerConnection,
153
- WebSocket,
154
- } = nodeDataChannel;
155
-
156
- const DescriptionType = {
157
- Unspec: 'unspec',
158
- Offer: 'offer',
159
- Answer: 'answer',
160
- Pranswer: 'pranswer',
161
- Rollback: 'rollback',
162
- };
163
-
164
- var index = {
165
- initLogger,
166
- cleanup,
167
- preload,
168
- setSctpSettings,
169
- RtcpReceivingSession,
170
- Track,
171
- Video,
172
- Audio,
173
- DataChannel,
174
- PeerConnection,
175
- WebSocket,
176
- WebSocketServer,
177
- DataChannelStream,
178
- };
179
-
180
- exports.Audio = Audio;
181
- exports.DataChannel = DataChannel;
182
- exports.DataChannelStream = DataChannelStream;
183
- exports.DescriptionType = DescriptionType;
184
- exports.PeerConnection = PeerConnection;
185
- exports.RtcpReceivingSession = RtcpReceivingSession;
186
- exports.Track = Track;
187
- exports.Video = Video;
188
- exports.WebSocket = WebSocket;
189
- exports.WebSocketServer = WebSocketServer;
190
- exports.cleanup = cleanup;
191
- exports.default = index;
192
- exports.initLogger = initLogger;
193
- exports.preload = preload;
194
- exports.setSctpSettings = setSctpSettings;