PixelStreamingInfrastructure/SFU/package-lock.json

402 lines
15 KiB
JSON
Raw Permalink Normal View History

{
2023-11-20 11:00:47 +08:00
"name": "@epicgames-ps/pixelstreaming-sfu",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
2023-11-20 11:00:47 +08:00
"name": "@epicgames-ps/pixelstreaming-sfu",
"version": "1.0.0",
"dependencies": {
"mediasoup_prebuilt": "^3.8.4",
"mediasoup-sdp-bridge": "file:mediasoup-sdp-bridge",
2023-11-20 11:00:47 +08:00
"minimist": "^1.2.8",
Convert frontend javascript to typescript and refactor. (#63) * Refactor javascript frontend into a typescript library and a reference implementation. * fixed restart stream * fixed bug where the afk was still active after a reguler dissconnection * added overlay for when the stream was loading * added dissconect overlay that allows reconnection * added comments for disconnection overlay * replaced all bind methods with arrow functions to make code cleaner * seperated auto webrtc connection from auto play with a new config paramater * added the new QP icon * added fully functional qp indicator * removed redundant code and changed image restart icon to svg * added the ability to toggle fullscreen and added logic * added the ability to toggle settings and stats but need to clean up css and make icon images show * fixed qp stat bug * fixed bug with the dissconect action overlay and autoplay * added icons for tooltips * changed images to be served as base 64 * configured svg button in the index for fast loading * moddifed styles in the settings and stats menu * fixed matchviewport resolution * added favicons and fixed matchviewportresolution * refactored VideoPlayerController to StreamController * upgraded the logger to be more usefull * remove hard-coded signalling server address from the frontend * seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios * reworked sound and video * added a fix for ios making svg icons invisible when having filteres aplyed to them * added qol change where the settings pannel closes when clicking restart stream * turned off autoplay * logged unknown dc messages * logged unknown dc messages moved log before error * add support for sending back a pong message to the signalling server on response to a ping message * Bug fixed multitouch zooming the page * ensure that the max width of the panel wrap can never exceed the max width of the viewport * fix the force turn button so that it appears off to the right of the label * Added support for handling websocket messages sent as binary. * added a feature that looks for turn servers if turn is forced. * reworked turn to dissconect if forced and there are no servers * add support for overriding the disconnection message in the webrtcplayercontroller * Improve grammar on the error message when there is no TURN server * prevent the disconnect message from incorrectly appearing as undefined * added message to closing the websocket * consolidated commands and ui descriptors * moved message methods to SendMessageController * integrated input rework * added datachannel sender * refactored mouse/keyboard input * refactored normalise and quanatize * refactored pointerlock functionality * refactored touch controller * fixed resizing bugs * fixed player resolution and mouse movment bugs * Adding AFK setting to settings panel * Add support for signalling server url passed as /?ss= as url parameter. * Fix video fill display option * Added programmatic way to create togglable settings * Added programmatic surface to construct settings flags * Added FillWindow as a new flagged setting in the new settings. * Move control scheme setting into new settings config. * Added buttons programmatically instead of in html * Added numeric settings for min/max qp * Added a new type for creating numeric settings: `SettingNumber` * Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser. * Moved WebRTC settings to new programmable approach * Created settings panel that can be constructed programmatically * Moved all overlay construction into Overlays.ts * Removed `showStats` boolean that was now unused. * Added programmatic construction of video qp indicator. * Fullscreen icon not constructed programmatically, including icons. * Settings icon now programmatically constructed * Stats Icon is now programmatically constructed. * Moved all icons to a controls element that is programmatically constructed. * Programmatically construct latency test element. * Create stats panel programmatically * Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application * Remove dependency on events lib * Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information' * Allow browser to receive offers - UE5 compatibility * Hooked up new signalling protocol that can be extended to support custom signalling messages * Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does. * Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger. * Fix all linter errors and most warnings. * Fix: Config control scheme wasn't being updated with the value parsed from the URL * Remove control scheme from config. It is no handled directly from the settings panel and the URL * Enable PS to embed properly * Moving signalling server in setting text that can be accessed and set programmatically * Moved construction of signalling server url into library * Merge SFU work into signalling url changes by creating a construct signalling url function * Create Epic Games reference implementation. * Moved all config options from members to be settings which can set in the UI or URL * Remove reference to any type and fix remaining linter errors. * Refactor normalize and quantize to be called coordinate converter. * Refactored AFK logic to be AFK Controller * Removed UiController and moved logic into video player * Fix security vulnerabilities in implementations. Remove unused packages. * Fix spelling errors. * Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called. * Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players * Add login page * Rename libfrontend to pixelstreamingfrontend * Add copyright notice * Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information * Fix body filling more than the screen size on iOS * Add toggle for light and dark mode. defaults to system preference * Fix mic not working * Fix light mode * Fix backspace not working * Adding jss support * Fix webpack compilation * Fixed css in js to handle camel case names for styles * Remove tag level css rules that may leak into someone elses application * Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay. * Changing stress test default values * Remove esbuild * Added fix for vh100 creating scroll of iOS devices * Cleanup websocket disconnect message to contain reason only if one is valid * Add webpack devserve to contain dist dir * Fix backspace not working * Fixing use mic option that was not usable locally * Cleaning up package.json files * Updating readme for release * Move the new typescript frontend into a /Frontend directory. * Remove old frontend files and update implementation to build into webserver directory * Renamed index to player.html to match existing conventions in Cirrus * Added script to install frontend if not built and also an option to force it to build with --build * Cleaned up indentation and trailing whitespace * Updated setup_frontend.bat to install npm packages too * Updated bash setup scripts to build frontend if missing or directed * Revised arg handling to match rest of the bash scripts * Added a disclaimer if the frontend build is skipped * Added --build description to --help display * Removed uncessary includes from tsconfig * Remove superfluous package-lock.json in root. * Added prettier and performed whitespace pass on the library. * Add missing typescript dependency. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Update Frontend/library/package.json * Add missing typescripe and webpack dependencies. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Add ability to set preferred codec during negotiation * Fix missing stats in stats panel * Set update selector based on what was negotiated once video starts * Fix sfu not working due to fmtp line reordering * Update default codec for use with ios * Fix signalling server not connecting if frontend is hosted on anything other than port 80 * Fix locked mouse 'MouseDown' events using the wrong coordinate location * Fix: On Windows always use our bundled NodeJS to build the frontend. * Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install. * Linux: Add npm to the path temporarily when running `setup_frontend.sh` * Remove preferred codec from text parameters as it's now an option parameter --------- Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au> Co-authored-by: Daniel Holden <daniel@tensorworks.com.au> Co-authored-by: David MacPherson <david@tensorworks.com.au> Co-authored-by: William Belcher <william.belcher@hotmail.com> Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com> Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 09:34:44 +08:00
"run-script-os": "^1.1.6",
"ws": "^7.1.2"
}
},
2023-11-20 11:00:47 +08:00
"mediasoup-sdp-bridge": {
"name": "@epicgames-ps/mediasoup-sdp-bridge",
"version": "3.6.5",
"license": "ISC",
"dependencies": {
"mediasoup-client": "^3.6.41"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mediasoup"
}
},
"node_modules/@types/debug": {
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
"integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
"dependencies": {
"@types/ms": "*"
}
},
"node_modules/@types/events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
},
"node_modules/@types/ms": {
"version": "0.7.31",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"node_modules/@types/node": {
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA=="
},
"node_modules/awaitqueue": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.3.3.tgz",
"integrity": "sha512-RbzQg6VtPUtyErm55iuQLTrBJ2uihy5BKBOEkyBwv67xm5Fn2o/j+Bz+a5BmfSoe2oZ5dcz9Z3fExS8pL+LLhw==",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/bowser": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
},
"node_modules/debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
},
"peerDependenciesMeta": {
"supports-color": {
"optional": true
}
}
},
"node_modules/event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"engines": {
"node": ">=0.8.x"
}
},
"node_modules/fake-mediastreamtrack": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/fake-mediastreamtrack/-/fake-mediastreamtrack-1.1.6.tgz",
"integrity": "sha512-lcoO5oPsW57istAsnjvQxNjBEahi18OdUhWfmEewwfPfzNZnji5OXuodQM+VnUPi/1HnQRJ6gBUjbt1TNXrkjQ==",
"dependencies": {
"event-target-shim": "^5.0.1",
"uuid": "^8.1.0"
}
},
"node_modules/h264-profile-level-id": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz",
"integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==",
"dependencies": {
"debug": "^4.1.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/mediasoup_prebuilt": {
"version": "3.8.4",
"resolved": "https://registry.npmjs.org/mediasoup_prebuilt/-/mediasoup_prebuilt-3.8.4.tgz",
"integrity": "sha512-IdPcuT3YTJXNFYAY4JuIy8sZ88qagKPg2dR8d4USR5csTvC+qOq9wAIywO+u2lxLjePHJH+Y8UBM3kKfyU6Uug==",
"dependencies": {
"@types/node": "^16.9.1",
"awaitqueue": "^2.3.3",
"debug": "^4.3.2",
"h264-profile-level-id": "^1.0.1",
"netstring": "^0.3.0",
"random-number": "^0.0.9",
"supports-color": "^9.0.2",
"uuid": "^8.3.2"
}
},
"node_modules/mediasoup-client": {
"version": "3.6.46",
"resolved": "https://registry.npmjs.org/mediasoup-client/-/mediasoup-client-3.6.46.tgz",
"integrity": "sha512-Dv8RxCa1cjSPrKWGf1mnypU5TiQCnrOIy4JpZwwjRQzEtCukCfV1zQabij6BigrtkI+l22ui3fl67Mmm4I0XCA==",
"dependencies": {
"@types/debug": "^4.1.7",
"@types/events": "^3.0.0",
"awaitqueue": "^2.3.3",
"bowser": "^2.11.0",
"debug": "^4.3.2",
"events": "^3.3.0",
"fake-mediastreamtrack": "^1.1.6",
"h264-profile-level-id": "^1.0.1",
"sdp-transform": "^2.14.1",
"supports-color": "^9.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/mediasoup"
}
},
"node_modules/mediasoup-sdp-bridge": {
2023-11-20 11:00:47 +08:00
"resolved": "mediasoup-sdp-bridge",
"link": true
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
Convert frontend javascript to typescript and refactor. (#63) * Refactor javascript frontend into a typescript library and a reference implementation. * fixed restart stream * fixed bug where the afk was still active after a reguler dissconnection * added overlay for when the stream was loading * added dissconect overlay that allows reconnection * added comments for disconnection overlay * replaced all bind methods with arrow functions to make code cleaner * seperated auto webrtc connection from auto play with a new config paramater * added the new QP icon * added fully functional qp indicator * removed redundant code and changed image restart icon to svg * added the ability to toggle fullscreen and added logic * added the ability to toggle settings and stats but need to clean up css and make icon images show * fixed qp stat bug * fixed bug with the dissconect action overlay and autoplay * added icons for tooltips * changed images to be served as base 64 * configured svg button in the index for fast loading * moddifed styles in the settings and stats menu * fixed matchviewport resolution * added favicons and fixed matchviewportresolution * refactored VideoPlayerController to StreamController * upgraded the logger to be more usefull * remove hard-coded signalling server address from the frontend * seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios * reworked sound and video * added a fix for ios making svg icons invisible when having filteres aplyed to them * added qol change where the settings pannel closes when clicking restart stream * turned off autoplay * logged unknown dc messages * logged unknown dc messages moved log before error * add support for sending back a pong message to the signalling server on response to a ping message * Bug fixed multitouch zooming the page * ensure that the max width of the panel wrap can never exceed the max width of the viewport * fix the force turn button so that it appears off to the right of the label * Added support for handling websocket messages sent as binary. * added a feature that looks for turn servers if turn is forced. * reworked turn to dissconect if forced and there are no servers * add support for overriding the disconnection message in the webrtcplayercontroller * Improve grammar on the error message when there is no TURN server * prevent the disconnect message from incorrectly appearing as undefined * added message to closing the websocket * consolidated commands and ui descriptors * moved message methods to SendMessageController * integrated input rework * added datachannel sender * refactored mouse/keyboard input * refactored normalise and quanatize * refactored pointerlock functionality * refactored touch controller * fixed resizing bugs * fixed player resolution and mouse movment bugs * Adding AFK setting to settings panel * Add support for signalling server url passed as /?ss= as url parameter. * Fix video fill display option * Added programmatic way to create togglable settings * Added programmatic surface to construct settings flags * Added FillWindow as a new flagged setting in the new settings. * Move control scheme setting into new settings config. * Added buttons programmatically instead of in html * Added numeric settings for min/max qp * Added a new type for creating numeric settings: `SettingNumber` * Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser. * Moved WebRTC settings to new programmable approach * Created settings panel that can be constructed programmatically * Moved all overlay construction into Overlays.ts * Removed `showStats` boolean that was now unused. * Added programmatic construction of video qp indicator. * Fullscreen icon not constructed programmatically, including icons. * Settings icon now programmatically constructed * Stats Icon is now programmatically constructed. * Moved all icons to a controls element that is programmatically constructed. * Programmatically construct latency test element. * Create stats panel programmatically * Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application * Remove dependency on events lib * Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information' * Allow browser to receive offers - UE5 compatibility * Hooked up new signalling protocol that can be extended to support custom signalling messages * Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does. * Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger. * Fix all linter errors and most warnings. * Fix: Config control scheme wasn't being updated with the value parsed from the URL * Remove control scheme from config. It is no handled directly from the settings panel and the URL * Enable PS to embed properly * Moving signalling server in setting text that can be accessed and set programmatically * Moved construction of signalling server url into library * Merge SFU work into signalling url changes by creating a construct signalling url function * Create Epic Games reference implementation. * Moved all config options from members to be settings which can set in the UI or URL * Remove reference to any type and fix remaining linter errors. * Refactor normalize and quantize to be called coordinate converter. * Refactored AFK logic to be AFK Controller * Removed UiController and moved logic into video player * Fix security vulnerabilities in implementations. Remove unused packages. * Fix spelling errors. * Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called. * Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players * Add login page * Rename libfrontend to pixelstreamingfrontend * Add copyright notice * Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information * Fix body filling more than the screen size on iOS * Add toggle for light and dark mode. defaults to system preference * Fix mic not working * Fix light mode * Fix backspace not working * Adding jss support * Fix webpack compilation * Fixed css in js to handle camel case names for styles * Remove tag level css rules that may leak into someone elses application * Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay. * Changing stress test default values * Remove esbuild * Added fix for vh100 creating scroll of iOS devices * Cleanup websocket disconnect message to contain reason only if one is valid * Add webpack devserve to contain dist dir * Fix backspace not working * Fixing use mic option that was not usable locally * Cleaning up package.json files * Updating readme for release * Move the new typescript frontend into a /Frontend directory. * Remove old frontend files and update implementation to build into webserver directory * Renamed index to player.html to match existing conventions in Cirrus * Added script to install frontend if not built and also an option to force it to build with --build * Cleaned up indentation and trailing whitespace * Updated setup_frontend.bat to install npm packages too * Updated bash setup scripts to build frontend if missing or directed * Revised arg handling to match rest of the bash scripts * Added a disclaimer if the frontend build is skipped * Added --build description to --help display * Removed uncessary includes from tsconfig * Remove superfluous package-lock.json in root. * Added prettier and performed whitespace pass on the library. * Add missing typescript dependency. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Update Frontend/library/package.json * Add missing typescripe and webpack dependencies. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Add ability to set preferred codec during negotiation * Fix missing stats in stats panel * Set update selector based on what was negotiated once video starts * Fix sfu not working due to fmtp line reordering * Update default codec for use with ios * Fix signalling server not connecting if frontend is hosted on anything other than port 80 * Fix locked mouse 'MouseDown' events using the wrong coordinate location * Fix: On Windows always use our bundled NodeJS to build the frontend. * Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install. * Linux: Add npm to the path temporarily when running `setup_frontend.sh` * Remove preferred codec from text parameters as it's now an option parameter --------- Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au> Co-authored-by: Daniel Holden <daniel@tensorworks.com.au> Co-authored-by: David MacPherson <david@tensorworks.com.au> Co-authored-by: William Belcher <william.belcher@hotmail.com> Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com> Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 09:34:44 +08:00
"funding": {
2023-11-20 11:00:47 +08:00
"url": "https://github.com/sponsors/ljharb"
Convert frontend javascript to typescript and refactor. (#63) * Refactor javascript frontend into a typescript library and a reference implementation. * fixed restart stream * fixed bug where the afk was still active after a reguler dissconnection * added overlay for when the stream was loading * added dissconect overlay that allows reconnection * added comments for disconnection overlay * replaced all bind methods with arrow functions to make code cleaner * seperated auto webrtc connection from auto play with a new config paramater * added the new QP icon * added fully functional qp indicator * removed redundant code and changed image restart icon to svg * added the ability to toggle fullscreen and added logic * added the ability to toggle settings and stats but need to clean up css and make icon images show * fixed qp stat bug * fixed bug with the dissconect action overlay and autoplay * added icons for tooltips * changed images to be served as base 64 * configured svg button in the index for fast loading * moddifed styles in the settings and stats menu * fixed matchviewport resolution * added favicons and fixed matchviewportresolution * refactored VideoPlayerController to StreamController * upgraded the logger to be more usefull * remove hard-coded signalling server address from the frontend * seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios * reworked sound and video * added a fix for ios making svg icons invisible when having filteres aplyed to them * added qol change where the settings pannel closes when clicking restart stream * turned off autoplay * logged unknown dc messages * logged unknown dc messages moved log before error * add support for sending back a pong message to the signalling server on response to a ping message * Bug fixed multitouch zooming the page * ensure that the max width of the panel wrap can never exceed the max width of the viewport * fix the force turn button so that it appears off to the right of the label * Added support for handling websocket messages sent as binary. * added a feature that looks for turn servers if turn is forced. * reworked turn to dissconect if forced and there are no servers * add support for overriding the disconnection message in the webrtcplayercontroller * Improve grammar on the error message when there is no TURN server * prevent the disconnect message from incorrectly appearing as undefined * added message to closing the websocket * consolidated commands and ui descriptors * moved message methods to SendMessageController * integrated input rework * added datachannel sender * refactored mouse/keyboard input * refactored normalise and quanatize * refactored pointerlock functionality * refactored touch controller * fixed resizing bugs * fixed player resolution and mouse movment bugs * Adding AFK setting to settings panel * Add support for signalling server url passed as /?ss= as url parameter. * Fix video fill display option * Added programmatic way to create togglable settings * Added programmatic surface to construct settings flags * Added FillWindow as a new flagged setting in the new settings. * Move control scheme setting into new settings config. * Added buttons programmatically instead of in html * Added numeric settings for min/max qp * Added a new type for creating numeric settings: `SettingNumber` * Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser. * Moved WebRTC settings to new programmable approach * Created settings panel that can be constructed programmatically * Moved all overlay construction into Overlays.ts * Removed `showStats` boolean that was now unused. * Added programmatic construction of video qp indicator. * Fullscreen icon not constructed programmatically, including icons. * Settings icon now programmatically constructed * Stats Icon is now programmatically constructed. * Moved all icons to a controls element that is programmatically constructed. * Programmatically construct latency test element. * Create stats panel programmatically * Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application * Remove dependency on events lib * Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information' * Allow browser to receive offers - UE5 compatibility * Hooked up new signalling protocol that can be extended to support custom signalling messages * Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does. * Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger. * Fix all linter errors and most warnings. * Fix: Config control scheme wasn't being updated with the value parsed from the URL * Remove control scheme from config. It is no handled directly from the settings panel and the URL * Enable PS to embed properly * Moving signalling server in setting text that can be accessed and set programmatically * Moved construction of signalling server url into library * Merge SFU work into signalling url changes by creating a construct signalling url function * Create Epic Games reference implementation. * Moved all config options from members to be settings which can set in the UI or URL * Remove reference to any type and fix remaining linter errors. * Refactor normalize and quantize to be called coordinate converter. * Refactored AFK logic to be AFK Controller * Removed UiController and moved logic into video player * Fix security vulnerabilities in implementations. Remove unused packages. * Fix spelling errors. * Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called. * Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players * Add login page * Rename libfrontend to pixelstreamingfrontend * Add copyright notice * Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information * Fix body filling more than the screen size on iOS * Add toggle for light and dark mode. defaults to system preference * Fix mic not working * Fix light mode * Fix backspace not working * Adding jss support * Fix webpack compilation * Fixed css in js to handle camel case names for styles * Remove tag level css rules that may leak into someone elses application * Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay. * Changing stress test default values * Remove esbuild * Added fix for vh100 creating scroll of iOS devices * Cleanup websocket disconnect message to contain reason only if one is valid * Add webpack devserve to contain dist dir * Fix backspace not working * Fixing use mic option that was not usable locally * Cleaning up package.json files * Updating readme for release * Move the new typescript frontend into a /Frontend directory. * Remove old frontend files and update implementation to build into webserver directory * Renamed index to player.html to match existing conventions in Cirrus * Added script to install frontend if not built and also an option to force it to build with --build * Cleaned up indentation and trailing whitespace * Updated setup_frontend.bat to install npm packages too * Updated bash setup scripts to build frontend if missing or directed * Revised arg handling to match rest of the bash scripts * Added a disclaimer if the frontend build is skipped * Added --build description to --help display * Removed uncessary includes from tsconfig * Remove superfluous package-lock.json in root. * Added prettier and performed whitespace pass on the library. * Add missing typescript dependency. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Update Frontend/library/package.json * Add missing typescripe and webpack dependencies. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Add ability to set preferred codec during negotiation * Fix missing stats in stats panel * Set update selector based on what was negotiated once video starts * Fix sfu not working due to fmtp line reordering * Update default codec for use with ios * Fix signalling server not connecting if frontend is hosted on anything other than port 80 * Fix locked mouse 'MouseDown' events using the wrong coordinate location * Fix: On Windows always use our bundled NodeJS to build the frontend. * Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install. * Linux: Add npm to the path temporarily when running `setup_frontend.sh` * Remove preferred codec from text parameters as it's now an option parameter --------- Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au> Co-authored-by: Daniel Holden <daniel@tensorworks.com.au> Co-authored-by: David MacPherson <david@tensorworks.com.au> Co-authored-by: William Belcher <william.belcher@hotmail.com> Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com> Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 09:34:44 +08:00
}
},
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/netstring": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/netstring/-/netstring-0.3.0.tgz",
"integrity": "sha1-ho3FsgxY0/cwVTHUk2jqqr0ZtxI=",
"engines": {
"node": ">=0.6"
}
},
"node_modules/random-number": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/random-number/-/random-number-0.0.9.tgz",
"integrity": "sha512-ipG3kRCREi/YQpi2A5QGcvDz1KemohovWmH6qGfboVyyGdR2t/7zQz0vFxrfxpbHQgPPdtVlUDaks3aikD1Ljw=="
},
Convert frontend javascript to typescript and refactor. (#63) * Refactor javascript frontend into a typescript library and a reference implementation. * fixed restart stream * fixed bug where the afk was still active after a reguler dissconnection * added overlay for when the stream was loading * added dissconect overlay that allows reconnection * added comments for disconnection overlay * replaced all bind methods with arrow functions to make code cleaner * seperated auto webrtc connection from auto play with a new config paramater * added the new QP icon * added fully functional qp indicator * removed redundant code and changed image restart icon to svg * added the ability to toggle fullscreen and added logic * added the ability to toggle settings and stats but need to clean up css and make icon images show * fixed qp stat bug * fixed bug with the dissconect action overlay and autoplay * added icons for tooltips * changed images to be served as base 64 * configured svg button in the index for fast loading * moddifed styles in the settings and stats menu * fixed matchviewport resolution * added favicons and fixed matchviewportresolution * refactored VideoPlayerController to StreamController * upgraded the logger to be more usefull * remove hard-coded signalling server address from the frontend * seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios * reworked sound and video * added a fix for ios making svg icons invisible when having filteres aplyed to them * added qol change where the settings pannel closes when clicking restart stream * turned off autoplay * logged unknown dc messages * logged unknown dc messages moved log before error * add support for sending back a pong message to the signalling server on response to a ping message * Bug fixed multitouch zooming the page * ensure that the max width of the panel wrap can never exceed the max width of the viewport * fix the force turn button so that it appears off to the right of the label * Added support for handling websocket messages sent as binary. * added a feature that looks for turn servers if turn is forced. * reworked turn to dissconect if forced and there are no servers * add support for overriding the disconnection message in the webrtcplayercontroller * Improve grammar on the error message when there is no TURN server * prevent the disconnect message from incorrectly appearing as undefined * added message to closing the websocket * consolidated commands and ui descriptors * moved message methods to SendMessageController * integrated input rework * added datachannel sender * refactored mouse/keyboard input * refactored normalise and quanatize * refactored pointerlock functionality * refactored touch controller * fixed resizing bugs * fixed player resolution and mouse movment bugs * Adding AFK setting to settings panel * Add support for signalling server url passed as /?ss= as url parameter. * Fix video fill display option * Added programmatic way to create togglable settings * Added programmatic surface to construct settings flags * Added FillWindow as a new flagged setting in the new settings. * Move control scheme setting into new settings config. * Added buttons programmatically instead of in html * Added numeric settings for min/max qp * Added a new type for creating numeric settings: `SettingNumber` * Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser. * Moved WebRTC settings to new programmable approach * Created settings panel that can be constructed programmatically * Moved all overlay construction into Overlays.ts * Removed `showStats` boolean that was now unused. * Added programmatic construction of video qp indicator. * Fullscreen icon not constructed programmatically, including icons. * Settings icon now programmatically constructed * Stats Icon is now programmatically constructed. * Moved all icons to a controls element that is programmatically constructed. * Programmatically construct latency test element. * Create stats panel programmatically * Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application * Remove dependency on events lib * Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information' * Allow browser to receive offers - UE5 compatibility * Hooked up new signalling protocol that can be extended to support custom signalling messages * Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does. * Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger. * Fix all linter errors and most warnings. * Fix: Config control scheme wasn't being updated with the value parsed from the URL * Remove control scheme from config. It is no handled directly from the settings panel and the URL * Enable PS to embed properly * Moving signalling server in setting text that can be accessed and set programmatically * Moved construction of signalling server url into library * Merge SFU work into signalling url changes by creating a construct signalling url function * Create Epic Games reference implementation. * Moved all config options from members to be settings which can set in the UI or URL * Remove reference to any type and fix remaining linter errors. * Refactor normalize and quantize to be called coordinate converter. * Refactored AFK logic to be AFK Controller * Removed UiController and moved logic into video player * Fix security vulnerabilities in implementations. Remove unused packages. * Fix spelling errors. * Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called. * Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players * Add login page * Rename libfrontend to pixelstreamingfrontend * Add copyright notice * Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information * Fix body filling more than the screen size on iOS * Add toggle for light and dark mode. defaults to system preference * Fix mic not working * Fix light mode * Fix backspace not working * Adding jss support * Fix webpack compilation * Fixed css in js to handle camel case names for styles * Remove tag level css rules that may leak into someone elses application * Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay. * Changing stress test default values * Remove esbuild * Added fix for vh100 creating scroll of iOS devices * Cleanup websocket disconnect message to contain reason only if one is valid * Add webpack devserve to contain dist dir * Fix backspace not working * Fixing use mic option that was not usable locally * Cleaning up package.json files * Updating readme for release * Move the new typescript frontend into a /Frontend directory. * Remove old frontend files and update implementation to build into webserver directory * Renamed index to player.html to match existing conventions in Cirrus * Added script to install frontend if not built and also an option to force it to build with --build * Cleaned up indentation and trailing whitespace * Updated setup_frontend.bat to install npm packages too * Updated bash setup scripts to build frontend if missing or directed * Revised arg handling to match rest of the bash scripts * Added a disclaimer if the frontend build is skipped * Added --build description to --help display * Removed uncessary includes from tsconfig * Remove superfluous package-lock.json in root. * Added prettier and performed whitespace pass on the library. * Add missing typescript dependency. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Update Frontend/library/package.json * Add missing typescripe and webpack dependencies. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Add ability to set preferred codec during negotiation * Fix missing stats in stats panel * Set update selector based on what was negotiated once video starts * Fix sfu not working due to fmtp line reordering * Update default codec for use with ios * Fix signalling server not connecting if frontend is hosted on anything other than port 80 * Fix locked mouse 'MouseDown' events using the wrong coordinate location * Fix: On Windows always use our bundled NodeJS to build the frontend. * Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install. * Linux: Add npm to the path temporarily when running `setup_frontend.sh` * Remove preferred codec from text parameters as it's now an option parameter --------- Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au> Co-authored-by: Daniel Holden <daniel@tensorworks.com.au> Co-authored-by: David MacPherson <david@tensorworks.com.au> Co-authored-by: William Belcher <william.belcher@hotmail.com> Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com> Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 09:34:44 +08:00
"node_modules/run-script-os": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz",
"integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==",
"bin": {
"run-os": "index.js",
"run-script-os": "index.js"
}
},
"node_modules/sdp-transform": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz",
"integrity": "sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw==",
"bin": {
"sdp-verify": "checker.js"
}
},
"node_modules/supports-color": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.1.0.tgz",
"integrity": "sha512-lOCGOTmBSN54zKAoPWhHkjoqVQ0MqgzPE5iirtoSixhr0ZieR/6l7WZ32V53cvy9+1qghFnIk7k52p991lKd6g==",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/ws": {
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"engines": {
"node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
}
},
"dependencies": {
"@types/debug": {
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
"integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
"requires": {
"@types/ms": "*"
}
},
"@types/events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g=="
},
"@types/ms": {
"version": "0.7.31",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"@types/node": {
"version": "16.11.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
"integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA=="
},
"awaitqueue": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.3.3.tgz",
"integrity": "sha512-RbzQg6VtPUtyErm55iuQLTrBJ2uihy5BKBOEkyBwv67xm5Fn2o/j+Bz+a5BmfSoe2oZ5dcz9Z3fExS8pL+LLhw=="
},
"bowser": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz",
"integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA=="
},
"debug": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"requires": {
"ms": "2.1.2"
}
},
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"events": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
},
"fake-mediastreamtrack": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/fake-mediastreamtrack/-/fake-mediastreamtrack-1.1.6.tgz",
"integrity": "sha512-lcoO5oPsW57istAsnjvQxNjBEahi18OdUhWfmEewwfPfzNZnji5OXuodQM+VnUPi/1HnQRJ6gBUjbt1TNXrkjQ==",
"requires": {
"event-target-shim": "^5.0.1",
"uuid": "^8.1.0"
}
},
"h264-profile-level-id": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz",
"integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==",
"requires": {
"debug": "^4.1.1"
}
},
"mediasoup_prebuilt": {
"version": "3.8.4",
"resolved": "https://registry.npmjs.org/mediasoup_prebuilt/-/mediasoup_prebuilt-3.8.4.tgz",
"integrity": "sha512-IdPcuT3YTJXNFYAY4JuIy8sZ88qagKPg2dR8d4USR5csTvC+qOq9wAIywO+u2lxLjePHJH+Y8UBM3kKfyU6Uug==",
"requires": {
"@types/node": "^16.9.1",
"awaitqueue": "^2.3.3",
"debug": "^4.3.2",
"h264-profile-level-id": "^1.0.1",
"netstring": "^0.3.0",
"random-number": "^0.0.9",
"supports-color": "^9.0.2",
"uuid": "^8.3.2"
}
},
"mediasoup-client": {
"version": "3.6.46",
"resolved": "https://registry.npmjs.org/mediasoup-client/-/mediasoup-client-3.6.46.tgz",
"integrity": "sha512-Dv8RxCa1cjSPrKWGf1mnypU5TiQCnrOIy4JpZwwjRQzEtCukCfV1zQabij6BigrtkI+l22ui3fl67Mmm4I0XCA==",
"requires": {
"@types/debug": "^4.1.7",
"@types/events": "^3.0.0",
"awaitqueue": "^2.3.3",
"bowser": "^2.11.0",
"debug": "^4.3.2",
"events": "^3.3.0",
"fake-mediastreamtrack": "^1.1.6",
"h264-profile-level-id": "^1.0.1",
"sdp-transform": "^2.14.1",
"supports-color": "^9.1.0"
}
},
"mediasoup-sdp-bridge": {
2023-11-20 11:00:47 +08:00
"version": "file:mediasoup-sdp-bridge",
"requires": {
"mediasoup-client": "^3.6.41"
}
},
2023-11-20 11:00:47 +08:00
"minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"netstring": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/netstring/-/netstring-0.3.0.tgz",
"integrity": "sha1-ho3FsgxY0/cwVTHUk2jqqr0ZtxI="
},
"random-number": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/random-number/-/random-number-0.0.9.tgz",
"integrity": "sha512-ipG3kRCREi/YQpi2A5QGcvDz1KemohovWmH6qGfboVyyGdR2t/7zQz0vFxrfxpbHQgPPdtVlUDaks3aikD1Ljw=="
Convert frontend javascript to typescript and refactor. (#63) * Refactor javascript frontend into a typescript library and a reference implementation. * fixed restart stream * fixed bug where the afk was still active after a reguler dissconnection * added overlay for when the stream was loading * added dissconect overlay that allows reconnection * added comments for disconnection overlay * replaced all bind methods with arrow functions to make code cleaner * seperated auto webrtc connection from auto play with a new config paramater * added the new QP icon * added fully functional qp indicator * removed redundant code and changed image restart icon to svg * added the ability to toggle fullscreen and added logic * added the ability to toggle settings and stats but need to clean up css and make icon images show * fixed qp stat bug * fixed bug with the dissconect action overlay and autoplay * added icons for tooltips * changed images to be served as base 64 * configured svg button in the index for fast loading * moddifed styles in the settings and stats menu * fixed matchviewport resolution * added favicons and fixed matchviewportresolution * refactored VideoPlayerController to StreamController * upgraded the logger to be more usefull * remove hard-coded signalling server address from the frontend * seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios * reworked sound and video * added a fix for ios making svg icons invisible when having filteres aplyed to them * added qol change where the settings pannel closes when clicking restart stream * turned off autoplay * logged unknown dc messages * logged unknown dc messages moved log before error * add support for sending back a pong message to the signalling server on response to a ping message * Bug fixed multitouch zooming the page * ensure that the max width of the panel wrap can never exceed the max width of the viewport * fix the force turn button so that it appears off to the right of the label * Added support for handling websocket messages sent as binary. * added a feature that looks for turn servers if turn is forced. * reworked turn to dissconect if forced and there are no servers * add support for overriding the disconnection message in the webrtcplayercontroller * Improve grammar on the error message when there is no TURN server * prevent the disconnect message from incorrectly appearing as undefined * added message to closing the websocket * consolidated commands and ui descriptors * moved message methods to SendMessageController * integrated input rework * added datachannel sender * refactored mouse/keyboard input * refactored normalise and quanatize * refactored pointerlock functionality * refactored touch controller * fixed resizing bugs * fixed player resolution and mouse movment bugs * Adding AFK setting to settings panel * Add support for signalling server url passed as /?ss= as url parameter. * Fix video fill display option * Added programmatic way to create togglable settings * Added programmatic surface to construct settings flags * Added FillWindow as a new flagged setting in the new settings. * Move control scheme setting into new settings config. * Added buttons programmatically instead of in html * Added numeric settings for min/max qp * Added a new type for creating numeric settings: `SettingNumber` * Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser. * Moved WebRTC settings to new programmable approach * Created settings panel that can be constructed programmatically * Moved all overlay construction into Overlays.ts * Removed `showStats` boolean that was now unused. * Added programmatic construction of video qp indicator. * Fullscreen icon not constructed programmatically, including icons. * Settings icon now programmatically constructed * Stats Icon is now programmatically constructed. * Moved all icons to a controls element that is programmatically constructed. * Programmatically construct latency test element. * Create stats panel programmatically * Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application * Remove dependency on events lib * Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information' * Allow browser to receive offers - UE5 compatibility * Hooked up new signalling protocol that can be extended to support custom signalling messages * Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does. * Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger. * Fix all linter errors and most warnings. * Fix: Config control scheme wasn't being updated with the value parsed from the URL * Remove control scheme from config. It is no handled directly from the settings panel and the URL * Enable PS to embed properly * Moving signalling server in setting text that can be accessed and set programmatically * Moved construction of signalling server url into library * Merge SFU work into signalling url changes by creating a construct signalling url function * Create Epic Games reference implementation. * Moved all config options from members to be settings which can set in the UI or URL * Remove reference to any type and fix remaining linter errors. * Refactor normalize and quantize to be called coordinate converter. * Refactored AFK logic to be AFK Controller * Removed UiController and moved logic into video player * Fix security vulnerabilities in implementations. Remove unused packages. * Fix spelling errors. * Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called. * Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players * Add login page * Rename libfrontend to pixelstreamingfrontend * Add copyright notice * Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information * Fix body filling more than the screen size on iOS * Add toggle for light and dark mode. defaults to system preference * Fix mic not working * Fix light mode * Fix backspace not working * Adding jss support * Fix webpack compilation * Fixed css in js to handle camel case names for styles * Remove tag level css rules that may leak into someone elses application * Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay. * Changing stress test default values * Remove esbuild * Added fix for vh100 creating scroll of iOS devices * Cleanup websocket disconnect message to contain reason only if one is valid * Add webpack devserve to contain dist dir * Fix backspace not working * Fixing use mic option that was not usable locally * Cleaning up package.json files * Updating readme for release * Move the new typescript frontend into a /Frontend directory. * Remove old frontend files and update implementation to build into webserver directory * Renamed index to player.html to match existing conventions in Cirrus * Added script to install frontend if not built and also an option to force it to build with --build * Cleaned up indentation and trailing whitespace * Updated setup_frontend.bat to install npm packages too * Updated bash setup scripts to build frontend if missing or directed * Revised arg handling to match rest of the bash scripts * Added a disclaimer if the frontend build is skipped * Added --build description to --help display * Removed uncessary includes from tsconfig * Remove superfluous package-lock.json in root. * Added prettier and performed whitespace pass on the library. * Add missing typescript dependency. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Update Frontend/library/package.json * Add missing typescripe and webpack dependencies. Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> * Add ability to set preferred codec during negotiation * Fix missing stats in stats panel * Set update selector based on what was negotiated once video starts * Fix sfu not working due to fmtp line reordering * Update default codec for use with ios * Fix signalling server not connecting if frontend is hosted on anything other than port 80 * Fix locked mouse 'MouseDown' events using the wrong coordinate location * Fix: On Windows always use our bundled NodeJS to build the frontend. * Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install. * Linux: Add npm to the path temporarily when running `setup_frontend.sh` * Remove preferred codec from text parameters as it's now an option parameter --------- Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com> Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au> Co-authored-by: Daniel Holden <daniel@tensorworks.com.au> Co-authored-by: David MacPherson <david@tensorworks.com.au> Co-authored-by: William Belcher <william.belcher@hotmail.com> Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com> Co-authored-by: hmuurine <hmuurine@users.noreply.github.com> Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 09:34:44 +08:00
},
"run-script-os": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz",
"integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw=="
},
"sdp-transform": {
"version": "2.14.1",
"resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz",
"integrity": "sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw=="
},
"supports-color": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.1.0.tgz",
"integrity": "sha512-lOCGOTmBSN54zKAoPWhHkjoqVQ0MqgzPE5iirtoSixhr0ZieR/6l7WZ32V53cvy9+1qghFnIk7k52p991lKd6g=="
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"ws": {
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"requires": {}
}
}
}