node-datachannel 0.4.3 → 0.5.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 (532) hide show
  1. package/.github/workflows/build-linux.yml +10 -10
  2. package/.github/workflows/build-mac-m1.yml +5 -5
  3. package/.github/workflows/build-mac-x64.yml +5 -5
  4. package/.github/workflows/build-win.yml +11 -8
  5. package/.github/workflows/lint.yml +1 -1
  6. package/.github/workflows/npm-publish-manual.yml +1 -1
  7. package/{.prettierrc.js → .prettierrc.cjs} +1 -0
  8. package/BULDING.md +7 -3
  9. package/CMakeLists.txt +12 -22
  10. package/README.md +37 -33
  11. package/cmake/toolchain/arm64.cmake +1 -1
  12. package/examples/client-server/README.md +22 -0
  13. package/examples/client-server/client-benchmark.js +11 -6
  14. package/examples/client-server/client-periodic.js +5 -6
  15. package/examples/client-server/client.js +4 -5
  16. package/examples/client-server/package-lock.json +311 -260
  17. package/examples/client-server/package.json +15 -14
  18. package/examples/client-server/signaling-server.js +1 -2
  19. package/examples/electron-demo/README.md +58 -0
  20. package/examples/electron-demo/forge.config.js +49 -0
  21. package/examples/electron-demo/package-lock.json +16032 -0
  22. package/examples/electron-demo/package.json +43 -0
  23. package/examples/electron-demo/src/index.css +7 -0
  24. package/examples/electron-demo/src/index.html +29 -0
  25. package/examples/electron-demo/src/main.js +53 -0
  26. package/examples/electron-demo/src/node-datachannel.js +123 -0
  27. package/examples/electron-demo/src/preload.js +28 -0
  28. package/examples/electron-demo/src/renderer.js +58 -0
  29. package/examples/electron-demo/webpack.main.config.js +11 -0
  30. package/examples/electron-demo/webpack.renderer.config.js +13 -0
  31. package/examples/electron-demo/webpack.rules.js +35 -0
  32. package/examples/media/README.md +3 -3
  33. package/examples/media/media.js +3 -4
  34. package/examples/simple-peer-usage/main.js +28 -0
  35. package/examples/simple-peer-usage/package-lock.json +317 -0
  36. package/examples/simple-peer-usage/package.json +16 -0
  37. package/lib/datachannel-stream.js +3 -4
  38. package/lib/index.d.ts +12 -4
  39. package/lib/index.js +37 -3
  40. package/package.json +81 -68
  41. package/polyfill/Events.d.ts +9 -0
  42. package/polyfill/Events.js +27 -0
  43. package/polyfill/README.md +41 -0
  44. package/polyfill/RTCCertificate.d.ts +7 -0
  45. package/polyfill/RTCCertificate.js +17 -0
  46. package/polyfill/RTCDataChannel.d.ts +35 -0
  47. package/polyfill/RTCDataChannel.js +175 -0
  48. package/polyfill/RTCDtlsTransport.d.ts +10 -0
  49. package/polyfill/RTCDtlsTransport.js +47 -0
  50. package/polyfill/RTCIceCandidate.d.ts +20 -0
  51. package/polyfill/RTCIceCandidate.js +126 -0
  52. package/polyfill/RTCIceTransport.d.ts +18 -0
  53. package/polyfill/RTCIceTransport.js +82 -0
  54. package/polyfill/RTCPeerConnection.d.ts +50 -0
  55. package/polyfill/RTCPeerConnection.js +371 -0
  56. package/polyfill/RTCSctpTransport.d.ts +10 -0
  57. package/polyfill/RTCSctpTransport.js +53 -0
  58. package/polyfill/RTCSessionDescription.d.ts +7 -0
  59. package/polyfill/RTCSessionDescription.js +37 -0
  60. package/polyfill/index.d.ts +14 -0
  61. package/polyfill/index.js +14 -0
  62. package/src/data-channel-wrapper.cpp +47 -6
  63. package/src/main.cpp +5 -5
  64. package/src/peer-connection-wrapper.cpp +191 -9
  65. package/src/peer-connection-wrapper.h +6 -0
  66. package/src/rtc-wrapper.cpp +14 -9
  67. package/src/thread-safe-callback.cpp +4 -10
  68. package/src/thread-safe-callback.h +3 -12
  69. package/test/connectivity.js +9 -4
  70. package/test/polyfill-connectivity.js +90 -0
  71. package/test/test.js +2 -2
  72. package/test/wpt.js +50 -0
  73. package/examples/README.md +0 -21
  74. package/node_modules/ansi-regex/index.js +0 -4
  75. package/node_modules/ansi-regex/license +0 -21
  76. package/node_modules/ansi-regex/package.json +0 -111
  77. package/node_modules/ansi-regex/readme.md +0 -39
  78. package/node_modules/aproba/LICENSE +0 -14
  79. package/node_modules/aproba/README.md +0 -94
  80. package/node_modules/aproba/index.js +0 -105
  81. package/node_modules/aproba/package.json +0 -65
  82. package/node_modules/base64-js/LICENSE +0 -21
  83. package/node_modules/base64-js/README.md +0 -34
  84. package/node_modules/base64-js/base64js.min.js +0 -1
  85. package/node_modules/base64-js/index.d.ts +0 -3
  86. package/node_modules/base64-js/index.js +0 -150
  87. package/node_modules/base64-js/package.json +0 -78
  88. package/node_modules/buffer/AUTHORS.md +0 -70
  89. package/node_modules/buffer/LICENSE +0 -21
  90. package/node_modules/buffer/README.md +0 -410
  91. package/node_modules/buffer/index.d.ts +0 -186
  92. package/node_modules/buffer/index.js +0 -1817
  93. package/node_modules/buffer/package.json +0 -130
  94. package/node_modules/chownr/LICENSE +0 -15
  95. package/node_modules/chownr/README.md +0 -3
  96. package/node_modules/chownr/chownr.js +0 -167
  97. package/node_modules/chownr/package.json +0 -66
  98. package/node_modules/code-point-at/index.js +0 -32
  99. package/node_modules/code-point-at/license +0 -21
  100. package/node_modules/code-point-at/package.json +0 -73
  101. package/node_modules/code-point-at/readme.md +0 -32
  102. package/node_modules/console-control-strings/LICENSE +0 -13
  103. package/node_modules/console-control-strings/README.md +0 -145
  104. package/node_modules/console-control-strings/README.md~ +0 -140
  105. package/node_modules/console-control-strings/index.js +0 -125
  106. package/node_modules/console-control-strings/package.json +0 -64
  107. package/node_modules/core-util-is/LICENSE +0 -19
  108. package/node_modules/core-util-is/README.md +0 -3
  109. package/node_modules/core-util-is/float.patch +0 -604
  110. package/node_modules/core-util-is/lib/util.js +0 -107
  111. package/node_modules/core-util-is/package.json +0 -70
  112. package/node_modules/core-util-is/test.js +0 -68
  113. package/node_modules/decompress-response/index.d.ts +0 -22
  114. package/node_modules/decompress-response/index.js +0 -58
  115. package/node_modules/decompress-response/license +0 -9
  116. package/node_modules/decompress-response/package.json +0 -91
  117. package/node_modules/decompress-response/readme.md +0 -48
  118. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  119. package/node_modules/deep-extend/LICENSE +0 -20
  120. package/node_modules/deep-extend/README.md +0 -91
  121. package/node_modules/deep-extend/index.js +0 -1
  122. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  123. package/node_modules/deep-extend/package.json +0 -95
  124. package/node_modules/delegates/.npmignore +0 -1
  125. package/node_modules/delegates/History.md +0 -22
  126. package/node_modules/delegates/License +0 -20
  127. package/node_modules/delegates/Makefile +0 -8
  128. package/node_modules/delegates/Readme.md +0 -94
  129. package/node_modules/delegates/index.js +0 -121
  130. package/node_modules/delegates/package.json +0 -53
  131. package/node_modules/delegates/test/index.js +0 -94
  132. package/node_modules/detect-libc/LICENSE +0 -201
  133. package/node_modules/detect-libc/README.md +0 -160
  134. package/node_modules/detect-libc/index.d.ts +0 -11
  135. package/node_modules/detect-libc/lib/detect-libc.js +0 -178
  136. package/node_modules/detect-libc/lib/process.js +0 -16
  137. package/node_modules/detect-libc/package.json +0 -75
  138. package/node_modules/end-of-stream/LICENSE +0 -21
  139. package/node_modules/end-of-stream/README.md +0 -54
  140. package/node_modules/end-of-stream/index.js +0 -94
  141. package/node_modules/end-of-stream/package.json +0 -69
  142. package/node_modules/expand-template/.travis.yml +0 -6
  143. package/node_modules/expand-template/LICENSE +0 -21
  144. package/node_modules/expand-template/README.md +0 -43
  145. package/node_modules/expand-template/index.js +0 -26
  146. package/node_modules/expand-template/package.json +0 -63
  147. package/node_modules/expand-template/test.js +0 -67
  148. package/node_modules/fs-constants/LICENSE +0 -21
  149. package/node_modules/fs-constants/README.md +0 -26
  150. package/node_modules/fs-constants/browser.js +0 -1
  151. package/node_modules/fs-constants/index.js +0 -1
  152. package/node_modules/fs-constants/package.json +0 -50
  153. package/node_modules/github-from-package/.travis.yml +0 -4
  154. package/node_modules/github-from-package/LICENSE +0 -18
  155. package/node_modules/github-from-package/example/package.json +0 -8
  156. package/node_modules/github-from-package/example/url.js +0 -3
  157. package/node_modules/github-from-package/index.js +0 -17
  158. package/node_modules/github-from-package/package.json +0 -62
  159. package/node_modules/github-from-package/readme.markdown +0 -53
  160. package/node_modules/github-from-package/test/a.json +0 -8
  161. package/node_modules/github-from-package/test/b.json +0 -5
  162. package/node_modules/github-from-package/test/c.json +0 -5
  163. package/node_modules/github-from-package/test/d.json +0 -7
  164. package/node_modules/github-from-package/test/e.json +0 -5
  165. package/node_modules/github-from-package/test/url.js +0 -19
  166. package/node_modules/has-unicode/LICENSE +0 -14
  167. package/node_modules/has-unicode/README.md +0 -43
  168. package/node_modules/has-unicode/index.js +0 -16
  169. package/node_modules/has-unicode/package.json +0 -62
  170. package/node_modules/ieee754/LICENSE +0 -11
  171. package/node_modules/ieee754/README.md +0 -51
  172. package/node_modules/ieee754/index.d.ts +0 -10
  173. package/node_modules/ieee754/index.js +0 -85
  174. package/node_modules/ieee754/package.json +0 -87
  175. package/node_modules/inherits/LICENSE +0 -16
  176. package/node_modules/inherits/README.md +0 -42
  177. package/node_modules/inherits/inherits.js +0 -9
  178. package/node_modules/inherits/inherits_browser.js +0 -27
  179. package/node_modules/inherits/package.json +0 -78
  180. package/node_modules/ini/LICENSE +0 -15
  181. package/node_modules/ini/README.md +0 -102
  182. package/node_modules/ini/ini.js +0 -206
  183. package/node_modules/ini/package.json +0 -69
  184. package/node_modules/is-fullwidth-code-point/index.js +0 -46
  185. package/node_modules/is-fullwidth-code-point/license +0 -21
  186. package/node_modules/is-fullwidth-code-point/package.json +0 -80
  187. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  188. package/node_modules/isarray/.npmignore +0 -1
  189. package/node_modules/isarray/.travis.yml +0 -4
  190. package/node_modules/isarray/Makefile +0 -6
  191. package/node_modules/isarray/README.md +0 -60
  192. package/node_modules/isarray/component.json +0 -19
  193. package/node_modules/isarray/index.js +0 -5
  194. package/node_modules/isarray/package.json +0 -77
  195. package/node_modules/isarray/test.js +0 -20
  196. package/node_modules/lru-cache/LICENSE +0 -15
  197. package/node_modules/lru-cache/README.md +0 -166
  198. package/node_modules/lru-cache/index.js +0 -334
  199. package/node_modules/lru-cache/node_modules/yallist/LICENSE +0 -15
  200. package/node_modules/lru-cache/node_modules/yallist/README.md +0 -204
  201. package/node_modules/lru-cache/node_modules/yallist/iterator.js +0 -8
  202. package/node_modules/lru-cache/node_modules/yallist/package.json +0 -65
  203. package/node_modules/lru-cache/node_modules/yallist/yallist.js +0 -426
  204. package/node_modules/lru-cache/package.json +0 -73
  205. package/node_modules/mimic-response/index.d.ts +0 -17
  206. package/node_modules/mimic-response/index.js +0 -77
  207. package/node_modules/mimic-response/license +0 -9
  208. package/node_modules/mimic-response/package.json +0 -77
  209. package/node_modules/mimic-response/readme.md +0 -78
  210. package/node_modules/minimist/.travis.yml +0 -8
  211. package/node_modules/minimist/LICENSE +0 -18
  212. package/node_modules/minimist/example/parse.js +0 -2
  213. package/node_modules/minimist/index.js +0 -249
  214. package/node_modules/minimist/package.json +0 -79
  215. package/node_modules/minimist/readme.markdown +0 -98
  216. package/node_modules/minimist/test/all_bool.js +0 -32
  217. package/node_modules/minimist/test/bool.js +0 -178
  218. package/node_modules/minimist/test/dash.js +0 -31
  219. package/node_modules/minimist/test/default_bool.js +0 -35
  220. package/node_modules/minimist/test/dotted.js +0 -22
  221. package/node_modules/minimist/test/kv_short.js +0 -16
  222. package/node_modules/minimist/test/long.js +0 -31
  223. package/node_modules/minimist/test/num.js +0 -36
  224. package/node_modules/minimist/test/parse.js +0 -197
  225. package/node_modules/minimist/test/parse_modified.js +0 -9
  226. package/node_modules/minimist/test/proto.js +0 -60
  227. package/node_modules/minimist/test/short.js +0 -67
  228. package/node_modules/minimist/test/stop_early.js +0 -15
  229. package/node_modules/minimist/test/unknown.js +0 -102
  230. package/node_modules/minimist/test/whitespace.js +0 -8
  231. package/node_modules/mkdirp-classic/LICENSE +0 -21
  232. package/node_modules/mkdirp-classic/README.md +0 -18
  233. package/node_modules/mkdirp-classic/index.js +0 -98
  234. package/node_modules/mkdirp-classic/package.json +0 -50
  235. package/node_modules/napi-build-utils/LICENSE +0 -21
  236. package/node_modules/napi-build-utils/README.md +0 -48
  237. package/node_modules/napi-build-utils/index.js +0 -213
  238. package/node_modules/napi-build-utils/index.md +0 -81
  239. package/node_modules/napi-build-utils/package.json +0 -72
  240. package/node_modules/node-abi/.circleci/config.yml +0 -63
  241. package/node_modules/node-abi/.github/workflows/update-abi.yml +0 -41
  242. package/node_modules/node-abi/.releaserc.json +0 -9
  243. package/node_modules/node-abi/CODE_OF_CONDUCT.md +0 -73
  244. package/node_modules/node-abi/CONTRIBUTING.md +0 -53
  245. package/node_modules/node-abi/LICENSE +0 -21
  246. package/node_modules/node-abi/README.md +0 -50
  247. package/node_modules/node-abi/abi_registry.json +0 -186
  248. package/node_modules/node-abi/index.js +0 -179
  249. package/node_modules/node-abi/node_modules/semver/LICENSE +0 -15
  250. package/node_modules/node-abi/node_modules/semver/README.md +0 -568
  251. package/node_modules/node-abi/node_modules/semver/bin/semver.js +0 -183
  252. package/node_modules/node-abi/node_modules/semver/classes/comparator.js +0 -136
  253. package/node_modules/node-abi/node_modules/semver/classes/index.js +0 -5
  254. package/node_modules/node-abi/node_modules/semver/classes/range.js +0 -519
  255. package/node_modules/node-abi/node_modules/semver/classes/semver.js +0 -287
  256. package/node_modules/node-abi/node_modules/semver/functions/clean.js +0 -6
  257. package/node_modules/node-abi/node_modules/semver/functions/cmp.js +0 -52
  258. package/node_modules/node-abi/node_modules/semver/functions/coerce.js +0 -52
  259. package/node_modules/node-abi/node_modules/semver/functions/compare-build.js +0 -7
  260. package/node_modules/node-abi/node_modules/semver/functions/compare-loose.js +0 -3
  261. package/node_modules/node-abi/node_modules/semver/functions/compare.js +0 -5
  262. package/node_modules/node-abi/node_modules/semver/functions/diff.js +0 -23
  263. package/node_modules/node-abi/node_modules/semver/functions/eq.js +0 -3
  264. package/node_modules/node-abi/node_modules/semver/functions/gt.js +0 -3
  265. package/node_modules/node-abi/node_modules/semver/functions/gte.js +0 -3
  266. package/node_modules/node-abi/node_modules/semver/functions/inc.js +0 -18
  267. package/node_modules/node-abi/node_modules/semver/functions/lt.js +0 -3
  268. package/node_modules/node-abi/node_modules/semver/functions/lte.js +0 -3
  269. package/node_modules/node-abi/node_modules/semver/functions/major.js +0 -3
  270. package/node_modules/node-abi/node_modules/semver/functions/minor.js +0 -3
  271. package/node_modules/node-abi/node_modules/semver/functions/neq.js +0 -3
  272. package/node_modules/node-abi/node_modules/semver/functions/parse.js +0 -33
  273. package/node_modules/node-abi/node_modules/semver/functions/patch.js +0 -3
  274. package/node_modules/node-abi/node_modules/semver/functions/prerelease.js +0 -6
  275. package/node_modules/node-abi/node_modules/semver/functions/rcompare.js +0 -3
  276. package/node_modules/node-abi/node_modules/semver/functions/rsort.js +0 -3
  277. package/node_modules/node-abi/node_modules/semver/functions/satisfies.js +0 -10
  278. package/node_modules/node-abi/node_modules/semver/functions/sort.js +0 -3
  279. package/node_modules/node-abi/node_modules/semver/functions/valid.js +0 -6
  280. package/node_modules/node-abi/node_modules/semver/index.js +0 -48
  281. package/node_modules/node-abi/node_modules/semver/internal/constants.js +0 -17
  282. package/node_modules/node-abi/node_modules/semver/internal/debug.js +0 -9
  283. package/node_modules/node-abi/node_modules/semver/internal/identifiers.js +0 -23
  284. package/node_modules/node-abi/node_modules/semver/internal/parse-options.js +0 -11
  285. package/node_modules/node-abi/node_modules/semver/internal/re.js +0 -182
  286. package/node_modules/node-abi/node_modules/semver/package.json +0 -109
  287. package/node_modules/node-abi/node_modules/semver/preload.js +0 -2
  288. package/node_modules/node-abi/node_modules/semver/range.bnf +0 -16
  289. package/node_modules/node-abi/node_modules/semver/ranges/gtr.js +0 -4
  290. package/node_modules/node-abi/node_modules/semver/ranges/intersects.js +0 -7
  291. package/node_modules/node-abi/node_modules/semver/ranges/ltr.js +0 -4
  292. package/node_modules/node-abi/node_modules/semver/ranges/max-satisfying.js +0 -25
  293. package/node_modules/node-abi/node_modules/semver/ranges/min-satisfying.js +0 -24
  294. package/node_modules/node-abi/node_modules/semver/ranges/min-version.js +0 -61
  295. package/node_modules/node-abi/node_modules/semver/ranges/outside.js +0 -80
  296. package/node_modules/node-abi/node_modules/semver/ranges/simplify.js +0 -47
  297. package/node_modules/node-abi/node_modules/semver/ranges/subset.js +0 -244
  298. package/node_modules/node-abi/node_modules/semver/ranges/to-comparators.js +0 -8
  299. package/node_modules/node-abi/node_modules/semver/ranges/valid.js +0 -11
  300. package/node_modules/node-abi/package.json +0 -72
  301. package/node_modules/node-abi/scripts/update-abi-registry.js +0 -119
  302. package/node_modules/node-abi/test/index.js +0 -166
  303. package/node_modules/npmlog/CHANGELOG.md +0 -49
  304. package/node_modules/npmlog/LICENSE +0 -15
  305. package/node_modules/npmlog/README.md +0 -216
  306. package/node_modules/npmlog/log.js +0 -309
  307. package/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md +0 -37
  308. package/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE +0 -5
  309. package/node_modules/npmlog/node_modules/are-we-there-yet/README.md +0 -195
  310. package/node_modules/npmlog/node_modules/are-we-there-yet/index.js +0 -4
  311. package/node_modules/npmlog/node_modules/are-we-there-yet/package.json +0 -66
  312. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js +0 -11
  313. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js +0 -107
  314. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js +0 -36
  315. package/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js +0 -30
  316. package/node_modules/npmlog/node_modules/gauge/CHANGELOG.md +0 -160
  317. package/node_modules/npmlog/node_modules/gauge/LICENSE +0 -13
  318. package/node_modules/npmlog/node_modules/gauge/README.md +0 -399
  319. package/node_modules/npmlog/node_modules/gauge/base-theme.js +0 -14
  320. package/node_modules/npmlog/node_modules/gauge/error.js +0 -24
  321. package/node_modules/npmlog/node_modules/gauge/has-color.js +0 -12
  322. package/node_modules/npmlog/node_modules/gauge/index.js +0 -233
  323. package/node_modules/npmlog/node_modules/gauge/package.json +0 -94
  324. package/node_modules/npmlog/node_modules/gauge/plumbing.js +0 -48
  325. package/node_modules/npmlog/node_modules/gauge/process.js +0 -3
  326. package/node_modules/npmlog/node_modules/gauge/progress-bar.js +0 -35
  327. package/node_modules/npmlog/node_modules/gauge/render-template.js +0 -181
  328. package/node_modules/npmlog/node_modules/gauge/set-immediate.js +0 -7
  329. package/node_modules/npmlog/node_modules/gauge/set-interval.js +0 -3
  330. package/node_modules/npmlog/node_modules/gauge/spin.js +0 -5
  331. package/node_modules/npmlog/node_modules/gauge/template-item.js +0 -73
  332. package/node_modules/npmlog/node_modules/gauge/theme-set.js +0 -115
  333. package/node_modules/npmlog/node_modules/gauge/themes.js +0 -54
  334. package/node_modules/npmlog/node_modules/gauge/wide-truncate.js +0 -25
  335. package/node_modules/npmlog/package.json +0 -78
  336. package/node_modules/number-is-nan/index.js +0 -4
  337. package/node_modules/number-is-nan/license +0 -21
  338. package/node_modules/number-is-nan/package.json +0 -70
  339. package/node_modules/number-is-nan/readme.md +0 -28
  340. package/node_modules/object-assign/index.js +0 -90
  341. package/node_modules/object-assign/license +0 -21
  342. package/node_modules/object-assign/package.json +0 -77
  343. package/node_modules/object-assign/readme.md +0 -61
  344. package/node_modules/once/LICENSE +0 -15
  345. package/node_modules/once/README.md +0 -79
  346. package/node_modules/once/once.js +0 -42
  347. package/node_modules/once/package.json +0 -74
  348. package/node_modules/prebuild-install/CHANGELOG.md +0 -98
  349. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  350. package/node_modules/prebuild-install/LICENSE +0 -21
  351. package/node_modules/prebuild-install/README.md +0 -159
  352. package/node_modules/prebuild-install/asset.js +0 -44
  353. package/node_modules/prebuild-install/bin.js +0 -78
  354. package/node_modules/prebuild-install/download.js +0 -142
  355. package/node_modules/prebuild-install/error.js +0 -14
  356. package/node_modules/prebuild-install/help.txt +0 -16
  357. package/node_modules/prebuild-install/index.js +0 -1
  358. package/node_modules/prebuild-install/log.js +0 -25
  359. package/node_modules/prebuild-install/package.json +0 -129
  360. package/node_modules/prebuild-install/proxy.js +0 -35
  361. package/node_modules/prebuild-install/rc.js +0 -60
  362. package/node_modules/prebuild-install/util.js +0 -143
  363. package/node_modules/process-nextick-args/index.js +0 -45
  364. package/node_modules/process-nextick-args/license.md +0 -19
  365. package/node_modules/process-nextick-args/package.json +0 -53
  366. package/node_modules/process-nextick-args/readme.md +0 -18
  367. package/node_modules/pump/.travis.yml +0 -5
  368. package/node_modules/pump/LICENSE +0 -21
  369. package/node_modules/pump/README.md +0 -65
  370. package/node_modules/pump/index.js +0 -82
  371. package/node_modules/pump/package.json +0 -63
  372. package/node_modules/pump/test-browser.js +0 -66
  373. package/node_modules/pump/test-node.js +0 -53
  374. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  375. package/node_modules/rc/LICENSE.BSD +0 -26
  376. package/node_modules/rc/LICENSE.MIT +0 -24
  377. package/node_modules/rc/README.md +0 -227
  378. package/node_modules/rc/browser.js +0 -7
  379. package/node_modules/rc/cli.js +0 -4
  380. package/node_modules/rc/index.js +0 -53
  381. package/node_modules/rc/lib/utils.js +0 -104
  382. package/node_modules/rc/package.json +0 -70
  383. package/node_modules/rc/test/ini.js +0 -16
  384. package/node_modules/rc/test/nested-env-vars.js +0 -50
  385. package/node_modules/rc/test/test.js +0 -59
  386. package/node_modules/readable-stream/.travis.yml +0 -34
  387. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  388. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  389. package/node_modules/readable-stream/LICENSE +0 -47
  390. package/node_modules/readable-stream/README.md +0 -58
  391. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  392. package/node_modules/readable-stream/duplex-browser.js +0 -1
  393. package/node_modules/readable-stream/duplex.js +0 -1
  394. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  395. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  396. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  397. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  398. package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  399. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  400. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  401. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  402. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  403. package/node_modules/readable-stream/package.json +0 -87
  404. package/node_modules/readable-stream/passthrough.js +0 -1
  405. package/node_modules/readable-stream/readable-browser.js +0 -7
  406. package/node_modules/readable-stream/readable.js +0 -19
  407. package/node_modules/readable-stream/transform.js +0 -1
  408. package/node_modules/readable-stream/writable-browser.js +0 -1
  409. package/node_modules/readable-stream/writable.js +0 -8
  410. package/node_modules/safe-buffer/LICENSE +0 -21
  411. package/node_modules/safe-buffer/README.md +0 -584
  412. package/node_modules/safe-buffer/index.d.ts +0 -187
  413. package/node_modules/safe-buffer/index.js +0 -62
  414. package/node_modules/safe-buffer/package.json +0 -70
  415. package/node_modules/set-blocking/CHANGELOG.md +0 -26
  416. package/node_modules/set-blocking/LICENSE.txt +0 -14
  417. package/node_modules/set-blocking/README.md +0 -31
  418. package/node_modules/set-blocking/index.js +0 -7
  419. package/node_modules/set-blocking/package.json +0 -73
  420. package/node_modules/signal-exit/CHANGELOG.md +0 -35
  421. package/node_modules/signal-exit/LICENSE.txt +0 -16
  422. package/node_modules/signal-exit/README.md +0 -39
  423. package/node_modules/signal-exit/index.js +0 -163
  424. package/node_modules/signal-exit/package.json +0 -71
  425. package/node_modules/signal-exit/signals.js +0 -53
  426. package/node_modules/simple-concat/.travis.yml +0 -3
  427. package/node_modules/simple-concat/LICENSE +0 -20
  428. package/node_modules/simple-concat/README.md +0 -44
  429. package/node_modules/simple-concat/index.js +0 -15
  430. package/node_modules/simple-concat/package.json +0 -75
  431. package/node_modules/simple-concat/test/basic.js +0 -41
  432. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  433. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  434. package/node_modules/simple-get/LICENSE +0 -20
  435. package/node_modules/simple-get/README.md +0 -333
  436. package/node_modules/simple-get/index.js +0 -108
  437. package/node_modules/simple-get/package.json +0 -95
  438. package/node_modules/string-width/index.js +0 -37
  439. package/node_modules/string-width/license +0 -21
  440. package/node_modules/string-width/package.json +0 -95
  441. package/node_modules/string-width/readme.md +0 -42
  442. package/node_modules/string_decoder/.travis.yml +0 -50
  443. package/node_modules/string_decoder/LICENSE +0 -48
  444. package/node_modules/string_decoder/README.md +0 -47
  445. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  446. package/node_modules/string_decoder/package.json +0 -64
  447. package/node_modules/strip-ansi/index.js +0 -6
  448. package/node_modules/strip-ansi/license +0 -21
  449. package/node_modules/strip-ansi/package.json +0 -107
  450. package/node_modules/strip-ansi/readme.md +0 -33
  451. package/node_modules/strip-json-comments/index.js +0 -70
  452. package/node_modules/strip-json-comments/license +0 -21
  453. package/node_modules/strip-json-comments/package.json +0 -77
  454. package/node_modules/strip-json-comments/readme.md +0 -64
  455. package/node_modules/tar-fs/.travis.yml +0 -6
  456. package/node_modules/tar-fs/LICENSE +0 -21
  457. package/node_modules/tar-fs/README.md +0 -165
  458. package/node_modules/tar-fs/index.js +0 -351
  459. package/node_modules/tar-fs/package.json +0 -71
  460. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  461. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  462. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  463. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  464. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  465. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  466. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  467. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  468. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  469. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  470. package/node_modules/tar-fs/test/index.js +0 -346
  471. package/node_modules/tar-stream/LICENSE +0 -21
  472. package/node_modules/tar-stream/README.md +0 -168
  473. package/node_modules/tar-stream/extract.js +0 -257
  474. package/node_modules/tar-stream/headers.js +0 -293
  475. package/node_modules/tar-stream/index.js +0 -2
  476. package/node_modules/tar-stream/node_modules/bl/.travis.yml +0 -17
  477. package/node_modules/tar-stream/node_modules/bl/BufferList.js +0 -396
  478. package/node_modules/tar-stream/node_modules/bl/LICENSE.md +0 -13
  479. package/node_modules/tar-stream/node_modules/bl/README.md +0 -247
  480. package/node_modules/tar-stream/node_modules/bl/bl.js +0 -84
  481. package/node_modules/tar-stream/node_modules/bl/package.json +0 -68
  482. package/node_modules/tar-stream/node_modules/bl/test/convert.js +0 -21
  483. package/node_modules/tar-stream/node_modules/bl/test/indexOf.js +0 -492
  484. package/node_modules/tar-stream/node_modules/bl/test/isBufferList.js +0 -32
  485. package/node_modules/tar-stream/node_modules/bl/test/test.js +0 -869
  486. package/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  487. package/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
  488. package/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
  489. package/node_modules/tar-stream/node_modules/readable-stream/README.md +0 -106
  490. package/node_modules/tar-stream/node_modules/readable-stream/errors-browser.js +0 -127
  491. package/node_modules/tar-stream/node_modules/readable-stream/errors.js +0 -116
  492. package/node_modules/tar-stream/node_modules/readable-stream/experimentalWarning.js +0 -17
  493. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_duplex.js +0 -139
  494. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_passthrough.js +0 -39
  495. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_readable.js +0 -1124
  496. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_transform.js +0 -201
  497. package/node_modules/tar-stream/node_modules/readable-stream/lib/_stream_writable.js +0 -697
  498. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -207
  499. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -210
  500. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -105
  501. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -104
  502. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  503. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/from.js +0 -64
  504. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -97
  505. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/state.js +0 -27
  506. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  507. package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  508. package/node_modules/tar-stream/node_modules/readable-stream/package.json +0 -101
  509. package/node_modules/tar-stream/node_modules/readable-stream/readable-browser.js +0 -9
  510. package/node_modules/tar-stream/node_modules/readable-stream/readable.js +0 -16
  511. package/node_modules/tar-stream/pack.js +0 -255
  512. package/node_modules/tar-stream/package.json +0 -95
  513. package/node_modules/tar-stream/sandbox.js +0 -11
  514. package/node_modules/tunnel-agent/LICENSE +0 -55
  515. package/node_modules/tunnel-agent/README.md +0 -4
  516. package/node_modules/tunnel-agent/index.js +0 -244
  517. package/node_modules/tunnel-agent/package.json +0 -59
  518. package/node_modules/util-deprecate/History.md +0 -16
  519. package/node_modules/util-deprecate/LICENSE +0 -24
  520. package/node_modules/util-deprecate/README.md +0 -53
  521. package/node_modules/util-deprecate/browser.js +0 -67
  522. package/node_modules/util-deprecate/node.js +0 -6
  523. package/node_modules/util-deprecate/package.json +0 -62
  524. package/node_modules/wide-align/LICENSE +0 -14
  525. package/node_modules/wide-align/README.md +0 -47
  526. package/node_modules/wide-align/align.js +0 -65
  527. package/node_modules/wide-align/package.json +0 -69
  528. package/node_modules/wrappy/LICENSE +0 -15
  529. package/node_modules/wrappy/README.md +0 -36
  530. package/node_modules/wrappy/package.json +0 -62
  531. package/node_modules/wrappy/wrappy.js +0 -33
  532. /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
