@npo/player 1.29.1 → 2.0.0-beta.1
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/README.md +32 -24
- package/dist/logErrorEvent-CJYrVUlC.js +21 -0
- package/dist/main-CmlOohv1.js +39047 -0
- package/dist/main.d.ts +1242 -0
- package/dist/npoplayer-audio.es.js +18 -0
- package/dist/npoplayer-audio.umd.js +128 -0
- package/package.json +72 -86
- package/CHANGELOG.md +0 -3
- package/LICENSE +0 -15
- package/lib/js/markers/updateLiveMarkers.d.ts +0 -9
- package/lib/js/markers/updateLiveMarkers.js +0 -56
- package/lib/js/markers/updateLiveMarkers.test.d.ts +0 -1
- package/lib/js/markers/updateLiveMarkers.test.js +0 -63
- package/lib/js/playeractions/handlers/handleoffsets.d.ts +0 -4
- package/lib/js/playeractions/handlers/handleoffsets.js +0 -58
- package/lib/js/playeractions/handlers/handleoffsets.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/handleoffsets.test.js +0 -93
- package/lib/js/playeractions/handlers/mediasessionactions.d.ts +0 -7
- package/lib/js/playeractions/handlers/mediasessionactions.js +0 -123
- package/lib/js/playeractions/handlers/processplayerconfig.d.ts +0 -3
- package/lib/js/playeractions/handlers/processplayerconfig.js +0 -56
- package/lib/js/playeractions/handlers/processplayerconfig.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/processplayerconfig.test.js +0 -116
- package/lib/js/playeractions/handlers/processsourceconfig.d.ts +0 -15
- package/lib/js/playeractions/handlers/processsourceconfig.js +0 -234
- package/lib/js/playeractions/handlers/processsourceconfig.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/processsourceconfig.test.js +0 -25
- package/lib/js/playeractions/handlers/removereplayclass.d.ts +0 -2
- package/lib/js/playeractions/handlers/removereplayclass.js +0 -12
- package/lib/js/playeractions/handlers/removereplayclass.test.d.ts +0 -1
- package/lib/js/playeractions/handlers/removereplayclass.test.js +0 -33
- package/lib/js/playeractions/playeractions.d.ts +0 -3
- package/lib/js/playeractions/playeractions.js +0 -3
- package/lib/js/settings/localization.d.ts +0 -82
- package/lib/js/settings/localization.js +0 -7
- package/lib/js/settings/settings.user-agent.d.ts +0 -1
- package/lib/js/settings/settings.user-agent.js +0 -1
- package/lib/js/utilities/utilities.element.d.ts +0 -16
- package/lib/js/utilities/utilities.element.js +0 -18
- package/lib/js/utilities/utilities.element.test.d.ts +0 -1
- package/lib/js/utilities/utilities.element.test.js +0 -38
- package/lib/js/utilities/utilities.jwt.d.ts +0 -5
- package/lib/js/utilities/utilities.jwt.js +0 -44
- package/lib/js/utilities/utilities.jwt.test.d.ts +0 -1
- package/lib/js/utilities/utilities.jwt.test.js +0 -32
- package/lib/js/utilities/utilities.locale.d.ts +0 -2
- package/lib/js/utilities/utilities.locale.js +0 -4
- package/lib/js/utilities/utilities.locale.test.d.ts +0 -1
- package/lib/js/utilities/utilities.locale.test.js +0 -10
- package/lib/js/utilities/utilities.module.d.ts +0 -1
- package/lib/js/utilities/utilities.module.js +0 -4
- package/lib/js/utilities/utilities.module.test.d.ts +0 -1
- package/lib/js/utilities/utilities.module.test.js +0 -19
- package/lib/js/utilities/utilities.prid.d.ts +0 -6
- package/lib/js/utilities/utilities.prid.js +0 -8
- package/lib/js/utilities/utilities.prid.test.d.ts +0 -1
- package/lib/js/utilities/utilities.prid.test.js +0 -46
- package/lib/js/utilities/utilities.stream.d.ts +0 -7
- package/lib/js/utilities/utilities.stream.js +0 -19
- package/lib/js/utilities/utilities.stream.test.d.ts +0 -1
- package/lib/js/utilities/utilities.stream.test.js +0 -32
- package/lib/js/utilities/utilities.text.d.ts +0 -1
- package/lib/js/utilities/utilities.text.js +0 -3
- package/lib/js/utilities/utilities.text.test.d.ts +0 -1
- package/lib/js/utilities/utilities.text.test.js +0 -18
- package/lib/js/utilities/utilities.time.d.ts +0 -1
- package/lib/js/utilities/utilities.time.js +0 -3
- package/lib/js/utilities/utilities.time.test.d.ts +0 -1
- package/lib/js/utilities/utilities.time.test.js +0 -8
- package/lib/js/utilities/utilities.url.d.ts +0 -3
- package/lib/js/utilities/utilities.url.js +0 -29
- package/lib/js/utilities/utilities.url.test.d.ts +0 -1
- package/lib/js/utilities/utilities.url.test.js +0 -46
- package/lib/js/utilities/utilities.user-agent.d.ts +0 -3
- package/lib/js/utilities/utilities.user-agent.js +0 -13
- package/lib/js/utilities/utilities.user-agent.test.d.ts +0 -1
- package/lib/js/utilities/utilities.user-agent.test.js +0 -60
- package/lib/js/utilities/utilities.version.d.ts +0 -1
- package/lib/js/utilities/utilities.version.js +0 -26
- package/lib/js/utilities/utilities.version.test.d.ts +0 -1
- package/lib/js/utilities/utilities.version.test.js +0 -26
- package/lib/lang/nl.json +0 -77
- package/lib/lang/subtitleLabels/nl.json +0 -14
- package/lib/npoplayer.d.ts +0 -64
- package/lib/npoplayer.js +0 -428
- package/lib/npoplayer.test.d.ts +0 -1
- package/lib/npoplayer.test.js +0 -22
- package/lib/package.json +0 -105
- package/lib/services/a11y/setup.d.ts +0 -2
- package/lib/services/a11y/setup.js +0 -15
- package/lib/services/a11y/setup.test.d.ts +0 -1
- package/lib/services/a11y/setup.test.js +0 -88
- package/lib/services/advertHandlers/discardAdBreak.d.ts +0 -2
- package/lib/services/advertHandlers/discardAdBreak.js +0 -9
- package/lib/services/advertHandlers/discardAdBreak.test.d.ts +0 -1
- package/lib/services/advertHandlers/discardAdBreak.test.js +0 -40
- package/lib/services/advertHandlers/handlePreRolls.d.ts +0 -2
- package/lib/services/advertHandlers/handlePreRolls.js +0 -136
- package/lib/services/advertHandlers/handlePrerolls.test.d.ts +0 -1
- package/lib/services/advertHandlers/handlePrerolls.test.js +0 -112
- package/lib/services/avTypeHandlers/getAVType.d.ts +0 -2
- package/lib/services/avTypeHandlers/getAVType.js +0 -9
- package/lib/services/avTypeHandlers/getAVType.test.d.ts +0 -1
- package/lib/services/avTypeHandlers/getAVType.test.js +0 -18
- package/lib/services/backButton/backButton.d.ts +0 -2
- package/lib/services/backButton/backButton.js +0 -24
- package/lib/services/cdnProviders/cdnProviders.d.ts +0 -4
- package/lib/services/cdnProviders/cdnProviders.js +0 -24
- package/lib/services/cdnProviders/cndProviders.test.d.ts +0 -1
- package/lib/services/cdnProviders/cndProviders.test.js +0 -22
- package/lib/services/chapterHandlers/chapterHandler.d.ts +0 -35
- package/lib/services/chapterHandlers/chapterHandler.js +0 -230
- package/lib/services/drmHandlers/constants.d.ts +0 -15
- package/lib/services/drmHandlers/constants.js +0 -13
- package/lib/services/drmHandlers/decideprofile.d.ts +0 -2
- package/lib/services/drmHandlers/decideprofile.js +0 -57
- package/lib/services/drmHandlers/decideprofile.test.d.ts +0 -1
- package/lib/services/drmHandlers/decideprofile.test.js +0 -38
- package/lib/services/drmHandlers/drmhandlers.d.ts +0 -2
- package/lib/services/drmHandlers/drmhandlers.js +0 -2
- package/lib/services/drmHandlers/utils.d.ts +0 -5
- package/lib/services/drmHandlers/utils.js +0 -29
- package/lib/services/drmHandlers/utils.test.d.ts +0 -1
- package/lib/services/drmHandlers/utils.test.js +0 -81
- package/lib/services/drmHandlers/verifydrm.d.ts +0 -2
- package/lib/services/drmHandlers/verifydrm.js +0 -39
- package/lib/services/drmHandlers/verifydrm.test.d.ts +0 -1
- package/lib/services/drmHandlers/verifydrm.test.js +0 -112
- package/lib/services/errors/errorBackground.test.d.ts +0 -1
- package/lib/services/errors/errorBackground.test.js +0 -48
- package/lib/services/errors/errorHandler.d.ts +0 -5
- package/lib/services/errors/errorHandler.js +0 -59
- package/lib/services/errors/errorHandler.test.d.ts +0 -1
- package/lib/services/errors/errorHandler.test.js +0 -148
- package/lib/services/errors/errorRetryHandler.d.ts +0 -2
- package/lib/services/errors/errorRetryHandler.js +0 -14
- package/lib/services/errors/errorRetryHandler.test.d.ts +0 -1
- package/lib/services/errors/errorRetryHandler.test.js +0 -62
- package/lib/services/errors/errorText.d.ts +0 -2
- package/lib/services/errors/errorText.js +0 -62
- package/lib/services/errors/errorText.test.d.ts +0 -1
- package/lib/services/errors/errorText.test.js +0 -66
- package/lib/services/eventListenerHandlers/removeEventListeners.d.ts +0 -2
- package/lib/services/eventListenerHandlers/removeEventListeners.js +0 -24
- package/lib/services/eventListenerHandlers/removeEventListeners.test.d.ts +0 -1
- package/lib/services/eventListenerHandlers/removeEventListeners.test.js +0 -36
- package/lib/services/infoPanel/infoPanel.d.ts +0 -3
- package/lib/services/infoPanel/infoPanel.js +0 -35
- package/lib/services/infoPanel/infoPanel.test.d.ts +0 -1
- package/lib/services/infoPanel/infoPanel.test.js +0 -70
- package/lib/services/keyboardHandlers/resolvekeypress.d.ts +0 -2
- package/lib/services/keyboardHandlers/resolvekeypress.js +0 -63
- package/lib/services/keyboardHandlers/resolvekeypress.test.d.ts +0 -1
- package/lib/services/keyboardHandlers/resolvekeypress.test.js +0 -92
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.d.ts +0 -6
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.js +0 -36
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +0 -2
- package/lib/services/liveStreamHandlers/handleLiveStreamControls.test.js +0 -65
- package/lib/services/localStorageHandlers/localStorageHandlers.d.ts +0 -4
- package/lib/services/localStorageHandlers/localStorageHandlers.js +0 -36
- package/lib/services/localStorageHandlers/localStorageHandlers.test.d.ts +0 -1
- package/lib/services/localStorageHandlers/localStorageHandlers.test.js +0 -104
- package/lib/services/nicamHandlers/nicamhandler.d.ts +0 -6
- package/lib/services/nicamHandlers/nicamhandler.js +0 -69
- package/lib/services/nicamHandlers/nicamhandler.test.d.ts +0 -1
- package/lib/services/nicamHandlers/nicamhandler.test.js +0 -127
- package/lib/services/npoPlayerAPI/contants.d.ts +0 -25
- package/lib/services/npoPlayerAPI/contants.js +0 -11
- package/lib/services/npoPlayerAPI/npoPlayerAPI.d.ts +0 -53
- package/lib/services/npoPlayerAPI/npoPlayerAPI.js +0 -193
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.d.ts +0 -1
- package/lib/services/npoPlayerAPI/npoPlayerAPI.test.js +0 -127
- package/lib/services/npoPlayerAPI/playerModules.d.ts +0 -1
- package/lib/services/npoPlayerAPI/playerModules.js +0 -48
- package/lib/services/preferences/handlePreferences.d.ts +0 -2
- package/lib/services/preferences/handlePreferences.js +0 -47
- package/lib/services/preferences/handlePreferences.test.d.ts +0 -1
- package/lib/services/preferences/handlePreferences.test.js +0 -138
- package/lib/services/segmentHandlers/addSegmentEventListeners.d.ts +0 -2
- package/lib/services/segmentHandlers/addSegmentEventListeners.js +0 -15
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.d.ts +0 -1
- package/lib/services/segmentHandlers/addSegmentEventListeners.test.js +0 -44
- package/lib/services/segmentHandlers/convertFragmentToSegment.d.ts +0 -2
- package/lib/services/segmentHandlers/convertFragmentToSegment.js +0 -8
- package/lib/services/segmentHandlers/convertFragmentToSegment.test.d.ts +0 -1
- package/lib/services/segmentHandlers/convertFragmentToSegment.test.js +0 -17
- package/lib/services/segmentHandlers/handleSegmentSeek.d.ts +0 -5
- package/lib/services/segmentHandlers/handleSegmentSeek.js +0 -15
- package/lib/services/segmentHandlers/handleSegmentSeek.test.d.ts +0 -1
- package/lib/services/segmentHandlers/handleSegmentSeek.test.js +0 -73
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.d.ts +0 -2
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.js +0 -21
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.d.ts +0 -1
- package/lib/services/segmentHandlers/handleSegmentTimeChanged.test.js +0 -43
- package/lib/services/segmentHandlers/initSegment.d.ts +0 -7
- package/lib/services/segmentHandlers/initSegment.js +0 -10
- package/lib/services/segmentHandlers/initSegment.test.d.ts +0 -1
- package/lib/services/segmentHandlers/initSegment.test.js +0 -38
- package/lib/services/segmentHandlers/isSegmentInBounds.d.ts +0 -2
- package/lib/services/segmentHandlers/isSegmentInBounds.js +0 -5
- package/lib/services/segmentHandlers/isSegmentInBounds.test.d.ts +0 -1
- package/lib/services/segmentHandlers/isSegmentInBounds.test.js +0 -27
- package/lib/services/segmentHandlers/setSegmentMarkers.d.ts +0 -2
- package/lib/services/segmentHandlers/setSegmentMarkers.js +0 -25
- package/lib/services/segmentHandlers/setSegmentMarkers.test.d.ts +0 -1
- package/lib/services/segmentHandlers/setSegmentMarkers.test.js +0 -32
- package/lib/services/services.d.ts +0 -34
- package/lib/services/services.js +0 -129
- package/lib/services/streamFetchHandler/fetchStream.d.ts +0 -2
- package/lib/services/streamFetchHandler/fetchStream.js +0 -49
- package/lib/services/streamFetchHandler/fetchstream.test.d.ts +0 -1
- package/lib/services/streamFetchHandler/fetchstream.test.js +0 -92
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.d.ts +0 -6
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.js +0 -80
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.test.d.ts +0 -1
- package/lib/services/streamoptionsHandlers/streamOptionsHandler.test.js +0 -199
- package/lib/services/trackingHandlers/eventBinding.d.ts +0 -2
- package/lib/services/trackingHandlers/eventBinding.js +0 -129
- package/lib/services/trackingHandlers/eventBinding.test.d.ts +0 -1
- package/lib/services/trackingHandlers/eventBinding.test.js +0 -145
- package/lib/services/trackingHandlers/eventLogging.d.ts +0 -2
- package/lib/services/trackingHandlers/eventLogging.js +0 -37
- package/lib/services/trackingHandlers/eventLogging.test.d.ts +0 -1
- package/lib/services/trackingHandlers/eventLogging.test.js +0 -63
- package/lib/services/trackingHandlers/index.d.ts +0 -3
- package/lib/services/trackingHandlers/index.js +0 -3
- package/lib/services/trackingHandlers/playerTrackerInit.d.ts +0 -2
- package/lib/services/trackingHandlers/playerTrackerInit.js +0 -20
- package/lib/services/trackingHandlers/playerTrackerInit.test.d.ts +0 -1
- package/lib/services/trackingHandlers/playerTrackerInit.test.js +0 -75
- package/lib/services/trackingHandlers/playerTrackerStart.d.ts +0 -2
- package/lib/services/trackingHandlers/playerTrackerStart.js +0 -28
- package/lib/services/trackingHandlers/playerTrackerStart.test.d.ts +0 -1
- package/lib/services/trackingHandlers/playerTrackerStart.test.js +0 -76
- package/lib/services/trackingHandlers/streamTrackerInit.d.ts +0 -3
- package/lib/services/trackingHandlers/streamTrackerInit.js +0 -27
- package/lib/services/trackingHandlers/streamTrackerInit.test.d.ts +0 -1
- package/lib/services/trackingHandlers/streamTrackerInit.test.js +0 -84
- package/lib/services/uiHandlers/uiVisiblityHandler.d.ts +0 -3
- package/lib/services/uiHandlers/uiVisiblityHandler.js +0 -32
- package/lib/services/uiHandlers/uiVisiblityHandler.test.d.ts +0 -1
- package/lib/services/uiHandlers/uiVisiblityHandler.test.js +0 -62
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +0 -2
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.js +0 -6
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +0 -1
- package/lib/services/verticalVideoHandlers/handleVerticalVideoControls.test.js +0 -23
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.d.ts +0 -2
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.js +0 -26
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.test.d.ts +0 -1
- package/lib/services/verticalVideoHandlers/handleVerticalVideoSettings.test.js +0 -73
- package/lib/src/js/markers/updateLiveMarkers.d.ts +0 -9
- package/lib/src/js/markers/updateLiveMarkers.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/handleoffsets.d.ts +0 -4
- package/lib/src/js/playeractions/handlers/handleoffsets.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/mediasessionactions.d.ts +0 -7
- package/lib/src/js/playeractions/handlers/processplayerconfig.d.ts +0 -3
- package/lib/src/js/playeractions/handlers/processplayerconfig.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/processsourceconfig.d.ts +0 -15
- package/lib/src/js/playeractions/handlers/processsourceconfig.test.d.ts +0 -1
- package/lib/src/js/playeractions/handlers/removereplayclass.d.ts +0 -2
- package/lib/src/js/playeractions/handlers/removereplayclass.test.d.ts +0 -1
- package/lib/src/js/playeractions/playeractions.d.ts +0 -3
- package/lib/src/js/settings/localization.d.ts +0 -82
- package/lib/src/js/settings/settings.user-agent.d.ts +0 -1
- package/lib/src/js/utilities/utilities.element.d.ts +0 -16
- package/lib/src/js/utilities/utilities.element.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.jwt.d.ts +0 -5
- package/lib/src/js/utilities/utilities.jwt.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.locale.d.ts +0 -2
- package/lib/src/js/utilities/utilities.locale.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.module.d.ts +0 -1
- package/lib/src/js/utilities/utilities.module.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.prid.d.ts +0 -6
- package/lib/src/js/utilities/utilities.prid.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.stream.d.ts +0 -7
- package/lib/src/js/utilities/utilities.stream.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.text.d.ts +0 -1
- package/lib/src/js/utilities/utilities.text.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.time.d.ts +0 -1
- package/lib/src/js/utilities/utilities.time.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.url.d.ts +0 -3
- package/lib/src/js/utilities/utilities.url.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.user-agent.d.ts +0 -3
- package/lib/src/js/utilities/utilities.user-agent.test.d.ts +0 -1
- package/lib/src/js/utilities/utilities.version.d.ts +0 -1
- package/lib/src/js/utilities/utilities.version.test.d.ts +0 -1
- package/lib/src/npoplayer.d.ts +0 -64
- package/lib/src/npoplayer.test.d.ts +0 -1
- package/lib/src/services/a11y/setup.d.ts +0 -2
- package/lib/src/services/a11y/setup.test.d.ts +0 -1
- package/lib/src/services/advertHandlers/discardAdBreak.d.ts +0 -2
- package/lib/src/services/advertHandlers/discardAdBreak.test.d.ts +0 -1
- package/lib/src/services/advertHandlers/handlePreRolls.d.ts +0 -2
- package/lib/src/services/advertHandlers/handlePrerolls.test.d.ts +0 -1
- package/lib/src/services/avTypeHandlers/getAVType.d.ts +0 -2
- package/lib/src/services/avTypeHandlers/getAVType.test.d.ts +0 -1
- package/lib/src/services/backButton/backButton.d.ts +0 -2
- package/lib/src/services/cdnProviders/cdnProviders.d.ts +0 -4
- package/lib/src/services/cdnProviders/cndProviders.test.d.ts +0 -1
- package/lib/src/services/chapterHandlers/chapterHandler.d.ts +0 -35
- package/lib/src/services/drmHandlers/constants.d.ts +0 -15
- package/lib/src/services/drmHandlers/decideprofile.d.ts +0 -2
- package/lib/src/services/drmHandlers/decideprofile.test.d.ts +0 -1
- package/lib/src/services/drmHandlers/drmhandlers.d.ts +0 -2
- package/lib/src/services/drmHandlers/utils.d.ts +0 -5
- package/lib/src/services/drmHandlers/utils.test.d.ts +0 -1
- package/lib/src/services/drmHandlers/verifydrm.d.ts +0 -2
- package/lib/src/services/drmHandlers/verifydrm.test.d.ts +0 -1
- package/lib/src/services/errors/errorBackground.test.d.ts +0 -1
- package/lib/src/services/errors/errorHandler.d.ts +0 -5
- package/lib/src/services/errors/errorHandler.test.d.ts +0 -1
- package/lib/src/services/errors/errorRetryHandler.d.ts +0 -2
- package/lib/src/services/errors/errorRetryHandler.test.d.ts +0 -1
- package/lib/src/services/errors/errorText.d.ts +0 -2
- package/lib/src/services/errors/errorText.test.d.ts +0 -1
- package/lib/src/services/eventListenerHandlers/removeEventListeners.d.ts +0 -2
- package/lib/src/services/eventListenerHandlers/removeEventListeners.test.d.ts +0 -1
- package/lib/src/services/infoPanel/infoPanel.d.ts +0 -3
- package/lib/src/services/infoPanel/infoPanel.test.d.ts +0 -1
- package/lib/src/services/keyboardHandlers/resolvekeypress.d.ts +0 -2
- package/lib/src/services/keyboardHandlers/resolvekeypress.test.d.ts +0 -1
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.d.ts +0 -6
- package/lib/src/services/liveStreamHandlers/handleLiveStreamControls.test.d.ts +0 -2
- package/lib/src/services/localStorageHandlers/localStorageHandlers.d.ts +0 -4
- package/lib/src/services/localStorageHandlers/localStorageHandlers.test.d.ts +0 -1
- package/lib/src/services/nicamHandlers/nicamhandler.d.ts +0 -6
- package/lib/src/services/nicamHandlers/nicamhandler.test.d.ts +0 -1
- package/lib/src/services/npoPlayerAPI/contants.d.ts +0 -25
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.d.ts +0 -53
- package/lib/src/services/npoPlayerAPI/npoPlayerAPI.test.d.ts +0 -1
- package/lib/src/services/npoPlayerAPI/playerModules.d.ts +0 -1
- package/lib/src/services/preferences/handlePreferences.d.ts +0 -2
- package/lib/src/services/preferences/handlePreferences.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/addSegmentEventListeners.d.ts +0 -2
- package/lib/src/services/segmentHandlers/addSegmentEventListeners.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.d.ts +0 -2
- package/lib/src/services/segmentHandlers/convertFragmentToSegment.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/handleSegmentSeek.d.ts +0 -5
- package/lib/src/services/segmentHandlers/handleSegmentSeek.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.d.ts +0 -2
- package/lib/src/services/segmentHandlers/handleSegmentTimeChanged.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/initSegment.d.ts +0 -7
- package/lib/src/services/segmentHandlers/initSegment.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/isSegmentInBounds.d.ts +0 -2
- package/lib/src/services/segmentHandlers/isSegmentInBounds.test.d.ts +0 -1
- package/lib/src/services/segmentHandlers/setSegmentMarkers.d.ts +0 -2
- package/lib/src/services/segmentHandlers/setSegmentMarkers.test.d.ts +0 -1
- package/lib/src/services/services.d.ts +0 -34
- package/lib/src/services/streamFetchHandler/fetchStream.d.ts +0 -2
- package/lib/src/services/streamFetchHandler/fetchstream.test.d.ts +0 -1
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.d.ts +0 -6
- package/lib/src/services/streamoptionsHandlers/streamOptionsHandler.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/eventBinding.d.ts +0 -2
- package/lib/src/services/trackingHandlers/eventBinding.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/eventLogging.d.ts +0 -2
- package/lib/src/services/trackingHandlers/eventLogging.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/index.d.ts +0 -3
- package/lib/src/services/trackingHandlers/playerTrackerInit.d.ts +0 -2
- package/lib/src/services/trackingHandlers/playerTrackerInit.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/playerTrackerStart.d.ts +0 -2
- package/lib/src/services/trackingHandlers/playerTrackerStart.test.d.ts +0 -1
- package/lib/src/services/trackingHandlers/streamTrackerInit.d.ts +0 -3
- package/lib/src/services/trackingHandlers/streamTrackerInit.test.d.ts +0 -1
- package/lib/src/services/uiHandlers/uiVisiblityHandler.d.ts +0 -3
- package/lib/src/services/uiHandlers/uiVisiblityHandler.test.d.ts +0 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.d.ts +0 -2
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoControls.test.d.ts +0 -1
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoSettings.d.ts +0 -2
- package/lib/src/services/verticalVideoHandlers/handleVerticalVideoSettings.test.d.ts +0 -1
- package/lib/src/types/classes.d.ts +0 -10
- package/lib/src/types/events.d.ts +0 -98
- package/lib/src/types/interfaces.d.ts +0 -246
- package/lib/src/ui/components/adbutton.d.ts +0 -4
- package/lib/src/ui/components/adlabel.d.ts +0 -4
- package/lib/src/ui/components/audio/controlbar.d.ts +0 -3
- package/lib/src/ui/components/backButton.d.ts +0 -2
- package/lib/src/ui/components/buttons.d.ts +0 -42
- package/lib/src/ui/components/controlbar.d.ts +0 -3
- package/lib/src/ui/components/ctabar.d.ts +0 -4
- package/lib/src/ui/components/infopanel/infopanel.d.ts +0 -3
- package/lib/src/ui/components/infopanel/togglebutton.d.ts +0 -3
- package/lib/src/ui/components/playnext.d.ts +0 -4
- package/lib/src/ui/components/seekbar.d.ts +0 -6
- package/lib/src/ui/components/settingspanel.d.ts +0 -3
- package/lib/src/ui/components/titlebar.d.ts +0 -3
- package/lib/src/ui/components/topbar.d.ts +0 -3
- package/lib/src/ui/components/verticalvideo/controlbar.d.ts +0 -3
- package/lib/src/ui/components/verticalvideo/settingspanel.d.ts +0 -2
- package/lib/src/ui/handlers/accessibilityhandler.d.ts +0 -2
- package/lib/src/ui/handlers/accessibilityhandler.test.d.ts +0 -1
- package/lib/src/ui/handlers/domhandlers.d.ts +0 -3
- package/lib/src/ui/handlers/domhandlers.test.d.ts +0 -1
- package/lib/src/ui/handlers/listboxhandlers.d.ts +0 -19
- package/lib/src/ui/handlers/playnextscreen.d.ts +0 -6
- package/lib/src/ui/handlers/playnextscreen.test.d.ts +0 -1
- package/lib/src/ui/handlers/timecontrolhandlers.d.ts +0 -3
- package/lib/src/ui/uicontainer.d.ts +0 -3
- package/lib/src/ui/uicontainer.test.d.ts +0 -1
- package/lib/tests/jest.setup-files-after-env.d.ts +0 -0
- package/lib/tests/jest.setup-files-after-env.js +0 -6
- package/lib/tests/jest.setup-tests.d.ts +0 -1
- package/lib/tests/jest.setup-tests.js +0 -2
- package/lib/tests/mocks/mockLogEmitter.d.ts +0 -2
- package/lib/tests/mocks/mockLogEmitter.js +0 -20
- package/lib/tests/mocks/mockNpoplayer.d.ts +0 -2
- package/lib/tests/mocks/mockNpoplayer.js +0 -105
- package/lib/tests/mocks/mockPlayerAPI.d.ts +0 -3
- package/lib/tests/mocks/mockPlayerAPI.js +0 -195
- package/lib/tests/mocks/mockPlayerUi.d.ts +0 -64
- package/lib/tests/mocks/mockPlayerUi.js +0 -251
- package/lib/tests/mocks/mockStreamObject.d.ts +0 -2
- package/lib/tests/mocks/mockStreamObject.js +0 -21
- package/lib/tests/mocks/playerContextMock.d.ts +0 -7
- package/lib/tests/mocks/playerContextMock.js +0 -153
- package/lib/types/classes.d.ts +0 -10
- package/lib/types/classes.js +0 -15
- package/lib/types/events.d.ts +0 -98
- package/lib/types/events.js +0 -184
- package/lib/types/interfaces.d.ts +0 -246
- package/lib/types/interfaces.js +0 -20
- package/lib/ui/components/adbutton.d.ts +0 -4
- package/lib/ui/components/adbutton.js +0 -12
- package/lib/ui/components/adlabel.d.ts +0 -4
- package/lib/ui/components/adlabel.js +0 -8
- package/lib/ui/components/audio/controlbar.d.ts +0 -3
- package/lib/ui/components/audio/controlbar.js +0 -23
- package/lib/ui/components/backButton.d.ts +0 -2
- package/lib/ui/components/backButton.js +0 -8
- package/lib/ui/components/buttons.d.ts +0 -42
- package/lib/ui/components/buttons.js +0 -144
- package/lib/ui/components/controlbar.d.ts +0 -3
- package/lib/ui/components/controlbar.js +0 -40
- package/lib/ui/components/ctabar.d.ts +0 -4
- package/lib/ui/components/ctabar.js +0 -28
- package/lib/ui/components/infopanel/infopanel.d.ts +0 -3
- package/lib/ui/components/infopanel/infopanel.js +0 -42
- package/lib/ui/components/infopanel/togglebutton.d.ts +0 -3
- package/lib/ui/components/infopanel/togglebutton.js +0 -18
- package/lib/ui/components/playnext.d.ts +0 -4
- package/lib/ui/components/playnext.js +0 -10
- package/lib/ui/components/seekbar.d.ts +0 -6
- package/lib/ui/components/seekbar.js +0 -26
- package/lib/ui/components/settingspanel.d.ts +0 -3
- package/lib/ui/components/settingspanel.js +0 -159
- package/lib/ui/components/titlebar.d.ts +0 -3
- package/lib/ui/components/titlebar.js +0 -14
- package/lib/ui/components/topbar.d.ts +0 -3
- package/lib/ui/components/topbar.js +0 -36
- package/lib/ui/components/verticalvideo/controlbar.d.ts +0 -3
- package/lib/ui/components/verticalvideo/controlbar.js +0 -40
- package/lib/ui/components/verticalvideo/settingspanel.d.ts +0 -2
- package/lib/ui/components/verticalvideo/settingspanel.js +0 -25
- package/lib/ui/handlers/accessibilityhandler.d.ts +0 -2
- package/lib/ui/handlers/accessibilityhandler.js +0 -22
- package/lib/ui/handlers/accessibilityhandler.test.d.ts +0 -1
- package/lib/ui/handlers/accessibilityhandler.test.js +0 -54
- package/lib/ui/handlers/domhandlers.d.ts +0 -3
- package/lib/ui/handlers/domhandlers.js +0 -7
- package/lib/ui/handlers/domhandlers.test.d.ts +0 -1
- package/lib/ui/handlers/domhandlers.test.js +0 -31
- package/lib/ui/handlers/listboxhandlers.d.ts +0 -19
- package/lib/ui/handlers/listboxhandlers.js +0 -43
- package/lib/ui/handlers/playnextscreen.d.ts +0 -6
- package/lib/ui/handlers/playnextscreen.js +0 -28
- package/lib/ui/handlers/playnextscreen.test.d.ts +0 -1
- package/lib/ui/handlers/playnextscreen.test.js +0 -57
- package/lib/ui/handlers/timecontrolhandlers.d.ts +0 -3
- package/lib/ui/handlers/timecontrolhandlers.js +0 -17
- package/lib/ui/uicontainer.d.ts +0 -3
- package/lib/ui/uicontainer.js +0 -80
- package/lib/ui/uicontainer.test.d.ts +0 -1
- package/lib/ui/uicontainer.test.js +0 -84
- package/src/style/components/_advert.scss +0 -119
- package/src/style/components/_audio.scss +0 -4
- package/src/style/components/_back-button.scss +0 -42
- package/src/style/components/_buffering.scss +0 -69
- package/src/style/components/_controlbars.scss +0 -26
- package/src/style/components/_error.scss +0 -71
- package/src/style/components/_hugeplaybacktogglebutton.scss +0 -97
- package/src/style/components/_icons.scss +0 -177
- package/src/style/components/_infopanel.scss +0 -105
- package/src/style/components/_metadata.scss +0 -52
- package/src/style/components/_nicam.scss +0 -117
- package/src/style/components/_playnext.scss +0 -72
- package/src/style/components/_poster.scss +0 -3
- package/src/style/components/_replay.scss +0 -25
- package/src/style/components/_seekbar.scss +0 -114
- package/src/style/components/_seekbarthumbnail.scss +0 -61
- package/src/style/components/_settingspanel.scss +0 -290
- package/src/style/components/_subtitles.scss +0 -78
- package/src/style/components/_textbuttons.scss +0 -82
- package/src/style/components/_volumeslider.scss +0 -94
- package/src/style/components/audio/_bottombar.scss +0 -54
- package/src/style/components/audio/_buffering.scss +0 -8
- package/src/style/components/audio/_errors.scss +0 -13
- package/src/style/components/audio/_metadata.scss +0 -60
- package/src/style/components/audio/_playbutton.scss +0 -54
- package/src/style/components/audio/_poster.scss +0 -19
- package/src/style/components/audio/_replay.scss +0 -28
- package/src/style/components/audio/_seekbar.scss +0 -28
- package/src/style/components/audio/_topbar.scss +0 -35
- package/src/style/components/audio/_vars.scss +0 -5
- package/src/style/components/audio/_volumeslider.scss +0 -41
- package/src/style/components/vertical-video/_bottombar.scss +0 -60
- package/src/style/components/vertical-video/_buttons.scss +0 -25
- package/src/style/components/vertical-video/_hugeplaybacktogglebutton.scss +0 -34
- package/src/style/components/vertical-video/_seekbar.scss +0 -19
- package/src/style/components/vertical-video/_settingsbutton.scss +0 -7
- package/src/style/components/vertical-video/_settingspanel.scss +0 -31
- package/src/style/components/vertical-video/_shortvideo.scss +0 -14
- package/src/style/components/vertical-video/_subtitles.scss +0 -3
- package/src/style/components/vertical-video/_topbar.scss +0 -58
- package/src/style/components/vertical-video/_volumeslider.scss +0 -9
- package/src/style/npoplayer.css +0 -908
- package/src/style/npoplayer.scss +0 -58
- package/src/style/variants/_player-audio-only.scss +0 -32
- package/src/style/variants/_player-audio.scss +0 -55
- package/src/style/variants/_player-base.scss +0 -101
- package/src/style/variants/_player-debug.scss +0 -14
- package/src/style/variants/_player-large.scss +0 -99
- package/src/style/variants/_player-medium.scss +0 -68
- package/src/style/variants/_player-small.scss +0 -203
- package/src/style/variants/_player-vertical.scss +0 -23
- package/src/style/vars/_audio.scss +0 -5
- package/src/style/vars/_colors.scss +0 -25
- package/src/style/vars/_fonts.scss +0 -26
- package/src/style/vars/_icons.scss +0 -29
- package/src/style/vars/_z-index.scss +0 -1
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { PlayerEvent, ViewMode } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
import { logEvent } from './eventLogging';
|
|
3
|
-
const logEventHandlers = new Map();
|
|
4
|
-
export function bindPlayerEvents(playerContext) {
|
|
5
|
-
const { player, streamObject, adBreakActive } = playerContext.npoPlayer;
|
|
6
|
-
const { isLiveStream } = streamObject.stream;
|
|
7
|
-
if (player == undefined)
|
|
8
|
-
return;
|
|
9
|
-
let isNewSource = true;
|
|
10
|
-
let data = {};
|
|
11
|
-
const timeDifference = (time) => {
|
|
12
|
-
if (time === undefined || time === null)
|
|
13
|
-
return;
|
|
14
|
-
const currentUnixTime = Date.now() / 1000;
|
|
15
|
-
const timeOffset = time > 0 ? time - currentUnixTime : time;
|
|
16
|
-
const currentTime = isLiveStream ? timeOffset : time;
|
|
17
|
-
data = { stream_position: +currentTime.toFixed(3) };
|
|
18
|
-
};
|
|
19
|
-
const logEventHandler = (event) => {
|
|
20
|
-
return (e) => {
|
|
21
|
-
timeDifference(e.time);
|
|
22
|
-
logEvent({ playerContext, event, data });
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
const timeShiftHandler = (e) => {
|
|
26
|
-
const from = data.stream_position ?? 0;
|
|
27
|
-
const currentTime = playerContext.player.getCurrentTime();
|
|
28
|
-
const to = e.target - currentTime + from;
|
|
29
|
-
data = {
|
|
30
|
-
seek_from: +from.toFixed(3),
|
|
31
|
-
stream_position: +to.toFixed(3)
|
|
32
|
-
};
|
|
33
|
-
logEvent({ playerContext, event: 'seek', data });
|
|
34
|
-
};
|
|
35
|
-
const seekHandler = (e) => {
|
|
36
|
-
data = {
|
|
37
|
-
seek_from: e.position,
|
|
38
|
-
stream_position: e.seekTarget
|
|
39
|
-
};
|
|
40
|
-
logEvent({ playerContext, event: 'seek', data });
|
|
41
|
-
};
|
|
42
|
-
const handleSourceLoaded = (e) => {
|
|
43
|
-
timeDifference(e.time);
|
|
44
|
-
isNewSource = true;
|
|
45
|
-
if (isLiveStream) {
|
|
46
|
-
logEvent({ playerContext, event: 'stop', data });
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
const handlePlaybackFinished = (e) => {
|
|
50
|
-
timeDifference(e.time);
|
|
51
|
-
logEvent({ playerContext, event: 'complete', data });
|
|
52
|
-
logEvent({ playerContext, event: 'stop', data });
|
|
53
|
-
isNewSource = true;
|
|
54
|
-
};
|
|
55
|
-
const readyHandler = (e) => {
|
|
56
|
-
timeDifference(e.time);
|
|
57
|
-
if (isLiveStream) {
|
|
58
|
-
data = { stream_position: 0 };
|
|
59
|
-
}
|
|
60
|
-
logEvent({ playerContext, event: 'load_complete', data });
|
|
61
|
-
};
|
|
62
|
-
const handlePlay = (e) => {
|
|
63
|
-
timeDifference(e.time);
|
|
64
|
-
if (!isNewSource && e.issuer !== 'ui-seek') {
|
|
65
|
-
logEvent({ playerContext, event: 'resume', data });
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const pausedHandler = (e) => {
|
|
69
|
-
timeDifference(e.time);
|
|
70
|
-
if (e.issuer !== 'ui-seek') {
|
|
71
|
-
logEvent({ playerContext, event: 'pause', data });
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const handleTime = (e) => {
|
|
75
|
-
timeDifference(e.time);
|
|
76
|
-
if (isNewSource && !adBreakActive) {
|
|
77
|
-
logEvent({ playerContext, event: 'start', data });
|
|
78
|
-
isNewSource = false;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
logEvent({ playerContext, event: 'time', data });
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
const handleViewModeChange = (e) => {
|
|
85
|
-
const newViewMode = player.getViewMode();
|
|
86
|
-
timeDifference(e.time);
|
|
87
|
-
if (newViewMode === ViewMode.Fullscreen) {
|
|
88
|
-
logEvent({ playerContext, event: 'fullscreen', data });
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
logEvent({ playerContext, event: 'windowed', data });
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
const stopBeforeUnload = (e) => {
|
|
95
|
-
timeDifference(e.time);
|
|
96
|
-
logEvent({ playerContext, event: 'stop', data });
|
|
97
|
-
};
|
|
98
|
-
const clearAllEvents = () => {
|
|
99
|
-
for (const [key, value] of logEventHandlers) {
|
|
100
|
-
player.off(key, value);
|
|
101
|
-
}
|
|
102
|
-
window.removeEventListener('beforeunload', logEventHandlers.get('stopBeforeUnload'));
|
|
103
|
-
logEventHandlers.clear();
|
|
104
|
-
};
|
|
105
|
-
clearAllEvents();
|
|
106
|
-
const playerEvents = [
|
|
107
|
-
{ event: PlayerEvent.Ready, handler: readyHandler },
|
|
108
|
-
{ event: PlayerEvent.Paused, handler: pausedHandler },
|
|
109
|
-
{ event: PlayerEvent.Play, handler: handlePlay },
|
|
110
|
-
{ event: PlayerEvent.SourceLoaded, handler: handleSourceLoaded },
|
|
111
|
-
{ event: PlayerEvent.StallStarted, name: 'buffering' },
|
|
112
|
-
{ event: PlayerEvent.StallEnded, name: 'buffering_complete' },
|
|
113
|
-
{ event: PlayerEvent.PlaybackFinished, handler: handlePlaybackFinished },
|
|
114
|
-
{ event: PlayerEvent.SourceUnloaded, name: 'stop' },
|
|
115
|
-
{ event: PlayerEvent.Seek, handler: seekHandler },
|
|
116
|
-
{ event: PlayerEvent.TimeShift, handler: timeShiftHandler },
|
|
117
|
-
{ event: PlayerEvent.TimeChanged, handler: handleTime },
|
|
118
|
-
{ event: PlayerEvent.ViewModeChanged, handler: handleViewModeChange },
|
|
119
|
-
{ event: PlayerEvent.Destroy, handler: clearAllEvents }
|
|
120
|
-
];
|
|
121
|
-
for (const { event, name, handler } of playerEvents) {
|
|
122
|
-
const effectiveName = name ?? 'unnamed_event';
|
|
123
|
-
const eventHandler = handler || logEventHandler(effectiveName);
|
|
124
|
-
logEventHandlers.set(event, eventHandler);
|
|
125
|
-
player.on(event, eventHandler);
|
|
126
|
-
}
|
|
127
|
-
logEventHandlers.set('beforeunload', stopBeforeUnload);
|
|
128
|
-
window.addEventListener('beforeunload', stopBeforeUnload);
|
|
129
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { PlayerEvent, ViewMode } from 'bitmovin-player/modules/bitmovinplayer-core';
|
|
2
|
-
import { bindPlayerEvents } from './eventBinding';
|
|
3
|
-
import { logEvent } from './eventLogging';
|
|
4
|
-
import { createPlayerContextMock } from '../../../tests/mocks/playerContextMock';
|
|
5
|
-
jest.mock('./eventLogging', () => ({
|
|
6
|
-
logEvent: jest.fn()
|
|
7
|
-
}));
|
|
8
|
-
describe('bindPlayerEvents', () => {
|
|
9
|
-
let mockPlayer;
|
|
10
|
-
let playerContextMock;
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
mockPlayer = {
|
|
13
|
-
on: jest.fn(),
|
|
14
|
-
off: jest.fn(),
|
|
15
|
-
getViewMode: jest.fn().mockReturnValue(ViewMode.Inline)
|
|
16
|
-
};
|
|
17
|
-
playerContextMock = createPlayerContextMock({
|
|
18
|
-
npoPlayer: {
|
|
19
|
-
player: mockPlayer,
|
|
20
|
-
streamObject: {
|
|
21
|
-
stream: { isLiveStream: false }
|
|
22
|
-
},
|
|
23
|
-
adBreakActive: false,
|
|
24
|
-
logEmitter: { emit: jest.fn() }
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
jest.clearAllMocks();
|
|
28
|
-
});
|
|
29
|
-
it('should handle the "beforeunload" event correctly', () => {
|
|
30
|
-
const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
|
|
31
|
-
bindPlayerEvents(playerContextMock);
|
|
32
|
-
expect(addEventListenerSpy).toHaveBeenCalledWith('beforeunload', expect.any(Function));
|
|
33
|
-
const beforeUnloadHandler = addEventListenerSpy.mock.calls.find(([event]) => event === 'beforeunload')?.[1];
|
|
34
|
-
if (beforeUnloadHandler && typeof beforeUnloadHandler === 'function') {
|
|
35
|
-
beforeUnloadHandler({ time: 123 });
|
|
36
|
-
}
|
|
37
|
-
addEventListenerSpy.mockRestore();
|
|
38
|
-
});
|
|
39
|
-
it('should log events when handlers are triggered', () => {
|
|
40
|
-
bindPlayerEvents(playerContextMock);
|
|
41
|
-
const timeChangedHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.TimeChanged)?.[1];
|
|
42
|
-
if (timeChangedHandler && typeof timeChangedHandler === 'function') {
|
|
43
|
-
timeChangedHandler({ time: 456 });
|
|
44
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
45
|
-
playerContext: playerContextMock,
|
|
46
|
-
event: 'start',
|
|
47
|
-
data: expect.objectContaining({ stream_position: expect.any(Number) })
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
it('should handle seek events correctly', () => {
|
|
52
|
-
bindPlayerEvents(playerContextMock);
|
|
53
|
-
const seekHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.Seek)?.[1];
|
|
54
|
-
if (seekHandler && typeof seekHandler === 'function') {
|
|
55
|
-
seekHandler({
|
|
56
|
-
type: 'seek',
|
|
57
|
-
position: 100,
|
|
58
|
-
seekTarget: 200
|
|
59
|
-
});
|
|
60
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
61
|
-
playerContext: playerContextMock,
|
|
62
|
-
event: 'seek',
|
|
63
|
-
data: {
|
|
64
|
-
seek_from: 100,
|
|
65
|
-
stream_position: 200
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
it('should handle ViewModeChanged events', () => {
|
|
71
|
-
mockPlayer.getViewMode = jest.fn().mockReturnValueOnce(ViewMode.Fullscreen).mockReturnValueOnce(ViewMode.Inline);
|
|
72
|
-
bindPlayerEvents(playerContextMock);
|
|
73
|
-
const viewModeChangedHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.ViewModeChanged)?.[1];
|
|
74
|
-
if (viewModeChangedHandler && typeof viewModeChangedHandler === 'function') {
|
|
75
|
-
viewModeChangedHandler({ time: 300 });
|
|
76
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
77
|
-
playerContext: playerContextMock,
|
|
78
|
-
event: 'fullscreen',
|
|
79
|
-
data: expect.objectContaining({ stream_position: expect.any(Number) })
|
|
80
|
-
});
|
|
81
|
-
viewModeChangedHandler({ time: 301 });
|
|
82
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
83
|
-
playerContext: playerContextMock,
|
|
84
|
-
event: 'windowed',
|
|
85
|
-
data: expect.objectContaining({ stream_position: expect.any(Number) })
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
it('should handle playback finished correctly', () => {
|
|
90
|
-
bindPlayerEvents(playerContextMock);
|
|
91
|
-
const playbackFinishedHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.PlaybackFinished)?.[1];
|
|
92
|
-
if (playbackFinishedHandler && typeof playbackFinishedHandler === 'function') {
|
|
93
|
-
playbackFinishedHandler({ time: 789 });
|
|
94
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
95
|
-
playerContext: playerContextMock,
|
|
96
|
-
event: 'complete',
|
|
97
|
-
data: expect.objectContaining({ stream_position: expect.any(Number) })
|
|
98
|
-
});
|
|
99
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
100
|
-
playerContext: playerContextMock,
|
|
101
|
-
event: 'stop',
|
|
102
|
-
data: expect.objectContaining({ stream_position: expect.any(Number) })
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
it('should handle TimeShift events correctly', () => {
|
|
107
|
-
mockPlayer.getCurrentTime = jest.fn().mockReturnValue(1000);
|
|
108
|
-
bindPlayerEvents(playerContextMock);
|
|
109
|
-
const timeShiftHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.TimeShift)?.[1];
|
|
110
|
-
if (timeShiftHandler && typeof timeShiftHandler === 'function') {
|
|
111
|
-
timeShiftHandler({
|
|
112
|
-
target: -10
|
|
113
|
-
});
|
|
114
|
-
expect(logEvent).toHaveBeenCalledWith({
|
|
115
|
-
playerContext: playerContextMock,
|
|
116
|
-
event: 'seek',
|
|
117
|
-
data: {
|
|
118
|
-
seek_from: 0,
|
|
119
|
-
stream_position: -10
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
it('should clean up event listeners on destroy', () => {
|
|
125
|
-
bindPlayerEvents(playerContextMock);
|
|
126
|
-
const destroyHandler = mockPlayer.on.mock.calls.find(([event]) => event === PlayerEvent.Destroy)?.[1];
|
|
127
|
-
if (destroyHandler && typeof destroyHandler === 'function') {
|
|
128
|
-
destroyHandler({});
|
|
129
|
-
expect(mockPlayer.off).toHaveBeenCalled();
|
|
130
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.Ready, expect.any(Function));
|
|
131
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.Paused, expect.any(Function));
|
|
132
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.Play, expect.any(Function));
|
|
133
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.SourceLoaded, expect.any(Function));
|
|
134
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.StallStarted, expect.any(Function));
|
|
135
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.StallEnded, expect.any(Function));
|
|
136
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.PlaybackFinished, expect.any(Function));
|
|
137
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.SourceUnloaded, expect.any(Function));
|
|
138
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.Seek, expect.any(Function));
|
|
139
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.TimeShift, expect.any(Function));
|
|
140
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.TimeChanged, expect.any(Function));
|
|
141
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.ViewModeChanged, expect.any(Function));
|
|
142
|
-
expect(mockPlayer.off).toHaveBeenCalledWith(PlayerEvent.Destroy, expect.any(Function));
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export function logEvent({ playerContext, event, data }) {
|
|
2
|
-
const { npoPlayer } = playerContext;
|
|
3
|
-
if (!npoPlayer.player)
|
|
4
|
-
return;
|
|
5
|
-
if (npoPlayer.adBreakActive || npoPlayer.player.isCasting())
|
|
6
|
-
return;
|
|
7
|
-
if (!npoPlayer.streamTracker) {
|
|
8
|
-
console.error('No streamTracker available, no tracking will be performed.');
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
const eventData = data ?? { stream_position: 0 };
|
|
12
|
-
const eventHandlers = {
|
|
13
|
-
start: npoPlayer.streamTracker.start,
|
|
14
|
-
buffering: npoPlayer.streamTracker.buffering,
|
|
15
|
-
buffering_complete: npoPlayer.streamTracker.buffering_complete,
|
|
16
|
-
complete: npoPlayer.streamTracker.complete,
|
|
17
|
-
fullscreen: npoPlayer.streamTracker.fullscreen,
|
|
18
|
-
load: npoPlayer.streamTracker.load,
|
|
19
|
-
load_complete: npoPlayer.streamTracker.load_complete,
|
|
20
|
-
pause: npoPlayer.streamTracker.pause,
|
|
21
|
-
resume: npoPlayer.streamTracker.resume,
|
|
22
|
-
stop: npoPlayer.streamTracker.stop,
|
|
23
|
-
windowed: npoPlayer.streamTracker.windowed,
|
|
24
|
-
time: npoPlayer.streamTracker.time,
|
|
25
|
-
seek: () => {
|
|
26
|
-
npoPlayer.streamTracker?.seek(eventData);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
const streamTrackerHandler = eventHandlers[event];
|
|
30
|
-
npoPlayer.logEmitter.emit('logEvent', event, eventData);
|
|
31
|
-
if (streamTrackerHandler) {
|
|
32
|
-
streamTrackerHandler(eventData);
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
console.warn(`No handler found for event: ${event}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { logEvent } from './eventLogging';
|
|
2
|
-
import { createPlayerContextMock, createMockNpoPlayerAPI } from '../../../tests/mocks/playerContextMock';
|
|
3
|
-
describe('logEvent', () => {
|
|
4
|
-
let playerContextMock;
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
playerContextMock = createPlayerContextMock({
|
|
7
|
-
npoPlayer: {
|
|
8
|
-
player: createMockNpoPlayerAPI(),
|
|
9
|
-
streamTracker: {
|
|
10
|
-
start: jest.fn(),
|
|
11
|
-
seek: jest.fn()
|
|
12
|
-
},
|
|
13
|
-
logEmitter: {
|
|
14
|
-
emit: jest.fn()
|
|
15
|
-
},
|
|
16
|
-
adBreakActive: false
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
it('should not log event if player is not available', () => {
|
|
21
|
-
playerContextMock.npoPlayer.player = undefined;
|
|
22
|
-
logEvent({ playerContext: playerContextMock, event: 'start' });
|
|
23
|
-
expect(playerContextMock.npoPlayer.streamTracker?.start).not.toHaveBeenCalled();
|
|
24
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).not.toHaveBeenCalled();
|
|
25
|
-
});
|
|
26
|
-
it('should not log event if streamTracker is not available', () => {
|
|
27
|
-
playerContextMock.npoPlayer.streamTracker = undefined;
|
|
28
|
-
logEvent({ playerContext: playerContextMock, event: 'start' });
|
|
29
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).not.toHaveBeenCalled();
|
|
30
|
-
});
|
|
31
|
-
it('should not log event if adBreakActive is true', () => {
|
|
32
|
-
playerContextMock.npoPlayer.adBreakActive = true;
|
|
33
|
-
logEvent({ playerContext: playerContextMock, event: 'start' });
|
|
34
|
-
expect(playerContextMock.npoPlayer.streamTracker?.start).not.toHaveBeenCalled();
|
|
35
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).not.toHaveBeenCalled();
|
|
36
|
-
});
|
|
37
|
-
it('should log event and call the corresponding streamTracker handler', () => {
|
|
38
|
-
logEvent({ playerContext: playerContextMock, event: 'start' });
|
|
39
|
-
expect(playerContextMock.npoPlayer.streamTracker?.start).toHaveBeenCalledWith({ stream_position: 0 });
|
|
40
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).toHaveBeenCalledWith('logEvent', 'start', {
|
|
41
|
-
stream_position: 0
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
it('should log event and call the seek streamTracker handler with data', () => {
|
|
45
|
-
const data = { position: 20 };
|
|
46
|
-
logEvent({ playerContext: playerContextMock, event: 'seek', data });
|
|
47
|
-
expect(playerContextMock.npoPlayer.streamTracker?.seek).toHaveBeenCalledWith(data);
|
|
48
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).toHaveBeenCalledWith('logEvent', 'seek', data);
|
|
49
|
-
});
|
|
50
|
-
it('should log event with default data if data is undefined', () => {
|
|
51
|
-
logEvent({ playerContext: playerContextMock, event: 'seek' });
|
|
52
|
-
expect(playerContextMock.npoPlayer.streamTracker?.seek).toHaveBeenCalledWith({ stream_position: 0 });
|
|
53
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).toHaveBeenCalledWith('logEvent', 'seek', { stream_position: 0 });
|
|
54
|
-
});
|
|
55
|
-
it('should not throw but log a warning for unsupported events', () => {
|
|
56
|
-
console.warn = jest.fn();
|
|
57
|
-
logEvent({ playerContext: playerContextMock, event: 'unsupportedEvent' });
|
|
58
|
-
expect(console.warn).toHaveBeenCalledWith('No handler found for event: unsupportedEvent');
|
|
59
|
-
expect(playerContextMock.npoPlayer.logEmitter.emit).toHaveBeenCalledWith('logEvent', 'unsupportedEvent', {
|
|
60
|
-
stream_position: 0
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { newATInternetPlugin, newGovoltePlugin, newPageTracker, newTag } from '@npotag/tag';
|
|
2
|
-
const npoTagPlugins = [newGovoltePlugin({ maxRetryCount: 5, delayBetweenRetriesInMs: 3000 }), newATInternetPlugin()];
|
|
3
|
-
export function initPlayerTracker(playerContext) {
|
|
4
|
-
const { npoPlayer } = playerContext;
|
|
5
|
-
if (!npoPlayer.npoTag) {
|
|
6
|
-
npoPlayer.npoTag = {
|
|
7
|
-
npoTagInstance: undefined,
|
|
8
|
-
pageTracker: undefined,
|
|
9
|
-
heartbeatInterval: undefined
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
if (!npoPlayer.npoTag?.npoTagInstance) {
|
|
13
|
-
npoPlayer.npoTag.npoTagInstance =
|
|
14
|
-
npoPlayer.npoTagInstance ??
|
|
15
|
-
(npoPlayer.npoTagInitialisation ? newTag(npoPlayer.npoTagInitialisation, npoTagPlugins) : undefined);
|
|
16
|
-
}
|
|
17
|
-
if (!npoPlayer.npoTag?.pageTracker && npoPlayer.npoTag?.npoTagInstance) {
|
|
18
|
-
npoPlayer.npoTag.pageTracker = npoPlayer.npoTagPageTracker ?? newPageTracker(npoPlayer.npoTag.npoTagInstance);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { newPageTracker, newTag } from '@npotag/tag';
|
|
2
|
-
import { initPlayerTracker } from './playerTrackerInit';
|
|
3
|
-
import { createPlayerContextMock } from '../../../tests/mocks/playerContextMock';
|
|
4
|
-
jest.mock('@npotag/tag', () => ({
|
|
5
|
-
newATInternetPlugin: jest.fn(),
|
|
6
|
-
newGovoltePlugin: jest.fn(),
|
|
7
|
-
newPageTracker: jest.fn(),
|
|
8
|
-
newTag: jest.fn()
|
|
9
|
-
}));
|
|
10
|
-
describe('initPlayerTracker', () => {
|
|
11
|
-
let playerContextMock;
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
playerContextMock = createPlayerContextMock({
|
|
14
|
-
npoPlayer: {
|
|
15
|
-
npoTag: undefined,
|
|
16
|
-
npoTagInitialisation: undefined,
|
|
17
|
-
npoTagInstance: undefined,
|
|
18
|
-
npoTagPageTracker: undefined
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
jest.clearAllMocks();
|
|
22
|
-
});
|
|
23
|
-
it('should initialize npoTag if it is undefined', () => {
|
|
24
|
-
initPlayerTracker(playerContextMock);
|
|
25
|
-
expect(playerContextMock.npoPlayer.npoTag).toBeDefined();
|
|
26
|
-
expect(playerContextMock.npoPlayer.npoTag?.npoTagInstance).toBeUndefined();
|
|
27
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBeUndefined();
|
|
28
|
-
});
|
|
29
|
-
it('should initialize npoTagInstance if npoTagInstance is already provided', () => {
|
|
30
|
-
const mockNpoTagInstance = {};
|
|
31
|
-
playerContextMock.npoPlayer.npoTagInstance = mockNpoTagInstance;
|
|
32
|
-
initPlayerTracker(playerContextMock);
|
|
33
|
-
expect(playerContextMock.npoPlayer.npoTag?.npoTagInstance).toBe(mockNpoTagInstance);
|
|
34
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBeUndefined();
|
|
35
|
-
});
|
|
36
|
-
it('should create a new npoTagInstance if npoTagInitialisation is provided and npoTagInstance is undefined', () => {
|
|
37
|
-
const mockNpoTag = {};
|
|
38
|
-
const mockNewTagInstance = {};
|
|
39
|
-
newTag.mockReturnValue(mockNewTagInstance);
|
|
40
|
-
playerContextMock.npoPlayer.npoTagInitialisation = mockNpoTag;
|
|
41
|
-
initPlayerTracker(playerContextMock);
|
|
42
|
-
expect(newTag).toHaveBeenCalledWith(mockNpoTag, expect.any(Array));
|
|
43
|
-
expect(playerContextMock.npoPlayer.npoTag?.npoTagInstance).toBe(mockNewTagInstance);
|
|
44
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBeUndefined();
|
|
45
|
-
});
|
|
46
|
-
it('should initialize pageTracker if npoTagInstance is present and npoTagPageTracker is provided', () => {
|
|
47
|
-
const mockPageTracker = {};
|
|
48
|
-
const mockNpoTagInstance = {};
|
|
49
|
-
playerContextMock.npoPlayer.npoTagInstance = mockNpoTagInstance;
|
|
50
|
-
playerContextMock.npoPlayer.npoTagPageTracker = mockPageTracker;
|
|
51
|
-
initPlayerTracker(playerContextMock);
|
|
52
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBe(mockPageTracker);
|
|
53
|
-
});
|
|
54
|
-
it('should create a new pageTracker if npoTagPageTracker is undefined', () => {
|
|
55
|
-
const mockNpoTagInstance = {};
|
|
56
|
-
const mockNewPageTracker = {};
|
|
57
|
-
newPageTracker.mockReturnValue(mockNewPageTracker);
|
|
58
|
-
playerContextMock.npoPlayer.npoTagInstance = mockNpoTagInstance;
|
|
59
|
-
initPlayerTracker(playerContextMock);
|
|
60
|
-
expect(newPageTracker).toHaveBeenCalledWith(mockNpoTagInstance);
|
|
61
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBe(mockNewPageTracker);
|
|
62
|
-
});
|
|
63
|
-
it('should not overwrite existing pageTracker', () => {
|
|
64
|
-
const mockPageTracker = {};
|
|
65
|
-
const mockNpoTagInstance = {};
|
|
66
|
-
playerContextMock.npoPlayer.npoTag = {
|
|
67
|
-
npoTagInstance: mockNpoTagInstance,
|
|
68
|
-
pageTracker: mockPageTracker,
|
|
69
|
-
heartbeatInterval: undefined
|
|
70
|
-
};
|
|
71
|
-
initPlayerTracker(playerContextMock);
|
|
72
|
-
expect(playerContextMock.npoPlayer.npoTag?.pageTracker).toBe(mockPageTracker);
|
|
73
|
-
expect(newPageTracker).not.toHaveBeenCalled();
|
|
74
|
-
});
|
|
75
|
-
});
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { getAnalyticsPrid } from '../../js/utilities/utilities.prid';
|
|
2
|
-
import { getStreamDurationInSeconds } from '../../js/utilities/utilities.stream';
|
|
3
|
-
import { initStreamTracker } from './streamTrackerInit';
|
|
4
|
-
import { bindPlayerEvents } from './eventBinding';
|
|
5
|
-
import { logEvent } from './eventLogging';
|
|
6
|
-
export const startPlayerTracker = function ({ playerContext, source, duration, afterAd = false }) {
|
|
7
|
-
const { npoPlayer } = playerContext;
|
|
8
|
-
const { player, sourceConfig, streamObject } = npoPlayer;
|
|
9
|
-
const playerDuration = duration ?? player?.getDuration() ?? undefined;
|
|
10
|
-
if (!source) {
|
|
11
|
-
throw new Error('Could not initialize streamTracker, no source specified.');
|
|
12
|
-
}
|
|
13
|
-
const analyticsPrid = getAnalyticsPrid({
|
|
14
|
-
source,
|
|
15
|
-
sourceConfig,
|
|
16
|
-
streamObject
|
|
17
|
-
}) || 'unknown';
|
|
18
|
-
npoPlayer.streamTracker = initStreamTracker({
|
|
19
|
-
playerContext: playerContext,
|
|
20
|
-
duration: getStreamDurationInSeconds({ duration: playerDuration, durationIsInMs: !!duration }),
|
|
21
|
-
source: analyticsPrid
|
|
22
|
-
});
|
|
23
|
-
bindPlayerEvents(playerContext);
|
|
24
|
-
logEvent({ playerContext, event: 'load' });
|
|
25
|
-
if (afterAd) {
|
|
26
|
-
logEvent({ playerContext, event: 'load_complete' });
|
|
27
|
-
}
|
|
28
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { getAnalyticsPrid } from '../../js/utilities/utilities.prid';
|
|
2
|
-
import { getStreamDurationInSeconds } from '../../js/utilities/utilities.stream';
|
|
3
|
-
import { startPlayerTracker } from './playerTrackerStart';
|
|
4
|
-
import { initStreamTracker } from './streamTrackerInit';
|
|
5
|
-
import { bindPlayerEvents } from './eventBinding';
|
|
6
|
-
import { logEvent } from './eventLogging';
|
|
7
|
-
import { createPlayerContextMock } from '../../../tests/mocks/playerContextMock';
|
|
8
|
-
jest.mock('../../js/utilities/utilities.stream', () => ({
|
|
9
|
-
getStreamDurationInSeconds: jest.fn()
|
|
10
|
-
}));
|
|
11
|
-
jest.mock('../../js/utilities/utilities.prid', () => ({
|
|
12
|
-
getAnalyticsPrid: jest.fn()
|
|
13
|
-
}));
|
|
14
|
-
jest.mock('./streamTrackerInit', () => ({
|
|
15
|
-
initStreamTracker: jest.fn()
|
|
16
|
-
}));
|
|
17
|
-
jest.mock('./eventBinding', () => ({
|
|
18
|
-
bindPlayerEvents: jest.fn()
|
|
19
|
-
}));
|
|
20
|
-
jest.mock('./eventLogging', () => ({
|
|
21
|
-
logEvent: jest.fn()
|
|
22
|
-
}));
|
|
23
|
-
describe('startPlayerTracker', () => {
|
|
24
|
-
let playerContextMock;
|
|
25
|
-
let playerMock;
|
|
26
|
-
beforeEach(() => {
|
|
27
|
-
playerMock = { getDuration: jest.fn().mockReturnValue(200) };
|
|
28
|
-
playerContextMock = createPlayerContextMock({
|
|
29
|
-
npoPlayer: {
|
|
30
|
-
player: playerMock,
|
|
31
|
-
sourceConfig: {},
|
|
32
|
-
streamObject: {}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
jest.clearAllMocks();
|
|
36
|
-
});
|
|
37
|
-
it('should initialize the stream tracker with the provided duration', () => {
|
|
38
|
-
const source = 'some-source';
|
|
39
|
-
const duration = 150;
|
|
40
|
-
getAnalyticsPrid.mockReturnValue('some-prid');
|
|
41
|
-
getStreamDurationInSeconds.mockReturnValue(duration);
|
|
42
|
-
startPlayerTracker({ playerContext: playerContextMock, source, duration });
|
|
43
|
-
expect(getAnalyticsPrid).toHaveBeenCalledWith({
|
|
44
|
-
source,
|
|
45
|
-
sourceConfig: {},
|
|
46
|
-
streamObject: {}
|
|
47
|
-
});
|
|
48
|
-
expect(getStreamDurationInSeconds).toHaveBeenCalledWith({
|
|
49
|
-
duration,
|
|
50
|
-
durationIsInMs: true
|
|
51
|
-
});
|
|
52
|
-
expect(initStreamTracker).toHaveBeenCalledWith({
|
|
53
|
-
playerContext: playerContextMock,
|
|
54
|
-
duration,
|
|
55
|
-
source: 'some-prid'
|
|
56
|
-
});
|
|
57
|
-
expect(bindPlayerEvents).toHaveBeenCalledWith(playerContextMock);
|
|
58
|
-
expect(logEvent).toHaveBeenCalledWith({ playerContext: playerContextMock, event: 'load' });
|
|
59
|
-
});
|
|
60
|
-
it('should fallback to player.getDuration() if duration is not provided', () => {
|
|
61
|
-
const source = 'some-source';
|
|
62
|
-
const fallbackDuration = 200;
|
|
63
|
-
getAnalyticsPrid.mockReturnValue('some-prid');
|
|
64
|
-
getStreamDurationInSeconds.mockReturnValue(fallbackDuration);
|
|
65
|
-
startPlayerTracker({ playerContext: playerContextMock, source });
|
|
66
|
-
expect(getStreamDurationInSeconds).toHaveBeenCalledWith({
|
|
67
|
-
duration: fallbackDuration,
|
|
68
|
-
durationIsInMs: false
|
|
69
|
-
});
|
|
70
|
-
expect(initStreamTracker).toHaveBeenCalledWith({
|
|
71
|
-
playerContext: playerContextMock,
|
|
72
|
-
duration: fallbackDuration,
|
|
73
|
-
source: 'some-prid'
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { newStreamTracker } from '@npotag/tag';
|
|
2
|
-
import { validatePrid } from '../../js/utilities/utilities.stream';
|
|
3
|
-
export function initStreamTracker({ playerContext, duration, source }) {
|
|
4
|
-
const { npoPlayer } = playerContext;
|
|
5
|
-
const { npoTag, npoPlayerServices, version } = npoPlayer;
|
|
6
|
-
if (!npoTag?.npoTagInstance) {
|
|
7
|
-
throw new Error('No npoTagInstance available. Could not create streamtracker.');
|
|
8
|
-
}
|
|
9
|
-
if (!npoTag?.pageTracker) {
|
|
10
|
-
throw new Error('No pageTracker available. Could not create streamtracker.');
|
|
11
|
-
}
|
|
12
|
-
if (!duration) {
|
|
13
|
-
throw new Error('No duration specified. Could not create streamtracker.');
|
|
14
|
-
}
|
|
15
|
-
const streamTrackerConfig = {
|
|
16
|
-
stream_length: duration,
|
|
17
|
-
stream_id: validatePrid(source),
|
|
18
|
-
player_id: 'npoplayer-web',
|
|
19
|
-
av_type: npoPlayerServices.getAVType(npoPlayer.streamObject.stream.avType),
|
|
20
|
-
player_version: version,
|
|
21
|
-
sko_player_version: '1.0.0'
|
|
22
|
-
};
|
|
23
|
-
const isLiveStream = npoPlayer.streamObject.stream.isLiveStream || false;
|
|
24
|
-
return newStreamTracker(npoTag.pageTracker, streamTrackerConfig, {
|
|
25
|
-
isLive: isLiveStream
|
|
26
|
-
});
|
|
27
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|