twilio-video 2.34.0 → 2.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release.json +1 -2
- package/CHANGELOG.md +11 -0
- package/README.md +9 -10
- package/dist/twilio-video.js +29836 -32994
- package/dist/twilio-video.min.js +2 -23
- package/es5/cancelableroompromise.js +4 -4
- package/es5/cancelableroompromise.js.map +1 -1
- package/es5/connect.js +86 -90
- package/es5/connect.js.map +1 -1
- package/es5/createlocaltrack.js +7 -7
- package/es5/createlocaltrack.js.map +1 -1
- package/es5/createlocaltracks.js +111 -195
- package/es5/createlocaltracks.js.map +1 -1
- package/es5/data/receiver.js +16 -34
- package/es5/data/receiver.js.map +1 -1
- package/es5/data/sender.js +28 -47
- package/es5/data/sender.js.map +1 -1
- package/es5/data/transceiver.js +6 -24
- package/es5/data/transceiver.js.map +1 -1
- package/es5/data/transport.js +18 -37
- package/es5/data/transport.js.map +1 -1
- package/es5/encodingparameters.js +14 -33
- package/es5/encodingparameters.js.map +1 -1
- package/es5/eventemitter.js +2 -2
- package/es5/eventemitter.js.map +1 -1
- package/es5/eventtarget.js +12 -40
- package/es5/eventtarget.js.map +1 -1
- package/es5/index.js +21 -32
- package/es5/index.js.map +1 -1
- package/es5/insights/applicationmonitor.js +16 -18
- package/es5/insights/applicationmonitor.js.map +1 -1
- package/es5/insights/computepressuremonitor.js +33 -79
- package/es5/insights/computepressuremonitor.js.map +1 -1
- package/es5/insights/events/application.js +9 -10
- package/es5/insights/events/application.js.map +1 -1
- package/es5/insights/events/getusermedia.js +9 -10
- package/es5/insights/events/getusermedia.js.map +1 -1
- package/es5/insights/events/network.js +14 -16
- package/es5/insights/events/network.js.map +1 -1
- package/es5/insights/events/peerconnection.js +31 -44
- package/es5/insights/events/peerconnection.js.map +1 -1
- package/es5/insights/events/quality.js +13 -14
- package/es5/insights/events/quality.js.map +1 -1
- package/es5/insights/events/room.js +12 -13
- package/es5/insights/events/room.js.map +1 -1
- package/es5/insights/events/system.js +6 -7
- package/es5/insights/events/system.js.map +1 -1
- package/es5/insights/events/track.js +15 -18
- package/es5/insights/events/track.js.map +1 -1
- package/es5/insights/monitorregistry.js +10 -12
- package/es5/insights/monitorregistry.js.map +1 -1
- package/es5/insights/networkmonitor.js +17 -18
- package/es5/insights/networkmonitor.js.map +1 -1
- package/es5/insights/resourcemonitor.js +15 -17
- package/es5/insights/resourcemonitor.js.map +1 -1
- package/es5/insights/statsmonitor.js +100 -172
- package/es5/insights/statsmonitor.js.map +1 -1
- package/es5/insights/telemetry.js +40 -47
- package/es5/insights/telemetry.js.map +1 -1
- package/es5/localparticipant.js +122 -148
- package/es5/localparticipant.js.map +1 -1
- package/es5/media/track/audiotrack.js +11 -28
- package/es5/media/track/audiotrack.js.map +1 -1
- package/es5/media/track/capturevideoframes.js +21 -37
- package/es5/media/track/capturevideoframes.js.map +1 -1
- package/es5/media/track/es5/localaudiotrack.js +3 -3
- package/es5/media/track/es5/localaudiotrack.js.map +1 -1
- package/es5/media/track/es5/localdatatrack.js +3 -3
- package/es5/media/track/es5/localdatatrack.js.map +1 -1
- package/es5/media/track/es5/localvideotrack.js +3 -3
- package/es5/media/track/es5/localvideotrack.js.map +1 -1
- package/es5/media/track/index.js +17 -36
- package/es5/media/track/index.js.map +1 -1
- package/es5/media/track/localaudiotrack.js +80 -105
- package/es5/media/track/localaudiotrack.js.map +1 -1
- package/es5/media/track/localaudiotrackpublication.js +8 -25
- package/es5/media/track/localaudiotrackpublication.js.map +1 -1
- package/es5/media/track/localdatatrack.js +11 -30
- package/es5/media/track/localdatatrack.js.map +1 -1
- package/es5/media/track/localdatatrackpublication.js +8 -25
- package/es5/media/track/localdatatrackpublication.js.map +1 -1
- package/es5/media/track/localmediatrack.js +104 -129
- package/es5/media/track/localmediatrack.js.map +1 -1
- package/es5/media/track/localtrackpublication.js +24 -82
- package/es5/media/track/localtrackpublication.js.map +1 -1
- package/es5/media/track/localvideotrack.js +87 -112
- package/es5/media/track/localvideotrack.js.map +1 -1
- package/es5/media/track/localvideotrackpublication.js +8 -25
- package/es5/media/track/localvideotrackpublication.js.map +1 -1
- package/es5/media/track/mediatrack.js +71 -95
- package/es5/media/track/mediatrack.js.map +1 -1
- package/es5/media/track/noisecancellationimpl.js +63 -129
- package/es5/media/track/noisecancellationimpl.js.map +1 -1
- package/es5/media/track/receiver.js +5 -22
- package/es5/media/track/receiver.js.map +1 -1
- package/es5/media/track/remoteaudiotrack.js +16 -33
- package/es5/media/track/remoteaudiotrack.js.map +1 -1
- package/es5/media/track/remoteaudiotrackpublication.js +8 -25
- package/es5/media/track/remoteaudiotrackpublication.js.map +1 -1
- package/es5/media/track/remotedatatrack.js +18 -61
- package/es5/media/track/remotedatatrack.js.map +1 -1
- package/es5/media/track/remotedatatrackpublication.js +8 -25
- package/es5/media/track/remotedatatrackpublication.js.map +1 -1
- package/es5/media/track/remotemediatrack.js +36 -80
- package/es5/media/track/remotemediatrack.js.map +1 -1
- package/es5/media/track/remotetrackpublication.js +30 -48
- package/es5/media/track/remotetrackpublication.js.map +1 -1
- package/es5/media/track/remotevideotrack.js +94 -133
- package/es5/media/track/remotevideotrack.js.map +1 -1
- package/es5/media/track/remotevideotrackpublication.js +8 -25
- package/es5/media/track/remotevideotrackpublication.js.map +1 -1
- package/es5/media/track/sender.js +46 -83
- package/es5/media/track/sender.js.map +1 -1
- package/es5/media/track/trackpublication.js +17 -35
- package/es5/media/track/trackpublication.js.map +1 -1
- package/es5/media/track/transceiver.js +12 -30
- package/es5/media/track/transceiver.js.map +1 -1
- package/es5/media/track/videoprocessoreventobserver.js +47 -65
- package/es5/media/track/videoprocessoreventobserver.js.map +1 -1
- package/es5/media/track/videotrack.js +103 -124
- package/es5/media/track/videotrack.js.map +1 -1
- package/es5/networkqualityconfiguration.js +12 -48
- package/es5/networkqualityconfiguration.js.map +1 -1
- package/es5/noisecancellationadapter.js +72 -120
- package/es5/noisecancellationadapter.js.map +1 -1
- package/es5/participant.js +126 -179
- package/es5/participant.js.map +1 -1
- package/es5/preflight/getCombinedConnectionStats.js +44 -95
- package/es5/preflight/getCombinedConnectionStats.js.map +1 -1
- package/es5/preflight/getturncredentials.js +13 -13
- package/es5/preflight/getturncredentials.js.map +1 -1
- package/es5/preflight/makestat.js +4 -29
- package/es5/preflight/makestat.js.map +1 -1
- package/es5/preflight/mos.js +5 -5
- package/es5/preflight/mos.js.map +1 -1
- package/es5/preflight/preflighttest.js +240 -381
- package/es5/preflight/preflighttest.js.map +1 -1
- package/es5/preflight/syntheticaudio.js +8 -8
- package/es5/preflight/syntheticaudio.js.map +1 -1
- package/es5/preflight/syntheticvideo.js +13 -14
- package/es5/preflight/syntheticvideo.js.map +1 -1
- package/es5/preflight/timer.js +9 -10
- package/es5/preflight/timer.js.map +1 -1
- package/es5/queueingeventemitter.js +16 -60
- package/es5/queueingeventemitter.js.map +1 -1
- package/es5/remoteparticipant.js +33 -76
- package/es5/remoteparticipant.js.map +1 -1
- package/es5/room.js +89 -169
- package/es5/room.js.map +1 -1
- package/es5/signaling/index.js +36 -55
- package/es5/signaling/index.js.map +1 -1
- package/es5/signaling/localparticipant.js +18 -37
- package/es5/signaling/localparticipant.js.map +1 -1
- package/es5/signaling/localtrackpublication.js +28 -51
- package/es5/signaling/localtrackpublication.js.map +1 -1
- package/es5/signaling/participant.js +37 -63
- package/es5/signaling/participant.js.map +1 -1
- package/es5/signaling/recording.js +11 -29
- package/es5/signaling/recording.js.map +1 -1
- package/es5/signaling/remoteparticipant.js +6 -24
- package/es5/signaling/remoteparticipant.js.map +1 -1
- package/es5/signaling/remotetrackpublication.js +27 -53
- package/es5/signaling/remotetrackpublication.js.map +1 -1
- package/es5/signaling/room.js +40 -59
- package/es5/signaling/room.js.map +1 -1
- package/es5/signaling/track.js +52 -90
- package/es5/signaling/track.js.map +1 -1
- package/es5/signaling/v2/cancelableroomsignalingpromise.js +46 -46
- package/es5/signaling/v2/cancelableroomsignalingpromise.js.map +1 -1
- package/es5/signaling/v2/dominantspeakersignaling.js +18 -40
- package/es5/signaling/v2/dominantspeakersignaling.js.map +1 -1
- package/es5/signaling/v2/icebox.js +12 -13
- package/es5/signaling/v2/icebox.js.map +1 -1
- package/es5/signaling/v2/iceconnectionmonitor.js +28 -32
- package/es5/signaling/v2/iceconnectionmonitor.js.map +1 -1
- package/es5/signaling/v2/index.js +12 -31
- package/es5/signaling/v2/index.js.map +1 -1
- package/es5/signaling/v2/localparticipant.js +65 -85
- package/es5/signaling/v2/localparticipant.js.map +1 -1
- package/es5/signaling/v2/localtrackpublication.js +21 -39
- package/es5/signaling/v2/localtrackpublication.js.map +1 -1
- package/es5/signaling/v2/mediasignaling.js +25 -48
- package/es5/signaling/v2/mediasignaling.js.map +1 -1
- package/es5/signaling/v2/networkqualitymonitor.js +50 -97
- package/es5/signaling/v2/networkqualitymonitor.js.map +1 -1
- package/es5/signaling/v2/networkqualitysignaling.js +56 -88
- package/es5/signaling/v2/networkqualitysignaling.js.map +1 -1
- package/es5/signaling/v2/peerconnection.js +523 -648
- package/es5/signaling/v2/peerconnection.js.map +1 -1
- package/es5/signaling/v2/peerconnectionmanager.js +111 -167
- package/es5/signaling/v2/peerconnectionmanager.js.map +1 -1
- package/es5/signaling/v2/publisherhintsignaling.js +22 -42
- package/es5/signaling/v2/publisherhintsignaling.js.map +1 -1
- package/es5/signaling/v2/recording.js +8 -26
- package/es5/signaling/v2/recording.js.map +1 -1
- package/es5/signaling/v2/remoteparticipant.js +25 -43
- package/es5/signaling/v2/remoteparticipant.js.map +1 -1
- package/es5/signaling/v2/remotetrackpublication.js +7 -24
- package/es5/signaling/v2/remotetrackpublication.js.map +1 -1
- package/es5/signaling/v2/renderhintssignaling.js +40 -61
- package/es5/signaling/v2/renderhintssignaling.js.map +1 -1
- package/es5/signaling/v2/room.js +216 -280
- package/es5/signaling/v2/room.js.map +1 -1
- package/es5/signaling/v2/trackprioritysignaling.js +11 -29
- package/es5/signaling/v2/trackprioritysignaling.js.map +1 -1
- package/es5/signaling/v2/trackswitchoffsignaling.js +10 -28
- package/es5/signaling/v2/trackswitchoffsignaling.js.map +1 -1
- package/es5/signaling/v2/transcriptionsignaling.js +8 -26
- package/es5/signaling/v2/transcriptionsignaling.js.map +1 -1
- package/es5/signaling/v2/twilioconnectiontransport.js +62 -82
- package/es5/signaling/v2/twilioconnectiontransport.js.map +1 -1
- package/es5/statemachine.js +75 -121
- package/es5/statemachine.js.map +1 -1
- package/es5/stats/average.js +2 -2
- package/es5/stats/average.js.map +1 -1
- package/es5/stats/icereport.js +11 -12
- package/es5/stats/icereport.js.map +1 -1
- package/es5/stats/icereportfactory.js +8 -9
- package/es5/stats/icereportfactory.js.map +1 -1
- package/es5/stats/localaudiotrackstats.js +6 -24
- package/es5/stats/localaudiotrackstats.js.map +1 -1
- package/es5/stats/localtrackstats.js +6 -24
- package/es5/stats/localtrackstats.js.map +1 -1
- package/es5/stats/localvideotrackstats.js +9 -27
- package/es5/stats/localvideotrackstats.js.map +1 -1
- package/es5/stats/networkqualityaudiostats.js +5 -22
- package/es5/stats/networkqualityaudiostats.js.map +1 -1
- package/es5/stats/networkqualitybandwidthstats.js +3 -5
- package/es5/stats/networkqualitybandwidthstats.js.map +1 -1
- package/es5/stats/networkqualityfractionloststats.js +3 -5
- package/es5/stats/networkqualityfractionloststats.js.map +1 -1
- package/es5/stats/networkqualitylatencystats.js +3 -5
- package/es5/stats/networkqualitylatencystats.js.map +1 -1
- package/es5/stats/networkqualitymediastats.js +5 -7
- package/es5/stats/networkqualitymediastats.js.map +1 -1
- package/es5/stats/networkqualityrecvstats.js +5 -22
- package/es5/stats/networkqualityrecvstats.js.map +1 -1
- package/es5/stats/networkqualitysendorrecvstats.js +6 -8
- package/es5/stats/networkqualitysendorrecvstats.js.map +1 -1
- package/es5/stats/networkqualitysendstats.js +5 -22
- package/es5/stats/networkqualitysendstats.js.map +1 -1
- package/es5/stats/networkqualitystats.js +5 -7
- package/es5/stats/networkqualitystats.js.map +1 -1
- package/es5/stats/networkqualityvideostats.js +5 -22
- package/es5/stats/networkqualityvideostats.js.map +1 -1
- package/es5/stats/peerconnectionreport.js +13 -14
- package/es5/stats/peerconnectionreport.js.map +1 -1
- package/es5/stats/peerconnectionreportfactory.js +89 -185
- package/es5/stats/peerconnectionreportfactory.js.map +1 -1
- package/es5/stats/receiverreport.js +28 -46
- package/es5/stats/receiverreport.js.map +1 -1
- package/es5/stats/receiverreportfactory.js +11 -29
- package/es5/stats/receiverreportfactory.js.map +1 -1
- package/es5/stats/remoteaudiotrackstats.js +6 -24
- package/es5/stats/remoteaudiotrackstats.js.map +1 -1
- package/es5/stats/remotetrackstats.js +6 -24
- package/es5/stats/remotetrackstats.js.map +1 -1
- package/es5/stats/remotevideotrackstats.js +7 -25
- package/es5/stats/remotevideotrackstats.js.map +1 -1
- package/es5/stats/senderorreceiverreport.js +3 -4
- package/es5/stats/senderorreceiverreport.js.map +1 -1
- package/es5/stats/senderorreceiverreportfactory.js +3 -4
- package/es5/stats/senderorreceiverreportfactory.js.map +1 -1
- package/es5/stats/senderreport.js +20 -38
- package/es5/stats/senderreport.js.map +1 -1
- package/es5/stats/senderreportfactory.js +11 -29
- package/es5/stats/senderreportfactory.js.map +1 -1
- package/es5/stats/statsreport.js +11 -12
- package/es5/stats/statsreport.js.map +1 -1
- package/es5/stats/sum.js +1 -1
- package/es5/stats/sum.js.map +1 -1
- package/es5/stats/trackstats.js +3 -4
- package/es5/stats/trackstats.js.map +1 -1
- package/es5/transceiver.js +8 -26
- package/es5/transceiver.js.map +1 -1
- package/es5/twilioconnection.js +166 -223
- package/es5/twilioconnection.js.map +1 -1
- package/es5/util/asyncvar.js +12 -14
- package/es5/util/asyncvar.js.map +1 -1
- package/es5/util/backoff.js +14 -16
- package/es5/util/backoff.js.map +1 -1
- package/es5/util/browserdetection.js +19 -35
- package/es5/util/browserdetection.js.map +1 -1
- package/es5/util/cancelablepromise.js +30 -57
- package/es5/util/cancelablepromise.js.map +1 -1
- package/es5/util/constants.js +13 -13
- package/es5/util/constants.js.map +1 -1
- package/es5/util/detectsilentaudio.js +10 -10
- package/es5/util/detectsilentaudio.js.map +1 -1
- package/es5/util/detectsilentvideo.js +12 -12
- package/es5/util/detectsilentvideo.js.map +1 -1
- package/es5/util/documentvisibilitymonitor.js +34 -41
- package/es5/util/documentvisibilitymonitor.js.map +1 -1
- package/es5/util/dynamicimport.js +4 -4
- package/es5/util/dynamicimport.js.map +1 -1
- package/es5/util/eventobserver.js +19 -39
- package/es5/util/eventobserver.js.map +1 -1
- package/es5/util/filter.js +11 -12
- package/es5/util/filter.js.map +1 -1
- package/es5/util/index.js +96 -165
- package/es5/util/index.js.map +1 -1
- package/es5/util/insightspublisher/index.js +48 -78
- package/es5/util/insightspublisher/index.js.map +1 -1
- package/es5/util/insightspublisher/null.js +9 -10
- package/es5/util/insightspublisher/null.js.map +1 -1
- package/es5/util/localmediarestartdeferreds.js +10 -11
- package/es5/util/localmediarestartdeferreds.js.map +1 -1
- package/es5/util/log.js +44 -70
- package/es5/util/log.js.map +1 -1
- package/es5/util/movingaveragedelta.js +12 -13
- package/es5/util/movingaveragedelta.js.map +1 -1
- package/es5/util/networkmonitor.js +26 -30
- package/es5/util/networkmonitor.js.map +1 -1
- package/es5/util/nullobserver.js +22 -48
- package/es5/util/nullobserver.js.map +1 -1
- package/es5/util/sdp/index.js +109 -134
- package/es5/util/sdp/index.js.map +1 -1
- package/es5/util/sdp/issue8329.js +56 -57
- package/es5/util/sdp/issue8329.js.map +1 -1
- package/es5/util/sdp/simulcast.js +55 -73
- package/es5/util/sdp/simulcast.js.map +1 -1
- package/es5/util/sdp/trackmatcher.js +14 -15
- package/es5/util/sdp/trackmatcher.js.map +1 -1
- package/es5/util/sid.js +5 -5
- package/es5/util/sid.js.map +1 -1
- package/es5/util/support.js +13 -16
- package/es5/util/support.js.map +1 -1
- package/es5/util/timeout.js +28 -39
- package/es5/util/timeout.js.map +1 -1
- package/es5/util/timeoutpromise.js +38 -84
- package/es5/util/timeoutpromise.js.map +1 -1
- package/es5/util/twilio-video-errors.js +277 -457
- package/es5/util/twilio-video-errors.js.map +1 -1
- package/es5/util/twilioerror.js +13 -57
- package/es5/util/twilioerror.js.map +1 -1
- package/es5/util/twiliowarning.js +1 -1
- package/es5/util/twiliowarning.js.map +1 -1
- package/es5/util/validate.js +13 -15
- package/es5/util/validate.js.map +1 -1
- package/es5/vendor/inherits.js +3 -5
- package/es5/vendor/inherits.js.map +1 -1
- package/es5/webaudio/audiocontext.js +8 -9
- package/es5/webaudio/audiocontext.js.map +1 -1
- package/es5/webaudio/detectsilence.js +9 -9
- package/es5/webaudio/detectsilence.js.map +1 -1
- package/es5/webaudio/workaround180748.js +15 -13
- package/es5/webaudio/workaround180748.js.map +1 -1
- package/es5/webrtc/getstats.js +242 -448
- package/es5/webrtc/getstats.js.map +1 -1
- package/es5/webrtc/getusermedia.js +1 -2
- package/es5/webrtc/getusermedia.js.map +1 -1
- package/es5/webrtc/index.js +1 -17
- package/es5/webrtc/index.js.map +1 -1
- package/es5/webrtc/rtcpeerconnection/chrome.js +102 -295
- package/es5/webrtc/rtcpeerconnection/chrome.js.map +1 -1
- package/es5/webrtc/rtcpeerconnection/firefox.js +69 -146
- package/es5/webrtc/rtcpeerconnection/firefox.js.map +1 -1
- package/es5/webrtc/rtcpeerconnection/index.js +1 -1
- package/es5/webrtc/rtcpeerconnection/index.js.map +1 -1
- package/es5/webrtc/rtcpeerconnection/safari.js +110 -192
- package/es5/webrtc/rtcpeerconnection/safari.js.map +1 -1
- package/es5/webrtc/rtcrtpsender.js +3 -4
- package/es5/webrtc/rtcrtpsender.js.map +1 -1
- package/es5/webrtc/util/index.js +28 -63
- package/es5/webrtc/util/index.js.map +1 -1
- package/es5/webrtc/util/latch.js +21 -28
- package/es5/webrtc/util/latch.js.map +1 -1
- package/es5/webrtc/util/sdp.js +41 -211
- package/es5/webrtc/util/sdp.js.map +1 -1
- package/lib/connect.js +0 -1
- package/lib/createlocaltracks.ts +2 -2
- package/lib/localparticipant.js +0 -1
- package/lib/media/track/mediatrack.js +0 -2
- package/lib/media/track/noisecancellationimpl.ts +2 -2
- package/lib/noisecancellationadapter.ts +2 -2
- package/lib/preflight/getCombinedConnectionStats.ts +1 -1
- package/lib/preflight/getturncredentials.ts +2 -2
- package/lib/preflight/preflighttest.ts +3 -3
- package/lib/signaling/v2/peerconnection.js +2 -4
- package/lib/util/sdp/index.js +1 -2
- package/lib/util/sdp/issue8329.js +0 -2
- package/lib/util/support.js +4 -7
- package/lib/webrtc/getstats.js +6 -21
- package/lib/webrtc/index.js +0 -16
- package/lib/webrtc/rtcpeerconnection/chrome.js +13 -123
- package/lib/webrtc/rtcpeerconnection/firefox.js +5 -6
- package/lib/webrtc/rtcpeerconnection/safari.js +9 -19
- package/lib/webrtc/util/sdp.js +13 -194
- package/package.json +16 -11
- package/rollup.config.mjs +85 -0
- package/tsconfig.json +5 -5
- package/es5/webrtc/mediastream.js +0 -11
- package/es5/webrtc/mediastream.js.map +0 -1
- package/es5/webrtc/mediastreamtrack.js +0 -11
- package/es5/webrtc/mediastreamtrack.js.map +0 -1
- package/es5/webrtc/rtcicecandidate.js +0 -11
- package/es5/webrtc/rtcicecandidate.js.map +0 -1
- package/es5/webrtc/rtcsessiondescription/chrome.js +0 -43
- package/es5/webrtc/rtcsessiondescription/chrome.js.map +0 -1
- package/es5/webrtc/rtcsessiondescription/firefox.js +0 -4
- package/es5/webrtc/rtcsessiondescription/firefox.js.map +0 -1
- package/es5/webrtc/rtcsessiondescription/index.js +0 -22
- package/es5/webrtc/rtcsessiondescription/index.js.map +0 -1
- package/lib/webrtc/mediastream.js +0 -10
- package/lib/webrtc/mediastreamtrack.js +0 -10
- package/lib/webrtc/rtcicecandidate.js +0 -10
- package/lib/webrtc/rtcsessiondescription/chrome.js +0 -39
- package/lib/webrtc/rtcsessiondescription/firefox.js +0 -4
- package/lib/webrtc/rtcsessiondescription/index.js +0 -21
- package/src/twilio-video.js +0 -16
package/es5/statemachine.js
CHANGED
|
@@ -1,46 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
18
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
-
if (!m) return o;
|
|
20
|
-
var i = m.call(o), r, ar = [], e;
|
|
21
|
-
try {
|
|
22
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
23
|
-
}
|
|
24
|
-
catch (error) { e = { error: error }; }
|
|
25
|
-
finally {
|
|
26
|
-
try {
|
|
27
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28
|
-
}
|
|
29
|
-
finally { if (e) throw e.error; }
|
|
30
|
-
}
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
-
if (ar || !(i in from)) {
|
|
36
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
-
ar[i] = from[i];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
-
};
|
|
42
|
-
var EventEmitter = require('events').EventEmitter;
|
|
43
|
-
var util = require('./util');
|
|
2
|
+
const EventEmitter = require('events').EventEmitter;
|
|
3
|
+
const util = require('./util');
|
|
44
4
|
/**
|
|
45
5
|
* {@link StateMachine} represents a state machine. The state machine supports a
|
|
46
6
|
* reentrant locking mechanism to allow asynchronous state transitions to ensure
|
|
@@ -52,24 +12,23 @@ var util = require('./util');
|
|
|
52
12
|
* @property {string} state - the current state
|
|
53
13
|
* @emits {@link StateMachine#stateChanged}
|
|
54
14
|
*/
|
|
55
|
-
|
|
56
|
-
__extends(StateMachine, _super);
|
|
15
|
+
class StateMachine extends EventEmitter {
|
|
57
16
|
/**
|
|
58
17
|
* Construct a {@link StateMachine}.
|
|
59
18
|
* @param {string} initialState - the intiial state
|
|
60
19
|
* @param {object} states
|
|
61
20
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
21
|
+
constructor(initialState, states) {
|
|
22
|
+
super();
|
|
23
|
+
let lock = null;
|
|
24
|
+
let state = initialState;
|
|
66
25
|
states = transformStates(states);
|
|
67
|
-
Object.defineProperties(
|
|
26
|
+
Object.defineProperties(this, {
|
|
68
27
|
_lock: {
|
|
69
|
-
get
|
|
28
|
+
get() {
|
|
70
29
|
return lock;
|
|
71
30
|
},
|
|
72
|
-
set
|
|
31
|
+
set(_lock) {
|
|
73
32
|
lock = _lock;
|
|
74
33
|
}
|
|
75
34
|
},
|
|
@@ -77,10 +36,10 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
77
36
|
value: reachable(states)
|
|
78
37
|
},
|
|
79
38
|
_state: {
|
|
80
|
-
get
|
|
39
|
+
get() {
|
|
81
40
|
return state;
|
|
82
41
|
},
|
|
83
|
-
set
|
|
42
|
+
set(_state) {
|
|
84
43
|
state = _state;
|
|
85
44
|
}
|
|
86
45
|
},
|
|
@@ -92,23 +51,22 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
92
51
|
},
|
|
93
52
|
isLocked: {
|
|
94
53
|
enumerable: true,
|
|
95
|
-
get
|
|
54
|
+
get() {
|
|
96
55
|
return lock !== null;
|
|
97
56
|
}
|
|
98
57
|
},
|
|
99
58
|
state: {
|
|
100
59
|
enumerable: true,
|
|
101
|
-
get
|
|
60
|
+
get() {
|
|
102
61
|
return state;
|
|
103
62
|
}
|
|
104
63
|
}
|
|
105
64
|
});
|
|
106
|
-
|
|
107
|
-
|
|
65
|
+
this.on('stateChanged', state => {
|
|
66
|
+
this._whenDeferreds.forEach(deferred => {
|
|
108
67
|
deferred.when(state, deferred.resolve, deferred.reject);
|
|
109
68
|
});
|
|
110
69
|
});
|
|
111
|
-
return _this;
|
|
112
70
|
}
|
|
113
71
|
/**
|
|
114
72
|
* Returns a promise whose executor function is called on each state change.
|
|
@@ -116,22 +74,21 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
116
74
|
* @returns {Promise.<*>}
|
|
117
75
|
* @private
|
|
118
76
|
*/
|
|
119
|
-
|
|
120
|
-
var _this = this;
|
|
77
|
+
_whenPromise(when) {
|
|
121
78
|
if (typeof when !== 'function') {
|
|
122
79
|
return Promise.reject(new Error('when() executor must be a function'));
|
|
123
80
|
}
|
|
124
|
-
|
|
81
|
+
const deferred = util.defer();
|
|
125
82
|
deferred.when = when;
|
|
126
83
|
this._whenDeferreds.add(deferred);
|
|
127
|
-
return deferred.promise.then(
|
|
128
|
-
|
|
84
|
+
return deferred.promise.then(payload => {
|
|
85
|
+
this._whenDeferreds.delete(deferred);
|
|
129
86
|
return payload;
|
|
130
|
-
},
|
|
131
|
-
|
|
87
|
+
}, error => {
|
|
88
|
+
this._whenDeferreds.delete(deferred);
|
|
132
89
|
throw error;
|
|
133
90
|
});
|
|
134
|
-
}
|
|
91
|
+
}
|
|
135
92
|
/**
|
|
136
93
|
* This method takes a lock and passes the {@link StateMachine#Key} to your
|
|
137
94
|
* transition function. You may perform zero or more state transitions in your
|
|
@@ -145,9 +102,9 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
145
102
|
*/
|
|
146
103
|
// NOTE(mroberts): This method is named after a Haskell function:
|
|
147
104
|
// https://hackage.haskell.org/package/base-4.8.2.0/docs/Control-Exception.html#v:bracket
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
105
|
+
bracket(name, transitionFunction) {
|
|
106
|
+
let key;
|
|
107
|
+
const self = this;
|
|
151
108
|
function releaseLock(error) {
|
|
152
109
|
if (self.hasLock(key)) {
|
|
153
110
|
self.releaseLockCompletely(key);
|
|
@@ -163,15 +120,15 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
163
120
|
releaseLock();
|
|
164
121
|
return result;
|
|
165
122
|
}, releaseLock);
|
|
166
|
-
}
|
|
123
|
+
}
|
|
167
124
|
/**
|
|
168
125
|
* Check whether or not a {@link StateMachine#Key} matches the lock.
|
|
169
126
|
* @param {StateMachine#Key} key
|
|
170
127
|
* @returns {boolean}
|
|
171
128
|
*/
|
|
172
|
-
|
|
129
|
+
hasLock(key) {
|
|
173
130
|
return this._lock === key;
|
|
174
|
-
}
|
|
131
|
+
}
|
|
175
132
|
/**
|
|
176
133
|
* Preempt any pending state transitions and immediately transition to the new
|
|
177
134
|
* state. If a lock name is specified, take the lock and return the
|
|
@@ -181,25 +138,25 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
181
138
|
* @param {Array<*>} [payload=[]]
|
|
182
139
|
* @returns {?StateMachine#Key}
|
|
183
140
|
*/
|
|
184
|
-
|
|
141
|
+
preempt(newState, name, payload) {
|
|
185
142
|
// 1. Check that the new state is valid.
|
|
186
143
|
if (!isValidTransition(this._states, this.state, newState)) {
|
|
187
|
-
throw new Error(
|
|
144
|
+
throw new Error(`Cannot transition from "${this.state}" to "${newState}"`);
|
|
188
145
|
}
|
|
189
146
|
// 2. Release the old lock, if any.
|
|
190
|
-
|
|
147
|
+
let oldLock;
|
|
191
148
|
if (this.isLocked) {
|
|
192
149
|
oldLock = this._lock;
|
|
193
150
|
this._lock = null;
|
|
194
151
|
}
|
|
195
152
|
// 3. Take the lock, if requested.
|
|
196
|
-
|
|
153
|
+
let key = null;
|
|
197
154
|
if (name) {
|
|
198
155
|
key = this.takeLockSync(name);
|
|
199
156
|
}
|
|
200
157
|
// 4. If a lock wasn't requested, take a "preemption" lock in order to
|
|
201
158
|
// maintain FIFO order of those taking locks.
|
|
202
|
-
|
|
159
|
+
const preemptionKey = key ? null : this.takeLockSync('preemption');
|
|
203
160
|
// 5. Transition.
|
|
204
161
|
this.transition(newState, key || preemptionKey, payload);
|
|
205
162
|
// 6. Preempt anyone blocked on the old lock.
|
|
@@ -211,19 +168,19 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
211
168
|
this.releaseLock(preemptionKey);
|
|
212
169
|
}
|
|
213
170
|
return key;
|
|
214
|
-
}
|
|
171
|
+
}
|
|
215
172
|
/**
|
|
216
173
|
* Release a lock. This method succeeds only if the {@link StateMachine} is
|
|
217
174
|
* still locked and has not been preempted.
|
|
218
175
|
* @param {StateMachine#Key} key
|
|
219
176
|
* @throws Error
|
|
220
177
|
*/
|
|
221
|
-
|
|
178
|
+
releaseLock(key) {
|
|
222
179
|
if (!this.isLocked) {
|
|
223
|
-
throw new Error(
|
|
180
|
+
throw new Error(`Could not release the lock for ${key.name} because the StateMachine is not locked`);
|
|
224
181
|
}
|
|
225
182
|
else if (!this.hasLock(key)) {
|
|
226
|
-
throw new Error(
|
|
183
|
+
throw new Error(`Could not release the lock for ${key.name} because ${this._lock.name} has the lock`);
|
|
227
184
|
}
|
|
228
185
|
if (key.depth === 0) {
|
|
229
186
|
this._lock = null;
|
|
@@ -232,7 +189,7 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
232
189
|
else {
|
|
233
190
|
key.depth--;
|
|
234
191
|
}
|
|
235
|
-
}
|
|
192
|
+
}
|
|
236
193
|
/**
|
|
237
194
|
* Release a lock completely, even if it has been reentered. This method
|
|
238
195
|
* succeeds only if the {@link StateMachine} is still locked and has not been
|
|
@@ -240,17 +197,17 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
240
197
|
* @param {StateMachine#Key} key
|
|
241
198
|
* @throws Error
|
|
242
199
|
*/
|
|
243
|
-
|
|
200
|
+
releaseLockCompletely(key) {
|
|
244
201
|
if (!this.isLocked) {
|
|
245
|
-
throw new Error(
|
|
202
|
+
throw new Error(`Could not release the lock for ${key.name} because the StateMachine is not locked`);
|
|
246
203
|
}
|
|
247
204
|
else if (!this.hasLock(key)) {
|
|
248
|
-
throw new Error(
|
|
205
|
+
throw new Error(`Could not release the lock for ${key.name} because ${this._lock.name} has the lock`);
|
|
249
206
|
}
|
|
250
207
|
key.depth = 0;
|
|
251
208
|
this._lock = null;
|
|
252
209
|
key.resolve();
|
|
253
|
-
}
|
|
210
|
+
}
|
|
254
211
|
/**
|
|
255
212
|
* Take a lock, returning a Promise for the {@link StateMachine#Key}. You should
|
|
256
213
|
* take a lock anytime you intend to perform asynchronous transitions. Calls to
|
|
@@ -260,23 +217,22 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
260
217
|
* existing {@link StateMachine#Key}
|
|
261
218
|
* @returns {Promise<object>}
|
|
262
219
|
*/
|
|
263
|
-
|
|
264
|
-
var _this = this;
|
|
220
|
+
takeLock(nameOrKey) {
|
|
265
221
|
// Reentrant lock
|
|
266
222
|
if (typeof nameOrKey === 'object') {
|
|
267
|
-
|
|
268
|
-
return new Promise(
|
|
269
|
-
resolve(
|
|
223
|
+
const key = nameOrKey;
|
|
224
|
+
return new Promise(resolve => {
|
|
225
|
+
resolve(this.takeLockSync(key));
|
|
270
226
|
});
|
|
271
227
|
}
|
|
272
228
|
// New lock
|
|
273
|
-
|
|
229
|
+
const name = nameOrKey;
|
|
274
230
|
if (this.isLocked) {
|
|
275
231
|
var takeLock = this.takeLock.bind(this, name);
|
|
276
232
|
return this._lock.promise.then(takeLock);
|
|
277
233
|
}
|
|
278
234
|
return Promise.resolve(this.takeLockSync(name));
|
|
279
|
-
}
|
|
235
|
+
}
|
|
280
236
|
/**
|
|
281
237
|
* Take a lock, returning the {@Link StateMachine#Key}. This method throws if
|
|
282
238
|
* the {@link StateMachine} is locked or the wrong {@link StateMachine#Key} is
|
|
@@ -286,11 +242,11 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
286
242
|
* @returns {object}
|
|
287
243
|
* @throws Error
|
|
288
244
|
*/
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
245
|
+
takeLockSync(nameOrKey) {
|
|
246
|
+
const key = typeof nameOrKey === 'string' ? null : nameOrKey;
|
|
247
|
+
const name = key ? key.name : nameOrKey;
|
|
292
248
|
if (key && !this.hasLock(key) || !key && this.isLocked) {
|
|
293
|
-
throw new Error(
|
|
249
|
+
throw new Error(`Could not take the lock for ${name} because the lock for ${this._lock.name} was not released`);
|
|
294
250
|
}
|
|
295
251
|
// Reentrant lock
|
|
296
252
|
if (key) {
|
|
@@ -298,10 +254,10 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
298
254
|
return key;
|
|
299
255
|
}
|
|
300
256
|
// New lock
|
|
301
|
-
|
|
257
|
+
const lock = makeLock(name);
|
|
302
258
|
this._lock = lock;
|
|
303
259
|
return lock;
|
|
304
|
-
}
|
|
260
|
+
}
|
|
305
261
|
/**
|
|
306
262
|
* Transition to a new state. If the {@link StateMachine} is locked, you must
|
|
307
263
|
* provide the {@link StateMachine#Key}. An invalid state or the wrong
|
|
@@ -311,7 +267,7 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
311
267
|
* @param {Array<*>} [payload=[]]
|
|
312
268
|
* @throws {Error}
|
|
313
269
|
*/
|
|
314
|
-
|
|
270
|
+
transition(newState, key, payload) {
|
|
315
271
|
payload = payload || [];
|
|
316
272
|
// 1. If we're locked, required the key.
|
|
317
273
|
if (this.isLocked) {
|
|
@@ -320,20 +276,20 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
320
276
|
'transition');
|
|
321
277
|
}
|
|
322
278
|
else if (!this.hasLock(key)) {
|
|
323
|
-
throw new Error(
|
|
279
|
+
throw new Error(`Could not transition using the key for ${key.name} because ${this._lock.name} has the lock`);
|
|
324
280
|
}
|
|
325
281
|
}
|
|
326
282
|
else if (key) {
|
|
327
|
-
throw new Error(
|
|
283
|
+
throw new Error(`Key provided for ${key.name}, but the StateMachine was not locked (possibly due to preemption)`);
|
|
328
284
|
}
|
|
329
285
|
// 2. Check that the new state is valid.
|
|
330
286
|
if (!isValidTransition(this._states, this.state, newState)) {
|
|
331
|
-
throw new Error(
|
|
287
|
+
throw new Error(`Cannot transition from "${this.state}" to "${newState}"`);
|
|
332
288
|
}
|
|
333
289
|
// 3. Update the state and emit an event.
|
|
334
290
|
this._state = newState;
|
|
335
|
-
this.emit
|
|
336
|
-
}
|
|
291
|
+
this.emit(...['stateChanged', newState].concat(payload));
|
|
292
|
+
}
|
|
337
293
|
/**
|
|
338
294
|
* Attempt to transition to a new state. Unlike {@link StateMachine#transition},
|
|
339
295
|
* this method does not throw.
|
|
@@ -342,7 +298,7 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
342
298
|
* @param {Array<*>} [payload=[]]
|
|
343
299
|
* @returns {boolean}
|
|
344
300
|
*/
|
|
345
|
-
|
|
301
|
+
tryTransition(newState, key, payload) {
|
|
346
302
|
try {
|
|
347
303
|
this.transition(newState, key, payload);
|
|
348
304
|
}
|
|
@@ -350,7 +306,7 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
350
306
|
return false;
|
|
351
307
|
}
|
|
352
308
|
return true;
|
|
353
|
-
}
|
|
309
|
+
}
|
|
354
310
|
/**
|
|
355
311
|
* Return a Promise that resolves when the {@link StateMachine} transitions to
|
|
356
312
|
* the specified state. If the {@link StateMachine} transitions such that the
|
|
@@ -358,25 +314,23 @@ var StateMachine = /** @class */ (function (_super) {
|
|
|
358
314
|
* @param {string} state
|
|
359
315
|
* @returns {Promise<this>}
|
|
360
316
|
*/
|
|
361
|
-
|
|
362
|
-
var _this = this;
|
|
317
|
+
when(state) {
|
|
363
318
|
if (this.state === state) {
|
|
364
319
|
return Promise.resolve(this);
|
|
365
320
|
}
|
|
366
321
|
else if (!isValidTransition(this._reachableStates, this.state, state)) {
|
|
367
322
|
return Promise.reject(createUnreachableError(this.state, state));
|
|
368
323
|
}
|
|
369
|
-
return this._whenPromise(
|
|
324
|
+
return this._whenPromise((newState, resolve, reject) => {
|
|
370
325
|
if (newState === state) {
|
|
371
|
-
resolve(
|
|
326
|
+
resolve(this);
|
|
372
327
|
}
|
|
373
|
-
else if (!isValidTransition(
|
|
328
|
+
else if (!isValidTransition(this._reachableStates, newState, state)) {
|
|
374
329
|
reject(createUnreachableError(newState, state));
|
|
375
330
|
}
|
|
376
331
|
});
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
}(EventEmitter));
|
|
332
|
+
}
|
|
333
|
+
}
|
|
380
334
|
/**
|
|
381
335
|
* @event StateMachine#stateChanged
|
|
382
336
|
* @param {string} newState
|
|
@@ -396,7 +350,7 @@ function isValidTransition(graph, from, to) {
|
|
|
396
350
|
* @typedef {object} StateMachine#Key
|
|
397
351
|
*/
|
|
398
352
|
function makeLock(name) {
|
|
399
|
-
|
|
353
|
+
const lock = util.defer();
|
|
400
354
|
lock.name = name;
|
|
401
355
|
lock.depth = 0;
|
|
402
356
|
return lock;
|
|
@@ -409,7 +363,7 @@ function makeLock(name) {
|
|
|
409
363
|
* @returns {Map<*, Set<*>>}
|
|
410
364
|
*/
|
|
411
365
|
function reachable(graph) {
|
|
412
|
-
return Array.from(graph.keys()).reduce(
|
|
366
|
+
return Array.from(graph.keys()).reduce((newGraph, from) => newGraph.set(from, reachableFrom(graph, from)), new Map());
|
|
413
367
|
}
|
|
414
368
|
/**
|
|
415
369
|
* Compute the Set of node reachable from a particular node in the graph.
|
|
@@ -421,7 +375,7 @@ function reachable(graph) {
|
|
|
421
375
|
*/
|
|
422
376
|
function reachableFrom(graph, from, to) {
|
|
423
377
|
to = to || new Set();
|
|
424
|
-
graph.get(from).forEach(
|
|
378
|
+
graph.get(from).forEach(node => {
|
|
425
379
|
if (!to.has(node)) {
|
|
426
380
|
to.add(node);
|
|
427
381
|
reachableFrom(graph, node, to).forEach(to.add, to);
|
|
@@ -430,8 +384,8 @@ function reachableFrom(graph, from, to) {
|
|
|
430
384
|
return to;
|
|
431
385
|
}
|
|
432
386
|
function transformStates(states) {
|
|
433
|
-
|
|
434
|
-
for (
|
|
387
|
+
const newStates = new Map();
|
|
388
|
+
for (const key in states) {
|
|
435
389
|
newStates.set(key, new Set(states[key]));
|
|
436
390
|
}
|
|
437
391
|
return newStates;
|
|
@@ -443,7 +397,7 @@ function transformStates(states) {
|
|
|
443
397
|
* @returns {Error}
|
|
444
398
|
*/
|
|
445
399
|
function createUnreachableError(here, there) {
|
|
446
|
-
return new Error("
|
|
400
|
+
return new Error(`"${there}" cannot be reached from "${here}"`);
|
|
447
401
|
}
|
|
448
402
|
module.exports = StateMachine;
|
|
449
403
|
//# sourceMappingURL=statemachine.js.map
|
package/es5/statemachine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statemachine.js","sourceRoot":"","sources":["../lib/statemachine.js"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"statemachine.js","sourceRoot":"","sources":["../lib/statemachine.js"],"names":[],"mappings":"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"}
|
package/es5/stats/average.js
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* @returns {number|undefined}
|
|
6
6
|
*/
|
|
7
7
|
function average(xs) {
|
|
8
|
-
xs = xs.filter(
|
|
9
|
-
return xs.length < 1 ? undefined : xs.reduce(
|
|
8
|
+
xs = xs.filter(x => typeof x === 'number');
|
|
9
|
+
return xs.length < 1 ? undefined : xs.reduce((y, x) => x + y) / xs.length;
|
|
10
10
|
}
|
|
11
11
|
module.exports = average;
|
|
12
12
|
//# sourceMappingURL=average.js.map
|
package/es5/stats/average.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"average.js","sourceRoot":"","sources":["../../lib/stats/average.js"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,YAAY,CAAC;AAEb;;;GAGG;AACH,SAAS,OAAO,CAAC,EAAE;IACjB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"average.js","sourceRoot":"","sources":["../../lib/stats/average.js"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,YAAY,CAAC;AAEb;;;GAGG;AACH,SAAS,OAAO,CAAC,EAAE;IACjB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC3C,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC"}
|
package/es5/stats/icereport.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @property {number} [rtt] - s (undefined in Firefox)
|
|
6
6
|
* @property {number} send - bps
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
class IceReport {
|
|
9
9
|
/**
|
|
10
10
|
* Construct an {@link IceReport}.
|
|
11
11
|
* @param {number} send - bps
|
|
@@ -13,7 +13,7 @@ var IceReport = /** @class */ (function () {
|
|
|
13
13
|
* @param {number} [rtt] - s
|
|
14
14
|
* @param {number} [availableSend] - bps
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
constructor(send, recv, availableSend, rtt) {
|
|
17
17
|
Object.defineProperties(this, {
|
|
18
18
|
availableSend: {
|
|
19
19
|
enumerable: true,
|
|
@@ -38,20 +38,19 @@ var IceReport = /** @class */ (function () {
|
|
|
38
38
|
* @param {RTCStats} newerStats
|
|
39
39
|
* @returns {IceReport}
|
|
40
40
|
*/
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
static of(olderStats, newerStats) {
|
|
42
|
+
const secondsElapsed = (newerStats.timestamp - olderStats.timestamp) / 1000;
|
|
43
|
+
const deltaBytesSent = newerStats.bytesSent - olderStats.bytesSent;
|
|
44
|
+
const deltaBytesReceived = newerStats.bytesReceived - olderStats.bytesReceived;
|
|
45
|
+
const send = secondsElapsed > 0
|
|
46
46
|
? (deltaBytesSent / secondsElapsed) * 8
|
|
47
47
|
: 0;
|
|
48
|
-
|
|
48
|
+
const recv = secondsElapsed > 0
|
|
49
49
|
? (deltaBytesReceived / secondsElapsed) * 8
|
|
50
50
|
: 0;
|
|
51
|
-
|
|
51
|
+
const { availableOutgoingBitrate: availableSend, currentRoundTripTime: rtt } = newerStats;
|
|
52
52
|
return new IceReport(send, recv, availableSend, rtt);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
}());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
56
55
|
module.exports = IceReport;
|
|
57
56
|
//# sourceMappingURL=icereport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icereport.js","sourceRoot":"","sources":["../../lib/stats/icereport.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;GAKG;AACH;
|
|
1
|
+
{"version":3,"file":"icereport.js","sourceRoot":"","sources":["../../lib/stats/icereport.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;GAKG;AACH,MAAM,SAAS;IACb;;;;;;OAMG;IACH,YAAY,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG;QACxC,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,aAAa,EAAE;gBACb,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,aAAa;aACrB;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;aACZ;YACD,GAAG,EAAE;gBACH,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,GAAG;aACX;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;aACZ;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU;QAC9B,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC5E,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACnE,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC/E,MAAM,IAAI,GAAG,cAAc,GAAG,CAAC;YAC7B,CAAC,CAAC,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC;YACvC,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,IAAI,GAAG,cAAc,GAAG,CAAC;YAC7B,CAAC,CAAC,CAAC,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC;YAC3C,CAAC,CAAC,CAAC,CAAC;QACN,MAAM,EAAE,wBAAwB,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC1F,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
|
|
2
|
+
const IceReport = require('./icereport');
|
|
3
3
|
/**
|
|
4
4
|
* @property {IceReport} lastReport
|
|
5
5
|
* @property {?RTCStats} lastStats
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
class IceReportFactory {
|
|
8
8
|
/**
|
|
9
9
|
* Construct an {@link IceReportFactory}.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
constructor() {
|
|
12
12
|
Object.defineProperties(this, {
|
|
13
13
|
lastReport: {
|
|
14
14
|
enumerable: true,
|
|
@@ -27,18 +27,17 @@ var IceReportFactory = /** @class */ (function () {
|
|
|
27
27
|
* @param {RTCStats} newerStats;
|
|
28
28
|
* @returns {IceReport}
|
|
29
29
|
*/
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
next(newerStats) {
|
|
31
|
+
const olderStats = this.lastStats;
|
|
32
32
|
this.lastStats = newerStats;
|
|
33
33
|
if (olderStats) {
|
|
34
|
-
|
|
34
|
+
const report = olderStats.id === newerStats.id
|
|
35
35
|
? IceReport.of(olderStats, newerStats)
|
|
36
36
|
: new IceReport(0, 0);
|
|
37
37
|
this.lastReport = report;
|
|
38
38
|
}
|
|
39
39
|
return this.lastReport;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
}());
|
|
40
|
+
}
|
|
41
|
+
}
|
|
43
42
|
module.exports = IceReportFactory;
|
|
44
43
|
//# sourceMappingURL=icereportfactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icereportfactory.js","sourceRoot":"","sources":["../../lib/stats/icereportfactory.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,
|
|
1
|
+
{"version":3,"file":"icereportfactory.js","sourceRoot":"","sources":["../../lib/stats/icereportfactory.js"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC;;;GAGG;AACH,MAAM,gBAAgB;IACpB;;OAEG;IACH;QACE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;YAC5B,UAAU,EAAE;gBACV,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1B,QAAQ,EAAE,IAAI;aACf;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,IAAI;aACf;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,UAAU;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC5B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE;gBAC5C,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;gBACtC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC"}
|