@@ -4,6 +4,8 @@
4
4
  #include "media-video-wrapper.h"
5
5
  #include "media-audio-wrapper.h"
6
6
 
7
+ #include "plog/Log.h"
8
+
7
9
  #include <cctype>
8
10
  #include <sstream>
9
11
 
@@ -12,6 +14,7 @@ std::unordered_set<PeerConnectionWrapper *> PeerConnectionWrapper::instances;
12
14
 
13
15
  void PeerConnectionWrapper::CloseAll()
14
16
  {
17
+ PLOG_DEBUG << "CloseAll() called";
15
18
  auto copy(instances);
16
19
  for (auto inst : copy)
17
20
  inst->doClose();
@@ -19,6 +22,7 @@ void PeerConnectionWrapper::CloseAll()
19
22
 
20
23
  void PeerConnectionWrapper::ResetCallbacksAll()
21
24
  {
25
+ PLOG_DEBUG << "ResetCallbacksAll() called";
22
26
  auto copy(instances);
23
27
  for (auto inst : copy)
24
28
  inst->doResetCallbacks();
@@ -37,16 +41,19 @@ Napi::Object PeerConnectionWrapper::Init(Napi::Env env, Napi::Object exports)
37
41
  InstanceMethod("setLocalDescription", &PeerConnectionWrapper::setLocalDescription),
38
42
  InstanceMethod("setRemoteDescription", &PeerConnectionWrapper::setRemoteDescription),
39
43
  InstanceMethod("localDescription", &PeerConnectionWrapper::localDescription),
44
+ InstanceMethod("remoteDescription", &PeerConnectionWrapper::remoteDescription),
40
45
  InstanceMethod("addRemoteCandidate", &PeerConnectionWrapper::addRemoteCandidate),
41
46
  InstanceMethod("createDataChannel", &PeerConnectionWrapper::createDataChannel),
42
47
  InstanceMethod("addTrack", &PeerConnectionWrapper::addTrack),
43
48
  InstanceMethod("hasMedia", &PeerConnectionWrapper::hasMedia),
44
49
  InstanceMethod("state", &PeerConnectionWrapper::state),
50
+ InstanceMethod("iceState", &PeerConnectionWrapper::iceState),
45
51
  InstanceMethod("signalingState", &PeerConnectionWrapper::signalingState),
46
52
  InstanceMethod("gatheringState", &PeerConnectionWrapper::gatheringState),
47
53
  InstanceMethod("onLocalDescription", &PeerConnectionWrapper::onLocalDescription),
48
54
  InstanceMethod("onLocalCandidate", &PeerConnectionWrapper::onLocalCandidate),
49
55
  InstanceMethod("onStateChange", &PeerConnectionWrapper::onStateChange),
56
+ InstanceMethod("onIceStateChange", &PeerConnectionWrapper::onIceStateChange),
50
57
  InstanceMethod("onSignalingStateChange", &PeerConnectionWrapper::onSignalingStateChange),
51
58
  InstanceMethod("onGatheringStateChange", &PeerConnectionWrapper::onGatheringStateChange),
52
59
  InstanceMethod("onDataChannel", &PeerConnectionWrapper::onDataChannel),
@@ -55,6 +62,8 @@ Napi::Object PeerConnectionWrapper::Init(Napi::Env env, Napi::Object exports)
55
62
  InstanceMethod("bytesReceived", &PeerConnectionWrapper::bytesReceived),
56
63
  InstanceMethod("rtt", &PeerConnectionWrapper::rtt),
57
64
  InstanceMethod("getSelectedCandidatePair", &PeerConnectionWrapper::getSelectedCandidatePair),
65
+ InstanceMethod("maxDataChannelId", &PeerConnectionWrapper::maxDataChannelId),
66
+ InstanceMethod("maxMessageSize", &PeerConnectionWrapper::maxMessageSize),
58
67
  });
