@epicgames-ps/lib-pixelstreamingfrontend-ue5.5 0.4.1 → 0.4.3
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/dist/commonjs/AFK/AFKController.js.map +1 -1
- package/dist/commonjs/Config/Config.js +30 -6
- package/dist/commonjs/Config/Config.js.map +1 -1
- package/dist/commonjs/Config/SettingBase.js.map +1 -1
- package/dist/commonjs/Config/SettingFlag.js.map +1 -1
- package/dist/commonjs/Config/SettingNumber.js.map +1 -1
- package/dist/commonjs/Config/SettingOption.js.map +1 -1
- package/dist/commonjs/Config/SettingText.js.map +1 -1
- package/dist/commonjs/DataChannel/DataChannelController.js.map +1 -1
- package/dist/commonjs/DataChannel/DataChannelLatencyTestController.js.map +1 -1
- package/dist/commonjs/DataChannel/DataChannelSender.js.map +1 -1
- package/dist/commonjs/DataChannel/InitialSettings.js.map +1 -1
- package/dist/commonjs/DataChannel/LatencyTestResults.js.map +1 -1
- package/dist/commonjs/FreezeFrame/FreezeFrame.js.map +1 -1
- package/dist/commonjs/FreezeFrame/FreezeFrameController.js.map +1 -1
- package/dist/commonjs/Inputs/GamepadController.js +1 -1
- package/dist/commonjs/Inputs/GamepadController.js.map +1 -1
- package/dist/commonjs/Inputs/GamepadTypes.js +1 -2
- package/dist/commonjs/Inputs/GamepadTypes.js.map +1 -1
- package/dist/commonjs/Inputs/InputClassesFactory.js.map +1 -1
- package/dist/commonjs/Inputs/KeyboardController.js.map +1 -1
- package/dist/commonjs/Inputs/MouseController.js.map +1 -1
- package/dist/commonjs/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/commonjs/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/commonjs/Inputs/TouchController.js.map +1 -1
- package/dist/commonjs/Inputs/TouchControllerFake.js.map +1 -1
- package/dist/commonjs/Inputs/XRGamepadController.js.map +1 -1
- package/dist/commonjs/PeerConnectionController/AggregatedStats.js.map +1 -1
- package/dist/commonjs/PeerConnectionController/PeerConnectionController.js +4 -4
- package/dist/commonjs/PeerConnectionController/PeerConnectionController.js.map +1 -1
- package/dist/commonjs/PixelStreaming/PixelStreaming.js +66 -10
- package/dist/commonjs/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/commonjs/UI/OnScreenKeyboard.js.map +1 -1
- package/dist/commonjs/UeInstanceMessage/SendMessageController.js +1 -0
- package/dist/commonjs/UeInstanceMessage/SendMessageController.js.map +1 -1
- package/dist/commonjs/UeInstanceMessage/StreamMessageController.js +1 -1
- package/dist/commonjs/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/commonjs/Util/EventEmitter.js.map +1 -1
- package/dist/commonjs/Util/FileUtil.js.map +1 -1
- package/dist/commonjs/Util/IURLSearchParams.js.map +1 -1
- package/dist/commonjs/Util/InputCoordTranslator.js.map +1 -1
- package/dist/commonjs/VideoPlayer/StreamController.js.map +1 -1
- package/dist/commonjs/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js +94 -1
- package/dist/commonjs/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/commonjs/WebXR/WebXRController.js +2 -2
- package/dist/commonjs/WebXR/WebXRController.js.map +1 -1
- package/dist/commonjs/pixelstreamingfrontend.js +5 -1
- package/dist/commonjs/pixelstreamingfrontend.js.map +1 -1
- package/dist/esm/AFK/AFKController.js +20 -16
- package/dist/esm/AFK/AFKController.js.map +1 -1
- package/dist/esm/Config/Config.js +92 -60
- package/dist/esm/Config/Config.js.map +1 -1
- package/dist/esm/Config/SettingBase.js +5 -1
- package/dist/esm/Config/SettingBase.js.map +1 -1
- package/dist/esm/Config/SettingFlag.js +6 -2
- package/dist/esm/Config/SettingFlag.js.map +1 -1
- package/dist/esm/Config/SettingNumber.js +6 -2
- package/dist/esm/Config/SettingNumber.js.map +1 -1
- package/dist/esm/Config/SettingOption.js +8 -4
- package/dist/esm/Config/SettingOption.js.map +1 -1
- package/dist/esm/Config/SettingText.js +6 -2
- package/dist/esm/Config/SettingText.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelController.js +10 -6
- package/dist/esm/DataChannel/DataChannelController.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelLatencyTestController.js +9 -5
- package/dist/esm/DataChannel/DataChannelLatencyTestController.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelLatencyTestResults.js +5 -1
- package/dist/esm/DataChannel/DataChannelLatencyTestResults.js.map +1 -1
- package/dist/esm/DataChannel/DataChannelSender.js +8 -4
- package/dist/esm/DataChannel/DataChannelSender.js.map +1 -1
- package/dist/esm/DataChannel/InitialSettings.js +11 -4
- package/dist/esm/DataChannel/InitialSettings.js.map +1 -1
- package/dist/esm/DataChannel/LatencyTestResults.js +8 -4
- package/dist/esm/DataChannel/LatencyTestResults.js.map +1 -1
- package/dist/esm/FreezeFrame/FreezeFrame.js +5 -1
- package/dist/esm/FreezeFrame/FreezeFrame.js.map +1 -1
- package/dist/esm/FreezeFrame/FreezeFrameController.js +11 -7
- package/dist/esm/FreezeFrame/FreezeFrameController.js.map +1 -1
- package/dist/esm/Inputs/GamepadController.js +11 -7
- package/dist/esm/Inputs/GamepadController.js.map +1 -1
- package/dist/esm/Inputs/GamepadTypes.js +4 -1
- package/dist/esm/Inputs/GamepadTypes.js.map +1 -1
- package/dist/esm/Inputs/IInputController.js +2 -1
- package/dist/esm/Inputs/InputClassesFactory.js +26 -21
- package/dist/esm/Inputs/InputClassesFactory.js.map +1 -1
- package/dist/esm/Inputs/KeyCodes.js +4 -1
- package/dist/esm/Inputs/KeyCodes.js.map +1 -1
- package/dist/esm/Inputs/KeyboardController.js +22 -18
- package/dist/esm/Inputs/KeyboardController.js.map +1 -1
- package/dist/esm/Inputs/MouseButtons.js +7 -2
- package/dist/esm/Inputs/MouseButtons.js.map +1 -1
- package/dist/esm/Inputs/MouseController.js +26 -22
- package/dist/esm/Inputs/MouseController.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerHovering.js +6 -2
- package/dist/esm/Inputs/MouseControllerHovering.js.map +1 -1
- package/dist/esm/Inputs/MouseControllerLocked.js +9 -5
- package/dist/esm/Inputs/MouseControllerLocked.js.map +1 -1
- package/dist/esm/Inputs/SpecialKeyCodes.js +5 -1
- package/dist/esm/Inputs/SpecialKeyCodes.js.map +1 -1
- package/dist/esm/Inputs/TouchController.js +8 -4
- package/dist/esm/Inputs/TouchController.js.map +1 -1
- package/dist/esm/Inputs/TouchControllerFake.js +8 -4
- package/dist/esm/Inputs/TouchControllerFake.js.map +1 -1
- package/dist/esm/Inputs/XRGamepadController.js +8 -4
- package/dist/esm/Inputs/XRGamepadController.js.map +1 -1
- package/dist/esm/PeerConnectionController/AggregatedStats.js +23 -19
- package/dist/esm/PeerConnectionController/AggregatedStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/CandidatePairStats.js +5 -1
- package/dist/esm/PeerConnectionController/CandidatePairStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/CandidateStat.js +5 -1
- package/dist/esm/PeerConnectionController/CandidateStat.js.map +1 -1
- package/dist/esm/PeerConnectionController/CodecStats.js +5 -1
- package/dist/esm/PeerConnectionController/CodecStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/DataChannelStats.js +5 -1
- package/dist/esm/PeerConnectionController/DataChannelStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/InboundRTPStats.js +9 -3
- package/dist/esm/PeerConnectionController/InboundRTPStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/InboundTrackStats.js +5 -1
- package/dist/esm/PeerConnectionController/InboundTrackStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/OutBoundRTPStats.js +7 -2
- package/dist/esm/PeerConnectionController/OutBoundRTPStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/PeerConnectionController.js +45 -41
- package/dist/esm/PeerConnectionController/PeerConnectionController.js.map +1 -1
- package/dist/esm/PeerConnectionController/SessionStats.js +5 -1
- package/dist/esm/PeerConnectionController/SessionStats.js.map +1 -1
- package/dist/esm/PeerConnectionController/StreamStats.js +5 -1
- package/dist/esm/PeerConnectionController/StreamStats.js.map +1 -1
- package/dist/esm/PixelStreaming/PixelStreaming.js +154 -94
- package/dist/esm/PixelStreaming/PixelStreaming.js.map +1 -1
- package/dist/esm/UI/OnScreenKeyboard.js +5 -1
- package/dist/esm/UI/OnScreenKeyboard.js.map +1 -1
- package/dist/esm/UeInstanceMessage/ResponseController.js +8 -4
- package/dist/esm/UeInstanceMessage/ResponseController.js.map +1 -1
- package/dist/esm/UeInstanceMessage/SendMessageController.js +10 -5
- package/dist/esm/UeInstanceMessage/SendMessageController.js.map +1 -1
- package/dist/esm/UeInstanceMessage/StreamMessageController.js +11 -6
- package/dist/esm/UeInstanceMessage/StreamMessageController.js.map +1 -1
- package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js +5 -1
- package/dist/esm/UeInstanceMessage/ToStreamerMessagesController.js.map +1 -1
- package/dist/esm/Util/EventEmitter.js +79 -38
- package/dist/esm/Util/EventEmitter.js.map +1 -1
- package/dist/esm/Util/FileUtil.js +16 -11
- package/dist/esm/Util/FileUtil.js.map +1 -1
- package/dist/esm/Util/IURLSearchParams.js +5 -1
- package/dist/esm/Util/IURLSearchParams.js.map +1 -1
- package/dist/esm/Util/InputCoordTranslator.js +5 -1
- package/dist/esm/Util/InputCoordTranslator.js.map +1 -1
- package/dist/esm/Util/RTCUtils.js +5 -1
- package/dist/esm/Util/RTCUtils.js.map +1 -1
- package/dist/esm/VideoPlayer/StreamController.js +10 -6
- package/dist/esm/VideoPlayer/StreamController.js.map +1 -1
- package/dist/esm/VideoPlayer/VideoPlayer.js +11 -7
- package/dist/esm/VideoPlayer/VideoPlayer.js.map +1 -1
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js +312 -215
- package/dist/esm/WebRtcPlayer/WebRtcPlayerController.js.map +1 -1
- package/dist/esm/WebXR/WebXRController.js +16 -12
- package/dist/esm/WebXR/WebXRController.js.map +1 -1
- package/dist/esm/pixelstreamingfrontend.js +73 -23
- package/dist/esm/pixelstreamingfrontend.js.map +1 -1
- package/dist/types/Config/Config.d.ts +9 -0
- package/dist/types/DataChannel/DataChannelController.d.ts +1 -1
- package/dist/types/DataChannel/InitialSettings.d.ts +2 -0
- package/dist/types/Inputs/XRGamepadController.d.ts +0 -1
- package/dist/types/PixelStreaming/PixelStreaming.d.ts +1 -1
- package/dist/types/Util/EventEmitter.d.ts +0 -1
- package/dist/types/VideoPlayer/VideoPlayer.d.ts +1 -1
- package/dist/types/WebRtcPlayer/WebRtcPlayerController.d.ts +17 -0
- package/dist/types/WebXR/WebXRController.d.ts +0 -1
- package/dist/types/pixelstreamingfrontend.d.ts +1 -1
- package/package.json +8 -8
- package/src/Config/Config.ts +83 -4
- package/src/Config/SettingFlag.ts +3 -3
- package/src/Config/SettingNumber.ts +3 -3
- package/src/Config/SettingOption.ts +3 -3
- package/src/Config/SettingText.ts +4 -4
- package/src/DataChannel/DataChannelController.ts +2 -2
- package/src/DataChannel/InitialSettings.ts +2 -0
- package/src/Inputs/MouseControllerHovering.ts +2 -2
- package/src/Inputs/MouseControllerLocked.ts +2 -2
- package/src/PeerConnectionController/PeerConnectionController.ts +5 -5
- package/src/PixelStreaming/PixelStreaming.ts +94 -15
- package/src/UeInstanceMessage/SendMessageController.ts +1 -0
- package/src/Util/EventEmitter.ts +40 -40
- package/src/VideoPlayer/VideoPlayer.ts +1 -1
- package/src/WebRtcPlayer/WebRtcPlayerController.ts +120 -1
- package/src/WebXR/WebXRController.ts +1 -1
- package/src/__test__/mockRTCRtpReceiver.ts +1 -1
- package/src/__test__/mockWebSocket.ts +3 -3
- package/src/pixelstreamingfrontend.ts +6 -1
- package/tsconfig.esm.json +2 -1
- package/tsconfig.json +6 -2
package/src/Util/EventEmitter.ts
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
* Can be cancelled by calling the callback function provided as part of the event.
|
|
18
18
|
*/
|
|
19
19
|
export class AfkWarningActivateEvent extends Event {
|
|
20
|
-
readonly type: 'afkWarningActivate';
|
|
20
|
+
override readonly type: 'afkWarningActivate';
|
|
21
21
|
readonly data: {
|
|
22
22
|
/** How many seconds until the session is disconnected */
|
|
23
23
|
countDown: number;
|
|
@@ -34,7 +34,7 @@ export class AfkWarningActivateEvent extends Event {
|
|
|
34
34
|
* An event that is emitted when the AFK disconnect countdown is updated.
|
|
35
35
|
*/
|
|
36
36
|
export class AfkWarningUpdateEvent extends Event {
|
|
37
|
-
readonly type: 'afkWarningUpdate';
|
|
37
|
+
override readonly type: 'afkWarningUpdate';
|
|
38
38
|
readonly data: {
|
|
39
39
|
/** How many seconds until the session is disconnected */
|
|
40
40
|
countDown: number;
|
|
@@ -49,7 +49,7 @@ export class AfkWarningUpdateEvent extends Event {
|
|
|
49
49
|
* An event that is emitted when AFK warning is deactivated.
|
|
50
50
|
*/
|
|
51
51
|
export class AfkWarningDeactivateEvent extends Event {
|
|
52
|
-
readonly type: 'afkWarningDeactivate';
|
|
52
|
+
override readonly type: 'afkWarningDeactivate';
|
|
53
53
|
constructor() {
|
|
54
54
|
super('afkWarningDeactivate');
|
|
55
55
|
}
|
|
@@ -59,7 +59,7 @@ export class AfkWarningDeactivateEvent extends Event {
|
|
|
59
59
|
* An event that is emitted when AFK countdown reaches 0 and the user is disconnected.
|
|
60
60
|
*/
|
|
61
61
|
export class AfkTimedOutEvent extends Event {
|
|
62
|
-
readonly type: 'afkTimedOut';
|
|
62
|
+
override readonly type: 'afkTimedOut';
|
|
63
63
|
constructor() {
|
|
64
64
|
super('afkTimedOut');
|
|
65
65
|
}
|
|
@@ -69,7 +69,7 @@ export class AfkTimedOutEvent extends Event {
|
|
|
69
69
|
* An event that is emitted when we receive new video quality value.
|
|
70
70
|
*/
|
|
71
71
|
export class VideoEncoderAvgQPEvent extends Event {
|
|
72
|
-
readonly type: 'videoEncoderAvgQP';
|
|
72
|
+
override readonly type: 'videoEncoderAvgQP';
|
|
73
73
|
readonly data: {
|
|
74
74
|
/** Average video quality value */
|
|
75
75
|
avgQP: number;
|
|
@@ -84,7 +84,7 @@ export class VideoEncoderAvgQPEvent extends Event {
|
|
|
84
84
|
* An event that is emitted after a WebRtc connection has been negotiated.
|
|
85
85
|
*/
|
|
86
86
|
export class WebRtcSdpEvent extends Event {
|
|
87
|
-
readonly type: 'webRtcSdp';
|
|
87
|
+
override readonly type: 'webRtcSdp';
|
|
88
88
|
constructor() {
|
|
89
89
|
super('webRtcSdp');
|
|
90
90
|
}
|
|
@@ -94,7 +94,7 @@ export class WebRtcSdpEvent extends Event {
|
|
|
94
94
|
* An event that is emitted when auto connecting.
|
|
95
95
|
*/
|
|
96
96
|
export class WebRtcAutoConnectEvent extends Event {
|
|
97
|
-
readonly type: 'webRtcAutoConnect';
|
|
97
|
+
override readonly type: 'webRtcAutoConnect';
|
|
98
98
|
constructor() {
|
|
99
99
|
super('webRtcAutoConnect');
|
|
100
100
|
}
|
|
@@ -104,7 +104,7 @@ export class WebRtcAutoConnectEvent extends Event {
|
|
|
104
104
|
* An event that is emitted when sending a WebRtc offer.
|
|
105
105
|
*/
|
|
106
106
|
export class WebRtcConnectingEvent extends Event {
|
|
107
|
-
readonly type: 'webRtcConnecting';
|
|
107
|
+
override readonly type: 'webRtcConnecting';
|
|
108
108
|
constructor() {
|
|
109
109
|
super('webRtcConnecting');
|
|
110
110
|
}
|
|
@@ -114,7 +114,7 @@ export class WebRtcConnectingEvent extends Event {
|
|
|
114
114
|
* An event that is emitted when WebRtc connection has been established.
|
|
115
115
|
*/
|
|
116
116
|
export class WebRtcConnectedEvent extends Event {
|
|
117
|
-
readonly type: 'webRtcConnected';
|
|
117
|
+
override readonly type: 'webRtcConnected';
|
|
118
118
|
constructor() {
|
|
119
119
|
super('webRtcConnected');
|
|
120
120
|
}
|
|
@@ -124,7 +124,7 @@ export class WebRtcConnectedEvent extends Event {
|
|
|
124
124
|
* An event that is emitted if WebRtc connection has failed.
|
|
125
125
|
*/
|
|
126
126
|
export class WebRtcFailedEvent extends Event {
|
|
127
|
-
readonly type: 'webRtcFailed';
|
|
127
|
+
override readonly type: 'webRtcFailed';
|
|
128
128
|
constructor() {
|
|
129
129
|
super('webRtcFailed');
|
|
130
130
|
}
|
|
@@ -134,7 +134,7 @@ export class WebRtcFailedEvent extends Event {
|
|
|
134
134
|
* An event that is emitted if WebRtc connection is disconnected.
|
|
135
135
|
*/
|
|
136
136
|
export class WebRtcDisconnectedEvent extends Event {
|
|
137
|
-
readonly type: 'webRtcDisconnected';
|
|
137
|
+
override readonly type: 'webRtcDisconnected';
|
|
138
138
|
readonly data: {
|
|
139
139
|
/** Message describing the disconnect reason */
|
|
140
140
|
eventString: string;
|
|
@@ -151,7 +151,7 @@ export class WebRtcDisconnectedEvent extends Event {
|
|
|
151
151
|
* An event that is emitted when RTCDataChannel is opened.
|
|
152
152
|
*/
|
|
153
153
|
export class DataChannelOpenEvent extends Event {
|
|
154
|
-
readonly type: 'dataChannelOpen';
|
|
154
|
+
override readonly type: 'dataChannelOpen';
|
|
155
155
|
readonly data: {
|
|
156
156
|
/** Data channel label. One of 'datachannel', 'send-datachannel', 'recv-datachannel' */
|
|
157
157
|
label: string;
|
|
@@ -168,7 +168,7 @@ export class DataChannelOpenEvent extends Event {
|
|
|
168
168
|
* An event that is emitted when RTCDataChannel is closed.
|
|
169
169
|
*/
|
|
170
170
|
export class DataChannelCloseEvent extends Event {
|
|
171
|
-
readonly type: 'dataChannelClose';
|
|
171
|
+
override readonly type: 'dataChannelClose';
|
|
172
172
|
readonly data: {
|
|
173
173
|
/** Data channel label. One of 'datachannel', 'send-datachannel', 'recv-datachannel' */
|
|
174
174
|
label: string;
|
|
@@ -185,7 +185,7 @@ export class DataChannelCloseEvent extends Event {
|
|
|
185
185
|
* An event that is emitted on RTCDataChannel errors.
|
|
186
186
|
*/
|
|
187
187
|
export class DataChannelErrorEvent extends Event {
|
|
188
|
-
readonly type: 'dataChannelError';
|
|
188
|
+
override readonly type: 'dataChannelError';
|
|
189
189
|
readonly data: {
|
|
190
190
|
/** Data channel label. One of 'datachannel', 'send-datachannel', 'recv-datachannel' */
|
|
191
191
|
label: string;
|
|
@@ -202,7 +202,7 @@ export class DataChannelErrorEvent extends Event {
|
|
|
202
202
|
* An event that is emitted when the video stream has been initialized.
|
|
203
203
|
*/
|
|
204
204
|
export class VideoInitializedEvent extends Event {
|
|
205
|
-
readonly type: 'videoInitialized';
|
|
205
|
+
override readonly type: 'videoInitialized';
|
|
206
206
|
constructor() {
|
|
207
207
|
super('videoInitialized');
|
|
208
208
|
}
|
|
@@ -212,7 +212,7 @@ export class VideoInitializedEvent extends Event {
|
|
|
212
212
|
* An event that is emitted when video stream loading starts.
|
|
213
213
|
*/
|
|
214
214
|
export class StreamLoadingEvent extends Event {
|
|
215
|
-
readonly type: 'streamLoading';
|
|
215
|
+
override readonly type: 'streamLoading';
|
|
216
216
|
constructor() {
|
|
217
217
|
super('streamLoading');
|
|
218
218
|
}
|
|
@@ -222,7 +222,7 @@ export class StreamLoadingEvent extends Event {
|
|
|
222
222
|
* An event that is emitted when video stream loading has finished.
|
|
223
223
|
*/
|
|
224
224
|
export class StreamPreConnectEvent extends Event {
|
|
225
|
-
readonly type: 'streamConnect';
|
|
225
|
+
override readonly type: 'streamConnect';
|
|
226
226
|
constructor() {
|
|
227
227
|
super('streamConnect');
|
|
228
228
|
}
|
|
@@ -232,7 +232,7 @@ export class StreamPreConnectEvent extends Event {
|
|
|
232
232
|
* An event that is emitted when video stream has stopped.
|
|
233
233
|
*/
|
|
234
234
|
export class StreamPreDisconnectEvent extends Event {
|
|
235
|
-
readonly type: 'streamDisconnect';
|
|
235
|
+
override readonly type: 'streamDisconnect';
|
|
236
236
|
constructor() {
|
|
237
237
|
super('streamDisconnect');
|
|
238
238
|
}
|
|
@@ -242,7 +242,7 @@ export class StreamPreDisconnectEvent extends Event {
|
|
|
242
242
|
* An event that is emitted when video stream is reconnecting.
|
|
243
243
|
*/
|
|
244
244
|
export class StreamReconnectEvent extends Event {
|
|
245
|
-
readonly type: 'streamReconnect';
|
|
245
|
+
override readonly type: 'streamReconnect';
|
|
246
246
|
constructor() {
|
|
247
247
|
super('streamReconnect');
|
|
248
248
|
}
|
|
@@ -252,7 +252,7 @@ export class StreamReconnectEvent extends Event {
|
|
|
252
252
|
* An event that is emitted if there are errors loading the video stream.
|
|
253
253
|
*/
|
|
254
254
|
export class PlayStreamErrorEvent extends Event {
|
|
255
|
-
readonly type: 'playStreamError';
|
|
255
|
+
override readonly type: 'playStreamError';
|
|
256
256
|
readonly data: {
|
|
257
257
|
/** Error message */
|
|
258
258
|
message: string;
|
|
@@ -267,7 +267,7 @@ export class PlayStreamErrorEvent extends Event {
|
|
|
267
267
|
* An event that is emitted before trying to start video playback.
|
|
268
268
|
*/
|
|
269
269
|
export class PlayStreamEvent extends Event {
|
|
270
|
-
readonly type: 'playStream';
|
|
270
|
+
override readonly type: 'playStream';
|
|
271
271
|
constructor() {
|
|
272
272
|
super('playStream');
|
|
273
273
|
}
|
|
@@ -278,7 +278,7 @@ export class PlayStreamEvent extends Event {
|
|
|
278
278
|
* video auto-play without user interaction is refused by the browser.
|
|
279
279
|
*/
|
|
280
280
|
export class PlayStreamRejectedEvent extends Event {
|
|
281
|
-
readonly type: 'playStreamRejected';
|
|
281
|
+
override readonly type: 'playStreamRejected';
|
|
282
282
|
readonly data: {
|
|
283
283
|
/** Rejection reason */
|
|
284
284
|
reason: unknown;
|
|
@@ -293,7 +293,7 @@ export class PlayStreamRejectedEvent extends Event {
|
|
|
293
293
|
* An event that is emitted when receiving a full FreezeFrame image from UE.
|
|
294
294
|
*/
|
|
295
295
|
export class LoadFreezeFrameEvent extends Event {
|
|
296
|
-
readonly type: 'loadFreezeFrame';
|
|
296
|
+
override readonly type: 'loadFreezeFrame';
|
|
297
297
|
readonly data: {
|
|
298
298
|
/** true if should show click-to-play overlay, not the freeze frame contents */
|
|
299
299
|
shouldShowPlayOverlay: boolean;
|
|
@@ -312,7 +312,7 @@ export class LoadFreezeFrameEvent extends Event {
|
|
|
312
312
|
* An event that is emitted when receiving UnfreezeFrame message from UE and video playback is about to be resumed.
|
|
313
313
|
*/
|
|
314
314
|
export class HideFreezeFrameEvent extends Event {
|
|
315
|
-
readonly type: 'hideFreezeFrame';
|
|
315
|
+
override readonly type: 'hideFreezeFrame';
|
|
316
316
|
constructor() {
|
|
317
317
|
super('hideFreezeFrame');
|
|
318
318
|
}
|
|
@@ -322,7 +322,7 @@ export class HideFreezeFrameEvent extends Event {
|
|
|
322
322
|
* An event that is emitted when receiving WebRTC statistics.
|
|
323
323
|
*/
|
|
324
324
|
export class StatsReceivedEvent extends Event {
|
|
325
|
-
readonly type: 'statsReceived';
|
|
325
|
+
override readonly type: 'statsReceived';
|
|
326
326
|
readonly data: {
|
|
327
327
|
/** Statistics object */
|
|
328
328
|
aggregatedStats: AggregatedStats;
|
|
@@ -337,7 +337,7 @@ export class StatsReceivedEvent extends Event {
|
|
|
337
337
|
* An event that is emitted when streamer list changes.
|
|
338
338
|
*/
|
|
339
339
|
export class StreamerListMessageEvent extends Event {
|
|
340
|
-
readonly type: 'streamerListMessage';
|
|
340
|
+
override readonly type: 'streamerListMessage';
|
|
341
341
|
readonly data: {
|
|
342
342
|
/** Streamer list message containing an array of streamer ids */
|
|
343
343
|
messageStreamerList: Messages.streamerList;
|
|
@@ -356,7 +356,7 @@ export class StreamerListMessageEvent extends Event {
|
|
|
356
356
|
* An event that is emitted when a subscribed to streamer's id changes.
|
|
357
357
|
*/
|
|
358
358
|
export class StreamerIDChangedMessageEvent extends Event {
|
|
359
|
-
readonly type: 'streamerIDChangedMessage';
|
|
359
|
+
override readonly type: 'streamerIDChangedMessage';
|
|
360
360
|
readonly data: {
|
|
361
361
|
/** The new ID of the streamer. */
|
|
362
362
|
newID: string;
|
|
@@ -371,7 +371,7 @@ export class StreamerIDChangedMessageEvent extends Event {
|
|
|
371
371
|
* An event that is emitted when receiving latency test results.
|
|
372
372
|
*/
|
|
373
373
|
export class LatencyTestResultEvent extends Event {
|
|
374
|
-
readonly type: 'latencyTestResult';
|
|
374
|
+
override readonly type: 'latencyTestResult';
|
|
375
375
|
readonly data: {
|
|
376
376
|
/** Latency test result object */
|
|
377
377
|
latencyTimings: LatencyTestResults;
|
|
@@ -387,7 +387,7 @@ export class LatencyTestResultEvent extends Event {
|
|
|
387
387
|
* This event is handled by DataChannelLatencyTestController
|
|
388
388
|
*/
|
|
389
389
|
export class DataChannelLatencyTestResponseEvent extends Event {
|
|
390
|
-
readonly type: 'dataChannelLatencyTestResponse';
|
|
390
|
+
override readonly type: 'dataChannelLatencyTestResponse';
|
|
391
391
|
readonly data: {
|
|
392
392
|
/** Latency test result object */
|
|
393
393
|
response: DataChannelLatencyTestResponse;
|
|
@@ -402,7 +402,7 @@ export class DataChannelLatencyTestResponseEvent extends Event {
|
|
|
402
402
|
* An event that is emitted when data channel latency test results are ready.
|
|
403
403
|
*/
|
|
404
404
|
export class DataChannelLatencyTestResultEvent extends Event {
|
|
405
|
-
readonly type: 'dataChannelLatencyTestResult';
|
|
405
|
+
override readonly type: 'dataChannelLatencyTestResult';
|
|
406
406
|
readonly data: {
|
|
407
407
|
/** Latency test result object */
|
|
408
408
|
result: DataChannelLatencyTestResult;
|
|
@@ -417,7 +417,7 @@ export class DataChannelLatencyTestResultEvent extends Event {
|
|
|
417
417
|
* An event that is emitted when receiving initial settings from UE.
|
|
418
418
|
*/
|
|
419
419
|
export class InitialSettingsEvent extends Event {
|
|
420
|
-
readonly type: 'initialSettings';
|
|
420
|
+
override readonly type: 'initialSettings';
|
|
421
421
|
readonly data: {
|
|
422
422
|
/** Initial settings from UE */
|
|
423
423
|
settings: InitialSettings;
|
|
@@ -470,7 +470,7 @@ export type SettingsData =
|
|
|
470
470
|
* An event that is emitted when PixelStreaming settings change.
|
|
471
471
|
*/
|
|
472
472
|
export class SettingsChangedEvent extends Event {
|
|
473
|
-
readonly type: 'settingsChanged';
|
|
473
|
+
override readonly type: 'settingsChanged';
|
|
474
474
|
readonly data: SettingsData;
|
|
475
475
|
constructor(data: SettingsChangedEvent['data']) {
|
|
476
476
|
super('settingsChanged');
|
|
@@ -482,7 +482,7 @@ export class SettingsChangedEvent extends Event {
|
|
|
482
482
|
* Event emitted when an XR Session starts
|
|
483
483
|
*/
|
|
484
484
|
export class XrSessionStartedEvent extends Event {
|
|
485
|
-
readonly type: 'xrSessionStarted';
|
|
485
|
+
override readonly type: 'xrSessionStarted';
|
|
486
486
|
constructor() {
|
|
487
487
|
super('xrSessionStarted');
|
|
488
488
|
}
|
|
@@ -492,7 +492,7 @@ export class XrSessionStartedEvent extends Event {
|
|
|
492
492
|
* Event emitted when an XR Session ends
|
|
493
493
|
*/
|
|
494
494
|
export class XrSessionEndedEvent extends Event {
|
|
495
|
-
readonly type: 'xrSessionEnded';
|
|
495
|
+
override readonly type: 'xrSessionEnded';
|
|
496
496
|
constructor() {
|
|
497
497
|
super('xrSessionEnded');
|
|
498
498
|
}
|
|
@@ -509,7 +509,7 @@ export type XrFrameData = {
|
|
|
509
509
|
* Event emitted when an XR Frame is complete
|
|
510
510
|
*/
|
|
511
511
|
export class XrFrameEvent extends Event {
|
|
512
|
-
readonly type: 'xrFrame';
|
|
512
|
+
override readonly type: 'xrFrame';
|
|
513
513
|
readonly data: XrFrameData;
|
|
514
514
|
constructor(data: XrFrameEvent['data']) {
|
|
515
515
|
super('xrFrame');
|
|
@@ -521,7 +521,7 @@ export class XrFrameEvent extends Event {
|
|
|
521
521
|
* An event that is emitted when receiving a player count from the signalling server
|
|
522
522
|
*/
|
|
523
523
|
export class PlayerCountEvent extends Event {
|
|
524
|
-
readonly type: 'playerCount';
|
|
524
|
+
override readonly type: 'playerCount';
|
|
525
525
|
readonly data: {
|
|
526
526
|
/** count object */
|
|
527
527
|
count: number;
|
|
@@ -536,7 +536,7 @@ export class PlayerCountEvent extends Event {
|
|
|
536
536
|
* An event that is emitted when the webRTC connections is relayed over TCP.
|
|
537
537
|
*/
|
|
538
538
|
export class WebRtcTCPRelayDetectedEvent extends Event {
|
|
539
|
-
readonly type: 'webRtcTCPRelayDetected';
|
|
539
|
+
override readonly type: 'webRtcTCPRelayDetected';
|
|
540
540
|
constructor() {
|
|
541
541
|
super('webRtcTCPRelayDetected');
|
|
542
542
|
}
|
|
@@ -587,7 +587,7 @@ export class PixelStreamingEventEmitter extends EventTarget {
|
|
|
587
587
|
* @param e event
|
|
588
588
|
* @returns
|
|
589
589
|
*/
|
|
590
|
-
public dispatchEvent(e: PixelStreamingEvent): boolean {
|
|
590
|
+
public override dispatchEvent(e: PixelStreamingEvent): boolean {
|
|
591
591
|
return super.dispatchEvent(e);
|
|
592
592
|
}
|
|
593
593
|
|
|
@@ -596,7 +596,7 @@ export class PixelStreamingEventEmitter extends EventTarget {
|
|
|
596
596
|
* @param type event name
|
|
597
597
|
* @param listener event handler function
|
|
598
598
|
*/
|
|
599
|
-
public addEventListener<
|
|
599
|
+
public override addEventListener<
|
|
600
600
|
T extends PixelStreamingEvent['type'],
|
|
601
601
|
E extends PixelStreamingEvent & { type: T }
|
|
602
602
|
>(type: T, listener: (e: Event & E) => void) {
|
|
@@ -608,7 +608,7 @@ export class PixelStreamingEventEmitter extends EventTarget {
|
|
|
608
608
|
* @param type event name
|
|
609
609
|
* @param listener event handler function
|
|
610
610
|
*/
|
|
611
|
-
public removeEventListener<
|
|
611
|
+
public override removeEventListener<
|
|
612
612
|
T extends PixelStreamingEvent['type'],
|
|
613
613
|
E extends PixelStreamingEvent & { type: T }
|
|
614
614
|
>(type: T, listener: (e: Event & E) => void) {
|
|
@@ -88,6 +88,7 @@ export class WebRtcPlayerController {
|
|
|
88
88
|
gamePadController: GamepadController;
|
|
89
89
|
coordinateConverter: InputCoordTranslator;
|
|
90
90
|
isUsingSFU: boolean;
|
|
91
|
+
isUsingSVC: boolean;
|
|
91
92
|
isQualityController: boolean;
|
|
92
93
|
statsTimerHandle: number;
|
|
93
94
|
file: FileTemplate;
|
|
@@ -265,6 +266,7 @@ export class WebRtcPlayerController {
|
|
|
265
266
|
);
|
|
266
267
|
|
|
267
268
|
this.isUsingSFU = false;
|
|
269
|
+
this.isUsingSVC = false;
|
|
268
270
|
this.isQualityController = false;
|
|
269
271
|
this.preferredCodec = '';
|
|
270
272
|
this.enableAutoReconnect = true;
|
|
@@ -285,6 +287,35 @@ export class WebRtcPlayerController {
|
|
|
285
287
|
this.protocol.sendMessage(message);
|
|
286
288
|
});
|
|
287
289
|
|
|
290
|
+
this.config._addOnOptionSettingChangedListener(
|
|
291
|
+
OptionParameters.PreferredQuality,
|
|
292
|
+
(preferredQuality) => {
|
|
293
|
+
if (preferredQuality === undefined || preferredQuality === '') {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
let message;
|
|
298
|
+
if (this.isUsingSVC) {
|
|
299
|
+
// User is using SVC so selected quality will be of the form SxTy(h). Just extract the x and y numbers
|
|
300
|
+
message = MessageHelpers.createMessage(Messages.layerPreference, {
|
|
301
|
+
spatialLayer: +preferredQuality[1] - 1,
|
|
302
|
+
temporalLayer: +preferredQuality[3] - 1
|
|
303
|
+
});
|
|
304
|
+
} else {
|
|
305
|
+
// User is not using SVC so the selected quality will be either Low, Medium or High so we extract the appropriate spatial layer index
|
|
306
|
+
const allQualities = this.config.getSettingOption(
|
|
307
|
+
OptionParameters.PreferredQuality
|
|
308
|
+
).options;
|
|
309
|
+
const qualityIndex = allQualities.indexOf(preferredQuality);
|
|
310
|
+
message = MessageHelpers.createMessage(Messages.layerPreference, {
|
|
311
|
+
spatialLayer: qualityIndex,
|
|
312
|
+
temporalLayer: 0
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
this.protocol.sendMessage(message);
|
|
316
|
+
}
|
|
317
|
+
);
|
|
318
|
+
|
|
288
319
|
this.setVideoEncoderAvgQP(-1);
|
|
289
320
|
|
|
290
321
|
this.signallingUrlBuilder = () => {
|
|
@@ -400,6 +431,13 @@ export class WebRtcPlayerController {
|
|
|
400
431
|
'GamepadResponse',
|
|
401
432
|
(data: ArrayBuffer) => this.onGamepadResponse(data)
|
|
402
433
|
);
|
|
434
|
+
this.streamMessageController.registerMessageHandler(
|
|
435
|
+
MessageDirection.FromStreamer,
|
|
436
|
+
'Multiplexed',
|
|
437
|
+
() => {
|
|
438
|
+
/* Do nothing as this message type is used only by the SFU */
|
|
439
|
+
}
|
|
440
|
+
);
|
|
403
441
|
this.streamMessageController.registerMessageHandler(
|
|
404
442
|
MessageDirection.FromStreamer,
|
|
405
443
|
'Protocol',
|
|
@@ -627,6 +665,20 @@ export class WebRtcPlayerController {
|
|
|
627
665
|
(data: Array<number | string>) =>
|
|
628
666
|
this.sendMessageController.sendMessageToStreamer('XRAnalog', data)
|
|
629
667
|
);
|
|
668
|
+
this.streamMessageController.registerMessageHandler(
|
|
669
|
+
MessageDirection.ToStreamer,
|
|
670
|
+
'ChannelRelayStatus',
|
|
671
|
+
() => {
|
|
672
|
+
/* Do nothing as this message type is used only by the SFU */
|
|
673
|
+
}
|
|
674
|
+
);
|
|
675
|
+
this.streamMessageController.registerMessageHandler(
|
|
676
|
+
MessageDirection.ToStreamer,
|
|
677
|
+
'Multiplexed',
|
|
678
|
+
() => {
|
|
679
|
+
/* Do nothing as this message type is used only by the SFU */
|
|
680
|
+
}
|
|
681
|
+
);
|
|
630
682
|
}
|
|
631
683
|
|
|
632
684
|
/**
|
|
@@ -1230,11 +1282,40 @@ export class WebRtcPlayerController {
|
|
|
1230
1282
|
Logger.Info(`Got offer sdp ${Offer.sdp}`);
|
|
1231
1283
|
|
|
1232
1284
|
this.isUsingSFU = Offer.sfu ? Offer.sfu : false;
|
|
1233
|
-
|
|
1285
|
+
this.isUsingSVC = Offer.scalabilityMode ? Offer.scalabilityMode != 'L1T1' : false;
|
|
1286
|
+
if (this.isUsingSFU || this.isUsingSVC) {
|
|
1234
1287
|
// Disable negotiating with the sfu as the sfu only supports one codec at a time
|
|
1235
1288
|
this.peerConnectionController.preferredCodec = '';
|
|
1236
1289
|
}
|
|
1237
1290
|
|
|
1291
|
+
// NOTE: These two settings configurations are done outside of an if(this.isUsingSFU) so that users
|
|
1292
|
+
// can switch between a default and SFU stream and have the settings reconfigure appropriately
|
|
1293
|
+
|
|
1294
|
+
const scalabilityMode = Offer.scalabilityMode ? Offer.scalabilityMode : 'L1T1';
|
|
1295
|
+
let availableQualities = ['Default'];
|
|
1296
|
+
if (this.isUsingSFU) {
|
|
1297
|
+
if (!this.isUsingSVC) {
|
|
1298
|
+
// User is using an SFU without any temporal scalability. Just offer easily readable names
|
|
1299
|
+
availableQualities = ['Low', 'Medium', 'High'];
|
|
1300
|
+
} else {
|
|
1301
|
+
// User is using SVC. Generate all available options.
|
|
1302
|
+
availableQualities = [];
|
|
1303
|
+
const maxSpatialLayers = +scalabilityMode[1];
|
|
1304
|
+
const maxTemporalLayers = +scalabilityMode[3];
|
|
1305
|
+
for (let s = 1; s <= maxSpatialLayers; s++) {
|
|
1306
|
+
for (let t = 1; t <= maxTemporalLayers; t++) {
|
|
1307
|
+
availableQualities.push(`S${s}T${t}`);
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
}
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
// Update the possible video quality options
|
|
1314
|
+
this.config.setOptionSettingOptions(OptionParameters.PreferredQuality, availableQualities);
|
|
1315
|
+
|
|
1316
|
+
// Update the selected video quality with the highest possible resolution
|
|
1317
|
+
this.config.setOptionSettingValue(OptionParameters.PreferredQuality, availableQualities.slice(-1)[0]);
|
|
1318
|
+
|
|
1238
1319
|
const sdpOffer: RTCSessionDescriptionInit = {
|
|
1239
1320
|
sdp: Offer.sdp,
|
|
1240
1321
|
type: 'offer'
|
|
@@ -1487,6 +1568,44 @@ export class WebRtcPlayerController {
|
|
|
1487
1568
|
}
|
|
1488
1569
|
}
|
|
1489
1570
|
|
|
1571
|
+
/**
|
|
1572
|
+
* Send the MinQuality encoder setting to the UE Instance.
|
|
1573
|
+
* @param minQuality - The lower bound for quality when encoding
|
|
1574
|
+
* valid values are (0-100) where:
|
|
1575
|
+
* 0 = Worst quality.
|
|
1576
|
+
* 100 = Best quality.
|
|
1577
|
+
*/
|
|
1578
|
+
sendEncoderMinQuality(minQuality: number) {
|
|
1579
|
+
Logger.Info(`MinQuality=${minQuality}\n`);
|
|
1580
|
+
|
|
1581
|
+
if (minQuality != null) {
|
|
1582
|
+
this.streamMessageController.toStreamerHandlers.get('Command')([
|
|
1583
|
+
JSON.stringify({
|
|
1584
|
+
'Encoder.MinQuality': minQuality
|
|
1585
|
+
})
|
|
1586
|
+
]);
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
|
|
1590
|
+
/**
|
|
1591
|
+
* Send the MaxQuality encoder setting to the UE Instance.
|
|
1592
|
+
* @param maxQuality - The upper bound for quality when encoding
|
|
1593
|
+
* valid values are (0-100) where:
|
|
1594
|
+
* 0 = Worst quality.
|
|
1595
|
+
* 100 = Best quality.
|
|
1596
|
+
*/
|
|
1597
|
+
sendEncoderMaxQuality(maxQuality: number) {
|
|
1598
|
+
Logger.Info(`MaxQuality=${maxQuality}\n`);
|
|
1599
|
+
|
|
1600
|
+
if (maxQuality != null) {
|
|
1601
|
+
this.streamMessageController.toStreamerHandlers.get('Command')([
|
|
1602
|
+
JSON.stringify({
|
|
1603
|
+
'Encoder.MaxQuality': maxQuality
|
|
1604
|
+
})
|
|
1605
|
+
]);
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1490
1609
|
/**
|
|
1491
1610
|
* Send the { WebRTC.MinBitrate: SomeNumber }} command to UE to set
|
|
1492
1611
|
* the minimum bitrate that we allow WebRTC to use
|
|
@@ -4,7 +4,7 @@ import { Logger } from '@epicgames-ps/lib-pixelstreamingcommon-ue5.5';
|
|
|
4
4
|
import { WebRtcPlayerController } from '../WebRtcPlayer/WebRtcPlayerController';
|
|
5
5
|
import { XRGamepadController } from '../Inputs/XRGamepadController';
|
|
6
6
|
import { XrFrameEvent } from '../Util/EventEmitter';
|
|
7
|
-
import { Flags } from '../
|
|
7
|
+
import { Flags } from '../Config/Config';
|
|
8
8
|
|
|
9
9
|
export class WebXRController {
|
|
10
10
|
private xrSession: XRSession;
|
|
@@ -53,17 +53,17 @@ export class MockWebSocketImpl extends WebSocket {
|
|
|
53
53
|
triggerFunctions.triggerRemoteClose = this.triggerRemoteClose.bind(this);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
get readyState() {
|
|
56
|
+
override get readyState() {
|
|
57
57
|
return this._readyState;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
close(code?: number | undefined, reason?: string | undefined): void {
|
|
60
|
+
override close(code?: number | undefined, reason?: string | undefined): void {
|
|
61
61
|
super.close(code, reason);
|
|
62
62
|
this._readyState = this.CLOSED;
|
|
63
63
|
this.triggerOnClose({ code, reason });
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
send(data: string | Blob | ArrayBufferView | ArrayBufferLike): void {
|
|
66
|
+
override send(data: string | Blob | ArrayBufferView | ArrayBufferLike): void {
|
|
67
67
|
spyFunctions.sendSpy?.(data);
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -13,7 +13,12 @@ export {
|
|
|
13
13
|
NumericParametersIds,
|
|
14
14
|
TextParametersIds,
|
|
15
15
|
OptionParametersIds,
|
|
16
|
-
AllSettings
|
|
16
|
+
AllSettings,
|
|
17
|
+
OptionIds,
|
|
18
|
+
isFlagId,
|
|
19
|
+
isNumericId,
|
|
20
|
+
isOptionId,
|
|
21
|
+
isTextId
|
|
17
22
|
} from './Config/Config';
|
|
18
23
|
export { SettingBase } from './Config/SettingBase';
|
|
19
24
|
export { SettingFlag } from './Config/SettingFlag';
|
package/tsconfig.esm.json
CHANGED
package/tsconfig.json
CHANGED
|
@@ -4,9 +4,13 @@
|
|
|
4
4
|
"noImplicitAny": true,
|
|
5
5
|
"esModuleInterop": true,
|
|
6
6
|
"target": "ES6",
|
|
7
|
-
"moduleResolution": "nodenext",
|
|
8
7
|
"sourceMap": true,
|
|
9
|
-
"allowJs": true
|
|
8
|
+
"allowJs": true,
|
|
9
|
+
"forceConsistentCasingInFileNames": true,
|
|
10
|
+
"noImplicitOverride": true,
|
|
11
|
+
"noFallthroughCasesInSwitch": true,
|
|
12
|
+
"noImplicitReturns": true,
|
|
13
|
+
"noPropertyAccessFromIndexSignature": true
|
|
10
14
|
},
|
|
11
15
|
"lib": ["ES6"],
|
|
12
16
|
"include": ["./src/*.ts"],
|