* Realigned sidebar character example
* Make images a bit bigger for characters
* Added showcase html page with showcase.ts
* Add styling of button/images
* Added onExampleChanged function
* Added ability from dropdown to toggle examples
* Add another example with buttons to change resolution.
* Added stub for character selection function.
* Added skin 3 button
* Bump package-lock files for library to use latest version
* Added resolution changing button and hooked them up to UE project
* Added section for sending console command
* Added functional button to the console/command example.
* Moved example drop down to be in sidebar.
* add unit test coverage reports to gitignore
* add jest dependencies
* add jest config
* add Config unit tests
* add AFKController unit tests
* mock video codecs list
* test for PixelStreaming SettingsChangedEvent
* mock/unmock functions for RTCRtpReceiver
* mock WebSocket
* test for PixelStreaming.connect()
* unit test for disconnect
* unit tests for reconnect
* added eventemitter events in tests
* test that listStreamers is sent on WS connect
* mock RTCPeerConnection and RTCIceCandidate
* test webRtcConnected event
* test RTCPeerConnect close
* fixed variable name for consistency
* check for navigator.getGamepads before calling it
* mock addTransceiver, createAnswer, getTransceivers, setRemoteDescription
* test for receiving a connection offer
* add null checks for peerConnection since it might be null if connectiong closed
* mock addIceCandidate
* test for receiving ICE candidate message
* mock setLocalDescription, getStats
* test for statistics
* test webRtcDisconnected event
* mock RTCDataChannel and RTCDataChannelEvent
* test for dataChannelOpen event
* mock RTCTrackEvent
* mock MediaStream and MediaStreamTrack
* mock video element play()
* test playStream and playStreamRejected events
* mock video readyState
* mock WebRTC data channel send()
* test emitCommand
* test emitUIInteraction
* test emitConsoleCommand
* Jest mock for HTMLMediaElement.play()
* check boolean return value of all emit* commands
* test dataChannelClose event
* added TextEncoder and TextDecoder to Jest globals
* mock datachannel onmessage
* test UE -> browser data channel message
* clarified in test description that we are using a Response message
* extracted commonly used setup steps as util functions
* triggerSdpOffer -> triggerSdpOfferMessage for consistency
* run unit tests as a Github action
* Revert "break one of the tests to test the GH action"
This reverts commit 05f5742cf0.
* run tests only if files changed under Frontend/library
* added unit test run instructions to README.md
* move registerLockedMouseEvents and registerHoveringMouseEvents to MouseController
* add a utility that keeps track of registered event handlers for easy unregistering
* fix stream handler name MoveMouse -> MouseMove
* support unregistering gamepad events
* support unregistering keyboard events
* support unregistering mouse events
* support unregistering touch events
* unregister input event handlers before registering new ones
* configurable keyboard/mouse/touch/gamepad support
* start/stop game pad polling on config enable/disable
* UI: add user input config to Settings menu
* added config flag EnableXRControllerInput for enabling/disabling XR controller messages
* added the new config flags to documentation
* smaller version of the settings panel image to better match the old image resolution
* Simplify input flag naming. Separate input toggles into new section in the settings panel
* Expose sendUIInteraction function
* Update documentation
* Support sending console commands
* Rename sendUIInteraction -> emitUIInteraction to match UE 5.1 function naming
* Rename sendConsoleCommand -> emitConsoleCommand to match UE 5.1 function naming
* API for registering UE response listener
* Mark addResponseEventListener and removeResponseEventListener public to match other API functions