59
68
 
60
69
  constructor = Napi::Persistent(func);
@@ -66,6 +75,7 @@ Napi::Object PeerConnectionWrapper::Init(Napi::Env env, Napi::Object exports)
66
75
 
67
76
  PeerConnectionWrapper::PeerConnectionWrapper(const Napi::CallbackInfo &info) : Napi::ObjectWrap<PeerConnectionWrapper>(info)
68
77
  {
78
+ PLOG_DEBUG << "Constructor called";
69
79
  Napi::Env env = info.Env();
70
80
  int length = info.Length();
71
81
 
@@ -172,7 +182,7 @@ PeerConnectionWrapper::PeerConnectionWrapper(const Napi::CallbackInfo &info) : N
172
182
  }
173
183
 
174
184
  // bind address, libjuice only
175
- if(config.Get("bindAddress").IsString())
185
+ if (config.Get("bindAddress").IsString())
176
186
  rtcConfig.bindAddress = config.Get("bindAddress").As<Napi::String>().ToString();
177
187
 
178
188
  // Port Ranges
@@ -228,6 +238,7 @@ PeerConnectionWrapper::PeerConnectionWrapper(const Napi::CallbackInfo &info) : N
228
238
  // Create peer-connection
229
239
  try
230
240
  {
241
+ PLOG_DEBUG << "Creating a new peer";
231
242
  mRtcPeerConnPtr = std::make_unique<rtc::PeerConnection>(rtcConfig);
232
243
  }
