node-datachannel 0.4.2 → 0.5.0-dev
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.
- package/.github/workflows/build-linux.yml +29 -29
- package/.github/workflows/build-mac-m1.yml +5 -5
- package/.github/workflows/build-mac-x64.yml +5 -5
- package/.github/workflows/build-win.yml +11 -8
- package/.github/workflows/lint.yml +1 -1
- package/.github/workflows/npm-publish-manual.yml +1 -1
- package/{.prettierrc.js → .prettierrc.cjs} +1 -0
- package/BULDING.md +7 -3
- package/CMakeLists.txt +12 -22
- package/README.md +38 -33
- package/cmake/toolchain/arm64.cmake +1 -1
- package/examples/build/Dockerfile +30 -0
- package/examples/build/README.md +24 -0
- package/examples/client-server/README.md +22 -0
- package/examples/client-server/client-benchmark.js +11 -6
- package/examples/client-server/client-periodic.js +5 -6
- package/examples/client-server/client.js +4 -5
- package/examples/client-server/package-lock.json +311 -260
- package/examples/client-server/package.json +15 -14
- package/examples/client-server/signaling-server.js +1 -2
- package/examples/electron-demo/README.md +58 -0
- package/examples/electron-demo/forge.config.js +49 -0
- package/examples/electron-demo/package-lock.json +16287 -0
- package/examples/electron-demo/package.json +43 -0
- package/examples/electron-demo/src/index.css +7 -0
- package/examples/electron-demo/src/index.html +29 -0
- package/examples/electron-demo/src/main.js +53 -0
- package/examples/electron-demo/src/node-datachannel.js +123 -0
- package/examples/electron-demo/src/preload.js +28 -0
- package/examples/electron-demo/src/renderer.js +58 -0
- package/examples/electron-demo/webpack.main.config.js +11 -0
- package/examples/electron-demo/webpack.renderer.config.js +13 -0
- package/examples/electron-demo/webpack.rules.js +35 -0
- package/examples/media/README.md +3 -3
- package/examples/media/media.js +3 -4
- package/examples/simple-peer-usage/main.js +28 -0
- package/examples/simple-peer-usage/package-lock.json +317 -0
- package/examples/simple-peer-usage/package.json +16 -0
- package/lib/datachannel-stream.js +3 -4
- package/lib/index.d.ts +8 -4
- package/lib/index.js +6 -3
- package/node_modules/base64-js/package.json +19 -50
- package/node_modules/buffer/package.json +20 -54
- package/node_modules/chownr/package.json +16 -53
- package/node_modules/decompress-response/package.json +54 -89
- package/node_modules/deep-extend/package.json +32 -65
- package/node_modules/detect-libc/README.md +4 -1
- package/node_modules/detect-libc/index.d.ts +3 -0
- package/node_modules/detect-libc/lib/detect-libc.js +105 -4
- package/node_modules/detect-libc/lib/filesystem.js +41 -0
- package/node_modules/detect-libc/lib/process.js +3 -0
- package/node_modules/detect-libc/package.json +25 -60
- package/node_modules/end-of-stream/package.json +17 -49
- package/node_modules/expand-template/package.json +17 -51
- package/node_modules/fs-constants/package.json +11 -42
- package/node_modules/github-from-package/package.json +28 -60
- package/node_modules/ieee754/package.json +19 -54
- package/node_modules/inherits/package.json +12 -61
- package/node_modules/ini/package.json +19 -55
- package/node_modules/mimic-response/package.json +40 -75
- package/node_modules/minimist/.eslintrc +29 -0
- package/node_modules/minimist/.github/FUNDING.yml +12 -0
- package/node_modules/minimist/.nycrc +14 -0
- package/node_modules/minimist/CHANGELOG.md +298 -0
- package/node_modules/minimist/{readme.markdown → README.md} +34 -11
- package/node_modules/minimist/example/parse.js +2 -0
- package/node_modules/minimist/index.js +256 -242
- package/node_modules/minimist/package.json +73 -77
- package/node_modules/minimist/test/all_bool.js +26 -24
- package/node_modules/minimist/test/bool.js +146 -147
- package/node_modules/minimist/test/dash.js +33 -21
- package/node_modules/minimist/test/default_bool.js +26 -24
- package/node_modules/minimist/test/dotted.js +13 -11
- package/node_modules/minimist/test/kv_short.js +26 -10
- package/node_modules/minimist/test/long.js +28 -26
- package/node_modules/minimist/test/num.js +30 -28
- package/node_modules/minimist/test/parse.js +169 -157
- package/node_modules/minimist/test/parse_modified.js +7 -5
- package/node_modules/minimist/test/proto.js +41 -37
- package/node_modules/minimist/test/short.js +57 -55
- package/node_modules/minimist/test/stop_early.js +10 -8
- package/node_modules/minimist/test/unknown.js +83 -81
- package/node_modules/minimist/test/whitespace.js +6 -4
- package/node_modules/mkdirp-classic/package.json +11 -43
- package/node_modules/napi-build-utils/package.json +26 -57
- package/node_modules/node-abi/README.md +5 -3
- package/node_modules/node-abi/abi_registry.json +98 -8
- package/node_modules/node-abi/package.json +26 -57
- package/node_modules/once/package.json +14 -55
- package/node_modules/prebuild-install/CHANGELOG.md +18 -0
- package/node_modules/prebuild-install/README.md +6 -2
- package/node_modules/prebuild-install/log.js +26 -18
- package/node_modules/prebuild-install/package.json +36 -98
- package/node_modules/prebuild-install/rc.js +5 -1
- package/node_modules/prebuild-install/util.js +1 -1
- package/node_modules/pump/package.json +10 -49
- package/node_modules/rc/node_modules/strip-json-comments/package.json +42 -0
- package/node_modules/rc/package.json +18 -59
- package/node_modules/safe-buffer/index.js +3 -0
- package/node_modules/safe-buffer/package.json +20 -39
- package/node_modules/{node-abi/node_modules/semver → semver}/README.md +70 -1
- package/node_modules/{node-abi/node_modules/semver → semver}/bin/semver.js +16 -2
- package/node_modules/{node-abi/node_modules/semver → semver}/classes/comparator.js +39 -34
- package/node_modules/{node-abi/node_modules/semver → semver}/classes/range.js +48 -28
- package/node_modules/{node-abi/node_modules/semver → semver}/classes/semver.js +32 -17
- package/node_modules/{node-abi/node_modules/semver → semver}/functions/coerce.js +1 -1
- package/node_modules/semver/functions/diff.js +65 -0
- package/node_modules/{node-abi/node_modules/semver → semver}/functions/inc.js +3 -2
- package/node_modules/semver/functions/parse.js +16 -0
- package/node_modules/semver/index.js +89 -0
- package/node_modules/{node-abi/node_modules/semver → semver}/internal/constants.js +20 -2
- package/node_modules/semver/internal/parse-options.js +15 -0
- package/node_modules/{node-abi/node_modules/semver → semver}/internal/re.js +34 -4
- package/node_modules/semver/node_modules/lru-cache/package.json +34 -0
- package/node_modules/semver/node_modules/yallist/package.json +29 -0
- package/node_modules/semver/package.json +87 -0
- package/node_modules/{node-abi/node_modules/semver → semver}/ranges/intersects.js +1 -1
- package/node_modules/{node-abi/node_modules/semver → semver}/ranges/subset.js +6 -3
- package/node_modules/simple-concat/package.json +17 -45
- package/node_modules/simple-get/package.json +17 -45
- package/node_modules/{tar-stream → tar-fs}/node_modules/bl/package.json +20 -51
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/README.md +1 -1
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/_stream_duplex.js +12 -25
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/_stream_passthrough.js +2 -4
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/_stream_readable.js +176 -273
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/_stream_transform.js +26 -37
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/_stream_writable.js +118 -174
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/async_iterator.js +10 -37
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/buffer_list.js +20 -47
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/destroy.js +8 -17
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +1 -19
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/from.js +12 -24
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/pipeline.js +5 -16
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/state.js +2 -7
- package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/package.json +27 -60
- package/node_modules/tar-fs/node_modules/string_decoder/package.json +34 -0
- package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/extract.js +1 -1
- package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/headers.js +4 -2
- package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/package.json +22 -59
- package/node_modules/tar-fs/package.json +21 -51
- package/node_modules/tunnel-agent/package.json +12 -49
- package/node_modules/util-deprecate/package.json +14 -49
- package/node_modules/wrappy/package.json +16 -49
- package/package.json +85 -68
- package/polyfill/Events.d.ts +9 -0
- package/polyfill/Events.js +27 -0
- package/polyfill/README.md +41 -0
- package/polyfill/RTCCertificate.d.ts +7 -0
- package/polyfill/RTCCertificate.js +17 -0
- package/polyfill/RTCDataChannel.d.ts +35 -0
- package/polyfill/RTCDataChannel.js +175 -0
- package/polyfill/RTCDtlsTransport.d.ts +10 -0
- package/polyfill/RTCDtlsTransport.js +29 -0
- package/polyfill/RTCIceCandidate.d.ts +20 -0
- package/polyfill/RTCIceCandidate.js +126 -0
- package/polyfill/RTCIceTransport.d.ts +18 -0
- package/polyfill/RTCIceTransport.js +55 -0
- package/polyfill/RTCPeerConnection.d.ts +50 -0
- package/polyfill/RTCPeerConnection.js +348 -0
- package/polyfill/RTCSctpTransport.d.ts +10 -0
- package/polyfill/RTCSctpTransport.js +34 -0
- package/polyfill/RTCSessionDescription.d.ts +7 -0
- package/polyfill/RTCSessionDescription.js +37 -0
- package/polyfill/index.d.ts +14 -0
- package/polyfill/index.js +14 -0
- package/src/data-channel-wrapper.cpp +47 -6
- package/src/main.cpp +5 -5
- package/src/peer-connection-wrapper.cpp +145 -9
- package/src/peer-connection-wrapper.h +4 -0
- package/src/rtc-wrapper.cpp +14 -9
- package/src/thread-safe-callback.cpp +4 -10
- package/src/thread-safe-callback.h +3 -12
- package/test/connectivity.js +9 -4
- package/test/polyfill-connectivity.js +89 -0
- package/test/test.js +3 -3
- package/test/wpt.js +50 -0
- package/.github/workflows/build-linux-arm64-test.yml +0 -36
- package/examples/README.md +0 -21
- package/node_modules/ansi-regex/index.js +0 -4
- package/node_modules/ansi-regex/package.json +0 -111
- package/node_modules/ansi-regex/readme.md +0 -39
- package/node_modules/aproba/LICENSE +0 -14
- package/node_modules/aproba/README.md +0 -94
- package/node_modules/aproba/index.js +0 -105
- package/node_modules/aproba/package.json +0 -65
- package/node_modules/code-point-at/index.js +0 -32
- package/node_modules/code-point-at/license +0 -21
- package/node_modules/code-point-at/package.json +0 -73
- package/node_modules/code-point-at/readme.md +0 -32
- package/node_modules/console-control-strings/LICENSE +0 -13
- package/node_modules/console-control-strings/README.md +0 -145
- package/node_modules/console-control-strings/README.md~ +0 -140
- package/node_modules/console-control-strings/index.js +0 -125
- package/node_modules/console-control-strings/package.json +0 -64
- package/node_modules/core-util-is/LICENSE +0 -19
- package/node_modules/core-util-is/README.md +0 -3
- package/node_modules/core-util-is/float.patch +0 -604
- package/node_modules/core-util-is/lib/util.js +0 -107
- package/node_modules/core-util-is/package.json +0 -70
- package/node_modules/core-util-is/test.js +0 -68
- package/node_modules/delegates/.npmignore +0 -1
- package/node_modules/delegates/History.md +0 -22
- package/node_modules/delegates/License +0 -20
- package/node_modules/delegates/Makefile +0 -8
- package/node_modules/delegates/Readme.md +0 -94
- package/node_modules/delegates/index.js +0 -121
- package/node_modules/delegates/package.json +0 -53
- package/node_modules/delegates/test/index.js +0 -94
- package/node_modules/has-unicode/LICENSE +0 -14
- package/node_modules/has-unicode/README.md +0 -43
- package/node_modules/has-unicode/index.js +0 -16
- package/node_modules/has-unicode/package.json +0 -62
- package/node_modules/is-fullwidth-code-point/index.js +0 -46
- package/node_modules/is-fullwidth-code-point/license +0 -21
- package/node_modules/is-fullwidth-code-point/package.json +0 -80
- package/node_modules/is-fullwidth-code-point/readme.md +0 -39
- package/node_modules/isarray/.npmignore +0 -1
- package/node_modules/isarray/.travis.yml +0 -4
- package/node_modules/isarray/Makefile +0 -6
- package/node_modules/isarray/README.md +0 -60
- package/node_modules/isarray/component.json +0 -19
- package/node_modules/isarray/index.js +0 -5
- package/node_modules/isarray/package.json +0 -77
- package/node_modules/isarray/test.js +0 -20
- package/node_modules/lru-cache/node_modules/yallist/package.json +0 -65
- package/node_modules/lru-cache/package.json +0 -73
- package/node_modules/minimist/.travis.yml +0 -8
- package/node_modules/node-abi/.circleci/config.yml +0 -63
- package/node_modules/node-abi/.github/workflows/update-abi.yml +0 -41
- package/node_modules/node-abi/.releaserc.json +0 -9
- package/node_modules/node-abi/CODE_OF_CONDUCT.md +0 -73
- package/node_modules/node-abi/CONTRIBUTING.md +0 -53
- package/node_modules/node-abi/node_modules/semver/functions/diff.js +0 -23
- package/node_modules/node-abi/node_modules/semver/functions/parse.js +0 -33
- package/node_modules/node-abi/node_modules/semver/index.js +0 -48
- package/node_modules/node-abi/node_modules/semver/internal/parse-options.js +0 -11
- package/node_modules/node-abi/node_modules/semver/package.json +0 -109
- package/node_modules/node-abi/scripts/update-abi-registry.js +0 -119
- package/node_modules/node-abi/test/index.js +0 -166
- package/node_modules/npmlog/CHANGELOG.md +0 -49
- package/node_modules/npmlog/LICENSE +0 -15
- package/node_modules/npmlog/README.md +0 -216
- package/node_modules/npmlog/log.js +0 -309
- package/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md +0 -37
- package/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE +0 -5
- package/node_modules/npmlog/node_modules/are-we-there-yet/README.md +0 -195
- package/node_modules/npmlog/node_modules/are-we-there-yet/index.js +0 -4
- package/node_modules/npmlog/node_modules/are-we-there-yet/package.json +0 -66
- package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js +0 -11
- package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js +0 -107
- package/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js +0 -36
- package/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js +0 -30
- package/node_modules/npmlog/node_modules/gauge/CHANGELOG.md +0 -160
- package/node_modules/npmlog/node_modules/gauge/LICENSE +0 -13
- package/node_modules/npmlog/node_modules/gauge/README.md +0 -399
- package/node_modules/npmlog/node_modules/gauge/base-theme.js +0 -14
- package/node_modules/npmlog/node_modules/gauge/error.js +0 -24
- package/node_modules/npmlog/node_modules/gauge/has-color.js +0 -12
- package/node_modules/npmlog/node_modules/gauge/index.js +0 -233
- package/node_modules/npmlog/node_modules/gauge/package.json +0 -94
- package/node_modules/npmlog/node_modules/gauge/plumbing.js +0 -48
- package/node_modules/npmlog/node_modules/gauge/process.js +0 -3
- package/node_modules/npmlog/node_modules/gauge/progress-bar.js +0 -35
- package/node_modules/npmlog/node_modules/gauge/render-template.js +0 -181
- package/node_modules/npmlog/node_modules/gauge/set-immediate.js +0 -7
- package/node_modules/npmlog/node_modules/gauge/set-interval.js +0 -3
- package/node_modules/npmlog/node_modules/gauge/spin.js +0 -5
- package/node_modules/npmlog/node_modules/gauge/template-item.js +0 -73
- package/node_modules/npmlog/node_modules/gauge/theme-set.js +0 -115
- package/node_modules/npmlog/node_modules/gauge/themes.js +0 -54
- package/node_modules/npmlog/node_modules/gauge/wide-truncate.js +0 -25
- package/node_modules/npmlog/package.json +0 -78
- package/node_modules/number-is-nan/index.js +0 -4
- package/node_modules/number-is-nan/license +0 -21
- package/node_modules/number-is-nan/package.json +0 -70
- package/node_modules/number-is-nan/readme.md +0 -28
- package/node_modules/object-assign/index.js +0 -90
- package/node_modules/object-assign/license +0 -21
- package/node_modules/object-assign/package.json +0 -77
- package/node_modules/object-assign/readme.md +0 -61
- package/node_modules/process-nextick-args/index.js +0 -45
- package/node_modules/process-nextick-args/license.md +0 -19
- package/node_modules/process-nextick-args/package.json +0 -53
- package/node_modules/process-nextick-args/readme.md +0 -18
- package/node_modules/readable-stream/.travis.yml +0 -34
- package/node_modules/readable-stream/README.md +0 -58
- package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
- package/node_modules/readable-stream/duplex-browser.js +0 -1
- package/node_modules/readable-stream/duplex.js +0 -1
- package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
- package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
- package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
- package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
- package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
- package/node_modules/readable-stream/package.json +0 -87
- package/node_modules/readable-stream/passthrough.js +0 -1
- package/node_modules/readable-stream/readable-browser.js +0 -7
- package/node_modules/readable-stream/readable.js +0 -19
- package/node_modules/readable-stream/transform.js +0 -1
- package/node_modules/readable-stream/writable-browser.js +0 -1
- package/node_modules/readable-stream/writable.js +0 -8
- package/node_modules/set-blocking/CHANGELOG.md +0 -26
- package/node_modules/set-blocking/LICENSE.txt +0 -14
- package/node_modules/set-blocking/README.md +0 -31
- package/node_modules/set-blocking/index.js +0 -7
- package/node_modules/set-blocking/package.json +0 -73
- package/node_modules/signal-exit/CHANGELOG.md +0 -35
- package/node_modules/signal-exit/LICENSE.txt +0 -16
- package/node_modules/signal-exit/README.md +0 -39
- package/node_modules/signal-exit/index.js +0 -163
- package/node_modules/signal-exit/package.json +0 -71
- package/node_modules/signal-exit/signals.js +0 -53
- package/node_modules/string-width/index.js +0 -37
- package/node_modules/string-width/license +0 -21
- package/node_modules/string-width/package.json +0 -95
- package/node_modules/string-width/readme.md +0 -42
- package/node_modules/string_decoder/.travis.yml +0 -50
- package/node_modules/string_decoder/package.json +0 -64
- package/node_modules/strip-ansi/index.js +0 -6
- package/node_modules/strip-ansi/license +0 -21
- package/node_modules/strip-ansi/package.json +0 -107
- package/node_modules/strip-ansi/readme.md +0 -33
- package/node_modules/strip-json-comments/license +0 -21
- package/node_modules/strip-json-comments/package.json +0 -77
- package/node_modules/tar-stream/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/tar-stream/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/tar-stream/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/tar-stream/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/wide-align/LICENSE +0 -14
- package/node_modules/wide-align/README.md +0 -47
- package/node_modules/wide-align/align.js +0 -65
- package/node_modules/wide-align/package.json +0 -69
- /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
- /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/index.js +0 -0
- /package/node_modules/{ansi-regex → rc/node_modules/strip-json-comments}/license +0 -0
- /package/node_modules/{strip-json-comments → rc/node_modules/strip-json-comments}/readme.md +0 -0
- /package/node_modules/{lru-cache → semver}/LICENSE +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/classes/index.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/clean.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/cmp.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/compare-build.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/compare-loose.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/compare.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/eq.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/gt.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/gte.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/lt.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/lte.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/major.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/minor.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/neq.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/patch.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/prerelease.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/rcompare.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/rsort.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/satisfies.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/sort.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/functions/valid.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/internal/debug.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/internal/identifiers.js +0 -0
- /package/node_modules/{lru-cache/node_modules/yallist → semver/node_modules/lru-cache}/LICENSE +0 -0
- /package/node_modules/{lru-cache → semver/node_modules/lru-cache}/README.md +0 -0
- /package/node_modules/{lru-cache → semver/node_modules/lru-cache}/index.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver/node_modules/yallist}/LICENSE +0 -0
- /package/node_modules/{lru-cache → semver}/node_modules/yallist/README.md +0 -0
- /package/node_modules/{lru-cache → semver}/node_modules/yallist/iterator.js +0 -0
- /package/node_modules/{lru-cache → semver}/node_modules/yallist/yallist.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/preload.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/range.bnf +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/gtr.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/ltr.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/max-satisfying.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/min-satisfying.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/min-version.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/outside.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/simplify.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/to-comparators.js +0 -0
- /package/node_modules/{node-abi/node_modules/semver → semver}/ranges/valid.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/.travis.yml +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/BufferList.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/LICENSE.md +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/README.md +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/bl.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/test/convert.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/test/indexOf.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/test/isBufferList.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/bl/test/test.js +0 -0
- /package/node_modules/{readable-stream → tar-fs/node_modules/readable-stream}/CONTRIBUTING.md +0 -0
- /package/node_modules/{readable-stream → tar-fs/node_modules/readable-stream}/GOVERNANCE.md +0 -0
- /package/node_modules/{readable-stream → tar-fs/node_modules/readable-stream}/LICENSE +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/errors-browser.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/errors.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/experimentalWarning.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -0
- /package/node_modules/{readable-stream → tar-fs/node_modules/readable-stream}/lib/internal/streams/stream-browser.js +0 -0
- /package/node_modules/{readable-stream → tar-fs/node_modules/readable-stream}/lib/internal/streams/stream.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/readable-browser.js +0 -0
- /package/node_modules/{tar-stream → tar-fs}/node_modules/readable-stream/readable.js +0 -0
- /package/node_modules/{string_decoder → tar-fs/node_modules/string_decoder}/LICENSE +0 -0
- /package/node_modules/{string_decoder → tar-fs/node_modules/string_decoder}/README.md +0 -0
- /package/node_modules/{string_decoder → tar-fs/node_modules/string_decoder}/lib/string_decoder.js +0 -0
- /package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/LICENSE +0 -0
- /package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/README.md +0 -0
- /package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/index.js +0 -0
- /package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/pack.js +0 -0
- /package/node_modules/{tar-stream → tar-fs/node_modules/tar-stream}/sandbox.js +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "electron-demo",
|
|
3
|
+
"productName": "electron-demo",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "My Electron application description",
|
|
6
|
+
"main": ".webpack/main",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"start": "electron-forge start",
|
|
9
|
+
"package": "electron-forge package",
|
|
10
|
+
"make": "electron-forge make",
|
|
11
|
+
"publish": "electron-forge publish",
|
|
12
|
+
"lint": "echo \"No linting configured\""
|
|
13
|
+
},
|
|
14
|
+
"keywords": [],
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "Murat Dogan",
|
|
17
|
+
"email": "doganmurat@gmail.com"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@electron-forge/cli": "^6.4.2",
|
|
22
|
+
"@electron-forge/maker-deb": "^6.4.2",
|
|
23
|
+
"@electron-forge/maker-rpm": "^6.4.2",
|
|
24
|
+
"@electron-forge/maker-squirrel": "^6.4.2",
|
|
25
|
+
"@electron-forge/maker-zip": "^6.4.2",
|
|
26
|
+
"@electron-forge/plugin-auto-unpack-natives": "^6.4.2",
|
|
27
|
+
"@electron-forge/plugin-webpack": "^6.4.2",
|
|
28
|
+
"@electron/rebuild": "^3.3.0",
|
|
29
|
+
"@vercel/webpack-asset-relocator-loader": "^1.7.3",
|
|
30
|
+
"css-loader": "^6.8.1",
|
|
31
|
+
"electron": "26.2.0",
|
|
32
|
+
"node-loader": "^2.0.0",
|
|
33
|
+
"style-loader": "^3.3.3"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"electron-squirrel-startup": "^1.0.0",
|
|
37
|
+
"node-datachannel": "0.5.0"
|
|
38
|
+
},
|
|
39
|
+
"cmake-js": {
|
|
40
|
+
"runtime": "electron",
|
|
41
|
+
"runtimeVersion": "26.2.0"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<title>node-datachannel Demo</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<h1>node-datachannel Demo</h1>
|
|
9
|
+
<h2>My ID: <span id="my-id"></span></h2>
|
|
10
|
+
<br />
|
|
11
|
+
<!-- Text box -->
|
|
12
|
+
<input id="remote-id" type="text" placeholder="Remote ID" />
|
|
13
|
+
<button onclick="connect()" id="connect">Connect</button>
|
|
14
|
+
<br />
|
|
15
|
+
<p>Status: <span id="state">disconnected</span></p>
|
|
16
|
+
<br />
|
|
17
|
+
<br />
|
|
18
|
+
<h2>Messages</h2>
|
|
19
|
+
<input id="new-message" type="text" placeholder="Message to Send" width="100px"/>
|
|
20
|
+
<button onclick="sendMessage()">Send</button>
|
|
21
|
+
<br />
|
|
22
|
+
<br />
|
|
23
|
+
<input id="sendRandom" type="checkbox" onclick="sendRandomMessage()">Send Random Messages</input> Every <input id="randomInterval" type="number" value="1000" min="1" step="100" /> ms
|
|
24
|
+
<br />
|
|
25
|
+
<br />
|
|
26
|
+
<textarea id="messages" rows="10" cols="80" readonly></textarea>
|
|
27
|
+
|
|
28
|
+
</body>
|
|
29
|
+
</html>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
const { app, BrowserWindow } = require('electron');
|
|
3
|
+
|
|
4
|
+
const { run } = require('./node-datachannel.js');
|
|
5
|
+
|
|
6
|
+
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
|
|
7
|
+
if (require('electron-squirrel-startup')) {
|
|
8
|
+
app.quit();
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const createWindow = () => {
|
|
12
|
+
// Create the browser window.
|
|
13
|
+
const mainWindow = new BrowserWindow({
|
|
14
|
+
width: 800,
|
|
15
|
+
height: 600,
|
|
16
|
+
webPreferences: {
|
|
17
|
+
preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// and load the index.html of the app.
|
|
22
|
+
mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);
|
|
23
|
+
|
|
24
|
+
// Open the DevTools.
|
|
25
|
+
mainWindow.webContents.openDevTools();
|
|
26
|
+
|
|
27
|
+
run(mainWindow);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// This method will be called when Electron has finished
|
|
31
|
+
// initialization and is ready to create browser windows.
|
|
32
|
+
// Some APIs can only be used after this event occurs.
|
|
33
|
+
app.on('ready', createWindow);
|
|
34
|
+
|
|
35
|
+
// Quit when all windows are closed, except on macOS. There, it's common
|
|
36
|
+
// for applications and their menu bar to stay active until the user quits
|
|
37
|
+
// explicitly with Cmd + Q.
|
|
38
|
+
app.on('window-all-closed', () => {
|
|
39
|
+
if (process.platform !== 'darwin') {
|
|
40
|
+
app.quit();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
app.on('activate', () => {
|
|
45
|
+
// On OS X it's common to re-create a window in the app when the
|
|
46
|
+
// dock icon is clicked and there are no other windows open.
|
|
47
|
+
if (BrowserWindow.getAllWindows().length === 0) {
|
|
48
|
+
createWindow();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// In this file you can include the rest of your app's specific main process
|
|
53
|
+
// code. You can also put them in separate files and import them here.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
const nodeDataChannel = require('node-datachannel');
|
|
3
|
+
const WebSocket = require('ws');
|
|
4
|
+
const { ipcMain } = require('electron');
|
|
5
|
+
|
|
6
|
+
export function run(mainWindow) {
|
|
7
|
+
nodeDataChannel.initLogger('Debug');
|
|
8
|
+
nodeDataChannel.preload();
|
|
9
|
+
|
|
10
|
+
// My ID
|
|
11
|
+
let myId = getRandomString(4);
|
|
12
|
+
let _remoteId = '';
|
|
13
|
+
mainWindow.webContents.send('my-id', myId);
|
|
14
|
+
|
|
15
|
+
// PeerConnection Map
|
|
16
|
+
const pcMap = {};
|
|
17
|
+
const dcMap = {};
|
|
18
|
+
|
|
19
|
+
// Signaling Server
|
|
20
|
+
const WS_URL = process.env.WS_URL || 'ws://localhost:8000';
|
|
21
|
+
const ws = new WebSocket(WS_URL + '/' + myId, {
|
|
22
|
+
perMessageDeflate: false,
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
ws.on('open', () => {
|
|
26
|
+
console.log('WebSocket connected, signaling ready');
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
ws.on('error', (err) => {
|
|
30
|
+
console.log('WebSocket Error: ', err);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
ws.on('message', (msgStr) => {
|
|
34
|
+
let msg = JSON.parse(msgStr);
|
|
35
|
+
switch (msg.type) {
|
|
36
|
+
case 'offer':
|
|
37
|
+
_remoteId = msg.id;
|
|
38
|
+
mainWindow.webContents.send('connect', _remoteId);
|
|
39
|
+
createPeerConnection(msg.id);
|
|
40
|
+
pcMap[msg.id].setRemoteDescription(msg.description, msg.type);
|
|
41
|
+
break;
|
|
42
|
+
case 'answer':
|
|
43
|
+
pcMap[msg.id].setRemoteDescription(msg.description, msg.type);
|
|
44
|
+
break;
|
|
45
|
+
case 'candidate':
|
|
46
|
+
pcMap[msg.id].addRemoteCandidate(msg.candidate, msg.mid);
|
|
47
|
+
break;
|
|
48
|
+
|
|
49
|
+
default:
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
ipcMain.on('connect', (e, remoteId) => {
|
|
55
|
+
_remoteId = remoteId;
|
|
56
|
+
createPeerConnection(remoteId);
|
|
57
|
+
dcMap[remoteId] = pcMap[remoteId].createDataChannel('chat');
|
|
58
|
+
dcMap[remoteId].onOpen(() => {
|
|
59
|
+
mainWindow.webContents.send('message', remoteId, '[DataChannel opened]');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
dcMap[remoteId].onMessage((msg) => {
|
|
63
|
+
console.log('Message from ' + remoteId + ' received:', msg);
|
|
64
|
+
// Add message to textarea
|
|
65
|
+
mainWindow.webContents.send('message', remoteId, msg);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
ipcMain.on('send-message', (e, remoteId, msg) => {
|
|
70
|
+
dcMap[remoteId].sendMessage(msg);
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
let intervalref = null;
|
|
74
|
+
ipcMain.on('send-random-message', (e, enabled, interval) => {
|
|
75
|
+
if (intervalref) clearInterval(intervalref);
|
|
76
|
+
if (!enabled) return;
|
|
77
|
+
|
|
78
|
+
intervalref = setInterval(() => {
|
|
79
|
+
if (_remoteId && _remoteId.length > 2) {
|
|
80
|
+
let msg = getRandomString(10);
|
|
81
|
+
mainWindow.webContents.send('message', 'me', msg);
|
|
82
|
+
dcMap[_remoteId].sendMessage(msg);
|
|
83
|
+
}
|
|
84
|
+
}, interval);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
function createPeerConnection(peerId) {
|
|
88
|
+
// Create PeerConnection
|
|
89
|
+
let peerConnection = new nodeDataChannel.PeerConnection(myId, { iceServers: ['stun:stun.l.google.com:19302'] });
|
|
90
|
+
peerConnection.onStateChange((state) => {
|
|
91
|
+
console.log('State: ', state);
|
|
92
|
+
// set state value
|
|
93
|
+
mainWindow.webContents.send('state-update', state);
|
|
94
|
+
});
|
|
95
|
+
peerConnection.onGatheringStateChange((state) => {
|
|
96
|
+
console.log('GatheringState: ', state);
|
|
97
|
+
});
|
|
98
|
+
peerConnection.onLocalDescription((description, type) => {
|
|
99
|
+
ws.send(JSON.stringify({ id: peerId, type, description }));
|
|
100
|
+
});
|
|
101
|
+
peerConnection.onLocalCandidate((candidate, mid) => {
|
|
102
|
+
ws.send(JSON.stringify({ id: peerId, type: 'candidate', candidate, mid }));
|
|
103
|
+
});
|
|
104
|
+
peerConnection.onDataChannel((dc) => {
|
|
105
|
+
console.log('DataChannel from ' + peerId + ' received with label "', dc.getLabel() + '"');
|
|
106
|
+
mainWindow.webContents.send('message', peerId, '[DataChannel opened]');
|
|
107
|
+
dcMap[peerId] = dc;
|
|
108
|
+
dc.onMessage((msg) => {
|
|
109
|
+
console.log('Message from ' + peerId + ' received:', msg);
|
|
110
|
+
// Add message to textarea
|
|
111
|
+
mainWindow.webContents.send('message', peerId, msg);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
pcMap[peerId] = peerConnection;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function getRandomString(length) {
|
|
119
|
+
return Math.random()
|
|
120
|
+
.toString(36)
|
|
121
|
+
.substring(2, 2 + length);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
// See the Electron documentation for details on how to use preload scripts:
|
|
3
|
+
// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
|
|
4
|
+
const { contextBridge, ipcRenderer } = require('electron');
|
|
5
|
+
|
|
6
|
+
contextBridge.exposeInMainWorld('electron', {
|
|
7
|
+
connect: (remoteId) => ipcRenderer.send('connect', remoteId),
|
|
8
|
+
sendMessage: (remoteId, msg) => ipcRenderer.send('send-message', remoteId, msg),
|
|
9
|
+
sendRandomMessage: (enabled, interval) => ipcRenderer.send('send-random-message', enabled, interval),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
ipcRenderer.on('my-id', (e, myId) => {
|
|
13
|
+
document.getElementById('my-id').innerHTML = myId;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
ipcRenderer.on('message', (e, remoteId, msg) => {
|
|
17
|
+
document.getElementById('messages').value += remoteId + '> ' + msg + '\n';
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
ipcRenderer.on('connect', (e, remoteId) => {
|
|
21
|
+
document.getElementById('connect').disabled = true;
|
|
22
|
+
document.getElementById('remote-id').disabled = true;
|
|
23
|
+
document.getElementById('remote-id').value = remoteId;
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
ipcRenderer.on('state-update', (e, state) => {
|
|
27
|
+
document.getElementById('state').innerHTML = state;
|
|
28
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file will automatically be loaded by webpack and run in the "renderer" context.
|
|
3
|
+
* To learn more about the differences between the "main" and the "renderer" context in
|
|
4
|
+
* Electron, visit:
|
|
5
|
+
*
|
|
6
|
+
* https://electronjs.org/docs/tutorial/application-architecture#main-and-renderer-processes
|
|
7
|
+
*
|
|
8
|
+
* By default, Node.js integration in this file is disabled. When enabling Node.js integration
|
|
9
|
+
* in a renderer process, please be aware of potential security implications. You can read
|
|
10
|
+
* more about security risks here:
|
|
11
|
+
*
|
|
12
|
+
* https://electronjs.org/docs/tutorial/security
|
|
13
|
+
*
|
|
14
|
+
* To enable Node.js integration in this file, open up `main.js` and enable the `nodeIntegration`
|
|
15
|
+
* flag:
|
|
16
|
+
*
|
|
17
|
+
* ```
|
|
18
|
+
* // Create the browser window.
|
|
19
|
+
* mainWindow = new BrowserWindow({
|
|
20
|
+
* width: 800,
|
|
21
|
+
* height: 600,
|
|
22
|
+
* webPreferences: {
|
|
23
|
+
* nodeIntegration: true
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
import './index.css';
|
|
30
|
+
|
|
31
|
+
window.connect = () => {
|
|
32
|
+
const remoteId = document.getElementById('remote-id').value;
|
|
33
|
+
if (remoteId && remoteId.length > 2) {
|
|
34
|
+
// disable connect button
|
|
35
|
+
document.getElementById('connect').disabled = true;
|
|
36
|
+
document.getElementById('remote-id').disabled = true;
|
|
37
|
+
|
|
38
|
+
window.electron.connect(remoteId);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
window.sendMessage = () => {
|
|
43
|
+
const remoteId = document.getElementById('remote-id').value;
|
|
44
|
+
if (remoteId && remoteId.length > 2) {
|
|
45
|
+
let msg = document.getElementById('new-message').value;
|
|
46
|
+
if (msg && msg.length > 0) {
|
|
47
|
+
document.getElementById('new-message').value = '';
|
|
48
|
+
document.getElementById('messages').value += 'me> ' + msg + '\n';
|
|
49
|
+
window.electron.sendMessage(remoteId, msg);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
window.sendRandomMessage = () => {
|
|
55
|
+
let enabled = document.getElementById('sendRandom').checked;
|
|
56
|
+
let interval = document.getElementById('randomInterval').value;
|
|
57
|
+
window.electron.sendRandomMessage(enabled, interval);
|
|
58
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
/**
|
|
3
|
+
* This is the main entry point for your application, it's the first file
|
|
4
|
+
* that runs in the main process.
|
|
5
|
+
*/
|
|
6
|
+
entry: './src/main.js',
|
|
7
|
+
// Put your normal webpack config below here
|
|
8
|
+
module: {
|
|
9
|
+
rules: require('./webpack.rules'),
|
|
10
|
+
},
|
|
11
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module.exports = [
|
|
2
|
+
// Add support for native node modules
|
|
3
|
+
{
|
|
4
|
+
// We're specifying native_modules in the test because the asset relocator loader generates a
|
|
5
|
+
// "fake" .node file which is really a cjs file.
|
|
6
|
+
test: /native_modules[/\\].+\.node$/,
|
|
7
|
+
use: 'node-loader',
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
test: /[/\\]node_modules[/\\].+\.(m?js|node)$/,
|
|
11
|
+
parser: { amd: false },
|
|
12
|
+
use: {
|
|
13
|
+
loader: '@vercel/webpack-asset-relocator-loader',
|
|
14
|
+
options: {
|
|
15
|
+
outputAssetBase: 'native_modules',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
// Put your webpack loader rules in this array. This is where you would put
|
|
20
|
+
// your ts-loader configuration for instance:
|
|
21
|
+
/**
|
|
22
|
+
* Typescript Example:
|
|
23
|
+
*
|
|
24
|
+
* {
|
|
25
|
+
* test: /\.tsx?$/,
|
|
26
|
+
* exclude: /(node_modules|.webpack)/,
|
|
27
|
+
* loaders: [{
|
|
28
|
+
* loader: 'ts-loader',
|
|
29
|
+
* options: {
|
|
30
|
+
* transpileOnly: true
|
|
31
|
+
* }
|
|
32
|
+
* }]
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
];
|
package/examples/media/README.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
# media
|
|
1
|
+
# media Example
|
|
4
2
|
|
|
5
3
|
## Example Webcam from Browser to Port 5000
|
|
4
|
+
|
|
6
5
|
This is an example copy/paste demo to send your webcam from your browser and out port 5000 through the demo application.
|
|
7
6
|
|
|
8
7
|
## How to use
|
|
8
|
+
|
|
9
9
|
Open main.html in your browser (you must open it either as HTTPS or as a domain of http://localhost).
|
|
10
10
|
|
|
11
11
|
Start the application and copy it's offer into the text box of the web page.
|
package/examples/media/media.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var dgram = require('dgram');
|
|
1
|
+
import readline from 'readline';
|
|
2
|
+
import nodeDataChannel from '../../lib/index.js';
|
|
3
|
+
import dgram from 'dgram';
|
|
5
4
|
|
|
6
5
|
var client = dgram.createSocket('udp4');
|
|
7
6
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import Peer from 'simple-peer';
|
|
2
|
+
import nodeDatachannelPolyfill from '../../polyfill/index.js';
|
|
3
|
+
import nodeDataChannel from '../../lib/index.js';
|
|
4
|
+
|
|
5
|
+
nodeDataChannel.initLogger('Info');
|
|
6
|
+
|
|
7
|
+
var peer1 = new Peer({ initiator: true, wrtc: nodeDatachannelPolyfill });
|
|
8
|
+
var peer2 = new Peer({ wrtc: nodeDatachannelPolyfill });
|
|
9
|
+
|
|
10
|
+
peer1.on('signal', (data) => {
|
|
11
|
+
// when peer1 has signaling data, give it to peer2 somehow
|
|
12
|
+
peer2.signal(data);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
peer2.on('signal', (data) => {
|
|
16
|
+
// when peer2 has signaling data, give it to peer1 somehow
|
|
17
|
+
peer1.signal(data);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
peer1.on('connect', () => {
|
|
21
|
+
// wait for 'connect' event before using the data channel
|
|
22
|
+
peer1.send('hey peer2, how is it going?');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
peer2.on('data', (data) => {
|
|
26
|
+
// got a data channel message
|
|
27
|
+
console.log('got a message from peer1: ' + data);
|
|
28
|
+
});
|