233
244
  catch (std::exception &ex)
@@ -241,13 +252,16 @@ PeerConnectionWrapper::PeerConnectionWrapper(const Napi::CallbackInfo &info) : N
241
252
 
242
253
  PeerConnectionWrapper::~PeerConnectionWrapper()
243
254
  {
255
+ PLOG_DEBUG << "Destructor called";
244
256
  doDestroy();
245
257
  }
246
258
 
247
259
  void PeerConnectionWrapper::doClose()
248
260
  {
261
+ PLOG_DEBUG << "doClose() called";
249
262
  if (mRtcPeerConnPtr)
250
263
  {
264
+ PLOG_DEBUG << "Closing...";
251
265
  try
252
266
  {
253
267
  mRtcPeerConnPtr->close();
@@ -263,20 +277,24 @@ void PeerConnectionWrapper::doClose()
263
277
 
264
278
  void PeerConnectionWrapper::close(const Napi::CallbackInfo &info)
265
279
  {
280
+ PLOG_DEBUG << "close() called";
266
281
  doClose();
267
282
  }
268
283
 
269
284
  void PeerConnectionWrapper::doDestroy()
270
285
  {
286
+ PLOG_DEBUG << "doDestroy() called";
271
287
  doClose();
272
288
  doResetCallbacks();
273
289
  }
274
290
 
275
291
  void PeerConnectionWrapper::doResetCallbacks()
276
292
  {
293
+ PLOG_DEBUG << "doResetCallbacks() called";
277
294
  mOnLocalDescriptionCallback.reset();
278
295
  mOnLocalCandidateCallback.reset();
279
296
  mOnStateChangeCallback.reset();
297
+ mOnSignalingStateChangeCallback.reset();
280
298
  mOnGatheringStateChangeCallback.reset();
281
299
  mOnDataChannelCallback.reset();
282
300
  mOnTrackCallback.reset();
@@ -286,11 +304,13 @@ void PeerConnectionWrapper::doResetCallbacks()
286
304
 
287
305
  void PeerConnectionWrapper::destroy(const Napi::CallbackInfo &info)
288
306
  {
307
+ PLOG_DEBUG << "destroy() called";
289
308
  doDestroy();
290
309
  }
291
310
 
292
311
  void PeerConnectionWrapper::setLocalDescription(const Napi::CallbackInfo &info)
293
312
  {
313
+ PLOG_DEBUG << "setLocalDescription() called";
294
314
  Napi::Env env = info.Env();
295
315
  int length = info.Length();
296
316
 
@@ -313,7 +333,7 @@ void PeerConnectionWrapper::setLocalDescription(const Napi::CallbackInfo &info)
313
333
  std::string typeStr = info[0].As<Napi::String>().ToString();
314
334
 
315
335
  // Accept uppercase first letter for backward compatibility
316
- if(typeStr.size() > 0)
336
+ if (typeStr.size() > 0)
317
337
  typeStr[0] = std::tolower(typeStr[0]);
318
338
 
319
339
  if (typeStr == "answer")
@@ -331,6 +351,7 @@ void PeerConnectionWrapper::setLocalDescription(const Napi::CallbackInfo &info)
331
351
 
332
352
  void PeerConnectionWrapper::setRemoteDescription(const Napi::CallbackInfo &info)
333
353
  {
354
+ PLOG_DEBUG << "setRemoteDescription() called";
334
355
  Napi::Env env = info.Env();
335
356
  int length = info.Length();
336
357
 
@@ -363,12 +384,32 @@ void PeerConnectionWrapper::setRemoteDescription(const Napi::CallbackInfo &info)
363
384
 
364
385
  Napi::Value PeerConnectionWrapper::localDescription(const Napi::CallbackInfo &info)
365
386
  {
387
+ PLOG_DEBUG << "localDescription() called";
366
388
  Napi::Env env = info.Env();
367
389
 
368
390
  std::optional<rtc::Description> desc = mRtcPeerConnPtr ? mRtcPeerConnPtr->localDescription() : std::nullopt;
369
391
 
370
392
  // Return JS null if no description
371
- if (!desc.has_value()) {
393
+ if (!desc.has_value())
394
+ {
395
+ return env.Null();
396
+ }
397
+
398
+ Napi::Object obj = Napi::Object::New(env);
399
+ obj.Set("type", desc->typeString());
400
+ obj.Set("sdp", desc.value());
401
+ return obj;
402
+ }
403
+
404
+ Napi::Value PeerConnectionWrapper::remoteDescription(const Napi::CallbackInfo &info)
405
+ {
406
+ Napi::Env env = info.Env();
407
+
408
+ std::optional<rtc::Description> desc = mRtcPeerConnPtr ? mRtcPeerConnPtr->remoteDescription() : std::nullopt;
409
+
410
+ // Return JS null if no description
411
+ if (!desc.has_value())
412
+ {
372
413
  return env.Null();
373
414
  }
374
415
 
@@ -380,6 +421,7 @@ Napi::Value PeerConnectionWrapper::localDescription(const Napi::CallbackInfo &in
380
421
 
381
422
  void PeerConnectionWrapper::addRemoteCandidate(const Napi::CallbackInfo &info)
382
423
  {
424
+ PLOG_DEBUG << "addRemoteCandidate() called";
383
425
  Napi::Env env = info.Env();
384
426
  int length = info.Length();
385
427
 
@@ -410,6 +452,7 @@ void PeerConnectionWrapper::addRemoteCandidate(const Napi::CallbackInfo &info)
410
452
 
411
453
  Napi::Value PeerConnectionWrapper::createDataChannel(const Napi::CallbackInfo &info)
412
454
  {
455
+ PLOG_DEBUG << "createDataChannel() called";
413
456
  Napi::Env env = info.Env();
414
457
  int length = info.Length();
415
458
 
@@ -568,6 +611,7 @@ Napi::Value PeerConnectionWrapper::createDataChannel(const Napi::CallbackInfo &i
568
611
  std::string label = info[0].As<Napi::String>().ToString();
569
612
  std::shared_ptr<rtc::DataChannel> dataChannel = mRtcPeerConnPtr->createDataChannel(label, std::move(init));
570
613
  auto instance = DataChannelWrapper::constructor.New({Napi::External<std::shared_ptr<rtc::DataChannel>>::New(info.Env(), &dataChannel)});
614
+ PLOG_DEBUG << "Data Channel created. Label: " << label;
571
615
  return instance;
572
616
  }
573
617
  catch (std::exception &ex)
@@ -579,6 +623,7 @@ Napi::Value PeerConnectionWrapper::createDataChannel(const Napi::CallbackInfo &i
579
623
 
580
624
  void PeerConnectionWrapper::onLocalDescription(const Napi::CallbackInfo &info)
581
625
  {
626
+ PLOG_DEBUG << "onLocalDescription() called";
582
627
  Napi::Env env = info.Env();
583
628
  int length = info.Length();
584
629
 
@@ -597,9 +642,12 @@ void PeerConnectionWrapper::onLocalDescription(const Napi::CallbackInfo &info)
597
642
  // Callback
598
643
  mOnLocalDescriptionCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
599
644
 
600
- mRtcPeerConnPtr->onLocalDescription([&](rtc::Description sdp) {
645
+ mRtcPeerConnPtr->onLocalDescription([&](rtc::Description sdp)
646
+ {
647
+ PLOG_DEBUG << "onLocalDescription cb received from rtc";
601
648
  if (mOnLocalDescriptionCallback)
602
649
  mOnLocalDescriptionCallback->call([this, sdp = std::move(sdp)](Napi::Env env, std::vector<napi_value> &args) {
650
+ PLOG_DEBUG << "mOnLocalDescriptionCallback call(1)";
603
651
  // Check the peer connection is not closed
604
652
  if(instances.find(this) == instances.end())
605
653
  throw ThreadSafeCallback::CancelException();
@@ -609,11 +657,13 @@ void PeerConnectionWrapper::onLocalDescription(const Napi::CallbackInfo &info)
609
657
  args = {
610
658
  Napi::String::New(env, std::string(sdp)),
611
659
  Napi::String::New(env, sdp.typeString())};
660
+ PLOG_DEBUG << "mOnLocalDescriptionCallback call(2)";
612
661
  }); });
613
662
  }
614
663
 
615
664
  void PeerConnectionWrapper::onLocalCandidate(const Napi::CallbackInfo &info)
616
665
  {
666
+ PLOG_DEBUG << "onLocalCandidate() called";
617
667
  Napi::Env env = info.Env();
618
668
  int length = info.Length();
619
669
 
@@ -632,9 +682,12 @@ void PeerConnectionWrapper::onLocalCandidate(const Napi::CallbackInfo &info)
632
682
  // Callback
633
683
  mOnLocalCandidateCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
634
684
 
635
- mRtcPeerConnPtr->onLocalCandidate([&](rtc::Candidate cand) {
685
+ mRtcPeerConnPtr->onLocalCandidate([&](rtc::Candidate cand)
686
+ {
687
+ PLOG_DEBUG << "onLocalCandidate cb received from rtc";
636
688
  if (mOnLocalCandidateCallback)
637
689
  mOnLocalCandidateCallback->call([this, cand = std::move(cand)](Napi::Env env, std::vector<napi_value> &args) {
690
+ PLOG_DEBUG << "mOnLocalCandidateCallback call(1)";
638
691
  // Check the peer connection is not closed
639
692
  if(instances.find(this) == instances.end())
640
693
  throw ThreadSafeCallback::CancelException();
@@ -644,11 +697,13 @@ void PeerConnectionWrapper::onLocalCandidate(const Napi::CallbackInfo &info)
644
697
  args = {
645
698
  Napi::String::New(env, std::string(cand)),
646
699
  Napi::String::New(env, cand.mid())};
700
+ PLOG_DEBUG << "mOnLocalCandidateCallback call(2)";
647
701
  }); });
648
702
  }
649
703
 
650
704
  void PeerConnectionWrapper::onStateChange(const Napi::CallbackInfo &info)
651
705
  {
706
+ PLOG_DEBUG << "onStateChange() called";
652
707
  Napi::Env env = info.Env();
653
708
  int length = info.Length();
654
709
 
@@ -667,9 +722,12 @@ void PeerConnectionWrapper::onStateChange(const Napi::CallbackInfo &info)
667
722
  // Callback
668
723
  mOnStateChangeCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
669
724
 
670
- mRtcPeerConnPtr->onStateChange([&](rtc::PeerConnection::State state) {
725
+ mRtcPeerConnPtr->onStateChange([&](rtc::PeerConnection::State state)
726
+ {
727
+ PLOG_DEBUG << "onStateChange cb received from rtc";
671
728
  if (mOnStateChangeCallback)
672
729
  mOnStateChangeCallback->call([this, state](Napi::Env env, std::vector<napi_value> &args) {
730
+ PLOG_DEBUG << "mOnStateChangeCallback call(1)";
673
731
  if(instances.find(this) == instances.end())
674
732
  throw ThreadSafeCallback::CancelException();
675
733
 
@@ -678,11 +736,52 @@ void PeerConnectionWrapper::onStateChange(const Napi::CallbackInfo &info)
678
736
  std::ostringstream stream;
679
737
  stream << state;
680
738
  args = {Napi::String::New(env, stream.str())};
739
+ PLOG_DEBUG << "mOnStateChangeCallback call(2)";
740
+ }); });
741
+ }
742
+
743
+ void PeerConnectionWrapper::onIceStateChange(const Napi::CallbackInfo &info)
744
+ {
745
+ PLOG_DEBUG << "onIceStateChange() called";
746
+ Napi::Env env = info.Env();
747
+ int length = info.Length();
748
+
749
+ if (!mRtcPeerConnPtr)
750
+ {
751
+ Napi::Error::New(env, "onIceStateChange() called on destroyed peer connection").ThrowAsJavaScriptException();
752
+ return;
753
+ }
754
+
755
+ if (length < 1 || !info[0].IsFunction())
756
+ {
757
+ Napi::TypeError::New(env, "Function expected").ThrowAsJavaScriptException();
758
+ return;
759
+ }
760
+
761
+ // Callback
762
+ mOnIceStateChangeCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
763
+
764
+ mRtcPeerConnPtr->onIceStateChange([&](rtc::PeerConnection::IceState state)
765
+ {
766
+ PLOG_DEBUG << "onIceStateChange cb received from rtc";
767
+ if (mOnIceStateChangeCallback)
768
+ mOnIceStateChangeCallback->call([this, state](Napi::Env env, std::vector<napi_value> &args) {
769
+ PLOG_DEBUG << "mOnIceStateChangeCallback call(1)";
770
+ if(instances.find(this) == instances.end())
771
+ throw ThreadSafeCallback::CancelException();
772
+
773
+ // This will run in main thread and needs to construct the
774
+ // arguments for the call
775
+ std::ostringstream stream;
776
+ stream << state;
777
+ args = {Napi::String::New(env, stream.str())};
778
+ PLOG_DEBUG << "mOnIceStateChangeCallback call(2)";
681
779
  }); });
682
780
  }
683
781
 
684
782
  void PeerConnectionWrapper::onSignalingStateChange(const Napi::CallbackInfo &info)
685
783
  {
784
+ PLOG_DEBUG << "onSignalingStateChange() called";
686
785
  Napi::Env env = info.Env();
687
786
  int length = info.Length();
688
787
 
@@ -701,9 +800,12 @@ void PeerConnectionWrapper::onSignalingStateChange(const Napi::CallbackInfo &inf
701
800
  // Callback
702
801
  mOnSignalingStateChangeCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
703
802
 
704
- mRtcPeerConnPtr->onSignalingStateChange([&](rtc::PeerConnection::SignalingState state) {
803
+ mRtcPeerConnPtr->onSignalingStateChange([&](rtc::PeerConnection::SignalingState state)
804
+ {
805
+ PLOG_DEBUG << "onSignalingStateChange cb received from rtc";
705
806
  if (mOnSignalingStateChangeCallback)
706
807
  mOnSignalingStateChangeCallback->call([this, state](Napi::Env env, std::vector<napi_value> &args) {
808
+ PLOG_DEBUG << "mOnSignalingStateChangeCallback call(1)";
707
809
  // Check the peer connection is not closed
708
810
  if(instances.find(this) == instances.end())
709
811
  throw ThreadSafeCallback::CancelException();
@@ -713,11 +815,13 @@ void PeerConnectionWrapper::onSignalingStateChange(const Napi::CallbackInfo &inf
713
815
  std::ostringstream stream;
714
816
  stream << state;
715
817
  args = {Napi::String::New(env, stream.str())};
818
+ PLOG_DEBUG << "mOnSignalingStateChangeCallback call(2)";
716
819
  }); });
717
820
  }
718
821
 
719
822
  void PeerConnectionWrapper::onGatheringStateChange(const Napi::CallbackInfo &info)
720
823
  {
824
+ PLOG_DEBUG << "onGatheringStateChange() called";
721
825
  Napi::Env env = info.Env();
722
826
  int length = info.Length();
723
827
 
@@ -736,9 +840,12 @@ void PeerConnectionWrapper::onGatheringStateChange(const Napi::CallbackInfo &inf
736
840
  // Callback
737
841
  mOnGatheringStateChangeCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
738
842
 
739
- mRtcPeerConnPtr->onGatheringStateChange([&](rtc::PeerConnection::GatheringState state) {
843
+ mRtcPeerConnPtr->onGatheringStateChange([&](rtc::PeerConnection::GatheringState state)
844
+ {
845
+ PLOG_DEBUG << "onGatheringStateChange cb received from rtc";
740
846
  if (mOnGatheringStateChangeCallback)
741
847
  mOnGatheringStateChangeCallback->call([this, state](Napi::Env env, std::vector<napi_value> &args) {
848
+ PLOG_DEBUG << "mOnGatheringStateChangeCallback call(1)";
742
849
  // Check the peer connection is not closed
743
850
  if(instances.find(this) == instances.end())
744
851
  throw ThreadSafeCallback::CancelException();
@@ -748,11 +855,13 @@ void PeerConnectionWrapper::onGatheringStateChange(const Napi::CallbackInfo &inf
748
855
  std::ostringstream stream;
749
856
  stream << state;
750
857
  args = {Napi::String::New(env, stream.str())};
858
+ PLOG_DEBUG << "mOnGatheringStateChangeCallback call(2)";
751
859
  }); });
752
860
  }
753
861
 
754
862
  void PeerConnectionWrapper::onDataChannel(const Napi::CallbackInfo &info)
755
863
  {
864
+ PLOG_DEBUG << "onDataChannel() called";
756
865
  Napi::Env env = info.Env();
757
866
  int length = info.Length();
758
867
 
@@ -773,8 +882,10 @@ void PeerConnectionWrapper::onDataChannel(const Napi::CallbackInfo &info)
773
882
 
774
883
  mRtcPeerConnPtr->onDataChannel([&](std::shared_ptr<rtc::DataChannel> dc)
775
884
  {
885
+ PLOG_DEBUG << "onDataChannel cb received from rtc";
776
886
  if (mOnDataChannelCallback)
777
887
  mOnDataChannelCallback->call([this, dc](Napi::Env env, std::vector<napi_value> &args) {
888
+ PLOG_DEBUG << "mOnDataChannelCallback call(1)";
778
889
  // Check the peer connection is not closed
779
890
  if(instances.find(this) == instances.end())
780
891
  throw ThreadSafeCallback::CancelException();
@@ -784,11 +895,13 @@ void PeerConnectionWrapper::onDataChannel(const Napi::CallbackInfo &info)
784
895
  std::shared_ptr<rtc::DataChannel> dataChannel = dc;
785
896
  auto instance = DataChannelWrapper::constructor.New({Napi::External<std::shared_ptr<rtc::DataChannel>>::New(env, &dataChannel)});
786
897
  args = {instance};
898
+ PLOG_DEBUG << "mOnDataChannelCallback call(2)";
787
899
  }); });
788
900
  }
789
901
 
790
902
  Napi::Value PeerConnectionWrapper::bytesSent(const Napi::CallbackInfo &info)
791
903
  {
904
+ PLOG_DEBUG << "bytesSent() called";
792
905
  Napi::Env env = info.Env();
793
906
 
794
907
  if (!mRtcPeerConnPtr)
@@ -809,6 +922,7 @@ Napi::Value PeerConnectionWrapper::bytesSent(const Napi::CallbackInfo &info)
809
922
 
810
923
  Napi::Value PeerConnectionWrapper::bytesReceived(const Napi::CallbackInfo &info)
811
924
  {
925
+ PLOG_DEBUG << "bytesReceived() called";
812
926
  Napi::Env env = info.Env();
813
927
 
814
928
  if (!mRtcPeerConnPtr)
@@ -829,6 +943,7 @@ Napi::Value PeerConnectionWrapper::bytesReceived(const Napi::CallbackInfo &info)
829
943
 
830
944
  Napi::Value PeerConnectionWrapper::rtt(const Napi::CallbackInfo &info)
831
945
  {
946
+ PLOG_DEBUG << "rtt() called";
832
947
  Napi::Env env = info.Env();
833
948
 
834
949
  if (!mRtcPeerConnPtr)
@@ -849,6 +964,7 @@ Napi::Value PeerConnectionWrapper::rtt(const Napi::CallbackInfo &info)
849
964
 
850
965
  Napi::Value PeerConnectionWrapper::getSelectedCandidatePair(const Napi::CallbackInfo &info)
851
966
  {
967
+ PLOG_DEBUG << "getSelectedCandidatePair() called";
852
968
  Napi::Env env = info.Env();
853
969
 
854
970
  if (!mRtcPeerConnPtr)
@@ -870,11 +986,17 @@ Napi::Value PeerConnectionWrapper::getSelectedCandidatePair(const Napi::Callback
870
986
  localObj.Set("port", local.port().value_or(0));
871
987
  localObj.Set("type", candidateTypeToString(local.type()));
872
988
  localObj.Set("transportType", candidateTransportTypeToString(local.transportType()));
989
+ localObj.Set("candidate", local.candidate());
990
+ localObj.Set("mid", local.mid());
991
+ localObj.Set("priority", local.priority());
873
992
 
874
993
  remoteObj.Set("address", remote.address().value_or("?"));
875
994
  remoteObj.Set("port", remote.port().value_or(0));
876
995
  remoteObj.Set("type", candidateTypeToString(remote.type()));
877
996
  remoteObj.Set("transportType", candidateTransportTypeToString(remote.transportType()));
997
+ remoteObj.Set("candidate", remote.candidate());
998
+ remoteObj.Set("mid", remote.mid());
999
+ remoteObj.Set("priority", remote.priority());
878
1000
 
879
1001
  retvalue.Set("local", localObj);
880
1002
  retvalue.Set("remote", remoteObj);
@@ -888,8 +1010,51 @@ Napi::Value PeerConnectionWrapper::getSelectedCandidatePair(const Napi::Callback
888
1010
  }
889
1011
  }
890
1012
 
1013
+ Napi::Value PeerConnectionWrapper::maxDataChannelId(const Napi::CallbackInfo &info)
1014
+ {
1015
+ PLOG_DEBUG << "maxDataChannelId() called";
1016
+ Napi::Env env = info.Env();
1017
+
1018
+ if (!mRtcPeerConnPtr)
1019
+ {
1020
+ return Napi::Number::New(info.Env(), 0);
1021
+ }
1022
+
1023
+ try
1024
+ {
1025
+ return Napi::Number::New(env, mRtcPeerConnPtr->maxDataChannelId());
1026
+ }
1027
+ catch (std::exception &ex)
1028
+ {
1029
+ Napi::Error::New(env, std::string("libdatachannel error: ") + ex.what()).ThrowAsJavaScriptException();
1030
+ return Napi::Number::New(info.Env(), 0);
1031
+ }
1032
+ }
1033
+
1034
+ Napi::Value PeerConnectionWrapper::maxMessageSize(const Napi::CallbackInfo &info)
1035
+ {
1036
+ PLOG_DEBUG << "maxMessageSize() called";
1037
+ Napi::Env env = info.Env();
1038
+
1039
+ if (!mRtcPeerConnPtr)
1040
+ {
1041
+ return Napi::Number::New(info.Env(), 0);
1042
+ }
1043
+
1044
+ try
1045
+ {
1046
+ return Napi::Number::New(env, mRtcPeerConnPtr->remoteMaxMessageSize());
1047
+ }
1048
+ catch (std::exception &ex)
1049
+ {
1050
+ Napi::Error::New(env, std::string("libdatachannel error: ") + ex.what()).ThrowAsJavaScriptException();
1051
+ return Napi::Number::New(info.Env(), 0);
1052
+ }
1053
+ }
1054
+
891
1055
  std::string PeerConnectionWrapper::candidateTypeToString(const rtc::Candidate::Type &type)
892
1056
  {
1057
+ PLOG_DEBUG << "candidateTypeToString() called";
893
1058
  switch (type)
894
1059
  {
895
1060
  case rtc::Candidate::Type::Host:
@@ -907,6 +1072,7 @@ std::string PeerConnectionWrapper::candidateTypeToString(const rtc::Candidate::T
907
1072
 
908
1073
  std::string PeerConnectionWrapper::candidateTransportTypeToString(const rtc::Candidate::TransportType &transportType)
909
1074
  {
1075
+ PLOG_DEBUG << "candidateTransportTypeToString() called";
910
1076
  switch (transportType)
911
1077
  {
912
1078
  case rtc::Candidate::TransportType::Udp:
@@ -926,6 +1092,7 @@ std::string PeerConnectionWrapper::candidateTransportTypeToString(const rtc::Can
926
1092
 
927
1093
  Napi::Value PeerConnectionWrapper::addTrack(const Napi::CallbackInfo &info)
928
1094
  {
1095
+ PLOG_DEBUG << "addTrack() called";
929
1096
  Napi::Env env = info.Env();
930
1097
  int length = info.Length();
931
1098
 
@@ -972,6 +1139,7 @@ Napi::Value PeerConnectionWrapper::addTrack(const Napi::CallbackInfo &info)
972
1139
 
973
1140
  void PeerConnectionWrapper::onTrack(const Napi::CallbackInfo &info)
974
1141
  {
1142
+ PLOG_DEBUG << "onTrack() called";
975
1143
  Napi::Env env = info.Env();
976
1144
  int length = info.Length();
977
1145
 
@@ -990,7 +1158,8 @@ void PeerConnectionWrapper::onTrack(const Napi::CallbackInfo &info)
990
1158
  // Callback
991
1159
  mOnTrackCallback = std::make_unique<ThreadSafeCallback>(info[0].As<Napi::Function>());
992
1160
 
993
- mRtcPeerConnPtr->onTrack([&](std::shared_ptr<rtc::Track> track) {
1161
+ mRtcPeerConnPtr->onTrack([&](std::shared_ptr<rtc::Track> track)
1162
+ {
994
1163
  if (mOnTrackCallback)
995
1164
  mOnTrackCallback->call([this, track](Napi::Env env, std::vector<napi_value> &args) {
996
1165
  // Check the peer connection is not closed
@@ -1007,20 +1176,32 @@ void PeerConnectionWrapper::onTrack(const Napi::CallbackInfo &info)
1007
1176
 
1008
1177
  Napi::Value PeerConnectionWrapper::hasMedia(const Napi::CallbackInfo &info)
1009
1178
  {
1179
+ PLOG_DEBUG << "hasMedia() called";
1010
1180
  Napi::Env env = info.Env();
1011
1181
  return Napi::Boolean::New(env, mRtcPeerConnPtr ? mRtcPeerConnPtr->hasMedia() : false);
1012
1182
  }
1013
1183
 
1014
1184
  Napi::Value PeerConnectionWrapper::state(const Napi::CallbackInfo &info)
1015
1185
  {
1186
+ PLOG_DEBUG << "state() called";
1016
1187
  Napi::Env env = info.Env();
1017
1188
  std::ostringstream stream;
1018
1189
  stream << (mRtcPeerConnPtr ? mRtcPeerConnPtr->state() : rtc::PeerConnection::State::Closed);
1019
1190
  return Napi::String::New(env, stream.str());
1020
1191
  }
1021
1192
 
1193
+ Napi::Value PeerConnectionWrapper::iceState(const Napi::CallbackInfo &info)
1194
+ {
1195
+ PLOG_DEBUG << "iceState() called";
1196
+ Napi::Env env = info.Env();
1197
+ std::ostringstream stream;
1198
+ stream << (mRtcPeerConnPtr ? mRtcPeerConnPtr->iceState() : rtc::PeerConnection::IceState::Closed);
1199
+ return Napi::String::New(env, stream.str());
1200
+ }
1201
+
1022
1202
  Napi::Value PeerConnectionWrapper::signalingState(const Napi::CallbackInfo &info)
1023
1203
  {
1204
+ PLOG_DEBUG << "signalingState() called";
1024
1205
  Napi::Env env = info.Env();
1025
1206
  std::ostringstream stream;
1026
1207
  stream << (mRtcPeerConnPtr ? mRtcPeerConnPtr->signalingState() : rtc::PeerConnection::SignalingState::Stable);
@@ -1029,6 +1210,7 @@ Napi::Value PeerConnectionWrapper::signalingState(const Napi::CallbackInfo &info
1029
1210
 
1030
1211
  Napi::Value PeerConnectionWrapper::gatheringState(const Napi::CallbackInfo &info)
1031
1212
  {
1213
+ PLOG_DEBUG << "gatheringState() called";
1032
1214
  Napi::Env env = info.Env();
1033
1215
  std::ostringstream stream;
1034
1216
  stream << (mRtcPeerConnPtr ? mRtcPeerConnPtr->gatheringState() : rtc::PeerConnection::GatheringState::Complete);
@@ -26,11 +26,13 @@ public:
26
26
  void setLocalDescription(const Napi::CallbackInfo &info);
27
27
  void setRemoteDescription(const Napi::CallbackInfo &info);
28
28
  Napi::Value localDescription(const Napi::CallbackInfo &info);
29
+ Napi::Value remoteDescription(const Napi::CallbackInfo &info);
29
30
  void addRemoteCandidate(const Napi::CallbackInfo &info);
30
31
  Napi::Value createDataChannel(const Napi::CallbackInfo &info);
31
32
  Napi::Value addTrack(const Napi::CallbackInfo &info);
32
33
  Napi::Value hasMedia(const Napi::CallbackInfo &info);
33
34
  Napi::Value state(const Napi::CallbackInfo &info);
35
+ Napi::Value iceState(const Napi::CallbackInfo &info);
34
36
  Napi::Value signalingState(const Napi::CallbackInfo &info);
35
37
  Napi::Value gatheringState(const Napi::CallbackInfo &info);
36
38
 
@@ -38,6 +40,7 @@ public:
38
40
  void onLocalDescription(const Napi::CallbackInfo &info);
39
41
  void onLocalCandidate(const Napi::CallbackInfo &info);
40
42
  void onStateChange(const Napi::CallbackInfo &info);
43
+ void onIceStateChange(const Napi::CallbackInfo &info);
41
44
  void onSignalingStateChange(const Napi::CallbackInfo &info);
42
45
  void onGatheringStateChange(const Napi::CallbackInfo &info);
43
46
  void onDataChannel(const Napi::CallbackInfo &info);
@@ -48,6 +51,8 @@ public:
48
51
  Napi::Value bytesReceived(const Napi::CallbackInfo &info);
49
52
  Napi::Value rtt(const Napi::CallbackInfo &info);
50
53
  Napi::Value getSelectedCandidatePair(const Napi::CallbackInfo &info);
54
+ Napi::Value maxDataChannelId(const Napi::CallbackInfo &info);
55
+ Napi::Value maxMessageSize(const Napi::CallbackInfo &info);
51
56
 
52
57
  // Close all existing Peer Connections
53
58
  static void CloseAll();
@@ -70,6 +75,7 @@ private:
70
75
  std::unique_ptr<ThreadSafeCallback> mOnLocalDescriptionCallback = nullptr;
71
76
  std::unique_ptr<ThreadSafeCallback> mOnLocalCandidateCallback = nullptr;
72
77
  std::unique_ptr<ThreadSafeCallback> mOnStateChangeCallback = nullptr;
78
+ std::unique_ptr<ThreadSafeCallback> mOnIceStateChangeCallback = nullptr;
73
79
  std::unique_ptr<ThreadSafeCallback> mOnSignalingStateChangeCallback = nullptr;
74
80
  std::unique_ptr<ThreadSafeCallback> mOnGatheringStateChangeCallback = nullptr;
75
81
  std::unique_ptr<ThreadSafeCallback> mOnDataChannelCallback = nullptr;