@24i/bigscreen-sdk 1.0.34 → 1.0.35-alpha.2578
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 +47 -47
- package/__mocks__/@24i/bigscreen-sdk/animations.ts +2 -2
- package/package.json +1 -1
- package/packages/adobe-heartbeat/README.md +46 -46
- package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +244 -244
- package/packages/adobe-heartbeat/src/__external__/Adobe/Adobe.d.ts +24 -24
- package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.d.ts +126 -126
- package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.js +76 -76
- package/packages/adobe-heartbeat/src/index.ts +5 -5
- package/packages/adobe-heartbeat/src/types.ts +67 -67
- package/packages/analytics/README.md +7 -7
- package/packages/analytics/src/A.ts +1 -1
- package/packages/analytics/src/Analytics.ts +1 -1
- package/packages/analytics/src/analyticsOnScroll.ts +1 -1
- package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +1 -1
- package/packages/analytics/src/clients/ConsoleAnalytics/index.ts +1 -1
- package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +200 -200
- package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +118 -118
- package/packages/analytics/src/clients/GoogleAnalytics/getUrl.ts +17 -17
- package/packages/analytics/src/clients/GoogleAnalytics/index.ts +2 -2
- package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +77 -77
- package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +50 -50
- package/packages/analytics/src/clients/GoogleAnalytics/prepareBody.ts +14 -14
- package/packages/analytics/src/clients/TealiumAnalytics/TealiumAnalytics.ts +161 -161
- package/packages/analytics/src/clients/TealiumAnalytics/constants.ts +102 -102
- package/packages/analytics/src/clients/TealiumAnalytics/index.ts +3 -3
- package/packages/analytics/src/clients/TealiumAnalytics/interface.ts +33 -33
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/__mocks__/mediaPayload.ts +40 -40
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/helper.ts +21 -21
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppError.ts +14 -14
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteAdd.ts +11 -11
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteRemove.ts +11 -11
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerClose.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerOpen.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSceneView.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearch.ts +18 -18
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchFailed.ts +8 -8
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchSuccess.ts +8 -8
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoPause.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoProgress.ts +18 -18
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoResume.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStart.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStop.ts +15 -15
- package/packages/analytics/src/clients/TealiumAnalytics/types.ts +139 -139
- package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +116 -116
- package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +99 -99
- package/packages/analytics/src/clients/TwentyFourIQ/helper.ts +34 -34
- package/packages/analytics/src/clients/TwentyFourIQ/index.ts +2 -2
- package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +31 -31
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdLoaded.ts +13 -13
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdSkipped.ts +16 -16
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +21 -21
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +15 -15
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +24 -24
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +18 -18
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +15 -15
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +17 -17
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +21 -21
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +24 -24
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +24 -24
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +34 -34
- package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +32 -32
- package/packages/analytics/src/clients/TwentyFourIQ/types.ts +115 -115
- package/packages/analytics/src/constants.ts +1 -1
- package/packages/analytics/src/index.ts +3 -3
- package/packages/analytics/src/interface.ts +1 -1
- package/packages/analytics/src/utils/generateSessionId.ts +8 -8
- package/packages/animations/README.md +85 -85
- package/packages/animations/src/AnimationUtils.ts +238 -238
- package/packages/animations/src/JSAnimations.ts +144 -144
- package/packages/animations/src/__mocks__/JSAnimations.ts +30 -30
- package/packages/animations/src/index.ts +3 -3
- package/packages/announcement-banner/README.md +49 -49
- package/packages/announcement-banner/src/AnnouncementBanner.scss +8 -8
- package/packages/announcement-banner/src/AnnouncementBanner.tsx +136 -136
- package/packages/announcement-banner/src/index.ts +1 -1
- package/packages/async-image/README.md +47 -47
- package/packages/async-image/src/AsyncImage.tsx +101 -101
- package/packages/async-image/src/index.ts +2 -2
- package/packages/conviva/README.md +47 -47
- package/packages/conviva/src/ConvivaSDK.ts +38 -38
- package/packages/conviva/src/__mocks__/ConvivaMock.ts +36 -36
- package/packages/conviva/src/index.ts +1 -1
- package/packages/conviva/src/theoPlugin/ConvivaConviguration.ts +19 -19
- package/packages/conviva/src/theoPlugin/__external__/Conviva_4.0.15.js +698 -698
- package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.d.ts +7 -7
- package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.js +635 -635
- package/packages/conviva/src/theoPlugin/convivaTheoPluginWrapper.ts +61 -61
- package/packages/conviva/src/theoPlugin/index.ts +2 -2
- package/packages/developer-tools/DeveloperConsole/README.md +114 -114
- package/packages/developer-tools/DeveloperConsole/index.ts +3 -3
- package/packages/developer-tools/DeveloperConsole/unstyled.ts +1 -1
- package/packages/developer-tools/DeveloperToolsService/README.md +54 -54
- package/packages/developer-tools/DeveloperToolsService/index.ts +3 -3
- package/packages/developer-tools/DeveloperToolsService/unstyled.ts +1 -1
- package/packages/developer-tools/EnvironmentSelection/README.md +77 -77
- package/packages/developer-tools/EnvironmentSelection/index.ts +3 -3
- package/packages/developer-tools/EnvironmentSelection/unstyled.ts +1 -1
- package/packages/developer-tools/PlayerDebugWindow/README.md +65 -65
- package/packages/developer-tools/PlayerDebugWindow/index.ts +3 -3
- package/packages/developer-tools/PlayerDebugWindow/unstyled.ts +1 -1
- package/packages/developer-tools/README.md +24 -24
- package/packages/developer-tools/TechnicalInfo/README.md +90 -90
- package/packages/developer-tools/TechnicalInfo/index.ts +9 -9
- package/packages/developer-tools/TechnicalInfo/unstyled.ts +6 -6
- package/packages/developer-tools/src/DeveloperConsole/ControlButton.tsx +16 -16
- package/packages/developer-tools/src/DeveloperConsole/DeveloperConsole.tsx +389 -389
- package/packages/developer-tools/src/DeveloperConsole/Panel.tsx +108 -108
- package/packages/developer-tools/src/DeveloperConsole/PanelMessage.tsx +33 -33
- package/packages/developer-tools/src/DeveloperConsole/helpers/Queue.ts +38 -38
- package/packages/developer-tools/src/DeveloperConsole/helpers/index.ts +2 -2
- package/packages/developer-tools/src/DeveloperConsole/helpers/instrumentHandler.ts +165 -165
- package/packages/developer-tools/src/DeveloperConsole/index.ts +2 -2
- package/packages/developer-tools/src/DeveloperConsole/initDeveloperConsole.tsx +8 -8
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.scss +91 -91
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.1080.scss +2 -2
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.scss +2 -2
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.1080.scss +16 -16
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.scss +16 -16
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.scss +87 -87
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.1080.scss +2 -2
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.scss +2 -2
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.1080.scss +9 -9
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.scss +9 -9
- package/packages/developer-tools/src/DeveloperConsole/styles.ts +2 -2
- package/packages/developer-tools/src/DeveloperConsole/types.ts +49 -49
- package/packages/developer-tools/src/DeveloperConsole/utils/formatTime.ts +13 -13
- package/packages/developer-tools/src/DeveloperConsole/utils/index.ts +3 -3
- package/packages/developer-tools/src/DeveloperConsole/utils/stringify.ts +10 -10
- package/packages/developer-tools/src/DeveloperConsole/utils/styles.ts +24 -24
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolItem.tsx +21 -21
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +125 -125
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsService.tsx +122 -122
- package/packages/developer-tools/src/DeveloperToolsService/index.ts +1 -1
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.scss +64 -64
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.1080.scss +2 -2
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.1080.scss +3 -3
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.scss +4 -4
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.scss +2 -2
- package/packages/developer-tools/src/DeveloperToolsService/styles/_animated.scss +5 -5
- package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.1080.scss +16 -16
- package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.scss +16 -16
- package/packages/developer-tools/src/DeveloperToolsService/styles.ts +1 -1
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentList.tsx +90 -90
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentListItem.tsx +106 -106
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentSelection.tsx +102 -102
- package/packages/developer-tools/src/EnvironmentSelection/assets/checkmark.svg +18 -18
- package/packages/developer-tools/src/EnvironmentSelection/config.ts +43 -43
- package/packages/developer-tools/src/EnvironmentSelection/constants.ts +1 -1
- package/packages/developer-tools/src/EnvironmentSelection/index.ts +2 -2
- package/packages/developer-tools/src/EnvironmentSelection/sizes.1080.ts +5 -5
- package/packages/developer-tools/src/EnvironmentSelection/sizes.ts +5 -5
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.scss +141 -141
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.1080.scss +2 -2
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.1080.scss +3 -3
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.scss +3 -3
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.scss +2 -2
- package/packages/developer-tools/src/EnvironmentSelection/styles/_animated.scss +9 -9
- package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.1080.scss +26 -26
- package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.scss +26 -26
- package/packages/developer-tools/src/EnvironmentSelection/styles.ts +1 -1
- package/packages/developer-tools/src/EnvironmentSelection/types.ts +10 -10
- package/packages/developer-tools/src/EnvironmentSelection/utils/format.ts +4 -4
- package/packages/developer-tools/src/IDeveloperTool.ts +14 -14
- package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +115 -115
- package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +128 -128
- package/packages/developer-tools/src/PlayerDebugWindow/index.ts +1 -1
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.scss +29 -29
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.1080.scss +2 -2
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.scss +2 -2
- package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.1080.scss +11 -11
- package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.scss +11 -11
- package/packages/developer-tools/src/PlayerDebugWindow/styles.ts +1 -1
- package/packages/developer-tools/src/TechnicalInfo/ITechnicalInfoProvider.ts +5 -5
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfo.tsx +125 -125
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +77 -77
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +349 -349
- package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +55 -55
- package/packages/developer-tools/src/TechnicalInfo/__mocks__/Player.ts +7 -7
- package/packages/developer-tools/src/TechnicalInfo/__mocks__/Storage.ts +9 -9
- package/packages/developer-tools/src/TechnicalInfo/icons/arrow-down.svg +18 -18
- package/packages/developer-tools/src/TechnicalInfo/icons/arrow-up.svg +18 -18
- package/packages/developer-tools/src/TechnicalInfo/index.ts +5 -5
- package/packages/developer-tools/src/TechnicalInfo/sizes.1080.ts +1 -1
- package/packages/developer-tools/src/TechnicalInfo/sizes.ts +1 -1
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.scss +187 -187
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.1080.scss +2 -2
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.1080.scss +3 -3
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.scss +3 -3
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.scss +2 -2
- package/packages/developer-tools/src/TechnicalInfo/styles/_animated.scss +16 -16
- package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.1080.scss +50 -50
- package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.scss +50 -50
- package/packages/developer-tools/src/TechnicalInfo/styles.ts +1 -1
- package/packages/developer-tools/src/TechnicalInfo/translations.ts +79 -79
- package/packages/developer-tools/src/TechnicalInfo/utils/eme01bSupport.ts +58 -58
- package/packages/developer-tools/src/TechnicalInfo/utils/emeSupport.ts +84 -84
- package/packages/developer-tools/src/TechnicalInfo/utils/formatTimezone.ts +15 -15
- package/packages/developer-tools/src/TechnicalInfo/utils/mseSupport.ts +14 -14
- package/packages/developer-tools/src/utils/reload.ts +6 -6
- package/packages/device/README.md +219 -219
- package/packages/device/keymap.ts +1 -1
- package/packages/device/resolver/index.ts +2 -2
- package/packages/device/resolver/keymap.ts +1 -1
- package/packages/device/src/DeviceEventMap.ts +1 -1
- package/packages/device/src/device.ts +6 -6
- package/packages/device/src/driver/index.android.tv.ts +1 -1
- package/packages/device/src/driver/index.entone.ts +1 -1
- package/packages/device/src/driver/index.firetv.ts +1 -1
- package/packages/device/src/driver/index.hbbtv.tv.ts +1 -1
- package/packages/device/src/driver/index.kreatv.ts +1 -1
- package/packages/device/src/driver/index.saphi.tv.ts +1 -1
- package/packages/device/src/driver/index.smartcast.tv.ts +1 -1
- package/packages/device/src/driver/index.tizen.tv.ts +1 -1
- package/packages/device/src/driver/index.ts +1 -1
- package/packages/device/src/driver/index.vidaa.tv.ts +1 -1
- package/packages/device/src/driver/index.webos.tv.ts +1 -1
- package/packages/device/src/getKeyDigit.ts +35 -35
- package/packages/device/src/getKeyMap.ts +4 -4
- package/packages/device/src/index.ts +8 -8
- package/packages/device/src/isClickOrEnter.ts +3 -3
- package/packages/device/src/resolver/index.ts +2 -2
- package/packages/device/src/resolver/resolver.ts +84 -84
- package/packages/digital-clock/README.md +26 -26
- package/packages/digital-clock/src/DigitalClock.tsx +78 -78
- package/packages/digital-clock/src/index.ts +1 -1
- package/packages/driver-androidtv/src/DeviceAndroidTV.ts +224 -224
- package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +36 -36
- package/packages/driver-androidtv/src/formatUserAgent.ts +11 -11
- package/packages/driver-androidtv/src/index.ts +1 -1
- package/packages/driver-androidtv/src/keymap.ts +27 -27
- package/packages/driver-androidtv/src/types.ts +113 -113
- package/packages/driver-base/DeviceBase.md +139 -139
- package/packages/driver-base/README.md +44 -44
- package/packages/driver-base/src/ConnectionType.ts +1 -1
- package/packages/driver-base/src/DeviceBase.ts +279 -279
- package/packages/driver-base/src/KeyMap/Key.ts +48 -48
- package/packages/driver-base/src/KeyMap/KeyMap.ts +390 -390
- package/packages/driver-base/src/KeyMap/generateKeyCodeKeyMap.ts +11 -11
- package/packages/driver-base/src/KeyMap/index.ts +5 -5
- package/packages/driver-base/src/KeyMap/interface.ts +8 -8
- package/packages/driver-base/src/KeyMap/overrideValues.ts +17 -17
- package/packages/driver-base/src/KeyMap/switchByKey.ts +18 -18
- package/packages/driver-base/src/ScreenSize.ts +1 -1
- package/packages/driver-base/src/VolumeRange.ts +5 -5
- package/packages/driver-base/src/__mocks__/DeviceBase.ts +100 -100
- package/packages/driver-base/src/__mocks__/keyMap.ts +42 -42
- package/packages/driver-base/src/bindPreventDefaultEvent.ts +5 -5
- package/packages/driver-base/src/errors.ts +32 -32
- package/packages/driver-base/src/index.ts +10 -10
- package/packages/driver-base/src/loadObject.ts +30 -30
- package/packages/driver-base/src/types/DeviceEvent.ts +11 -11
- package/packages/driver-base/src/types/ExitOptions.ts +1 -1
- package/packages/driver-base/src/types/KeycodeKeyMap.ts +86 -86
- package/packages/driver-base/src/types/ScreenSaverStatus.ts +3 -3
- package/packages/driver-base/src/utils.ts +10 -10
- package/packages/driver-browser/src/DeviceBrowser.ts +170 -170
- package/packages/driver-browser/src/getBrowser.ts +51 -51
- package/packages/driver-browser/src/getOsName.ts +30 -30
- package/packages/driver-browser/src/index.ts +1 -1
- package/packages/driver-browser/src/keymap.ts +22 -22
- package/packages/driver-browser/src/patchSuitestKeys.ts +27 -27
- package/packages/driver-entone/README.md +9 -9
- package/packages/driver-entone/src/DeviceEntone.ts +232 -232
- package/packages/driver-entone/src/IEntone.ts +460 -460
- package/packages/driver-entone/src/__mocks__/entone.ts +177 -177
- package/packages/driver-entone/src/constants.ts +73 -73
- package/packages/driver-entone/src/index.ts +1 -1
- package/packages/driver-entone/src/keymap.ts +57 -57
- package/packages/driver-firetv/src/DeviceFireTV.ts +18 -18
- package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +36 -36
- package/packages/driver-firetv/src/index.ts +1 -1
- package/packages/driver-hbbtv/src/DeviceHbbTV.ts +313 -313
- package/packages/driver-hbbtv/src/__mocks__/hbbtv.ts +17 -17
- package/packages/driver-hbbtv/src/constants.ts +28 -28
- package/packages/driver-hbbtv/src/deviceInfo.ts +23 -23
- package/packages/driver-hbbtv/src/getVersion.ts +16 -16
- package/packages/driver-hbbtv/src/index.ts +1 -1
- package/packages/driver-hbbtv/src/keymap.ts +45 -45
- package/packages/driver-hbbtv/src/types.ts +366 -366
- package/packages/driver-kreatv/src/DeviceKreaTV.ts +271 -271
- package/packages/driver-kreatv/src/IToi.ts +379 -379
- package/packages/driver-kreatv/src/__mocks__/toi2.ts +76 -76
- package/packages/driver-kreatv/src/__mocks__/toi3.ts +43 -43
- package/packages/driver-kreatv/src/index.ts +1 -1
- package/packages/driver-kreatv/src/keymap.ts +31 -31
- package/packages/driver-kreatv/src/toi2.ts +107 -107
- package/packages/driver-kreatv/src/toi3.ts +102 -102
- package/packages/driver-kreatv/src/types.ts +35 -35
- package/packages/driver-saphi/src/DeviceSaphi.ts +144 -144
- package/packages/driver-saphi/src/__mocks__/SmartTvA_API.ts +11 -11
- package/packages/driver-saphi/src/__mocks__/userAgent.ts +4 -4
- package/packages/driver-saphi/src/constants.ts +1 -1
- package/packages/driver-saphi/src/formatUserAgent.ts +19 -19
- package/packages/driver-saphi/src/index.ts +1 -1
- package/packages/driver-saphi/src/keymap.ts +64 -64
- package/packages/driver-saphi/src/types.ts +75 -75
- package/packages/driver-smartcast/src/DeviceSmartCast.ts +316 -310
- package/packages/driver-smartcast/src/__mocks__/api.ts +49 -49
- package/packages/driver-smartcast/src/index.ts +1 -1
- package/packages/driver-smartcast/src/keymap.ts +9 -9
- package/packages/driver-smartcast/src/types.ts +65 -65
- package/packages/driver-tizen/src/DeviceTizen.ts +298 -298
- package/packages/driver-tizen/src/ITizen.ts +212 -212
- package/packages/driver-tizen/src/IWebapis.ts +95 -95
- package/packages/driver-tizen/src/TizenKeys.ts +96 -96
- package/packages/driver-tizen/src/__mocks__/tizen.ts +35 -35
- package/packages/driver-tizen/src/constants.ts +197 -197
- package/packages/driver-tizen/src/index.ts +1 -1
- package/packages/driver-tizen/src/types.ts +14 -14
- package/packages/driver-vidaa/src/DeviceVidaa.ts +141 -141
- package/packages/driver-vidaa/src/__mocks__/vidaa.ts +21 -21
- package/packages/driver-vidaa/src/constants.ts +8 -8
- package/packages/driver-vidaa/src/formatUserAgent.ts +16 -16
- package/packages/driver-vidaa/src/index.ts +1 -1
- package/packages/driver-vidaa/src/keymap.ts +56 -56
- package/packages/driver-vidaa/src/types.ts +90 -90
- package/packages/driver-webos/src/DeviceWebos.ts +313 -313
- package/packages/driver-webos/src/__mocks__/webos.ts +172 -172
- package/packages/driver-webos/src/constants.ts +20 -20
- package/packages/driver-webos/src/index.ts +1 -1
- package/packages/driver-webos/src/keymap.ts +10 -10
- package/packages/driver-webos/src/types.ts +344 -344
- package/packages/driver-webos/src/utils.ts +60 -60
- package/packages/driver-webos/src/webOSTVjs/webOSTVjs.js +12 -12
- package/packages/driver-xbox/__external__/winjs/directionalnavigation-1.0.0.0.js +1015 -1015
- package/packages/driver-xbox/src/DeviceXbox.ts +231 -231
- package/packages/driver-xbox/src/__mocks__/Windows.ts +94 -94
- package/packages/driver-xbox/src/index.ts +1 -1
- package/packages/driver-xbox/src/interfaces.ts +138 -138
- package/packages/driver-xbox/src/keymap.ts +96 -96
- package/packages/driver-xbox/src/utils.ts +23 -23
- package/packages/epg/IMPLEMENTATION.md +228 -228
- package/packages/epg/MockGenerator.md +102 -102
- package/packages/epg/README.md +585 -585
- package/packages/epg/src/v2/Cell.tsx +222 -222
- package/packages/epg/src/v2/CellsManager.ts +1 -1
- package/packages/epg/src/v2/DataManager.ts +372 -372
- package/packages/epg/src/v2/DatePicker.tsx +110 -110
- package/packages/epg/src/v2/DateToast/DateToast.scss +28 -28
- package/packages/epg/src/v2/DateToast/DateToast.styles.1080.scss +2 -2
- package/packages/epg/src/v2/DateToast/DateToast.styles.scss +2 -2
- package/packages/epg/src/v2/DateToast/DateToast.tsx +90 -90
- package/packages/epg/src/v2/DateToast/_sizes.1080.scss +7 -7
- package/packages/epg/src/v2/DateToast/_sizes.scss +7 -7
- package/packages/epg/src/v2/DateToast/index.tsx +1 -1
- package/packages/epg/src/v2/DateToast/styles.ts +1 -1
- package/packages/epg/src/v2/Day.tsx +33 -33
- package/packages/epg/src/v2/Epg.tsx +462 -462
- package/packages/epg/src/v2/Header.tsx +41 -41
- package/packages/epg/src/v2/IdleController.ts +25 -25
- package/packages/epg/src/v2/InputEvents.ts +301 -301
- package/packages/epg/src/v2/MockGenerator/config.1080.ts +2 -2
- package/packages/epg/src/v2/MockGenerator/config.ts +2 -2
- package/packages/epg/src/v2/MockGenerator/generator.ts +174 -174
- package/packages/epg/src/v2/MockGenerator/index.ts +2 -2
- package/packages/epg/src/v2/MockGenerator/mocks/data.ts +102 -102
- package/packages/epg/src/v2/MockGenerator/types.ts +25 -25
- package/packages/epg/src/v2/MockGenerator/utils.ts +28 -28
- package/packages/epg/src/v2/MouseNavigation/MouseNavigation.tsx +88 -88
- package/packages/epg/src/v2/MouseNavigation/MouseNavigationFallback.ts +4 -4
- package/packages/epg/src/v2/MouseNavigation/index.tizen.tv.ts +1 -1
- package/packages/epg/src/v2/MouseNavigation/index.ts +1 -1
- package/packages/epg/src/v2/MouseNavigation/index.web.ts +1 -1
- package/packages/epg/src/v2/MouseNavigation/index.webos.tv.ts +1 -1
- package/packages/epg/src/v2/NowLine.tsx +66 -66
- package/packages/epg/src/v2/Program.tsx +58 -58
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.scss +67 -67
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.1080.scss +3 -3
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.1080.scss +2 -2
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.scss +2 -2
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.scss +3 -3
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.tsx +149 -149
- package/packages/epg/src/v2/ProgramInfo/_animated.scss +8 -8
- package/packages/epg/src/v2/ProgramInfo/_mixins.scss +5 -5
- package/packages/epg/src/v2/ProgramInfo/_sizes.1080.scss +21 -21
- package/packages/epg/src/v2/ProgramInfo/_sizes.scss +21 -21
- package/packages/epg/src/v2/ProgramInfo/index.ts +1 -1
- package/packages/epg/src/v2/ProgramInfo/rtl.scss +7 -7
- package/packages/epg/src/v2/ProgramInfo/sizes.1080.ts +3 -3
- package/packages/epg/src/v2/ProgramInfo/sizes.ts +3 -3
- package/packages/epg/src/v2/ProgramInfo/styles.ts +1 -1
- package/packages/epg/src/v2/ProgramInfo/utils.ts +28 -28
- package/packages/epg/src/v2/Row.tsx +134 -134
- package/packages/epg/src/v2/RowsManager.ts +1 -1
- package/packages/epg/src/v2/TimeManager.ts +58 -58
- package/packages/epg/src/v2/Timeline.ts +1 -1
- package/packages/epg/src/v2/TimelineSection.tsx +50 -50
- package/packages/epg/src/v2/basic/CellsManager.tsx +300 -300
- package/packages/epg/src/v2/basic/RowsManager.tsx +503 -503
- package/packages/epg/src/v2/basic/Timeline.tsx +88 -88
- package/packages/epg/src/v2/index.ts +1 -1
- package/packages/epg/src/v2/interface.ts +1519 -1519
- package/packages/epg/src/v2/sizes.1080.ts +2 -2
- package/packages/epg/src/v2/sizes.ts +2 -2
- package/packages/epg/src/v2/styles/Basic/Basic.scss +116 -116
- package/packages/epg/src/v2/styles/Basic/index.ts +1 -1
- package/packages/epg/src/v2/styles/Whitelabel/index.ts +1 -1
- package/packages/epg/src/v2/utils.ts +40 -40
- package/packages/events-manager/src/EventsManager.ts +1 -1
- package/packages/events-manager/src/index.ts +2 -2
- package/packages/floating-focus/README.md +64 -64
- package/packages/floating-focus/src/FloatingFocus.ts +106 -106
- package/packages/floating-focus/src/Horizontal.tsx +20 -20
- package/packages/floating-focus/src/Vertical.tsx +20 -20
- package/packages/floating-focus/src/index.ts +4 -4
- package/packages/floating-focus/src/types.ts +20 -20
- package/packages/floating-focus/src/utils.ts +43 -43
- package/packages/focus/README.md +348 -348
- package/packages/focus/src/IFocusable.ts +5 -5
- package/packages/focus/src/Layout/Base.tsx +166 -166
- package/packages/focus/src/Layout/Horizontal.ts +15 -15
- package/packages/focus/src/Layout/Matrix.tsx +357 -357
- package/packages/focus/src/Layout/Vertical.ts +12 -12
- package/packages/focus/src/Layout/constants.ts +10 -10
- package/packages/focus/src/Layout/isRtl.ts +12 -12
- package/packages/focus/src/Layout/types.ts +7 -7
- package/packages/focus/src/candidate.ts +106 -106
- package/packages/focus/src/focusFirstExisting.ts +19 -19
- package/packages/focus/src/hasFocus.ts +36 -36
- package/packages/focus/src/index.ts +16 -16
- package/packages/focus/src/refocusAfterHashChange.ts +19 -19
- package/packages/focus/src/safeFocus.ts +15 -15
- package/packages/gallup/README.md +27 -27
- package/packages/gallup/src/Gallup.ts +80 -80
- package/packages/gallup/src/GallupMock.ts +7 -7
- package/packages/gallup/src/__external__/SpringStreams.d.ts +39 -39
- package/packages/gallup/src/__mocks__/SpringStreams.js +18 -18
- package/packages/gallup/src/index.ts +1 -1
- package/packages/grid/BasicGrid/README.md +78 -78
- package/packages/grid/BasicGrid/index.ts +1 -1
- package/packages/grid/FirstOnlyGrid/README.md +43 -43
- package/packages/grid/FirstOnlyGrid/index.ts +1 -1
- package/packages/grid/FixedToEndGrid/README.md +45 -45
- package/packages/grid/FixedToEndGrid/index.ts +1 -1
- package/packages/grid/Item/index.ts +1 -1
- package/packages/grid/README.md +169 -169
- package/packages/grid/src/Base/Base.tsx +492 -492
- package/packages/grid/src/Base/MouseNavigation/MouseNavigation.tsx +82 -82
- package/packages/grid/src/Base/MouseNavigation/MouseNavigationFallback.ts +4 -4
- package/packages/grid/src/Base/MouseNavigation/index.tizen.tv.ts +1 -1
- package/packages/grid/src/Base/MouseNavigation/index.ts +1 -1
- package/packages/grid/src/Base/MouseNavigation/index.webos.tv.ts +1 -1
- package/packages/grid/src/Base/MouseNavigation/index.webtv.ts +1 -1
- package/packages/grid/src/Base/index.ts +1 -1
- package/packages/grid/src/Base/interface.ts +47 -47
- package/packages/grid/src/BasicGrid/BasicGrid.tsx +137 -137
- package/packages/grid/src/BasicGrid/config.ts +13 -13
- package/packages/grid/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -54
- package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +112 -112
- package/packages/grid/src/FirstOnlyGrid/config.ts +13 -13
- package/packages/grid/src/FirstOnlyGrid/controller.ts +10 -10
- package/packages/grid/src/FixedToEndGrid/FixedToEndGrid.tsx +112 -112
- package/packages/grid/src/FixedToEndGrid/config.ts +13 -13
- package/packages/grid/src/FixedToEndGrid/controller.ts +36 -36
- package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +555 -555
- package/packages/grid/src/UnifiedGridController/index.ts +2 -2
- package/packages/grid/src/UnifiedGridController/interface.ts +92 -92
- package/packages/grid/src/animate.animated.ts +1 -1
- package/packages/grid/src/animate.ts +1 -1
- package/packages/grid/src/interface.ts +30 -30
- package/packages/grid/src/mocks/index.tsx +41 -41
- package/packages/grid/src/types.ts +69 -69
- package/packages/grid/src/utils.ts +69 -69
- package/packages/i18n/README.md +460 -460
- package/packages/i18n/src/I18n.ts +246 -246
- package/packages/i18n/src/Translation.tsx +36 -36
- package/packages/i18n/src/addResourceBundle.ts +73 -73
- package/packages/i18n/src/direction.ts +33 -33
- package/packages/i18n/src/index.ts +4 -4
- package/packages/i18n/src/isRtl.ts +3 -3
- package/packages/i18n/src/middlewares/i18next/Context/Context.ts +25 -25
- package/packages/i18n/src/middlewares/i18next/Context/index.ts +1 -1
- package/packages/i18n/src/middlewares/i18next/Interpolation/Interpolation.ts +95 -95
- package/packages/i18n/src/middlewares/i18next/Interpolation/index.ts +1 -1
- package/packages/i18n/src/middlewares/i18next/Nesting/Nesting.ts +38 -38
- package/packages/i18n/src/middlewares/i18next/Nesting/index.ts +1 -1
- package/packages/i18n/src/middlewares/i18next/Plurals/Plurals.ts +123 -123
- package/packages/i18n/src/middlewares/i18next/Plurals/Resolvers.ts +124 -124
- package/packages/i18n/src/middlewares/i18next/Plurals/index.ts +1 -1
- package/packages/i18n/src/middlewares/i18next/Plurals/types.ts +6 -6
- package/packages/i18n/src/middlewares/icu/DateInterpolation/DateInterpolation.ts +64 -64
- package/packages/i18n/src/middlewares/icu/DateInterpolation/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/Interpolation/Interpolation.ts +39 -39
- package/packages/i18n/src/middlewares/icu/Interpolation/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/NumberInterpolation/NumberInterpolation.ts +41 -41
- package/packages/i18n/src/middlewares/icu/NumberInterpolation/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/Plurals/Plurals.ts +65 -65
- package/packages/i18n/src/middlewares/icu/Plurals/Resolvers.ts +130 -130
- package/packages/i18n/src/middlewares/icu/Plurals/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/Plurals/types.ts +15 -15
- package/packages/i18n/src/middlewares/icu/Select/Select.ts +36 -36
- package/packages/i18n/src/middlewares/icu/Select/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/TimeInterpolation/TimeInterpolation.ts +65 -65
- package/packages/i18n/src/middlewares/icu/TimeInterpolation/index.ts +1 -1
- package/packages/i18n/src/middlewares/icu/shared/hasVariable.ts +5 -5
- package/packages/i18n/src/middlewares/icu/shared/matchSwitchCase.ts +80 -80
- package/packages/i18n/src/middlewares/icu/shared/unwrap.ts +1 -1
- package/packages/i18n/src/pluralsCommon/PluralsHelper.ts +54 -54
- package/packages/i18n/src/pluralsCommon/ResolverByLanguage.ts +129 -129
- package/packages/i18n/src/t.tsx +6 -6
- package/packages/i18n/src/typedTranslate.ts +31 -31
- package/packages/i18n/src/types.ts +66 -66
- package/packages/i18n/src/utils.ts +76 -76
- package/packages/icon/README.md +107 -107
- package/packages/icon/src/Icon.tsx +71 -71
- package/packages/icon/src/index.ts +1 -1
- package/packages/ime/README.md +72 -72
- package/packages/ime/src/IKeyboard.ts +6 -6
- package/packages/ime/src/IKeyboardEvent.ts +7 -7
- package/packages/ime/src/ImeManager.ts +33 -33
- package/packages/ime/src/SystemKeyboard/SystemKeyboard.ts +33 -33
- package/packages/ime/src/SystemKeyboard/SystemKeyboardBase.ts +98 -98
- package/packages/ime/src/SystemKeyboard/TizenSystemKeyboard.ts +66 -66
- package/packages/ime/src/SystemKeyboard/WebosSystemKeyboard.ts +74 -74
- package/packages/ime/src/SystemKeyboard/index.tizen.tv.ts +1 -1
- package/packages/ime/src/SystemKeyboard/index.ts +1 -1
- package/packages/ime/src/SystemKeyboard/index.webos.tv.ts +1 -1
- package/packages/ime/src/index.ts +3 -3
- package/packages/input/README.md +65 -65
- package/packages/input/__mocks__/MockKeyboard.ts +40 -40
- package/packages/input/src/Input.scss +9 -9
- package/packages/input/src/Input.tsx +267 -267
- package/packages/input/src/index.ts +1 -1
- package/packages/input/src/utils.ts +71 -71
- package/packages/interactable/README.md +38 -38
- package/packages/interactable/src/Interactable.tsx +33 -33
- package/packages/interactable/src/index.ts +1 -1
- package/packages/interactable/src/interface.ts +7 -7
- package/packages/ipify/README.md +30 -30
- package/packages/ipify/src/index.ts +1 -1
- package/packages/ipify/src/ipify.ts +41 -41
- package/packages/jsx/README.md +388 -388
- package/packages/jsx/src/Component.ts +68 -68
- package/packages/jsx/src/createRef.ts +5 -5
- package/packages/jsx/src/forwardRef.ts +8 -8
- package/packages/jsx/src/index.ts +31 -31
- package/packages/jsx/src/jsx-runtime.ts +5 -5
- package/packages/jsx/src/manipulation/attachNode.ts +30 -30
- package/packages/jsx/src/manipulation/attachNodeBefore.ts +44 -44
- package/packages/jsx/src/manipulation/clearNode.ts +14 -14
- package/packages/jsx/src/manipulation/detachNode.ts +26 -26
- package/packages/jsx/src/manipulation/index.ts +7 -7
- package/packages/jsx/src/manipulation/removeNode.ts +18 -18
- package/packages/jsx/src/manipulation/replaceNode.ts +42 -42
- package/packages/jsx/src/manipulation/swapNodes.ts +53 -53
- package/packages/jsx/src/mount/guards.ts +26 -26
- package/packages/jsx/src/mount/handleLifecycle.ts +71 -71
- package/packages/jsx/src/mount/index.ts +1 -1
- package/packages/jsx/src/mount/lifecycle.ts +38 -38
- package/packages/jsx/src/mount/lifecycleHelpers.ts +29 -29
- package/packages/jsx/src/mount/mount.ts +141 -141
- package/packages/jsx/src/mount/namespaces.ts +7 -7
- package/packages/jsx/src/mount/props.ts +121 -121
- package/packages/jsx/src/nodeUtils.ts +69 -69
- package/packages/jsx/src/setText.ts +15 -15
- package/packages/jsx/src/test-utils/MountedComponent.ts +50 -50
- package/packages/jsx/src/test-utils/README.md +72 -72
- package/packages/jsx/src/test-utils/click.ts +7 -7
- package/packages/jsx/src/test-utils/enter.ts +4 -4
- package/packages/jsx/src/test-utils/index.ts +6 -6
- package/packages/jsx/src/test-utils/keydown.ts +27 -27
- package/packages/jsx/src/test-utils/keyup.ts +27 -27
- package/packages/jsx/src/test-utils/shallow.ts +33 -33
- package/packages/jsx/src/test-utils/spec-utils.ts +6 -6
- package/packages/jsx/src/textNode.ts +9 -9
- package/packages/jsx/src/types.ts +128 -128
- package/packages/jsx/src/utils.ts +35 -35
- package/packages/jsx/src/virtualDOM.ts +121 -121
- package/packages/key-sequence/README.md +44 -44
- package/packages/key-sequence/src/KeySequence.ts +56 -56
- package/packages/key-sequence/src/arrayEndsWithKeyCombo.ts +22 -22
- package/packages/key-sequence/src/index.ts +1 -1
- package/packages/key-sequence/src/types.ts +13 -13
- package/packages/keyboard/README.md +237 -237
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.scss +140 -140
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.1080.scss +2 -2
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.1080.scss +3 -3
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.scss +3 -3
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.scss +2 -2
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.tsx +235 -235
- package/packages/keyboard/src/AndroidKeyboard/_animated.scss +7 -7
- package/packages/keyboard/src/AndroidKeyboard/_sizes.1080.scss +15 -15
- package/packages/keyboard/src/AndroidKeyboard/_sizes.scss +15 -15
- package/packages/keyboard/src/AndroidKeyboard/icons/arrow_left.svg +6 -6
- package/packages/keyboard/src/AndroidKeyboard/icons/arrow_right.svg +6 -6
- package/packages/keyboard/src/AndroidKeyboard/icons/key_backspace.svg +12 -12
- package/packages/keyboard/src/AndroidKeyboard/index.ts +1 -1
- package/packages/keyboard/src/AndroidKeyboard/makeLayout.ts +19 -19
- package/packages/keyboard/src/Backdrop/Backdrop.scss +17 -17
- package/packages/keyboard/src/Backdrop/Backdrop.styles.1080.scss +2 -2
- package/packages/keyboard/src/Backdrop/Backdrop.styles.scss +2 -2
- package/packages/keyboard/src/Backdrop/Backdrop.tsx +31 -31
- package/packages/keyboard/src/Backdrop/_sizes.1080.scss +2 -2
- package/packages/keyboard/src/Backdrop/_sizes.scss +2 -2
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.scss +73 -73
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.1080.scss +2 -2
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.scss +2 -2
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.tsx +155 -155
- package/packages/keyboard/src/DefaultKeyboard/_sizes.1080.scss +12 -12
- package/packages/keyboard/src/DefaultKeyboard/_sizes.scss +12 -12
- package/packages/keyboard/src/DefaultKeyboard/index.ts +1 -1
- package/packages/keyboard/src/KeyboardBase.tsx +344 -344
- package/packages/keyboard/src/MobiKeyboard/Keyboard.scss +180 -180
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.1080.scss +2 -2
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.1080.scss +3 -3
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.scss +3 -3
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.scss +2 -2
- package/packages/keyboard/src/MobiKeyboard/Keyboard.tsx +278 -278
- package/packages/keyboard/src/MobiKeyboard/_animated.scss +7 -7
- package/packages/keyboard/src/MobiKeyboard/_sizes.1080.scss +10 -10
- package/packages/keyboard/src/MobiKeyboard/_sizes.scss +10 -10
- package/packages/keyboard/src/MobiKeyboard/icons/arrow_left.svg +6 -6
- package/packages/keyboard/src/MobiKeyboard/icons/arrow_right.svg +6 -6
- package/packages/keyboard/src/MobiKeyboard/icons/key_backspace.svg +12 -12
- package/packages/keyboard/src/MobiKeyboard/icons/key_space.svg +6 -6
- package/packages/keyboard/src/MobiKeyboard/index.ts +1 -1
- package/packages/keyboard/src/MobiKeyboard/utils.ts +19 -19
- package/packages/keyboard/src/QwertyKeyboardBase/QwertyKeyboardBase.tsx +54 -54
- package/packages/keyboard/src/ShiftMode.ts +25 -25
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +168 -168
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.1080.scss +2 -2
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.scss +2 -2
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +353 -353
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -7
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.scss +7 -7
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/index.ts +1 -1
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.scss +81 -81
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -2
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -2
- package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +32 -32
- package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +32 -32
- package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_left.svg +9 -9
- package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_right.svg +9 -9
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_backspace.svg +9 -9
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_language.svg +20 -20
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift.svg +9 -9
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift_active.svg +9 -9
- package/packages/keyboard/src/WhitelabelKeyboard/index.ts +2 -2
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/arabic.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/burmese.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/dari.ts +28 -28
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/hebrew.ts +28 -28
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +14 -14
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +26 -26
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/latin.ts +26 -26
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/pashto.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/persian.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/special.ts +28 -28
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +26 -26
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +26 -26
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/ukrainian.ts +27 -27
- package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +26 -26
- package/packages/keyboard/src/WhitelabelKeyboard/types.ts +28 -28
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.scss +105 -105
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.1080.scss +2 -2
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.scss +2 -2
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.tsx +161 -161
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -7
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.scss +7 -7
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/index.ts +1 -1
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.scss +62 -62
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -2
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -2
- package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.1080.scss +29 -29
- package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.scss +29 -29
- package/packages/keyboard/src/WhitelabelNumericKeyboard/icons/key_backspace.svg +9 -9
- package/packages/keyboard/src/WhitelabelNumericKeyboard/index.ts +2 -2
- package/packages/keyboard/src/WhitelabelNumericKeyboard/layout.ts +14 -14
- package/packages/keyboard/src/hwKeyboardEventToChar.ts +11 -11
- package/packages/keyboard/src/types/index.ts +11 -11
- package/packages/keyboard/src/utils/caret.ts +48 -48
- package/packages/keyboard/src/utils/generateFocusMatrixFromStringMatrix.ts +12 -12
- package/packages/keyboard/src/utils/input.ts +40 -40
- package/packages/l10n/README.md +120 -120
- package/packages/l10n/interface.ts +1 -1
- package/packages/l10n/locales/cs.ts +4 -4
- package/packages/l10n/locales/en-001.ts +4 -4
- package/packages/l10n/locales/en-us.ts +4 -4
- package/packages/l10n/src/Locale.tsx +44 -44
- package/packages/l10n/src/date/common.ts +165 -165
- package/packages/l10n/src/date/cs.ts +89 -89
- package/packages/l10n/src/date/de.ts +97 -97
- package/packages/l10n/src/date/en-001.ts +76 -76
- package/packages/l10n/src/date/en-common.ts +55 -55
- package/packages/l10n/src/date/en-us.ts +83 -83
- package/packages/l10n/src/date/es.ts +71 -71
- package/packages/l10n/src/date/fr.ts +94 -94
- package/packages/l10n/src/date/he.ts +101 -101
- package/packages/l10n/src/date/iso.ts +63 -63
- package/packages/l10n/src/date/types.ts +56 -56
- package/packages/l10n/src/index.ts +2 -2
- package/packages/l10n/src/l10n.ts +112 -112
- package/packages/l10n/src/types.ts +22 -22
- package/packages/list/AttachDetachItem/README.md +128 -128
- package/packages/list/AttachDetachItem/index.ts +3 -3
- package/packages/list/BasicList/README.md +71 -71
- package/packages/list/BasicList/index.ts +1 -1
- package/packages/list/CenteredList/README.md +42 -42
- package/packages/list/CenteredList/index.ts +1 -1
- package/packages/list/EdgeOffsetList/README.md +58 -58
- package/packages/list/EdgeOffsetList/index.ts +1 -1
- package/packages/list/FirstOnlyList/README.md +39 -39
- package/packages/list/FirstOnlyList/index.ts +1 -1
- package/packages/list/FirstOnlyVariedList/README.md +105 -105
- package/packages/list/FirstOnlyVariedList/index.ts +1 -1
- package/packages/list/FixedToEndList/README.md +42 -42
- package/packages/list/FixedToEndList/index.ts +1 -1
- package/packages/list/Item/index.ts +1 -1
- package/packages/list/README.md +193 -193
- package/packages/list/src/AttachDetachItem/AttachDetachItem.tsx +96 -96
- package/packages/list/src/AttachDetachItem/prepareAttachDetachItemData.ts +13 -13
- package/packages/list/src/Base/Base.tsx +392 -392
- package/packages/list/src/Base/MouseNavigation/MouseNavigation.tsx +82 -82
- package/packages/list/src/Base/MouseNavigation/MouseNavigationFallback.ts +4 -4
- package/packages/list/src/Base/MouseNavigation/index.tizen.tv.ts +1 -1
- package/packages/list/src/Base/MouseNavigation/index.ts +1 -1
- package/packages/list/src/Base/MouseNavigation/index.webos.tv.ts +1 -1
- package/packages/list/src/Base/MouseNavigation/index.webtv.ts +1 -1
- package/packages/list/src/Base/index.ts +1 -1
- package/packages/list/src/Base/interface.ts +39 -39
- package/packages/list/src/BasicList/BasicList.tsx +178 -178
- package/packages/list/src/BasicList/config.ts +13 -13
- package/packages/list/src/CenteredList/CenteredList.tsx +116 -116
- package/packages/list/src/CenteredList/config.ts +13 -13
- package/packages/list/src/CenteredList/controller.ts +46 -46
- package/packages/list/src/CenteredList/interface.ts +10 -10
- package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +173 -173
- package/packages/list/src/EdgeOffsetList/config.ts +13 -13
- package/packages/list/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -54
- package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +122 -122
- package/packages/list/src/FirstOnlyList/config.ts +13 -13
- package/packages/list/src/FirstOnlyList/controller.ts +11 -11
- package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +132 -132
- package/packages/list/src/FirstOnlyVariedList/config.ts +13 -13
- package/packages/list/src/FixedToEndList/FixedToEndList.tsx +125 -125
- package/packages/list/src/FixedToEndList/config.ts +13 -13
- package/packages/list/src/FixedToEndList/controller.ts +44 -44
- package/packages/list/src/UnifiedListController/UnifiedListController.ts +258 -258
- package/packages/list/src/UnifiedListController/UnifiedListControllerBase.ts +241 -241
- package/packages/list/src/UnifiedListController/UnifiedVariedListController.ts +241 -241
- package/packages/list/src/UnifiedListController/interface.ts +81 -81
- package/packages/list/src/__test__/utils.spec.ts +59 -59
- package/packages/list/src/animate.animated.ts +1 -1
- package/packages/list/src/animate.ts +1 -1
- package/packages/list/src/index.ts +1 -1
- package/packages/list/src/interface.ts +48 -48
- package/packages/list/src/mocks/index.tsx +55 -55
- package/packages/list/src/types.ts +132 -132
- package/packages/list/src/utils.ts +142 -142
- package/packages/list/utils/index.ts +1 -1
- package/packages/logger/README.md +117 -117
- package/packages/logger/src/LoggerManager.ts +60 -60
- package/packages/logger/src/LoggerService.ts +43 -43
- package/packages/logger/src/__mocks__/LoggerBase.ts +13 -13
- package/packages/logger/src/index.ts +3 -3
- package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +51 -51
- package/packages/logger/src/loggers/ConsoleLogger/README.md +39 -39
- package/packages/logger/src/loggers/ConsoleLogger/index.ts +1 -1
- package/packages/logger/src/loggers/LoggerBase/LoggerBase.ts +67 -67
- package/packages/logger/src/loggers/LoggerBase/README.md +69 -69
- package/packages/logger/src/loggers/LoggerBase/index.ts +1 -1
- package/packages/logger/src/loggers/SentryLogger/README.md +98 -98
- package/packages/logger/src/loggers/SentryLogger/Sentry.ts +2 -2
- package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +179 -179
- package/packages/logger/src/loggers/SentryLogger/index.ts +2 -2
- package/packages/logger/src/loggers/SentryLogger/mock.ts +6 -6
- package/packages/logger/src/loggers/index.ts +2 -2
- package/packages/logger/src/types.ts +46 -46
- package/packages/logger/src/utils/deviceInfo.ts +25 -25
- package/packages/logger/src/utils/index.ts +1 -1
- package/packages/lottie-animations/README.md +217 -217
- package/packages/lottie-animations/src/LottieAnimation.tsx +125 -125
- package/packages/lottie-animations/src/index.ts +7 -7
- package/packages/menu/README.md +90 -90
- package/packages/menu/WhitelabelMenu/index.ts +1 -1
- package/packages/menu/WhitelabelMenu/interface.ts +2 -2
- package/packages/menu/WhitelabelMenu/styles.ts +2 -2
- package/packages/menu/interface.ts +3 -3
- package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +211 -211
- package/packages/menu/src/MenuAndContentContainer/index.ts +1 -1
- package/packages/menu/src/MenuAndContentContainer/interface.ts +164 -164
- package/packages/menu/src/MenuAndContentContainer/service.ts +5 -5
- package/packages/menu/src/WhitelabelMenu/SideMenu.scss +41 -41
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.1080.scss +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.1080.scss +3 -3
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.scss +3 -3
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.scss +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenu.tsx +248 -248
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.scss +56 -56
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.1080.scss +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.1080.scss +3 -3
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.scss +3 -3
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.scss +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.tsx +78 -78
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_animated.scss +12 -12
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.1080.scss +17 -17
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.scss +17 -17
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/index.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/interface.ts +49 -49
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/rtl.scss +12 -12
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.1080.ts +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.ts +2 -2
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/styles.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/VisualController.animated.ts +48 -48
- package/packages/menu/src/WhitelabelMenu/VisualController.ts +20 -20
- package/packages/menu/src/WhitelabelMenu/VisualControllerBase.ts +71 -71
- package/packages/menu/src/WhitelabelMenu/_animated.scss +39 -39
- package/packages/menu/src/WhitelabelMenu/_sizes.1080.scss +14 -14
- package/packages/menu/src/WhitelabelMenu/_sizes.scss +14 -14
- package/packages/menu/src/WhitelabelMenu/constants.animated.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/constants.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/index.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/interface.ts +14 -14
- package/packages/menu/src/WhitelabelMenu/rtl.scss +22 -22
- package/packages/menu/src/WhitelabelMenu/sizes.1080.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/sizes.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/styles.ts +1 -1
- package/packages/menu/src/WhitelabelMenu/utils.ts +34 -34
- package/packages/menu/src/index.ts +2 -2
- package/packages/modal-service/README.md +50 -50
- package/packages/modal-service/src/IModal.ts +3 -3
- package/packages/modal-service/src/ModalService.scss +7 -7
- package/packages/modal-service/src/ModalService.styles.1080.scss +2 -2
- package/packages/modal-service/src/ModalService.styles.scss +2 -2
- package/packages/modal-service/src/ModalService.tsx +102 -102
- package/packages/modal-service/src/_sizes.1080.scss +2 -2
- package/packages/modal-service/src/_sizes.scss +2 -2
- package/packages/modal-service/src/index.ts +2 -2
- package/packages/mouse-navigation/README.md +105 -105
- package/packages/mouse-navigation/src/ArrowNavigation/Arrow.tsx +58 -58
- package/packages/mouse-navigation/src/ArrowNavigation/ArrowNavigation.tsx +95 -95
- package/packages/mouse-navigation/src/ArrowNavigation/__test__/Arrow.spec.tsx +35 -35
- package/packages/mouse-navigation/src/ArrowNavigation/__test__/ArrowNavigation.spec.tsx +45 -45
- package/packages/mouse-navigation/src/ArrowNavigation/index.tsx +1 -1
- package/packages/mouse-navigation/src/MouseElementWrapper.tsx +70 -70
- package/packages/mouse-navigation/src/MouseNavigation.tsx +157 -157
- package/packages/mouse-navigation/src/MouseNavigationInterface.ts +8 -8
- package/packages/mouse-navigation/src/index.ts +3 -3
- package/packages/numeric-zapper/README.md +153 -153
- package/packages/numeric-zapper/src/NumericZapper.scss +20 -20
- package/packages/numeric-zapper/src/NumericZapper.styles.1080.scss +2 -2
- package/packages/numeric-zapper/src/NumericZapper.styles.scss +2 -2
- package/packages/numeric-zapper/src/NumericZapper.tsx +257 -257
- package/packages/numeric-zapper/src/ZapperAllower.ts +15 -15
- package/packages/numeric-zapper/src/ZapperService.tsx +8 -8
- package/packages/numeric-zapper/src/_sizes.1080.scss +7 -7
- package/packages/numeric-zapper/src/_sizes.scss +7 -7
- package/packages/numeric-zapper/src/index.ts +4 -4
- package/packages/numeric-zapper/src/interface.ts +1 -1
- package/packages/numeric-zapper/src/styles.ts +1 -1
- package/packages/perf-utils/README.md +7 -7
- package/packages/perf-utils/src/array/filter.ts +1 -1
- package/packages/perf-utils/src/array/find.ts +1 -1
- package/packages/perf-utils/src/array/findIndex.ts +1 -1
- package/packages/perf-utils/src/array/forEach.ts +1 -1
- package/packages/perf-utils/src/array/includes.ts +1 -1
- package/packages/perf-utils/src/array/includesNaN.ts +1 -1
- package/packages/perf-utils/src/array/index.ts +1 -1
- package/packages/perf-utils/src/array/map.ts +1 -1
- package/packages/picker/README.md +70 -70
- package/packages/picker/src/DatePicker.tsx +55 -55
- package/packages/picker/src/ModalPicker/Checkbox.tsx +38 -38
- package/packages/picker/src/ModalPicker/PickerItem.tsx +86 -86
- package/packages/picker/src/ModalPicker/PickerModal.tsx +98 -98
- package/packages/picker/src/ModalPicker/index.ts +1 -1
- package/packages/picker/src/ModalPicker/modalPicker.tsx +48 -48
- package/packages/picker/src/Picker.tsx +127 -127
- package/packages/picker/src/index.ts +3 -3
- package/packages/picker/src/types.ts +25 -25
- package/packages/pin-input/README.md +55 -55
- package/packages/pin-input/src/PinInput.scss +5 -5
- package/packages/pin-input/src/PinInput.tsx +169 -169
- package/packages/pin-input/src/index.ts +1 -1
- package/packages/player-ui/README.md +207 -207
- package/packages/player-ui/src/BackwardButton.tsx +41 -41
- package/packages/player-ui/src/CurrentTime.tsx +56 -56
- package/packages/player-ui/src/Duration.tsx +60 -60
- package/packages/player-ui/src/ForwardButton.tsx +41 -41
- package/packages/player-ui/src/PauseButton.tsx +65 -65
- package/packages/player-ui/src/PlayButton.tsx +57 -57
- package/packages/player-ui/src/PlayPauseButton.tsx +63 -63
- package/packages/player-ui/src/PlayerInteractable.tsx +67 -67
- package/packages/player-ui/src/PlayerTime.tsx +57 -57
- package/packages/player-ui/src/PlayerUI.tsx +267 -267
- package/packages/player-ui/src/RemainingTime.tsx +74 -74
- package/packages/player-ui/src/Seekbar.tsx +274 -274
- package/packages/player-ui/src/Seeking.ts +163 -163
- package/packages/player-ui/src/StopButton.tsx +35 -35
- package/packages/player-ui/src/Subtitles.tsx +151 -151
- package/packages/player-ui/src/index.ts +15 -15
- package/packages/player-ui/src/mocks.ts +65 -65
- package/packages/player-ui/src/timeUtils.ts +142 -142
- package/packages/player-ui/src/types.ts +48 -48
- package/packages/progress-bar/README.md +31 -31
- package/packages/progress-bar/src/ProgressBar.tsx +41 -41
- package/packages/progress-bar/src/index.ts +1 -1
- package/packages/progress-bar/src/interface.ts +14 -14
- package/packages/qr-code/README.md +79 -79
- package/packages/qr-code/src/QRCode.tsx +39 -39
- package/packages/qr-code/src/index.ts +2 -2
- package/packages/qr-code/src/qrGenerator/__external__/constants.ts +23 -23
- package/packages/qr-code/src/qrGenerator/__external__/qrcode.d.ts +31 -31
- package/packages/qr-code/src/qrGenerator/__external__/qrcode.js +618 -618
- package/packages/qr-code/src/qrGenerator/generateQr.ts +7 -7
- package/packages/qr-code/src/qrGenerator/index.ts +3 -3
- package/packages/router/README.md +163 -163
- package/packages/router/src/Route.tsx +166 -166
- package/packages/router/src/Router.tsx +220 -220
- package/packages/router/src/focusActiveRoute.ts +5 -5
- package/packages/router/src/history.ts +31 -31
- package/packages/router/src/index.ts +6 -6
- package/packages/router/src/types.ts +13 -13
- package/packages/router/src/utils.ts +37 -35
- package/packages/runtime-config/README.md +37 -37
- package/packages/runtime-config/src/Config.ts +44 -44
- package/packages/runtime-config/src/index.ts +1 -1
- package/packages/sass-utils/README.md +197 -197
- package/packages/sass-utils/src/box-shadow.scss +5 -5
- package/packages/sass-utils/src/ellipsis.scss +15 -15
- package/packages/sass-utils/src/linear-gradient.scss +43 -43
- package/packages/sass-utils/src/prefix-property.scss +7 -7
- package/packages/sass-utils/src/prefix-value.scss +6 -6
- package/packages/sass-utils/src/prefix.scss +6 -6
- package/packages/sass-utils/src/scale.1080.scss +3 -3
- package/packages/sass-utils/src/scale.720.scss +5 -5
- package/packages/sass-utils/src/transform.scss +5 -5
- package/packages/sass-utils/src/transition.scss +6 -6
- package/packages/scheduler/README.md +55 -55
- package/packages/scheduler/src/Scheduler.ts +43 -43
- package/packages/scheduler/src/Task.ts +72 -72
- package/packages/scheduler/src/index.ts +4 -4
- package/packages/scheduler/src/timeProvider.ts +3 -3
- package/packages/scroll-text/README.md +77 -77
- package/packages/scroll-text/src/Base.tsx +146 -146
- package/packages/scroll-text/src/ScrollText.animated.tsx +80 -80
- package/packages/scroll-text/src/ScrollText.tsx +53 -53
- package/packages/scroll-text/src/ScrollTextBaseClass.tsx +86 -86
- package/packages/scroll-text/src/index.ts +1 -1
- package/packages/scroller/README.md +77 -77
- package/packages/scroller/src/Scroller.tsx +51 -51
- package/packages/scroller/src/index.ts +1 -1
- package/packages/splash/AnimatedSplash.ts +1 -1
- package/packages/splash/AnimatedSplashAnimated.ts +1 -1
- package/packages/splash/AnimatedSplashBasic.ts +1 -1
- package/packages/splash/AutomaticSplashAnimated.ts +1 -1
- package/packages/splash/AutomaticSplashBasic.ts +1 -1
- package/packages/splash/README.md +93 -93
- package/packages/splash/StaticSplash.ts +1 -1
- package/packages/splash/StaticSplashAnimated.ts +1 -1
- package/packages/splash/StaticSplashBasic.ts +1 -1
- package/packages/splash/src/AnimatedSplash.animated.tsx +78 -78
- package/packages/splash/src/AnimatedSplash.basic.tsx +37 -37
- package/packages/splash/src/AutomaticSplash.animated.tsx +20 -20
- package/packages/splash/src/AutomaticSplash.basic.tsx +20 -20
- package/packages/splash/src/Splash.scss +8 -8
- package/packages/splash/src/StaticSplash.animated.tsx +48 -48
- package/packages/splash/src/StaticSplash.basic.tsx +26 -26
- package/packages/splash/src/index.animated.ts +1 -1
- package/packages/splash/src/index.ts +1 -1
- package/packages/splash/src/styles.ts +1 -1
- package/packages/splash/src/types.ts +20 -20
- package/packages/storage/README.md +61 -61
- package/packages/storage/src/CookieStorage/CookieStorage.ts +57 -57
- package/packages/storage/src/CookieStorage/index.ts +1 -1
- package/packages/storage/src/LocalStorage/LocalStorage.ts +58 -58
- package/packages/storage/src/LocalStorage/index.ts +1 -1
- package/packages/storage/src/index.ts +2 -2
- package/packages/storage/src/shared.ts +41 -41
- package/packages/storage/src/types.ts +33 -33
- package/packages/throbber/README.md +53 -53
- package/packages/throbber/src/Throbber.scss +52 -52
- package/packages/throbber/src/Throbber.tsx +19 -19
- package/packages/throbber/src/ThrobberService.tsx +55 -55
- package/packages/throbber/src/controlsHandling.ts +14 -14
- package/packages/throbber/src/index.ts +2 -2
- package/packages/time/README.md +116 -116
- package/packages/time/src/Time.ts +257 -257
- package/packages/time/src/adapters/24iMediaTimeApi.ts +47 -47
- package/packages/time/src/adapters/worldTimeApi.ts +74 -74
- package/packages/time/src/constants.ts +14 -14
- package/packages/time/src/index.ts +1 -1
- package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +43 -43
- package/packages/time/src/services/24iMediaTimeApi/index.ts +6 -6
- package/packages/time/src/services/worldTimeApi/index.ts +7 -7
- package/packages/time/src/services/worldTimeApi/types.ts +75 -75
- package/packages/time/src/services/worldTimeApi/worldTimeApi.ts +77 -77
- package/packages/time/src/types.ts +39 -39
- package/packages/time/src/utils.ts +79 -79
- package/packages/toast/README.md +116 -116
- package/packages/toast/src/Toast/IVisualController.ts +7 -7
- package/packages/toast/src/Toast/Toast.scss +22 -22
- package/packages/toast/src/Toast/Toast.styles.1080.scss +2 -2
- package/packages/toast/src/Toast/Toast.styles.scss +2 -2
- package/packages/toast/src/Toast/Toast.tsx +83 -83
- package/packages/toast/src/Toast/VisualController.animated.ts +20 -20
- package/packages/toast/src/Toast/VisualController.ts +9 -9
- package/packages/toast/src/Toast/_sizes.1080.scss +8 -8
- package/packages/toast/src/Toast/_sizes.scss +8 -8
- package/packages/toast/src/Toast/index.ts +2 -2
- package/packages/toast/src/Toast/styles.ts +1 -1
- package/packages/toast/src/ToastService.scss +8 -8
- package/packages/toast/src/ToastService.styles.1080.scss +2 -2
- package/packages/toast/src/ToastService.styles.scss +2 -2
- package/packages/toast/src/ToastService.tsx +59 -59
- package/packages/toast/src/_sizes.1080.scss +2 -2
- package/packages/toast/src/_sizes.scss +2 -2
- package/packages/toast/src/index.ts +4 -4
- package/packages/toast/src/types.ts +4 -4
- package/packages/types-bigscreen-jsx/README.md +12 -12
- package/packages/types-bigscreen-jsx/global.d.ts +0 -0
- package/packages/types-bigscreen-jsx/index.d.ts +32 -32
- package/packages/types-bigscreen-jsx/src/copyTypes.js +14 -14
- package/packages/utils/README.md +363 -363
- package/packages/utils/src/addClass.ts +9 -9
- package/packages/utils/src/counter.ts +49 -49
- package/packages/utils/src/debounce.ts +54 -54
- package/packages/utils/src/displayToggler.scss +3 -3
- package/packages/utils/src/displayToggler.ts +38 -38
- package/packages/utils/src/elementUtils.ts +105 -105
- package/packages/utils/src/forceReflow.ts +14 -14
- package/packages/utils/src/generateUuid.ts +19 -19
- package/packages/utils/src/index.ts +43 -43
- package/packages/utils/src/keyPress/index.ts +6 -6
- package/packages/utils/src/keyPress/keyPressSimulator.ts +74 -74
- package/packages/utils/src/keyPress/simulateKeyPress.ts +25 -25
- package/packages/utils/src/memoryInfo.ts +21 -21
- package/packages/utils/src/nTimes.ts +9 -9
- package/packages/utils/src/noop.ts +1 -1
- package/packages/utils/src/offsetPosition.ts +56 -56
- package/packages/utils/src/removeClass.ts +9 -9
- package/packages/utils/src/scaledImage.ts +24 -24
- package/packages/utils/src/sizes.1080.ts +1 -1
- package/packages/utils/src/sizes.ts +1 -1
- package/packages/utils/src/stopEvent.ts +10 -10
- package/packages/utils/src/textUtils.ts +57 -57
- package/packages/utils/src/timeConstants.ts +11 -11
- package/packages/utils/src/timers/createInterval.ts +19 -19
- package/packages/utils/src/timers/createTimeout.ts +22 -22
- package/packages/utils/src/timers/index.ts +4 -4
- package/packages/utils/src/timers/runAsync.ts +3 -3
- package/packages/utils/src/timers/types.ts +9 -9
- package/packages/utils/src/wait.ts +3 -3
- package/packages/utils/src/xhr/__mocks__/xhr.ts +29 -29
- package/packages/utils/src/xhr/index.ts +11 -11
- package/packages/utils/src/xhr/xhrSend.ts +141 -141
- package/packages/utils/src/xhr/xhrSendRetry.ts +79 -79
- package/packages/volume-control/README.md +79 -79
- package/packages/volume-control/src/IVolumeControlUI.ts +26 -26
- package/packages/volume-control/src/VolumeControlService.tsx +110 -110
- package/packages/volume-control/src/VolumeControlUI/VisualController.animated.ts +28 -28
- package/packages/volume-control/src/VolumeControlUI/VisualController.ts +3 -3
- package/packages/volume-control/src/VolumeControlUI/VisualControllerBase.ts +26 -26
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.scss +18 -18
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.animated.scss +2 -2
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.scss +1 -1
- package/packages/volume-control/src/VolumeControlUI/VolumeControlUI.tsx +80 -80
- package/packages/volume-control/src/VolumeControlUI/_animated.scss +8 -8
- package/packages/volume-control/src/VolumeControlUI/index.ts +1 -1
- package/packages/volume-control/src/__mocks__/VolumeControlUIMock.tsx +22 -22
- package/packages/volume-control/src/index.ts +2 -2
- package/packages/zapping/README.md +87 -87
- package/packages/zapping/src/ChannelZapping.ts +143 -143
- package/packages/zapping/src/Zapping.tsx +115 -115
- package/packages/zapping/src/index.ts +1 -1
- package/packages/zapping/src/interface.ts +1 -1
- package/utils/create-export-maps/index.ts +3 -3
- package/utils/create-export-maps/src/__tests__/createExportMaps.spec.ts +50 -50
- package/utils/create-export-maps/src/createExportMaps.ts +61 -61
- package/utils/create-package/README.md +39 -39
- package/utils/create-package/src/createPackage.ts +72 -72
- package/utils/create-package/src/index.ts +3 -3
- package/utils/create-package/src/questionnaire/questions.ts +19 -19
- package/utils/create-package/src/settings/Settings.ts +5 -5
- package/utils/create-package/src/types.ts +4 -4
- package/utils/create-package/templates/typescript/README.md +8 -8
- package/utils/create-package/templates/typescript/exports.json +6 -6
- package/utils/run-scripts/index.ts +3 -3
- package/utils/run-scripts/src/__tests__/runScripts.spec.ts +45 -45
- package/utils/run-scripts/src/runScripts.ts +20 -20
|
@@ -1,699 +1,699 @@
|
|
|
1
|
-
/*! (C) 2020 Conviva, Inc. All rights reserved. Confidential and proprietary. */
|
|
2
|
-
!function(a,b){if("function"==typeof define&&define.amd?define(b):"object"==typeof exports&&(module.exports=b()),"undefined"!=typeof a){if(void 0!==a.Conviva)return;if(a.ConvivaLoading)return;a.ConvivaLoading=!0,
|
|
3
|
-
a.Conviva=b(),delete a.ConvivaLoading}}(window,function(){var a={};return function(){"use strict";var b={};!function(){var c=a.Constants={};c.version="4.0.15",c.CUSTOMER_KEY="customerKey",c.GATEWAY_URL="gatewayUrl",
|
|
4
|
-
c.LOG_LEVEL="logLevel",c.ASSET_NAME="Conviva.assetName",c.PLAYER_NAME="Conviva.applicationName",c.IS_LIVE="Conviva.streamType",c.ENCODED_FRAMERATE="Conviva.encodedFrameRate",c.DEFAULT_RESOURCE="Conviva.defaultResource",
|
|
5
|
-
c.STREAM_URL="Conviva.streamUrl",c.VIEWER_ID="Conviva.viewerId",c.DURATION="Conviva.duration",c.POD_INDEX="podIndex",c.POD_POSITION="podPosition",c.POD_DURATION="podDuration",c.MODULE_NAME="Conviva.moduleName",
|
|
6
|
-
c.MODULE_VERSION="Conviva.moduleVersion",c.FRAMEWORK_NAME="Conviva.frameworkName",c.FRAMEWORK_VERSION="Conviva.frameworkVersion",c.CLIENT_CONFIGURATION_FAILED="Constants not yet configured",c.INVALID_PLAYER_MONITOR="Invalid : Did you report playback ended?",
|
|
7
|
-
c.INVALID_AD_PLAYER_MONITOR="Invalid : Did you report ad playback ended?",c.PLAYER_UNAVAILABLE_ERROR="Player cannot be null",c.PLAYBACK_ANALYTICS_AVAILABLE="PlaybackAnlytics already built",c.PLAYBACK_ANALYTICS_NOT_AVAILABLE="PlaybackAnlytics not yet built",
|
|
8
|
-
c.Playback={BITRATE:"BITRATE",PLAY_HEAD_TIME:"PLAY_HEAD_TIME",RESOLUTION:"RESOLUTION",BUFFER_LENGTH:"BUFFER_LENGTH",PLAYER_STATE:"PLAYER_STATE",RENDERED_FRAMERATE:"RENDERED_FRAMERATE",SEEK_STARTED:"SEEK_STARTED",
|
|
9
|
-
SEEK_ENDED:"SEEK_ENDED",CDN_IP:"CDN_IP"},c.Network={SIGNAL_STRENGTH:"SIGNAL_STRENGTH",LINK_ENCRYPTION:"LINK_ENCRYPTION",CONNECTION_TYPE:"CONNECTION_TYPE"},c.ErrorSeverity={FATAL:1,WARNING:0},c.NO_SESSION_KEY=-2,
|
|
10
|
-
c.AdPosition={PREROLL:"Pre-roll",MIDROLL:"Mid-roll",POSTROLL:"Post-roll"},c.AdPlayer={CONTENT:"CONTENT",SEPARATE:"SEPARATE"},c.DeviceType={DESKTOP:"DESKTOP",CONSOLE:"Console",SETTOP:"Settop",MOBILE:"Mobile",
|
|
11
|
-
TABLET:"Tablet",SMARTTV:"SmartTV"},c.AdType={CLIENT_SIDE:"Client Side",SERVER_SIDE:"Server Side"},c.AdSlates={BLACKOUT_SLATE:"Blackout slate",TECHNICAL_DIFFICULTIES_SLATE:"Technical Difficulties slate",
|
|
12
|
-
COMMERCIAL_SLATE:"Commercial Break slate",OTHER_SLATE:"Other slate",VPAID:"VPAID",REGULAR:"Regular Ad"},c.AdServingType={INLINE:"Inline",WRAPPER:"Wrapper"},c.DeviceCategory={ANDROID_DEVICE:"AND",APPLE_DEVICE:"APL",
|
|
13
|
-
CHROMECAST:"CHR",DESKTOP_APP:"DSKAPP",DEVICE_SIMULATOR:"SIMULATOR",LG_TV:"LGTV",NINTENDO:"NINTENDO",PLAYSTATION:"PS",ROKU:"RK",SAMSUNG_TV:"SAMSUNGTV",SMART_TV:"TV",SET_TOP_BOX:"STB",TIVO:"TIVO",WEB:"WEB",
|
|
14
|
-
WINDOWS_DEVICE:"WIN",XBOX:"XB",KAIOS_DEVICE:"KAIOS"},c.LogLevel={DEBUG:0,INFO:1,WARNING:2,ERROR:3,NONE:4},c.PlayerState={STOPPED:"STOPPED",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED",UNKNOWN:"UNKNOWN",
|
|
15
|
-
NOT_MONITORED:"NOT_MONITORED"},c.Events={USER_WAIT_STARTED:"Conviva.UserWaitStarted",USER_WAIT_ENDED:"Conviva.UserWaitEnded",BUMPER_VIDEO_STARTED:"Conviva.BumperVideoStarted",BUMPER_VIDEO_ENDED:"Conviva.BumperVideoEnded",
|
|
16
|
-
AD_REQUESTED:"Conviva.AdRequested",AD_RESPONSE:"Conviva.AdResponse",AD_SLOT_STARTED:"Conviva.SlotStarted",AD_ATTEMPTED:"Conviva.AdAttempted",AD_SLOT_ENDED:"Conviva.SlotEnded",AD_IMPRESSION_START:"Conviva.AdImpression",
|
|
17
|
-
AD_START:"Conviva.AdStart",AD_FIRST_QUARTILE:"Conviva.AdFirstQuartile",AD_MID_QUARTILE:"Conviva.AdMidQuartile",AD_THIRD_QUARTILE:"Conviva.AdThirdQuartile",AD_COMPLETE:"Conviva.AdComplete",AD_END:"Conviva.AdEnd",
|
|
18
|
-
AD_IMPRESSION_END:"Conviva.AdImpressionEnd",AD_SKIPPED:"Conviva.AdSkipped",AD_ERROR:"Conviva.AdError",AD_PROGRESS:"Conviva.AdProgress",AD_CLOSE:"Conviva.AdClose",CONTENT_PAUSED:"Conviva.PauseContent",CONTENT_RESUMED:"Conviva.ResumeContent",
|
|
19
|
-
POD_START:"Conviva.PodStart",POD_END:"Conviva.PodEnd"},c.ErrorType={ERROR_UNKNOWN:"ERROR_UNKNOWN",ERROR_IO:"ERROR_IO",ERROR_TIMEOUT:"ERROR_TIMEOUT",ERROR_NULL_ASSET:"ERROR_NULL_ASSET",ERROR_MISSING_PARAMETER:"ERROR_MISSING_PARAMETER",
|
|
20
|
-
ERROR_NO_AD_AVAILABLE:"ERROR_NO_AD_AVAILABLE",ERROR_PARSE:"ERROR_PARSE",ERROR_INVALID_VALUE:"ERROR_INVALID_VALUE",ERROR_INVALID_SLOT:"ERROR_INVALID_SLOT",ERROR_3P_COMPONENT:"ERROR_3P_COMPONENT",ERROR_UNSUPPORTED_3P_FEATURE:"ERROR_UNSUPPORTED_3P_FEATURE",
|
|
21
|
-
ERROR_DEVICE_LIMIT:"ERROR_DEVICE_LIMIT",ERROR_UNMATCHED_SLOT_SIZE:"ERROR_UNMATCHED_SLOT_SIZE"},c.StreamType={UNKNOWN:"UNKNOWN",LIVE:"LIVE",VOD:"VOD"},c.CallbackFunctions={CONSOLE_LOG:"consoleLog",MAKE_REQUEST:"makeRequest",
|
|
22
|
-
SAVE_DATA:"saveData",LOAD_DATA:"loadData",GET_EPOCH_TIME_IN_MS:"getEpochTimeInMs",CREATE_TIMER:"createTimer"},c.DeviceMetadata={BRAND:"DeviceBrand",MANUFACTURER:"DeviceManufacturer",MODEL:"DeviceModel",
|
|
23
|
-
TYPE:"DeviceType",VERSION:"DeviceVersion",OS_NAME:"OperatingSystemName",OS_VERSION:"OperatingSystemVersion",CATEGORY:"DeviceCategory"},c.AD_PRELOAD_FEATURE="adPreloading",c.AD_TAG_URL="adTagUrl",c.IMASDK_CONTENT_PLAYER="imaMainContentPlayer",
|
|
24
|
-
c.CONVIVA_AD_MODULE="convivaAdModule",c.CONVIVA_MODULE="convivaModule",c.MEDIA_ELEMENT="mediaElement";var d=a.Client=function(b,c){function h(a,b){if(!(a instanceof e))throw new Error("clientSettings parameter should be an instance of ClientSettings.");
|
|
25
|
-
if(!(b instanceof g))throw new Error("systemFactory parameter should be an instance of SystemFactory.");(a.gatewayUrl==e._httpsProtocol+e.defaultProductionGatewayDNS||a.gatewayUrl==e._httpProtocol+e.defaultProductionGatewayDNS)&&(this.defaultGatewayURLError=!0),
|
|
26
|
-
this._settings=a.clone(),this._systemFactory=b,this._systemFactory.configure("SDK",this._settings),this._exceptionCatcher=this._systemFactory.buildExceptionCatcher(),this._exceptionCatcher.runProtected("Client.init",function(){
|
|
27
|
-
j._id=N.uinteger32(),j._logger=j._systemFactory.buildLogger(),j._logger.setModuleName("Client"),j.defaultGatewayURLError&&j._logger.info("Gateway URL should not be set to https://cws.conviva.com or http://cws.conviva.com, therefore this call is ignored"),
|
|
28
|
-
j._logger.info("init(): url="+j._settings.gatewayUrl+" customerKey="+j._settings.customerKey),j._config=j._systemFactory.buildConfig(),j._config.load(),j._sessionFactory=j._systemFactory.buildSessionFactory(j,j._settings,j._config),
|
|
29
|
-
j._logger.info("init(): done.")},function(a){throw new Error("Client constructor failed: "+a.message)})}var j=this;this.defaultGatewayURLError=!1,this.version=d.version,this._logger=null,this._sessionFactory=null,
|
|
30
|
-
this._systemFactory=null,this._globalSessionKey=-1,this._settings=null,this._systemSettings=null,this._exceptionCatcher=null,this._config=null,this._id=-1,this._released=!1,this._uniqueIdentifiers={},this._uniqueIdentifierCallback=function(a){
|
|
31
|
-
j._logger.info(" Client:: uniqueIdentifierCallback(): "+a)},this._userPrefForData={},h.apply(this,arguments),this.release=function(){this._released||this._exceptionCatcher.runProtected("Client.release",function(){
|
|
32
|
-
j._logger.info("release()"),j._sessionFactory.cleanup(),j._sessionFactory=null,j._globalSessionKey=-1,j._logger=null,j._id=-1,j._exceptionCatcher=null,j._settings=null,j._systemSettings=null,j._systemFactory=null,
|
|
33
|
-
j._released=!0})},this.createSession=function(a,b){var c=d.NO_SESSION_KEY;return this._released?c:null==a||a instanceof f?(this._exceptionCatcher.runProtected("Client.createSession",function(){c=j._sessionFactory.makeVideoSession(a,C.SESSION_TYPE.VIDEO,b);
|
|
34
|
-
}),c):(j._logger.error("createSession(): expecting an instance of ContentMetadata for contentMetadata parameter"),c)},this.createAdSession=function(a,b,c){var e=d.NO_SESSION_KEY;return this._released?e:null==b||b instanceof f?(this._exceptionCatcher.runProtected("Client.createAdSession",function(){
|
|
35
|
-
if(null==b&&(b=new f),K.isInteger(a)&&a!=d.NO_SESSION_KEY){var g=j._sessionFactory.getVideoSession(a);(null==b.applicationName||null==b.viewerId)&&null!=g&&null!=g._cwsSession&&null!=g._cwsSession._contentMetadata&&(null==b.viewerId&&null!=g._cwsSession._contentMetadata.viewerId&&(b.viewerId=g._cwsSession._contentMetadata.viewerId),
|
|
36
|
-
null==b.applicationName&&null!=g._cwsSession._contentMetadata.applicationName&&(b.applicationName=g._cwsSession._contentMetadata.applicationName)),b.custom["c3.csid"]=K.ToString(g._id)}e=j._sessionFactory.makeVideoSession(b,C.SESSION_TYPE.AD,c);
|
|
37
|
-
}),e):(j._logger.error("createAdSession(): expecting an instance of ContentMetadata for adMetadata parameter"),e)},this.reportError=function(b,c,d){return this._released?void 0:K.isValidString(c)?d!==a.Client.ErrorSeverity.FATAL&&d!==a.Client.ErrorSeverity.WARNING?void this._logger.error("reportError(): invalid error severity: "+d):void this._exceptionCatcher.runProtected("Client.reportError",function(){
|
|
38
|
-
var a=j._sessionFactory.getVideoSession(b);null!=a&&a.reportError(c,d)}):void this._logger.error("reportError(): invalid error message string: "+c)},this.updateContentMetadata=function(a,b){return this._released?void 0:b instanceof f?void this._exceptionCatcher.runProtected("Client.updateContentMetadata",function(){
|
|
39
|
-
var c=j._sessionFactory.getVideoSession(a);if(null!=c){var d=b.clone();c.updateContentMetadata(d)}}):void j._logger.error("updateContentMetadata(): expecting an instance of ContentMetadata for contentMetadata parameter");
|
|
40
|
-
},this.detachPlayer=function(a){this._released||this._exceptionCatcher.runProtected("Client.detachPlayer",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.detachPlayer()})},this.offFocus=function(a){
|
|
41
|
-
this._released||this._exceptionCatcher.runProtected("Client.offFocus",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.offFocus()})},this.attachPlayer=function(a,b){return this._released?void 0:b instanceof i?void this._exceptionCatcher.runProtected("Client.attachPlayer",function(){
|
|
42
|
-
var c=j._sessionFactory.getVideoSession(a);null!=c&&c.attachPlayer(b)}):void j._logger.error("attachPlayer(): expecting an instance of PlayerStateManager for playerStateManager parameter")},this.onFocus=function(a){
|
|
43
|
-
this._released||this._exceptionCatcher.runProtected("Client.onFocus",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.onFocus()})},this.contentPreload=function(a){this._released||this._exceptionCatcher.runProtected("Client.contentPreload",function(){
|
|
44
|
-
var b=j._sessionFactory.getVideoSession(a);null!=b&&b.contentPreload()})},this.contentStart=function(a){this._released||this._exceptionCatcher.runProtected("Client.contentStart",function(){var b=j._sessionFactory.getVideoSession(a);
|
|
45
|
-
null!=b&&b.contentStart()})},this.sendCustomEvent=function(a,b,c){if(!this._released){if(!K.isValidString(b))return void j._logger.error("sendCustomEvent(): eventName parameter must be a valid string.");
|
|
46
|
-
K.dictCount(c)<=0&&j._logger.warning("eventAttributes(): should have proper data."),this._exceptionCatcher.runProtected("Client.sendCustomEvent",function(){if(a==d.NO_SESSION_KEY){if(j._globalSessionKey<0){
|
|
47
|
-
var e=new f;j._globalSessionKey=j._sessionFactory.makeGlobalSession(e,null)}a=j._globalSessionKey}var g=K.sanitizeStringToStringObject(c),h=j._sessionFactory.getSession(a);null!=h&&h.sendCustomEvent(b,g);
|
|
48
|
-
})}},this.adStart=function(a,b,c,e){if(!this._released){if(b!==d.AdStream.CONTENT&&b!==d.AdStream.SEPARATE)return void this._logger.error("adStart(): ignored, invalid value for adStream parameter: "+b);
|
|
49
|
-
if(c!==d.AdPlayer.CONTENT&&c!==d.AdPlayer.SEPARATE)return void this._logger.error("adStart(): ignored, invalid value for adPlayer parameter: "+c);e!==d.AdPosition.PREROLL&&e!==d.AdPosition.MIDROLL&&e!==d.AdPosition.POSTROLL&&this._logger.info("adStart(): ignored, invalid value for adPosition parameter: "+e),
|
|
50
|
-
this._exceptionCatcher.runProtected("Client.adStart",function(){var d=j._sessionFactory.getVideoSession(a);null!=d&&d.adStart(b,c,e)})}},this.adEnd=function(a){this._released||this._exceptionCatcher.runProtected("Client.adEnd",function(){
|
|
51
|
-
var b=j._sessionFactory.getVideoSession(a);null!=b&&b.adEnd()})},this.cleanupSession=function(a){return this._released?void 0:a===d.NO_SESSION_KEY?void this._logger.warning("cleanupSession(): ignored, can't cleanup Client.NO_SESSION_KEY"):void this._exceptionCatcher.runProtected("Client.cleanupSession",function(){
|
|
52
|
-
var b=j._sessionFactory.getVideoSession(a);null!=b&&j._sessionFactory.cleanupSession(a)})},this.getAttachedPlayer=function(a){var b=null;return this._released?b:a===d.NO_SESSION_KEY?(this._logger.warning("getAttachedPlayer(): ignored for Client.NO_SESSION_KEY"),
|
|
53
|
-
b):(this._exceptionCatcher.runProtected("Client.getAttachedPlayer",function(){var c=j._sessionFactory.getVideoSession(a);null!=c&&(b=c.getPlayerStateManager())}),b)},this.isPlayerAttached=function(a){return this._released?!1:null!==this.getAttachedPlayer(a)?!0:!1;
|
|
54
|
-
},this.getPlayerStateManager=function(){if(this._released)throw new Error("This instance of Conviva.Client has been released.");return new i(this._systemFactory)},this.releasePlayerStateManager=function(a){
|
|
55
|
-
if(this._released)throw new Error("This instance of Conviva.Client has been released.");this._exceptionCatcher.runProtected("Client.releasePlayerStateManager",function(){a instanceof i&&a.release()})},
|
|
56
|
-
this.getSettings=function(){return this._settings},this.getId=function(){return this._id},this.getSessionId=function(a){if(!this._released){var b=null;return this._exceptionCatcher.runProtected("Client.getSessionId",function(){
|
|
57
|
-
var c=j._sessionFactory.getVideoSession(a);b=c.getSessionId()}),b}},this.getClientId=function(a){if(!this._released){var b=null;return this._exceptionCatcher.runProtected("Client.getClientId",function(){
|
|
58
|
-
var c=j._sessionFactory.getVideoSession(a);b=c.getClientId()}),b}},this.updateCustomMetric=function(a,b,c){this._released||this._exceptionCatcher.runProtected("Client.updateCustomMetric",function(){var d=j._sessionFactory.getVideoSession(a);
|
|
59
|
-
d.updateCustomMetric(b,c)})},this.setUniqueIdentifier=function(a,b){if(this._released)throw new Error("This instance of Conviva.Client has been released.");if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");
|
|
60
|
-
for(var c in a)this._uniqueIdentifiers[c]=a[c];b&&(this._uniqueIdentifierCallback=b)},this.setUserPreferenceForDataCollection=function(a,b){if(this._released)throw new Error("This instance of Conviva.Client has been released.");
|
|
61
|
-
if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");for(var c in a)"false"==a[c]?b?this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION:this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT:this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_USER_NO_RESTRICTION;
|
|
62
|
-
},this.setUserPreferenceForDataDeletion=function(a){if(this._released)throw new Error("This instance of Conviva.Client has been released.");if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");
|
|
63
|
-
for(var b in a)"true"==a[b]?this._userPrefForData[b]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE:this._userPrefForData[b]=G.ConvivaIdErrorCodes.CONVIVAID_USER_NO_RESTRICTION}};d.version="2.151.0.37032",
|
|
64
|
-
d.NO_SESSION_KEY=c.NO_SESSION_KEY,d.AdPosition={PREROLL:c.AdPosition.PREROLL,MIDROLL:c.AdPosition.MIDROLL,POSTROLL:c.AdPosition.POSTROLL},d.AdStream={CONTENT:"CONTENT",SEPARATE:"SEPARATE"},d.AdPlayer={
|
|
65
|
-
CONTENT:c.AdPlayer.CONTENT,SEPARATE:c.AdPlayer.SEPARATE},d.ErrorSeverity={FATAL:c.ErrorSeverity.FATAL,WARNING:c.ErrorSeverity.WARNING},d.DeviceType={DESKTOP:c.DeviceType.DESKTOP,CONSOLE:c.DeviceType.CONSOLE,
|
|
66
|
-
SETTOP:c.DeviceType.SETTOP,MOBILE:c.DeviceType.MOBILE,TABLET:c.DeviceType.TABLET,SMARTTV:c.DeviceType.SMARTTV},d.AdTechnology={CLIENT_SIDE:"Client Side",SERVER_SIDE:"Server Side"},d.AdType={BLACKOUT_SLATE:"Blackout slate",
|
|
67
|
-
TECHNICAL_DIFFICULTIES_SLATE:"Technical Difficulties slate",COMMERCIAL_SLATE:"Commercial Break slate",OTHER_SLATE:"Other slate",VPAID:"VPAID",REGULAR:"Regular Ad"},d.AdServingType={INLINE:"Inline",WRAPPER:"Wrapper"
|
|
68
|
-
},d.DeviceCategory={ANDROID_DEVICE:c.DeviceCategory.ANDROID_DEVICE,APPLE_DEVICE:c.DeviceCategory.APPLE_DEVICE,CHROMECAST:c.DeviceCategory.CHROMECAST,DESKTOP_APP:c.DeviceCategory.DESKTOP_APP,DEVICE_SIMULATOR:c.DeviceCategory.DEVICE_SIMULATOR,
|
|
69
|
-
LG_TV:c.DeviceCategory.LG_TV,NINTENDO:c.DeviceCategory.NINTENDO,PLAYSTATION:c.DeviceCategory.PLAYSTATION,ROKU:c.DeviceCategory.ROKU,SAMSUNG_TV:c.DeviceCategory.SAMSUNG_TV,SMART_TV:c.DeviceCategory.SMART_TV,
|
|
70
|
-
SET_TOP_BOX:c.DeviceCategory.SET_TOP_BOX,TIVO:c.DeviceCategory.TIVO,WEB:c.DeviceCategory.WEB,WINDOWS_DEVICE:c.DeviceCategory.WINDOWS_DEVICE,XBOX:c.DeviceCategory.XBOX,KAIOS_DEVICE:c.DeviceCategory.KAIOS_DEVICE
|
|
71
|
-
};var e=a.ClientSettings=function(a){function b(a){if(!K.isValidString(a))throw new Error("customerKey must be valid");this.customerKey=a}function c(a){if(K.isValidString(a)){var b=a.split("://");if("cws.conviva.com"!=b[1]&&("https"==b[0]||"http"==b[0]))return a;
|
|
72
|
-
}return"https://"+d.customerKey+"."+e.defaultProductionGatewayDNS}var d=this;this._customerKey=null,K.defGet(this,"customerKey",function(){return this._customerKey}),K.defSet(this,"customerKey",function(a){
|
|
73
|
-
K.isValidString(a)&&(this._customerKey=a)}),this._heartbeatInterval=e.defaultProductionHeartbeatInterval,K.defGet(this,"heartbeatInterval",function(){return this._heartbeatInterval}),K.defSet(this,"heartbeatInterval",function(a){
|
|
74
|
-
if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._heartbeatInterval=b)}}),this._gatewayUrl=null,K.defGet(this,"gatewayUrl",function(){return this._gatewayUrl}),K.defSet(this,"gatewayUrl",function(a){
|
|
75
|
-
if(K.isValidString(a)){var b=a.split("://"),c="https"==b[0]||"http"==b[0]?!0:!1;if(c){var d=".com",e=-1!==a.indexOf(d,a.length-d.length);e&&(this._gatewayUrl=a)}}}),b.apply(this,arguments),this.equals=function(a){
|
|
76
|
-
return this.customerKey===a.customerKey&&this.gatewayUrl===a.gatewayUrl&&this.heartbeatInterval===a.heartbeatInterval},this.clone=function(){var a=new e(this.customerKey);return a.gatewayUrl=c(this.gatewayUrl),
|
|
77
|
-
a.heartbeatInterval=this.heartbeatInterval,a}};e.defaultDevelopmentGatewayUrl="https://conviva.testonly.conviva.com",e.defaultProductionGatewayUrl="https://cws.conviva.com",e.defaultProductionGatewayDNS="cws.conviva.com",
|
|
78
|
-
e.defaultDevelopmentGatewayDNS="conviva.testonly.conviva.com",e._httpsProtocol="https://",e._httpProtocol="http://",e.defaultDevelopmentHeartbeatInterval=5,e.defaultProductionHeartbeatInterval=20;var f=a.ContentMetadata=function(){
|
|
79
|
-
function a(){return this._assetName}function b(a){"string"==typeof a&&(this._assetName=a)}function c(){return this._custom}function d(a){"object"==typeof a&&(this._custom=K.sanitizeStringToStringObject(a));
|
|
80
|
-
}function e(){return this._defaultResource}function g(a){"string"==typeof a&&(this._defaultResource=a)}function h(){return this._viewerId}function i(a){"string"==typeof a&&(this._viewerId=a)}function j(){
|
|
81
|
-
return this._applicationName}function k(a){"string"==typeof a&&(this._applicationName=a)}function l(){return this._streamUrl}function m(a){"string"==typeof a&&(this._streamUrl=a)}function n(){return this._streamType;
|
|
82
|
-
}function o(a){(a===f.StreamType.UNKNOWN||a===f.StreamType.VOD||a===f.StreamType.LIVE)&&(this._streamType=a)}function p(){return this._duration}function q(a){this._duration=O.sanitizeSpecialIntegerValue(a);
|
|
83
|
-
}function r(){return this._encodedFrameRate}function s(a){this._encodedFrameRate=O.sanitizeSpecialIntegerValue(a)}function t(){}this._assetName=null,K.defGet(this,"assetName",a),K.defSet(this,"assetName",b),
|
|
84
|
-
this._custom={},K.defGet(this,"custom",c),K.defSet(this,"custom",d),this._defaultResource=null,K.defGet(this,"defaultResource",e),K.defSet(this,"defaultResource",g),this._viewerId=null,K.defGet(this,"viewerId",h),
|
|
85
|
-
K.defSet(this,"viewerId",i),this._applicationName=null,K.defGet(this,"applicationName",j),K.defSet(this,"applicationName",k),this._streamUrl=null,K.defGet(this,"streamUrl",l),K.defSet(this,"streamUrl",m),
|
|
86
|
-
this._streamType=f.StreamType.UNKNOWN,K.defGet(this,"streamType",n),K.defSet(this,"streamType",o),this._duration=-1,K.defGet(this,"duration",p),K.defSet(this,"duration",q),this._encodedFrameRate=-1,K.defGet(this,"encodedFrameRate",r),
|
|
87
|
-
K.defSet(this,"encodedFrameRate",s),t.apply(this,arguments),this.clone=function(){var a=new f;a.assetName=this.assetName,a.applicationName=this.applicationName,a.streamUrl=this.streamUrl,a.viewerId=this.viewerId,
|
|
88
|
-
a.defaultResource=this.defaultResource,a.streamType=this.streamType,a.duration=this.duration,a.encodedFrameRate=this.encodedFrameRate;for(var b in this.custom)a.custom[b]=this.custom[b];return a}};f.StreamType={
|
|
89
|
-
UNKNOWN:c.StreamType.UNKNOWN,LIVE:c.StreamType.LIVE,VOD:c.StreamType.VOD};var g=(a.ErrorType={ERROR_UNKNOWN:c.ErrorType.ERROR_UNKNOWN,ERROR_IO:c.ErrorType.ERROR_IO,ERROR_TIMEOUT:c.ErrorType.ERROR_TIMEOUT,
|
|
90
|
-
ERROR_NULL_ASSET:c.ErrorType.ERROR_NULL_ASSET,ERROR_MISSING_PARAMETER:c.ErrorType.ERROR_MISSING_PARAMETER,ERROR_NO_AD_AVAILABLE:c.ErrorType.ERROR_NO_AD_AVAILABLE,ERROR_PARSE:c.ErrorType.ERROR_PARSE,ERROR_INVALID_VALUE:c.ErrorType.ERROR_INVALID_VALUE,
|
|
91
|
-
ERROR_INVALID_SLOT:c.ErrorType.ERROR_INVALID_SLOT,ERROR_3P_COMPONENT:c.ErrorType.ERROR_3P_COMPONENT,ERROR_UNSUPPORTED_3P_FEATURE:c.ErrorType.ERROR_UNSUPPORTED_3P_FEATURE,ERROR_DEVICE_LIMIT:c.ErrorType.ERROR_DEVICE_LIMIT,
|
|
92
|
-
ERROR_UNMATCHED_SLOT_SIZE:c.ErrorType.ERROR_UNMATCHED_SLOT_SIZE},a.Events={AD_REQUESTED:c.Events.AD_REQUESTED,AD_RESPONSE:c.Events.AD_RESPONSE,AD_SLOT_STARTED:c.Events.AD_SLOT_STARTED,AD_ATTEMPTED:c.Events.AD_ATTEMPTED,
|
|
93
|
-
AD_SLOT_ENDED:c.Events.AD_SLOT_ENDED,AD_IMPRESSION_START:c.Events.AD_IMPRESSION_START,AD_START:c.Events.AD_START,AD_FIRST_QUARTILE:c.Events.AD_FIRST_QUARTILE,AD_MID_QUARTILE:c.Events.AD_MID_QUARTILE,AD_THIRD_QUARTILE:c.Events.AD_THIRD_QUARTILE,
|
|
94
|
-
AD_COMPLETE:c.Events.AD_COMPLETE,AD_END:c.Events.AD_END,AD_IMPRESSION_END:c.Events.AD_IMPRESSION_END,AD_SKIPPED:c.Events.AD_SKIPPED,AD_ERROR:c.Events.AD_ERROR,AD_PROGRESS:c.Events.AD_PROGRESS,AD_CLOSE:c.Events.AD_CLOSE,
|
|
95
|
-
CONTENT_PAUSED:c.Events.CONTENT_PAUSED,CONTENT_RESUMED:c.Events.CONTENT_RESUMED,POD_START:c.Events.POD_START,POD_END:c.Events.POD_END},a.SystemFactory=function(a,b){function c(a,b){if(!(a instanceof n))throw new Error("systemInterface parameter should be an instance of SystemInterface.");
|
|
96
|
-
this._systemInterface=a,this._timeInterface=this._systemInterface._timeInterface,this._timerInterface=this._systemInterface._timerInterface,this._httpInterface=this._systemInterface._httpInterface,this._storageInterface=this._systemInterface._storageInterface,
|
|
97
|
-
this._metadataInterface=this._systemInterface._metadataInterface,this._loggingInterface=this._systemInterface._loggingInterface,b instanceof h?this._settings=b.clone():this._settings=new h}var d=this;c.apply(this,arguments),
|
|
98
|
-
this.configure=function(a,b){this._packageName=a,this._clientSettings=b},this.release=function(){this._systemInterface.release(),this._systemInterface=null,this._packageName=null,this._settings=null,this._logBuffer=null;
|
|
99
|
-
};var e={build:function(){return new R(d._loggingInterface,d._timeInterface,d.getSettings(),d._logBuffer,d._packageName)}};this.buildLogger=function(){return e.build()},this.buildSessionFactory=function(a,b,c){
|
|
100
|
-
return new E(a,b,c,this)},this.buildPing=function(){return new M(this.buildLogger(),this.buildHttpClient(),this._clientSettings)},this.buildCallbackWithTimeout=function(){return new F(this.buildTimer());
|
|
101
|
-
},this.buildCallbackWithTimeoutNoPing=function(){var a=null,b=new I(this.buildLogger(),a,this.getSettings()),c=new V(this.buildLogger(),this._timerInterface,b);return new F(c)},this.buildHttpClient=function(){
|
|
102
|
-
return new Q(this.buildLogger(),this._httpInterface,this.buildCallbackWithTimeoutNoPing(),this.getSettings())},this.buildExceptionCatcher=function(){return new I(this.buildLogger(),this.buildPing(),this.getSettings());
|
|
103
|
-
},this.buildTime=function(){return new U(this._timeInterface,this.buildLogger())},this.buildTimer=function(){return new V(this.buildLogger(),this._timerInterface,this.buildExceptionCatcher())},this.buildStorage=function(){
|
|
104
|
-
return new S(this.buildLogger(),this._storageInterface,this.buildCallbackWithTimeout(),this.getSettings())},this.buildConfig=function(){return new G(this.buildLogger(),this.buildStorage(),this.buildJsonInterface());
|
|
105
|
-
},this.buildSystemMetadata=function(){return new T(this.buildLogger(),this._metadataInterface,this.buildExceptionCatcher())},this.buildCwsProtocol=function(){return new z},this.buildGatewayControl=function(a){
|
|
106
|
-
return new J(a,this.buildLogger(),this.buildHttpClient(),this.buildJsonInterface())},this.buildCwsSession=function(a,b,c,d){var e=this.buildGatewayControl(b);return new C(this.buildEventQueue(),a,b,this.buildLogger(),this.buildExceptionCatcher(),this.buildTimer(),e,this.buildCwsProtocol(),this.buildTime(),this.getLogBuffer(),c,d);
|
|
107
|
-
},this.buildSession=function(a,b,c,d,e,f){var g=this.buildExceptionCatcher(),h=this.buildLogger(),i=b.clone(),j=this.buildCwsSession(a,i,c,f);return new D(d,e,c,this.buildSystemMetadata(),j,g,h)},this.buildEventQueue=function(){
|
|
108
|
-
return new H},this.buildJsonInterface=function(){return new A},this.getLogBuffer=function(){return this._logBuffer},this.getSettings=function(){return this._settings},this._logBuffer=new L}),h=a.SystemSettings=function(){
|
|
109
|
-
function a(){}this._logLevel=h.defaultProductionLogLevel,K.defGet(this,"logLevel",function(){return this._logLevel}),K.defSet(this,"logLevel",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);
|
|
110
|
-
b===a&&b>=h.LogLevel.DEBUG&&b<=h.LogLevel.ERROR&&(this._logLevel=b)}}),this._allowUncaughtExceptions=h.defaultProductionAllowUncaughtExceptions,K.defGet(this,"allowUncaughtExceptions",function(){return this._allowUncaughtExceptions;
|
|
111
|
-
}),K.defSet(this,"allowUncaughtExceptions",function(a){K.isBoolean(a)&&(this._allowUncaughtExceptions=a)}),this._storageTimeout=h.defaultStorageTimeout,K.defGet(this,"storageTimeout",function(){return this._storageTimeout;
|
|
112
|
-
}),K.defSet(this,"storageTimeout",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._storageTimeout=b)}}),this._httpTimeout=h.defaultHttpTimeout,K.defGet(this,"httpTimeout",function(){
|
|
113
|
-
return this._httpTimeout}),K.defSet(this,"httpTimeout",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._httpTimeout=b)}}),a.apply(this,arguments),this.equals=function(a){
|
|
114
|
-
return this.logLevel===a.logLevel&&this.allowUncaughtExceptions===a.allowUncaughtExceptions&&this.storageTimeout===a.storageTimeout&&this.httpTimeout===a.httpTimeout},this.clone=function(){var a=new h;return a.logLevel=this.logLevel,
|
|
115
|
-
a.allowUncaughtExceptions=this.allowUncaughtExceptions,a.storageTimeout=this.storageTimeout,a.httpTimeout=this.httpTimeout,a}};h.LogLevel={DEBUG:c.LogLevel.DEBUG,INFO:c.LogLevel.INFO,WARNING:c.LogLevel.WARNING,
|
|
116
|
-
ERROR:c.LogLevel.ERROR,NONE:c.LogLevel.NONE},h.defaultDevelopmentLogLevel=h.LogLevel.DEBUG,h.defaultProductionLogLevel=h.LogLevel.NONE,h.defaultDevelopmentAllowUncaughtExceptions=!0,h.defaultProductionAllowUncaughtExceptions=!1,
|
|
117
|
-
h.defaultStorageTimeout=10,h.defaultHttpTimeout=10;var i=a.PlayerStateManager=function(c){function d(a){e._systemFactory=a,e._logger=e._systemFactory.buildLogger(),e._logger.setModuleName("PlayerStateManager"),
|
|
118
|
-
e._exceptionCatcher=e._systemFactory.buildExceptionCatcher()}var e=this;e._monitorNotifier=null,e._bitrateKbps=-2,e._playerState=i.PlayerState.UNKNOWN,e._currentMetadata={},e._renderedFrameRate=-2,e._encodedFrameRate=-2,
|
|
119
|
-
e._duration=-2,e._playerVersion=null,e._playerType=null,e._streamUrl=null,e._moduleName=null,e._moduleVersion=null,e._width=-1,e._height=-1,e._connectionType=null,e._linkEncryption=null,e._lastError=null,
|
|
120
|
-
e._pendingErrors=[],e._released=!1,this.release=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.release",function(){null!=e._monitorNotifier&&e._monitorNotifier.onRelease(),
|
|
121
|
-
e.removeMonitoringNotifier(),e._systemFactory=null,e._logger=null,e._exceptionCatcher=null,e._released=!0})},this.setPlayheadTime=function(a){},this.setBufferLength=function(a){},this.setRenderedFrameRate=function(a){},
|
|
122
|
-
this.getEncodedFrameRate=function(){return e._encodedFrameRate},this.setEncodedFrameRate=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setEncodedFrameRate",function(){var b=O.sanitizeSpecialIntegerValue(a);
|
|
123
|
-
b>=-1&&(e._encodedFrameRate=b,null!=e._monitorNotifier&&e._monitorNotifier.onEncodedFrameRateChange(e._encodedFrameRate))})},this.getDuration=function(){return e._duration},this.setClientMeasureInterface=function(b){
|
|
124
|
-
K.validateInterface(b,new a.ClientMeasureInterface,"ClientMeasureInterface"),this._playerInterface=b},this.getPHT=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getPHT?this._playerInterface.getPHT():i.DEFAULT_PHT;
|
|
125
|
-
},this.getBufferLength=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getBufferLength?this._playerInterface.getBufferLength():i.DEFAULT_BUFFER_LENGTH},this.getSignalStrength=function(){
|
|
126
|
-
return this._playerInterface&&"function"==typeof this._playerInterface.getSignalStrength?this._playerInterface.getSignalStrength():i.DEFAULT_SIGNAL_STRENGTH},this.getRenderedFrameRate=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getRenderedFrameRate?this._playerInterface.getRenderedFrameRate():i.DEFAULT_RENDERED_FRAME_RATE;
|
|
127
|
-
},this.setDuration=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setDuration",function(){var b=O.sanitizeSpecialIntegerValue(a);b>=-1&&(e._duration=b,null!=e._monitorNotifier&&e._monitorNotifier.onContentLengthChange(e._duration));
|
|
128
|
-
})},this.getStreamUrl=function(){return e._streamUrl},this.setStreamUrl=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setStreamUrl",function(){null!=a&&(e._streamUrl=a,null!=e._monitorNotifier&&e._monitorNotifier.onStreamUrlChange(e._streamUrl));
|
|
129
|
-
})},this.getModuleName=function(){return e._moduleName},this.getModuleVersion=function(){return e._moduleVersion},this.setModuleNameAndVersion=function(a,b){e._moduleName=a,e._moduleVersion=b},this.getPlayerType=function(){
|
|
130
|
-
return e._playerType},this.setPlayerType=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerType",function(){e._playerType=a,null!=e._monitorNotifier&&e._monitorNotifier.onPlayerTypeChange(e._playerType);
|
|
131
|
-
})},this.getPlayerVersion=function(){return e._playerVersion},this.setPlayerVersion=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerVersion",function(){e._playerVersion=a,
|
|
132
|
-
null!=e._monitorNotifier&&e._monitorNotifier.onPlayerVersionChange(e._playerVersion)})},this.setMonitoringNotifier=function(a,b){return e._released?void 0:null!=e._monitorNotifier?!1:(e._monitorNotifier=a,
|
|
133
|
-
e._logger.setSessionId(b),!0)},this.removeMonitoringNotifier=function(){e._released||(e._monitorNotifier=null,e._logger.setSessionId(null))},this.pushCurrentState=function(){e.setPlayerState(e.getPlayerState()),
|
|
134
|
-
e.setBitrateKbps(e.getBitrateKbps()),e.setDuration(e.getDuration()),e.setEncodedFrameRate(e.getEncodedFrameRate()),e.setStreamUrl(e.getStreamUrl()),e.setPlayerType(e.getPlayerType()),e.setPlayerVersion(e.getPlayerVersion());
|
|
135
|
-
for(var a=0;a<e._pendingErrors.length;a++){var b=e._pendingErrors[a];e.setError(b)}e._pendingErrors=[]},this.getPlayerState=function(){return e._playerState},this.setPlayerState=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerState",function(){
|
|
136
|
-
i.isValidPlayerState(a)?(e._playerState=a,null!=e._monitorNotifier&&e._monitorNotifier.onPlayerStateChange(e._playerState)):e._logger.error("PlayerStateManager.SetPlayerState(): invalid state: "+a)})},
|
|
137
|
-
this.getBitrateKbps=function(){return e._bitrateKbps},this.setBitrateKbps=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setBitrateKbps",function(){var b=O.sanitizeSpecialIntegerValue(a);
|
|
138
|
-
b>=-1&&(e._bitrateKbps=b,null!=e._monitorNotifier&&e._monitorNotifier.onBitrateChange(e._bitrateKbps))})},this.setPlayerSeekStart=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerSeekStart()",function(){
|
|
139
|
-
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.SEEK_START,a)})},this.setPlayerSeekEnd=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerSeekEnd()",function(){
|
|
140
|
-
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.SEEK_END,-1)})},this.setUserSeekButtonUp=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setUserSeekButtonUp()",function(){
|
|
141
|
-
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.BUTTON_UP,-1)})},this.setUserSeekButtonDown=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setUserSeekButtonDown()",function(){
|
|
142
|
-
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.BUTTON_DOWN,-1)})},this.setVideoResolutionWidth=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setVideoResolutionWidth()",function(){
|
|
143
|
-
var b=O.sanitizeSpecialIntegerValue(a);b>0&&(e._width=b),null!=e._monitorNotifier&&e._monitorNotifier.onStreamResolutionWidthChange(e._width)})},this.setVideoResolutionHeight=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setVideoResolutionHeight()",function(){
|
|
144
|
-
var b=O.sanitizeSpecialIntegerValue(a);b>0&&(e._height=b),null!=e._monitorNotifier&&e._monitorNotifier.onStreamResolutionHeightChange(e._height)})},this.setConnectionType=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setConnectionType()",function(){
|
|
145
|
-
e._connectionType=a,null!=e._monitorNotifier&&e._monitorNotifier.onConnectionTypeChange(e._connectionType)})},this.setLinkEncryption=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setLinkEncryption()",function(){
|
|
146
|
-
e._linkEncryption=a,null!=e._monitorNotifier&&e._monitorNotifier.onLinkEncryptionChange(e._linkEncryption)})},this.setSignalStrength=function(a){},this.setError=function(a){if(e._lastError=a,null!=e._monitorNotifier){
|
|
147
|
-
var b=a.errorCode,c=a.severity;e._monitorNotifier.onError(b,c)}else e._pendingErrors.push(a)},this.sendError=function(a,c){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.sendError",function(){
|
|
148
|
-
var d=new b.StreamerError(a,c);e.setError(d)})},this.reset=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.reset",function(){e._bitrateKbps=-2,e._playerState=i.PlayerState.UNKNOWN,
|
|
149
|
-
e._currentMetadata={},e._renderedFrameRate=-1,e._encodedFrameRate=-1,e._duration=-1,e._playerVersion=null,e._playerType=null,e._streamUrl=null,e._lastError=null,e._pendingErrors=[]})},this.setCDNServerIP=function(a){
|
|
150
|
-
e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setCDNServerIP",function(){null!=e._monitorNotifier&&e._monitorNotifier.onCDNServerIPChange(a)})},this.getError=function(){return e._lastError;
|
|
151
|
-
},d.apply(e,arguments)};i.PlayerState={STOPPED:c.PlayerState.STOPPED,PLAYING:c.PlayerState.PLAYING,BUFFERING:c.PlayerState.BUFFERING,PAUSED:c.PlayerState.PAUSED,UNKNOWN:c.PlayerState.UNKNOWN,NOT_MONITORED:c.PlayerState.NOT_MONITORED
|
|
152
|
-
},i.isValidPlayerState=function(a){return a===i.PlayerState.STOPPED||a===i.PlayerState.PLAYING||a===i.PlayerState.BUFFERING||a===i.PlayerState.PAUSED||a===i.PlayerState.UNKNOWN||a===i.PlayerState.NOT_MONITORED?!0:!1;
|
|
153
|
-
},i.SEEK_ACTIONS_TYPE={SEEK_START:"pss",SEEK_END:"pse",BUTTON_UP:"bu",BUTTON_DOWN:"bd"},i.DEFAULT_SIGNAL_STRENGTH=1e3,i.DEFAULT_RENDERED_FRAME_RATE=-1,i.DEFAULT_BUFFER_LENGTH=-1,i.DEFAULT_PHT=-1;var j=(a.ClientMeasureInterface=function(){
|
|
154
|
-
this.getPHT=function(){},this.getBufferLength=function(){},this.getSignalStrength=function(){},this.getRenderedFrameRate=function(){}},a.HttpInterface=function(){this.makeRequest=function(a,b,c,d,e,f){},
|
|
155
|
-
this.release=function(){}}),k=a.LoggingInterface=function(){this.consoleLog=function(a,b){},this.release=function(){}},l=a.MetadataInterface=function(){this.getBrowserName=function(){},this.getBrowserVersion=function(){},
|
|
156
|
-
this.getDeviceBrand=function(){},this.getDeviceManufacturer=function(){},this.getDeviceModel=function(){},this.getDeviceType=function(){},this.getDeviceVersion=function(){},this.getFrameworkName=function(){},
|
|
157
|
-
this.getFrameworkVersion=function(){},this.getOperatingSystemName=function(){},this.getOperatingSystemVersion=function(){},this.getDeviceCategory=function(){},this.release=function(){}},m=a.StorageInterface=function(){
|
|
158
|
-
this.saveData=function(a,b,c,d){},this.loadData=function(a,b,c){},this.release=function(){}},n=a.SystemInterface=function(a,b,c,d,e,f){function g(a,b,c,d,e,f){K.validateInterface(a,new o,"TimeInterface"),
|
|
159
|
-
K.validateInterface(b,new p,"TimerInterface"),K.validateInterface(c,new j,"HttpInterface"),K.validateInterface(d,new m,"StorageInterface"),K.validateInterface(e,new l,"MetadataInterface"),K.validateInterface(f,new k,"LoggingInterface"),
|
|
160
|
-
this._timeInterface=a,this._timerInterface=b,this._httpInterface=c,this._storageInterface=d,this._metadataInterface=e,this._loggingInterface=f}g.apply(this,arguments),this.release=function(){null!=this._timeInterface&&(this._timeInterface.release(),
|
|
161
|
-
this._timeInterface=null),null!=this._timerInterface&&(this._timerInterface.release(),this._timerInterface=null),null!=this._httpInterface&&(this._httpInterface.release(),this._httpInterface=null),null!=this._storageInterface&&(this._storageInterface.release(),
|
|
162
|
-
this._storageInterface=null),null!=this._metadataInterface&&(this._metadataInterface.release(),this._metadataInterface=null),null!=this._loggingInterface&&(this._loggingInterface.release(),this._loggingInterface=null);
|
|
163
|
-
}},o=a.TimeInterface=function(){this.getEpochTimeMs=function(){},this.release=function(){}},p=a.TimerInterface=function(){this.createTimer=function(a,b,c){},this.release=function(){}},q=b.AdAnalytics=function(){
|
|
164
|
-
function b(a,b,c){g._client=a,g._videoAnalytics=c,g._systemFactory=b,g._playerMonitor=c.getPlayerMonitor(),g._timer=b.buildTimer(),g._logger=b.buildLogger(),g._logger.setModuleName("AdAnalytics"),g._adPlayerMonitor=new r(g._client,g._timer),
|
|
165
|
-
t.call(this)}function e(a){f(a)}function f(a){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.onAdInitiated() : contentPlayer - "+c.INVALID_PLAYER_MONITOR)):(K.dictCount(a)>0&&g.setAdInfo(a),
|
|
166
|
-
void(g._adPlayerMonitor.getIsAffectingUser()||(g._adPlayerMonitor.setContentPlayerMonitor(g._playerMonitor),g._adPlayerMonitor.setAffectingUser(!0))))}var g=this;g._client=null,g._logger=null,g._systemFactory=null,
|
|
167
|
-
g._timer=null,g._playerMonitor=null,g._adPlayerMonitor=null,g._adPlayer=null,g._dropInModule=null,g._videoAnalytics=null,b.apply(this,arguments),this.setAdInfo=function(a){return K.dictCount(a)<=0?void(null!=g._logger&&g._logger.error("AdAnalytics.setAdInfo() : AD Info is not set")):(null!=g._logger&&g._logger.debug("AdAnalytics.setAdInfo()"),
|
|
168
|
-
void(null!=g._adPlayerMonitor&&g._adPlayerMonitor.setOrUpdateMetadataInfo(a)))},this.setAdPlayerInfo=function(a){return K.dictCount(a)<=0?void(null!=g._logger&&g._logger.error("AdAnalytics.setAdPlayerInfo() : Ad Player Info is not set")):(null!=g._logger&&g._logger.debug("AdAnalytics.setAdPlayerInfo()"),
|
|
169
|
-
void(null!=g._adPlayerMonitor&&g._adPlayerMonitor.setOrUpdateMetadataInfo(a)))},this.reportAdMetric=function(){return 0==arguments.length?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdMetric() : Need to report metric mandatory")):void(1==arguments.length?g.reportMetric(arguments[0]):2==arguments.length?g.reportMetric(arguments[0],arguments[1]):3==arguments.length?g.reportMetric(arguments[0],arguments[1],arguments[2]):4==arguments.length&&g.reportMetric(arguments[0],arguments[1],arguments[2],arguments[3]));
|
|
170
|
-
},this.setCallback=function(a){null!=g._adPlayerMonitor&&g._adPlayerMonitor.setCallback(a)},this.reportAdFailed=function(a,b){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdFailed() : "+c.INVALID_PLAYER_MONITOR)):(K.dictCount(b)>0&&g.setAdInfo(b),
|
|
171
|
-
g._adPlayerMonitor.getIsAffectingUser()||(g._adPlayerMonitor.setContentPlayerMonitor(g._playerMonitor),g._adPlayerMonitor.setAffectingUser(!0)),null!=g._logger&&g._logger.debug("AdAnalytics.reportAdFailed() : "+a),
|
|
172
|
-
g.reportAdError(a,d.ErrorSeverity.FATAL),void g.reportAdEnded())},this.reportAdLoaded=function(a){null!=g._logger&&g._logger.debug("AdAnalytics.reportAdLoaded()"),e(a)},this.reportAdStarted=function(a){
|
|
173
|
-
null!=g._logger&&g._logger.debug("AdAnalytics.reportAdStarted()"),e(a)},this.reportAdEnded=function(){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdEnded() : "+c.INVALID_AD_PLAYER_MONITOR)):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdEnded()"),
|
|
174
|
-
void(g._adPlayerMonitor.getIsAffectingUser()&&(g._adPlayerMonitor.setContentPlayerMonitor(null),g._adPlayerMonitor.setAffectingUser(!1))))},this.reportAdError=function(a,b){if(null==g._adPlayerMonitor)return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdError() : "+c.INVALID_PLAYER_MONITOR));
|
|
175
|
-
null!=g._logger&&g._logger.debug("AdAnalytics.reportAdError() : "+a);var d=new P(a,b);g._adPlayerMonitor.setError(d)},this.reportAdPlayerEvent=function(b,d){if(!K.isValidString(b))return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdPlayerEvent(): eventType parameter must be a valid string."));
|
|
176
|
-
if(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdPlayerEvent()"),null==g._adPlayerMonitor)return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdPlayerEvent() : "+c.INVALID_PLAYER_MONITOR));
|
|
177
|
-
switch(b){case a.Constants.Events.USER_WAIT_STARTED:case a.Constants.Events.BUMPER_VIDEO_STARTED:g._adPlayerMonitor.detachPlayer();break;case a.Constants.Events.USER_WAIT_ENDED:case a.Constants.Events.BUMPER_VIDEO_ENDED:
|
|
178
|
-
g._adPlayerMonitor.attachPlayer();break;default:g._adPlayerMonitor.setEvent(b,d)}},this.reportAdSkipped=function(){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdSkipped() : "+c.INVALID_PLAYER_MONITOR)):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdSkipped()"),
|
|
179
|
-
g.reportAdPlayerEvent(c.Events.AD_SKIPPED),void g.reportAdEnded())},this.release=function(){null!=g._logger&&g._logger.debug("AdAnalytics.release()"),null!=g._adPlayerMonitor&&(g._adPlayerMonitor.getIsAffectingUser()&&(g._adPlayerMonitor.setContentPlayerMonitor(null),
|
|
180
|
-
g._adPlayerMonitor.setAffectingUser(!1)),g._adPlayerMonitor.setCallback(null),g._adPlayerMonitor.release(),g._adPlayerMonitor=null),"undefined"!=typeof a.AdProxyMonitor&&null!=g._dropInModule&&(a.AdProxyMonitor.release(g._dropInModule),
|
|
181
|
-
g._dropInModule=null)},this.setAdListener=function(b,c){return void 0==b?void g._logger.error("AdAnalytics.setAdListener() : Need to configure the adListener instance"):("undefined"!=typeof c&&"undefined"!=typeof c.convivaModule?a.AdProxyMonitor=convivaModule.AdProxyMonitor:"undefined"!=typeof ConvivaModule&&(a.AdProxyMonitor=ConvivaModule.AdProxyMonitor),
|
|
182
|
-
"undefined"==typeof a.AdProxyMonitor?void g._logger.error("AdAnalytics.setAdListener() : Include the missing Ads SDK Module"):void(null==b&&null!=g._dropInModule?(a.AdProxyMonitor.release(g._dropInModule),
|
|
183
|
-
g._dropInModule=null):null!=b&&null!=g._dropInModule?(a.AdProxyMonitor.release(g._dropInModule),null!=g._logger&&g._logger.debug("AdAnalytics.setAdListener() : Initializing ad drop-in module"),g._dropInModule=a.AdProxyMonitor.initConvivaDropIn(b,c,this,a)):null!=b&&null==g._dropInModule&&(null!=g._logger&&g._logger.debug("AdAnalytics.setAdListener() : Initializing ad drop-in module"),
|
|
184
|
-
g._dropInModule=a.AdProxyMonitor.initConvivaDropIn(b,c,this,a))))},this.reportAdBreakStarted=function(a,b,d){return null==g._playerMonitor?void g._logger.error("AdAnalytics.reportAdBreakStarted() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdBreakStarted()"),
|
|
185
|
-
g._adType=a,g._adPlayer=b,void g._playerMonitor.setAdBreakStartInfo(a,b,d))},this.reportAdBreakEnded=function(){return null==g._playerMonitor?void g._logger.error("AdAnalytics.reportAdBreakEnded() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdBreakEnded()"),
|
|
186
|
-
g._adType=null,g._adPlayer=null,void g._playerMonitor.setAdBreakEndInfo())},this.getSessionId=function(){return null==g._playerMonitor?void g._logger.error("VideoAnalytics.getSessionId() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("VideoAnalytics.getSessionId()"),
|
|
187
|
-
g._adPlayerMonitor.getSessionId())},this.getClientId=function(){return null==g._playerMonitor?void g._logger.error("VideoAnalytics.getClientId() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("VideoAnalytics.getClientId()"),
|
|
188
|
-
g._adPlayerMonitor.getClientId())},this.getAdType=function(){return null!=g._playerMonitor?g._playerMonitor._adType:null},this.getAdPlayer=function(){return null!=g._playerMonitor?g._playerMonitor._adPlayer:null;
|
|
189
|
-
},q.prototype=Object.create(t.prototype),q.prototype.constructor=q},r=b.AdPlayerMonitorImpl=function(){function a(a,b){v.call(this,a,b)}var b=this;b._convivaClient=null,b._contentPlayerMonitor=null,a.apply(this,arguments),
|
|
190
|
-
this.setContentPlayerMonitor=function(a){this.getContentPlayerMonitor()!=a&&(this.update(),null==a?b._contentPlayerMonitor=null:b._contentPlayerMonitor=a)},this.getContentPlayerMonitor=function(){return b._contentPlayerMonitor;
|
|
191
|
-
},this.createSession=function(){var a=this.getContentPlayerMonitor();if(null!=b._convivaClient){b._playerStateManager=b._convivaClient.getPlayerStateManager(),b.onPlayerInfoChanged(),b._playerStateManager.setClientMeasureInterface(this);
|
|
192
|
-
var c=null;null!=a&&(c=a.getSessionKey()),b._contentSessionKey=b._convivaClient.createAdSession(c,b._contentMetadata,b._playerStateManager)}},r.prototype=Object.create(v.prototype),r.prototype.constructor=r;
|
|
193
|
-
},s=a.Analytics={init:function(b,f,i){if(null!=this._client&&void 0!=this._client)return void this._logger.error("Client is already configured");if(arguments.length<=0)throw new Error("customerKey must be valid");
|
|
194
|
-
var j=null,k=null,l=null;if("string"==typeof arguments[0]&&(j=arguments[0],!K.isValidString(j)))throw new Error("customerKey must be valid");arguments.length>=2&&"object"==typeof arguments[1]&&(k=arguments[1]),
|
|
195
|
-
arguments.length>=3&&"object"==typeof arguments[2]&&(l=arguments[2]);var m=new e(j),n=new h;K.dictCount(l)>0&&(null!=l[c.GATEWAY_URL]&&(m.gatewayUrl=l[c.GATEWAY_URL]),null!=l[c.LOG_LEVEL]&&(n.logLevel=l[c.LOG_LEVEL]));
|
|
196
|
-
var o=new a.Impl.Html5Logging,p=new a.Impl.Html5Storage,q=new a.Impl.Html5Http,r=new a.Impl.Html5Timer,t=new a.Impl.Html5Time;(void 0==this._metadataInterface||null==this._metadataInterface)&&(this._metadataInterface=new a.Impl.Html5Metadata),
|
|
197
|
-
null!=k&&void 0!=k&&(null!=k[a.Constants.CallbackFunctions.CONSOLE_LOG]&&(o.consoleLog=k[a.Constants.CallbackFunctions.CONSOLE_LOG]),null!=k[a.Constants.CallbackFunctions.MAKE_REQUEST]&&(q.makeRequest=k[a.Constants.CallbackFunctions.MAKE_REQUEST]),
|
|
198
|
-
null!=k[a.Constants.CallbackFunctions.SAVE_DATA]&&(p.saveData=k[a.Constants.CallbackFunctions.SAVE_DATA]),null!=k[a.Constants.CallbackFunctions.LOAD_DATA]&&(p.loadData=k[a.Constants.CallbackFunctions.LOAD_DATA]),
|
|
199
|
-
null!=k[a.Constants.CallbackFunctions.GET_EPOCH_TIME_IN_MS]&&(t.getEpochTimeMs=k[a.Constants.CallbackFunctions.GET_EPOCH_TIME_IN_MS]),null!=k[a.Constants.CallbackFunctions.CREATE_TIMER]&&(r.createTimer=k[a.Constants.CallbackFunctions.CREATE_TIMER])),
|
|
200
|
-
this._systemInterface=new a.SystemInterface(t,r,q,p,this._metadataInterface,o),this._systemFactory=new g(this._systemInterface,n),this._systemFactory.configure("Analytics",m),this._client=new d(m,this._systemFactory),
|
|
201
|
-
this._client.version=s.version,this._logger=this._systemFactory.buildLogger(),this._logger.setModuleName("Analytics")},release:function(){var a=0;if(null!=this._adAnalyticsArray&&void 0!=this._adAnalyticsArray){
|
|
202
|
-
for(a=0;a<this._adAnalyticsArray.length;a++){var b=this._adAnalyticsArray[a];null!=b&&(b.release(),b._logger=null,b._timer=null,this._adAnalyticsArray.splice(a,1),a--)}this._adAnalyticsArray=null}if(null!=this._videoAnalyticsArray&&void 0!=this._videoAnalyticsArray){
|
|
203
|
-
for(a=0;a<this._videoAnalyticsArray.length;a++){var c=this._videoAnalyticsArray[a];null!=c&&(c.release(),c._logger=null,c._timer=null,this._videoAnalyticsArray.splice(a,1),a--)}this._videoAnalyticsArray=null;
|
|
204
|
-
}null!=this._systemFactory&&void 0!=this._systemFactory&&(this._systemFactory.release(),this._systemFactory=null),null!=this._client&&void 0!=this._client&&(this._client.release(),this._client=null),this._client=null,
|
|
205
|
-
this._logger=null,this._systemInterface=null,this._metadataInterface=null},setUniqueIdentifier:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUniqueIdentifier(a,b);
|
|
206
|
-
},setUserPreferenceForDataCollection:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUserPreferenceForDataCollection(a,b)},setUserPreferenceForDataDeletion:function(a){
|
|
207
|
-
if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUserPreferenceForDataDeletion(a)},reportAppEvent:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);
|
|
208
|
-
this._client.sendCustomEvent(d.NO_SESSION_KEY,a,b)},reportAppBackgrounded:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.sendCustomEvent(d.NO_SESSION_KEY,"App.Backgrounded",null);
|
|
209
|
-
},reportAppForegrounded:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.sendCustomEvent(d.NO_SESSION_KEY,"App.Foregrounded",null)},configureExistingClient:function(a){
|
|
210
|
-
if(!(a instanceof d))throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client=a,this._systemFactory=this._client._systemFactory,this._logger=this._systemFactory.buildLogger(),this._logger.setModuleName("Analytics");
|
|
211
|
-
},buildVideoAnalytics:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);var a=new w(this._client,this._systemFactory);return(null==this._videoAnalyticsArray||void 0==this._videoAnalyticsArray)&&(this._videoAnalyticsArray=[]),
|
|
212
|
-
this._videoAnalyticsArray.push(a),a},buildAdAnalytics:function(a){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);var b=new q(this._client,this._systemFactory,null!=a&&void 0!=a?a:null);
|
|
213
|
-
return(null==this._adAnalyticsArray||void 0==this._adAnalyticsArray)&&(this._adAnalyticsArray=[]),this._adAnalyticsArray.push(b),b},setDeviceMetadata:function(b){return arguments.length<=0||0==K.dictCount(b)?void this._logger.error("Device Metadata must be valid"):((void 0==this._metadataInterface||null==this._metadataInterface)&&(this._metadataInterface=new a.Impl.Html5Metadata),
|
|
214
|
-
null!=b[a.Constants.DeviceMetadata.BRAND]&&(this._metadataInterface.getDeviceBrand=function(){return b[a.Constants.DeviceMetadata.BRAND]}),null!=b[a.Constants.DeviceMetadata.MANUFACTURER]&&(this._metadataInterface.getDeviceManufacturer=function(){
|
|
215
|
-
return b[a.Constants.DeviceMetadata.MANUFACTURER]}),null!=b[a.Constants.DeviceMetadata.MODEL]&&(this._metadataInterface.getDeviceModel=function(){return b[a.Constants.DeviceMetadata.MODEL]}),null!=b[a.Constants.DeviceMetadata.TYPE]&&(this._metadataInterface.getDeviceType=function(){
|
|
216
|
-
return b[a.Constants.DeviceMetadata.TYPE]}),null!=b[a.Constants.DeviceMetadata.VERSION]&&(this._metadataInterface.getDeviceVersion=function(){return b[a.Constants.DeviceMetadata.VERSION]}),null!=b[a.Constants.DeviceMetadata.OS_NAME]&&(this._metadataInterface.getOperatingSystemName=function(){
|
|
217
|
-
return b[a.Constants.DeviceMetadata.OS_NAME]}),null!=b[a.Constants.DeviceMetadata.OS_VERSION]&&(this._metadataInterface.getOperatingSystemVersion=function(){return b[a.Constants.DeviceMetadata.OS_VERSION];
|
|
218
|
-
}),void(null!=b[a.Constants.DeviceMetadata.CATEGORY]&&(this._metadataInterface.getDeviceCategory=function(){return b[a.Constants.DeviceMetadata.CATEGORY]})))},reportDeviceMetric:function(a,b){var d=0;if(null!=this._adAnalyticsArray&&void 0!=this._adAnalyticsArray)for(d=0;d<this._adAnalyticsArray.length;d++){
|
|
219
|
-
var e=this._adAnalyticsArray[d];if(null!=e)switch(a){case c.Network.SIGNAL_STRENGTH:case c.Network.LINK_ENCRYPTION:case c.Network.CONNECTION_TYPE:e.reportAdMetric(a,b,t.ReportMetric.AD_ONLY)}}if(null!=this._videoAnalyticsArray&&void 0!=this._videoAnalyticsArray)for(d=0;d<this._videoAnalyticsArray.length;d++){
|
|
220
|
-
var f=this._videoAnalyticsArray[d];if(null!=f)switch(a){case c.Network.SIGNAL_STRENGTH:case c.Network.LINK_ENCRYPTION:case c.Network.CONNECTION_TYPE:f.reportPlaybackMetric(a,b)}}}};s.version="4.0.15";var t=b.AnalyticsImpl=function(){
|
|
221
|
-
function b(){}function d(){var a=null!=s._adPlayerMonitor?!0:!1,b=s.getAdType(),d=s.getAdPlayer();return b==c.AdType.SERVER_SIDE&&d==c.AdPlayer.CONTENT?t.ReportMetric.AD_CONTENT:b!=c.AdType.SERVER_SIDE||d!=c.AdPlayer.SEPARATE?b==c.AdType.CLIENT_SIDE&&d==c.AdPlayer.CONTENT?t.ReportMetric.AD_ONLY:b==c.AdType.CLIENT_SIDE&&d==c.AdPlayer.SEPARATE?null!=a&&a?t.ReportMetric.AD_ONLY:t.ReportMetric.CONTENT_ONLY:a?t.ReportMetric.AD_ONLY:t.ReportMetric.CONTENT_ONLY:void 0;
|
|
222
|
-
}function e(a,b,c){var d=parseInt(a,10),e=parseInt(b,10);return isNaN(d)&&isNaN(e)?void s._logger.error("reportPlaybackResolution() : width and height are not numbers"):(isNaN(d)&&s._logger.warning("reportPlaybackResolution() : width is not a number"),
|
|
223
|
-
isNaN(e)&&s._logger.warning("reportPlaybackResolution() : height is not a number"),null==s._adPlayerMonitor||c!=t.ReportMetric.AD_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateVideoSize(d,e),
|
|
224
|
-
void(null==s._playerMonitor||c!=t.ReportMetric.CONTENT_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateVideoSize(d,e)))}function f(a,b){return i.isValidPlayerState(a)?(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setPlayerState(a),
|
|
225
|
-
void((null!=s._playerMonitor&&b==t.ReportMetric.CONTENT_ONLY||b==t.ReportMetric.AD_CONTENT)&&s._playerMonitor.setPlayerState(a))):void s._logger.error("reportPlayerState() : Player State is not valid");
|
|
226
|
-
}function g(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerPlayHeadTime() : playheadtime is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updatePlayheadTime(c),
|
|
227
|
-
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updatePlayheadTime(c)))}function h(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerBufferLength() : buffer length is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateBufferLength(c),
|
|
228
|
-
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateBufferLength(c)))}function j(a,b){var c=parseInt(a,10);null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setSeeking(!0,c),
|
|
229
|
-
null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.setSeeking(!0,c)}function k(a){null==s._adPlayerMonitor||a!=t.ReportMetric.AD_ONLY&&a!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setSeeking(!1,-1),
|
|
230
|
-
null==s._playerMonitor||a!=t.ReportMetric.CONTENT_ONLY&&a!=t.ReportMetric.AD_CONTENT||s._playerMonitor.setSeeking(!1,-1)}function l(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerBitrate() : bitrate is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateBitrate(c),
|
|
231
|
-
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateBitrate(c)))}function m(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerRenderedFrameRate() : rendered framerate is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateVideoRenderedFrameRate(c),
|
|
232
|
-
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateVideoRenderedFrameRate(c)))}function n(a,b){return K.isValidString(a)?(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateCDNServerIp(a),
|
|
233
|
-
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateCDNServerIp(a))):void s._logger.error("reportCDNServerIp() : CDNServerIP is not a valid string");
|
|
234
|
-
}function o(a){var b=parseInt(a,10);return isNaN(b)?void s._logger.error("reportSignalStrength() : Signal Strength is not a number"):i.DEFAULT_SIGNAL_STRENGTH===b?void s._logger.error("reportSignalStrength() : DEFAULT_SIGNAL_STRENGTH shouldn't be reported"):null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateCurrentSignalStrength(b):void(null!=s._playerMonitor&&s._playerMonitor.updateCurrentSignalStrength(b));
|
|
235
|
-
}function p(a){return K.isValidString(a)?null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateLinkEncryption(a):void(null!=s._playerMonitor&&s._playerMonitor.updateLinkEncryption(a)):void s._logger.error("reportLinkEncryption() : Link Encryption is not a valid string");
|
|
236
|
-
}function q(a){return K.isValidString(a)?null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateConnectionType(a):void(null!=s._playerMonitor&&s._playerMonitor.updateConnectionType(a)):void s._logger.error("reportConnectionType() : Connection Type is not a valid string");
|
|
237
|
-
}function r(a,b,c){return K.isValidString(a)&&null!=b&&void 0!=b?(null==s._adPlayerMonitor||c!=t.ReportMetric.AD_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateCustomMetric(a,b),void(null==s._playerMonitor||c!=t.ReportMetric.CONTENT_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateCustomMetric(a,b))):void s._logger.error("reportMetric() : Metric key/value should be a proper value");
|
|
238
|
-
}var s=this;b.apply(this,arguments),this.reportMetric=function(b,i,u,v){switch(null!=s._logger&&b!==a.Constants.Playback.PLAY_HEAD_TIME&&b!==a.Constants.Playback.BUFFER_LENGTH&&s._logger.debug("reportMetric() "+b+" "+(void 0!==i&&"CONVIVA"!==i?i:"")+" "+(void 0!==u&&"CONVIVA"!==u&&u!==t.ReportMetric.AD_ONLY?u:"")+" "+(void 0!==v&&"CONVIVA"!==v&&v!==t.ReportMetric.AD_ONLY?v:"")),
|
|
239
|
-
b){case c.Playback.BITRATE:"CONVIVA"===u?s._logger.info("Bitrate change requested from the Conviva Library:"):s._logger.info("Bitrate change requested from the application:"),v==t.ReportMetric.AD_ONLY?l(i,t.ReportMetric.AD_ONLY):l(i,d());
|
|
240
|
-
break;case c.Playback.PLAY_HEAD_TIME:v==t.ReportMetric.AD_ONLY?g(i,t.ReportMetric.AD_ONLY):g(i,d());break;case c.Playback.RESOLUTION:v==t.ReportMetric.AD_ONLY?e(i,u,t.ReportMetric.AD_ONLY):e(i,u,d());break;
|
|
241
|
-
case c.Playback.BUFFER_LENGTH:v==t.ReportMetric.AD_ONLY?h(i,t.ReportMetric.AD_ONLY):h(i,d());break;case c.Playback.PLAYER_STATE:v==t.ReportMetric.AD_ONLY?f(i,t.ReportMetric.AD_ONLY):f(i,d());break;case c.Playback.RENDERED_FRAMERATE:
|
|
242
|
-
v==t.ReportMetric.AD_ONLY?m(i,t.ReportMetric.AD_ONLY):m(i,d());break;case c.Playback.SEEK_STARTED:arguments.length>=2&&"CONVIVA"!=i?j(i,d()):u==t.ReportMetric.AD_ONLY?j(-1,t.ReportMetric.AD_ONLY):j(-1,d());
|
|
243
|
-
break;case c.Playback.SEEK_ENDED:k(u==t.ReportMetric.AD_ONLY?t.ReportMetric.AD_ONLY:d());break;case c.Playback.CDN_IP:"CONVIVA"==u?s._logger.info("CDN Server IP change requested from the Conviva Library:"):s._logger.info("CDN Server IP change requested from the application:"),
|
|
244
|
-
n(i,d());break;case c.Network.SIGNAL_STRENGTH:u==t.ReportMetric.AD_ONLY?o(i,t.ReportMetric.AD_ONLY):o(i,d());break;case c.Network.LINK_ENCRYPTION:u==t.ReportMetric.AD_ONLY?p(i,t.ReportMetric.AD_ONLY):p(i,d());
|
|
245
|
-
break;case c.Network.CONNECTION_TYPE:u==t.ReportMetric.AD_ONLY?q(i,t.ReportMetric.AD_ONLY):q(i,d());break;default:r(b,i,d())}}};t.ReportMetric={AD_ONLY:1,CONTENT_ONLY:2,AD_CONTENT:3};var u=b.PlayerMonitor=function(){
|
|
246
|
-
function b(a){d._timer=a}var d=this;this._affectingUser=null,this._metadata=null,this._contentMetadata=null,this._contentTags=null,this._playerState=a.PlayerStateManager.PlayerState.UNKNOWN,this._playHeadTime=-1,
|
|
247
|
-
this._bufferHeadTime=-1,this._lastError=null,this._lastEventType=null,this._lastEventDetail=null,this._bitrate=-2,this._renderedFrameRate=-1,this._signalStrength=a.PlayerStateManager.DEFAULT_SIGNAL_STRENGTH,
|
|
248
|
-
this._cdnServerIP=null,this._linkEncryption=null,this._connectionType=null,this._timer=null,this._cancelTimer=null,this._playerTags=null,this._callback=null,this._adBreakInfo=null,this._adType=null,this._adPlayer=null,
|
|
249
|
-
b.apply(this,arguments),this.getConvivaPlayerState=function(){return d._playerState},this.setPlayerState=function(a){d._playerState!=a&&(d.update(),d._playerState=a,d.updatePlayerStateManagerState())},
|
|
250
|
-
this.isSeeking=function(){return d._seeking},this.getSeekToPos=function(){return d._seekToPos},this.setSeeking=function(a,b){d.update(),d._seeking=a,d._seekToPos=b,d.onSeekingChanged()},this.getPlayHeadTime=function(){
|
|
251
|
-
return d._playHeadTime},this.updatePlayheadTime=function(a){d._playHeadTime=a},this.getBufferHeadTime=function(){return d._bufferHeadTime},this.updateBufferLength=function(a){d._bufferHeadTime=a},this.getBitrate=function(){
|
|
252
|
-
return d._bitrate},this.updateBitrate=function(a){d._bitrate!=a&&(d._bitrate=a,d.updatePlayerStateManagerState())},this.getVideoRenderedFrameRate=function(){return d._renderedFrameRate},this.updateVideoRenderedFrameRate=function(a){
|
|
253
|
-
d._renderedFrameRate=a},this.getCDNServerIp=function(){return d._cdnServerIP},this.updateCDNServerIp=function(a){d._cdnServerIP=a,d.updatePlayerStateManagerState()},this.getCurrentSignalStrength=function(){
|
|
254
|
-
return d._signalStrength},this.updateCurrentSignalStrength=function(a){d._signalStrength=a,d.updatePlayerStateManagerState()},this.getLinkEncryption=function(){return d._linkEncryption},this.updateLinkEncryption=function(a){
|
|
255
|
-
d._linkEncryption=a,d.updatePlayerStateManagerState()},this.getConnectionType=function(){return d._connectionType},this.updateConnectionType=function(a){d._connectionType=a,d.updatePlayerStateManagerState();
|
|
256
|
-
},this.getVideoWidth=function(){return d._videoWidth},this.getVideoHeight=function(){return d._videoHeight},this.updateVideoSize=function(a,b){0>a&&(a=0),0>b&&(b=0),(d._videoWidth!=a||d._videoHeight!=b)&&(d._videoWidth=a,
|
|
257
|
-
d._videoHeight=b,d.updatePlayerStateManagerState())},this.getMetadataInfo=function(){return d._metadata},this.onMetadataInfoSet=function(){null!=d.getMetadataInfo()&&(d._contentMetadata=new a.ContentMetadata,
|
|
258
|
-
d._contentTags={},d._playerTags={},d.onMetadataInfoChanged())},this.setMetadataInfo=function(a){(null!=d._metadata||null!=a)&&(this.update(),null!=d._metadata&&(d._metadata=null,d.onMetadataInfoSet()),
|
|
259
|
-
null!=a&&(d._metadata=K.mergeObjects(d._metadata,a),d.onMetadataInfoSet()))},this.setOrUpdateMetadataInfo=function(a){if(null!=a){if(null==d._contentMetadata)return void d.setMetadataInfo(a);var b=!1,c=null;
|
|
260
|
-
for(var e in a)if(c=d._contentMetadata[e],c!=a[e]){b=!0;break}b&&(d.update(),d._metadata=K.mergeObjects(a),d.onMetadataInfoChanged())}},this.setCallback=function(a){null==a?(d._callback=null,d.cleanUpTimer()):d._callback!=a&&(d._callback=a,
|
|
261
|
-
d.startTimer())},this.update=function(){d._updating||null!=d._callback&&(d._updating=!0,d._callback(),d._updating=!1)},this.getIsAffectingUser=function(){return d._affectingUser},this.setAffectingUser=function(a){
|
|
262
|
-
d._affectingUser!=a&&(d.update(),d._affectingUser&&(d.endSession(),d.cleanUpTimer(),d.release()),d._affectingUser=a,d._affectingUser&&d.createSession())},this.getLastEventType=function(){return d._lastEventType;
|
|
263
|
-
},this.getLastEventDetail=function(){return null!=d._lastEventDetail?d._lastEventDetail:null},this.getLastError=function(){return d._lastError},this.setError=function(a){this.update(),d._lastError=a,d.onError();
|
|
264
|
-
},this.setEvent=function(a,b){d.update(),d._lastEventType=a,d._lastEventDetail=b,d.onEvent()},this.pollStreamerTask=function(){d.update()},this.startTimer=function(){d.cleanUpTimer(),d._cancelTimer=d._timer.create(d.pollStreamerTask,1e3,"PlayerMonitor.update");
|
|
265
|
-
},this.cleanUpTimer=function(){null!=d._cancelTimer&&(d._cancelTimer(),d._cancelTimer=null)},this.setAdBreakStartInfo=function(a,b,e){d._adBreakInfo=e,d.onAdBreakStartInfoSet(),d._adType=a,d._adPlayer=b,
|
|
266
|
-
null!=d._adType&&void 0!=d._adType&&c.AdType.CLIENT_SIDE===d._adType&&(d._playerState=c.PlayerState.UNKNOWN,d.detach(d._adType,b,null==e||void 0==e?null:e[c.POD_POSITION]))},this.setAdBreakEndInfo=function(){
|
|
267
|
-
null!=d._adType&&c.AdType.CLIENT_SIDE===d._adType&&(d.attach(),d._playerState=c.PlayerState.UNKNOWN),d.onAdBreakEndInfoSet(),d._adType=null,d._adPlayer=null},this.getAdBreakInfo=function(){return d._adBreakInfo;
|
|
268
|
-
},this.release=function(){this._affectingUser=null,this._metadata=null,this._contentMetadata=null,this._contentTags=null,this._playerState=a.PlayerStateManager.PlayerState.UNKNOWN,this._playHeadTime=-1,
|
|
269
|
-
this._bufferHeadTime=-1,this._lastError=null,this._lastEventType=null,this._lastEventDetail=null,this._bitrate=-2,this._renderedFrameRate=-1,this._signalStrength=a.PlayerStateManager.DEFAULT_SIGNAL_STRENGTH,
|
|
270
|
-
this._cdnServerIP=null,this._linkEncryption=null,this._connectionType=null,this._timer=null,this._cancelTimer=null,this._playerTags=null,this._callback=null,this._adBreakInfo=null,this._adType=null,this._adPlayer=null,
|
|
271
|
-
d._playerStateManager=null,d._contentSessionKey=a.Client.NO_SESSION_KEY}},v=b.PlayerMonitorImpl=function(){function b(a,b){u.call(this,b),e._convivaClient=a}var e=this;e._convivaClient=null,e._playerStateManager=null,
|
|
272
|
-
e._contentSessionKey=a.Client.NO_SESSION_KEY,b.apply(this,arguments),this.getPHT=function(){return e.getPlayHeadTime()},this.getBufferLength=function(){return e.getBufferHeadTime()},this.getRenderedFrameRate=function(){
|
|
273
|
-
return e.getVideoRenderedFrameRate()},this.getSignalStrength=function(){return e.getCurrentSignalStrength()},this.onSeekingChanged=function(){null!=e._playerStateManager&&e._ContentSessionKey!=d.NO_SESSION_KEY&&(e.isSeeking()?e._playerStateManager.setPlayerSeekStart(e.getSeekToPos()):e._playerStateManager.setPlayerSeekEnd());
|
|
274
|
-
},this.updatePlayerStateManagerState=function(){null!=e._playerStateManager&&(e._playerStateManager.setPlayerState(e.getConvivaPlayerState()),e.getBitrate()>0&&e._playerStateManager.setBitrateKbps(e.getBitrate()),
|
|
275
|
-
e.getVideoWidth()>0&&e._playerStateManager.setVideoResolutionWidth(e.getVideoWidth()),e.getVideoHeight()>0&&e._playerStateManager.setVideoResolutionHeight(e.getVideoHeight()),null!=e.getCDNServerIp()&&e._playerStateManager.setCDNServerIP(e.getCDNServerIp()),
|
|
276
|
-
null!=e.getLinkEncryption()&&e._playerStateManager.setLinkEncryption(e.getLinkEncryption()),null!=e.getConnectionType()&&e._playerStateManager.setConnectionType(e.getConnectionType()))},this.updateContentMetadata=function(){
|
|
277
|
-
e._contentSessionKey!=d.NO_SESSION_KEY&&null!=e._convivaClient&&e._convivaClient.updateContentMetadata(e._contentSessionKey,e._contentMetadata)},this.onPlayerInfoChanged=function(){if(null!=e._playerStateManager&&null!=e._playerTags&&0!=K.dictCount(e._playerTags)){
|
|
278
|
-
if(null!=e._playerTags[c.MODULE_NAME]&&null!=e._playerTags[c.MODULE_VERSION]){var a=e._playerTags[c.MODULE_NAME],b=e._playerTags[c.MODULE_VERSION];K.isValidString(a)&&K.isValidString(b)&&e._playerStateManager.setModuleNameAndVersion(a,b);
|
|
279
|
-
}if(null!=e._playerTags[c.FRAMEWORK_NAME]){var d=e._playerTags[c.FRAMEWORK_NAME];K.isValidString(d)&&e._playerStateManager.setPlayerType(d)}if(null!=e._playerTags[c.FRAMEWORK_VERSION]){var f=e._playerTags[c.FRAMEWORK_VERSION];
|
|
280
|
-
K.isValidString(f)&&e._playerStateManager.setPlayerVersion(f)}}},this.attach=function(){null!=e._playerStateManager&&e._contentSessionKey!=d.NO_SESSION_KEY&&(e.updatePlayerStateManagerState(),this.contentAdEnd());
|
|
281
|
-
},this.attachPlayer=function(){null!=e._playerStateManager&&e._contentSessionKey!=d.NO_SESSION_KEY&&(e.updatePlayerStateManagerState(),e._convivaClient.onFocus(e._contentSessionKey))},this.contentAdEnd=function(){
|
|
282
|
-
null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.adEnd(e._contentSessionKey)},this.detach=function(a,b,f){if(null!=e._playerStateManager&&e._contentSessionKey!=c.NO_SESSION_KEY){
|
|
283
|
-
var g=null;c.AdType.CLIENT_SIDE===a?g=d.AdStream.SEPARATE:c.AdType.SERVER_SIDE===a&&(g=d.AdStream.CONTENT),e.contentAdStart(g,b,f)}},this.detachPlayer=function(){null!=e._playerStateManager&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.offFocus(e._contentSessionKey);
|
|
284
|
-
},this.contentAdStart=function(a,b,d){null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.adStart(e._contentSessionKey,a,b,d)},this.createSession=function(){null!=e._convivaClient&&(e._playerStateManager=e._convivaClient.getPlayerStateManager(),
|
|
285
|
-
e.onPlayerInfoChanged(),e._playerStateManager.setClientMeasureInterface(this),e._contentSessionKey=e._convivaClient.createSession(e._contentMetadata,e._playerStateManager))},this.endSession=function(){
|
|
286
|
-
null!=e._convivaClient&&(null!=e._playerStateManager&&(e._playerStateManager.setPlayerState(c.PlayerState.STOPPED),e._playerStateManager=null),e._contentSessionKey!=c.NO_SESSION_KEY&&(e._convivaClient.cleanupSession(e._contentSessionKey),
|
|
287
|
-
e._contentSessionKey=c.NO_SESSION_KEY))},this.onError=function(){if(null!=e._convivaClient&&e._contentSessionKey!=d.NO_SESSION_KEY){var a=e.getLastError();e._convivaClient.reportError(e._contentSessionKey,a.getErrorCode(),a.getErrorSeverity());
|
|
288
|
-
}},this.onEvent=function(){e._contentSessionKey!=d.NO_SESSION_KEY&&null!=e._convivaClient&&e._convivaClient.sendCustomEvent(e._contentSessionKey,e.getLastEventType(),e.getLastEventDetail())},this.onMetadataInfoChanged=function(){
|
|
289
|
-
var a=e.getMetadataInfo(),b=!1,d=!1;for(var f in a){var g=a[f];if(K.isValidString(f)&&null!=g)switch(f){case c.STREAM_URL:d=!0,e._contentMetadata.streamUrl=g;break;case c.ASSET_NAME:d=!0,e._contentMetadata.assetName=g;
|
|
290
|
-
break;case c.DEFAULT_RESOURCE:d=!0,e._contentMetadata.defaultResource=g;break;case c.VIEWER_ID:d=!0,e._contentMetadata.viewerId=g;break;case c.PLAYER_NAME:d=!0,e._contentMetadata.applicationName=g;break;
|
|
291
|
-
case c.DURATION:d=!0,e._contentMetadata.duration=g;break;case c.IS_LIVE:d=!0,e._contentMetadata.streamType=g;break;case c.ENCODED_FRAMERATE:d=!0,e._contentMetadata.encodedFrameRate=g;break;case c.MODULE_NAME:
|
|
292
|
-
case c.MODULE_VERSION:case c.FRAMEWORK_NAME:case c.FRAMEWORK_VERSION:b=!0,e._playerTags[f]=g;break;default:d=!0,e._contentMetadata.custom[f]=g}}b&&this.onPlayerInfoChanged(),d&&this.updateContentMetadata();
|
|
293
|
-
},this.onAdBreakStartInfoSet=function(){this.contentAdBreak(c.Events.POD_START)},this.onAdBreakEndInfoSet=function(){this.contentAdBreak(c.Events.POD_END)},this.contentAdBreak=function(a){if(null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY){
|
|
294
|
-
var b=this.getAdBreakInfo(),d=null;if(null!=b){d={};var f=b[c.POD_POSITION];null!=f&&(d[c.POD_POSITION]=f);var g=b[c.POD_INDEX];if(null!=g&&(d[c.POD_INDEX]=g+""),a===c.Events.POD_START){var h=b[c.POD_DURATION];
|
|
295
|
-
null!=h&&(d[c.POD_DURATION]=h+"")}}e._convivaClient.sendCustomEvent(e._contentSessionKey,a,d)}},this.setSessionKey=function(a){this._contentSessionKey==c.NO_SESSION_KEY&&a!=c.NO_SESSION_KEY&&(this._contentSessionKey=a);
|
|
296
|
-
},this.getSessionKey=function(){return this._contentSessionKey},this.getSessionId=function(){return e._convivaClient.getSessionId(this._contentSessionKey)},this.getClientId=function(a){return e._convivaClient.getClientId(this._contentSessionKey);
|
|
297
|
-
},this.updateCustomMetric=function(a,b){e._convivaClient.updateCustomMetric(this._contentSessionKey,a,b)},v.prototype=Object.create(u.prototype),v.prototype.constructor=v},w=b.VideoAnalytics=function(){
|
|
298
|
-
function b(a,b){e._client=a,e._systemFactory=b,e._timer=b.buildTimer(),e._logger=b.buildLogger(),e._logger.setModuleName("VideoAnalytics"),e._playerMonitor=new v(e._client,e._timer),t.call(this)}var e=this;
|
|
299
|
-
e._client=null,e._logger=null,e._systemFactory=null,e._timer=null,e._playerMonitor=null,e._dropInModule=null,e._adType=null,e._adPlayer=null,this.release=function(){null!=e._logger&&e._logger.debug("VideoAnalytics.release()"),
|
|
300
|
-
null!=e._playerMonitor&&e._playerMonitor.getIsAffectingUser()&&(e._playerMonitor.setAffectingUser(!1),"undefined"!=typeof a.ProxyMonitor&&null!=e._dropInModule&&(a.ProxyMonitor.release(e._dropInModule),
|
|
301
|
-
e._dropInModule=null)),null!=e._playerMonitor&&(e._playerMonitor.setCallback(null),e._playerMonitor.release(),e._playerMonitor=null),e._timer=null,e._adType=null,e._adPlayer=null},b.apply(this,arguments),
|
|
302
|
-
this.reportPlaybackRequested=function(a){return null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackRequested()"),null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackRequested() : "+c.PLAYBACK_ANALYTICS_NOT_AVAILABLE):(K.dictCount(a)>0&&e.setContentInfo(a),
|
|
303
|
-
void e._playerMonitor.setAffectingUser(!0))},this.reportPlaybackEnded=function(){return null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackEnded()"),null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackEnded() : "+c.PLAYBACK_ANALYTICS_NOT_AVAILABLE):void(e._playerMonitor.getIsAffectingUser()&&(e._playerMonitor.setAffectingUser(!1),
|
|
304
|
-
"undefined"!=typeof a.ProxyMonitor&&null!=e._dropInModule&&(a.ProxyMonitor.release(e._dropInModule),e._dropInModule=null),e._playerMonitor.setCallback(null)))},this.reportPlaybackFailed=function(a,b){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackFailed() : "+c.INVALID_PLAYER_MONITOR):(K.dictCount(b)>0&&e.setContentInfo(b),
|
|
305
|
-
e._playerMonitor.getIsAffectingUser()||e._playerMonitor.setAffectingUser(!0),null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackFailed()"),e.reportPlaybackError(a,d.ErrorSeverity.FATAL),void e.reportPlaybackEnded());
|
|
306
|
-
},this.setContentInfo=function(a){return K.dictCount(a)<=0?void e._logger.error("VideoAnalytics.setContentInfo() : Content Info is not set"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.setContentInfo() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.setContentInfo()"),
|
|
307
|
-
void e._playerMonitor.setOrUpdateMetadataInfo(a))},this.setPlayerInfo=function(a){return K.dictCount(a)<=0?void e._logger.error("VideoAnalytics.setPlayerInfo() : Player Info is not set"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.setPlayerInfo() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayerInfo()"),
|
|
308
|
-
void e._playerMonitor.setOrUpdateMetadataInfo(a))},this.reportPlaybackMetric=function(){return 0==arguments.length?void e._logger.error("VideoAnalytics.reportPlaybackMetric() : Need to report metric mandatory"):void(1==arguments.length?e.reportMetric(arguments[0]):2==arguments.length?e.reportMetric(arguments[0],arguments[1]):3==arguments.length?e.reportMetric(arguments[0],arguments[1],arguments[2]):4==arguments.length&&e.reportMetric(arguments[0],arguments[1],arguments[2],arguments[3]));
|
|
309
|
-
},this.reportPlaybackError=function(a,b){if(null==e._playerMonitor)return void e._logger.error("VideoAnalytics.reportPlaybackError() : "+c.INVALID_PLAYER_MONITOR);if(!K.isValidString(a))return void e._logger.error("VideoAnalytics.reportPlaybackError() : errorMessage need to be valid string");
|
|
310
|
-
null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackError()");var d=new P(a,b);e._playerMonitor.setError(d)},this.reportPlaybackEvent=function(b,d){if(!K.isValidString(b))return void e._logger.error("VideoAnalytics.reportPlaybackEvent(): eventType parameter must be a valid string.");
|
|
311
|
-
if(null==e._playerMonitor)return void e._logger.error("VideoAnalytics.reportPlaybackEvent() : "+c.INVALID_PLAYER_MONITOR);if(null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackEvent()"),null!=e._playerMonitor)switch(b){
|
|
312
|
-
case a.Constants.Events.USER_WAIT_STARTED:case a.Constants.Events.BUMPER_VIDEO_STARTED:e._playerMonitor.detachPlayer();break;case a.Constants.Events.USER_WAIT_ENDED:case a.Constants.Events.BUMPER_VIDEO_ENDED:
|
|
313
|
-
e._playerMonitor.attachPlayer();break;default:e._playerMonitor.setEvent(b,d)}},this.setCallback=function(a){null!=e._logger&&e._logger.debug("setCallback()"),null!=e._playerMonitor&&e._playerMonitor.setCallback(a);
|
|
314
|
-
},this.reportAdBreakStarted=function(a,b,d){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportAdBreakStarted() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.reportAdBreakStarted()"),
|
|
315
|
-
e._adType=a,e._adPlayer=b,void e._playerMonitor.setAdBreakStartInfo(a,b,d))},this.reportAdBreakEnded=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportAdBreakEnded() : "+c.INVALID_PLAYER_MONITOR):(e._adType=null,
|
|
316
|
-
e._adPlayer=null,null!=e._logger&&e._logger.debug("VideoAnalytics.VideoAnalytics.reportAdBreakEnded()"),void e._playerMonitor.setAdBreakEndInfo())},this.setPlayer=function(b,c){if(void 0===b)return void e._logger.error("VideoAnalytics.setPlayer() : Need to configure the Player");
|
|
317
|
-
var d,f;return c&&(d=c[a.Constants.CONVIVA_MODULE],f=c[a.Constants.MEDIA_ELEMENT]),"undefined"!=typeof d?a.ProxyMonitor=d.ProxyMonitor:"undefined"!=typeof ConvivaModule&&(a.ProxyMonitor=ConvivaModule.ProxyMonitor),
|
|
318
|
-
"undefined"==typeof a.ProxyMonitor?void e._logger.error("VideoAnalytics.setPlayer() : Include the missing Player Module"):(null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayer()"),void(null==b&&null!=e._dropInModule?(a.ProxyMonitor.release(e._dropInModule),
|
|
319
|
-
e._dropInModule=null):null!=b?(null!=e._dropInModule&&a.ProxyMonitor.release(e._dropInModule),null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayer() : Initializing drop-in module"),"undefined"!=typeof f?e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,f,e._systemFactory,this,a):e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,e._systemFactory,this,a)):null==b&&"undefined"!=typeof f&&(e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,f,e._systemFactory,this,a))));
|
|
320
|
-
},this.configureExistingSession=function(a){return a==c.NO_SESSION_KEY?void e._logger.error("VideoAnalytics.configureExistingSession() : Invalid Session Key"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.configureExistingSession() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.configureExistingSession()"),
|
|
321
|
-
void e._playerMonitor.setSessionKey(a))},this.getSessionId=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.getSessionId() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.getSessionId()"),
|
|
322
|
-
e._playerMonitor.getSessionId())},this.getClientId=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.getClientId() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.getClientId()"),
|
|
323
|
-
e._playerMonitor.getClientId())},this.getPlayerMonitor=function(){return null!=e._logger&&e._logger.debug("VideoAnalytics.getPlayerMonitor()"),this._playerMonitor},this.getAdType=function(){return null!=e._playerMonitor?e._playerMonitor._adType:null;
|
|
324
|
-
},this.getAdPlayer=function(){return null!=e._playerMonitor?e._playerMonitor._adPlayer:null},w.prototype=Object.create(t.prototype),w.prototype.constructor=w};a.Impl=a.Impl||{},a.Impl.Html5Http=function(){
|
|
325
|
-
function a(){}a.apply(this,arguments),this.makeRequest=function(a,b,c,d,e,f){return this.makeRequestStandard.apply(this,arguments)},this.makeRequestStandard=function(a,b,c,d,e,f){var g=new XMLHttpRequest;
|
|
326
|
-
return g.open(a,b,!0),d&&g.overrideMimeType&&(g.overrideMimeType=d),d&&g.setRequestHeader&&g.setRequestHeader("Content-Type",d),e>0&&(g.timeout=e,g.ontimeout=function(){g.ontimeout=g.onreadystatechange=null,
|
|
327
|
-
f&&f(!1,"timeout after "+e+" ms")}),g.onreadystatechange=function(){4===g.readyState&&(g.ontimeout=g.onreadystatechange=null,200==g.status?f&&f(!0,g.responseText):f&&f(!1,"http status "+g.status))},g.send(c),
|
|
328
|
-
null},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Logging=function(){function b(){}b.apply(this,arguments),this.consoleLog=function(b,c){"undefined"!=typeof console&&(console.log&&c===a.SystemSettings.LogLevel.DEBUG||c===a.SystemSettings.LogLevel.INFO?console.log(b):console.warn&&c===a.SystemSettings.LogLevel.WARNING?console.warn(b):console.error&&c===a.SystemSettings.LogLevel.ERROR&&console.error(b));
|
|
329
|
-
},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Metadata=function(){function a(){}a.apply(this,arguments),this.getBrowserName=function(){return null},this.getBrowserVersion=function(){return null;
|
|
330
|
-
},this.getDeviceBrand=function(){return null},this.getDeviceManufacturer=function(){return null},this.getDeviceModel=function(){return null},this.getDeviceType=function(){return null},this.getDeviceVersion=function(){
|
|
331
|
-
return null},this.getFrameworkName=function(){return null},this.getFrameworkVersion=function(){return null},this.getOperatingSystemName=function(){return null},this.getOperatingSystemVersion=function(){
|
|
332
|
-
return null},this.getDeviceCategory=function(){return null},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Storage=function(){function a(){}a.apply(this,arguments),this.saveData=function(a,b,c,d){
|
|
333
|
-
var e=a+"."+b;try{localStorage.setItem(e,c),d(!0,null)}catch(f){d(!1,f.toString())}},this.loadData=function(a,b,c){var d=a+"."+b;try{var e=localStorage.getItem(d);c(!0,e)}catch(f){c(!1,f.toString())}},
|
|
334
|
-
this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Time=function(){function a(){}a.apply(this,arguments),this.getEpochTimeMs=function(){var a=new Date;return a.getTime()},this.release=function(){};
|
|
335
|
-
},a.Impl=a.Impl||{},a.Impl.Html5Timer=function(){function a(){}a.apply(this,arguments),this.createTimer=function(a,b,c){var d=setInterval(a,b),e=function(){-1!==d&&(clearInterval(d),d=-1)};return e},this.release=function(){};
|
|
336
|
-
};var x=b.JSON2={};!function(){function a(a){return 10>a?"0"+a:a}function b(a){return d.lastIndex=0,d.test(a)?'"'+a.replace(d,function(a){var b=g[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4);
|
|
337
|
-
})+'"':'"'+a+'"'}function c(a,d){var g,i,j,k,l,m=e,n=d[a];switch(n&&"object"==typeof n&&"function"==typeof n.toJSON&&(n=n.toJSON(a)),"function"==typeof h&&(n=h.call(d,a,n)),typeof n){case"string":return b(n);
|
|
338
|
-
case"number":return isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":if(!n)return"null";if(e+=f,l=[],Object.prototype.toString.apply(n)===Object.prototype.toString.apply([])){
|
|
339
|
-
for(k=n.length,g=0;k>g;g+=1)l[g]=c(g,n)||"null";return j=0===l.length?"[]":e?"[\n"+e+l.join(",\n"+e)+"\n"+m+"]":"["+l.join(",")+"]",e=m,j}if(h&&"object"==typeof h)for(k=h.length,g=0;k>g;g+=1)"string"==typeof h[g]&&(i=h[g],
|
|
340
|
-
j=c(i,n),j&&l.push(b(i)+(e?": ":":")+j));else for(i in n)Object.prototype.hasOwnProperty.call(n,i)&&(j=c(i,n),j&&l.push(b(i)+(e?": ":":")+j));return j=0===l.length?"{}":e?"{\n"+e+l.join(",\n"+e)+"\n"+m+"}":"{"+l.join(",")+"}",
|
|
341
|
-
e=m,j}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null;
|
|
342
|
-
},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d,e,f,g,h;"function"!=typeof x.stringify&&(d=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
|
343
|
-
g={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},x.stringify=function(a,b,d){var g;if(e="",f="","number"==typeof d)for(g=0;d>g;g+=1)f+=" ";else"string"==typeof d&&(f=d);if(h=b,
|
|
344
|
-
b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON2.stringify");return c("",{"":a})})}();var y=b.JsonParse=function(){var a,b,c,d,e={'"':'"',"\\":"\\","/":"/",
|
|
345
|
-
b:"\b",f:"\f",n:"\n",r:"\r",t:" "},f=function(b){throw{name:"SyntaxError",message:b,at:a,text:c}},g=function(d){return d&&d!==b&&f("Expected '"+d+"' instead of '"+b+"'"),b=c.charAt(a),a+=1,b},h=function(){
|
|
346
|
-
var a,c="";for("-"===b&&(c="-",g("-"));b>="0"&&"9">=b;)c+=b,g();if("."===b)for(c+=".";g()&&b>="0"&&"9">=b;)c+=b;if("e"===b||"E"===b)for(c+=b,g(),("-"===b||"+"===b)&&(c+=b,g());b>="0"&&"9">=b;)c+=b,g();return a=+c,
|
|
347
|
-
isNaN(a)?void f("Bad number"):a},i=function(){var a,c,d,h="";if('"'===b)for(;g();){if('"'===b)return g(),h;if("\\"===b)if(g(),"u"===b){for(d=0,c=0;4>c&&(a=parseInt(g(),16),isFinite(a));c+=1)d=16*d+a;h+=String.fromCharCode(d);
|
|
348
|
-
}else{if("string"!=typeof e[b])break;h+=e[b]}else h+=b}f("Bad string")},j=function(){for(;b&&" ">=b;)g()},k=function(){switch(b){case"t":return g("t"),g("r"),g("u"),g("e"),!0;case"f":return g("f"),g("a"),
|
|
349
|
-
g("l"),g("s"),g("e"),!1;case"n":return g("n"),g("u"),g("l"),g("l"),null}f("Unexpected '"+b+"'")},l=function(){var a=[];if("["===b){if(g("["),j(),"]"===b)return g("]"),a;for(;b;){if(a.push(d()),j(),"]"===b)return g("]"),
|
|
350
|
-
a;g(","),j()}}f("Bad array")},m=function(){var a,c={};if("{"===b){if(g("{"),j(),"}"===b)return g("}"),c;for(;b;){if(a=i(),j(),g(":"),Object.hasOwnProperty.call(c,a)&&f('Duplicate key "'+a+'"'),c[a]=d(),
|
|
351
|
-
j(),"}"===b)return g("}"),c;g(","),j()}}f("Bad object")};return d=function(){switch(j(),b){case"{":return m();case"[":return l();case'"':return i();case"-":return h();default:return b>="0"&&"9">=b?h():k();
|
|
352
|
-
}},function(e,g){var h;return c=e,a=0,b=" ",h=d(),j(),b&&f("Syntax error"),"function"==typeof g?function i(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.hasOwnProperty.call(e,c)&&(d=i(e,c),
|
|
353
|
-
void 0!==d?e[c]=d:delete e[c]);return g.call(a,b,e)}({"":h},""):h}}(),z=b.CwsProtocol=function(){this.generateEvent=function(a,b,c,d){return d.seq=a,d.st=b,d.t=c,d},this.generateSessionEndEvent=function(a,b){
|
|
354
|
-
var c=z.EVENT_TYPE_SESSION_END,d={};return this.generateEvent(a,b,c,d)}};z.version="2.6",z.gatewayPath="/0/wsg",z.DEFAULT_CLIENT_ID="0",z.DEFAULT_CDN_SERVER_IP_AUTODETECT_ENABLED=!1,z.DEFAULT_MAX_HEARTBEAT_INFOS=2,
|
|
355
|
-
z.DEFAULT_PLAYHEAD_TIME=-1,z.DEFAULT_BUFFER_LENGTH=-1,z.DEFAULT_SIGNAL_STRENGTH=1e3,z.SDK_METADATA_SCHEMA="sdk.js.1",z.EVENT_TYPE_STATE_CHANGE="CwsStateChangeEvent",z.EVENT_TYPE_ERROR="CwsErrorEvent",z.EVENT_TYPE_SESSION_END="CwsSessionEndEvent",
|
|
356
|
-
z.EVENT_TYPE_CUSTOM="CwsCustomEvent",z.EVENT_TYPE_SEEK="CwsSeekEvent",z.EVENT_TYPE_DATA_SAMPLE="CwsDataSamplesEvent",z.RESPONSE_STATUS_NO_ERRORS="ok",z.RESPONSE_KEY_STATUS="err",z.RESPONSE_KEY_CLIENT_ID="clid",
|
|
357
|
-
z.RESPONSE_KEY_CONFIG="cfg",z.RESPONSE_KEY_EVENTS="evs",z.RESPONSE_CONFIG_KEY_MAX_HEARTBEAT_INFOS="maxhbinfos",z.RESPONSE_CONFIG_KEY_SEND_LOGS="slg",z.RESPONSE_CONFIG_KEY_HEARTBEAT_INTERVAL="hbi",z.RESPONSE_CONFIG_KEY_GATEWAY_URL="gw",
|
|
358
|
-
z.RESPONSE_CONFIG_KEY_CONVIVAID_FP="fp",z.RESPONSE_CONFIG_KEY_CDN_SERVER_IP_ENABLE="csi_en",z.MESSAGE_TYPE_SESSION_HEARTBEAT="CwsSessionHb",z.REQUEST_KEY_MESSAGE_TYPE="t",z.REQUEST_KEY_SESSION_TIME="st",
|
|
359
|
-
z.REQUEST_KEY_SESSION_START_TIME="sst",z.REQUEST_KEY_IS_LIVE="lv",z.REQUEST_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_KEY_CUSTOMER_KEY="cid",z.REQUEST_KEY_CLIENT_ID="clid",z.REQUEST_KEY_CLIENT_VERSION="clv",
|
|
360
|
-
z.REQUEST_KEY_PROTOCOL_VERSION="pver",z.REQUEST_KEY_INSTANCE_ID="iid",z.REQUEST_KEY_SESSION_ID="sid",z.REQUEST_KEY_VIEWER_ID="vid",z.REQUEST_KEY_ASSET_NAME="an",z.REQUEST_KEY_PLAYER_NAME="pn",z.REQUEST_KEY_TAGS="tags",
|
|
361
|
-
z.REQUEST_KEY_SESSION_FLAGS="sf",z.REQUEST_KEY_EVENTS="evs",z.REQUEST_KEY_LOGS="lg",z.REQUEST_KEY_HEARTBEAT_INFOS="hbinfos",z.REQUEST_KEY_IS_SDK_CLIENT="sdk",z.REQUEST_KEY_PAUSE_JOIN="pj",z.REQUEST_KEY_PLAYER_STATE="ps",
|
|
362
|
-
z.REQUEST_KEY_BITRATE="br",z.REQUEST_KEY_CONTENT_LENGTH="cl",z.REQUEST_KEY_ENCODED_FRAME_RATE="efps",z.REQUEST_KEY_AVERAGE_FRAME_RATE="afps",z.REQUEST_KEY_RFPS_TOTAL="rfpstot",z.REQUEST_KEY_RFPS_COUNT="rfpscnt",
|
|
363
|
-
z.REQUEST_KEY_RESOURCE="rs",z.REQUEST_KEY_PLAYHEAD_TIME="pht",z.REQUEST_KEY_BUFFER_LENGTH="bl",z.REQUEST_KEY_STREAM_URL="url",z.REQUEST_KEY_CAPABILITIES="caps",z.REQUEST_KEY_PLATFORM_METADATA="pm",z.REQUEST_KEY_VIDEO_WIDTH="w",
|
|
364
|
-
z.REQUEST_KEY_VIDEO_HEIGHT="h",z.REQUEST_KEY_CONNECTION_TYPE="ct",z.REQUEST_KEY_LINK_ENCRYPTION="le",z.REQUEST_KEY_SIGNAL_STRENGTH="ss",z.REQUEST_KEY_CDN_NAME="csi_n",z.REQUEST_KEY_CDN_TYPE="csi_t",z.REQUEST_KEY_CDN_LABEL="csi_l",
|
|
365
|
-
z.REQUEST_KEY_CDN_VALUE="csi_v",z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE="csi_c",z.REQUEST_PLATFORM_METADATA_KEY_SCHEMA="sch",z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_NAME="br",z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_VERSION="brv",
|
|
366
|
-
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_BRAND="dvb",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MANUFACTURER="dvma",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MODEL="dvm",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_TYPE="dvt",
|
|
367
|
-
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_VERSION="dvv",z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME="fw",z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION="fwv",z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION="cc",
|
|
368
|
-
z.REQUEST_PLATFORM_METADATA_KEY_MODULE_NAME="mn",z.REQUEST_PLATFORM_METADATA_KEY_MODULE_VERSION="mv",z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_NAME="os",z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_VERSION="osv",
|
|
369
|
-
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_CATEGORY="cat",z.REQUEST_KEY_PROTOCOL_CAPP="caps",z.REQUEST_EVENT_KEY_TYPE="t",z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_EVENT_KEY_SESSION_TIME="st",z.REQUEST_EVENT_KEY_SEEK_ACT_TYPE="act",
|
|
370
|
-
z.REQUEST_EVENT_KEY_SEEK_TO_POS="skto",z.REQUEST_ERROR_EVENT_KEY_MESSAGE="err",z.REQUEST_ERROR_EVENT_KEY_FATAL="ft",z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW="new",z.REQUEST_STATE_CHANGE_EVENT_KEY_OLD="old",
|
|
371
|
-
z.REQUEST_CUSTOM_EVENT_KEY_NAME="name",z.REQUEST_CUSTOM_EVENT_KEY_ATTRIBUTES="attr",z.REQUEST_HEARTBEAT_INFO_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_HEARTBEAT_INFO_KEY_STATUS="err",z.REQUEST_HEARTBEAT_INFO_KEY_ROUNDTRIP_TIME="rtt",
|
|
372
|
-
z.REQUEST_KEY_IS_AD_SESSION="ad",z.REQUEST_CDN_SERVER_IP="csi",z.convertPlayerState=function(a){switch(a){case i.PlayerState.STOPPED:return z.eStopped;case i.PlayerState.PLAYING:return z.ePlaying;case i.PlayerState.BUFFERING:
|
|
373
|
-
return z.eBuffering;case i.PlayerState.PAUSED:return z.ePaused;case i.PlayerState.NOT_MONITORED:return z.eNotMonitored;default:return z.eUnknown}},z.eStopped=1,z.ePlaying=3,z.eBuffering=6,z.ePaused=12,
|
|
374
|
-
z.eNotMonitored=98,z.eUnknown=100,z.SessionFlags={GLOBAL:0,VIDEO:1,QUALITY_METRICS:2,BITRATE_METRICS:4},z.Capabilities={INSIGHTS:0};var A=(b.JSONInterface=function(){this.encode=function(a){},this.decode=function(a){};
|
|
375
|
-
},b.LibJSONInterface=function(){this.encode=function(a){var b=null;try{b=x.stringify(a)}catch(c){}return b},this.decode=function(a){var b=null;try{b=y(a)}catch(c){}return K.isObject(b)||(b=null),b}}),B=b.CwsHeartbeat=function(){
|
|
376
|
-
function a(){}this._data={},a.apply(this,arguments),this.get=function(){return this._data},this.setField=function(a,b){this._data[a]=b},this.setInnerField=function(a,b,c){this._data[a]||(this._data[a]={}),
|
|
377
|
-
this._data[a][b]=c},this.setMessageType=function(a){this.setField(z.REQUEST_KEY_MESSAGE_TYPE,a)},this.setSessionTime=function(a){this.setField(z.REQUEST_KEY_SESSION_TIME,a)},this.setSessionStartTime=function(a){
|
|
378
|
-
this.setField(z.REQUEST_KEY_SESSION_START_TIME,a)},this.setIsLive=function(a){this.setField(z.REQUEST_KEY_IS_LIVE,a)},this.setSequenceNumber=function(a){this.setField(z.REQUEST_KEY_SEQUENCE_NUMBER,a)},
|
|
379
|
-
this.setCustomerKey=function(a){this.setField(z.REQUEST_KEY_CUSTOMER_KEY,a)},this.setClientId=function(a){this.setField(z.REQUEST_KEY_CLIENT_ID,a)},this.setClientVersion=function(a){this.setField(z.REQUEST_KEY_CLIENT_VERSION,a);
|
|
380
|
-
},this.setProtocolVersion=function(a){this.setField(z.REQUEST_KEY_PROTOCOL_VERSION,a)},this.setCapfield=function(a){this.setField(z.REQUEST_KEY_PROTOCOL_CAPP,a)},this.setSessionId=function(a){this.setField(z.REQUEST_KEY_SESSION_ID,a);
|
|
381
|
-
},this.setInstanceId=function(a){this.setField(z.REQUEST_KEY_INSTANCE_ID,a)},this.setViewerId=function(a){this.setField(z.REQUEST_KEY_VIEWER_ID,a)},this.setAssetName=function(a){this.setField(z.REQUEST_KEY_ASSET_NAME,a);
|
|
382
|
-
},this.setPlayerName=function(a){this.setField(z.REQUEST_KEY_PLAYER_NAME,a)},this.setTags=function(a){this.setField(z.REQUEST_KEY_TAGS,a)},this.setSessionFlags=function(a){this.setField(z.REQUEST_KEY_SESSION_FLAGS,a);
|
|
383
|
-
},this.setCapabilities=function(a){this.setField(z.REQUEST_KEY_CAPABILITIES,a)},this.setEvents=function(a){this.setField(z.REQUEST_KEY_EVENTS,a)},this.setIsSdkClient=function(a){this.setField(z.REQUEST_KEY_IS_SDK_CLIENT,a);
|
|
384
|
-
},this.setLogs=function(a){this.setField(z.REQUEST_KEY_LOGS,a)},this.setHeartbeatInfos=function(a){this.setField(z.REQUEST_KEY_HEARTBEAT_INFOS,a)},this.setPlayerState=function(a){this.setField(z.REQUEST_KEY_PLAYER_STATE,a);
|
|
385
|
-
},this.setPauseJoin=function(a){this.setField(z.REQUEST_KEY_PAUSE_JOIN,a)},this.setContentLength=function(a){this.setField(z.REQUEST_KEY_CONTENT_LENGTH,a)},this.setBitrate=function(a){this.setField(z.REQUEST_KEY_BITRATE,a);
|
|
386
|
-
},this.setResource=function(a){this.setField(z.REQUEST_KEY_RESOURCE,a)},this.setEncodedFrameRate=function(a){this.setField(z.REQUEST_KEY_ENCODED_FRAME_RATE,a)},this.setAverageFrameRate=function(a){this.setField(z.REQUEST_KEY_AVERAGE_FRAME_RATE,a);
|
|
387
|
-
},this.setRfpsObservationCount=function(a){this.setField(z.REQUEST_KEY_RFPS_COUNT,a)},this.setRfpsTotal=function(a){this.setField(z.REQUEST_KEY_RFPS_TOTAL,a)},this.setPlatformMetadataSchema=function(a){
|
|
388
|
-
this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_SCHEMA,a)},this.setBrowserName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_NAME,a);
|
|
389
|
-
},this.setBrowserVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_VERSION,a)},this.setDeviceBrand=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_BRAND,a);
|
|
390
|
-
},this.setDeviceManufacturer=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MANUFACTURER,a)},this.setDeviceModel=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MODEL,a);
|
|
391
|
-
},this.setDeviceType=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_TYPE,a)},this.setDeviceVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_VERSION,a);
|
|
392
|
-
},this.setFrameworkName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME,a),this.setField(z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME,a)},
|
|
393
|
-
this.setFrameworkVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION,a),this.setField(z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION,a);
|
|
394
|
-
},this.setOperatingSystemName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_NAME,a.toUpperCase())},this.setOperatingSystemVersion=function(a){
|
|
395
|
-
this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_VERSION,a)},this.setDeviceCategory=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_CATEGORY,a);
|
|
396
|
-
},this.setPlayheadTime=function(a){this.setField(z.REQUEST_KEY_PLAYHEAD_TIME,a)},this.setBufferLength=function(a){this.setField(z.REQUEST_KEY_BUFFER_LENGTH,a)},this.setStreamUrl=function(a){this.setField(z.REQUEST_KEY_STREAM_URL,a);
|
|
397
|
-
},this.setStreamWidth=function(a){this.setField(z.REQUEST_KEY_VIDEO_WIDTH,a)},this.setStreamHeight=function(a){this.setField(z.REQUEST_KEY_VIDEO_HEIGHT,a)},this.setConnectionType=function(a){this.setField(z.REQUEST_KEY_CONNECTION_TYPE,a);
|
|
398
|
-
},this.setLinkEncryption=function(a){this.setField(z.REQUEST_KEY_LINK_ENCRYPTION,a)},this.setIsAdSession=function(){this.setField(z.REQUEST_KEY_IS_AD_SESSION,!0)},this.setSignalStrength=function(a){this.setField(z.REQUEST_KEY_SIGNAL_STRENGTH,a);
|
|
399
|
-
},this.setModuleName=function(a){this.setInnerField(z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION,z.REQUEST_PLATFORM_METADATA_KEY_MODULE_NAME,a)},this.setModuleVersion=function(a){this.setInnerField(z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION,z.REQUEST_PLATFORM_METADATA_KEY_MODULE_VERSION,a);
|
|
400
|
-
},this.setCDNServerIP=function(a){this.setField(z.REQUEST_CDN_SERVER_IP,a)},this.setCdnName=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_NAME,a)},this.setCdnType=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_TYPE,a);
|
|
401
|
-
},this.setCdnLabel=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_LABEL,a)},this.setCdnValue=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_VALUE,a)},this.setCdnHttpRespCode=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE,a);
|
|
402
|
-
}},C=b.CwsSession=function(b,c,d,e,g,h,j,k,l,m,n,o){function p(a,b,c,d,e,f,g,h,i,j,k,l){this._eventQueue=a,this._client=b,this._clientSettings=c,this._logger=d,this._logger.setModuleName("CwsSession"),
|
|
403
|
-
this._exceptionCatcher=e,this._timer=f,this._gatewayControl=g,this._cwsProtocol=h,this._time=i,this._logBuffer=j,this._clientConfig=k,this._contentMetadata=l,null!=this._contentMetadata&&(q._encodedFrameRate=this._contentMetadata.encodedFrameRate,
|
|
404
|
-
q._streamUrl=this._contentMetadata.streamUrl,q._contentLengthSec=this._contentMetadata.duration)}var q=this;q._heartbeatTimerCancel=null,q._contentMetadata=null,q._startTimeMs=0,q._heartbeatSequenceNumber=0,
|
|
405
|
-
q._sessionFlags=z.SessionFlags.GLOBAL,q._capabilities=z.Capabilities.INSIGHTS,q._heartbeatInfos=[],q._lastRequestSentMs=-1,q._bitrateKbps=-2,q._resource=null,q._playerState=i.PlayerState.UNKNOWN,q._encodedFrameRate=-1,
|
|
406
|
-
q._contentLengthSec=-1,q._streamUrl=null,q._width=-1,q._height=-1,q._playerStateManager=null,q._assetName=null,q._viewerId=null,q._playerName=null,q._isLive=null,q._tags={},q._browserName=null,q._browserVersion=null,
|
|
407
|
-
q._deviceBrand=null,q._deviceManufacturer=null,q._deviceModel=null,q._deviceType=null,q._deviceVersion=null,q._frameworkName=null,q._frameworkVersion=null,q._operatingSystemName=null,q._operatingSystemVersion=null,
|
|
408
|
-
q._deviceCategory=null,q._moduleName=null,q._moduleVersion=null,q._connectionType=null,q._linkEncryption=null,q._cdnServerIP=null,q._customMetric=null,q._pauseJoin=!1,q._hasJoined=!1,q._cleanedUp=!1,q._willEndSoon=!1,
|
|
409
|
-
q._rfpsTimerCancel=null,q._rfpsTimerInterval=1e3,q._playingFpsObservationCount=0,q._playingFpsTotal=0,q.whitelistedIdentifiers={},q._uniqueIdentifiers={},q._startConvivaIdCollection=!1,q._cdnName=null,
|
|
410
|
-
q._cdnType=null,q._cdnLabel=null,q._cdnValue=null,q._cdnHttpRespCode=null,q._cdnTimerCancel=null,q._cdnTimerInterval=12e4,q._cdnIpAutoDetectionEnabled=z.DEFAULT_CDN_SERVER_IP_AUTODETECT_ENABLED,q._customerSetCdnIp=!1,
|
|
411
|
-
p.apply(this,arguments),this.cleanup=function(){this._clientConfig=null,this._logBuffer=null,this._systemSettings=null,this._time=null,this._cwsProtocol=null,this._gatewayControl=null,this._timer=null,
|
|
412
|
-
this._exceptionCatcher=null,this._logger=null,this._clientSettings=null,this._client=null,this._eventQueue.flush(),this._eventQueue=null,this._customMetric=null,this._cleanedUp=!0},this.start=function(a){
|
|
413
|
-
this._session=a,this._global=this._session._global,this._logger.setSessionId(this._session._id),this._startTimeMs=this._time.current(),this.isVideoSession()||this.isAdSession()?(this._sessionFlags+=C.DEFAULT_VIDEO_SESSION_FLAGS,
|
|
414
|
-
q._logger.info("start(): assetName="+q._contentMetadata.assetName)):q._logger.info("start()"+q.sessionTypeTag())},this.willEndSoon=function(){this._willEndSoon=!0},this.initialize=function(){this._logger.debug("initialize()"),
|
|
415
|
-
(this.isVideoSession()||this.isAdSession())&&(q.setStatesFromContentMetadata(),q.enqueueEventForContentMetadata(),q.validateContentMetadata())},this.end=function(){(this.isVideoSession()||this.isAdSession())&&(this._logger.debug("end(): schedule the last hb before session cleanup"+q.sessionTypeTag()),
|
|
416
|
-
this.enqueueSessionEndEvent()),this.cancelCdnTimer(),this.cancelHeartbeatTimer(),this.sendHeartbeat()},this.startSendingHeartbeats=function(){this._willEndSoon||(this.sendHeartbeat(),this.resetHeartbeatTimer());
|
|
417
|
-
},this.setBrowserName=function(a){var b=q._browserName;b!==a&&null!=a&&(q._logger.debug("Change browserName from "+b+" to "+a),q._browserName=a)},this.setBrowserVersion=function(a){var b=q._browserVersion;
|
|
418
|
-
b!==a&&null!=a&&(q._logger.debug("Change browserVersion from "+b+" to "+a),q._browserVersion=a)},this.setDeviceBrand=function(a){var b=q._deviceBrand;b!==a&&null!=a&&(q._logger.debug("Change deviceBrand from "+b+" to "+a),
|
|
419
|
-
q._deviceBrand=a)},this.setDeviceManufacturer=function(a){var b=q._deviceManufacturer;b!==a&&null!=a&&(q._logger.debug("Change deviceManufacturer from "+b+" to "+a),q._deviceManufacturer=a)},this.setDeviceModel=function(a){
|
|
420
|
-
var b=q._deviceModel;b!==a&&null!=a&&(q._logger.debug("Change deviceModel from "+b+" to "+a),q._deviceModel=a)},this.setDeviceType=function(a){var b=q._deviceType;b!==a&&null!=a&&(q._logger.debug("Change deviceType from "+b+" to "+a),
|
|
421
|
-
q._deviceType=a)},this.setDeviceVersion=function(a){var b=q._deviceVersion;b!==a&&null!=a&&(q._logger.debug("Change deviceVersion from "+b+" to "+a),q._deviceVersion=a)},this.setOperatingSystemName=function(a){
|
|
422
|
-
var b=q._operatingSystemName;b!==a&&null!=a&&(q._logger.debug("Change operatingSystemName from "+b+" to "+a),q._operatingSystemName=a)},this.setOperatingSystemVersion=function(a){var b=q._operatingSystemVersion;
|
|
423
|
-
b!==a&&null!=a&&(q._logger.debug("Change operatingSystemVersion from "+b+" to "+a),q._operatingSystemVersion=a)},this.setDeviceCategory=function(a){var b=q._deviceCategory;b!==a&&null!=a&&(q._logger.debug("Change operatingSystemVersion from "+b+" to "+a),
|
|
424
|
-
q._deviceCategory=a)},this.getFrameworkName=function(){return q._frameworkName},this.setFrameworkName=function(a){var b=q._frameworkName;b!==a&&null!=a&&(q._logger.debug("Change frameworkName from "+b+" to "+a),
|
|
425
|
-
q._frameworkName=a)},this.getFrameworkVersion=function(){return q._frameworkVersion},this.setFrameworkVersion=function(a){var b=q._frameworkVersion;b!==a&&null!=a&&(q._logger.debug("Change frameworkVersion from "+b+" to "+a),
|
|
426
|
-
q._frameworkVersion=a)},this.setStreamUrl=function(a){if(null==q._contentMetadata.streamUrl){var b=q._streamUrl;b!==a&&null!=a&&(q._logger.debug("Change stream url from "+b+" to "+a),q._streamUrl=a)}},
|
|
427
|
-
this.startCdnTimer=function(){q.cancelCdnTimer(),q._customerSetCdnIp||(q.detectCDNServerIp(),q._cdnTimerCancel=q._timer.create(q.detectCDNServerIp,q._cdnTimerInterval,"CwsSession.startCdnTimer"),q._logger.debug("fetching cdn ip timer started"));
|
|
428
|
-
},this.cancelCdnTimer=function(){null!=q._cdnTimerCancel&&(q._cdnTimerCancel(),q.enqueueAutoCdnChangeEvent(null,null,null,null,null),q._cdnTimerCancel=null)},this.detectCDNServerIp=function(){q._logger.debug("detectCDNServerIp(): For "+q._streamUrl),
|
|
429
|
-
q._cdnIpAutoDetectionEnabled?q.makeAkamaiHeadRequest():q.cancelCdnTimer()},this.makeAkamaiHeadRequest=function(){try{if("function"==typeof XMLHttpRequest){var a=new XMLHttpRequest;a.open("HEAD",q._streamUrl,!0),
|
|
430
|
-
a.setRequestHeader("Pragma","akamai-x-cache-on"),a.onreadystatechange=function(){4===a.readyState&&(200===a.status&&null!=a.getResponseHeader("X-Cache")?q.enqueueAutoCdnChangeEvent("Akamai","header","X-Cache",""+a.getResponseHeader("X-Cache"),""+a.status):q.enqueueAutoCdnChangeEvent("null","header","null","null",""+a.status));
|
|
431
|
-
},a.send()}else q._logger.info("xmlhttpreq is not available here to fetch CDN Server Ip")}catch(b){q._logger.info("Exception caught in makeAkamaiHeadRequest")}},this.enqueueAutoCdnChangeEvent=function(a,b,c,d,e){
|
|
432
|
-
var f={},g={};q._cdnName!=a&&(null!==q._cdnName&&(g[z.REQUEST_KEY_CDN_NAME]=q._cdnName),q._cdnName=a,null===q._cdnName?f[z.REQUEST_KEY_CDN_NAME]="null":f[z.REQUEST_KEY_CDN_NAME]=q._cdnName),q._cdnType!=b&&(null!==q._cdnType&&(g[z.REQUEST_KEY_CDN_TYPE]=q._cdnType),
|
|
433
|
-
q._cdnType=b,null===q._cdnType?f[z.REQUEST_KEY_CDN_TYPE]="null":f[z.REQUEST_KEY_CDN_TYPE]=q._cdnType),q._cdnLabel!=c&&(null!==q._cdnLabel&&(g[z.REQUEST_KEY_CDN_LABEL]=q._cdnLabel),q._cdnLabel=c,null===q._cdnLabel?f[z.REQUEST_KEY_CDN_LABEL]="null":f[z.REQUEST_KEY_CDN_LABEL]=q._cdnLabel),
|
|
434
|
-
q._cdnValue!=d&&(null!==q._cdnValue&&(g[z.REQUEST_KEY_CDN_VALUE]=q._cdnValue),q._cdnValue=d,null===q._cdnValue?f[z.REQUEST_KEY_CDN_VALUE]="null":f[z.REQUEST_KEY_CDN_VALUE]=q._cdnValue),q._cdnHttpRespCode!=e&&(null!==q._cdnHttpRespCode&&(g[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]=q._cdnHttpRespCode),
|
|
435
|
-
q._cdnHttpRespCode=e,null===q._cdnHttpRespCode?f[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]="null":f[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]=q._cdnHttpRespCode),"{}"!=K.ObjectToString(f)&&q.declareStateChange(f,g);
|
|
436
|
-
},this.setBitrateKbps=function(a){var b=q._bitrateKbps;b!==a&&a>0&&(q._logger.info("Change bitrate from "+b+" to "+a),q.enqueueBitrateChangeEvent(b,a),q._bitrateKbps=a)},this.setResource=function(a){var b=q._resource;
|
|
437
|
-
b!==a&&null!=a&&(q._logger.info("Change resource from "+b+" to "+a),q._resource=a)},this.setAssetName=function(a){q._assetName!==a&&null!=a&&(q._logger.info("Change assetName from "+q._assetName+" to "+a),
|
|
438
|
-
q._assetName=a)},this.setIsLive=function(a){var b=q._isLive;b!==a&&null!=a&&(q._logger.info("Change isLive from "+b+" to "+a),q._isLive=a)},this.setViewerId=function(a){var b=q._viewerId;b!==a&&null!=a&&(q._logger.info("Change viewerId from "+b+" to "+a),
|
|
439
|
-
q._viewerId=a)},this.setPlayerName=function(a){var b=q._playerName;b!==a&&null!=a&&(q._logger.info("Change playerName from "+b+" to "+a),q._playerName=a)},this.setTags=function(a){var b=q._tags;K.ObjectShallowEquals(b,a)||null==a||(q._logger.info("Change tags from "+K.ObjectToString(b)+" to "+K.ObjectToString(a)),
|
|
440
|
-
q._tags=a)},this.setEncodedFrameRate=function(a){q._contentMetadata.encodedFrameRate>0||(q._logger.debug("setEncodedFrameRate(): "+a),q._encodedFrameRate=a)},this.setContentLength=function(a){q._contentMetadata.duration>0||(q._logger.debug("setContentLength(): "+a),
|
|
441
|
-
q._contentLengthSec=a)},this.setPlayerState=function(a){if(q._hasJoined||a!=i.PlayerState.PLAYING||(q.togglePauseJoin(!1),q._hasJoined=!0,K.isValidString(q._contentMetadata.viewerId)||q._logger.error("Missing viewerId. viewerId should be updated before first frame is rendered."),
|
|
442
|
-
K.isValidString(q._contentMetadata.streamType)&&f.StreamType.UNKNOWN!==q._contentMetadata.streamType||q._logger.error("Missing streamType - Live or VOD. streamType should be updated before first frame is rendered."),
|
|
443
|
-
K.isValidString(q._contentMetadata.applicationName)||q._logger.error("Missing applicationName. applicationName should be updated before first frame is rendered.")),q._playerState!==a){var b=q._playerState;
|
|
444
|
-
q._logger.info("setPlayerState(): changing player state from "+b+" to "+a),q.enqueuePlayerStateChangeEvent(b,a),q._playerState=a}},this.setStreamResolutionWidth=function(a){var b=q._width;b!==a&&a>0&&(q._logger.debug("Change stream resolution width from "+b+" to "+a),
|
|
445
|
-
q.enqueueResolutionWidthChangeEvent(b,a),q._width=a)},this.setStreamResolutionHeight=function(a){var b=q._height;b!==a&&a>0&&(q._logger.debug("Change stream resolution height from "+b+" to "+a),q.enqueueResolutionHeightChangeEvent(b,a),
|
|
446
|
-
q._height=a)},this.setConnectionType=function(a){var b=q._connectionType;b!==a&&null!=a&&(q._logger.debug("Change network connection type from "+b+" to "+a),q.enqueueConnectionTypeChangeEvent(b,a),q._connectionType=a);
|
|
447
|
-
},this.setLinkEncryption=function(a){var b=q._linkEncryption;b!==a&&null!=a&&(q._logger.debug("Change network link encryption from "+b+" to "+a),q.enqueueLinkEncryptionChangeEvent(b,a),q._linkEncryption=a);
|
|
448
|
-
},this.setCDNServerIP=function(a){q._customerSetCdnIp=!0,q.cancelCdnTimer();var b=q._cdnServerIP;b!==a&&K.isValidString(a)&&(q._logger.debug("Change CDN Server IP from "+b+" to "+a),q.enqueueCDNServerIPChangeEvent(b,a),
|
|
449
|
-
q._cdnServerIP=a)},this.togglePauseJoin=function(a){if(q._logger.debug("togglePauseJoin()"),q._pauseJoin===a)return void q._logger.debug("togglePauseJoin(): same value, ignoring");var b=q._pauseJoin,c=!q._pauseJoin;
|
|
450
|
-
q.enqueuePauseJoinChangeEvent(b,c),q._pauseJoin=!q._pauseJoin},this.sendError=function(a,b){q.enqueueErrorEvent(a,b)},this.enqueueEvent=function(a,b){if(b[z.REQUEST_EVENT_KEY_TYPE]=a,b[z.REQUEST_EVENT_KEY_SESSION_TIME]=this.getSessionTime(),
|
|
451
|
-
b[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=this._eventQueue.getNumber(),this._playerStateManager){var c=O.Integer(this._playerStateManager.getPHT(),0,null,-1),d=O.Integer(this._playerStateManager.getBufferLength(),0,null,-1);
|
|
452
|
-
c>=0&&(b[z.REQUEST_KEY_PLAYHEAD_TIME]=c),d>0&&(b[z.REQUEST_KEY_BUFFER_LENGTH]=d)}this._eventQueue.enqueue(b)},this.setPlayerStateManager=function(a){q._playerStateManager=a,null!=q._playerStateManager?q.startRfpsTimer():q.cancelRfpsTimer();
|
|
453
|
-
},this.enqueueSessionEndEvent=function(){var a=this.getSessionTime(),b=this.getNextEventNumber(),c=this._cwsProtocol.generateSessionEndEvent(b,a);this._eventQueue.enqueue(c)},this.enqueueErrorEvent=function(a,b){
|
|
454
|
-
var c={};c[z.REQUEST_ERROR_EVENT_KEY_MESSAGE]=a,c[z.REQUEST_ERROR_EVENT_KEY_FATAL]=b,this.enqueueEvent(z.EVENT_TYPE_ERROR,c)},this.enqueueBitrateChangeEvent=function(a,b){var c={},d={};a>0&&(d[z.REQUEST_KEY_BITRATE]=a),
|
|
455
|
-
c[z.REQUEST_KEY_BITRATE]=b,this.declareStateChange(c,d)},this.enqueueSeekEvent=function(a,b){var c={};c[z.REQUEST_EVENT_KEY_SEEK_ACT_TYPE]=a,b>=0&&(c[z.REQUEST_EVENT_KEY_SEEK_TO_POS]=b),this.enqueueEvent(z.EVENT_TYPE_SEEK,c);
|
|
456
|
-
},this.enqueueResolutionWidthChangeEvent=function(a,b){var c={},d={};-1!==a&&(d[z.REQUEST_KEY_VIDEO_WIDTH]=a),c[z.REQUEST_KEY_VIDEO_WIDTH]=b,this.declareStateChange(c,d)},this.enqueueResolutionHeightChangeEvent=function(a,b){
|
|
457
|
-
var c={},d={};-1!==a&&(d[z.REQUEST_KEY_VIDEO_HEIGHT]=a),c[z.REQUEST_KEY_VIDEO_HEIGHT]=b,this.declareStateChange(c,d)},this.enqueueConnectionTypeChangeEvent=function(a,b){var c={},d={};null!==a&&(d[z.REQUEST_KEY_CONNECTION_TYPE]=a),
|
|
458
|
-
c[z.REQUEST_KEY_CONNECTION_TYPE]=b,this.declareStateChange(c,d)},this.enqueueLinkEncryptionChangeEvent=function(a,b){var c={},d={};null!==a&&(d[z.REQUEST_KEY_LINK_ENCRYPTION]=a),c[z.REQUEST_KEY_LINK_ENCRYPTION]=b,
|
|
459
|
-
this.declareStateChange(c,d)},this.enqueueCDNServerIPChangeEvent=function(a,b){var c={},d={};K.isValidString(a)&&(d[z.REQUEST_CDN_SERVER_IP]=a),c[z.REQUEST_CDN_SERVER_IP]=b,this.declareStateChange(c,d);
|
|
460
|
-
},this.enqueuePauseJoinChangeEvent=function(a,b){var c={},d={};d[z.REQUEST_KEY_PAUSE_JOIN]=a,c[z.REQUEST_KEY_PAUSE_JOIN]=b,this.declareStateChange(c,d)},this.enqueuePlayerStateChangeEvent=function(a,b){
|
|
461
|
-
var c={},d={};c[z.REQUEST_KEY_PLAYER_STATE]=z.convertPlayerState(b),d[z.REQUEST_KEY_PLAYER_STATE]=z.convertPlayerState(a),this.declareStateChange(c,d)},this.declareStateChange=function(a,b){var c={};c[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=a,
|
|
462
|
-
null!=b&&K.dictCount(b)>0&&(c[z.REQUEST_STATE_CHANGE_EVENT_KEY_OLD]=b),this.enqueueEvent(z.EVENT_TYPE_STATE_CHANGE,c)},this.enqueueCustomEvent=function(a,b){var c={};c[z.REQUEST_CUSTOM_EVENT_KEY_NAME]=a,
|
|
463
|
-
K.dictCount(b)>0&&(c[z.REQUEST_CUSTOM_EVENT_KEY_ATTRIBUTES]=b),this.enqueueEvent(z.EVENT_TYPE_CUSTOM,c)},this.cancelHeartbeatTimer=function(){null!=q._heartbeatTimerCancel&&(q._heartbeatTimerCancel(),q._heartbeatTimerCancel=null);
|
|
464
|
-
},this.resetHeartbeatTimer=function(){q.cancelHeartbeatTimer();var a=1e3*q._clientSettings.heartbeatInterval;q._heartbeatTimerCancel=q._timer.create(q.sendHeartbeat,a,"Session.sendHeartbeat")},this.cancelRfpsTimer=function(){
|
|
465
|
-
null!=q._rfpsTimerCancel&&(q._rfpsTimerCancel(),q._rfpsTimerCancel=null)},this.startRfpsTimer=function(){q.cancelRfpsTimer(),q._rfpsTimerCancel=q._timer.create(q.countRfps,q._rfpsTimerInterval,"Session.startRfpsTimer");
|
|
466
|
-
},this.createHeartbeatInfo=function(){var a={};a.err="pending",a.seq=q._heartbeatSequenceNumber-1,a.sentAt=q.getSessionTime(),a.rtt=-1,q._heartbeatInfos.push(a);for(var b=0;b<q._heartbeatInfos.length;b++)a=q._heartbeatInfos[b],
|
|
467
|
-
"ok"===a.err&&(q._heartbeatInfos.splice(b,1),b--)},this.updateHeartbeatInfoOnFailure=function(a,b){for(var c=0;c<q._heartbeatInfos.length;c++){var d=q._heartbeatInfos[c],e=d.seq;e===a&&(d.rtt=q.getSessionTime()-d.sentAt,
|
|
468
|
-
d.err=b)}},this.updateHeartbeatInfoOnSuccess=function(a){for(var b=0;b<q._heartbeatInfos.length;b++){var c=q._heartbeatInfos[b],d=c.seq;d===a&&(c.rtt=q.getSessionTime()-c.sentAt,c.err="ok")}},this.removeOutdatedHeartbeatInfos=function(){
|
|
469
|
-
for(var a,b,c=q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS),d=[],e=-1,f=0;f<q._heartbeatInfos.length;f++)if(b=q._heartbeatInfos[f],"ok"==b.err){e=b.seq;break}for(var g=0;g<q._heartbeatInfos.length;g++)b=q._heartbeatInfos[g],
|
|
470
|
-
a=b.seq,(a<q._heartbeatSequenceNumber-c||e>a)&&d.push(g);for(var h=[],i=0;i<q._heartbeatInfos.length;i++)b=q._heartbeatInfos[i],a=b.seq,d.indexOf(i)<0&&h.push(q._heartbeatInfos[i]);q._heartbeatInfos=h},
|
|
471
|
-
this.compileHeartbeatInfos=function(){q.removeOutdatedHeartbeatInfos();for(var a=[],b=0;b<q._heartbeatInfos.length;b++){var c=q._heartbeatInfos[b],d={};d[z.REQUEST_HEARTBEAT_INFO_KEY_SEQUENCE_NUMBER]=c.seq,
|
|
472
|
-
d[z.REQUEST_HEARTBEAT_INFO_KEY_ROUNDTRIP_TIME]=c.rtt,d[z.REQUEST_HEARTBEAT_INFO_KEY_STATUS]=c.err,a.push(d)}return a},this.makeHeartbeat=function(){var a=q._eventQueue.flush();if(q.isGlobalSession()&&0===a.length)return null;
|
|
473
|
-
var b=new B;if(b.setMessageType(z.MESSAGE_TYPE_SESSION_HEARTBEAT),b.setCustomerKey(q._clientSettings.customerKey),b.setClientId(q._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)),b.setSessionId(q._session._id),
|
|
474
|
-
b.setSequenceNumber(q._heartbeatSequenceNumber),b.setProtocolVersion(z.version),b.setClientVersion(q._client.version),b.setInstanceId(q._client.getId()),b.setCapfield(0),null!=q._connectionType&&b.setConnectionType(q._connectionType),
|
|
475
|
-
null!=q._linkEncryption&&b.setLinkEncryption(q._linkEncryption),K.isValidString(q._cdnServerIP)&&b.setCDNServerIP(q._cdnServerIP),b.setPlatformMetadataSchema(z.SDK_METADATA_SCHEMA),null!=q._browserName&&b.setBrowserName(q._browserName),
|
|
476
|
-
null!=q._browserVersion&&b.setBrowserVersion(q._browserVersion),null!=q._deviceBrand&&b.setDeviceBrand(q._deviceBrand),null!=q._deviceManufacturer&&b.setDeviceManufacturer(q._deviceManufacturer),null!=q._deviceModel&&b.setDeviceModel(q._deviceModel),
|
|
477
|
-
null!=q._deviceType&&b.setDeviceType(q._deviceType),null!=q._deviceVersion&&b.setDeviceVersion(q._deviceVersion),null!=q._operatingSystemName&&b.setOperatingSystemName(q._operatingSystemName),null!=q._operatingSystemVersion&&b.setOperatingSystemVersion(q._operatingSystemVersion),
|
|
478
|
-
null!=q._deviceCategory&&b.setDeviceCategory(q._deviceCategory),null!=q._frameworkName&&b.setFrameworkName(q._frameworkName),null!=q._frameworkVersion&&b.setFrameworkVersion(q._frameworkVersion),null!=q._playerStateManager&&(q._moduleName=q._playerStateManager.getModuleName(),
|
|
479
|
-
null!=q._moduleName&&b.setModuleName(q._moduleName),q._moduleVersion=q._playerStateManager.getModuleVersion(),null!=q._moduleVersion&&b.setModuleVersion(q._moduleVersion),null!=q._playerStateManager.getPlayerType()&&(q._frameworkName=q._playerStateManager.getPlayerType(),
|
|
480
|
-
b.setFrameworkName(q._frameworkName)),null!=q._playerStateManager.getPlayerVersion()&&(q._frameworkVersion=q._playerStateManager.getPlayerVersion(),b.setFrameworkVersion(q._frameworkVersion))),null!=q._viewerId&&b.setViewerId(q._viewerId),
|
|
481
|
-
K.dictCount(q._tags)>0&&b.setTags(q._tags),q.isVideoSession()||q.isAdSession()){q.isAdSession()&&b.setIsAdSession(),null!=q._assetName&&b.setAssetName(q._assetName),b.setSessionFlags(q._sessionFlags);var c=z.convertPlayerState(q._playerState);
|
|
482
|
-
b.setPlayerState(c),b.setPauseJoin(q._pauseJoin),null!=q._playerName&&b.setPlayerName(q._playerName),null!=q._isLive&&b.setIsLive(q._isLive),q._contentLengthSec>0&&b.setContentLength(q._contentLengthSec),
|
|
483
|
-
q._bitrateKbps>0&&b.setBitrate(q._bitrateKbps),null!==q._resource&&b.setResource(q._resource),q._encodedFrameRate>0&&b.setEncodedFrameRate(q._encodedFrameRate);var d,e=-1,f=-1;null!=q._playerStateManager&&(e=O.Integer(q._playerStateManager.getPHT(),0,null,-1),
|
|
484
|
-
f=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1),d=q._playerStateManager.getSignalStrength()),e>=0&&b.setPlayheadTime(e),f>0&&b.setBufferLength(f);var g=q.updateAverageFrameRate();if(g>0&&b.setAverageFrameRate(g),
|
|
485
|
-
q._playingFpsTotal>0&&b.setRfpsTotal(O.Integer(q._playingFpsTotal,0,null,-1)),q._playingFpsObservationCount>0&&b.setRfpsObservationCount(O.Integer(q._playingFpsObservationCount,0,null,-1)),d!==i.DEFAULT_SIGNAL_STRENGTH&&b.setSignalStrength(d),
|
|
486
|
-
null!=q._streamUrl&&b.setStreamUrl(q._streamUrl),q._width>0&&b.setStreamWidth(q._width),q._height>0&&b.setStreamHeight(q._height),null!=q._customMetric)for(var h in q._customMetric)b.setField(h,q._customMetric[h]);
|
|
487
|
-
}else b.setSessionFlags(z.SessionFlags.GLOBAL);if(a.length>0&&b.setEvents(a),b.setCapabilities(q._capabilities),b.setIsSdkClient(!0),q._clientConfig.get(G.CONFIG_KEY_SEND_LOGS)&&b.setLogs(q._logBuffer.flush()),
|
|
488
|
-
q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS)>0){var j=q.compileHeartbeatInfos();j.length>0&&b.setHeartbeatInfos(j)}return 0==q._heartbeatSequenceNumber&&(b=q.cloneHearbeatWithBrowserTags(b)),0!=q._heartbeatSequenceNumber&&(b=q.cloneHeartbeatWithConvivaIdTags(b)),
|
|
489
|
-
b.setSessionStartTime(q._startTimeMs),b.setSessionTime(q.getSessionTime()),q._cdnIpAutoDetectionEnabled&&(b.setCdnName(q._cdnName),b.setCdnType(q._cdnType),b.setCdnLabel(q._cdnLabel),b.setCdnValue(q._cdnValue),
|
|
490
|
-
b.setCdnHttpRespCode(q._cdnHttpRespCode)),q._heartbeatSequenceNumber++,b.get()},this.cloneHeartbeatWithConvivaIdTags=function(a){var b=q._uniqueIdentifiers,c={};for(var d in a._data.tags)b.hasOwnProperty(d)||(c[d]=a._data.tags[d]);
|
|
491
|
-
a._data.tags=c,q._uniqueIdentifiers={};for(var e=0;e<q.whitelistedIdentifiers.length;e++)q._client._uniqueIdentifiers.hasOwnProperty(q.whitelistedIdentifiers[e])?q._client._userPrefForData.hasOwnProperty(q.whitelistedIdentifiers[e])?q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT,
|
|
492
|
-
q._client._uniqueIdentifierCallback("End-user chose to opt-out of personal data collection")):q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE,
|
|
493
|
-
q._client._uniqueIdentifierCallback("End-user chose to opt-out of personal data collection")):q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION,
|
|
494
|
-
q._client._uniqueIdentifierCallback("End-user used privacy settings and chose to opt-out of personal data collection")):(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=q._client._uniqueIdentifiers[q.whitelistedIdentifiers[e]],
|
|
495
|
-
q._client._uniqueIdentifierCallback("Data collection successful")):(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=q._client._uniqueIdentifiers[q.whitelistedIdentifiers[e]],
|
|
496
|
-
q._client._uniqueIdentifierCallback("Data collection successful")):q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_NA;var f={};for(var g in b){
|
|
497
|
-
var h=g.split(".");"{}"!=JSON.stringify(q.whitelistedIdentifiers)&&-1!=q.whitelistedIdentifiers.indexOf(""+h[2])||b[G.CONVIVAID_FP_PREFIX+""+h[2]]==G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION||(q._client._uniqueIdentifierCallback("Data collection restricted from Conviva back-end"),
|
|
498
|
-
q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+h[2]]=G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION,f[G.CONVIVAID_FP_PREFIX+""+h[2]]=G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION)}if("{}"!==JSON.stringify(q._uniqueIdentifiers)){
|
|
499
|
-
var i=K.ObjectShallowCopy(q._uniqueIdentifiers);for(var j in a._data.tags)i[j]=a._data.tags[j];if(a._data.tags=i,!K.ObjectShallowEquals(b,q._uniqueIdentifiers)){var k=null,l={};if("{}"!==JSON.stringify(f)&&(l[z.REQUEST_KEY_TAGS]=f),
|
|
500
|
-
"{}"!==JSON.stringify(b)){k={};for(var m in b)void 0!==q._uniqueIdentifiers[m]&&b[m]!==q._uniqueIdentifiers[m]&&(void 0==l[z.REQUEST_KEY_TAGS]&&(l[z.REQUEST_KEY_TAGS]={}),l[z.REQUEST_KEY_TAGS][m]=q._uniqueIdentifiers[m]);
|
|
501
|
-
for(m in q._uniqueIdentifiers)b.hasOwnProperty(m)&&b[m]===q._uniqueIdentifiers[m]||(void 0==l[z.REQUEST_KEY_TAGS]&&(l[z.REQUEST_KEY_TAGS]={}),l[z.REQUEST_KEY_TAGS][m]=q._uniqueIdentifiers[m])}"{}"==JSON.stringify(b)&&(l[z.REQUEST_KEY_TAGS]=q._uniqueIdentifiers);
|
|
502
|
-
var n={};if(n[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=l,n[z.REQUEST_EVENT_KEY_TYPE]=z.EVENT_TYPE_STATE_CHANGE,n[z.REQUEST_EVENT_KEY_SESSION_TIME]=q.getSessionTime(),n[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=q._eventQueue.getNumber(),
|
|
503
|
-
q._playerStateManager){var o=O.Integer(q._playerStateManager.getPHT(),0,null,-1),p=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1);o>=0&&(n[z.REQUEST_KEY_PLAYHEAD_TIME]=o),p>0&&(n[z.REQUEST_KEY_BUFFER_LENGTH]=p);
|
|
504
|
-
}void 0==a._data.evs&&(a._data.evs=[]),a._data.evs.push(n)}}return a},this.cloneHearbeatWithBrowserTags=function(a){var b=q.getBrowserMetadata();if("{}"!==JSON.stringify(b)){var c=K.ObjectShallowCopy(b);
|
|
505
|
-
for(var d in a._data.tags)c[d]=a._data.tags[d];a._data.tags=c;var e={};e[z.REQUEST_KEY_TAGS]=b;var f={};if(f[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=e,f[z.REQUEST_EVENT_KEY_TYPE]=z.EVENT_TYPE_STATE_CHANGE,
|
|
506
|
-
f[z.REQUEST_EVENT_KEY_SESSION_TIME]=q.getSessionTime(),f[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=q._eventQueue.getNumber(),q._playerStateManager){var g=O.Integer(q._playerStateManager.getPHT(),0,null,-1),h=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1);
|
|
507
|
-
g>=0&&(f[z.REQUEST_KEY_PLAYHEAD_TIME]=g),h>0&&(f[z.REQUEST_KEY_BUFFER_LENGTH]=h)}return void 0==a._data.evs&&(a._data.evs=[]),a._data.evs.push(f),a}return a},this.getBrowserMetadata=function(){var a={};
|
|
508
|
-
if("undefined"!=typeof navigator&&null!=navigator){if(a["c3.fp.cookie"]=null!=navigator.cookieEnabled&&void 0!=navigator.cookieEnabled?""+navigator.cookieEnabled:"",a["c3.fp.memory"]=null!=navigator.deviceMemory&&void 0!=navigator.deviceMemory?""+navigator.deviceMemory:"",
|
|
509
|
-
a["c3.fp.hwConc"]=null!=navigator.hardwareConcurrency&&void 0!=navigator.hardwareConcurrency?""+navigator.hardwareConcurrency:"",a["c3.fp.java"]=""+("function"!=typeof navigator.javaEnabled)?"false":navigator.javaEnabled(),
|
|
510
|
-
a["c3.fp.lang"]=null!=navigator.language&&void 0!=navigator.language?""+navigator.language:"",a["c3.fp.langs"]=null!=navigator.languages&&void 0!=navigator.languages&&navigator.languages.length>0?""+navigator.languages.toString():"",
|
|
511
|
-
a["c3.fp.maxTp"]=null!=navigator.maxTouchPoints&&void 0!=navigator.maxTouchPoints?""+navigator.maxTouchPoints:"",a["c3.fp.plugins"]="",null!=navigator.plugins&&navigator.plugins.length>0)for(var b=0;b<navigator.plugins.length;b++)a["c3.fp.plugins"]+=navigator.plugins[b].name+",";
|
|
512
|
-
if(a["c3.fp.mime"]="",null!=navigator.mimeTypes&&navigator.mimeTypes.length>0)for(var c=0;c<navigator.mimeTypes.length;c++)a["c3.fp.mime"]+=navigator.mimeTypes[c].type+",";a["c3.fp.sysLang"]=null!=navigator.systemLanguage&&void 0!=navigator.systemLanguage?""+navigator.systemLanguage:"",
|
|
513
|
-
a["c3.fp.platform"]=null!=navigator.platform&&void 0!=navigator.platform?""+navigator.platform:"",a["c3.fp.product"]=null!=navigator.product&&void 0!=navigator.product?""+navigator.product:"",a["c3.fp.productSub"]=null!=navigator.productSub&&void 0!=navigator.productSub?""+navigator.productSub:"",
|
|
514
|
-
a["c3.fp.vendor"]=null!=navigator.vendor&&void 0!=navigator.vendor?""+navigator.vendor:"",a["c3.fp.vendorSub"]=null!=navigator.vendorSub&&void 0!=navigator.vendorSub?""+navigator.vendorSub:"";var d=q.getHashedCanvasFingerprint();
|
|
515
|
-
""!=d&&(a["c3.fp.canvFp"]=d)}return"undefined"!=typeof window&&null!=window&&(null!=window.screen&&(a["c3.fp.availHeight"]=null!=window.screen.availHeight&&void 0!=window.screen.availHeight?""+window.screen.availHeight:"",
|
|
516
|
-
a["c3.fp.availWidth"]=null!=window.screen.availWidth&&void 0!=window.screen.availWidth?""+window.screen.availWidth:"",a["c3.fp.height"]=null!=window.screen.height&&void 0!=window.screen.height?""+window.screen.height:"",
|
|
517
|
-
a["c3.fp.width"]=null!=window.screen.width&&void 0!=window.screen.width?""+window.screen.width:"",a["c3.fp.colorDepth"]=null!=window.screen.colorDepth&&void 0!=window.screen.colorDepth?""+window.screen.colorDepth:"",
|
|
518
|
-
a["c3.fp.deviceXDPI"]=null!=window.screen.deviceXDPI&&void 0!=window.screen.deviceXDPI?""+window.screen.deviceXDPI:"",a["c3.fp.deviceYDPI"]=null!=window.screen.deviceYDPI&&void 0!=window.screen.deviceYDPI?""+window.screen.deviceYDPI:""),
|
|
519
|
-
a["c3.fp.dpi"]=null!=window.devicePixelRatio&&void 0!=window.devicePixelRatio?""+window.devicePixelRatio:"",a["c3.fp.secure"]=null!=window.isSecureContext&&void 0!=window.isSecureContext?""+window.isSecureContext:""),
|
|
520
|
-
a},this.getHashedCanvasFingerprint=function(){if("undefined"!=typeof document&&null!=document){var a=document.createElement("CANVAS"),b=a.getContext("2d"),c="conviva";return b.textBaseline="top",b.font="14px 'Arial'",
|
|
521
|
-
b.textBaseline="alphabetic",b.fillStyle="#f40",b.fillRect(null!=navigator.plugins&&void 0!=navigator.plugins?navigator.plugins.length:0,null!=navigator.mimeTypes&&void 0!=navigator.mimeTypes?navigator.mimeTypes.length:0,null!=navigator.product&&void 0!=navigator.product?navigator.product.length:0,null!=navigator.vendor&&void 0!=navigator.vendor?navigator.vendor.length:0),
|
|
522
|
-
b.fillStyle="#069",b.fillText(c,null!=navigator.maxTouchPoints&&void 0!=navigator.maxTouchPoints?navigator.maxTouchPoints:0,null!=navigator.product&&void 0!=navigator.product?navigator.product.length:0),
|
|
523
|
-
b.fillStyle="rgba(102, 204, 0, 0.7)",b.fillText(c,null!=navigator.deviceMemory&&void 0!=navigator.deviceMemory?navigator.deviceMemory:0,null!=navigator.hardwareConcurrency&&void 0!=navigator.hardwareConcurrency?navigator.hardwareConcurrency:0),
|
|
524
|
-
K.sha256(a.toDataURL())}return""},this.sendHeartbeat=function(){if(!q._cleanedUp){var a=q.makeHeartbeat();null!=a&&q.postHeartbeat(a)}},this.countRfps=function(){if(q._playerState===i.PlayerState.PLAYING&&null!=q._playerStateManager){
|
|
525
|
-
var a=q._playerStateManager.getRenderedFrameRate();a>0&&(q._playingFpsTotal+=a,q._playingFpsObservationCount++)}},this.updateAverageFrameRate=function(){return q._playingFpsTotal>0&&q._playingFpsObservationCount>0?K.Int32.Cast(1*q._playingFpsTotal/q._playingFpsObservationCount):(this.countRfps(),
|
|
526
|
-
q._playingFpsTotal>0&&q._playingFpsObservationCount>0?K.Int32.Cast(1*q._playingFpsTotal/q._playingFpsObservationCount):i.DEFAULT_RENDERED_FRAME_RATE)},this.postHeartbeat=function(a){q.createHeartbeatInfo();
|
|
527
|
-
var b=q._heartbeatSequenceNumber-1;q._logger.info("postHeartbeat(): Send HB["+b+"]"+q.sessionTypeTag());var c=function(a,c){q.onHeartbeatResponse(a,c,b)};q._gatewayControl.send(a,c)},this.onHeartbeatResponse=function(a,b,c){
|
|
528
|
-
q._cleanedUp||q._exceptionCatcher.runProtected("onHeartbeatResponse",function(){if(a){var d=b;if(null!=d){q._logger.debug("onHeartbeatResponse(): received valid response for HB["+c+"]"),q.updateHeartbeatInfoOnSuccess(c);
|
|
529
|
-
var e=d[z.RESPONSE_KEY_CLIENT_ID];null!=e&&e!=q._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)&&(q._logger.debug("onHeartbeatResponse(): setting the client id to "+e+" (from gateway)"),q._clientConfig.set(G.CONFIG_KEY_CLIENT_ID,e),
|
|
530
|
-
q._clientConfig.save());var f=d[z.RESPONSE_KEY_STATUS];null!=f&&f!=z.RESPONSE_STATUS_NO_ERRORS&&q._logger.error("onHeartbeatResponse(): error from gateway: "+f);var g=d[z.RESPONSE_KEY_CONFIG];if("object"==typeof g){
|
|
531
|
-
var h=g[z.RESPONSE_CONFIG_KEY_MAX_HEARTBEAT_INFOS];null!=h&&q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS)!==h&&(q._logger.debug("onHeartbeatResponse(): setting Maximum Heartbeat Infos to "+h+" (from gateway)"),
|
|
532
|
-
q._clientConfig.set(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS,h));var i=g[z.RESPONSE_CONFIG_KEY_SEND_LOGS],j=null!=i?K.AsBoolean(i):!1;j!==q._clientConfig.get(G.CONFIG_KEY_SEND_LOGS)&&(q._logger.debug("onHeartbeatResponse(): turning "+(j?"on":"off")+" sending of logs"),
|
|
533
|
-
q._clientConfig.set(G.CONFIG_KEY_SEND_LOGS,j));var k=g[z.RESPONSE_CONFIG_KEY_HEARTBEAT_INTERVAL];if(null!=k){var l=K.Int32.Cast(k),m=l;m!=q._clientSettings.heartbeatInterval&&(q._logger.debug("onHeartbeatResponse(): received hbIntervalMs from gateway: "+m),
|
|
534
|
-
q._clientSettings.heartbeatInterval=m,null!=q._heartbeatTimerCancel&&q.resetHeartbeatTimer())}var n=g[z.RESPONSE_CONFIG_KEY_GATEWAY_URL];null!=n&&n!=q._clientSettings.gatewayUrl&&(q._logger.debug("onHeartbeatResponse(): received gatewayUrl from gateway: "+n),
|
|
535
|
-
q._clientSettings.gatewayUrl=n),q.whitelistedIdentifiers={};var o=g[z.RESPONSE_CONFIG_KEY_CONVIVAID_FP];null!=o&&(q._startConvivaIdCollection||(q._startConvivaIdCollection=!0),q._logger.debug("onHeartbeatResponse(): received fp from gateway: "+o),
|
|
536
|
-
q.whitelistedIdentifiers=o.split(",")),q._cdnIpAutoDetectionEnabled=g[z.RESPONSE_CONFIG_KEY_CDN_SERVER_IP_ENABLE],1==q._cdnIpAutoDetectionEnabled?(q._logger.debug("onHeartbeatResponse(): enabling the CDN Server IP collection"),
|
|
537
|
-
(void 0==q._cdnTimerCancel||null==q._cdnTimerCancel)&&q.startCdnTimer()):(q._logger.debug("onHeartbeatResponse(): disabling the CDN Server IP collection (from gateway)"),q.cancelCdnTimer())}}else q._logger.warning("onHeartbeatResponse(): decoded heartbeat response is null.");
|
|
538
|
-
}else{var p=b;K.isValidString(p)?K.stringStartsWith(p,"HTTP timeout")?q._logger.warning("onHeartbeatResponse(): "+p):q._logger.error("onHeartbeatResponse(): failed to send heartbeat: "+p):(p=D.DEFAULT_HEARTBEAT_ERROR_MESSAGE,
|
|
539
|
-
q._logger.error("onHeartbeatResponse(): "+p)),q.updateHeartbeatInfoOnFailure(c,p)}})},this.getSessionTime=function(){var a=K.Int32.Cast(q._time.current()-q._startTimeMs);return a},this.getNextEventNumber=function(){
|
|
540
|
-
return this._eventQueue.getNumber()},this.sessionTypeTag=function(){return this.isGlobalSession()?" (global session)":""},this.isGlobalSession=function(){return this._global==C.SESSION_TYPE.GLOBAL},this.isVideoSession=function(){
|
|
541
|
-
return this._global==C.SESSION_TYPE.VIDEO},this.isAdSession=function(){return this._global==C.SESSION_TYPE.AD},this.updateContentMetadata=function(a){q.mergeContentMetadata(a),q.setStatesFromContentMetadata();
|
|
542
|
-
},this.mergeContentMetadata=function(b){var c={},d={};if(K.isValidString(b.assetName)&&(q._contentMetadata.assetName!=b.assetName?(null!=q._contentMetadata.assetName&&(c[z.REQUEST_KEY_ASSET_NAME]=q._contentMetadata.assetName),
|
|
543
|
-
d[z.REQUEST_KEY_ASSET_NAME]=b.assetName,q._contentMetadata.assetName=b.assetName):q._logger.warning("mergeContentMetadata(): assetName was not changed.")),K.isValidString(b.applicationName)&&(q._contentMetadata.applicationName!=b.applicationName?(null!=q._contentMetadata.applicationName&&(c[z.REQUEST_KEY_PLAYER_NAME]=q._contentMetadata.applicationName),
|
|
544
|
-
d[z.REQUEST_KEY_PLAYER_NAME]=b.applicationName,q._contentMetadata.applicationName=b.applicationName):q._logger.warning("mergeContentMetadata(): applicationName was not changed.")),K.isValidString(b.streamUrl)&&(q._contentMetadata.streamUrl!=b.streamUrl?(null!=q._contentMetadata.streamUrl&&(c[z.REQUEST_KEY_STREAM_URL]=q._contentMetadata.streamUrl),
|
|
545
|
-
d[z.REQUEST_KEY_STREAM_URL]=b.streamUrl,q._contentMetadata.streamUrl=b.streamUrl,q._streamUrl=q._contentMetadata.streamUrl):q._logger.warning("mergeContentMetadata(): streamUrl was not changed.")),K.isValidString(b.viewerId)&&(q._contentMetadata.viewerId!=b.viewerId?(null!=q._contentMetadata.viewerId&&(c[z.REQUEST_KEY_VIEWER_ID]=q._contentMetadata.viewerId),
|
|
546
|
-
d[z.REQUEST_KEY_VIEWER_ID]=b.viewerId,q._contentMetadata.viewerId=b.viewerId):q._logger.warning("mergeContentMetadata(): viewerId was not changed.")),K.isValidString(b.defaultResource)&&(q._contentMetadata.defaultResource!=b.defaultResource?(null!=q._contentMetadata.defaultResource&&(c[z.REQUEST_KEY_RESOURCE]=q._contentMetadata.defaultResource),
|
|
547
|
-
d[z.REQUEST_KEY_RESOURCE]=b.defaultResource,q._contentMetadata.defaultResource=b.defaultResource):q._logger.warning("mergeContentMetadata(): defaultResource was not changed.")),K.isInteger(b.duration)&&b.duration>0&&(q._contentMetadata.duration!=b.duration?(q._contentLengthSec>0&&(c[z.REQUEST_KEY_CONTENT_LENGTH]=q._contentLengthSec),
|
|
548
|
-
d[z.REQUEST_KEY_CONTENT_LENGTH]=b.duration,q._contentMetadata.duration=b.duration,q._contentLengthSec=q._contentMetadata.duration):q._logger.warning("mergeContentMetadata(): duration was not changed.")),
|
|
549
|
-
K.isInteger(b.encodedFrameRate)&&b.encodedFrameRate>0&&(q._contentMetadata.encodedFrameRate!=b.encodedFrameRate?(q._contentMetadata.encodedFrameRate>-1&&(c[z.REQUEST_KEY_ENCODED_FRAME_RATE]=q._contentMetadata.encodedFrameRate),
|
|
550
|
-
d[z.REQUEST_KEY_ENCODED_FRAME_RATE]=b.encodedFrameRate,q._contentMetadata.encodedFrameRate=b.encodedFrameRate,q._encodedFrameRate=q._contentMetadata.encodedFrameRate):q._logger.warning("mergeContentMetadata(): encodedFrameRate was not changed.")),
|
|
551
|
-
b.streamType!=f.StreamType.UNKNOWN&&(q._contentMetadata.streamType!=b.streamType?(q._contentMetadata.streamType!=f.StreamType.UNKNOWN&&(q._contentMetadata.streamType==a.ContentMetadata.StreamType.LIVE?c[z.REQUEST_KEY_IS_LIVE]=!0:c[z.REQUEST_KEY_IS_LIVE]=!1),
|
|
552
|
-
b.streamType==a.ContentMetadata.StreamType.LIVE?d[z.REQUEST_KEY_IS_LIVE]=!0:d[z.REQUEST_KEY_IS_LIVE]=!1,q._contentMetadata.streamType=b.streamType):q._logger.warning("mergeContentMetadata(): streamType was not changed.")),
|
|
553
|
-
K.dictCount(b.custom)>0){var e={},g={};for(var h in b.custom){var i=q._contentMetadata.custom[h];i!=b.custom[h]?(e[h]=b.custom[h],q._contentMetadata.custom[h]&&(g[h]=q._contentMetadata.custom[h]),q._contentMetadata.custom[h]=b.custom[h]):q._logger.info("mergeContentMetadata(): custom."+h+" was not changed.");
|
|
554
|
-
}K.dictCount(e)>0?(K.dictCount(g)>0&&(c[z.REQUEST_KEY_TAGS]=g),d[z.REQUEST_KEY_TAGS]=e):q._logger.warning("mergeContentMetadata(): custom was not changed.")}K.dictCount(d)>0&&this.declareStateChange(d,c);
|
|
555
|
-
},this.setStatesFromContentMetadata=function(){if(q._logger.debug("setStatesFromContentMetadata()"),null!=q._contentMetadata.defaultResource&&this.setResource(q._contentMetadata.defaultResource),null!=q._contentMetadata.streamUrl&&this.setStreamUrl(q._contentMetadata.streamUrl),
|
|
556
|
-
q._contentMetadata.duration>0&&this.setContentLength(q._contentMetadata.duration),q._contentMetadata.encodedFrameRate>0&&this.setEncodedFrameRate(q._contentMetadata.encodedFrameRate),q._contentMetadata.streamType!==f.StreamType.UNKNOWN){
|
|
557
|
-
var a=q._contentMetadata.streamType===f.StreamType.LIVE;this.setIsLive(a)}null!=q._contentMetadata.assetName&&this.setAssetName(q._contentMetadata.assetName),null!=q._contentMetadata.viewerId&&this.setViewerId(q._contentMetadata.viewerId),
|
|
558
|
-
(null!=q._contentMetadata.applicationName||null!=q._contentMetadata.playerName)&&this.setPlayerName(q._contentMetadata.applicationName||q._contentMetadata.playerName),K.dictCount(q._contentMetadata.custom)>0&&this.setTags(q._contentMetadata.custom);
|
|
559
|
-
},this.enqueueEventForContentMetadata=function(){var b={};if(null!=q._contentMetadata.assetName?b[z.REQUEST_KEY_ASSET_NAME]=q._contentMetadata.assetName:q._logger.warning("enqueueEventForContentMetadata(): assetName was not set."),
|
|
560
|
-
null!=q._contentMetadata.applicationName?b[z.REQUEST_KEY_PLAYER_NAME]=q._contentMetadata.applicationName:q._logger.warning("enqueueEventForContentMetadata(): applicationName was not set."),null!=q._contentMetadata.streamUrl?b[z.REQUEST_KEY_STREAM_URL]=q._contentMetadata.streamUrl:q._logger.warning("enqueueEventForContentMetadata(): streamUrl was not set."),
|
|
561
|
-
null!=q._contentMetadata.viewerId?b[z.REQUEST_KEY_VIEWER_ID]=q._contentMetadata.viewerId:q._logger.warning("enqueueEventForContentMetadata(): viewerId was not set."),null!=q._contentMetadata.defaultResource?b[z.REQUEST_KEY_RESOURCE]=q._contentMetadata.defaultResource:q._logger.warning("enqueueEventForContentMetadata(): defaultResource was not set."),
|
|
562
|
-
q._contentMetadata.duration>-1?b[z.REQUEST_KEY_CONTENT_LENGTH]=q._contentMetadata.duration:q._logger.warning("enqueueEventForContentMetadata(): duration was not set."),q._contentMetadata.encodedFrameRate>-1?b[z.REQUEST_KEY_ENCODED_FRAME_RATE]=q._contentMetadata.encodedFrameRate:q._logger.warning("enqueueEventForContentMetadata(): encodedFrameRate was not set."),
|
|
563
|
-
q._contentMetadata.streamType!=f.StreamType.UNKNOWN?q._contentMetadata.streamType==a.ContentMetadata.StreamType.LIVE?b[z.REQUEST_KEY_IS_LIVE]=!0:b[z.REQUEST_KEY_IS_LIVE]=!1:q._logger.warning("enqueueEventForContentMetadata(): streamType was not set."),
|
|
564
|
-
K.dictCount(q._contentMetadata.custom)>0){b[z.REQUEST_KEY_TAGS]={};for(var c in q._contentMetadata.custom)b[z.REQUEST_KEY_TAGS][c]=q._contentMetadata.custom[c]}else q._logger.warning("enqueueEventForContentMetadata(): custom tags were not set.");
|
|
565
|
-
K.dictCount(b)>0&&this.declareStateChange(b,null)},this.validateContentMetadata=function(){null!=q._contentMetadata&&K.isValidString(q._contentMetadata.assetName)||q._logger.warning("Missing assetName during session creation"),
|
|
566
|
-
null!=q._contentMetadata&&K.isValidString(q._contentMetadata.defaultResource)||q._logger.warning("Missing resource during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.streamUrl)||q._logger.warning("Missing streamUrl during session creation"),
|
|
567
|
-
(null==q._contentMetadata||q._contentMetadata.encodedFrameRate<=0)&&q._logger.warning("Missing encodedFrameRate during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.viewerId)||q._logger.warning("Missing viewerId during session creation"),
|
|
568
|
-
(null==q._contentMetadata||null==q._contentMetadata.streamType||f.StreamType.UNKNOWN===q._contentMetadata.streamType)&&q._logger.warning("Missing streamType during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.applicationName)||q._logger.warning("Missing applicationName during session creation"),
|
|
569
|
-
(null==q._contentMetadata||q._contentMetadata.duration<=0)&&q._logger.warning("Missing duration during session creation")},this.updateCustomMetric=function(a,b){null==q._customMetric&&(q._customMetric={}),
|
|
570
|
-
q._customMetric[a]=b}};C.DEFAULT_VIDEO_SESSION_FLAGS=z.SessionFlags.VIDEO+z.SessionFlags.QUALITY_METRICS+z.SessionFlags.BITRATE_METRICS,C.SESSION_TYPE={VIDEO:"Video",GLOBAL:"Global",AD:"Ad"};var D=(b.IMonitor=function(){
|
|
571
|
-
this.onPlayerStateChange=function(a){},this.onBitrateChange=function(a){},this.onSeekEvent=function(a,b){},this.onEncodedFrameRateChange=function(a){},this.onRenderedFrameRateChange=function(a){},this.onContentLengthChange=function(a){},
|
|
572
|
-
this.onPlayheadTimeChange=function(a){},this.onStreamUrlChange=function(a){},this.onBufferLengthChange=function(a){},this.onPlayerTypeChange=function(a){},this.onPlayerVersionChange=function(a){},this.onStreamResolutionWidthChange=function(a){},
|
|
573
|
-
this.onStreamResolutionHeightChange=function(a){},this.onConnectionTypeChange=function(a){},this.onLinkEncryptionChange=function(a){},this.onSignalStrengthChange=function(a){},this.onError=function(a,b){},
|
|
574
|
-
this.onRelease=function(){},this.onCDNServerIPChange=function(a){}},b.Session=function(){function b(a,b,c,d,e,f,g){this._id=a,this._global=b,this._clientConfig=c,this._systemMetadata=d,this._cwsSession=e,
|
|
575
|
-
this._exceptionCatcher=f,this._logger=g,this._logger.setModuleName("Session"),this._logger.setSessionId(K.ToString(this._id))}var c=this;c._playerStateManager=null,c._id=0,c._global=C.SESSION_TYPE.VIDEO,
|
|
576
|
-
c._cleaningUp=!1,c._cleanedUp=!1,c._adPlaying=!1,c._adStream=null,c._adPlayer=null,c._adPosition=null,c._ignorePlayerState=!1,c._pooledPlayerState=i.PlayerState.NOT_MONITORED,c._ignoreBitrateAndResource=!1,
|
|
577
|
-
c._ignorePlayheadTimeandBufferLength=!1,c._ignoreEncodedFrameRateAndDuration=!1,c._ignoreError=!1,b.apply(c,arguments),this.start=function(a){if(c._cwsSession.start(this),null!=a&&void 0!=a&&c.attachPlayer(a),
|
|
578
|
-
c._clientConfig.isReady())c.initiateSession();else{var b=function(){c.initiateSession()};c._clientConfig.register(b)}},this.cleanup=function(){if(c._logger.info("cleanup()"+c.sessionTypeTag()),c._cleaningUp=!0,
|
|
579
|
-
c._cwsSession.willEndSoon(),c._clientConfig.isReady())c.endCwsSessionAndCleanupAll();else{var a=function(){c.endCwsSessionAndCleanupAll()};c._clientConfig.register(a)}},this.cleanupAll=function(){c._logger.debug("cleanupAll()"+c.sessionTypeTag()),
|
|
580
|
-
(c.isVideoSession()||c.isAdSession())&&null!=c._playerStateManager&&c.releasePlayerStateManager(),c._logger.setSessionId(null),c._logger=null,c._exceptionCatcher=null,c._client=null,c._clientConfig=null,
|
|
581
|
-
c._systemMetadata=null,c._cwsSession.cleanup(),c._cwsSession=null,c._cleanedUp=!0},this.endCwsSessionAndCleanupAll=function(){c._cwsSession.end(),c.cleanupAll()},this.initiateSession=function(){c._cwsSession.initialize(),
|
|
582
|
-
c.setStatesFromSystemMetadata(),c._cwsSession.startSendingHeartbeats()},this.setStatesFromSystemMetadata=function(){c._logger.debug("setStatesFromSystemMetadata()");var a=c._systemMetadata.get(),b=a[T.BROWSER_NAME];
|
|
583
|
-
null!=b&&c._cwsSession.setBrowserName(b);var d=a[T.BROWSER_VERSION];null!=d&&c._cwsSession.setBrowserVersion(d);var e=a[T.DEVICE_BRAND];null!=e&&c._cwsSession.setDeviceBrand(e);var f=a[T.DEVICE_MANUFACTURER];
|
|
584
|
-
null!=f&&c._cwsSession.setDeviceManufacturer(f);var g=a[T.DEVICE_MODEL];null!=g&&c._cwsSession.setDeviceModel(g);var h=a[T.DEVICE_TYPE];null!=h&&c._cwsSession.setDeviceType(h);var i=a[T.DEVICE_VERSION];
|
|
585
|
-
null!=i&&c._cwsSession.setDeviceVersion(i);var j=a[T.FRAMEWORK_NAME];null!=j&&c._cwsSession.setFrameworkName(j);var k=a[T.FRAMEWORK_VERSION];null!=k&&c._cwsSession.setFrameworkVersion(k);var l=a[T.OPERATING_SYSTEM_NAME];
|
|
586
|
-
null!=l&&c._cwsSession.setOperatingSystemName(l);var m=a[T.OPERATING_SYSTEM_VERSION];null!=m&&c._cwsSession.setOperatingSystemVersion(m);var n=a[T.DEVICE_CATEGORY];null!=n&&c._cwsSession.setDeviceCategory(n);
|
|
587
|
-
},this.onPlayerStateChange=function(a){return c._logger.debug("onPlayerStateChange(): "+a),c._cwsSession._playerState!=a?(c._cwsSession._playerState==i.PlayerState.NOT_MONITORED&&a!=i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=a),
|
|
588
|
-
c._ignorePlayerState?void c._logger.debug("onPlayerStateChange(): "+a+" (pooled, "+(c._adPlaying?"ad playing":"preloading")+")"):void c._cwsSession.setPlayerState(a)):void 0},this.onBitrateChange=function(a){
|
|
589
|
-
return c._logger.debug("onBitrateChange(): "+a),c._ignoreBitrateAndResource?void c._logger.info("onBitrateChange(): ignored"):void c._cwsSession.setBitrateKbps(a)},this.onSeekEvent=function(a,b){K.isInteger(b)||(c._logger.warning("onSeekEvent(): Ignored non-integer seekToPosition data: "+b),
|
|
590
|
-
b=-1),c._cwsSession.enqueueSeekEvent(a,b)},this.onEncodedFrameRateChange=function(a){c._logger.debug("onEncodedFrameRateChange(): "+a),a>0?c._ignoreEncodedFrameRateAndDuration?c._logger.info("onEncodedFrameRateChange(): Ignored encoded frame rate data: "+a+" (ads)"):(c._cwsSession.setEncodedFrameRate(a),
|
|
591
|
-
c._logger.info("onEncodedFrameRateChange(): Received encoded frame rate data: "+a)):c._logger.warning("onEncodedFrameRateChange(): Ignored invalid encoded frame rate data: "+a)},this.onContentLengthChange=function(a){
|
|
592
|
-
c._logger.debug("onContentLengthChange(): "+a),a>0?c._ignoreEncodedFrameRateAndDuration?c._logger.info("setContentLength(): Ignored content length data: "+a+" (ads)"):(c._cwsSession.setContentLength(a),
|
|
593
|
-
c._logger.info("setContentLength(): Received content length data: "+a)):c._logger.warning("setContentLength(): Ignored invalid content length data: "+a)},this.onStreamUrlChange=function(a){c._logger.debug("onStreamUrlChange(): "+a),
|
|
594
|
-
c._cwsSession.setStreamUrl(a)},this.onStreamResolutionWidthChange=function(a){c._logger.debug("onStreamResolutionWidthChange(): "+a),c._cwsSession.setStreamResolutionWidth(a)},this.onStreamResolutionHeightChange=function(a){
|
|
595
|
-
c._logger.debug("onStreamResolutionHeightChange(): "+a),c._cwsSession.setStreamResolutionHeight(a)},this.onConnectionTypeChange=function(a){c._logger.debug("onConnectionTypeChange(): "+a),c._cwsSession.setConnectionType(a);
|
|
596
|
-
},this.onLinkEncryptionChange=function(a){c._logger.debug("onLinkEncryptionChange(): "+a),c._cwsSession.setLinkEncryption(a)},this.onPlayerTypeChange=function(a){c._logger.debug("onPlayerTypeChange(): "+a),
|
|
597
|
-
null==c._cwsSession.getFrameworkName()&&c._cwsSession.setFrameworkName(a)},this.onPlayerVersionChange=function(a){c._logger.debug("onPlayerVersionChange(): "+a),null==c._cwsSession.getFrameworkVersion()&&c._cwsSession.setFrameworkVersion(a);
|
|
598
|
-
},this.onCDNServerIPChange=function(a){c._logger.debug("onCDNServerIPChange(): "+a),c._cwsSession.setCDNServerIP(a)},this.onError=function(a,b){c._logger.debug("onError(): "+a+" ("+b+")"),c.reportError(a,b);
|
|
599
|
-
},this.onRelease=function(){c._logger.debug("onRelease()"),c.releasePlayerStateManager()},this.adStart=function(b,d,e){return c._logger.debug("adStart(): adStream="+b+" adPlayer="+d+" adPosition="+e),c._adPlaying?void c._logger.warning("adStart(): multiple adStart calls, ignoring"):(c._adPlaying=!0,
|
|
600
|
-
c._adStream=b,c._adPlayer=d,c._adPosition=e,c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!0),void(c._adStream==a.Client.AdStream.CONTENT||c._adPlayer==a.Client.AdPlayer.SEPARATE?(c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
601
|
-
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0):c._adStream==a.Client.AdStream.SEPARATE&&c._adPlayer==a.Client.AdPlayer.CONTENT&&(c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
602
|
-
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0,c._ignoreBitrateAndResource=!0,c._ignoreEncodedFrameRateAndDuration=!0,c._ignorePlayheadTimeandBufferLength=!0,c._ignoreError=!0)));
|
|
603
|
-
},this.adEnd=function(){return c._logger.debug("adEnd()"),c._adPlaying?(c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!1),c._adStream==a.Client.AdStream.CONTENT||c._adPlayer==a.Client.AdPlayer.SEPARATE?c._preloading||(c._ignorePlayerState=!1,
|
|
604
|
-
c._cwsSession.setPlayerState(c._pooledPlayerState)):c._adStream==a.Client.AdStream.SEPARATE&&c._adPlayer==a.Client.AdPlayer.CONTENT&&(c._ignoreBitrateAndResource=!1,c._ignoreEncodedFrameRateAndDuration=!1,
|
|
605
|
-
c._ignorePlayheadTimeandBufferLength=!1,c._ignoreError=!1,c._preloading||(c._ignorePlayerState=!1,c._cwsSession.setPlayerState(c._pooledPlayerState))),c._adPlaying=!1,void(c._adStream=c._adPlayer=c._adPosition=null)):void c._logger.warning("adEnd(): called before adStart, ignoring");
|
|
606
|
-
},this.detachPlayer=function(){return c._logger.debug("detachPlayer()"),null==c._playerStateManager?void c._logger.error("detachPlayer(): called before attachPlayer, ignoring"):void(null!==c._playerStateManager&&(c._exceptionCatcher.runProtected("Session.detachPlayer",function(){
|
|
607
|
-
c._playerStateManager.removeMonitoringNotifier()}),c._playerStateManager=null,c._cwsSession.setPlayerStateManager(null),c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED)))},this.releasePlayerStateManager=function(){
|
|
608
|
-
null!==c._playerStateManager&&(c._exceptionCatcher.runProtected("Session.releasePlayerStateManager",function(){c._playerStateManager.removeMonitoringNotifier()}),c._playerStateManager=null,c._cwsSession.setPlayerStateManager(null),
|
|
609
|
-
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED))},this.offFocus=function(){c._logger.debug("offFocus()"),c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!0),c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
610
|
-
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0},this.attachPlayer=function(a){return c._logger.debug("attachPlayer()"),null!=c._playerStateManager?void c._logger.error("attachPlayer(): detach current PlayerStateManager first"):a instanceof i?void c._exceptionCatcher.runProtected("Session.attachPlayer()",function(){
|
|
611
|
-
a.setMonitoringNotifier(c,c._id)?(a.pushCurrentState(),c._playerStateManager=a,c._cwsSession.setPlayerStateManager(c._playerStateManager)):c._logger.error("attachPlayer(): instance of PlayerStateManager is already attached to a session");
|
|
612
|
-
}):void c._logger.error("attachPlayer(): Incorrect PlayerStateManager instance")},this.onFocus=function(){c._logger.debug("onFocus()"),c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!1),c._ignoreBitrateAndResource=!1,
|
|
613
|
-
c._ignoreEncodedFrameRateAndDuration=!1,c._ignorePlayheadTimeandBufferLength=!1,c._ignoreError=!1,c._preloading||(c._ignorePlayerState=!1,c._pooledPlayerState!==i.PlayerState.NOT_MONITORED&&c._cwsSession.setPlayerState(c._pooledPlayerState));
|
|
614
|
-
},this.getPlayerStateManager=function(){return c._logger.debug("getPlayerStateManager()"),c._playerStateManager},this.contentPreload=function(){return c._logger.debug("contentPreload()"),c._preloading?void c._logger.debug("contentPreload(): called twice, ignoring"):(c._preloading=!0,
|
|
615
|
-
void(c._ignorePlayerState=!0))},this.contentStart=function(){return c._logger.debug("contentStart()"),c._preloading?(c._preloading=!1,void(c._adPlaying||(c._ignorePlayerState=!1,c._pooledPlayerState!==i.PlayerState.NOT_MONITORED&&c._cwsSession.setPlayerState(c._pooledPlayerState)))):void c._logger.warning("contentStart(): called without contentPreload, ignoring");
|
|
616
|
-
},this.reportError=function(b,d){if(c._logger.info("reportError(): "+b),!K.isValidString(b))return void c._logger.error("reportError(): invalid error message string: "+b);if(d!==a.Client.ErrorSeverity.FATAL&&d!==a.Client.ErrorSeverity.WARNING)return void c._logger.error("reportError(): invalid error severity: "+d);
|
|
617
|
-
if(c._ignoreError)return void c._logger.debug("reportError(): ignored");var e=d===a.Client.ErrorSeverity.FATAL;c._cwsSession.sendError(b,e)},this.updateContentMetadata=function(a){c._exceptionCatcher.runProtected("Session.updateContentMetadata",function(){
|
|
618
|
-
c._cwsSession.updateContentMetadata(a)})},this.sendCustomEvent=function(a,b){c._logger.info("sendEvent(): eventName="+a+c.sessionTypeTag()),c._cwsSession.enqueueCustomEvent(a,b)},this.isGlobalSession=function(){
|
|
619
|
-
return c._global==C.SESSION_TYPE.GLOBAL},this.isVideoSession=function(){return c._global==C.SESSION_TYPE.VIDEO},this.isAdSession=function(){return c._global==C.SESSION_TYPE.AD},this.sessionTypeTag=function(){
|
|
620
|
-
return c.isGlobalSession()?" (global session)":""},this.getSessionId=function(){return this._id},this.getClientId=function(){var a=null;return c._clientConfig.isReady()&&(a=c._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)),
|
|
621
|
-
a},this.updateCustomMetric=function(a,b){c._cwsSession.updateCustomMetric(a,b)}});D.DEFAULT_HEARTBEAT_ERROR_MESSAGE="received no response (or a bad response) to heartbeat POST request";var E=b.SessionFactory=function(){
|
|
622
|
-
function a(a,c,d,e){b._client=a,b._clientSettings=c,b._clientConfig=d,b._systemFactory=e,b._logger=b._systemFactory.buildLogger(),b._logger.setModuleName("SessionFactory"),b._nextSessionKey=0,b._sessionsByKey={};
|
|
623
|
-
}var b=this;b._logger=null,b._logBuffer=null,b._nextSessionKey=0,b._sessionsByKey=null,a.apply(b,arguments),this.cleanup=function(){b._logger=null,b._logBuffer=null;for(var a in b._sessionsByKey){var c=b._sessionsByKey[a];
|
|
624
|
-
c.cleanup()}b._sessionsByKey=null,b._nextSessionKey=0},this.newSessionKey=function(){var a=b._nextSessionKey;return b._nextSessionKey++,a},this.makeVideoSession=function(a,c,d){return null==a&&(a=new f),
|
|
625
|
-
b.makeSession(a,c,d)},this.makeGlobalSession=function(a){return b.makeSession(a,C.SESSION_TYPE.GLOBAL)},this.generateSessionId=function(){return N.integer32()},this.makeSession=function(a,c,d){var e=a.clone(),f=b.generateSessionId(),g=b._systemFactory.buildSession(b._client,b._clientSettings,b._clientConfig,f,c,e),h=b.newSessionKey();
|
|
626
|
-
return b.addSession(h,g),g.start(d),h},this.getSession=function(a){var c=b._sessionsByKey[a];return null==c&&b._logger.error("Client: invalid sessionKey. Did you cleanup that session previously?"),c},this.getVideoSession=function(a){
|
|
627
|
-
var c=this.getSession(a);return null!=c&&(c.isVideoSession()||c.isAdSession()||(b._logger.error("Client: invalid sessionKey. Did you cleanup that session previously?"),c=null)),c},this.addSession=function(a,c){
|
|
628
|
-
b._sessionsByKey[a]=c},this.removeSession=function(a){delete b._sessionsByKey[a]},this.cleanupSession=function(a){var c=b.getSession(a);b.removeSession(a),c.cleanup()}},F=b.CallbackWithTimeout=function(a){
|
|
629
|
-
this._timer=a,this.getWrapperCallback=function(a,b,c){var d=!1,e=function(){d||(d=!0,a(!1,c+" ("+b+" ms)"))};this._timer.createOnce(e,b,"CallbackWithTimeout.wrap");var f=function(b,c){d||(d=!0,a(b,c))};
|
|
630
|
-
return f}},G=b.Config=function(a,b,c){var d=this;this._logger=a,this._logger.setModuleName("Config"),this._storage=b,this._jsonInterface=c,this._defaultConfig={clientId:z.DEFAULT_CLIENT_ID,sendLogs:!1,
|
|
631
|
-
maxHbInfos:z.DEFAULT_MAX_HEARTBEAT_INFOS},this._config=K.ObjectShallowCopy(this._defaultConfig),this._loaded=!1,this._loadedEmpty=!1,this._waitingConsumers=[],this.isReady=function(){return this._loaded;
|
|
632
|
-
},this.load=function(){var a=function(a,b){a?(d._parse(b),d._logger.debug("load(): configuration successfully loaded from local storage"+(d._loadedEmpty?" (was empty)":"")+".")):d._logger.error("load(): error loading configuration from local storage: "+b),
|
|
633
|
-
d._loaded=!0,d._notify()};this._storage.load(G.STORAGE_KEY,a)},this._parse=function(a){var b=this._jsonInterface.decode(a);if(null==b)return void(this._loadedEmpty=!0);var c=b[G.CONFIG_STORAGE_KEY_CLIENT_ID];
|
|
634
|
-
null!=c&&c!=z.DEFAULT_CLIENT_ID&&""!=c&&"null"!=c&&(this._config[G.CONFIG_KEY_CLIENT_ID]=c,this._logger.debug("parse(): loaded clientId="+c+" (from local storage)"))},this._marshall=function(){var a={};
|
|
635
|
-
return a[G.CONFIG_STORAGE_KEY_CLIENT_ID]=this._config.clientId,this._logger.debug("_marshall(): saving clientId="+this._config.clientId+" (to local storage)"),this._jsonInterface.encode(a)},this.save=function(){
|
|
636
|
-
var a=function(a,b){a?d._logger.debug("save(): configuration successfully saved to local storage."):d._logger.error("save(): error saving configuration to local storage: "+b)};this._storage.save(G.STORAGE_KEY,this._marshall(),a);
|
|
637
|
-
},this.register=function(a){return this.isReady()?void a():void this._waitingConsumers.push(a)},this.get=function(a){return this._loaded?this._config[a]:null},this.set=function(a,b){this._loaded&&(this._config[a]=b);
|
|
638
|
-
},this._notify=function(){for(var a;null!=(a=this._waitingConsumers.shift());)a()}};G.STORAGE_KEY="sdkConfig",G.CONFIG_STORAGE_KEY_CLIENT_ID="clId",G.CONFIG_KEY_CLIENT_ID="clientId",G.CONFIG_KEY_SEND_LOGS="sendLogs",
|
|
639
|
-
G.CONFIG_KEY_MAX_HEARTBEAT_INFOS="maxHbInfos",G.CONVIVAID_FP_PREFIX="c3.fp.",G.ConvivaIdErrorCodes={CONVIVAID_NA:"0",CONVIVAID_FETCH_ERROR:"1",CONVIVAID_USER_OPTOUT:"2",CONVIVAID_PRIVACY_RESTRICTION:"3",
|
|
640
|
-
CONVIVAID_SERVER_RESTRICTION:"4",CONVIVAID_USER_OPT_DELETE:"5",CONVIVAID_USER_NO_RESTRICTION:"6"};var H=b.EventQueue=function(){this._events=[],this._nextEventNumber=0,this.enqueue=function(a){this._events.push(a);
|
|
641
|
-
},this.getNumber=function(){var a=this._nextEventNumber;return this._nextEventNumber++,a},this.flush=function(){var a=this._events;return this._events=[],a}},I=b.ExceptionCatcher=function(a,b,c){this._logger=a,
|
|
642
|
-
this._logger.setModuleName("ExceptionCatcher"),this._ping=b,this._systemSettings=c,this.runProtected=function(a,b,c){try{b()}catch(d){if(null!=c)c(d);else{if(this._systemSettings.allowUncaughtExceptions)throw d;
|
|
643
|
-
this.onUncaughtException(a,d)}}},this.onUncaughtException=function(a,b){var c="Uncaught exception: "+a+": "+b.toString();if(null!=this._ping)try{this._ping.send(c)}catch(d){this._logger.error("Caught exception while sending ping: "+d.toString());
|
|
644
|
-
}this._logger.error(c)}},J=b.GatewayControl=function(a,b,c,d){var e=this;this._clientSettings=a,this._logger=b,this._logger.setModuleName("GatewayControl"),this._httpClient=c,this._jsonInterface=d,this.send=function(a,b){
|
|
645
|
-
var c=this._jsonInterface.encode(a),d=this._clientSettings.gatewayUrl+z.gatewayPath,f=function(a,c){if(a){var d=e._jsonInterface.decode(c);b(a,d)}else{var f=c;b(a,f)}};this._httpClient.request("POST",d,c,"application/json",f);
|
|
646
|
-
}},K=b.Lang={};K.isMeaningfulString=function(a){return K.isValidString(a)&&null!=a&&"undefined"!=a&&"null"!=a},K.sanitizeStringToStringObject=function(a){var b={};for(var c in a)if(K.isMeaningfulString(c)){
|
|
647
|
-
var d=a[c];K.isMeaningfulString(d)&&(b[c]=d)}return b},K.validateInterface=function(a,b,c){if(null==a)throw new Error("Expected "+c+" implementation is null.");for(var d in b)if("function"!=typeof a[d])throw new Error("Expected method "+d+" in "+c+" implementation.");
|
|
648
|
-
},K.dictCount=function(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c},K.ToString=function(a){return""+a},K.NumberToInt=function(a){return Math.floor(a)},K.NumberToUnsignedInt=function(a){return Math.abs(K.NumberToInt(a));
|
|
649
|
-
},K.AsBoolean=function(a){return Boolean(a)},K.isValidString=function(a){return"string"==typeof a&&""!==a},K.stringStartsWith=function(a,b){return"string"!=typeof a||"string"!=typeof b?!1:"function"==typeof a.indexOf?0===a.indexOf(b):!1;
|
|
650
|
-
},K.isBoolean=function(a){return"boolean"==typeof a},K.UrlEncodeString=function(a){return escape(a)},K.isObject=function(a){return"object"==typeof a},K.ObjectToString=function(a){var b="";for(var c in a){
|
|
651
|
-
var d=a[c],e=d;b+=c+"="+e}return"Object{"+b+"}"},K.ObjectShallowCopyOmitNull=function(a){var b=K.ObjectShallowCopy(a);for(var c in b)null==b[c]&&delete b[c];return b},K.ObjectShallowCopy=function(a){var b={};
|
|
652
|
-
for(var c in a)b[c]=a[c];return b},K.ObjectShallowEquals=function(a,b){if(typeof a!=typeof b)return!1;if(a instanceof Object&&b instanceof Object){if(K.dictCount(a)!==K.dictCount(b))return!1;var c=!0;for(var d in a)if(c=a[d]===b[d],
|
|
653
|
-
!c)return!1;return!0}return a===b},K.mergeObjects=function(){for(var a={},b=0;b<arguments.length;b++)for(var c in arguments[b])void 0!=arguments[b][c]&&null!=arguments[b][c]&&(a[c]=arguments[b][c]);return a;
|
|
654
|
-
},K.isInteger=function(a){if("number"!=typeof a)return!1;var b=Math.round(a);return b===a},K.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)},K.ArrayEquals=function(a,b){
|
|
655
|
-
if(a===b)return!0;if(null==a||null==b)return!1;if(a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(K.isArray(a[c])&&K.isArray(b[c])){if(!K.ArrayEquals(a[c],b[c]))return!1}else if(a[c]!==b[c])return!1;
|
|
656
|
-
return!0},K.isObjectDefinePropertyPresent=function(){return"undefined"!=typeof Object.defineProperty&&function(){try{return Object.defineProperty({},"x",{}),!0}catch(a){return!1}}()},K.defGet=function(a,b,c){
|
|
657
|
-
if(K.isObjectDefinePropertyPresent())Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:c});else{if("undefined"==typeof a.__defineGetter__)throw new Error("JavaScript runtime must support either Object.defineProperty or __defineGetter__");
|
|
658
|
-
a.__defineGetter__(b,c)}},K.defSet=function(a,b,c){if(K.isObjectDefinePropertyPresent())Object.defineProperty(a,b,{configurable:!0,set:c});else{if("undefined"==typeof a.__defineSetter__)throw new Error("JavaScript runtime must support either Object.defineProperty or __defineSetter__");
|
|
659
|
-
a.__defineSetter__(b,c)}},K.sha256=function W(a){function b(a,b){return a>>>b|a<<32-b}for(var c,d,e=Math.pow,f=e(2,32),g="length",h="",i=[],j=8*a[g],k=W.h=W.h||[],l=W.k=W.k||[],m=l[g],n={},o=2;64>m;o++)if(!n[o]){
|
|
660
|
-
for(c=0;313>c;c+=o)n[c]=o;k[m]=e(o,.5)*f|0,l[m++]=e(o,1/3)*f|0}for(a+="\x00";a[g]%64-56;)a+="\x00";for(c=0;c<a[g];c++){if(d=a.charCodeAt(c),d>>8)return;i[c>>2]|=d<<(3-c)%4*8}for(i[i[g]]=j/f|0,i[i[g]]=j,
|
|
661
|
-
d=0;d<i[g];){var p=i.slice(d,d+=16),q=k;for(k=k.slice(0,8),c=0;64>c;c++){var r=p[c-15],s=p[c-2],t=k[0],u=k[4],v=k[7]+(b(u,6)^b(u,11)^b(u,25))+(u&k[5]^~u&k[6])+l[c]+(p[c]=16>c?p[c]:p[c-16]+(b(r,7)^b(r,18)^r>>>3)+p[c-7]+(b(s,17)^b(s,19)^s>>>10)|0),w=(b(t,2)^b(t,13)^b(t,22))+(t&k[1]^t&k[2]^k[1]&k[2]);
|
|
662
|
-
k=[v+w|0].concat(k),k[4]=k[4]+v|0}for(c=0;8>c;c++)k[c]=k[c]+q[c]|0}for(c=0;8>c;c++)for(d=3;d+1;d--){var x=k[c]>>8*d&255;h+=(16>x?0:"")+x.toString(16)}return h},function(){var a={};a.two32=4294967296,a.MaxValue=a.two32-1,
|
|
663
|
-
a.MinValue=0,K.UInt32=a,K.UInt32.Cast=function(b){var c=parseInt(b,10);return c>a.MaxValue?c%=a.two32:c<a.MinValue&&(c=-c%a.two32,c=a.two32-c),c},K.UInt32.InRange=function(b){var c=parseInt(b,10);return c<=a.MaxValue&&c>=a.MinValue;
|
|
664
|
-
};var b={};b.MaxValue=2147483647,b.MinValue=-2147483648,K.Int32=b,K.Int32.Cast=function(a){var c=parseInt(a,10);return c>b.MaxValue?c%=b.MaxValue:c<b.MinValue&&(c=-c%b.MaxValue,c=b.MaxValue-c),c},K.Int32.InRange=function(a){
|
|
665
|
-
var c=parseInt(a,10);return c<=b.MaxValue&&c>=b.MinValue}}();var L=b.LogBuffer=function(){var a=32;this._buffer=[],this.add=function(b){this._buffer.length>=a&&this._buffer.shift(),this._buffer.push(b);
|
|
666
|
-
},this.flush=function(){var a=this._buffer;return this._buffer=[],a}},M=b.Ping=function(a,b,c){this._isSendingPing=!1,this._cachedBasePingUrl=null,this._logger=a,this._logger.setModuleName("Ping"),this._httpClient=b,
|
|
667
|
-
this._clientSettings=c,this.send=function(a){if(!this._isSendingPing){this._isSendingPing=!0;var b=this.getBasePingUrl()+"&d="+K.UrlEncodeString(a.toString());this._logger.error("send(): "+b),this._httpClient.request("GET",b,null,null,null),
|
|
668
|
-
this._isSendingPing=!1}},this.getBasePingUrl=function(){if(!this._cachedBasePingUrl){var a=M.SERVICE_URL+"?comp="+M.COMPONENT_NAME+"&clv="+d.version;if(this._clientSettings&&(a+="&cid="+this._clientSettings.customerKey),
|
|
669
|
-
a+="&sch="+z.SDK_METADATA_SCHEMA,!this._clientSettings)return a;this._cachedBasePingUrl=a}return this._cachedBasePingUrl}};M.COMPONENT_NAME="sdkjs",M.SERVICE_URL="https://pings.conviva.com/ping.ping";var N=b.Random={};
|
|
670
|
-
N.maxUInt32=4294967295,N.maxInt32=2147483647,N.minInt32=-2147483648,N.integer32=function(){return Math.floor(Math.random()*N.maxUInt32)+N.minInt32},N.uinteger32=function(){return Math.floor(Math.random()*N.maxUInt32);
|
|
671
|
-
};var O=b.Sanitize={};O.Integer=function(a,b,c,d){if(isNaN(a))return d;if("number"!=typeof a)return d;if(a==d)return d;var e=K.NumberToInt(a);return O.EnforceBoundaries(e,b,c)},O.EnforceBoundaries=function(a,b,c){
|
|
672
|
-
return null!=c&&a>c?a=c:null!=b&&b>a&&(a=b),a},O.sanitizeSpecialIntegerValue=function(a){return-1==a||-2==a?a:a=O.Integer(a,0,null,-1)};var P=b.StreamerError=function(){function a(a,c){b.errorCode=a,b.severity=c;
|
|
673
|
-
}var b=this;b.errorCode=null,b.severity=d.ErrorSeverity.FATAL,a.apply(b,arguments),this.getErrorCode=function(){return b.errorCode},this.getErrorSeverity=function(){return b.severity}},Q=b.HttpClient=function(a,b,c,d){
|
|
674
|
-
this._logger=a,this._logger.setModuleName("HttpClient"),this._httpInterface=b,this._callbackWithTimeout=c,this._systemSettings=d,this.request=function(a,b,c,d,e){var f=1e3*this._systemSettings.httpTimeout,g=null;
|
|
675
|
-
null!=e&&(g=this._callbackWithTimeout.getWrapperCallback(e,f,"HTTP timeout")),this._logger.debug("request(): calling HttpInterface.makeRequest"),this._httpInterface.makeRequest(a,b,c,d,f,g)}},R=b.Logger=function(a,b,c,d,e){
|
|
676
|
-
this._loggingInterface=a,this._timeInterface=b,this._settings=c,this._logBuffer=d,this._packageName=e,this.debug=function(a){this.log(a,h.LogLevel.DEBUG)},this.info=function(a){this.log(a,h.LogLevel.INFO);
|
|
677
|
-
},this.warning=function(a){this.log(a,h.LogLevel.WARNING)},this.error=function(a){this.log(a,h.LogLevel.ERROR)},this.log=function(a,b){var c=this.formatMessage(a,b);this._logBuffer.add(c),this._settings.logLevel<=b&&this._loggingInterface.consoleLog(c,b);
|
|
678
|
-
},this.prependModuleName=function(a){var b=a;return b="["+this._moduleName+"] "+b},this.prependPackageName=function(a){var b=a;return b="["+this._packageName+"] "+b},this.prependConvivaNamespace=function(a){
|
|
679
|
-
var b=a;return b="[Conviva] "+b},this.prependTime=function(a){var b=this._timeInterface.getEpochTimeMs(),c=(b/1e3).toFixed(3).toString();return"["+c+"] "+a},this.prependLogLevel=function(a,b){var c=R.getLogLevelString(b),d=a;
|
|
680
|
-
return d="["+c+"] "+d},this.prependSessionId=function(a){var b=a;return null!=this._sessionId&&(b="sid="+this._sessionId+" "+b),b},this.setSessionId=function(a){this._sessionId=a},this.setModuleName=function(a){
|
|
681
|
-
this._moduleName=a},this.formatMessage=function(a,b){return this.prependConvivaNamespace(this.prependTime(this.prependLogLevel(this.prependPackageName(this.prependModuleName(this.prependSessionId(a))),b)));
|
|
682
|
-
}};R.getLogLevelString=function(a){var b;switch(a){case h.LogLevel.ERROR:b="ERROR";break;case h.LogLevel.WARNING:b="WARNING";break;case h.LogLevel.INFO:b="INFO";break;case h.LogLevel.DEBUG:b="DEBUG"}return b;
|
|
683
|
-
};var S=b.Storage=function(a,b,c,d){this._logger=a,this._logger.setModuleName("Storage"),this._storageInterface=b,this._callbackWithTimeout=c,this._systemSettings=d,this.load=function(a,b){var c=this._callbackWithTimeout.getWrapperCallback(b,1e3*this._systemSettings.storageTimeout,"storage load timeout");
|
|
684
|
-
this._logger.debug("load(): calling StorageInterface.loadData"),this._storageInterface.loadData(S.STORAGE_SPACE,a,c)},this.save=function(a,b,c){var d=this._callbackWithTimeout.getWrapperCallback(c,1e3*this._systemSettings.storageTimeout,"storage save timeout");
|
|
685
|
-
this._logger.debug("save(): calling StorageInterface.saveData"),this._storageInterface.saveData(S.STORAGE_SPACE,a,b,d)}};S.STORAGE_SPACE="Conviva";var T=b.SystemMetadata=function(b,c,d){this._logger=b,
|
|
686
|
-
this._logger.setModuleName("SystemMetadata"),this._metadataInterface=c,this._exceptionCatcher=d,this._cachedMetadata=null,this.get=function(){return this._cachedMetadata||this.retrieve(),this._cachedMetadata;
|
|
687
|
-
},this.retrieve=function(){function b(a,b){d._exceptionCatcher.runProtected("Session.getSystemMetadataSchema(): "+a,function(){var c=b[a];b[a]=c.call(d._metadataInterface)})}var c={};c[T.BROWSER_NAME]=this._metadataInterface.getBrowserName,
|
|
688
|
-
c[T.BROWSER_VERSION]=this._metadataInterface.getBrowserVersion,c[T.DEVICE_BRAND]=this._metadataInterface.getDeviceBrand,c[T.DEVICE_MANUFACTURER]=this._metadataInterface.getDeviceManufacturer,c[T.DEVICE_MODEL]=this._metadataInterface.getDeviceModel,
|
|
689
|
-
c[T.DEVICE_TYPE]=this._metadataInterface.getDeviceType,c[T.DEVICE_VERSION]=this._metadataInterface.getDeviceVersion,c[T.FRAMEWORK_NAME]=this._metadataInterface.getFrameworkName,c[T.FRAMEWORK_VERSION]=this._metadataInterface.getFrameworkVersion,
|
|
690
|
-
c[T.OPERATING_SYSTEM_NAME]=this._metadataInterface.getOperatingSystemName,c[T.OPERATING_SYSTEM_VERSION]=this._metadataInterface.getOperatingSystemVersion,c[T.DEVICE_CATEGORY]=this._metadataInterface.getDeviceCategory;
|
|
691
|
-
var d=this;this._logger.debug("retrieve(): calling MetadataInterface methods");for(var e in c)b(e,c),K.isValidString(c[e])||delete c[e];var f=!1;if("undefined"!=typeof c[T.DEVICE_TYPE]){for(var g in a.Client.DeviceType)if(c[T.DEVICE_TYPE]===a.Client.DeviceType[g]){
|
|
692
|
-
f=!0;break}f||delete c[T.DEVICE_TYPE]}if(f=!1,"undefined"!=typeof c[T.DEVICE_CATEGORY]){for(var h in a.Client.DeviceCategory)if(c[T.DEVICE_CATEGORY]===a.Client.DeviceCategory[h]){f=!0;break}f||delete c[T.DEVICE_CATEGORY];
|
|
693
|
-
}this._cachedMetadata=K.ObjectShallowCopyOmitNull(c)}};T.BROWSER_NAME="browserName",T.BROWSER_VERSION="browserVersion",T.DEVICE_BRAND="deviceBrand",T.DEVICE_MANUFACTURER="deviceManufacturer",T.DEVICE_MODEL="deviceModel",
|
|
694
|
-
T.DEVICE_TYPE="deviceType",T.DEVICE_VERSION="deviceVersion",T.FRAMEWORK_NAME="frameworkName",T.FRAMEWORK_VERSION="frameworkVersion",T.OPERATING_SYSTEM_NAME="operatingSystemName",T.OPERATING_SYSTEM_VERSION="operatingSystemVersion",
|
|
695
|
-
T.DEVICE_CATEGORY="deviceCategory";var U=b.Time=function(a,b){this._timeInterface=a,this._logger=b,this._logger.setModuleName("Time"),this.current=function(){var a=this._timeInterface.getEpochTimeMs();return K.isInteger(a)||this._logger.error("current(): TimeInterface.getEpochTimeMs() did not return an integer ("+a+")"),
|
|
696
|
-
a}},V=b.Timer=function(a,b,c){var d=this;this._logger=a,this._logger.setModuleName("Timer"),this._timerInterface=b,this._exceptionCatcher=c,this.create=function(a,b,c){var e=function(){d._exceptionCatcher.runProtected(c,function(){
|
|
697
|
-
a()})},f=this.createTimer(e,b,c);return f},this.createOnce=function(a,b,c){var e={cancel:null},f=function(){d._exceptionCatcher.runProtected(c,function(){e&&"function"==typeof e.cancel&&(e.cancel(),e.cancel=null,
|
|
698
|
-
e=null),a()})},g=this.createTimer(f,b,c);return e.cancel=g,g},this.createTimer=function(a,b,c){return this._logger.debug("createTimer(): calling TimerInterface.create"),this._timerInterface.createTimer(a,b,c);
|
|
1
|
+
/*! (C) 2020 Conviva, Inc. All rights reserved. Confidential and proprietary. */
|
|
2
|
+
!function(a,b){if("function"==typeof define&&define.amd?define(b):"object"==typeof exports&&(module.exports=b()),"undefined"!=typeof a){if(void 0!==a.Conviva)return;if(a.ConvivaLoading)return;a.ConvivaLoading=!0,
|
|
3
|
+
a.Conviva=b(),delete a.ConvivaLoading}}(window,function(){var a={};return function(){"use strict";var b={};!function(){var c=a.Constants={};c.version="4.0.15",c.CUSTOMER_KEY="customerKey",c.GATEWAY_URL="gatewayUrl",
|
|
4
|
+
c.LOG_LEVEL="logLevel",c.ASSET_NAME="Conviva.assetName",c.PLAYER_NAME="Conviva.applicationName",c.IS_LIVE="Conviva.streamType",c.ENCODED_FRAMERATE="Conviva.encodedFrameRate",c.DEFAULT_RESOURCE="Conviva.defaultResource",
|
|
5
|
+
c.STREAM_URL="Conviva.streamUrl",c.VIEWER_ID="Conviva.viewerId",c.DURATION="Conviva.duration",c.POD_INDEX="podIndex",c.POD_POSITION="podPosition",c.POD_DURATION="podDuration",c.MODULE_NAME="Conviva.moduleName",
|
|
6
|
+
c.MODULE_VERSION="Conviva.moduleVersion",c.FRAMEWORK_NAME="Conviva.frameworkName",c.FRAMEWORK_VERSION="Conviva.frameworkVersion",c.CLIENT_CONFIGURATION_FAILED="Constants not yet configured",c.INVALID_PLAYER_MONITOR="Invalid : Did you report playback ended?",
|
|
7
|
+
c.INVALID_AD_PLAYER_MONITOR="Invalid : Did you report ad playback ended?",c.PLAYER_UNAVAILABLE_ERROR="Player cannot be null",c.PLAYBACK_ANALYTICS_AVAILABLE="PlaybackAnlytics already built",c.PLAYBACK_ANALYTICS_NOT_AVAILABLE="PlaybackAnlytics not yet built",
|
|
8
|
+
c.Playback={BITRATE:"BITRATE",PLAY_HEAD_TIME:"PLAY_HEAD_TIME",RESOLUTION:"RESOLUTION",BUFFER_LENGTH:"BUFFER_LENGTH",PLAYER_STATE:"PLAYER_STATE",RENDERED_FRAMERATE:"RENDERED_FRAMERATE",SEEK_STARTED:"SEEK_STARTED",
|
|
9
|
+
SEEK_ENDED:"SEEK_ENDED",CDN_IP:"CDN_IP"},c.Network={SIGNAL_STRENGTH:"SIGNAL_STRENGTH",LINK_ENCRYPTION:"LINK_ENCRYPTION",CONNECTION_TYPE:"CONNECTION_TYPE"},c.ErrorSeverity={FATAL:1,WARNING:0},c.NO_SESSION_KEY=-2,
|
|
10
|
+
c.AdPosition={PREROLL:"Pre-roll",MIDROLL:"Mid-roll",POSTROLL:"Post-roll"},c.AdPlayer={CONTENT:"CONTENT",SEPARATE:"SEPARATE"},c.DeviceType={DESKTOP:"DESKTOP",CONSOLE:"Console",SETTOP:"Settop",MOBILE:"Mobile",
|
|
11
|
+
TABLET:"Tablet",SMARTTV:"SmartTV"},c.AdType={CLIENT_SIDE:"Client Side",SERVER_SIDE:"Server Side"},c.AdSlates={BLACKOUT_SLATE:"Blackout slate",TECHNICAL_DIFFICULTIES_SLATE:"Technical Difficulties slate",
|
|
12
|
+
COMMERCIAL_SLATE:"Commercial Break slate",OTHER_SLATE:"Other slate",VPAID:"VPAID",REGULAR:"Regular Ad"},c.AdServingType={INLINE:"Inline",WRAPPER:"Wrapper"},c.DeviceCategory={ANDROID_DEVICE:"AND",APPLE_DEVICE:"APL",
|
|
13
|
+
CHROMECAST:"CHR",DESKTOP_APP:"DSKAPP",DEVICE_SIMULATOR:"SIMULATOR",LG_TV:"LGTV",NINTENDO:"NINTENDO",PLAYSTATION:"PS",ROKU:"RK",SAMSUNG_TV:"SAMSUNGTV",SMART_TV:"TV",SET_TOP_BOX:"STB",TIVO:"TIVO",WEB:"WEB",
|
|
14
|
+
WINDOWS_DEVICE:"WIN",XBOX:"XB",KAIOS_DEVICE:"KAIOS"},c.LogLevel={DEBUG:0,INFO:1,WARNING:2,ERROR:3,NONE:4},c.PlayerState={STOPPED:"STOPPED",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED",UNKNOWN:"UNKNOWN",
|
|
15
|
+
NOT_MONITORED:"NOT_MONITORED"},c.Events={USER_WAIT_STARTED:"Conviva.UserWaitStarted",USER_WAIT_ENDED:"Conviva.UserWaitEnded",BUMPER_VIDEO_STARTED:"Conviva.BumperVideoStarted",BUMPER_VIDEO_ENDED:"Conviva.BumperVideoEnded",
|
|
16
|
+
AD_REQUESTED:"Conviva.AdRequested",AD_RESPONSE:"Conviva.AdResponse",AD_SLOT_STARTED:"Conviva.SlotStarted",AD_ATTEMPTED:"Conviva.AdAttempted",AD_SLOT_ENDED:"Conviva.SlotEnded",AD_IMPRESSION_START:"Conviva.AdImpression",
|
|
17
|
+
AD_START:"Conviva.AdStart",AD_FIRST_QUARTILE:"Conviva.AdFirstQuartile",AD_MID_QUARTILE:"Conviva.AdMidQuartile",AD_THIRD_QUARTILE:"Conviva.AdThirdQuartile",AD_COMPLETE:"Conviva.AdComplete",AD_END:"Conviva.AdEnd",
|
|
18
|
+
AD_IMPRESSION_END:"Conviva.AdImpressionEnd",AD_SKIPPED:"Conviva.AdSkipped",AD_ERROR:"Conviva.AdError",AD_PROGRESS:"Conviva.AdProgress",AD_CLOSE:"Conviva.AdClose",CONTENT_PAUSED:"Conviva.PauseContent",CONTENT_RESUMED:"Conviva.ResumeContent",
|
|
19
|
+
POD_START:"Conviva.PodStart",POD_END:"Conviva.PodEnd"},c.ErrorType={ERROR_UNKNOWN:"ERROR_UNKNOWN",ERROR_IO:"ERROR_IO",ERROR_TIMEOUT:"ERROR_TIMEOUT",ERROR_NULL_ASSET:"ERROR_NULL_ASSET",ERROR_MISSING_PARAMETER:"ERROR_MISSING_PARAMETER",
|
|
20
|
+
ERROR_NO_AD_AVAILABLE:"ERROR_NO_AD_AVAILABLE",ERROR_PARSE:"ERROR_PARSE",ERROR_INVALID_VALUE:"ERROR_INVALID_VALUE",ERROR_INVALID_SLOT:"ERROR_INVALID_SLOT",ERROR_3P_COMPONENT:"ERROR_3P_COMPONENT",ERROR_UNSUPPORTED_3P_FEATURE:"ERROR_UNSUPPORTED_3P_FEATURE",
|
|
21
|
+
ERROR_DEVICE_LIMIT:"ERROR_DEVICE_LIMIT",ERROR_UNMATCHED_SLOT_SIZE:"ERROR_UNMATCHED_SLOT_SIZE"},c.StreamType={UNKNOWN:"UNKNOWN",LIVE:"LIVE",VOD:"VOD"},c.CallbackFunctions={CONSOLE_LOG:"consoleLog",MAKE_REQUEST:"makeRequest",
|
|
22
|
+
SAVE_DATA:"saveData",LOAD_DATA:"loadData",GET_EPOCH_TIME_IN_MS:"getEpochTimeInMs",CREATE_TIMER:"createTimer"},c.DeviceMetadata={BRAND:"DeviceBrand",MANUFACTURER:"DeviceManufacturer",MODEL:"DeviceModel",
|
|
23
|
+
TYPE:"DeviceType",VERSION:"DeviceVersion",OS_NAME:"OperatingSystemName",OS_VERSION:"OperatingSystemVersion",CATEGORY:"DeviceCategory"},c.AD_PRELOAD_FEATURE="adPreloading",c.AD_TAG_URL="adTagUrl",c.IMASDK_CONTENT_PLAYER="imaMainContentPlayer",
|
|
24
|
+
c.CONVIVA_AD_MODULE="convivaAdModule",c.CONVIVA_MODULE="convivaModule",c.MEDIA_ELEMENT="mediaElement";var d=a.Client=function(b,c){function h(a,b){if(!(a instanceof e))throw new Error("clientSettings parameter should be an instance of ClientSettings.");
|
|
25
|
+
if(!(b instanceof g))throw new Error("systemFactory parameter should be an instance of SystemFactory.");(a.gatewayUrl==e._httpsProtocol+e.defaultProductionGatewayDNS||a.gatewayUrl==e._httpProtocol+e.defaultProductionGatewayDNS)&&(this.defaultGatewayURLError=!0),
|
|
26
|
+
this._settings=a.clone(),this._systemFactory=b,this._systemFactory.configure("SDK",this._settings),this._exceptionCatcher=this._systemFactory.buildExceptionCatcher(),this._exceptionCatcher.runProtected("Client.init",function(){
|
|
27
|
+
j._id=N.uinteger32(),j._logger=j._systemFactory.buildLogger(),j._logger.setModuleName("Client"),j.defaultGatewayURLError&&j._logger.info("Gateway URL should not be set to https://cws.conviva.com or http://cws.conviva.com, therefore this call is ignored"),
|
|
28
|
+
j._logger.info("init(): url="+j._settings.gatewayUrl+" customerKey="+j._settings.customerKey),j._config=j._systemFactory.buildConfig(),j._config.load(),j._sessionFactory=j._systemFactory.buildSessionFactory(j,j._settings,j._config),
|
|
29
|
+
j._logger.info("init(): done.")},function(a){throw new Error("Client constructor failed: "+a.message)})}var j=this;this.defaultGatewayURLError=!1,this.version=d.version,this._logger=null,this._sessionFactory=null,
|
|
30
|
+
this._systemFactory=null,this._globalSessionKey=-1,this._settings=null,this._systemSettings=null,this._exceptionCatcher=null,this._config=null,this._id=-1,this._released=!1,this._uniqueIdentifiers={},this._uniqueIdentifierCallback=function(a){
|
|
31
|
+
j._logger.info(" Client:: uniqueIdentifierCallback(): "+a)},this._userPrefForData={},h.apply(this,arguments),this.release=function(){this._released||this._exceptionCatcher.runProtected("Client.release",function(){
|
|
32
|
+
j._logger.info("release()"),j._sessionFactory.cleanup(),j._sessionFactory=null,j._globalSessionKey=-1,j._logger=null,j._id=-1,j._exceptionCatcher=null,j._settings=null,j._systemSettings=null,j._systemFactory=null,
|
|
33
|
+
j._released=!0})},this.createSession=function(a,b){var c=d.NO_SESSION_KEY;return this._released?c:null==a||a instanceof f?(this._exceptionCatcher.runProtected("Client.createSession",function(){c=j._sessionFactory.makeVideoSession(a,C.SESSION_TYPE.VIDEO,b);
|
|
34
|
+
}),c):(j._logger.error("createSession(): expecting an instance of ContentMetadata for contentMetadata parameter"),c)},this.createAdSession=function(a,b,c){var e=d.NO_SESSION_KEY;return this._released?e:null==b||b instanceof f?(this._exceptionCatcher.runProtected("Client.createAdSession",function(){
|
|
35
|
+
if(null==b&&(b=new f),K.isInteger(a)&&a!=d.NO_SESSION_KEY){var g=j._sessionFactory.getVideoSession(a);(null==b.applicationName||null==b.viewerId)&&null!=g&&null!=g._cwsSession&&null!=g._cwsSession._contentMetadata&&(null==b.viewerId&&null!=g._cwsSession._contentMetadata.viewerId&&(b.viewerId=g._cwsSession._contentMetadata.viewerId),
|
|
36
|
+
null==b.applicationName&&null!=g._cwsSession._contentMetadata.applicationName&&(b.applicationName=g._cwsSession._contentMetadata.applicationName)),b.custom["c3.csid"]=K.ToString(g._id)}e=j._sessionFactory.makeVideoSession(b,C.SESSION_TYPE.AD,c);
|
|
37
|
+
}),e):(j._logger.error("createAdSession(): expecting an instance of ContentMetadata for adMetadata parameter"),e)},this.reportError=function(b,c,d){return this._released?void 0:K.isValidString(c)?d!==a.Client.ErrorSeverity.FATAL&&d!==a.Client.ErrorSeverity.WARNING?void this._logger.error("reportError(): invalid error severity: "+d):void this._exceptionCatcher.runProtected("Client.reportError",function(){
|
|
38
|
+
var a=j._sessionFactory.getVideoSession(b);null!=a&&a.reportError(c,d)}):void this._logger.error("reportError(): invalid error message string: "+c)},this.updateContentMetadata=function(a,b){return this._released?void 0:b instanceof f?void this._exceptionCatcher.runProtected("Client.updateContentMetadata",function(){
|
|
39
|
+
var c=j._sessionFactory.getVideoSession(a);if(null!=c){var d=b.clone();c.updateContentMetadata(d)}}):void j._logger.error("updateContentMetadata(): expecting an instance of ContentMetadata for contentMetadata parameter");
|
|
40
|
+
},this.detachPlayer=function(a){this._released||this._exceptionCatcher.runProtected("Client.detachPlayer",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.detachPlayer()})},this.offFocus=function(a){
|
|
41
|
+
this._released||this._exceptionCatcher.runProtected("Client.offFocus",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.offFocus()})},this.attachPlayer=function(a,b){return this._released?void 0:b instanceof i?void this._exceptionCatcher.runProtected("Client.attachPlayer",function(){
|
|
42
|
+
var c=j._sessionFactory.getVideoSession(a);null!=c&&c.attachPlayer(b)}):void j._logger.error("attachPlayer(): expecting an instance of PlayerStateManager for playerStateManager parameter")},this.onFocus=function(a){
|
|
43
|
+
this._released||this._exceptionCatcher.runProtected("Client.onFocus",function(){var b=j._sessionFactory.getVideoSession(a);null!=b&&b.onFocus()})},this.contentPreload=function(a){this._released||this._exceptionCatcher.runProtected("Client.contentPreload",function(){
|
|
44
|
+
var b=j._sessionFactory.getVideoSession(a);null!=b&&b.contentPreload()})},this.contentStart=function(a){this._released||this._exceptionCatcher.runProtected("Client.contentStart",function(){var b=j._sessionFactory.getVideoSession(a);
|
|
45
|
+
null!=b&&b.contentStart()})},this.sendCustomEvent=function(a,b,c){if(!this._released){if(!K.isValidString(b))return void j._logger.error("sendCustomEvent(): eventName parameter must be a valid string.");
|
|
46
|
+
K.dictCount(c)<=0&&j._logger.warning("eventAttributes(): should have proper data."),this._exceptionCatcher.runProtected("Client.sendCustomEvent",function(){if(a==d.NO_SESSION_KEY){if(j._globalSessionKey<0){
|
|
47
|
+
var e=new f;j._globalSessionKey=j._sessionFactory.makeGlobalSession(e,null)}a=j._globalSessionKey}var g=K.sanitizeStringToStringObject(c),h=j._sessionFactory.getSession(a);null!=h&&h.sendCustomEvent(b,g);
|
|
48
|
+
})}},this.adStart=function(a,b,c,e){if(!this._released){if(b!==d.AdStream.CONTENT&&b!==d.AdStream.SEPARATE)return void this._logger.error("adStart(): ignored, invalid value for adStream parameter: "+b);
|
|
49
|
+
if(c!==d.AdPlayer.CONTENT&&c!==d.AdPlayer.SEPARATE)return void this._logger.error("adStart(): ignored, invalid value for adPlayer parameter: "+c);e!==d.AdPosition.PREROLL&&e!==d.AdPosition.MIDROLL&&e!==d.AdPosition.POSTROLL&&this._logger.info("adStart(): ignored, invalid value for adPosition parameter: "+e),
|
|
50
|
+
this._exceptionCatcher.runProtected("Client.adStart",function(){var d=j._sessionFactory.getVideoSession(a);null!=d&&d.adStart(b,c,e)})}},this.adEnd=function(a){this._released||this._exceptionCatcher.runProtected("Client.adEnd",function(){
|
|
51
|
+
var b=j._sessionFactory.getVideoSession(a);null!=b&&b.adEnd()})},this.cleanupSession=function(a){return this._released?void 0:a===d.NO_SESSION_KEY?void this._logger.warning("cleanupSession(): ignored, can't cleanup Client.NO_SESSION_KEY"):void this._exceptionCatcher.runProtected("Client.cleanupSession",function(){
|
|
52
|
+
var b=j._sessionFactory.getVideoSession(a);null!=b&&j._sessionFactory.cleanupSession(a)})},this.getAttachedPlayer=function(a){var b=null;return this._released?b:a===d.NO_SESSION_KEY?(this._logger.warning("getAttachedPlayer(): ignored for Client.NO_SESSION_KEY"),
|
|
53
|
+
b):(this._exceptionCatcher.runProtected("Client.getAttachedPlayer",function(){var c=j._sessionFactory.getVideoSession(a);null!=c&&(b=c.getPlayerStateManager())}),b)},this.isPlayerAttached=function(a){return this._released?!1:null!==this.getAttachedPlayer(a)?!0:!1;
|
|
54
|
+
},this.getPlayerStateManager=function(){if(this._released)throw new Error("This instance of Conviva.Client has been released.");return new i(this._systemFactory)},this.releasePlayerStateManager=function(a){
|
|
55
|
+
if(this._released)throw new Error("This instance of Conviva.Client has been released.");this._exceptionCatcher.runProtected("Client.releasePlayerStateManager",function(){a instanceof i&&a.release()})},
|
|
56
|
+
this.getSettings=function(){return this._settings},this.getId=function(){return this._id},this.getSessionId=function(a){if(!this._released){var b=null;return this._exceptionCatcher.runProtected("Client.getSessionId",function(){
|
|
57
|
+
var c=j._sessionFactory.getVideoSession(a);b=c.getSessionId()}),b}},this.getClientId=function(a){if(!this._released){var b=null;return this._exceptionCatcher.runProtected("Client.getClientId",function(){
|
|
58
|
+
var c=j._sessionFactory.getVideoSession(a);b=c.getClientId()}),b}},this.updateCustomMetric=function(a,b,c){this._released||this._exceptionCatcher.runProtected("Client.updateCustomMetric",function(){var d=j._sessionFactory.getVideoSession(a);
|
|
59
|
+
d.updateCustomMetric(b,c)})},this.setUniqueIdentifier=function(a,b){if(this._released)throw new Error("This instance of Conviva.Client has been released.");if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");
|
|
60
|
+
for(var c in a)this._uniqueIdentifiers[c]=a[c];b&&(this._uniqueIdentifierCallback=b)},this.setUserPreferenceForDataCollection=function(a,b){if(this._released)throw new Error("This instance of Conviva.Client has been released.");
|
|
61
|
+
if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");for(var c in a)"false"==a[c]?b?this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION:this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT:this._userPrefForData[c]=G.ConvivaIdErrorCodes.CONVIVAID_USER_NO_RESTRICTION;
|
|
62
|
+
},this.setUserPreferenceForDataDeletion=function(a){if(this._released)throw new Error("This instance of Conviva.Client has been released.");if(null==a||"undefined"==typeof a||"{}"==JSON.stringify(a))throw new Error("Identifiers are not set. No action taken !!");
|
|
63
|
+
for(var b in a)"true"==a[b]?this._userPrefForData[b]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE:this._userPrefForData[b]=G.ConvivaIdErrorCodes.CONVIVAID_USER_NO_RESTRICTION}};d.version="2.151.0.37032",
|
|
64
|
+
d.NO_SESSION_KEY=c.NO_SESSION_KEY,d.AdPosition={PREROLL:c.AdPosition.PREROLL,MIDROLL:c.AdPosition.MIDROLL,POSTROLL:c.AdPosition.POSTROLL},d.AdStream={CONTENT:"CONTENT",SEPARATE:"SEPARATE"},d.AdPlayer={
|
|
65
|
+
CONTENT:c.AdPlayer.CONTENT,SEPARATE:c.AdPlayer.SEPARATE},d.ErrorSeverity={FATAL:c.ErrorSeverity.FATAL,WARNING:c.ErrorSeverity.WARNING},d.DeviceType={DESKTOP:c.DeviceType.DESKTOP,CONSOLE:c.DeviceType.CONSOLE,
|
|
66
|
+
SETTOP:c.DeviceType.SETTOP,MOBILE:c.DeviceType.MOBILE,TABLET:c.DeviceType.TABLET,SMARTTV:c.DeviceType.SMARTTV},d.AdTechnology={CLIENT_SIDE:"Client Side",SERVER_SIDE:"Server Side"},d.AdType={BLACKOUT_SLATE:"Blackout slate",
|
|
67
|
+
TECHNICAL_DIFFICULTIES_SLATE:"Technical Difficulties slate",COMMERCIAL_SLATE:"Commercial Break slate",OTHER_SLATE:"Other slate",VPAID:"VPAID",REGULAR:"Regular Ad"},d.AdServingType={INLINE:"Inline",WRAPPER:"Wrapper"
|
|
68
|
+
},d.DeviceCategory={ANDROID_DEVICE:c.DeviceCategory.ANDROID_DEVICE,APPLE_DEVICE:c.DeviceCategory.APPLE_DEVICE,CHROMECAST:c.DeviceCategory.CHROMECAST,DESKTOP_APP:c.DeviceCategory.DESKTOP_APP,DEVICE_SIMULATOR:c.DeviceCategory.DEVICE_SIMULATOR,
|
|
69
|
+
LG_TV:c.DeviceCategory.LG_TV,NINTENDO:c.DeviceCategory.NINTENDO,PLAYSTATION:c.DeviceCategory.PLAYSTATION,ROKU:c.DeviceCategory.ROKU,SAMSUNG_TV:c.DeviceCategory.SAMSUNG_TV,SMART_TV:c.DeviceCategory.SMART_TV,
|
|
70
|
+
SET_TOP_BOX:c.DeviceCategory.SET_TOP_BOX,TIVO:c.DeviceCategory.TIVO,WEB:c.DeviceCategory.WEB,WINDOWS_DEVICE:c.DeviceCategory.WINDOWS_DEVICE,XBOX:c.DeviceCategory.XBOX,KAIOS_DEVICE:c.DeviceCategory.KAIOS_DEVICE
|
|
71
|
+
};var e=a.ClientSettings=function(a){function b(a){if(!K.isValidString(a))throw new Error("customerKey must be valid");this.customerKey=a}function c(a){if(K.isValidString(a)){var b=a.split("://");if("cws.conviva.com"!=b[1]&&("https"==b[0]||"http"==b[0]))return a;
|
|
72
|
+
}return"https://"+d.customerKey+"."+e.defaultProductionGatewayDNS}var d=this;this._customerKey=null,K.defGet(this,"customerKey",function(){return this._customerKey}),K.defSet(this,"customerKey",function(a){
|
|
73
|
+
K.isValidString(a)&&(this._customerKey=a)}),this._heartbeatInterval=e.defaultProductionHeartbeatInterval,K.defGet(this,"heartbeatInterval",function(){return this._heartbeatInterval}),K.defSet(this,"heartbeatInterval",function(a){
|
|
74
|
+
if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._heartbeatInterval=b)}}),this._gatewayUrl=null,K.defGet(this,"gatewayUrl",function(){return this._gatewayUrl}),K.defSet(this,"gatewayUrl",function(a){
|
|
75
|
+
if(K.isValidString(a)){var b=a.split("://"),c="https"==b[0]||"http"==b[0]?!0:!1;if(c){var d=".com",e=-1!==a.indexOf(d,a.length-d.length);e&&(this._gatewayUrl=a)}}}),b.apply(this,arguments),this.equals=function(a){
|
|
76
|
+
return this.customerKey===a.customerKey&&this.gatewayUrl===a.gatewayUrl&&this.heartbeatInterval===a.heartbeatInterval},this.clone=function(){var a=new e(this.customerKey);return a.gatewayUrl=c(this.gatewayUrl),
|
|
77
|
+
a.heartbeatInterval=this.heartbeatInterval,a}};e.defaultDevelopmentGatewayUrl="https://conviva.testonly.conviva.com",e.defaultProductionGatewayUrl="https://cws.conviva.com",e.defaultProductionGatewayDNS="cws.conviva.com",
|
|
78
|
+
e.defaultDevelopmentGatewayDNS="conviva.testonly.conviva.com",e._httpsProtocol="https://",e._httpProtocol="http://",e.defaultDevelopmentHeartbeatInterval=5,e.defaultProductionHeartbeatInterval=20;var f=a.ContentMetadata=function(){
|
|
79
|
+
function a(){return this._assetName}function b(a){"string"==typeof a&&(this._assetName=a)}function c(){return this._custom}function d(a){"object"==typeof a&&(this._custom=K.sanitizeStringToStringObject(a));
|
|
80
|
+
}function e(){return this._defaultResource}function g(a){"string"==typeof a&&(this._defaultResource=a)}function h(){return this._viewerId}function i(a){"string"==typeof a&&(this._viewerId=a)}function j(){
|
|
81
|
+
return this._applicationName}function k(a){"string"==typeof a&&(this._applicationName=a)}function l(){return this._streamUrl}function m(a){"string"==typeof a&&(this._streamUrl=a)}function n(){return this._streamType;
|
|
82
|
+
}function o(a){(a===f.StreamType.UNKNOWN||a===f.StreamType.VOD||a===f.StreamType.LIVE)&&(this._streamType=a)}function p(){return this._duration}function q(a){this._duration=O.sanitizeSpecialIntegerValue(a);
|
|
83
|
+
}function r(){return this._encodedFrameRate}function s(a){this._encodedFrameRate=O.sanitizeSpecialIntegerValue(a)}function t(){}this._assetName=null,K.defGet(this,"assetName",a),K.defSet(this,"assetName",b),
|
|
84
|
+
this._custom={},K.defGet(this,"custom",c),K.defSet(this,"custom",d),this._defaultResource=null,K.defGet(this,"defaultResource",e),K.defSet(this,"defaultResource",g),this._viewerId=null,K.defGet(this,"viewerId",h),
|
|
85
|
+
K.defSet(this,"viewerId",i),this._applicationName=null,K.defGet(this,"applicationName",j),K.defSet(this,"applicationName",k),this._streamUrl=null,K.defGet(this,"streamUrl",l),K.defSet(this,"streamUrl",m),
|
|
86
|
+
this._streamType=f.StreamType.UNKNOWN,K.defGet(this,"streamType",n),K.defSet(this,"streamType",o),this._duration=-1,K.defGet(this,"duration",p),K.defSet(this,"duration",q),this._encodedFrameRate=-1,K.defGet(this,"encodedFrameRate",r),
|
|
87
|
+
K.defSet(this,"encodedFrameRate",s),t.apply(this,arguments),this.clone=function(){var a=new f;a.assetName=this.assetName,a.applicationName=this.applicationName,a.streamUrl=this.streamUrl,a.viewerId=this.viewerId,
|
|
88
|
+
a.defaultResource=this.defaultResource,a.streamType=this.streamType,a.duration=this.duration,a.encodedFrameRate=this.encodedFrameRate;for(var b in this.custom)a.custom[b]=this.custom[b];return a}};f.StreamType={
|
|
89
|
+
UNKNOWN:c.StreamType.UNKNOWN,LIVE:c.StreamType.LIVE,VOD:c.StreamType.VOD};var g=(a.ErrorType={ERROR_UNKNOWN:c.ErrorType.ERROR_UNKNOWN,ERROR_IO:c.ErrorType.ERROR_IO,ERROR_TIMEOUT:c.ErrorType.ERROR_TIMEOUT,
|
|
90
|
+
ERROR_NULL_ASSET:c.ErrorType.ERROR_NULL_ASSET,ERROR_MISSING_PARAMETER:c.ErrorType.ERROR_MISSING_PARAMETER,ERROR_NO_AD_AVAILABLE:c.ErrorType.ERROR_NO_AD_AVAILABLE,ERROR_PARSE:c.ErrorType.ERROR_PARSE,ERROR_INVALID_VALUE:c.ErrorType.ERROR_INVALID_VALUE,
|
|
91
|
+
ERROR_INVALID_SLOT:c.ErrorType.ERROR_INVALID_SLOT,ERROR_3P_COMPONENT:c.ErrorType.ERROR_3P_COMPONENT,ERROR_UNSUPPORTED_3P_FEATURE:c.ErrorType.ERROR_UNSUPPORTED_3P_FEATURE,ERROR_DEVICE_LIMIT:c.ErrorType.ERROR_DEVICE_LIMIT,
|
|
92
|
+
ERROR_UNMATCHED_SLOT_SIZE:c.ErrorType.ERROR_UNMATCHED_SLOT_SIZE},a.Events={AD_REQUESTED:c.Events.AD_REQUESTED,AD_RESPONSE:c.Events.AD_RESPONSE,AD_SLOT_STARTED:c.Events.AD_SLOT_STARTED,AD_ATTEMPTED:c.Events.AD_ATTEMPTED,
|
|
93
|
+
AD_SLOT_ENDED:c.Events.AD_SLOT_ENDED,AD_IMPRESSION_START:c.Events.AD_IMPRESSION_START,AD_START:c.Events.AD_START,AD_FIRST_QUARTILE:c.Events.AD_FIRST_QUARTILE,AD_MID_QUARTILE:c.Events.AD_MID_QUARTILE,AD_THIRD_QUARTILE:c.Events.AD_THIRD_QUARTILE,
|
|
94
|
+
AD_COMPLETE:c.Events.AD_COMPLETE,AD_END:c.Events.AD_END,AD_IMPRESSION_END:c.Events.AD_IMPRESSION_END,AD_SKIPPED:c.Events.AD_SKIPPED,AD_ERROR:c.Events.AD_ERROR,AD_PROGRESS:c.Events.AD_PROGRESS,AD_CLOSE:c.Events.AD_CLOSE,
|
|
95
|
+
CONTENT_PAUSED:c.Events.CONTENT_PAUSED,CONTENT_RESUMED:c.Events.CONTENT_RESUMED,POD_START:c.Events.POD_START,POD_END:c.Events.POD_END},a.SystemFactory=function(a,b){function c(a,b){if(!(a instanceof n))throw new Error("systemInterface parameter should be an instance of SystemInterface.");
|
|
96
|
+
this._systemInterface=a,this._timeInterface=this._systemInterface._timeInterface,this._timerInterface=this._systemInterface._timerInterface,this._httpInterface=this._systemInterface._httpInterface,this._storageInterface=this._systemInterface._storageInterface,
|
|
97
|
+
this._metadataInterface=this._systemInterface._metadataInterface,this._loggingInterface=this._systemInterface._loggingInterface,b instanceof h?this._settings=b.clone():this._settings=new h}var d=this;c.apply(this,arguments),
|
|
98
|
+
this.configure=function(a,b){this._packageName=a,this._clientSettings=b},this.release=function(){this._systemInterface.release(),this._systemInterface=null,this._packageName=null,this._settings=null,this._logBuffer=null;
|
|
99
|
+
};var e={build:function(){return new R(d._loggingInterface,d._timeInterface,d.getSettings(),d._logBuffer,d._packageName)}};this.buildLogger=function(){return e.build()},this.buildSessionFactory=function(a,b,c){
|
|
100
|
+
return new E(a,b,c,this)},this.buildPing=function(){return new M(this.buildLogger(),this.buildHttpClient(),this._clientSettings)},this.buildCallbackWithTimeout=function(){return new F(this.buildTimer());
|
|
101
|
+
},this.buildCallbackWithTimeoutNoPing=function(){var a=null,b=new I(this.buildLogger(),a,this.getSettings()),c=new V(this.buildLogger(),this._timerInterface,b);return new F(c)},this.buildHttpClient=function(){
|
|
102
|
+
return new Q(this.buildLogger(),this._httpInterface,this.buildCallbackWithTimeoutNoPing(),this.getSettings())},this.buildExceptionCatcher=function(){return new I(this.buildLogger(),this.buildPing(),this.getSettings());
|
|
103
|
+
},this.buildTime=function(){return new U(this._timeInterface,this.buildLogger())},this.buildTimer=function(){return new V(this.buildLogger(),this._timerInterface,this.buildExceptionCatcher())},this.buildStorage=function(){
|
|
104
|
+
return new S(this.buildLogger(),this._storageInterface,this.buildCallbackWithTimeout(),this.getSettings())},this.buildConfig=function(){return new G(this.buildLogger(),this.buildStorage(),this.buildJsonInterface());
|
|
105
|
+
},this.buildSystemMetadata=function(){return new T(this.buildLogger(),this._metadataInterface,this.buildExceptionCatcher())},this.buildCwsProtocol=function(){return new z},this.buildGatewayControl=function(a){
|
|
106
|
+
return new J(a,this.buildLogger(),this.buildHttpClient(),this.buildJsonInterface())},this.buildCwsSession=function(a,b,c,d){var e=this.buildGatewayControl(b);return new C(this.buildEventQueue(),a,b,this.buildLogger(),this.buildExceptionCatcher(),this.buildTimer(),e,this.buildCwsProtocol(),this.buildTime(),this.getLogBuffer(),c,d);
|
|
107
|
+
},this.buildSession=function(a,b,c,d,e,f){var g=this.buildExceptionCatcher(),h=this.buildLogger(),i=b.clone(),j=this.buildCwsSession(a,i,c,f);return new D(d,e,c,this.buildSystemMetadata(),j,g,h)},this.buildEventQueue=function(){
|
|
108
|
+
return new H},this.buildJsonInterface=function(){return new A},this.getLogBuffer=function(){return this._logBuffer},this.getSettings=function(){return this._settings},this._logBuffer=new L}),h=a.SystemSettings=function(){
|
|
109
|
+
function a(){}this._logLevel=h.defaultProductionLogLevel,K.defGet(this,"logLevel",function(){return this._logLevel}),K.defSet(this,"logLevel",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);
|
|
110
|
+
b===a&&b>=h.LogLevel.DEBUG&&b<=h.LogLevel.ERROR&&(this._logLevel=b)}}),this._allowUncaughtExceptions=h.defaultProductionAllowUncaughtExceptions,K.defGet(this,"allowUncaughtExceptions",function(){return this._allowUncaughtExceptions;
|
|
111
|
+
}),K.defSet(this,"allowUncaughtExceptions",function(a){K.isBoolean(a)&&(this._allowUncaughtExceptions=a)}),this._storageTimeout=h.defaultStorageTimeout,K.defGet(this,"storageTimeout",function(){return this._storageTimeout;
|
|
112
|
+
}),K.defSet(this,"storageTimeout",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._storageTimeout=b)}}),this._httpTimeout=h.defaultHttpTimeout,K.defGet(this,"httpTimeout",function(){
|
|
113
|
+
return this._httpTimeout}),K.defSet(this,"httpTimeout",function(a){if("number"==typeof a){var b=K.NumberToUnsignedInt(a);b===a&&(this._httpTimeout=b)}}),a.apply(this,arguments),this.equals=function(a){
|
|
114
|
+
return this.logLevel===a.logLevel&&this.allowUncaughtExceptions===a.allowUncaughtExceptions&&this.storageTimeout===a.storageTimeout&&this.httpTimeout===a.httpTimeout},this.clone=function(){var a=new h;return a.logLevel=this.logLevel,
|
|
115
|
+
a.allowUncaughtExceptions=this.allowUncaughtExceptions,a.storageTimeout=this.storageTimeout,a.httpTimeout=this.httpTimeout,a}};h.LogLevel={DEBUG:c.LogLevel.DEBUG,INFO:c.LogLevel.INFO,WARNING:c.LogLevel.WARNING,
|
|
116
|
+
ERROR:c.LogLevel.ERROR,NONE:c.LogLevel.NONE},h.defaultDevelopmentLogLevel=h.LogLevel.DEBUG,h.defaultProductionLogLevel=h.LogLevel.NONE,h.defaultDevelopmentAllowUncaughtExceptions=!0,h.defaultProductionAllowUncaughtExceptions=!1,
|
|
117
|
+
h.defaultStorageTimeout=10,h.defaultHttpTimeout=10;var i=a.PlayerStateManager=function(c){function d(a){e._systemFactory=a,e._logger=e._systemFactory.buildLogger(),e._logger.setModuleName("PlayerStateManager"),
|
|
118
|
+
e._exceptionCatcher=e._systemFactory.buildExceptionCatcher()}var e=this;e._monitorNotifier=null,e._bitrateKbps=-2,e._playerState=i.PlayerState.UNKNOWN,e._currentMetadata={},e._renderedFrameRate=-2,e._encodedFrameRate=-2,
|
|
119
|
+
e._duration=-2,e._playerVersion=null,e._playerType=null,e._streamUrl=null,e._moduleName=null,e._moduleVersion=null,e._width=-1,e._height=-1,e._connectionType=null,e._linkEncryption=null,e._lastError=null,
|
|
120
|
+
e._pendingErrors=[],e._released=!1,this.release=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.release",function(){null!=e._monitorNotifier&&e._monitorNotifier.onRelease(),
|
|
121
|
+
e.removeMonitoringNotifier(),e._systemFactory=null,e._logger=null,e._exceptionCatcher=null,e._released=!0})},this.setPlayheadTime=function(a){},this.setBufferLength=function(a){},this.setRenderedFrameRate=function(a){},
|
|
122
|
+
this.getEncodedFrameRate=function(){return e._encodedFrameRate},this.setEncodedFrameRate=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setEncodedFrameRate",function(){var b=O.sanitizeSpecialIntegerValue(a);
|
|
123
|
+
b>=-1&&(e._encodedFrameRate=b,null!=e._monitorNotifier&&e._monitorNotifier.onEncodedFrameRateChange(e._encodedFrameRate))})},this.getDuration=function(){return e._duration},this.setClientMeasureInterface=function(b){
|
|
124
|
+
K.validateInterface(b,new a.ClientMeasureInterface,"ClientMeasureInterface"),this._playerInterface=b},this.getPHT=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getPHT?this._playerInterface.getPHT():i.DEFAULT_PHT;
|
|
125
|
+
},this.getBufferLength=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getBufferLength?this._playerInterface.getBufferLength():i.DEFAULT_BUFFER_LENGTH},this.getSignalStrength=function(){
|
|
126
|
+
return this._playerInterface&&"function"==typeof this._playerInterface.getSignalStrength?this._playerInterface.getSignalStrength():i.DEFAULT_SIGNAL_STRENGTH},this.getRenderedFrameRate=function(){return this._playerInterface&&"function"==typeof this._playerInterface.getRenderedFrameRate?this._playerInterface.getRenderedFrameRate():i.DEFAULT_RENDERED_FRAME_RATE;
|
|
127
|
+
},this.setDuration=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setDuration",function(){var b=O.sanitizeSpecialIntegerValue(a);b>=-1&&(e._duration=b,null!=e._monitorNotifier&&e._monitorNotifier.onContentLengthChange(e._duration));
|
|
128
|
+
})},this.getStreamUrl=function(){return e._streamUrl},this.setStreamUrl=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setStreamUrl",function(){null!=a&&(e._streamUrl=a,null!=e._monitorNotifier&&e._monitorNotifier.onStreamUrlChange(e._streamUrl));
|
|
129
|
+
})},this.getModuleName=function(){return e._moduleName},this.getModuleVersion=function(){return e._moduleVersion},this.setModuleNameAndVersion=function(a,b){e._moduleName=a,e._moduleVersion=b},this.getPlayerType=function(){
|
|
130
|
+
return e._playerType},this.setPlayerType=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerType",function(){e._playerType=a,null!=e._monitorNotifier&&e._monitorNotifier.onPlayerTypeChange(e._playerType);
|
|
131
|
+
})},this.getPlayerVersion=function(){return e._playerVersion},this.setPlayerVersion=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerVersion",function(){e._playerVersion=a,
|
|
132
|
+
null!=e._monitorNotifier&&e._monitorNotifier.onPlayerVersionChange(e._playerVersion)})},this.setMonitoringNotifier=function(a,b){return e._released?void 0:null!=e._monitorNotifier?!1:(e._monitorNotifier=a,
|
|
133
|
+
e._logger.setSessionId(b),!0)},this.removeMonitoringNotifier=function(){e._released||(e._monitorNotifier=null,e._logger.setSessionId(null))},this.pushCurrentState=function(){e.setPlayerState(e.getPlayerState()),
|
|
134
|
+
e.setBitrateKbps(e.getBitrateKbps()),e.setDuration(e.getDuration()),e.setEncodedFrameRate(e.getEncodedFrameRate()),e.setStreamUrl(e.getStreamUrl()),e.setPlayerType(e.getPlayerType()),e.setPlayerVersion(e.getPlayerVersion());
|
|
135
|
+
for(var a=0;a<e._pendingErrors.length;a++){var b=e._pendingErrors[a];e.setError(b)}e._pendingErrors=[]},this.getPlayerState=function(){return e._playerState},this.setPlayerState=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerState",function(){
|
|
136
|
+
i.isValidPlayerState(a)?(e._playerState=a,null!=e._monitorNotifier&&e._monitorNotifier.onPlayerStateChange(e._playerState)):e._logger.error("PlayerStateManager.SetPlayerState(): invalid state: "+a)})},
|
|
137
|
+
this.getBitrateKbps=function(){return e._bitrateKbps},this.setBitrateKbps=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setBitrateKbps",function(){var b=O.sanitizeSpecialIntegerValue(a);
|
|
138
|
+
b>=-1&&(e._bitrateKbps=b,null!=e._monitorNotifier&&e._monitorNotifier.onBitrateChange(e._bitrateKbps))})},this.setPlayerSeekStart=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerSeekStart()",function(){
|
|
139
|
+
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.SEEK_START,a)})},this.setPlayerSeekEnd=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setPlayerSeekEnd()",function(){
|
|
140
|
+
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.SEEK_END,-1)})},this.setUserSeekButtonUp=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setUserSeekButtonUp()",function(){
|
|
141
|
+
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.BUTTON_UP,-1)})},this.setUserSeekButtonDown=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setUserSeekButtonDown()",function(){
|
|
142
|
+
null!=e._monitorNotifier&&e._monitorNotifier.onSeekEvent(i.SEEK_ACTIONS_TYPE.BUTTON_DOWN,-1)})},this.setVideoResolutionWidth=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setVideoResolutionWidth()",function(){
|
|
143
|
+
var b=O.sanitizeSpecialIntegerValue(a);b>0&&(e._width=b),null!=e._monitorNotifier&&e._monitorNotifier.onStreamResolutionWidthChange(e._width)})},this.setVideoResolutionHeight=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setVideoResolutionHeight()",function(){
|
|
144
|
+
var b=O.sanitizeSpecialIntegerValue(a);b>0&&(e._height=b),null!=e._monitorNotifier&&e._monitorNotifier.onStreamResolutionHeightChange(e._height)})},this.setConnectionType=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setConnectionType()",function(){
|
|
145
|
+
e._connectionType=a,null!=e._monitorNotifier&&e._monitorNotifier.onConnectionTypeChange(e._connectionType)})},this.setLinkEncryption=function(a){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setLinkEncryption()",function(){
|
|
146
|
+
e._linkEncryption=a,null!=e._monitorNotifier&&e._monitorNotifier.onLinkEncryptionChange(e._linkEncryption)})},this.setSignalStrength=function(a){},this.setError=function(a){if(e._lastError=a,null!=e._monitorNotifier){
|
|
147
|
+
var b=a.errorCode,c=a.severity;e._monitorNotifier.onError(b,c)}else e._pendingErrors.push(a)},this.sendError=function(a,c){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.sendError",function(){
|
|
148
|
+
var d=new b.StreamerError(a,c);e.setError(d)})},this.reset=function(){e._released||e._exceptionCatcher.runProtected("PlayerStateManager.reset",function(){e._bitrateKbps=-2,e._playerState=i.PlayerState.UNKNOWN,
|
|
149
|
+
e._currentMetadata={},e._renderedFrameRate=-1,e._encodedFrameRate=-1,e._duration=-1,e._playerVersion=null,e._playerType=null,e._streamUrl=null,e._lastError=null,e._pendingErrors=[]})},this.setCDNServerIP=function(a){
|
|
150
|
+
e._released||e._exceptionCatcher.runProtected("PlayerStateManager.setCDNServerIP",function(){null!=e._monitorNotifier&&e._monitorNotifier.onCDNServerIPChange(a)})},this.getError=function(){return e._lastError;
|
|
151
|
+
},d.apply(e,arguments)};i.PlayerState={STOPPED:c.PlayerState.STOPPED,PLAYING:c.PlayerState.PLAYING,BUFFERING:c.PlayerState.BUFFERING,PAUSED:c.PlayerState.PAUSED,UNKNOWN:c.PlayerState.UNKNOWN,NOT_MONITORED:c.PlayerState.NOT_MONITORED
|
|
152
|
+
},i.isValidPlayerState=function(a){return a===i.PlayerState.STOPPED||a===i.PlayerState.PLAYING||a===i.PlayerState.BUFFERING||a===i.PlayerState.PAUSED||a===i.PlayerState.UNKNOWN||a===i.PlayerState.NOT_MONITORED?!0:!1;
|
|
153
|
+
},i.SEEK_ACTIONS_TYPE={SEEK_START:"pss",SEEK_END:"pse",BUTTON_UP:"bu",BUTTON_DOWN:"bd"},i.DEFAULT_SIGNAL_STRENGTH=1e3,i.DEFAULT_RENDERED_FRAME_RATE=-1,i.DEFAULT_BUFFER_LENGTH=-1,i.DEFAULT_PHT=-1;var j=(a.ClientMeasureInterface=function(){
|
|
154
|
+
this.getPHT=function(){},this.getBufferLength=function(){},this.getSignalStrength=function(){},this.getRenderedFrameRate=function(){}},a.HttpInterface=function(){this.makeRequest=function(a,b,c,d,e,f){},
|
|
155
|
+
this.release=function(){}}),k=a.LoggingInterface=function(){this.consoleLog=function(a,b){},this.release=function(){}},l=a.MetadataInterface=function(){this.getBrowserName=function(){},this.getBrowserVersion=function(){},
|
|
156
|
+
this.getDeviceBrand=function(){},this.getDeviceManufacturer=function(){},this.getDeviceModel=function(){},this.getDeviceType=function(){},this.getDeviceVersion=function(){},this.getFrameworkName=function(){},
|
|
157
|
+
this.getFrameworkVersion=function(){},this.getOperatingSystemName=function(){},this.getOperatingSystemVersion=function(){},this.getDeviceCategory=function(){},this.release=function(){}},m=a.StorageInterface=function(){
|
|
158
|
+
this.saveData=function(a,b,c,d){},this.loadData=function(a,b,c){},this.release=function(){}},n=a.SystemInterface=function(a,b,c,d,e,f){function g(a,b,c,d,e,f){K.validateInterface(a,new o,"TimeInterface"),
|
|
159
|
+
K.validateInterface(b,new p,"TimerInterface"),K.validateInterface(c,new j,"HttpInterface"),K.validateInterface(d,new m,"StorageInterface"),K.validateInterface(e,new l,"MetadataInterface"),K.validateInterface(f,new k,"LoggingInterface"),
|
|
160
|
+
this._timeInterface=a,this._timerInterface=b,this._httpInterface=c,this._storageInterface=d,this._metadataInterface=e,this._loggingInterface=f}g.apply(this,arguments),this.release=function(){null!=this._timeInterface&&(this._timeInterface.release(),
|
|
161
|
+
this._timeInterface=null),null!=this._timerInterface&&(this._timerInterface.release(),this._timerInterface=null),null!=this._httpInterface&&(this._httpInterface.release(),this._httpInterface=null),null!=this._storageInterface&&(this._storageInterface.release(),
|
|
162
|
+
this._storageInterface=null),null!=this._metadataInterface&&(this._metadataInterface.release(),this._metadataInterface=null),null!=this._loggingInterface&&(this._loggingInterface.release(),this._loggingInterface=null);
|
|
163
|
+
}},o=a.TimeInterface=function(){this.getEpochTimeMs=function(){},this.release=function(){}},p=a.TimerInterface=function(){this.createTimer=function(a,b,c){},this.release=function(){}},q=b.AdAnalytics=function(){
|
|
164
|
+
function b(a,b,c){g._client=a,g._videoAnalytics=c,g._systemFactory=b,g._playerMonitor=c.getPlayerMonitor(),g._timer=b.buildTimer(),g._logger=b.buildLogger(),g._logger.setModuleName("AdAnalytics"),g._adPlayerMonitor=new r(g._client,g._timer),
|
|
165
|
+
t.call(this)}function e(a){f(a)}function f(a){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.onAdInitiated() : contentPlayer - "+c.INVALID_PLAYER_MONITOR)):(K.dictCount(a)>0&&g.setAdInfo(a),
|
|
166
|
+
void(g._adPlayerMonitor.getIsAffectingUser()||(g._adPlayerMonitor.setContentPlayerMonitor(g._playerMonitor),g._adPlayerMonitor.setAffectingUser(!0))))}var g=this;g._client=null,g._logger=null,g._systemFactory=null,
|
|
167
|
+
g._timer=null,g._playerMonitor=null,g._adPlayerMonitor=null,g._adPlayer=null,g._dropInModule=null,g._videoAnalytics=null,b.apply(this,arguments),this.setAdInfo=function(a){return K.dictCount(a)<=0?void(null!=g._logger&&g._logger.error("AdAnalytics.setAdInfo() : AD Info is not set")):(null!=g._logger&&g._logger.debug("AdAnalytics.setAdInfo()"),
|
|
168
|
+
void(null!=g._adPlayerMonitor&&g._adPlayerMonitor.setOrUpdateMetadataInfo(a)))},this.setAdPlayerInfo=function(a){return K.dictCount(a)<=0?void(null!=g._logger&&g._logger.error("AdAnalytics.setAdPlayerInfo() : Ad Player Info is not set")):(null!=g._logger&&g._logger.debug("AdAnalytics.setAdPlayerInfo()"),
|
|
169
|
+
void(null!=g._adPlayerMonitor&&g._adPlayerMonitor.setOrUpdateMetadataInfo(a)))},this.reportAdMetric=function(){return 0==arguments.length?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdMetric() : Need to report metric mandatory")):void(1==arguments.length?g.reportMetric(arguments[0]):2==arguments.length?g.reportMetric(arguments[0],arguments[1]):3==arguments.length?g.reportMetric(arguments[0],arguments[1],arguments[2]):4==arguments.length&&g.reportMetric(arguments[0],arguments[1],arguments[2],arguments[3]));
|
|
170
|
+
},this.setCallback=function(a){null!=g._adPlayerMonitor&&g._adPlayerMonitor.setCallback(a)},this.reportAdFailed=function(a,b){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdFailed() : "+c.INVALID_PLAYER_MONITOR)):(K.dictCount(b)>0&&g.setAdInfo(b),
|
|
171
|
+
g._adPlayerMonitor.getIsAffectingUser()||(g._adPlayerMonitor.setContentPlayerMonitor(g._playerMonitor),g._adPlayerMonitor.setAffectingUser(!0)),null!=g._logger&&g._logger.debug("AdAnalytics.reportAdFailed() : "+a),
|
|
172
|
+
g.reportAdError(a,d.ErrorSeverity.FATAL),void g.reportAdEnded())},this.reportAdLoaded=function(a){null!=g._logger&&g._logger.debug("AdAnalytics.reportAdLoaded()"),e(a)},this.reportAdStarted=function(a){
|
|
173
|
+
null!=g._logger&&g._logger.debug("AdAnalytics.reportAdStarted()"),e(a)},this.reportAdEnded=function(){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdEnded() : "+c.INVALID_AD_PLAYER_MONITOR)):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdEnded()"),
|
|
174
|
+
void(g._adPlayerMonitor.getIsAffectingUser()&&(g._adPlayerMonitor.setContentPlayerMonitor(null),g._adPlayerMonitor.setAffectingUser(!1))))},this.reportAdError=function(a,b){if(null==g._adPlayerMonitor)return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdError() : "+c.INVALID_PLAYER_MONITOR));
|
|
175
|
+
null!=g._logger&&g._logger.debug("AdAnalytics.reportAdError() : "+a);var d=new P(a,b);g._adPlayerMonitor.setError(d)},this.reportAdPlayerEvent=function(b,d){if(!K.isValidString(b))return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdPlayerEvent(): eventType parameter must be a valid string."));
|
|
176
|
+
if(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdPlayerEvent()"),null==g._adPlayerMonitor)return void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdPlayerEvent() : "+c.INVALID_PLAYER_MONITOR));
|
|
177
|
+
switch(b){case a.Constants.Events.USER_WAIT_STARTED:case a.Constants.Events.BUMPER_VIDEO_STARTED:g._adPlayerMonitor.detachPlayer();break;case a.Constants.Events.USER_WAIT_ENDED:case a.Constants.Events.BUMPER_VIDEO_ENDED:
|
|
178
|
+
g._adPlayerMonitor.attachPlayer();break;default:g._adPlayerMonitor.setEvent(b,d)}},this.reportAdSkipped=function(){return null==g._adPlayerMonitor?void(null!=g._logger&&g._logger.error("AdAnalytics.reportAdSkipped() : "+c.INVALID_PLAYER_MONITOR)):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdSkipped()"),
|
|
179
|
+
g.reportAdPlayerEvent(c.Events.AD_SKIPPED),void g.reportAdEnded())},this.release=function(){null!=g._logger&&g._logger.debug("AdAnalytics.release()"),null!=g._adPlayerMonitor&&(g._adPlayerMonitor.getIsAffectingUser()&&(g._adPlayerMonitor.setContentPlayerMonitor(null),
|
|
180
|
+
g._adPlayerMonitor.setAffectingUser(!1)),g._adPlayerMonitor.setCallback(null),g._adPlayerMonitor.release(),g._adPlayerMonitor=null),"undefined"!=typeof a.AdProxyMonitor&&null!=g._dropInModule&&(a.AdProxyMonitor.release(g._dropInModule),
|
|
181
|
+
g._dropInModule=null)},this.setAdListener=function(b,c){return void 0==b?void g._logger.error("AdAnalytics.setAdListener() : Need to configure the adListener instance"):("undefined"!=typeof c&&"undefined"!=typeof c.convivaModule?a.AdProxyMonitor=convivaModule.AdProxyMonitor:"undefined"!=typeof ConvivaModule&&(a.AdProxyMonitor=ConvivaModule.AdProxyMonitor),
|
|
182
|
+
"undefined"==typeof a.AdProxyMonitor?void g._logger.error("AdAnalytics.setAdListener() : Include the missing Ads SDK Module"):void(null==b&&null!=g._dropInModule?(a.AdProxyMonitor.release(g._dropInModule),
|
|
183
|
+
g._dropInModule=null):null!=b&&null!=g._dropInModule?(a.AdProxyMonitor.release(g._dropInModule),null!=g._logger&&g._logger.debug("AdAnalytics.setAdListener() : Initializing ad drop-in module"),g._dropInModule=a.AdProxyMonitor.initConvivaDropIn(b,c,this,a)):null!=b&&null==g._dropInModule&&(null!=g._logger&&g._logger.debug("AdAnalytics.setAdListener() : Initializing ad drop-in module"),
|
|
184
|
+
g._dropInModule=a.AdProxyMonitor.initConvivaDropIn(b,c,this,a))))},this.reportAdBreakStarted=function(a,b,d){return null==g._playerMonitor?void g._logger.error("AdAnalytics.reportAdBreakStarted() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdBreakStarted()"),
|
|
185
|
+
g._adType=a,g._adPlayer=b,void g._playerMonitor.setAdBreakStartInfo(a,b,d))},this.reportAdBreakEnded=function(){return null==g._playerMonitor?void g._logger.error("AdAnalytics.reportAdBreakEnded() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("AdAnalytics.reportAdBreakEnded()"),
|
|
186
|
+
g._adType=null,g._adPlayer=null,void g._playerMonitor.setAdBreakEndInfo())},this.getSessionId=function(){return null==g._playerMonitor?void g._logger.error("VideoAnalytics.getSessionId() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("VideoAnalytics.getSessionId()"),
|
|
187
|
+
g._adPlayerMonitor.getSessionId())},this.getClientId=function(){return null==g._playerMonitor?void g._logger.error("VideoAnalytics.getClientId() : "+c.INVALID_PLAYER_MONITOR):(null!=g._logger&&g._logger.debug("VideoAnalytics.getClientId()"),
|
|
188
|
+
g._adPlayerMonitor.getClientId())},this.getAdType=function(){return null!=g._playerMonitor?g._playerMonitor._adType:null},this.getAdPlayer=function(){return null!=g._playerMonitor?g._playerMonitor._adPlayer:null;
|
|
189
|
+
},q.prototype=Object.create(t.prototype),q.prototype.constructor=q},r=b.AdPlayerMonitorImpl=function(){function a(a,b){v.call(this,a,b)}var b=this;b._convivaClient=null,b._contentPlayerMonitor=null,a.apply(this,arguments),
|
|
190
|
+
this.setContentPlayerMonitor=function(a){this.getContentPlayerMonitor()!=a&&(this.update(),null==a?b._contentPlayerMonitor=null:b._contentPlayerMonitor=a)},this.getContentPlayerMonitor=function(){return b._contentPlayerMonitor;
|
|
191
|
+
},this.createSession=function(){var a=this.getContentPlayerMonitor();if(null!=b._convivaClient){b._playerStateManager=b._convivaClient.getPlayerStateManager(),b.onPlayerInfoChanged(),b._playerStateManager.setClientMeasureInterface(this);
|
|
192
|
+
var c=null;null!=a&&(c=a.getSessionKey()),b._contentSessionKey=b._convivaClient.createAdSession(c,b._contentMetadata,b._playerStateManager)}},r.prototype=Object.create(v.prototype),r.prototype.constructor=r;
|
|
193
|
+
},s=a.Analytics={init:function(b,f,i){if(null!=this._client&&void 0!=this._client)return void this._logger.error("Client is already configured");if(arguments.length<=0)throw new Error("customerKey must be valid");
|
|
194
|
+
var j=null,k=null,l=null;if("string"==typeof arguments[0]&&(j=arguments[0],!K.isValidString(j)))throw new Error("customerKey must be valid");arguments.length>=2&&"object"==typeof arguments[1]&&(k=arguments[1]),
|
|
195
|
+
arguments.length>=3&&"object"==typeof arguments[2]&&(l=arguments[2]);var m=new e(j),n=new h;K.dictCount(l)>0&&(null!=l[c.GATEWAY_URL]&&(m.gatewayUrl=l[c.GATEWAY_URL]),null!=l[c.LOG_LEVEL]&&(n.logLevel=l[c.LOG_LEVEL]));
|
|
196
|
+
var o=new a.Impl.Html5Logging,p=new a.Impl.Html5Storage,q=new a.Impl.Html5Http,r=new a.Impl.Html5Timer,t=new a.Impl.Html5Time;(void 0==this._metadataInterface||null==this._metadataInterface)&&(this._metadataInterface=new a.Impl.Html5Metadata),
|
|
197
|
+
null!=k&&void 0!=k&&(null!=k[a.Constants.CallbackFunctions.CONSOLE_LOG]&&(o.consoleLog=k[a.Constants.CallbackFunctions.CONSOLE_LOG]),null!=k[a.Constants.CallbackFunctions.MAKE_REQUEST]&&(q.makeRequest=k[a.Constants.CallbackFunctions.MAKE_REQUEST]),
|
|
198
|
+
null!=k[a.Constants.CallbackFunctions.SAVE_DATA]&&(p.saveData=k[a.Constants.CallbackFunctions.SAVE_DATA]),null!=k[a.Constants.CallbackFunctions.LOAD_DATA]&&(p.loadData=k[a.Constants.CallbackFunctions.LOAD_DATA]),
|
|
199
|
+
null!=k[a.Constants.CallbackFunctions.GET_EPOCH_TIME_IN_MS]&&(t.getEpochTimeMs=k[a.Constants.CallbackFunctions.GET_EPOCH_TIME_IN_MS]),null!=k[a.Constants.CallbackFunctions.CREATE_TIMER]&&(r.createTimer=k[a.Constants.CallbackFunctions.CREATE_TIMER])),
|
|
200
|
+
this._systemInterface=new a.SystemInterface(t,r,q,p,this._metadataInterface,o),this._systemFactory=new g(this._systemInterface,n),this._systemFactory.configure("Analytics",m),this._client=new d(m,this._systemFactory),
|
|
201
|
+
this._client.version=s.version,this._logger=this._systemFactory.buildLogger(),this._logger.setModuleName("Analytics")},release:function(){var a=0;if(null!=this._adAnalyticsArray&&void 0!=this._adAnalyticsArray){
|
|
202
|
+
for(a=0;a<this._adAnalyticsArray.length;a++){var b=this._adAnalyticsArray[a];null!=b&&(b.release(),b._logger=null,b._timer=null,this._adAnalyticsArray.splice(a,1),a--)}this._adAnalyticsArray=null}if(null!=this._videoAnalyticsArray&&void 0!=this._videoAnalyticsArray){
|
|
203
|
+
for(a=0;a<this._videoAnalyticsArray.length;a++){var c=this._videoAnalyticsArray[a];null!=c&&(c.release(),c._logger=null,c._timer=null,this._videoAnalyticsArray.splice(a,1),a--)}this._videoAnalyticsArray=null;
|
|
204
|
+
}null!=this._systemFactory&&void 0!=this._systemFactory&&(this._systemFactory.release(),this._systemFactory=null),null!=this._client&&void 0!=this._client&&(this._client.release(),this._client=null),this._client=null,
|
|
205
|
+
this._logger=null,this._systemInterface=null,this._metadataInterface=null},setUniqueIdentifier:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUniqueIdentifier(a,b);
|
|
206
|
+
},setUserPreferenceForDataCollection:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUserPreferenceForDataCollection(a,b)},setUserPreferenceForDataDeletion:function(a){
|
|
207
|
+
if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.setUserPreferenceForDataDeletion(a)},reportAppEvent:function(a,b){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);
|
|
208
|
+
this._client.sendCustomEvent(d.NO_SESSION_KEY,a,b)},reportAppBackgrounded:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.sendCustomEvent(d.NO_SESSION_KEY,"App.Backgrounded",null);
|
|
209
|
+
},reportAppForegrounded:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client.sendCustomEvent(d.NO_SESSION_KEY,"App.Foregrounded",null)},configureExistingClient:function(a){
|
|
210
|
+
if(!(a instanceof d))throw new Error(c.CLIENT_CONFIGURATION_FAILED);this._client=a,this._systemFactory=this._client._systemFactory,this._logger=this._systemFactory.buildLogger(),this._logger.setModuleName("Analytics");
|
|
211
|
+
},buildVideoAnalytics:function(){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);var a=new w(this._client,this._systemFactory);return(null==this._videoAnalyticsArray||void 0==this._videoAnalyticsArray)&&(this._videoAnalyticsArray=[]),
|
|
212
|
+
this._videoAnalyticsArray.push(a),a},buildAdAnalytics:function(a){if(null==this._client||void 0==this._client)throw new Error(c.CLIENT_CONFIGURATION_FAILED);var b=new q(this._client,this._systemFactory,null!=a&&void 0!=a?a:null);
|
|
213
|
+
return(null==this._adAnalyticsArray||void 0==this._adAnalyticsArray)&&(this._adAnalyticsArray=[]),this._adAnalyticsArray.push(b),b},setDeviceMetadata:function(b){return arguments.length<=0||0==K.dictCount(b)?void this._logger.error("Device Metadata must be valid"):((void 0==this._metadataInterface||null==this._metadataInterface)&&(this._metadataInterface=new a.Impl.Html5Metadata),
|
|
214
|
+
null!=b[a.Constants.DeviceMetadata.BRAND]&&(this._metadataInterface.getDeviceBrand=function(){return b[a.Constants.DeviceMetadata.BRAND]}),null!=b[a.Constants.DeviceMetadata.MANUFACTURER]&&(this._metadataInterface.getDeviceManufacturer=function(){
|
|
215
|
+
return b[a.Constants.DeviceMetadata.MANUFACTURER]}),null!=b[a.Constants.DeviceMetadata.MODEL]&&(this._metadataInterface.getDeviceModel=function(){return b[a.Constants.DeviceMetadata.MODEL]}),null!=b[a.Constants.DeviceMetadata.TYPE]&&(this._metadataInterface.getDeviceType=function(){
|
|
216
|
+
return b[a.Constants.DeviceMetadata.TYPE]}),null!=b[a.Constants.DeviceMetadata.VERSION]&&(this._metadataInterface.getDeviceVersion=function(){return b[a.Constants.DeviceMetadata.VERSION]}),null!=b[a.Constants.DeviceMetadata.OS_NAME]&&(this._metadataInterface.getOperatingSystemName=function(){
|
|
217
|
+
return b[a.Constants.DeviceMetadata.OS_NAME]}),null!=b[a.Constants.DeviceMetadata.OS_VERSION]&&(this._metadataInterface.getOperatingSystemVersion=function(){return b[a.Constants.DeviceMetadata.OS_VERSION];
|
|
218
|
+
}),void(null!=b[a.Constants.DeviceMetadata.CATEGORY]&&(this._metadataInterface.getDeviceCategory=function(){return b[a.Constants.DeviceMetadata.CATEGORY]})))},reportDeviceMetric:function(a,b){var d=0;if(null!=this._adAnalyticsArray&&void 0!=this._adAnalyticsArray)for(d=0;d<this._adAnalyticsArray.length;d++){
|
|
219
|
+
var e=this._adAnalyticsArray[d];if(null!=e)switch(a){case c.Network.SIGNAL_STRENGTH:case c.Network.LINK_ENCRYPTION:case c.Network.CONNECTION_TYPE:e.reportAdMetric(a,b,t.ReportMetric.AD_ONLY)}}if(null!=this._videoAnalyticsArray&&void 0!=this._videoAnalyticsArray)for(d=0;d<this._videoAnalyticsArray.length;d++){
|
|
220
|
+
var f=this._videoAnalyticsArray[d];if(null!=f)switch(a){case c.Network.SIGNAL_STRENGTH:case c.Network.LINK_ENCRYPTION:case c.Network.CONNECTION_TYPE:f.reportPlaybackMetric(a,b)}}}};s.version="4.0.15";var t=b.AnalyticsImpl=function(){
|
|
221
|
+
function b(){}function d(){var a=null!=s._adPlayerMonitor?!0:!1,b=s.getAdType(),d=s.getAdPlayer();return b==c.AdType.SERVER_SIDE&&d==c.AdPlayer.CONTENT?t.ReportMetric.AD_CONTENT:b!=c.AdType.SERVER_SIDE||d!=c.AdPlayer.SEPARATE?b==c.AdType.CLIENT_SIDE&&d==c.AdPlayer.CONTENT?t.ReportMetric.AD_ONLY:b==c.AdType.CLIENT_SIDE&&d==c.AdPlayer.SEPARATE?null!=a&&a?t.ReportMetric.AD_ONLY:t.ReportMetric.CONTENT_ONLY:a?t.ReportMetric.AD_ONLY:t.ReportMetric.CONTENT_ONLY:void 0;
|
|
222
|
+
}function e(a,b,c){var d=parseInt(a,10),e=parseInt(b,10);return isNaN(d)&&isNaN(e)?void s._logger.error("reportPlaybackResolution() : width and height are not numbers"):(isNaN(d)&&s._logger.warning("reportPlaybackResolution() : width is not a number"),
|
|
223
|
+
isNaN(e)&&s._logger.warning("reportPlaybackResolution() : height is not a number"),null==s._adPlayerMonitor||c!=t.ReportMetric.AD_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateVideoSize(d,e),
|
|
224
|
+
void(null==s._playerMonitor||c!=t.ReportMetric.CONTENT_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateVideoSize(d,e)))}function f(a,b){return i.isValidPlayerState(a)?(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setPlayerState(a),
|
|
225
|
+
void((null!=s._playerMonitor&&b==t.ReportMetric.CONTENT_ONLY||b==t.ReportMetric.AD_CONTENT)&&s._playerMonitor.setPlayerState(a))):void s._logger.error("reportPlayerState() : Player State is not valid");
|
|
226
|
+
}function g(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerPlayHeadTime() : playheadtime is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updatePlayheadTime(c),
|
|
227
|
+
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updatePlayheadTime(c)))}function h(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerBufferLength() : buffer length is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateBufferLength(c),
|
|
228
|
+
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateBufferLength(c)))}function j(a,b){var c=parseInt(a,10);null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setSeeking(!0,c),
|
|
229
|
+
null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.setSeeking(!0,c)}function k(a){null==s._adPlayerMonitor||a!=t.ReportMetric.AD_ONLY&&a!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.setSeeking(!1,-1),
|
|
230
|
+
null==s._playerMonitor||a!=t.ReportMetric.CONTENT_ONLY&&a!=t.ReportMetric.AD_CONTENT||s._playerMonitor.setSeeking(!1,-1)}function l(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerBitrate() : bitrate is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateBitrate(c),
|
|
231
|
+
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateBitrate(c)))}function m(a,b){var c=parseInt(a,10);return isNaN(c)?void s._logger.error("reportPlayerRenderedFrameRate() : rendered framerate is not a number"):(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateVideoRenderedFrameRate(c),
|
|
232
|
+
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateVideoRenderedFrameRate(c)))}function n(a,b){return K.isValidString(a)?(null==s._adPlayerMonitor||b!=t.ReportMetric.AD_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateCDNServerIp(a),
|
|
233
|
+
void(null==s._playerMonitor||b!=t.ReportMetric.CONTENT_ONLY&&b!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateCDNServerIp(a))):void s._logger.error("reportCDNServerIp() : CDNServerIP is not a valid string");
|
|
234
|
+
}function o(a){var b=parseInt(a,10);return isNaN(b)?void s._logger.error("reportSignalStrength() : Signal Strength is not a number"):i.DEFAULT_SIGNAL_STRENGTH===b?void s._logger.error("reportSignalStrength() : DEFAULT_SIGNAL_STRENGTH shouldn't be reported"):null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateCurrentSignalStrength(b):void(null!=s._playerMonitor&&s._playerMonitor.updateCurrentSignalStrength(b));
|
|
235
|
+
}function p(a){return K.isValidString(a)?null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateLinkEncryption(a):void(null!=s._playerMonitor&&s._playerMonitor.updateLinkEncryption(a)):void s._logger.error("reportLinkEncryption() : Link Encryption is not a valid string");
|
|
236
|
+
}function q(a){return K.isValidString(a)?null!=s._adPlayerMonitor?void s._adPlayerMonitor.updateConnectionType(a):void(null!=s._playerMonitor&&s._playerMonitor.updateConnectionType(a)):void s._logger.error("reportConnectionType() : Connection Type is not a valid string");
|
|
237
|
+
}function r(a,b,c){return K.isValidString(a)&&null!=b&&void 0!=b?(null==s._adPlayerMonitor||c!=t.ReportMetric.AD_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._adPlayerMonitor.updateCustomMetric(a,b),void(null==s._playerMonitor||c!=t.ReportMetric.CONTENT_ONLY&&c!=t.ReportMetric.AD_CONTENT||s._playerMonitor.updateCustomMetric(a,b))):void s._logger.error("reportMetric() : Metric key/value should be a proper value");
|
|
238
|
+
}var s=this;b.apply(this,arguments),this.reportMetric=function(b,i,u,v){switch(null!=s._logger&&b!==a.Constants.Playback.PLAY_HEAD_TIME&&b!==a.Constants.Playback.BUFFER_LENGTH&&s._logger.debug("reportMetric() "+b+" "+(void 0!==i&&"CONVIVA"!==i?i:"")+" "+(void 0!==u&&"CONVIVA"!==u&&u!==t.ReportMetric.AD_ONLY?u:"")+" "+(void 0!==v&&"CONVIVA"!==v&&v!==t.ReportMetric.AD_ONLY?v:"")),
|
|
239
|
+
b){case c.Playback.BITRATE:"CONVIVA"===u?s._logger.info("Bitrate change requested from the Conviva Library:"):s._logger.info("Bitrate change requested from the application:"),v==t.ReportMetric.AD_ONLY?l(i,t.ReportMetric.AD_ONLY):l(i,d());
|
|
240
|
+
break;case c.Playback.PLAY_HEAD_TIME:v==t.ReportMetric.AD_ONLY?g(i,t.ReportMetric.AD_ONLY):g(i,d());break;case c.Playback.RESOLUTION:v==t.ReportMetric.AD_ONLY?e(i,u,t.ReportMetric.AD_ONLY):e(i,u,d());break;
|
|
241
|
+
case c.Playback.BUFFER_LENGTH:v==t.ReportMetric.AD_ONLY?h(i,t.ReportMetric.AD_ONLY):h(i,d());break;case c.Playback.PLAYER_STATE:v==t.ReportMetric.AD_ONLY?f(i,t.ReportMetric.AD_ONLY):f(i,d());break;case c.Playback.RENDERED_FRAMERATE:
|
|
242
|
+
v==t.ReportMetric.AD_ONLY?m(i,t.ReportMetric.AD_ONLY):m(i,d());break;case c.Playback.SEEK_STARTED:arguments.length>=2&&"CONVIVA"!=i?j(i,d()):u==t.ReportMetric.AD_ONLY?j(-1,t.ReportMetric.AD_ONLY):j(-1,d());
|
|
243
|
+
break;case c.Playback.SEEK_ENDED:k(u==t.ReportMetric.AD_ONLY?t.ReportMetric.AD_ONLY:d());break;case c.Playback.CDN_IP:"CONVIVA"==u?s._logger.info("CDN Server IP change requested from the Conviva Library:"):s._logger.info("CDN Server IP change requested from the application:"),
|
|
244
|
+
n(i,d());break;case c.Network.SIGNAL_STRENGTH:u==t.ReportMetric.AD_ONLY?o(i,t.ReportMetric.AD_ONLY):o(i,d());break;case c.Network.LINK_ENCRYPTION:u==t.ReportMetric.AD_ONLY?p(i,t.ReportMetric.AD_ONLY):p(i,d());
|
|
245
|
+
break;case c.Network.CONNECTION_TYPE:u==t.ReportMetric.AD_ONLY?q(i,t.ReportMetric.AD_ONLY):q(i,d());break;default:r(b,i,d())}}};t.ReportMetric={AD_ONLY:1,CONTENT_ONLY:2,AD_CONTENT:3};var u=b.PlayerMonitor=function(){
|
|
246
|
+
function b(a){d._timer=a}var d=this;this._affectingUser=null,this._metadata=null,this._contentMetadata=null,this._contentTags=null,this._playerState=a.PlayerStateManager.PlayerState.UNKNOWN,this._playHeadTime=-1,
|
|
247
|
+
this._bufferHeadTime=-1,this._lastError=null,this._lastEventType=null,this._lastEventDetail=null,this._bitrate=-2,this._renderedFrameRate=-1,this._signalStrength=a.PlayerStateManager.DEFAULT_SIGNAL_STRENGTH,
|
|
248
|
+
this._cdnServerIP=null,this._linkEncryption=null,this._connectionType=null,this._timer=null,this._cancelTimer=null,this._playerTags=null,this._callback=null,this._adBreakInfo=null,this._adType=null,this._adPlayer=null,
|
|
249
|
+
b.apply(this,arguments),this.getConvivaPlayerState=function(){return d._playerState},this.setPlayerState=function(a){d._playerState!=a&&(d.update(),d._playerState=a,d.updatePlayerStateManagerState())},
|
|
250
|
+
this.isSeeking=function(){return d._seeking},this.getSeekToPos=function(){return d._seekToPos},this.setSeeking=function(a,b){d.update(),d._seeking=a,d._seekToPos=b,d.onSeekingChanged()},this.getPlayHeadTime=function(){
|
|
251
|
+
return d._playHeadTime},this.updatePlayheadTime=function(a){d._playHeadTime=a},this.getBufferHeadTime=function(){return d._bufferHeadTime},this.updateBufferLength=function(a){d._bufferHeadTime=a},this.getBitrate=function(){
|
|
252
|
+
return d._bitrate},this.updateBitrate=function(a){d._bitrate!=a&&(d._bitrate=a,d.updatePlayerStateManagerState())},this.getVideoRenderedFrameRate=function(){return d._renderedFrameRate},this.updateVideoRenderedFrameRate=function(a){
|
|
253
|
+
d._renderedFrameRate=a},this.getCDNServerIp=function(){return d._cdnServerIP},this.updateCDNServerIp=function(a){d._cdnServerIP=a,d.updatePlayerStateManagerState()},this.getCurrentSignalStrength=function(){
|
|
254
|
+
return d._signalStrength},this.updateCurrentSignalStrength=function(a){d._signalStrength=a,d.updatePlayerStateManagerState()},this.getLinkEncryption=function(){return d._linkEncryption},this.updateLinkEncryption=function(a){
|
|
255
|
+
d._linkEncryption=a,d.updatePlayerStateManagerState()},this.getConnectionType=function(){return d._connectionType},this.updateConnectionType=function(a){d._connectionType=a,d.updatePlayerStateManagerState();
|
|
256
|
+
},this.getVideoWidth=function(){return d._videoWidth},this.getVideoHeight=function(){return d._videoHeight},this.updateVideoSize=function(a,b){0>a&&(a=0),0>b&&(b=0),(d._videoWidth!=a||d._videoHeight!=b)&&(d._videoWidth=a,
|
|
257
|
+
d._videoHeight=b,d.updatePlayerStateManagerState())},this.getMetadataInfo=function(){return d._metadata},this.onMetadataInfoSet=function(){null!=d.getMetadataInfo()&&(d._contentMetadata=new a.ContentMetadata,
|
|
258
|
+
d._contentTags={},d._playerTags={},d.onMetadataInfoChanged())},this.setMetadataInfo=function(a){(null!=d._metadata||null!=a)&&(this.update(),null!=d._metadata&&(d._metadata=null,d.onMetadataInfoSet()),
|
|
259
|
+
null!=a&&(d._metadata=K.mergeObjects(d._metadata,a),d.onMetadataInfoSet()))},this.setOrUpdateMetadataInfo=function(a){if(null!=a){if(null==d._contentMetadata)return void d.setMetadataInfo(a);var b=!1,c=null;
|
|
260
|
+
for(var e in a)if(c=d._contentMetadata[e],c!=a[e]){b=!0;break}b&&(d.update(),d._metadata=K.mergeObjects(a),d.onMetadataInfoChanged())}},this.setCallback=function(a){null==a?(d._callback=null,d.cleanUpTimer()):d._callback!=a&&(d._callback=a,
|
|
261
|
+
d.startTimer())},this.update=function(){d._updating||null!=d._callback&&(d._updating=!0,d._callback(),d._updating=!1)},this.getIsAffectingUser=function(){return d._affectingUser},this.setAffectingUser=function(a){
|
|
262
|
+
d._affectingUser!=a&&(d.update(),d._affectingUser&&(d.endSession(),d.cleanUpTimer(),d.release()),d._affectingUser=a,d._affectingUser&&d.createSession())},this.getLastEventType=function(){return d._lastEventType;
|
|
263
|
+
},this.getLastEventDetail=function(){return null!=d._lastEventDetail?d._lastEventDetail:null},this.getLastError=function(){return d._lastError},this.setError=function(a){this.update(),d._lastError=a,d.onError();
|
|
264
|
+
},this.setEvent=function(a,b){d.update(),d._lastEventType=a,d._lastEventDetail=b,d.onEvent()},this.pollStreamerTask=function(){d.update()},this.startTimer=function(){d.cleanUpTimer(),d._cancelTimer=d._timer.create(d.pollStreamerTask,1e3,"PlayerMonitor.update");
|
|
265
|
+
},this.cleanUpTimer=function(){null!=d._cancelTimer&&(d._cancelTimer(),d._cancelTimer=null)},this.setAdBreakStartInfo=function(a,b,e){d._adBreakInfo=e,d.onAdBreakStartInfoSet(),d._adType=a,d._adPlayer=b,
|
|
266
|
+
null!=d._adType&&void 0!=d._adType&&c.AdType.CLIENT_SIDE===d._adType&&(d._playerState=c.PlayerState.UNKNOWN,d.detach(d._adType,b,null==e||void 0==e?null:e[c.POD_POSITION]))},this.setAdBreakEndInfo=function(){
|
|
267
|
+
null!=d._adType&&c.AdType.CLIENT_SIDE===d._adType&&(d.attach(),d._playerState=c.PlayerState.UNKNOWN),d.onAdBreakEndInfoSet(),d._adType=null,d._adPlayer=null},this.getAdBreakInfo=function(){return d._adBreakInfo;
|
|
268
|
+
},this.release=function(){this._affectingUser=null,this._metadata=null,this._contentMetadata=null,this._contentTags=null,this._playerState=a.PlayerStateManager.PlayerState.UNKNOWN,this._playHeadTime=-1,
|
|
269
|
+
this._bufferHeadTime=-1,this._lastError=null,this._lastEventType=null,this._lastEventDetail=null,this._bitrate=-2,this._renderedFrameRate=-1,this._signalStrength=a.PlayerStateManager.DEFAULT_SIGNAL_STRENGTH,
|
|
270
|
+
this._cdnServerIP=null,this._linkEncryption=null,this._connectionType=null,this._timer=null,this._cancelTimer=null,this._playerTags=null,this._callback=null,this._adBreakInfo=null,this._adType=null,this._adPlayer=null,
|
|
271
|
+
d._playerStateManager=null,d._contentSessionKey=a.Client.NO_SESSION_KEY}},v=b.PlayerMonitorImpl=function(){function b(a,b){u.call(this,b),e._convivaClient=a}var e=this;e._convivaClient=null,e._playerStateManager=null,
|
|
272
|
+
e._contentSessionKey=a.Client.NO_SESSION_KEY,b.apply(this,arguments),this.getPHT=function(){return e.getPlayHeadTime()},this.getBufferLength=function(){return e.getBufferHeadTime()},this.getRenderedFrameRate=function(){
|
|
273
|
+
return e.getVideoRenderedFrameRate()},this.getSignalStrength=function(){return e.getCurrentSignalStrength()},this.onSeekingChanged=function(){null!=e._playerStateManager&&e._ContentSessionKey!=d.NO_SESSION_KEY&&(e.isSeeking()?e._playerStateManager.setPlayerSeekStart(e.getSeekToPos()):e._playerStateManager.setPlayerSeekEnd());
|
|
274
|
+
},this.updatePlayerStateManagerState=function(){null!=e._playerStateManager&&(e._playerStateManager.setPlayerState(e.getConvivaPlayerState()),e.getBitrate()>0&&e._playerStateManager.setBitrateKbps(e.getBitrate()),
|
|
275
|
+
e.getVideoWidth()>0&&e._playerStateManager.setVideoResolutionWidth(e.getVideoWidth()),e.getVideoHeight()>0&&e._playerStateManager.setVideoResolutionHeight(e.getVideoHeight()),null!=e.getCDNServerIp()&&e._playerStateManager.setCDNServerIP(e.getCDNServerIp()),
|
|
276
|
+
null!=e.getLinkEncryption()&&e._playerStateManager.setLinkEncryption(e.getLinkEncryption()),null!=e.getConnectionType()&&e._playerStateManager.setConnectionType(e.getConnectionType()))},this.updateContentMetadata=function(){
|
|
277
|
+
e._contentSessionKey!=d.NO_SESSION_KEY&&null!=e._convivaClient&&e._convivaClient.updateContentMetadata(e._contentSessionKey,e._contentMetadata)},this.onPlayerInfoChanged=function(){if(null!=e._playerStateManager&&null!=e._playerTags&&0!=K.dictCount(e._playerTags)){
|
|
278
|
+
if(null!=e._playerTags[c.MODULE_NAME]&&null!=e._playerTags[c.MODULE_VERSION]){var a=e._playerTags[c.MODULE_NAME],b=e._playerTags[c.MODULE_VERSION];K.isValidString(a)&&K.isValidString(b)&&e._playerStateManager.setModuleNameAndVersion(a,b);
|
|
279
|
+
}if(null!=e._playerTags[c.FRAMEWORK_NAME]){var d=e._playerTags[c.FRAMEWORK_NAME];K.isValidString(d)&&e._playerStateManager.setPlayerType(d)}if(null!=e._playerTags[c.FRAMEWORK_VERSION]){var f=e._playerTags[c.FRAMEWORK_VERSION];
|
|
280
|
+
K.isValidString(f)&&e._playerStateManager.setPlayerVersion(f)}}},this.attach=function(){null!=e._playerStateManager&&e._contentSessionKey!=d.NO_SESSION_KEY&&(e.updatePlayerStateManagerState(),this.contentAdEnd());
|
|
281
|
+
},this.attachPlayer=function(){null!=e._playerStateManager&&e._contentSessionKey!=d.NO_SESSION_KEY&&(e.updatePlayerStateManagerState(),e._convivaClient.onFocus(e._contentSessionKey))},this.contentAdEnd=function(){
|
|
282
|
+
null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.adEnd(e._contentSessionKey)},this.detach=function(a,b,f){if(null!=e._playerStateManager&&e._contentSessionKey!=c.NO_SESSION_KEY){
|
|
283
|
+
var g=null;c.AdType.CLIENT_SIDE===a?g=d.AdStream.SEPARATE:c.AdType.SERVER_SIDE===a&&(g=d.AdStream.CONTENT),e.contentAdStart(g,b,f)}},this.detachPlayer=function(){null!=e._playerStateManager&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.offFocus(e._contentSessionKey);
|
|
284
|
+
},this.contentAdStart=function(a,b,d){null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY&&e._convivaClient.adStart(e._contentSessionKey,a,b,d)},this.createSession=function(){null!=e._convivaClient&&(e._playerStateManager=e._convivaClient.getPlayerStateManager(),
|
|
285
|
+
e.onPlayerInfoChanged(),e._playerStateManager.setClientMeasureInterface(this),e._contentSessionKey=e._convivaClient.createSession(e._contentMetadata,e._playerStateManager))},this.endSession=function(){
|
|
286
|
+
null!=e._convivaClient&&(null!=e._playerStateManager&&(e._playerStateManager.setPlayerState(c.PlayerState.STOPPED),e._playerStateManager=null),e._contentSessionKey!=c.NO_SESSION_KEY&&(e._convivaClient.cleanupSession(e._contentSessionKey),
|
|
287
|
+
e._contentSessionKey=c.NO_SESSION_KEY))},this.onError=function(){if(null!=e._convivaClient&&e._contentSessionKey!=d.NO_SESSION_KEY){var a=e.getLastError();e._convivaClient.reportError(e._contentSessionKey,a.getErrorCode(),a.getErrorSeverity());
|
|
288
|
+
}},this.onEvent=function(){e._contentSessionKey!=d.NO_SESSION_KEY&&null!=e._convivaClient&&e._convivaClient.sendCustomEvent(e._contentSessionKey,e.getLastEventType(),e.getLastEventDetail())},this.onMetadataInfoChanged=function(){
|
|
289
|
+
var a=e.getMetadataInfo(),b=!1,d=!1;for(var f in a){var g=a[f];if(K.isValidString(f)&&null!=g)switch(f){case c.STREAM_URL:d=!0,e._contentMetadata.streamUrl=g;break;case c.ASSET_NAME:d=!0,e._contentMetadata.assetName=g;
|
|
290
|
+
break;case c.DEFAULT_RESOURCE:d=!0,e._contentMetadata.defaultResource=g;break;case c.VIEWER_ID:d=!0,e._contentMetadata.viewerId=g;break;case c.PLAYER_NAME:d=!0,e._contentMetadata.applicationName=g;break;
|
|
291
|
+
case c.DURATION:d=!0,e._contentMetadata.duration=g;break;case c.IS_LIVE:d=!0,e._contentMetadata.streamType=g;break;case c.ENCODED_FRAMERATE:d=!0,e._contentMetadata.encodedFrameRate=g;break;case c.MODULE_NAME:
|
|
292
|
+
case c.MODULE_VERSION:case c.FRAMEWORK_NAME:case c.FRAMEWORK_VERSION:b=!0,e._playerTags[f]=g;break;default:d=!0,e._contentMetadata.custom[f]=g}}b&&this.onPlayerInfoChanged(),d&&this.updateContentMetadata();
|
|
293
|
+
},this.onAdBreakStartInfoSet=function(){this.contentAdBreak(c.Events.POD_START)},this.onAdBreakEndInfoSet=function(){this.contentAdBreak(c.Events.POD_END)},this.contentAdBreak=function(a){if(null!=e._convivaClient&&e._contentSessionKey!=c.NO_SESSION_KEY){
|
|
294
|
+
var b=this.getAdBreakInfo(),d=null;if(null!=b){d={};var f=b[c.POD_POSITION];null!=f&&(d[c.POD_POSITION]=f);var g=b[c.POD_INDEX];if(null!=g&&(d[c.POD_INDEX]=g+""),a===c.Events.POD_START){var h=b[c.POD_DURATION];
|
|
295
|
+
null!=h&&(d[c.POD_DURATION]=h+"")}}e._convivaClient.sendCustomEvent(e._contentSessionKey,a,d)}},this.setSessionKey=function(a){this._contentSessionKey==c.NO_SESSION_KEY&&a!=c.NO_SESSION_KEY&&(this._contentSessionKey=a);
|
|
296
|
+
},this.getSessionKey=function(){return this._contentSessionKey},this.getSessionId=function(){return e._convivaClient.getSessionId(this._contentSessionKey)},this.getClientId=function(a){return e._convivaClient.getClientId(this._contentSessionKey);
|
|
297
|
+
},this.updateCustomMetric=function(a,b){e._convivaClient.updateCustomMetric(this._contentSessionKey,a,b)},v.prototype=Object.create(u.prototype),v.prototype.constructor=v},w=b.VideoAnalytics=function(){
|
|
298
|
+
function b(a,b){e._client=a,e._systemFactory=b,e._timer=b.buildTimer(),e._logger=b.buildLogger(),e._logger.setModuleName("VideoAnalytics"),e._playerMonitor=new v(e._client,e._timer),t.call(this)}var e=this;
|
|
299
|
+
e._client=null,e._logger=null,e._systemFactory=null,e._timer=null,e._playerMonitor=null,e._dropInModule=null,e._adType=null,e._adPlayer=null,this.release=function(){null!=e._logger&&e._logger.debug("VideoAnalytics.release()"),
|
|
300
|
+
null!=e._playerMonitor&&e._playerMonitor.getIsAffectingUser()&&(e._playerMonitor.setAffectingUser(!1),"undefined"!=typeof a.ProxyMonitor&&null!=e._dropInModule&&(a.ProxyMonitor.release(e._dropInModule),
|
|
301
|
+
e._dropInModule=null)),null!=e._playerMonitor&&(e._playerMonitor.setCallback(null),e._playerMonitor.release(),e._playerMonitor=null),e._timer=null,e._adType=null,e._adPlayer=null},b.apply(this,arguments),
|
|
302
|
+
this.reportPlaybackRequested=function(a){return null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackRequested()"),null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackRequested() : "+c.PLAYBACK_ANALYTICS_NOT_AVAILABLE):(K.dictCount(a)>0&&e.setContentInfo(a),
|
|
303
|
+
void e._playerMonitor.setAffectingUser(!0))},this.reportPlaybackEnded=function(){return null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackEnded()"),null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackEnded() : "+c.PLAYBACK_ANALYTICS_NOT_AVAILABLE):void(e._playerMonitor.getIsAffectingUser()&&(e._playerMonitor.setAffectingUser(!1),
|
|
304
|
+
"undefined"!=typeof a.ProxyMonitor&&null!=e._dropInModule&&(a.ProxyMonitor.release(e._dropInModule),e._dropInModule=null),e._playerMonitor.setCallback(null)))},this.reportPlaybackFailed=function(a,b){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportPlaybackFailed() : "+c.INVALID_PLAYER_MONITOR):(K.dictCount(b)>0&&e.setContentInfo(b),
|
|
305
|
+
e._playerMonitor.getIsAffectingUser()||e._playerMonitor.setAffectingUser(!0),null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackFailed()"),e.reportPlaybackError(a,d.ErrorSeverity.FATAL),void e.reportPlaybackEnded());
|
|
306
|
+
},this.setContentInfo=function(a){return K.dictCount(a)<=0?void e._logger.error("VideoAnalytics.setContentInfo() : Content Info is not set"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.setContentInfo() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.setContentInfo()"),
|
|
307
|
+
void e._playerMonitor.setOrUpdateMetadataInfo(a))},this.setPlayerInfo=function(a){return K.dictCount(a)<=0?void e._logger.error("VideoAnalytics.setPlayerInfo() : Player Info is not set"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.setPlayerInfo() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayerInfo()"),
|
|
308
|
+
void e._playerMonitor.setOrUpdateMetadataInfo(a))},this.reportPlaybackMetric=function(){return 0==arguments.length?void e._logger.error("VideoAnalytics.reportPlaybackMetric() : Need to report metric mandatory"):void(1==arguments.length?e.reportMetric(arguments[0]):2==arguments.length?e.reportMetric(arguments[0],arguments[1]):3==arguments.length?e.reportMetric(arguments[0],arguments[1],arguments[2]):4==arguments.length&&e.reportMetric(arguments[0],arguments[1],arguments[2],arguments[3]));
|
|
309
|
+
},this.reportPlaybackError=function(a,b){if(null==e._playerMonitor)return void e._logger.error("VideoAnalytics.reportPlaybackError() : "+c.INVALID_PLAYER_MONITOR);if(!K.isValidString(a))return void e._logger.error("VideoAnalytics.reportPlaybackError() : errorMessage need to be valid string");
|
|
310
|
+
null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackError()");var d=new P(a,b);e._playerMonitor.setError(d)},this.reportPlaybackEvent=function(b,d){if(!K.isValidString(b))return void e._logger.error("VideoAnalytics.reportPlaybackEvent(): eventType parameter must be a valid string.");
|
|
311
|
+
if(null==e._playerMonitor)return void e._logger.error("VideoAnalytics.reportPlaybackEvent() : "+c.INVALID_PLAYER_MONITOR);if(null!=e._logger&&e._logger.debug("VideoAnalytics.reportPlaybackEvent()"),null!=e._playerMonitor)switch(b){
|
|
312
|
+
case a.Constants.Events.USER_WAIT_STARTED:case a.Constants.Events.BUMPER_VIDEO_STARTED:e._playerMonitor.detachPlayer();break;case a.Constants.Events.USER_WAIT_ENDED:case a.Constants.Events.BUMPER_VIDEO_ENDED:
|
|
313
|
+
e._playerMonitor.attachPlayer();break;default:e._playerMonitor.setEvent(b,d)}},this.setCallback=function(a){null!=e._logger&&e._logger.debug("setCallback()"),null!=e._playerMonitor&&e._playerMonitor.setCallback(a);
|
|
314
|
+
},this.reportAdBreakStarted=function(a,b,d){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportAdBreakStarted() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.reportAdBreakStarted()"),
|
|
315
|
+
e._adType=a,e._adPlayer=b,void e._playerMonitor.setAdBreakStartInfo(a,b,d))},this.reportAdBreakEnded=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.reportAdBreakEnded() : "+c.INVALID_PLAYER_MONITOR):(e._adType=null,
|
|
316
|
+
e._adPlayer=null,null!=e._logger&&e._logger.debug("VideoAnalytics.VideoAnalytics.reportAdBreakEnded()"),void e._playerMonitor.setAdBreakEndInfo())},this.setPlayer=function(b,c){if(void 0===b)return void e._logger.error("VideoAnalytics.setPlayer() : Need to configure the Player");
|
|
317
|
+
var d,f;return c&&(d=c[a.Constants.CONVIVA_MODULE],f=c[a.Constants.MEDIA_ELEMENT]),"undefined"!=typeof d?a.ProxyMonitor=d.ProxyMonitor:"undefined"!=typeof ConvivaModule&&(a.ProxyMonitor=ConvivaModule.ProxyMonitor),
|
|
318
|
+
"undefined"==typeof a.ProxyMonitor?void e._logger.error("VideoAnalytics.setPlayer() : Include the missing Player Module"):(null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayer()"),void(null==b&&null!=e._dropInModule?(a.ProxyMonitor.release(e._dropInModule),
|
|
319
|
+
e._dropInModule=null):null!=b?(null!=e._dropInModule&&a.ProxyMonitor.release(e._dropInModule),null!=e._logger&&e._logger.debug("VideoAnalytics.setPlayer() : Initializing drop-in module"),"undefined"!=typeof f?e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,f,e._systemFactory,this,a):e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,e._systemFactory,this,a)):null==b&&"undefined"!=typeof f&&(e._dropInModule=a.ProxyMonitor.initConvivaDropIn(b,f,e._systemFactory,this,a))));
|
|
320
|
+
},this.configureExistingSession=function(a){return a==c.NO_SESSION_KEY?void e._logger.error("VideoAnalytics.configureExistingSession() : Invalid Session Key"):null==e._playerMonitor?void e._logger.error("VideoAnalytics.configureExistingSession() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.configureExistingSession()"),
|
|
321
|
+
void e._playerMonitor.setSessionKey(a))},this.getSessionId=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.getSessionId() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.getSessionId()"),
|
|
322
|
+
e._playerMonitor.getSessionId())},this.getClientId=function(){return null==e._playerMonitor?void e._logger.error("VideoAnalytics.getClientId() : "+c.INVALID_PLAYER_MONITOR):(null!=e._logger&&e._logger.debug("VideoAnalytics.getClientId()"),
|
|
323
|
+
e._playerMonitor.getClientId())},this.getPlayerMonitor=function(){return null!=e._logger&&e._logger.debug("VideoAnalytics.getPlayerMonitor()"),this._playerMonitor},this.getAdType=function(){return null!=e._playerMonitor?e._playerMonitor._adType:null;
|
|
324
|
+
},this.getAdPlayer=function(){return null!=e._playerMonitor?e._playerMonitor._adPlayer:null},w.prototype=Object.create(t.prototype),w.prototype.constructor=w};a.Impl=a.Impl||{},a.Impl.Html5Http=function(){
|
|
325
|
+
function a(){}a.apply(this,arguments),this.makeRequest=function(a,b,c,d,e,f){return this.makeRequestStandard.apply(this,arguments)},this.makeRequestStandard=function(a,b,c,d,e,f){var g=new XMLHttpRequest;
|
|
326
|
+
return g.open(a,b,!0),d&&g.overrideMimeType&&(g.overrideMimeType=d),d&&g.setRequestHeader&&g.setRequestHeader("Content-Type",d),e>0&&(g.timeout=e,g.ontimeout=function(){g.ontimeout=g.onreadystatechange=null,
|
|
327
|
+
f&&f(!1,"timeout after "+e+" ms")}),g.onreadystatechange=function(){4===g.readyState&&(g.ontimeout=g.onreadystatechange=null,200==g.status?f&&f(!0,g.responseText):f&&f(!1,"http status "+g.status))},g.send(c),
|
|
328
|
+
null},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Logging=function(){function b(){}b.apply(this,arguments),this.consoleLog=function(b,c){"undefined"!=typeof console&&(console.log&&c===a.SystemSettings.LogLevel.DEBUG||c===a.SystemSettings.LogLevel.INFO?console.log(b):console.warn&&c===a.SystemSettings.LogLevel.WARNING?console.warn(b):console.error&&c===a.SystemSettings.LogLevel.ERROR&&console.error(b));
|
|
329
|
+
},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Metadata=function(){function a(){}a.apply(this,arguments),this.getBrowserName=function(){return null},this.getBrowserVersion=function(){return null;
|
|
330
|
+
},this.getDeviceBrand=function(){return null},this.getDeviceManufacturer=function(){return null},this.getDeviceModel=function(){return null},this.getDeviceType=function(){return null},this.getDeviceVersion=function(){
|
|
331
|
+
return null},this.getFrameworkName=function(){return null},this.getFrameworkVersion=function(){return null},this.getOperatingSystemName=function(){return null},this.getOperatingSystemVersion=function(){
|
|
332
|
+
return null},this.getDeviceCategory=function(){return null},this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Storage=function(){function a(){}a.apply(this,arguments),this.saveData=function(a,b,c,d){
|
|
333
|
+
var e=a+"."+b;try{localStorage.setItem(e,c),d(!0,null)}catch(f){d(!1,f.toString())}},this.loadData=function(a,b,c){var d=a+"."+b;try{var e=localStorage.getItem(d);c(!0,e)}catch(f){c(!1,f.toString())}},
|
|
334
|
+
this.release=function(){}},a.Impl=a.Impl||{},a.Impl.Html5Time=function(){function a(){}a.apply(this,arguments),this.getEpochTimeMs=function(){var a=new Date;return a.getTime()},this.release=function(){};
|
|
335
|
+
},a.Impl=a.Impl||{},a.Impl.Html5Timer=function(){function a(){}a.apply(this,arguments),this.createTimer=function(a,b,c){var d=setInterval(a,b),e=function(){-1!==d&&(clearInterval(d),d=-1)};return e},this.release=function(){};
|
|
336
|
+
};var x=b.JSON2={};!function(){function a(a){return 10>a?"0"+a:a}function b(a){return d.lastIndex=0,d.test(a)?'"'+a.replace(d,function(a){var b=g[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4);
|
|
337
|
+
})+'"':'"'+a+'"'}function c(a,d){var g,i,j,k,l,m=e,n=d[a];switch(n&&"object"==typeof n&&"function"==typeof n.toJSON&&(n=n.toJSON(a)),"function"==typeof h&&(n=h.call(d,a,n)),typeof n){case"string":return b(n);
|
|
338
|
+
case"number":return isFinite(n)?String(n):"null";case"boolean":case"null":return String(n);case"object":if(!n)return"null";if(e+=f,l=[],Object.prototype.toString.apply(n)===Object.prototype.toString.apply([])){
|
|
339
|
+
for(k=n.length,g=0;k>g;g+=1)l[g]=c(g,n)||"null";return j=0===l.length?"[]":e?"[\n"+e+l.join(",\n"+e)+"\n"+m+"]":"["+l.join(",")+"]",e=m,j}if(h&&"object"==typeof h)for(k=h.length,g=0;k>g;g+=1)"string"==typeof h[g]&&(i=h[g],
|
|
340
|
+
j=c(i,n),j&&l.push(b(i)+(e?": ":":")+j));else for(i in n)Object.prototype.hasOwnProperty.call(n,i)&&(j=c(i,n),j&&l.push(b(i)+(e?": ":":")+j));return j=0===l.length?"{}":e?"{\n"+e+l.join(",\n"+e)+"\n"+m+"}":"{"+l.join(",")+"}",
|
|
341
|
+
e=m,j}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+a(this.getUTCMonth()+1)+"-"+a(this.getUTCDate())+"T"+a(this.getUTCHours())+":"+a(this.getUTCMinutes())+":"+a(this.getUTCSeconds())+"Z":null;
|
|
342
|
+
},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var d,e,f,g,h;"function"!=typeof x.stringify&&(d=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
|
343
|
+
g={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},x.stringify=function(a,b,d){var g;if(e="",f="","number"==typeof d)for(g=0;d>g;g+=1)f+=" ";else"string"==typeof d&&(f=d);if(h=b,
|
|
344
|
+
b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON2.stringify");return c("",{"":a})})}();var y=b.JsonParse=function(){var a,b,c,d,e={'"':'"',"\\":"\\","/":"/",
|
|
345
|
+
b:"\b",f:"\f",n:"\n",r:"\r",t:" "},f=function(b){throw{name:"SyntaxError",message:b,at:a,text:c}},g=function(d){return d&&d!==b&&f("Expected '"+d+"' instead of '"+b+"'"),b=c.charAt(a),a+=1,b},h=function(){
|
|
346
|
+
var a,c="";for("-"===b&&(c="-",g("-"));b>="0"&&"9">=b;)c+=b,g();if("."===b)for(c+=".";g()&&b>="0"&&"9">=b;)c+=b;if("e"===b||"E"===b)for(c+=b,g(),("-"===b||"+"===b)&&(c+=b,g());b>="0"&&"9">=b;)c+=b,g();return a=+c,
|
|
347
|
+
isNaN(a)?void f("Bad number"):a},i=function(){var a,c,d,h="";if('"'===b)for(;g();){if('"'===b)return g(),h;if("\\"===b)if(g(),"u"===b){for(d=0,c=0;4>c&&(a=parseInt(g(),16),isFinite(a));c+=1)d=16*d+a;h+=String.fromCharCode(d);
|
|
348
|
+
}else{if("string"!=typeof e[b])break;h+=e[b]}else h+=b}f("Bad string")},j=function(){for(;b&&" ">=b;)g()},k=function(){switch(b){case"t":return g("t"),g("r"),g("u"),g("e"),!0;case"f":return g("f"),g("a"),
|
|
349
|
+
g("l"),g("s"),g("e"),!1;case"n":return g("n"),g("u"),g("l"),g("l"),null}f("Unexpected '"+b+"'")},l=function(){var a=[];if("["===b){if(g("["),j(),"]"===b)return g("]"),a;for(;b;){if(a.push(d()),j(),"]"===b)return g("]"),
|
|
350
|
+
a;g(","),j()}}f("Bad array")},m=function(){var a,c={};if("{"===b){if(g("{"),j(),"}"===b)return g("}"),c;for(;b;){if(a=i(),j(),g(":"),Object.hasOwnProperty.call(c,a)&&f('Duplicate key "'+a+'"'),c[a]=d(),
|
|
351
|
+
j(),"}"===b)return g("}"),c;g(","),j()}}f("Bad object")};return d=function(){switch(j(),b){case"{":return m();case"[":return l();case'"':return i();case"-":return h();default:return b>="0"&&"9">=b?h():k();
|
|
352
|
+
}},function(e,g){var h;return c=e,a=0,b=" ",h=d(),j(),b&&f("Syntax error"),"function"==typeof g?function i(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.hasOwnProperty.call(e,c)&&(d=i(e,c),
|
|
353
|
+
void 0!==d?e[c]=d:delete e[c]);return g.call(a,b,e)}({"":h},""):h}}(),z=b.CwsProtocol=function(){this.generateEvent=function(a,b,c,d){return d.seq=a,d.st=b,d.t=c,d},this.generateSessionEndEvent=function(a,b){
|
|
354
|
+
var c=z.EVENT_TYPE_SESSION_END,d={};return this.generateEvent(a,b,c,d)}};z.version="2.6",z.gatewayPath="/0/wsg",z.DEFAULT_CLIENT_ID="0",z.DEFAULT_CDN_SERVER_IP_AUTODETECT_ENABLED=!1,z.DEFAULT_MAX_HEARTBEAT_INFOS=2,
|
|
355
|
+
z.DEFAULT_PLAYHEAD_TIME=-1,z.DEFAULT_BUFFER_LENGTH=-1,z.DEFAULT_SIGNAL_STRENGTH=1e3,z.SDK_METADATA_SCHEMA="sdk.js.1",z.EVENT_TYPE_STATE_CHANGE="CwsStateChangeEvent",z.EVENT_TYPE_ERROR="CwsErrorEvent",z.EVENT_TYPE_SESSION_END="CwsSessionEndEvent",
|
|
356
|
+
z.EVENT_TYPE_CUSTOM="CwsCustomEvent",z.EVENT_TYPE_SEEK="CwsSeekEvent",z.EVENT_TYPE_DATA_SAMPLE="CwsDataSamplesEvent",z.RESPONSE_STATUS_NO_ERRORS="ok",z.RESPONSE_KEY_STATUS="err",z.RESPONSE_KEY_CLIENT_ID="clid",
|
|
357
|
+
z.RESPONSE_KEY_CONFIG="cfg",z.RESPONSE_KEY_EVENTS="evs",z.RESPONSE_CONFIG_KEY_MAX_HEARTBEAT_INFOS="maxhbinfos",z.RESPONSE_CONFIG_KEY_SEND_LOGS="slg",z.RESPONSE_CONFIG_KEY_HEARTBEAT_INTERVAL="hbi",z.RESPONSE_CONFIG_KEY_GATEWAY_URL="gw",
|
|
358
|
+
z.RESPONSE_CONFIG_KEY_CONVIVAID_FP="fp",z.RESPONSE_CONFIG_KEY_CDN_SERVER_IP_ENABLE="csi_en",z.MESSAGE_TYPE_SESSION_HEARTBEAT="CwsSessionHb",z.REQUEST_KEY_MESSAGE_TYPE="t",z.REQUEST_KEY_SESSION_TIME="st",
|
|
359
|
+
z.REQUEST_KEY_SESSION_START_TIME="sst",z.REQUEST_KEY_IS_LIVE="lv",z.REQUEST_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_KEY_CUSTOMER_KEY="cid",z.REQUEST_KEY_CLIENT_ID="clid",z.REQUEST_KEY_CLIENT_VERSION="clv",
|
|
360
|
+
z.REQUEST_KEY_PROTOCOL_VERSION="pver",z.REQUEST_KEY_INSTANCE_ID="iid",z.REQUEST_KEY_SESSION_ID="sid",z.REQUEST_KEY_VIEWER_ID="vid",z.REQUEST_KEY_ASSET_NAME="an",z.REQUEST_KEY_PLAYER_NAME="pn",z.REQUEST_KEY_TAGS="tags",
|
|
361
|
+
z.REQUEST_KEY_SESSION_FLAGS="sf",z.REQUEST_KEY_EVENTS="evs",z.REQUEST_KEY_LOGS="lg",z.REQUEST_KEY_HEARTBEAT_INFOS="hbinfos",z.REQUEST_KEY_IS_SDK_CLIENT="sdk",z.REQUEST_KEY_PAUSE_JOIN="pj",z.REQUEST_KEY_PLAYER_STATE="ps",
|
|
362
|
+
z.REQUEST_KEY_BITRATE="br",z.REQUEST_KEY_CONTENT_LENGTH="cl",z.REQUEST_KEY_ENCODED_FRAME_RATE="efps",z.REQUEST_KEY_AVERAGE_FRAME_RATE="afps",z.REQUEST_KEY_RFPS_TOTAL="rfpstot",z.REQUEST_KEY_RFPS_COUNT="rfpscnt",
|
|
363
|
+
z.REQUEST_KEY_RESOURCE="rs",z.REQUEST_KEY_PLAYHEAD_TIME="pht",z.REQUEST_KEY_BUFFER_LENGTH="bl",z.REQUEST_KEY_STREAM_URL="url",z.REQUEST_KEY_CAPABILITIES="caps",z.REQUEST_KEY_PLATFORM_METADATA="pm",z.REQUEST_KEY_VIDEO_WIDTH="w",
|
|
364
|
+
z.REQUEST_KEY_VIDEO_HEIGHT="h",z.REQUEST_KEY_CONNECTION_TYPE="ct",z.REQUEST_KEY_LINK_ENCRYPTION="le",z.REQUEST_KEY_SIGNAL_STRENGTH="ss",z.REQUEST_KEY_CDN_NAME="csi_n",z.REQUEST_KEY_CDN_TYPE="csi_t",z.REQUEST_KEY_CDN_LABEL="csi_l",
|
|
365
|
+
z.REQUEST_KEY_CDN_VALUE="csi_v",z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE="csi_c",z.REQUEST_PLATFORM_METADATA_KEY_SCHEMA="sch",z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_NAME="br",z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_VERSION="brv",
|
|
366
|
+
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_BRAND="dvb",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MANUFACTURER="dvma",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MODEL="dvm",z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_TYPE="dvt",
|
|
367
|
+
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_VERSION="dvv",z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME="fw",z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION="fwv",z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION="cc",
|
|
368
|
+
z.REQUEST_PLATFORM_METADATA_KEY_MODULE_NAME="mn",z.REQUEST_PLATFORM_METADATA_KEY_MODULE_VERSION="mv",z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_NAME="os",z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_VERSION="osv",
|
|
369
|
+
z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_CATEGORY="cat",z.REQUEST_KEY_PROTOCOL_CAPP="caps",z.REQUEST_EVENT_KEY_TYPE="t",z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_EVENT_KEY_SESSION_TIME="st",z.REQUEST_EVENT_KEY_SEEK_ACT_TYPE="act",
|
|
370
|
+
z.REQUEST_EVENT_KEY_SEEK_TO_POS="skto",z.REQUEST_ERROR_EVENT_KEY_MESSAGE="err",z.REQUEST_ERROR_EVENT_KEY_FATAL="ft",z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW="new",z.REQUEST_STATE_CHANGE_EVENT_KEY_OLD="old",
|
|
371
|
+
z.REQUEST_CUSTOM_EVENT_KEY_NAME="name",z.REQUEST_CUSTOM_EVENT_KEY_ATTRIBUTES="attr",z.REQUEST_HEARTBEAT_INFO_KEY_SEQUENCE_NUMBER="seq",z.REQUEST_HEARTBEAT_INFO_KEY_STATUS="err",z.REQUEST_HEARTBEAT_INFO_KEY_ROUNDTRIP_TIME="rtt",
|
|
372
|
+
z.REQUEST_KEY_IS_AD_SESSION="ad",z.REQUEST_CDN_SERVER_IP="csi",z.convertPlayerState=function(a){switch(a){case i.PlayerState.STOPPED:return z.eStopped;case i.PlayerState.PLAYING:return z.ePlaying;case i.PlayerState.BUFFERING:
|
|
373
|
+
return z.eBuffering;case i.PlayerState.PAUSED:return z.ePaused;case i.PlayerState.NOT_MONITORED:return z.eNotMonitored;default:return z.eUnknown}},z.eStopped=1,z.ePlaying=3,z.eBuffering=6,z.ePaused=12,
|
|
374
|
+
z.eNotMonitored=98,z.eUnknown=100,z.SessionFlags={GLOBAL:0,VIDEO:1,QUALITY_METRICS:2,BITRATE_METRICS:4},z.Capabilities={INSIGHTS:0};var A=(b.JSONInterface=function(){this.encode=function(a){},this.decode=function(a){};
|
|
375
|
+
},b.LibJSONInterface=function(){this.encode=function(a){var b=null;try{b=x.stringify(a)}catch(c){}return b},this.decode=function(a){var b=null;try{b=y(a)}catch(c){}return K.isObject(b)||(b=null),b}}),B=b.CwsHeartbeat=function(){
|
|
376
|
+
function a(){}this._data={},a.apply(this,arguments),this.get=function(){return this._data},this.setField=function(a,b){this._data[a]=b},this.setInnerField=function(a,b,c){this._data[a]||(this._data[a]={}),
|
|
377
|
+
this._data[a][b]=c},this.setMessageType=function(a){this.setField(z.REQUEST_KEY_MESSAGE_TYPE,a)},this.setSessionTime=function(a){this.setField(z.REQUEST_KEY_SESSION_TIME,a)},this.setSessionStartTime=function(a){
|
|
378
|
+
this.setField(z.REQUEST_KEY_SESSION_START_TIME,a)},this.setIsLive=function(a){this.setField(z.REQUEST_KEY_IS_LIVE,a)},this.setSequenceNumber=function(a){this.setField(z.REQUEST_KEY_SEQUENCE_NUMBER,a)},
|
|
379
|
+
this.setCustomerKey=function(a){this.setField(z.REQUEST_KEY_CUSTOMER_KEY,a)},this.setClientId=function(a){this.setField(z.REQUEST_KEY_CLIENT_ID,a)},this.setClientVersion=function(a){this.setField(z.REQUEST_KEY_CLIENT_VERSION,a);
|
|
380
|
+
},this.setProtocolVersion=function(a){this.setField(z.REQUEST_KEY_PROTOCOL_VERSION,a)},this.setCapfield=function(a){this.setField(z.REQUEST_KEY_PROTOCOL_CAPP,a)},this.setSessionId=function(a){this.setField(z.REQUEST_KEY_SESSION_ID,a);
|
|
381
|
+
},this.setInstanceId=function(a){this.setField(z.REQUEST_KEY_INSTANCE_ID,a)},this.setViewerId=function(a){this.setField(z.REQUEST_KEY_VIEWER_ID,a)},this.setAssetName=function(a){this.setField(z.REQUEST_KEY_ASSET_NAME,a);
|
|
382
|
+
},this.setPlayerName=function(a){this.setField(z.REQUEST_KEY_PLAYER_NAME,a)},this.setTags=function(a){this.setField(z.REQUEST_KEY_TAGS,a)},this.setSessionFlags=function(a){this.setField(z.REQUEST_KEY_SESSION_FLAGS,a);
|
|
383
|
+
},this.setCapabilities=function(a){this.setField(z.REQUEST_KEY_CAPABILITIES,a)},this.setEvents=function(a){this.setField(z.REQUEST_KEY_EVENTS,a)},this.setIsSdkClient=function(a){this.setField(z.REQUEST_KEY_IS_SDK_CLIENT,a);
|
|
384
|
+
},this.setLogs=function(a){this.setField(z.REQUEST_KEY_LOGS,a)},this.setHeartbeatInfos=function(a){this.setField(z.REQUEST_KEY_HEARTBEAT_INFOS,a)},this.setPlayerState=function(a){this.setField(z.REQUEST_KEY_PLAYER_STATE,a);
|
|
385
|
+
},this.setPauseJoin=function(a){this.setField(z.REQUEST_KEY_PAUSE_JOIN,a)},this.setContentLength=function(a){this.setField(z.REQUEST_KEY_CONTENT_LENGTH,a)},this.setBitrate=function(a){this.setField(z.REQUEST_KEY_BITRATE,a);
|
|
386
|
+
},this.setResource=function(a){this.setField(z.REQUEST_KEY_RESOURCE,a)},this.setEncodedFrameRate=function(a){this.setField(z.REQUEST_KEY_ENCODED_FRAME_RATE,a)},this.setAverageFrameRate=function(a){this.setField(z.REQUEST_KEY_AVERAGE_FRAME_RATE,a);
|
|
387
|
+
},this.setRfpsObservationCount=function(a){this.setField(z.REQUEST_KEY_RFPS_COUNT,a)},this.setRfpsTotal=function(a){this.setField(z.REQUEST_KEY_RFPS_TOTAL,a)},this.setPlatformMetadataSchema=function(a){
|
|
388
|
+
this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_SCHEMA,a)},this.setBrowserName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_NAME,a);
|
|
389
|
+
},this.setBrowserVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_BROWSER_VERSION,a)},this.setDeviceBrand=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_BRAND,a);
|
|
390
|
+
},this.setDeviceManufacturer=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MANUFACTURER,a)},this.setDeviceModel=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_MODEL,a);
|
|
391
|
+
},this.setDeviceType=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_TYPE,a)},this.setDeviceVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_VERSION,a);
|
|
392
|
+
},this.setFrameworkName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME,a),this.setField(z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_NAME,a)},
|
|
393
|
+
this.setFrameworkVersion=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION,a),this.setField(z.REQUEST_PLATFORM_METADATA_KEY_FRAMEWORK_VERSION,a);
|
|
394
|
+
},this.setOperatingSystemName=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_NAME,a.toUpperCase())},this.setOperatingSystemVersion=function(a){
|
|
395
|
+
this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_OPERATING_SYSTEM_VERSION,a)},this.setDeviceCategory=function(a){this.setInnerField(z.REQUEST_KEY_PLATFORM_METADATA,z.REQUEST_PLATFORM_METADATA_KEY_DEVICE_CATEGORY,a);
|
|
396
|
+
},this.setPlayheadTime=function(a){this.setField(z.REQUEST_KEY_PLAYHEAD_TIME,a)},this.setBufferLength=function(a){this.setField(z.REQUEST_KEY_BUFFER_LENGTH,a)},this.setStreamUrl=function(a){this.setField(z.REQUEST_KEY_STREAM_URL,a);
|
|
397
|
+
},this.setStreamWidth=function(a){this.setField(z.REQUEST_KEY_VIDEO_WIDTH,a)},this.setStreamHeight=function(a){this.setField(z.REQUEST_KEY_VIDEO_HEIGHT,a)},this.setConnectionType=function(a){this.setField(z.REQUEST_KEY_CONNECTION_TYPE,a);
|
|
398
|
+
},this.setLinkEncryption=function(a){this.setField(z.REQUEST_KEY_LINK_ENCRYPTION,a)},this.setIsAdSession=function(){this.setField(z.REQUEST_KEY_IS_AD_SESSION,!0)},this.setSignalStrength=function(a){this.setField(z.REQUEST_KEY_SIGNAL_STRENGTH,a);
|
|
399
|
+
},this.setModuleName=function(a){this.setInnerField(z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION,z.REQUEST_PLATFORM_METADATA_KEY_MODULE_NAME,a)},this.setModuleVersion=function(a){this.setInnerField(z.REQUEST_PLATFORM_METADATA_KEY_CLIENT_CONFIGURATION,z.REQUEST_PLATFORM_METADATA_KEY_MODULE_VERSION,a);
|
|
400
|
+
},this.setCDNServerIP=function(a){this.setField(z.REQUEST_CDN_SERVER_IP,a)},this.setCdnName=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_NAME,a)},this.setCdnType=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_TYPE,a);
|
|
401
|
+
},this.setCdnLabel=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_LABEL,a)},this.setCdnValue=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_VALUE,a)},this.setCdnHttpRespCode=function(a){null!=a&&this.setField(z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE,a);
|
|
402
|
+
}},C=b.CwsSession=function(b,c,d,e,g,h,j,k,l,m,n,o){function p(a,b,c,d,e,f,g,h,i,j,k,l){this._eventQueue=a,this._client=b,this._clientSettings=c,this._logger=d,this._logger.setModuleName("CwsSession"),
|
|
403
|
+
this._exceptionCatcher=e,this._timer=f,this._gatewayControl=g,this._cwsProtocol=h,this._time=i,this._logBuffer=j,this._clientConfig=k,this._contentMetadata=l,null!=this._contentMetadata&&(q._encodedFrameRate=this._contentMetadata.encodedFrameRate,
|
|
404
|
+
q._streamUrl=this._contentMetadata.streamUrl,q._contentLengthSec=this._contentMetadata.duration)}var q=this;q._heartbeatTimerCancel=null,q._contentMetadata=null,q._startTimeMs=0,q._heartbeatSequenceNumber=0,
|
|
405
|
+
q._sessionFlags=z.SessionFlags.GLOBAL,q._capabilities=z.Capabilities.INSIGHTS,q._heartbeatInfos=[],q._lastRequestSentMs=-1,q._bitrateKbps=-2,q._resource=null,q._playerState=i.PlayerState.UNKNOWN,q._encodedFrameRate=-1,
|
|
406
|
+
q._contentLengthSec=-1,q._streamUrl=null,q._width=-1,q._height=-1,q._playerStateManager=null,q._assetName=null,q._viewerId=null,q._playerName=null,q._isLive=null,q._tags={},q._browserName=null,q._browserVersion=null,
|
|
407
|
+
q._deviceBrand=null,q._deviceManufacturer=null,q._deviceModel=null,q._deviceType=null,q._deviceVersion=null,q._frameworkName=null,q._frameworkVersion=null,q._operatingSystemName=null,q._operatingSystemVersion=null,
|
|
408
|
+
q._deviceCategory=null,q._moduleName=null,q._moduleVersion=null,q._connectionType=null,q._linkEncryption=null,q._cdnServerIP=null,q._customMetric=null,q._pauseJoin=!1,q._hasJoined=!1,q._cleanedUp=!1,q._willEndSoon=!1,
|
|
409
|
+
q._rfpsTimerCancel=null,q._rfpsTimerInterval=1e3,q._playingFpsObservationCount=0,q._playingFpsTotal=0,q.whitelistedIdentifiers={},q._uniqueIdentifiers={},q._startConvivaIdCollection=!1,q._cdnName=null,
|
|
410
|
+
q._cdnType=null,q._cdnLabel=null,q._cdnValue=null,q._cdnHttpRespCode=null,q._cdnTimerCancel=null,q._cdnTimerInterval=12e4,q._cdnIpAutoDetectionEnabled=z.DEFAULT_CDN_SERVER_IP_AUTODETECT_ENABLED,q._customerSetCdnIp=!1,
|
|
411
|
+
p.apply(this,arguments),this.cleanup=function(){this._clientConfig=null,this._logBuffer=null,this._systemSettings=null,this._time=null,this._cwsProtocol=null,this._gatewayControl=null,this._timer=null,
|
|
412
|
+
this._exceptionCatcher=null,this._logger=null,this._clientSettings=null,this._client=null,this._eventQueue.flush(),this._eventQueue=null,this._customMetric=null,this._cleanedUp=!0},this.start=function(a){
|
|
413
|
+
this._session=a,this._global=this._session._global,this._logger.setSessionId(this._session._id),this._startTimeMs=this._time.current(),this.isVideoSession()||this.isAdSession()?(this._sessionFlags+=C.DEFAULT_VIDEO_SESSION_FLAGS,
|
|
414
|
+
q._logger.info("start(): assetName="+q._contentMetadata.assetName)):q._logger.info("start()"+q.sessionTypeTag())},this.willEndSoon=function(){this._willEndSoon=!0},this.initialize=function(){this._logger.debug("initialize()"),
|
|
415
|
+
(this.isVideoSession()||this.isAdSession())&&(q.setStatesFromContentMetadata(),q.enqueueEventForContentMetadata(),q.validateContentMetadata())},this.end=function(){(this.isVideoSession()||this.isAdSession())&&(this._logger.debug("end(): schedule the last hb before session cleanup"+q.sessionTypeTag()),
|
|
416
|
+
this.enqueueSessionEndEvent()),this.cancelCdnTimer(),this.cancelHeartbeatTimer(),this.sendHeartbeat()},this.startSendingHeartbeats=function(){this._willEndSoon||(this.sendHeartbeat(),this.resetHeartbeatTimer());
|
|
417
|
+
},this.setBrowserName=function(a){var b=q._browserName;b!==a&&null!=a&&(q._logger.debug("Change browserName from "+b+" to "+a),q._browserName=a)},this.setBrowserVersion=function(a){var b=q._browserVersion;
|
|
418
|
+
b!==a&&null!=a&&(q._logger.debug("Change browserVersion from "+b+" to "+a),q._browserVersion=a)},this.setDeviceBrand=function(a){var b=q._deviceBrand;b!==a&&null!=a&&(q._logger.debug("Change deviceBrand from "+b+" to "+a),
|
|
419
|
+
q._deviceBrand=a)},this.setDeviceManufacturer=function(a){var b=q._deviceManufacturer;b!==a&&null!=a&&(q._logger.debug("Change deviceManufacturer from "+b+" to "+a),q._deviceManufacturer=a)},this.setDeviceModel=function(a){
|
|
420
|
+
var b=q._deviceModel;b!==a&&null!=a&&(q._logger.debug("Change deviceModel from "+b+" to "+a),q._deviceModel=a)},this.setDeviceType=function(a){var b=q._deviceType;b!==a&&null!=a&&(q._logger.debug("Change deviceType from "+b+" to "+a),
|
|
421
|
+
q._deviceType=a)},this.setDeviceVersion=function(a){var b=q._deviceVersion;b!==a&&null!=a&&(q._logger.debug("Change deviceVersion from "+b+" to "+a),q._deviceVersion=a)},this.setOperatingSystemName=function(a){
|
|
422
|
+
var b=q._operatingSystemName;b!==a&&null!=a&&(q._logger.debug("Change operatingSystemName from "+b+" to "+a),q._operatingSystemName=a)},this.setOperatingSystemVersion=function(a){var b=q._operatingSystemVersion;
|
|
423
|
+
b!==a&&null!=a&&(q._logger.debug("Change operatingSystemVersion from "+b+" to "+a),q._operatingSystemVersion=a)},this.setDeviceCategory=function(a){var b=q._deviceCategory;b!==a&&null!=a&&(q._logger.debug("Change operatingSystemVersion from "+b+" to "+a),
|
|
424
|
+
q._deviceCategory=a)},this.getFrameworkName=function(){return q._frameworkName},this.setFrameworkName=function(a){var b=q._frameworkName;b!==a&&null!=a&&(q._logger.debug("Change frameworkName from "+b+" to "+a),
|
|
425
|
+
q._frameworkName=a)},this.getFrameworkVersion=function(){return q._frameworkVersion},this.setFrameworkVersion=function(a){var b=q._frameworkVersion;b!==a&&null!=a&&(q._logger.debug("Change frameworkVersion from "+b+" to "+a),
|
|
426
|
+
q._frameworkVersion=a)},this.setStreamUrl=function(a){if(null==q._contentMetadata.streamUrl){var b=q._streamUrl;b!==a&&null!=a&&(q._logger.debug("Change stream url from "+b+" to "+a),q._streamUrl=a)}},
|
|
427
|
+
this.startCdnTimer=function(){q.cancelCdnTimer(),q._customerSetCdnIp||(q.detectCDNServerIp(),q._cdnTimerCancel=q._timer.create(q.detectCDNServerIp,q._cdnTimerInterval,"CwsSession.startCdnTimer"),q._logger.debug("fetching cdn ip timer started"));
|
|
428
|
+
},this.cancelCdnTimer=function(){null!=q._cdnTimerCancel&&(q._cdnTimerCancel(),q.enqueueAutoCdnChangeEvent(null,null,null,null,null),q._cdnTimerCancel=null)},this.detectCDNServerIp=function(){q._logger.debug("detectCDNServerIp(): For "+q._streamUrl),
|
|
429
|
+
q._cdnIpAutoDetectionEnabled?q.makeAkamaiHeadRequest():q.cancelCdnTimer()},this.makeAkamaiHeadRequest=function(){try{if("function"==typeof XMLHttpRequest){var a=new XMLHttpRequest;a.open("HEAD",q._streamUrl,!0),
|
|
430
|
+
a.setRequestHeader("Pragma","akamai-x-cache-on"),a.onreadystatechange=function(){4===a.readyState&&(200===a.status&&null!=a.getResponseHeader("X-Cache")?q.enqueueAutoCdnChangeEvent("Akamai","header","X-Cache",""+a.getResponseHeader("X-Cache"),""+a.status):q.enqueueAutoCdnChangeEvent("null","header","null","null",""+a.status));
|
|
431
|
+
},a.send()}else q._logger.info("xmlhttpreq is not available here to fetch CDN Server Ip")}catch(b){q._logger.info("Exception caught in makeAkamaiHeadRequest")}},this.enqueueAutoCdnChangeEvent=function(a,b,c,d,e){
|
|
432
|
+
var f={},g={};q._cdnName!=a&&(null!==q._cdnName&&(g[z.REQUEST_KEY_CDN_NAME]=q._cdnName),q._cdnName=a,null===q._cdnName?f[z.REQUEST_KEY_CDN_NAME]="null":f[z.REQUEST_KEY_CDN_NAME]=q._cdnName),q._cdnType!=b&&(null!==q._cdnType&&(g[z.REQUEST_KEY_CDN_TYPE]=q._cdnType),
|
|
433
|
+
q._cdnType=b,null===q._cdnType?f[z.REQUEST_KEY_CDN_TYPE]="null":f[z.REQUEST_KEY_CDN_TYPE]=q._cdnType),q._cdnLabel!=c&&(null!==q._cdnLabel&&(g[z.REQUEST_KEY_CDN_LABEL]=q._cdnLabel),q._cdnLabel=c,null===q._cdnLabel?f[z.REQUEST_KEY_CDN_LABEL]="null":f[z.REQUEST_KEY_CDN_LABEL]=q._cdnLabel),
|
|
434
|
+
q._cdnValue!=d&&(null!==q._cdnValue&&(g[z.REQUEST_KEY_CDN_VALUE]=q._cdnValue),q._cdnValue=d,null===q._cdnValue?f[z.REQUEST_KEY_CDN_VALUE]="null":f[z.REQUEST_KEY_CDN_VALUE]=q._cdnValue),q._cdnHttpRespCode!=e&&(null!==q._cdnHttpRespCode&&(g[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]=q._cdnHttpRespCode),
|
|
435
|
+
q._cdnHttpRespCode=e,null===q._cdnHttpRespCode?f[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]="null":f[z.REQUEST_KEY_CDN_HTTP_RESPONSE_CODE]=q._cdnHttpRespCode),"{}"!=K.ObjectToString(f)&&q.declareStateChange(f,g);
|
|
436
|
+
},this.setBitrateKbps=function(a){var b=q._bitrateKbps;b!==a&&a>0&&(q._logger.info("Change bitrate from "+b+" to "+a),q.enqueueBitrateChangeEvent(b,a),q._bitrateKbps=a)},this.setResource=function(a){var b=q._resource;
|
|
437
|
+
b!==a&&null!=a&&(q._logger.info("Change resource from "+b+" to "+a),q._resource=a)},this.setAssetName=function(a){q._assetName!==a&&null!=a&&(q._logger.info("Change assetName from "+q._assetName+" to "+a),
|
|
438
|
+
q._assetName=a)},this.setIsLive=function(a){var b=q._isLive;b!==a&&null!=a&&(q._logger.info("Change isLive from "+b+" to "+a),q._isLive=a)},this.setViewerId=function(a){var b=q._viewerId;b!==a&&null!=a&&(q._logger.info("Change viewerId from "+b+" to "+a),
|
|
439
|
+
q._viewerId=a)},this.setPlayerName=function(a){var b=q._playerName;b!==a&&null!=a&&(q._logger.info("Change playerName from "+b+" to "+a),q._playerName=a)},this.setTags=function(a){var b=q._tags;K.ObjectShallowEquals(b,a)||null==a||(q._logger.info("Change tags from "+K.ObjectToString(b)+" to "+K.ObjectToString(a)),
|
|
440
|
+
q._tags=a)},this.setEncodedFrameRate=function(a){q._contentMetadata.encodedFrameRate>0||(q._logger.debug("setEncodedFrameRate(): "+a),q._encodedFrameRate=a)},this.setContentLength=function(a){q._contentMetadata.duration>0||(q._logger.debug("setContentLength(): "+a),
|
|
441
|
+
q._contentLengthSec=a)},this.setPlayerState=function(a){if(q._hasJoined||a!=i.PlayerState.PLAYING||(q.togglePauseJoin(!1),q._hasJoined=!0,K.isValidString(q._contentMetadata.viewerId)||q._logger.error("Missing viewerId. viewerId should be updated before first frame is rendered."),
|
|
442
|
+
K.isValidString(q._contentMetadata.streamType)&&f.StreamType.UNKNOWN!==q._contentMetadata.streamType||q._logger.error("Missing streamType - Live or VOD. streamType should be updated before first frame is rendered."),
|
|
443
|
+
K.isValidString(q._contentMetadata.applicationName)||q._logger.error("Missing applicationName. applicationName should be updated before first frame is rendered.")),q._playerState!==a){var b=q._playerState;
|
|
444
|
+
q._logger.info("setPlayerState(): changing player state from "+b+" to "+a),q.enqueuePlayerStateChangeEvent(b,a),q._playerState=a}},this.setStreamResolutionWidth=function(a){var b=q._width;b!==a&&a>0&&(q._logger.debug("Change stream resolution width from "+b+" to "+a),
|
|
445
|
+
q.enqueueResolutionWidthChangeEvent(b,a),q._width=a)},this.setStreamResolutionHeight=function(a){var b=q._height;b!==a&&a>0&&(q._logger.debug("Change stream resolution height from "+b+" to "+a),q.enqueueResolutionHeightChangeEvent(b,a),
|
|
446
|
+
q._height=a)},this.setConnectionType=function(a){var b=q._connectionType;b!==a&&null!=a&&(q._logger.debug("Change network connection type from "+b+" to "+a),q.enqueueConnectionTypeChangeEvent(b,a),q._connectionType=a);
|
|
447
|
+
},this.setLinkEncryption=function(a){var b=q._linkEncryption;b!==a&&null!=a&&(q._logger.debug("Change network link encryption from "+b+" to "+a),q.enqueueLinkEncryptionChangeEvent(b,a),q._linkEncryption=a);
|
|
448
|
+
},this.setCDNServerIP=function(a){q._customerSetCdnIp=!0,q.cancelCdnTimer();var b=q._cdnServerIP;b!==a&&K.isValidString(a)&&(q._logger.debug("Change CDN Server IP from "+b+" to "+a),q.enqueueCDNServerIPChangeEvent(b,a),
|
|
449
|
+
q._cdnServerIP=a)},this.togglePauseJoin=function(a){if(q._logger.debug("togglePauseJoin()"),q._pauseJoin===a)return void q._logger.debug("togglePauseJoin(): same value, ignoring");var b=q._pauseJoin,c=!q._pauseJoin;
|
|
450
|
+
q.enqueuePauseJoinChangeEvent(b,c),q._pauseJoin=!q._pauseJoin},this.sendError=function(a,b){q.enqueueErrorEvent(a,b)},this.enqueueEvent=function(a,b){if(b[z.REQUEST_EVENT_KEY_TYPE]=a,b[z.REQUEST_EVENT_KEY_SESSION_TIME]=this.getSessionTime(),
|
|
451
|
+
b[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=this._eventQueue.getNumber(),this._playerStateManager){var c=O.Integer(this._playerStateManager.getPHT(),0,null,-1),d=O.Integer(this._playerStateManager.getBufferLength(),0,null,-1);
|
|
452
|
+
c>=0&&(b[z.REQUEST_KEY_PLAYHEAD_TIME]=c),d>0&&(b[z.REQUEST_KEY_BUFFER_LENGTH]=d)}this._eventQueue.enqueue(b)},this.setPlayerStateManager=function(a){q._playerStateManager=a,null!=q._playerStateManager?q.startRfpsTimer():q.cancelRfpsTimer();
|
|
453
|
+
},this.enqueueSessionEndEvent=function(){var a=this.getSessionTime(),b=this.getNextEventNumber(),c=this._cwsProtocol.generateSessionEndEvent(b,a);this._eventQueue.enqueue(c)},this.enqueueErrorEvent=function(a,b){
|
|
454
|
+
var c={};c[z.REQUEST_ERROR_EVENT_KEY_MESSAGE]=a,c[z.REQUEST_ERROR_EVENT_KEY_FATAL]=b,this.enqueueEvent(z.EVENT_TYPE_ERROR,c)},this.enqueueBitrateChangeEvent=function(a,b){var c={},d={};a>0&&(d[z.REQUEST_KEY_BITRATE]=a),
|
|
455
|
+
c[z.REQUEST_KEY_BITRATE]=b,this.declareStateChange(c,d)},this.enqueueSeekEvent=function(a,b){var c={};c[z.REQUEST_EVENT_KEY_SEEK_ACT_TYPE]=a,b>=0&&(c[z.REQUEST_EVENT_KEY_SEEK_TO_POS]=b),this.enqueueEvent(z.EVENT_TYPE_SEEK,c);
|
|
456
|
+
},this.enqueueResolutionWidthChangeEvent=function(a,b){var c={},d={};-1!==a&&(d[z.REQUEST_KEY_VIDEO_WIDTH]=a),c[z.REQUEST_KEY_VIDEO_WIDTH]=b,this.declareStateChange(c,d)},this.enqueueResolutionHeightChangeEvent=function(a,b){
|
|
457
|
+
var c={},d={};-1!==a&&(d[z.REQUEST_KEY_VIDEO_HEIGHT]=a),c[z.REQUEST_KEY_VIDEO_HEIGHT]=b,this.declareStateChange(c,d)},this.enqueueConnectionTypeChangeEvent=function(a,b){var c={},d={};null!==a&&(d[z.REQUEST_KEY_CONNECTION_TYPE]=a),
|
|
458
|
+
c[z.REQUEST_KEY_CONNECTION_TYPE]=b,this.declareStateChange(c,d)},this.enqueueLinkEncryptionChangeEvent=function(a,b){var c={},d={};null!==a&&(d[z.REQUEST_KEY_LINK_ENCRYPTION]=a),c[z.REQUEST_KEY_LINK_ENCRYPTION]=b,
|
|
459
|
+
this.declareStateChange(c,d)},this.enqueueCDNServerIPChangeEvent=function(a,b){var c={},d={};K.isValidString(a)&&(d[z.REQUEST_CDN_SERVER_IP]=a),c[z.REQUEST_CDN_SERVER_IP]=b,this.declareStateChange(c,d);
|
|
460
|
+
},this.enqueuePauseJoinChangeEvent=function(a,b){var c={},d={};d[z.REQUEST_KEY_PAUSE_JOIN]=a,c[z.REQUEST_KEY_PAUSE_JOIN]=b,this.declareStateChange(c,d)},this.enqueuePlayerStateChangeEvent=function(a,b){
|
|
461
|
+
var c={},d={};c[z.REQUEST_KEY_PLAYER_STATE]=z.convertPlayerState(b),d[z.REQUEST_KEY_PLAYER_STATE]=z.convertPlayerState(a),this.declareStateChange(c,d)},this.declareStateChange=function(a,b){var c={};c[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=a,
|
|
462
|
+
null!=b&&K.dictCount(b)>0&&(c[z.REQUEST_STATE_CHANGE_EVENT_KEY_OLD]=b),this.enqueueEvent(z.EVENT_TYPE_STATE_CHANGE,c)},this.enqueueCustomEvent=function(a,b){var c={};c[z.REQUEST_CUSTOM_EVENT_KEY_NAME]=a,
|
|
463
|
+
K.dictCount(b)>0&&(c[z.REQUEST_CUSTOM_EVENT_KEY_ATTRIBUTES]=b),this.enqueueEvent(z.EVENT_TYPE_CUSTOM,c)},this.cancelHeartbeatTimer=function(){null!=q._heartbeatTimerCancel&&(q._heartbeatTimerCancel(),q._heartbeatTimerCancel=null);
|
|
464
|
+
},this.resetHeartbeatTimer=function(){q.cancelHeartbeatTimer();var a=1e3*q._clientSettings.heartbeatInterval;q._heartbeatTimerCancel=q._timer.create(q.sendHeartbeat,a,"Session.sendHeartbeat")},this.cancelRfpsTimer=function(){
|
|
465
|
+
null!=q._rfpsTimerCancel&&(q._rfpsTimerCancel(),q._rfpsTimerCancel=null)},this.startRfpsTimer=function(){q.cancelRfpsTimer(),q._rfpsTimerCancel=q._timer.create(q.countRfps,q._rfpsTimerInterval,"Session.startRfpsTimer");
|
|
466
|
+
},this.createHeartbeatInfo=function(){var a={};a.err="pending",a.seq=q._heartbeatSequenceNumber-1,a.sentAt=q.getSessionTime(),a.rtt=-1,q._heartbeatInfos.push(a);for(var b=0;b<q._heartbeatInfos.length;b++)a=q._heartbeatInfos[b],
|
|
467
|
+
"ok"===a.err&&(q._heartbeatInfos.splice(b,1),b--)},this.updateHeartbeatInfoOnFailure=function(a,b){for(var c=0;c<q._heartbeatInfos.length;c++){var d=q._heartbeatInfos[c],e=d.seq;e===a&&(d.rtt=q.getSessionTime()-d.sentAt,
|
|
468
|
+
d.err=b)}},this.updateHeartbeatInfoOnSuccess=function(a){for(var b=0;b<q._heartbeatInfos.length;b++){var c=q._heartbeatInfos[b],d=c.seq;d===a&&(c.rtt=q.getSessionTime()-c.sentAt,c.err="ok")}},this.removeOutdatedHeartbeatInfos=function(){
|
|
469
|
+
for(var a,b,c=q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS),d=[],e=-1,f=0;f<q._heartbeatInfos.length;f++)if(b=q._heartbeatInfos[f],"ok"==b.err){e=b.seq;break}for(var g=0;g<q._heartbeatInfos.length;g++)b=q._heartbeatInfos[g],
|
|
470
|
+
a=b.seq,(a<q._heartbeatSequenceNumber-c||e>a)&&d.push(g);for(var h=[],i=0;i<q._heartbeatInfos.length;i++)b=q._heartbeatInfos[i],a=b.seq,d.indexOf(i)<0&&h.push(q._heartbeatInfos[i]);q._heartbeatInfos=h},
|
|
471
|
+
this.compileHeartbeatInfos=function(){q.removeOutdatedHeartbeatInfos();for(var a=[],b=0;b<q._heartbeatInfos.length;b++){var c=q._heartbeatInfos[b],d={};d[z.REQUEST_HEARTBEAT_INFO_KEY_SEQUENCE_NUMBER]=c.seq,
|
|
472
|
+
d[z.REQUEST_HEARTBEAT_INFO_KEY_ROUNDTRIP_TIME]=c.rtt,d[z.REQUEST_HEARTBEAT_INFO_KEY_STATUS]=c.err,a.push(d)}return a},this.makeHeartbeat=function(){var a=q._eventQueue.flush();if(q.isGlobalSession()&&0===a.length)return null;
|
|
473
|
+
var b=new B;if(b.setMessageType(z.MESSAGE_TYPE_SESSION_HEARTBEAT),b.setCustomerKey(q._clientSettings.customerKey),b.setClientId(q._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)),b.setSessionId(q._session._id),
|
|
474
|
+
b.setSequenceNumber(q._heartbeatSequenceNumber),b.setProtocolVersion(z.version),b.setClientVersion(q._client.version),b.setInstanceId(q._client.getId()),b.setCapfield(0),null!=q._connectionType&&b.setConnectionType(q._connectionType),
|
|
475
|
+
null!=q._linkEncryption&&b.setLinkEncryption(q._linkEncryption),K.isValidString(q._cdnServerIP)&&b.setCDNServerIP(q._cdnServerIP),b.setPlatformMetadataSchema(z.SDK_METADATA_SCHEMA),null!=q._browserName&&b.setBrowserName(q._browserName),
|
|
476
|
+
null!=q._browserVersion&&b.setBrowserVersion(q._browserVersion),null!=q._deviceBrand&&b.setDeviceBrand(q._deviceBrand),null!=q._deviceManufacturer&&b.setDeviceManufacturer(q._deviceManufacturer),null!=q._deviceModel&&b.setDeviceModel(q._deviceModel),
|
|
477
|
+
null!=q._deviceType&&b.setDeviceType(q._deviceType),null!=q._deviceVersion&&b.setDeviceVersion(q._deviceVersion),null!=q._operatingSystemName&&b.setOperatingSystemName(q._operatingSystemName),null!=q._operatingSystemVersion&&b.setOperatingSystemVersion(q._operatingSystemVersion),
|
|
478
|
+
null!=q._deviceCategory&&b.setDeviceCategory(q._deviceCategory),null!=q._frameworkName&&b.setFrameworkName(q._frameworkName),null!=q._frameworkVersion&&b.setFrameworkVersion(q._frameworkVersion),null!=q._playerStateManager&&(q._moduleName=q._playerStateManager.getModuleName(),
|
|
479
|
+
null!=q._moduleName&&b.setModuleName(q._moduleName),q._moduleVersion=q._playerStateManager.getModuleVersion(),null!=q._moduleVersion&&b.setModuleVersion(q._moduleVersion),null!=q._playerStateManager.getPlayerType()&&(q._frameworkName=q._playerStateManager.getPlayerType(),
|
|
480
|
+
b.setFrameworkName(q._frameworkName)),null!=q._playerStateManager.getPlayerVersion()&&(q._frameworkVersion=q._playerStateManager.getPlayerVersion(),b.setFrameworkVersion(q._frameworkVersion))),null!=q._viewerId&&b.setViewerId(q._viewerId),
|
|
481
|
+
K.dictCount(q._tags)>0&&b.setTags(q._tags),q.isVideoSession()||q.isAdSession()){q.isAdSession()&&b.setIsAdSession(),null!=q._assetName&&b.setAssetName(q._assetName),b.setSessionFlags(q._sessionFlags);var c=z.convertPlayerState(q._playerState);
|
|
482
|
+
b.setPlayerState(c),b.setPauseJoin(q._pauseJoin),null!=q._playerName&&b.setPlayerName(q._playerName),null!=q._isLive&&b.setIsLive(q._isLive),q._contentLengthSec>0&&b.setContentLength(q._contentLengthSec),
|
|
483
|
+
q._bitrateKbps>0&&b.setBitrate(q._bitrateKbps),null!==q._resource&&b.setResource(q._resource),q._encodedFrameRate>0&&b.setEncodedFrameRate(q._encodedFrameRate);var d,e=-1,f=-1;null!=q._playerStateManager&&(e=O.Integer(q._playerStateManager.getPHT(),0,null,-1),
|
|
484
|
+
f=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1),d=q._playerStateManager.getSignalStrength()),e>=0&&b.setPlayheadTime(e),f>0&&b.setBufferLength(f);var g=q.updateAverageFrameRate();if(g>0&&b.setAverageFrameRate(g),
|
|
485
|
+
q._playingFpsTotal>0&&b.setRfpsTotal(O.Integer(q._playingFpsTotal,0,null,-1)),q._playingFpsObservationCount>0&&b.setRfpsObservationCount(O.Integer(q._playingFpsObservationCount,0,null,-1)),d!==i.DEFAULT_SIGNAL_STRENGTH&&b.setSignalStrength(d),
|
|
486
|
+
null!=q._streamUrl&&b.setStreamUrl(q._streamUrl),q._width>0&&b.setStreamWidth(q._width),q._height>0&&b.setStreamHeight(q._height),null!=q._customMetric)for(var h in q._customMetric)b.setField(h,q._customMetric[h]);
|
|
487
|
+
}else b.setSessionFlags(z.SessionFlags.GLOBAL);if(a.length>0&&b.setEvents(a),b.setCapabilities(q._capabilities),b.setIsSdkClient(!0),q._clientConfig.get(G.CONFIG_KEY_SEND_LOGS)&&b.setLogs(q._logBuffer.flush()),
|
|
488
|
+
q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS)>0){var j=q.compileHeartbeatInfos();j.length>0&&b.setHeartbeatInfos(j)}return 0==q._heartbeatSequenceNumber&&(b=q.cloneHearbeatWithBrowserTags(b)),0!=q._heartbeatSequenceNumber&&(b=q.cloneHeartbeatWithConvivaIdTags(b)),
|
|
489
|
+
b.setSessionStartTime(q._startTimeMs),b.setSessionTime(q.getSessionTime()),q._cdnIpAutoDetectionEnabled&&(b.setCdnName(q._cdnName),b.setCdnType(q._cdnType),b.setCdnLabel(q._cdnLabel),b.setCdnValue(q._cdnValue),
|
|
490
|
+
b.setCdnHttpRespCode(q._cdnHttpRespCode)),q._heartbeatSequenceNumber++,b.get()},this.cloneHeartbeatWithConvivaIdTags=function(a){var b=q._uniqueIdentifiers,c={};for(var d in a._data.tags)b.hasOwnProperty(d)||(c[d]=a._data.tags[d]);
|
|
491
|
+
a._data.tags=c,q._uniqueIdentifiers={};for(var e=0;e<q.whitelistedIdentifiers.length;e++)q._client._uniqueIdentifiers.hasOwnProperty(q.whitelistedIdentifiers[e])?q._client._userPrefForData.hasOwnProperty(q.whitelistedIdentifiers[e])?q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPTOUT,
|
|
492
|
+
q._client._uniqueIdentifierCallback("End-user chose to opt-out of personal data collection")):q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_USER_OPT_DELETE,
|
|
493
|
+
q._client._uniqueIdentifierCallback("End-user chose to opt-out of personal data collection")):q._client._userPrefForData[q.whitelistedIdentifiers[e]]==G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION?(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_PRIVACY_RESTRICTION,
|
|
494
|
+
q._client._uniqueIdentifierCallback("End-user used privacy settings and chose to opt-out of personal data collection")):(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=q._client._uniqueIdentifiers[q.whitelistedIdentifiers[e]],
|
|
495
|
+
q._client._uniqueIdentifierCallback("Data collection successful")):(q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=q._client._uniqueIdentifiers[q.whitelistedIdentifiers[e]],
|
|
496
|
+
q._client._uniqueIdentifierCallback("Data collection successful")):q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+q.whitelistedIdentifiers[e]]=G.ConvivaIdErrorCodes.CONVIVAID_NA;var f={};for(var g in b){
|
|
497
|
+
var h=g.split(".");"{}"!=JSON.stringify(q.whitelistedIdentifiers)&&-1!=q.whitelistedIdentifiers.indexOf(""+h[2])||b[G.CONVIVAID_FP_PREFIX+""+h[2]]==G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION||(q._client._uniqueIdentifierCallback("Data collection restricted from Conviva back-end"),
|
|
498
|
+
q._uniqueIdentifiers[G.CONVIVAID_FP_PREFIX+""+h[2]]=G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION,f[G.CONVIVAID_FP_PREFIX+""+h[2]]=G.ConvivaIdErrorCodes.CONVIVAID_SERVER_RESTRICTION)}if("{}"!==JSON.stringify(q._uniqueIdentifiers)){
|
|
499
|
+
var i=K.ObjectShallowCopy(q._uniqueIdentifiers);for(var j in a._data.tags)i[j]=a._data.tags[j];if(a._data.tags=i,!K.ObjectShallowEquals(b,q._uniqueIdentifiers)){var k=null,l={};if("{}"!==JSON.stringify(f)&&(l[z.REQUEST_KEY_TAGS]=f),
|
|
500
|
+
"{}"!==JSON.stringify(b)){k={};for(var m in b)void 0!==q._uniqueIdentifiers[m]&&b[m]!==q._uniqueIdentifiers[m]&&(void 0==l[z.REQUEST_KEY_TAGS]&&(l[z.REQUEST_KEY_TAGS]={}),l[z.REQUEST_KEY_TAGS][m]=q._uniqueIdentifiers[m]);
|
|
501
|
+
for(m in q._uniqueIdentifiers)b.hasOwnProperty(m)&&b[m]===q._uniqueIdentifiers[m]||(void 0==l[z.REQUEST_KEY_TAGS]&&(l[z.REQUEST_KEY_TAGS]={}),l[z.REQUEST_KEY_TAGS][m]=q._uniqueIdentifiers[m])}"{}"==JSON.stringify(b)&&(l[z.REQUEST_KEY_TAGS]=q._uniqueIdentifiers);
|
|
502
|
+
var n={};if(n[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=l,n[z.REQUEST_EVENT_KEY_TYPE]=z.EVENT_TYPE_STATE_CHANGE,n[z.REQUEST_EVENT_KEY_SESSION_TIME]=q.getSessionTime(),n[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=q._eventQueue.getNumber(),
|
|
503
|
+
q._playerStateManager){var o=O.Integer(q._playerStateManager.getPHT(),0,null,-1),p=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1);o>=0&&(n[z.REQUEST_KEY_PLAYHEAD_TIME]=o),p>0&&(n[z.REQUEST_KEY_BUFFER_LENGTH]=p);
|
|
504
|
+
}void 0==a._data.evs&&(a._data.evs=[]),a._data.evs.push(n)}}return a},this.cloneHearbeatWithBrowserTags=function(a){var b=q.getBrowserMetadata();if("{}"!==JSON.stringify(b)){var c=K.ObjectShallowCopy(b);
|
|
505
|
+
for(var d in a._data.tags)c[d]=a._data.tags[d];a._data.tags=c;var e={};e[z.REQUEST_KEY_TAGS]=b;var f={};if(f[z.REQUEST_STATE_CHANGE_EVENT_KEY_NEW]=e,f[z.REQUEST_EVENT_KEY_TYPE]=z.EVENT_TYPE_STATE_CHANGE,
|
|
506
|
+
f[z.REQUEST_EVENT_KEY_SESSION_TIME]=q.getSessionTime(),f[z.REQUEST_EVENT_KEY_SEQUENCE_NUMBER]=q._eventQueue.getNumber(),q._playerStateManager){var g=O.Integer(q._playerStateManager.getPHT(),0,null,-1),h=O.Integer(q._playerStateManager.getBufferLength(),0,null,-1);
|
|
507
|
+
g>=0&&(f[z.REQUEST_KEY_PLAYHEAD_TIME]=g),h>0&&(f[z.REQUEST_KEY_BUFFER_LENGTH]=h)}return void 0==a._data.evs&&(a._data.evs=[]),a._data.evs.push(f),a}return a},this.getBrowserMetadata=function(){var a={};
|
|
508
|
+
if("undefined"!=typeof navigator&&null!=navigator){if(a["c3.fp.cookie"]=null!=navigator.cookieEnabled&&void 0!=navigator.cookieEnabled?""+navigator.cookieEnabled:"",a["c3.fp.memory"]=null!=navigator.deviceMemory&&void 0!=navigator.deviceMemory?""+navigator.deviceMemory:"",
|
|
509
|
+
a["c3.fp.hwConc"]=null!=navigator.hardwareConcurrency&&void 0!=navigator.hardwareConcurrency?""+navigator.hardwareConcurrency:"",a["c3.fp.java"]=""+("function"!=typeof navigator.javaEnabled)?"false":navigator.javaEnabled(),
|
|
510
|
+
a["c3.fp.lang"]=null!=navigator.language&&void 0!=navigator.language?""+navigator.language:"",a["c3.fp.langs"]=null!=navigator.languages&&void 0!=navigator.languages&&navigator.languages.length>0?""+navigator.languages.toString():"",
|
|
511
|
+
a["c3.fp.maxTp"]=null!=navigator.maxTouchPoints&&void 0!=navigator.maxTouchPoints?""+navigator.maxTouchPoints:"",a["c3.fp.plugins"]="",null!=navigator.plugins&&navigator.plugins.length>0)for(var b=0;b<navigator.plugins.length;b++)a["c3.fp.plugins"]+=navigator.plugins[b].name+",";
|
|
512
|
+
if(a["c3.fp.mime"]="",null!=navigator.mimeTypes&&navigator.mimeTypes.length>0)for(var c=0;c<navigator.mimeTypes.length;c++)a["c3.fp.mime"]+=navigator.mimeTypes[c].type+",";a["c3.fp.sysLang"]=null!=navigator.systemLanguage&&void 0!=navigator.systemLanguage?""+navigator.systemLanguage:"",
|
|
513
|
+
a["c3.fp.platform"]=null!=navigator.platform&&void 0!=navigator.platform?""+navigator.platform:"",a["c3.fp.product"]=null!=navigator.product&&void 0!=navigator.product?""+navigator.product:"",a["c3.fp.productSub"]=null!=navigator.productSub&&void 0!=navigator.productSub?""+navigator.productSub:"",
|
|
514
|
+
a["c3.fp.vendor"]=null!=navigator.vendor&&void 0!=navigator.vendor?""+navigator.vendor:"",a["c3.fp.vendorSub"]=null!=navigator.vendorSub&&void 0!=navigator.vendorSub?""+navigator.vendorSub:"";var d=q.getHashedCanvasFingerprint();
|
|
515
|
+
""!=d&&(a["c3.fp.canvFp"]=d)}return"undefined"!=typeof window&&null!=window&&(null!=window.screen&&(a["c3.fp.availHeight"]=null!=window.screen.availHeight&&void 0!=window.screen.availHeight?""+window.screen.availHeight:"",
|
|
516
|
+
a["c3.fp.availWidth"]=null!=window.screen.availWidth&&void 0!=window.screen.availWidth?""+window.screen.availWidth:"",a["c3.fp.height"]=null!=window.screen.height&&void 0!=window.screen.height?""+window.screen.height:"",
|
|
517
|
+
a["c3.fp.width"]=null!=window.screen.width&&void 0!=window.screen.width?""+window.screen.width:"",a["c3.fp.colorDepth"]=null!=window.screen.colorDepth&&void 0!=window.screen.colorDepth?""+window.screen.colorDepth:"",
|
|
518
|
+
a["c3.fp.deviceXDPI"]=null!=window.screen.deviceXDPI&&void 0!=window.screen.deviceXDPI?""+window.screen.deviceXDPI:"",a["c3.fp.deviceYDPI"]=null!=window.screen.deviceYDPI&&void 0!=window.screen.deviceYDPI?""+window.screen.deviceYDPI:""),
|
|
519
|
+
a["c3.fp.dpi"]=null!=window.devicePixelRatio&&void 0!=window.devicePixelRatio?""+window.devicePixelRatio:"",a["c3.fp.secure"]=null!=window.isSecureContext&&void 0!=window.isSecureContext?""+window.isSecureContext:""),
|
|
520
|
+
a},this.getHashedCanvasFingerprint=function(){if("undefined"!=typeof document&&null!=document){var a=document.createElement("CANVAS"),b=a.getContext("2d"),c="conviva";return b.textBaseline="top",b.font="14px 'Arial'",
|
|
521
|
+
b.textBaseline="alphabetic",b.fillStyle="#f40",b.fillRect(null!=navigator.plugins&&void 0!=navigator.plugins?navigator.plugins.length:0,null!=navigator.mimeTypes&&void 0!=navigator.mimeTypes?navigator.mimeTypes.length:0,null!=navigator.product&&void 0!=navigator.product?navigator.product.length:0,null!=navigator.vendor&&void 0!=navigator.vendor?navigator.vendor.length:0),
|
|
522
|
+
b.fillStyle="#069",b.fillText(c,null!=navigator.maxTouchPoints&&void 0!=navigator.maxTouchPoints?navigator.maxTouchPoints:0,null!=navigator.product&&void 0!=navigator.product?navigator.product.length:0),
|
|
523
|
+
b.fillStyle="rgba(102, 204, 0, 0.7)",b.fillText(c,null!=navigator.deviceMemory&&void 0!=navigator.deviceMemory?navigator.deviceMemory:0,null!=navigator.hardwareConcurrency&&void 0!=navigator.hardwareConcurrency?navigator.hardwareConcurrency:0),
|
|
524
|
+
K.sha256(a.toDataURL())}return""},this.sendHeartbeat=function(){if(!q._cleanedUp){var a=q.makeHeartbeat();null!=a&&q.postHeartbeat(a)}},this.countRfps=function(){if(q._playerState===i.PlayerState.PLAYING&&null!=q._playerStateManager){
|
|
525
|
+
var a=q._playerStateManager.getRenderedFrameRate();a>0&&(q._playingFpsTotal+=a,q._playingFpsObservationCount++)}},this.updateAverageFrameRate=function(){return q._playingFpsTotal>0&&q._playingFpsObservationCount>0?K.Int32.Cast(1*q._playingFpsTotal/q._playingFpsObservationCount):(this.countRfps(),
|
|
526
|
+
q._playingFpsTotal>0&&q._playingFpsObservationCount>0?K.Int32.Cast(1*q._playingFpsTotal/q._playingFpsObservationCount):i.DEFAULT_RENDERED_FRAME_RATE)},this.postHeartbeat=function(a){q.createHeartbeatInfo();
|
|
527
|
+
var b=q._heartbeatSequenceNumber-1;q._logger.info("postHeartbeat(): Send HB["+b+"]"+q.sessionTypeTag());var c=function(a,c){q.onHeartbeatResponse(a,c,b)};q._gatewayControl.send(a,c)},this.onHeartbeatResponse=function(a,b,c){
|
|
528
|
+
q._cleanedUp||q._exceptionCatcher.runProtected("onHeartbeatResponse",function(){if(a){var d=b;if(null!=d){q._logger.debug("onHeartbeatResponse(): received valid response for HB["+c+"]"),q.updateHeartbeatInfoOnSuccess(c);
|
|
529
|
+
var e=d[z.RESPONSE_KEY_CLIENT_ID];null!=e&&e!=q._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)&&(q._logger.debug("onHeartbeatResponse(): setting the client id to "+e+" (from gateway)"),q._clientConfig.set(G.CONFIG_KEY_CLIENT_ID,e),
|
|
530
|
+
q._clientConfig.save());var f=d[z.RESPONSE_KEY_STATUS];null!=f&&f!=z.RESPONSE_STATUS_NO_ERRORS&&q._logger.error("onHeartbeatResponse(): error from gateway: "+f);var g=d[z.RESPONSE_KEY_CONFIG];if("object"==typeof g){
|
|
531
|
+
var h=g[z.RESPONSE_CONFIG_KEY_MAX_HEARTBEAT_INFOS];null!=h&&q._clientConfig.get(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS)!==h&&(q._logger.debug("onHeartbeatResponse(): setting Maximum Heartbeat Infos to "+h+" (from gateway)"),
|
|
532
|
+
q._clientConfig.set(G.CONFIG_KEY_MAX_HEARTBEAT_INFOS,h));var i=g[z.RESPONSE_CONFIG_KEY_SEND_LOGS],j=null!=i?K.AsBoolean(i):!1;j!==q._clientConfig.get(G.CONFIG_KEY_SEND_LOGS)&&(q._logger.debug("onHeartbeatResponse(): turning "+(j?"on":"off")+" sending of logs"),
|
|
533
|
+
q._clientConfig.set(G.CONFIG_KEY_SEND_LOGS,j));var k=g[z.RESPONSE_CONFIG_KEY_HEARTBEAT_INTERVAL];if(null!=k){var l=K.Int32.Cast(k),m=l;m!=q._clientSettings.heartbeatInterval&&(q._logger.debug("onHeartbeatResponse(): received hbIntervalMs from gateway: "+m),
|
|
534
|
+
q._clientSettings.heartbeatInterval=m,null!=q._heartbeatTimerCancel&&q.resetHeartbeatTimer())}var n=g[z.RESPONSE_CONFIG_KEY_GATEWAY_URL];null!=n&&n!=q._clientSettings.gatewayUrl&&(q._logger.debug("onHeartbeatResponse(): received gatewayUrl from gateway: "+n),
|
|
535
|
+
q._clientSettings.gatewayUrl=n),q.whitelistedIdentifiers={};var o=g[z.RESPONSE_CONFIG_KEY_CONVIVAID_FP];null!=o&&(q._startConvivaIdCollection||(q._startConvivaIdCollection=!0),q._logger.debug("onHeartbeatResponse(): received fp from gateway: "+o),
|
|
536
|
+
q.whitelistedIdentifiers=o.split(",")),q._cdnIpAutoDetectionEnabled=g[z.RESPONSE_CONFIG_KEY_CDN_SERVER_IP_ENABLE],1==q._cdnIpAutoDetectionEnabled?(q._logger.debug("onHeartbeatResponse(): enabling the CDN Server IP collection"),
|
|
537
|
+
(void 0==q._cdnTimerCancel||null==q._cdnTimerCancel)&&q.startCdnTimer()):(q._logger.debug("onHeartbeatResponse(): disabling the CDN Server IP collection (from gateway)"),q.cancelCdnTimer())}}else q._logger.warning("onHeartbeatResponse(): decoded heartbeat response is null.");
|
|
538
|
+
}else{var p=b;K.isValidString(p)?K.stringStartsWith(p,"HTTP timeout")?q._logger.warning("onHeartbeatResponse(): "+p):q._logger.error("onHeartbeatResponse(): failed to send heartbeat: "+p):(p=D.DEFAULT_HEARTBEAT_ERROR_MESSAGE,
|
|
539
|
+
q._logger.error("onHeartbeatResponse(): "+p)),q.updateHeartbeatInfoOnFailure(c,p)}})},this.getSessionTime=function(){var a=K.Int32.Cast(q._time.current()-q._startTimeMs);return a},this.getNextEventNumber=function(){
|
|
540
|
+
return this._eventQueue.getNumber()},this.sessionTypeTag=function(){return this.isGlobalSession()?" (global session)":""},this.isGlobalSession=function(){return this._global==C.SESSION_TYPE.GLOBAL},this.isVideoSession=function(){
|
|
541
|
+
return this._global==C.SESSION_TYPE.VIDEO},this.isAdSession=function(){return this._global==C.SESSION_TYPE.AD},this.updateContentMetadata=function(a){q.mergeContentMetadata(a),q.setStatesFromContentMetadata();
|
|
542
|
+
},this.mergeContentMetadata=function(b){var c={},d={};if(K.isValidString(b.assetName)&&(q._contentMetadata.assetName!=b.assetName?(null!=q._contentMetadata.assetName&&(c[z.REQUEST_KEY_ASSET_NAME]=q._contentMetadata.assetName),
|
|
543
|
+
d[z.REQUEST_KEY_ASSET_NAME]=b.assetName,q._contentMetadata.assetName=b.assetName):q._logger.warning("mergeContentMetadata(): assetName was not changed.")),K.isValidString(b.applicationName)&&(q._contentMetadata.applicationName!=b.applicationName?(null!=q._contentMetadata.applicationName&&(c[z.REQUEST_KEY_PLAYER_NAME]=q._contentMetadata.applicationName),
|
|
544
|
+
d[z.REQUEST_KEY_PLAYER_NAME]=b.applicationName,q._contentMetadata.applicationName=b.applicationName):q._logger.warning("mergeContentMetadata(): applicationName was not changed.")),K.isValidString(b.streamUrl)&&(q._contentMetadata.streamUrl!=b.streamUrl?(null!=q._contentMetadata.streamUrl&&(c[z.REQUEST_KEY_STREAM_URL]=q._contentMetadata.streamUrl),
|
|
545
|
+
d[z.REQUEST_KEY_STREAM_URL]=b.streamUrl,q._contentMetadata.streamUrl=b.streamUrl,q._streamUrl=q._contentMetadata.streamUrl):q._logger.warning("mergeContentMetadata(): streamUrl was not changed.")),K.isValidString(b.viewerId)&&(q._contentMetadata.viewerId!=b.viewerId?(null!=q._contentMetadata.viewerId&&(c[z.REQUEST_KEY_VIEWER_ID]=q._contentMetadata.viewerId),
|
|
546
|
+
d[z.REQUEST_KEY_VIEWER_ID]=b.viewerId,q._contentMetadata.viewerId=b.viewerId):q._logger.warning("mergeContentMetadata(): viewerId was not changed.")),K.isValidString(b.defaultResource)&&(q._contentMetadata.defaultResource!=b.defaultResource?(null!=q._contentMetadata.defaultResource&&(c[z.REQUEST_KEY_RESOURCE]=q._contentMetadata.defaultResource),
|
|
547
|
+
d[z.REQUEST_KEY_RESOURCE]=b.defaultResource,q._contentMetadata.defaultResource=b.defaultResource):q._logger.warning("mergeContentMetadata(): defaultResource was not changed.")),K.isInteger(b.duration)&&b.duration>0&&(q._contentMetadata.duration!=b.duration?(q._contentLengthSec>0&&(c[z.REQUEST_KEY_CONTENT_LENGTH]=q._contentLengthSec),
|
|
548
|
+
d[z.REQUEST_KEY_CONTENT_LENGTH]=b.duration,q._contentMetadata.duration=b.duration,q._contentLengthSec=q._contentMetadata.duration):q._logger.warning("mergeContentMetadata(): duration was not changed.")),
|
|
549
|
+
K.isInteger(b.encodedFrameRate)&&b.encodedFrameRate>0&&(q._contentMetadata.encodedFrameRate!=b.encodedFrameRate?(q._contentMetadata.encodedFrameRate>-1&&(c[z.REQUEST_KEY_ENCODED_FRAME_RATE]=q._contentMetadata.encodedFrameRate),
|
|
550
|
+
d[z.REQUEST_KEY_ENCODED_FRAME_RATE]=b.encodedFrameRate,q._contentMetadata.encodedFrameRate=b.encodedFrameRate,q._encodedFrameRate=q._contentMetadata.encodedFrameRate):q._logger.warning("mergeContentMetadata(): encodedFrameRate was not changed.")),
|
|
551
|
+
b.streamType!=f.StreamType.UNKNOWN&&(q._contentMetadata.streamType!=b.streamType?(q._contentMetadata.streamType!=f.StreamType.UNKNOWN&&(q._contentMetadata.streamType==a.ContentMetadata.StreamType.LIVE?c[z.REQUEST_KEY_IS_LIVE]=!0:c[z.REQUEST_KEY_IS_LIVE]=!1),
|
|
552
|
+
b.streamType==a.ContentMetadata.StreamType.LIVE?d[z.REQUEST_KEY_IS_LIVE]=!0:d[z.REQUEST_KEY_IS_LIVE]=!1,q._contentMetadata.streamType=b.streamType):q._logger.warning("mergeContentMetadata(): streamType was not changed.")),
|
|
553
|
+
K.dictCount(b.custom)>0){var e={},g={};for(var h in b.custom){var i=q._contentMetadata.custom[h];i!=b.custom[h]?(e[h]=b.custom[h],q._contentMetadata.custom[h]&&(g[h]=q._contentMetadata.custom[h]),q._contentMetadata.custom[h]=b.custom[h]):q._logger.info("mergeContentMetadata(): custom."+h+" was not changed.");
|
|
554
|
+
}K.dictCount(e)>0?(K.dictCount(g)>0&&(c[z.REQUEST_KEY_TAGS]=g),d[z.REQUEST_KEY_TAGS]=e):q._logger.warning("mergeContentMetadata(): custom was not changed.")}K.dictCount(d)>0&&this.declareStateChange(d,c);
|
|
555
|
+
},this.setStatesFromContentMetadata=function(){if(q._logger.debug("setStatesFromContentMetadata()"),null!=q._contentMetadata.defaultResource&&this.setResource(q._contentMetadata.defaultResource),null!=q._contentMetadata.streamUrl&&this.setStreamUrl(q._contentMetadata.streamUrl),
|
|
556
|
+
q._contentMetadata.duration>0&&this.setContentLength(q._contentMetadata.duration),q._contentMetadata.encodedFrameRate>0&&this.setEncodedFrameRate(q._contentMetadata.encodedFrameRate),q._contentMetadata.streamType!==f.StreamType.UNKNOWN){
|
|
557
|
+
var a=q._contentMetadata.streamType===f.StreamType.LIVE;this.setIsLive(a)}null!=q._contentMetadata.assetName&&this.setAssetName(q._contentMetadata.assetName),null!=q._contentMetadata.viewerId&&this.setViewerId(q._contentMetadata.viewerId),
|
|
558
|
+
(null!=q._contentMetadata.applicationName||null!=q._contentMetadata.playerName)&&this.setPlayerName(q._contentMetadata.applicationName||q._contentMetadata.playerName),K.dictCount(q._contentMetadata.custom)>0&&this.setTags(q._contentMetadata.custom);
|
|
559
|
+
},this.enqueueEventForContentMetadata=function(){var b={};if(null!=q._contentMetadata.assetName?b[z.REQUEST_KEY_ASSET_NAME]=q._contentMetadata.assetName:q._logger.warning("enqueueEventForContentMetadata(): assetName was not set."),
|
|
560
|
+
null!=q._contentMetadata.applicationName?b[z.REQUEST_KEY_PLAYER_NAME]=q._contentMetadata.applicationName:q._logger.warning("enqueueEventForContentMetadata(): applicationName was not set."),null!=q._contentMetadata.streamUrl?b[z.REQUEST_KEY_STREAM_URL]=q._contentMetadata.streamUrl:q._logger.warning("enqueueEventForContentMetadata(): streamUrl was not set."),
|
|
561
|
+
null!=q._contentMetadata.viewerId?b[z.REQUEST_KEY_VIEWER_ID]=q._contentMetadata.viewerId:q._logger.warning("enqueueEventForContentMetadata(): viewerId was not set."),null!=q._contentMetadata.defaultResource?b[z.REQUEST_KEY_RESOURCE]=q._contentMetadata.defaultResource:q._logger.warning("enqueueEventForContentMetadata(): defaultResource was not set."),
|
|
562
|
+
q._contentMetadata.duration>-1?b[z.REQUEST_KEY_CONTENT_LENGTH]=q._contentMetadata.duration:q._logger.warning("enqueueEventForContentMetadata(): duration was not set."),q._contentMetadata.encodedFrameRate>-1?b[z.REQUEST_KEY_ENCODED_FRAME_RATE]=q._contentMetadata.encodedFrameRate:q._logger.warning("enqueueEventForContentMetadata(): encodedFrameRate was not set."),
|
|
563
|
+
q._contentMetadata.streamType!=f.StreamType.UNKNOWN?q._contentMetadata.streamType==a.ContentMetadata.StreamType.LIVE?b[z.REQUEST_KEY_IS_LIVE]=!0:b[z.REQUEST_KEY_IS_LIVE]=!1:q._logger.warning("enqueueEventForContentMetadata(): streamType was not set."),
|
|
564
|
+
K.dictCount(q._contentMetadata.custom)>0){b[z.REQUEST_KEY_TAGS]={};for(var c in q._contentMetadata.custom)b[z.REQUEST_KEY_TAGS][c]=q._contentMetadata.custom[c]}else q._logger.warning("enqueueEventForContentMetadata(): custom tags were not set.");
|
|
565
|
+
K.dictCount(b)>0&&this.declareStateChange(b,null)},this.validateContentMetadata=function(){null!=q._contentMetadata&&K.isValidString(q._contentMetadata.assetName)||q._logger.warning("Missing assetName during session creation"),
|
|
566
|
+
null!=q._contentMetadata&&K.isValidString(q._contentMetadata.defaultResource)||q._logger.warning("Missing resource during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.streamUrl)||q._logger.warning("Missing streamUrl during session creation"),
|
|
567
|
+
(null==q._contentMetadata||q._contentMetadata.encodedFrameRate<=0)&&q._logger.warning("Missing encodedFrameRate during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.viewerId)||q._logger.warning("Missing viewerId during session creation"),
|
|
568
|
+
(null==q._contentMetadata||null==q._contentMetadata.streamType||f.StreamType.UNKNOWN===q._contentMetadata.streamType)&&q._logger.warning("Missing streamType during session creation"),null!=q._contentMetadata&&K.isValidString(q._contentMetadata.applicationName)||q._logger.warning("Missing applicationName during session creation"),
|
|
569
|
+
(null==q._contentMetadata||q._contentMetadata.duration<=0)&&q._logger.warning("Missing duration during session creation")},this.updateCustomMetric=function(a,b){null==q._customMetric&&(q._customMetric={}),
|
|
570
|
+
q._customMetric[a]=b}};C.DEFAULT_VIDEO_SESSION_FLAGS=z.SessionFlags.VIDEO+z.SessionFlags.QUALITY_METRICS+z.SessionFlags.BITRATE_METRICS,C.SESSION_TYPE={VIDEO:"Video",GLOBAL:"Global",AD:"Ad"};var D=(b.IMonitor=function(){
|
|
571
|
+
this.onPlayerStateChange=function(a){},this.onBitrateChange=function(a){},this.onSeekEvent=function(a,b){},this.onEncodedFrameRateChange=function(a){},this.onRenderedFrameRateChange=function(a){},this.onContentLengthChange=function(a){},
|
|
572
|
+
this.onPlayheadTimeChange=function(a){},this.onStreamUrlChange=function(a){},this.onBufferLengthChange=function(a){},this.onPlayerTypeChange=function(a){},this.onPlayerVersionChange=function(a){},this.onStreamResolutionWidthChange=function(a){},
|
|
573
|
+
this.onStreamResolutionHeightChange=function(a){},this.onConnectionTypeChange=function(a){},this.onLinkEncryptionChange=function(a){},this.onSignalStrengthChange=function(a){},this.onError=function(a,b){},
|
|
574
|
+
this.onRelease=function(){},this.onCDNServerIPChange=function(a){}},b.Session=function(){function b(a,b,c,d,e,f,g){this._id=a,this._global=b,this._clientConfig=c,this._systemMetadata=d,this._cwsSession=e,
|
|
575
|
+
this._exceptionCatcher=f,this._logger=g,this._logger.setModuleName("Session"),this._logger.setSessionId(K.ToString(this._id))}var c=this;c._playerStateManager=null,c._id=0,c._global=C.SESSION_TYPE.VIDEO,
|
|
576
|
+
c._cleaningUp=!1,c._cleanedUp=!1,c._adPlaying=!1,c._adStream=null,c._adPlayer=null,c._adPosition=null,c._ignorePlayerState=!1,c._pooledPlayerState=i.PlayerState.NOT_MONITORED,c._ignoreBitrateAndResource=!1,
|
|
577
|
+
c._ignorePlayheadTimeandBufferLength=!1,c._ignoreEncodedFrameRateAndDuration=!1,c._ignoreError=!1,b.apply(c,arguments),this.start=function(a){if(c._cwsSession.start(this),null!=a&&void 0!=a&&c.attachPlayer(a),
|
|
578
|
+
c._clientConfig.isReady())c.initiateSession();else{var b=function(){c.initiateSession()};c._clientConfig.register(b)}},this.cleanup=function(){if(c._logger.info("cleanup()"+c.sessionTypeTag()),c._cleaningUp=!0,
|
|
579
|
+
c._cwsSession.willEndSoon(),c._clientConfig.isReady())c.endCwsSessionAndCleanupAll();else{var a=function(){c.endCwsSessionAndCleanupAll()};c._clientConfig.register(a)}},this.cleanupAll=function(){c._logger.debug("cleanupAll()"+c.sessionTypeTag()),
|
|
580
|
+
(c.isVideoSession()||c.isAdSession())&&null!=c._playerStateManager&&c.releasePlayerStateManager(),c._logger.setSessionId(null),c._logger=null,c._exceptionCatcher=null,c._client=null,c._clientConfig=null,
|
|
581
|
+
c._systemMetadata=null,c._cwsSession.cleanup(),c._cwsSession=null,c._cleanedUp=!0},this.endCwsSessionAndCleanupAll=function(){c._cwsSession.end(),c.cleanupAll()},this.initiateSession=function(){c._cwsSession.initialize(),
|
|
582
|
+
c.setStatesFromSystemMetadata(),c._cwsSession.startSendingHeartbeats()},this.setStatesFromSystemMetadata=function(){c._logger.debug("setStatesFromSystemMetadata()");var a=c._systemMetadata.get(),b=a[T.BROWSER_NAME];
|
|
583
|
+
null!=b&&c._cwsSession.setBrowserName(b);var d=a[T.BROWSER_VERSION];null!=d&&c._cwsSession.setBrowserVersion(d);var e=a[T.DEVICE_BRAND];null!=e&&c._cwsSession.setDeviceBrand(e);var f=a[T.DEVICE_MANUFACTURER];
|
|
584
|
+
null!=f&&c._cwsSession.setDeviceManufacturer(f);var g=a[T.DEVICE_MODEL];null!=g&&c._cwsSession.setDeviceModel(g);var h=a[T.DEVICE_TYPE];null!=h&&c._cwsSession.setDeviceType(h);var i=a[T.DEVICE_VERSION];
|
|
585
|
+
null!=i&&c._cwsSession.setDeviceVersion(i);var j=a[T.FRAMEWORK_NAME];null!=j&&c._cwsSession.setFrameworkName(j);var k=a[T.FRAMEWORK_VERSION];null!=k&&c._cwsSession.setFrameworkVersion(k);var l=a[T.OPERATING_SYSTEM_NAME];
|
|
586
|
+
null!=l&&c._cwsSession.setOperatingSystemName(l);var m=a[T.OPERATING_SYSTEM_VERSION];null!=m&&c._cwsSession.setOperatingSystemVersion(m);var n=a[T.DEVICE_CATEGORY];null!=n&&c._cwsSession.setDeviceCategory(n);
|
|
587
|
+
},this.onPlayerStateChange=function(a){return c._logger.debug("onPlayerStateChange(): "+a),c._cwsSession._playerState!=a?(c._cwsSession._playerState==i.PlayerState.NOT_MONITORED&&a!=i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=a),
|
|
588
|
+
c._ignorePlayerState?void c._logger.debug("onPlayerStateChange(): "+a+" (pooled, "+(c._adPlaying?"ad playing":"preloading")+")"):void c._cwsSession.setPlayerState(a)):void 0},this.onBitrateChange=function(a){
|
|
589
|
+
return c._logger.debug("onBitrateChange(): "+a),c._ignoreBitrateAndResource?void c._logger.info("onBitrateChange(): ignored"):void c._cwsSession.setBitrateKbps(a)},this.onSeekEvent=function(a,b){K.isInteger(b)||(c._logger.warning("onSeekEvent(): Ignored non-integer seekToPosition data: "+b),
|
|
590
|
+
b=-1),c._cwsSession.enqueueSeekEvent(a,b)},this.onEncodedFrameRateChange=function(a){c._logger.debug("onEncodedFrameRateChange(): "+a),a>0?c._ignoreEncodedFrameRateAndDuration?c._logger.info("onEncodedFrameRateChange(): Ignored encoded frame rate data: "+a+" (ads)"):(c._cwsSession.setEncodedFrameRate(a),
|
|
591
|
+
c._logger.info("onEncodedFrameRateChange(): Received encoded frame rate data: "+a)):c._logger.warning("onEncodedFrameRateChange(): Ignored invalid encoded frame rate data: "+a)},this.onContentLengthChange=function(a){
|
|
592
|
+
c._logger.debug("onContentLengthChange(): "+a),a>0?c._ignoreEncodedFrameRateAndDuration?c._logger.info("setContentLength(): Ignored content length data: "+a+" (ads)"):(c._cwsSession.setContentLength(a),
|
|
593
|
+
c._logger.info("setContentLength(): Received content length data: "+a)):c._logger.warning("setContentLength(): Ignored invalid content length data: "+a)},this.onStreamUrlChange=function(a){c._logger.debug("onStreamUrlChange(): "+a),
|
|
594
|
+
c._cwsSession.setStreamUrl(a)},this.onStreamResolutionWidthChange=function(a){c._logger.debug("onStreamResolutionWidthChange(): "+a),c._cwsSession.setStreamResolutionWidth(a)},this.onStreamResolutionHeightChange=function(a){
|
|
595
|
+
c._logger.debug("onStreamResolutionHeightChange(): "+a),c._cwsSession.setStreamResolutionHeight(a)},this.onConnectionTypeChange=function(a){c._logger.debug("onConnectionTypeChange(): "+a),c._cwsSession.setConnectionType(a);
|
|
596
|
+
},this.onLinkEncryptionChange=function(a){c._logger.debug("onLinkEncryptionChange(): "+a),c._cwsSession.setLinkEncryption(a)},this.onPlayerTypeChange=function(a){c._logger.debug("onPlayerTypeChange(): "+a),
|
|
597
|
+
null==c._cwsSession.getFrameworkName()&&c._cwsSession.setFrameworkName(a)},this.onPlayerVersionChange=function(a){c._logger.debug("onPlayerVersionChange(): "+a),null==c._cwsSession.getFrameworkVersion()&&c._cwsSession.setFrameworkVersion(a);
|
|
598
|
+
},this.onCDNServerIPChange=function(a){c._logger.debug("onCDNServerIPChange(): "+a),c._cwsSession.setCDNServerIP(a)},this.onError=function(a,b){c._logger.debug("onError(): "+a+" ("+b+")"),c.reportError(a,b);
|
|
599
|
+
},this.onRelease=function(){c._logger.debug("onRelease()"),c.releasePlayerStateManager()},this.adStart=function(b,d,e){return c._logger.debug("adStart(): adStream="+b+" adPlayer="+d+" adPosition="+e),c._adPlaying?void c._logger.warning("adStart(): multiple adStart calls, ignoring"):(c._adPlaying=!0,
|
|
600
|
+
c._adStream=b,c._adPlayer=d,c._adPosition=e,c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!0),void(c._adStream==a.Client.AdStream.CONTENT||c._adPlayer==a.Client.AdPlayer.SEPARATE?(c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
601
|
+
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0):c._adStream==a.Client.AdStream.SEPARATE&&c._adPlayer==a.Client.AdPlayer.CONTENT&&(c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
602
|
+
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0,c._ignoreBitrateAndResource=!0,c._ignoreEncodedFrameRateAndDuration=!0,c._ignorePlayheadTimeandBufferLength=!0,c._ignoreError=!0)));
|
|
603
|
+
},this.adEnd=function(){return c._logger.debug("adEnd()"),c._adPlaying?(c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!1),c._adStream==a.Client.AdStream.CONTENT||c._adPlayer==a.Client.AdPlayer.SEPARATE?c._preloading||(c._ignorePlayerState=!1,
|
|
604
|
+
c._cwsSession.setPlayerState(c._pooledPlayerState)):c._adStream==a.Client.AdStream.SEPARATE&&c._adPlayer==a.Client.AdPlayer.CONTENT&&(c._ignoreBitrateAndResource=!1,c._ignoreEncodedFrameRateAndDuration=!1,
|
|
605
|
+
c._ignorePlayheadTimeandBufferLength=!1,c._ignoreError=!1,c._preloading||(c._ignorePlayerState=!1,c._cwsSession.setPlayerState(c._pooledPlayerState))),c._adPlaying=!1,void(c._adStream=c._adPlayer=c._adPosition=null)):void c._logger.warning("adEnd(): called before adStart, ignoring");
|
|
606
|
+
},this.detachPlayer=function(){return c._logger.debug("detachPlayer()"),null==c._playerStateManager?void c._logger.error("detachPlayer(): called before attachPlayer, ignoring"):void(null!==c._playerStateManager&&(c._exceptionCatcher.runProtected("Session.detachPlayer",function(){
|
|
607
|
+
c._playerStateManager.removeMonitoringNotifier()}),c._playerStateManager=null,c._cwsSession.setPlayerStateManager(null),c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED)))},this.releasePlayerStateManager=function(){
|
|
608
|
+
null!==c._playerStateManager&&(c._exceptionCatcher.runProtected("Session.releasePlayerStateManager",function(){c._playerStateManager.removeMonitoringNotifier()}),c._playerStateManager=null,c._cwsSession.setPlayerStateManager(null),
|
|
609
|
+
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED))},this.offFocus=function(){c._logger.debug("offFocus()"),c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!0),c._cwsSession._playerState!==i.PlayerState.NOT_MONITORED&&(c._pooledPlayerState=c._cwsSession._playerState),
|
|
610
|
+
c._cwsSession.setPlayerState(i.PlayerState.NOT_MONITORED),c._ignorePlayerState=!0},this.attachPlayer=function(a){return c._logger.debug("attachPlayer()"),null!=c._playerStateManager?void c._logger.error("attachPlayer(): detach current PlayerStateManager first"):a instanceof i?void c._exceptionCatcher.runProtected("Session.attachPlayer()",function(){
|
|
611
|
+
a.setMonitoringNotifier(c,c._id)?(a.pushCurrentState(),c._playerStateManager=a,c._cwsSession.setPlayerStateManager(c._playerStateManager)):c._logger.error("attachPlayer(): instance of PlayerStateManager is already attached to a session");
|
|
612
|
+
}):void c._logger.error("attachPlayer(): Incorrect PlayerStateManager instance")},this.onFocus=function(){c._logger.debug("onFocus()"),c._cwsSession._hasJoined||c._cwsSession.togglePauseJoin(!1),c._ignoreBitrateAndResource=!1,
|
|
613
|
+
c._ignoreEncodedFrameRateAndDuration=!1,c._ignorePlayheadTimeandBufferLength=!1,c._ignoreError=!1,c._preloading||(c._ignorePlayerState=!1,c._pooledPlayerState!==i.PlayerState.NOT_MONITORED&&c._cwsSession.setPlayerState(c._pooledPlayerState));
|
|
614
|
+
},this.getPlayerStateManager=function(){return c._logger.debug("getPlayerStateManager()"),c._playerStateManager},this.contentPreload=function(){return c._logger.debug("contentPreload()"),c._preloading?void c._logger.debug("contentPreload(): called twice, ignoring"):(c._preloading=!0,
|
|
615
|
+
void(c._ignorePlayerState=!0))},this.contentStart=function(){return c._logger.debug("contentStart()"),c._preloading?(c._preloading=!1,void(c._adPlaying||(c._ignorePlayerState=!1,c._pooledPlayerState!==i.PlayerState.NOT_MONITORED&&c._cwsSession.setPlayerState(c._pooledPlayerState)))):void c._logger.warning("contentStart(): called without contentPreload, ignoring");
|
|
616
|
+
},this.reportError=function(b,d){if(c._logger.info("reportError(): "+b),!K.isValidString(b))return void c._logger.error("reportError(): invalid error message string: "+b);if(d!==a.Client.ErrorSeverity.FATAL&&d!==a.Client.ErrorSeverity.WARNING)return void c._logger.error("reportError(): invalid error severity: "+d);
|
|
617
|
+
if(c._ignoreError)return void c._logger.debug("reportError(): ignored");var e=d===a.Client.ErrorSeverity.FATAL;c._cwsSession.sendError(b,e)},this.updateContentMetadata=function(a){c._exceptionCatcher.runProtected("Session.updateContentMetadata",function(){
|
|
618
|
+
c._cwsSession.updateContentMetadata(a)})},this.sendCustomEvent=function(a,b){c._logger.info("sendEvent(): eventName="+a+c.sessionTypeTag()),c._cwsSession.enqueueCustomEvent(a,b)},this.isGlobalSession=function(){
|
|
619
|
+
return c._global==C.SESSION_TYPE.GLOBAL},this.isVideoSession=function(){return c._global==C.SESSION_TYPE.VIDEO},this.isAdSession=function(){return c._global==C.SESSION_TYPE.AD},this.sessionTypeTag=function(){
|
|
620
|
+
return c.isGlobalSession()?" (global session)":""},this.getSessionId=function(){return this._id},this.getClientId=function(){var a=null;return c._clientConfig.isReady()&&(a=c._clientConfig.get(G.CONFIG_KEY_CLIENT_ID)),
|
|
621
|
+
a},this.updateCustomMetric=function(a,b){c._cwsSession.updateCustomMetric(a,b)}});D.DEFAULT_HEARTBEAT_ERROR_MESSAGE="received no response (or a bad response) to heartbeat POST request";var E=b.SessionFactory=function(){
|
|
622
|
+
function a(a,c,d,e){b._client=a,b._clientSettings=c,b._clientConfig=d,b._systemFactory=e,b._logger=b._systemFactory.buildLogger(),b._logger.setModuleName("SessionFactory"),b._nextSessionKey=0,b._sessionsByKey={};
|
|
623
|
+
}var b=this;b._logger=null,b._logBuffer=null,b._nextSessionKey=0,b._sessionsByKey=null,a.apply(b,arguments),this.cleanup=function(){b._logger=null,b._logBuffer=null;for(var a in b._sessionsByKey){var c=b._sessionsByKey[a];
|
|
624
|
+
c.cleanup()}b._sessionsByKey=null,b._nextSessionKey=0},this.newSessionKey=function(){var a=b._nextSessionKey;return b._nextSessionKey++,a},this.makeVideoSession=function(a,c,d){return null==a&&(a=new f),
|
|
625
|
+
b.makeSession(a,c,d)},this.makeGlobalSession=function(a){return b.makeSession(a,C.SESSION_TYPE.GLOBAL)},this.generateSessionId=function(){return N.integer32()},this.makeSession=function(a,c,d){var e=a.clone(),f=b.generateSessionId(),g=b._systemFactory.buildSession(b._client,b._clientSettings,b._clientConfig,f,c,e),h=b.newSessionKey();
|
|
626
|
+
return b.addSession(h,g),g.start(d),h},this.getSession=function(a){var c=b._sessionsByKey[a];return null==c&&b._logger.error("Client: invalid sessionKey. Did you cleanup that session previously?"),c},this.getVideoSession=function(a){
|
|
627
|
+
var c=this.getSession(a);return null!=c&&(c.isVideoSession()||c.isAdSession()||(b._logger.error("Client: invalid sessionKey. Did you cleanup that session previously?"),c=null)),c},this.addSession=function(a,c){
|
|
628
|
+
b._sessionsByKey[a]=c},this.removeSession=function(a){delete b._sessionsByKey[a]},this.cleanupSession=function(a){var c=b.getSession(a);b.removeSession(a),c.cleanup()}},F=b.CallbackWithTimeout=function(a){
|
|
629
|
+
this._timer=a,this.getWrapperCallback=function(a,b,c){var d=!1,e=function(){d||(d=!0,a(!1,c+" ("+b+" ms)"))};this._timer.createOnce(e,b,"CallbackWithTimeout.wrap");var f=function(b,c){d||(d=!0,a(b,c))};
|
|
630
|
+
return f}},G=b.Config=function(a,b,c){var d=this;this._logger=a,this._logger.setModuleName("Config"),this._storage=b,this._jsonInterface=c,this._defaultConfig={clientId:z.DEFAULT_CLIENT_ID,sendLogs:!1,
|
|
631
|
+
maxHbInfos:z.DEFAULT_MAX_HEARTBEAT_INFOS},this._config=K.ObjectShallowCopy(this._defaultConfig),this._loaded=!1,this._loadedEmpty=!1,this._waitingConsumers=[],this.isReady=function(){return this._loaded;
|
|
632
|
+
},this.load=function(){var a=function(a,b){a?(d._parse(b),d._logger.debug("load(): configuration successfully loaded from local storage"+(d._loadedEmpty?" (was empty)":"")+".")):d._logger.error("load(): error loading configuration from local storage: "+b),
|
|
633
|
+
d._loaded=!0,d._notify()};this._storage.load(G.STORAGE_KEY,a)},this._parse=function(a){var b=this._jsonInterface.decode(a);if(null==b)return void(this._loadedEmpty=!0);var c=b[G.CONFIG_STORAGE_KEY_CLIENT_ID];
|
|
634
|
+
null!=c&&c!=z.DEFAULT_CLIENT_ID&&""!=c&&"null"!=c&&(this._config[G.CONFIG_KEY_CLIENT_ID]=c,this._logger.debug("parse(): loaded clientId="+c+" (from local storage)"))},this._marshall=function(){var a={};
|
|
635
|
+
return a[G.CONFIG_STORAGE_KEY_CLIENT_ID]=this._config.clientId,this._logger.debug("_marshall(): saving clientId="+this._config.clientId+" (to local storage)"),this._jsonInterface.encode(a)},this.save=function(){
|
|
636
|
+
var a=function(a,b){a?d._logger.debug("save(): configuration successfully saved to local storage."):d._logger.error("save(): error saving configuration to local storage: "+b)};this._storage.save(G.STORAGE_KEY,this._marshall(),a);
|
|
637
|
+
},this.register=function(a){return this.isReady()?void a():void this._waitingConsumers.push(a)},this.get=function(a){return this._loaded?this._config[a]:null},this.set=function(a,b){this._loaded&&(this._config[a]=b);
|
|
638
|
+
},this._notify=function(){for(var a;null!=(a=this._waitingConsumers.shift());)a()}};G.STORAGE_KEY="sdkConfig",G.CONFIG_STORAGE_KEY_CLIENT_ID="clId",G.CONFIG_KEY_CLIENT_ID="clientId",G.CONFIG_KEY_SEND_LOGS="sendLogs",
|
|
639
|
+
G.CONFIG_KEY_MAX_HEARTBEAT_INFOS="maxHbInfos",G.CONVIVAID_FP_PREFIX="c3.fp.",G.ConvivaIdErrorCodes={CONVIVAID_NA:"0",CONVIVAID_FETCH_ERROR:"1",CONVIVAID_USER_OPTOUT:"2",CONVIVAID_PRIVACY_RESTRICTION:"3",
|
|
640
|
+
CONVIVAID_SERVER_RESTRICTION:"4",CONVIVAID_USER_OPT_DELETE:"5",CONVIVAID_USER_NO_RESTRICTION:"6"};var H=b.EventQueue=function(){this._events=[],this._nextEventNumber=0,this.enqueue=function(a){this._events.push(a);
|
|
641
|
+
},this.getNumber=function(){var a=this._nextEventNumber;return this._nextEventNumber++,a},this.flush=function(){var a=this._events;return this._events=[],a}},I=b.ExceptionCatcher=function(a,b,c){this._logger=a,
|
|
642
|
+
this._logger.setModuleName("ExceptionCatcher"),this._ping=b,this._systemSettings=c,this.runProtected=function(a,b,c){try{b()}catch(d){if(null!=c)c(d);else{if(this._systemSettings.allowUncaughtExceptions)throw d;
|
|
643
|
+
this.onUncaughtException(a,d)}}},this.onUncaughtException=function(a,b){var c="Uncaught exception: "+a+": "+b.toString();if(null!=this._ping)try{this._ping.send(c)}catch(d){this._logger.error("Caught exception while sending ping: "+d.toString());
|
|
644
|
+
}this._logger.error(c)}},J=b.GatewayControl=function(a,b,c,d){var e=this;this._clientSettings=a,this._logger=b,this._logger.setModuleName("GatewayControl"),this._httpClient=c,this._jsonInterface=d,this.send=function(a,b){
|
|
645
|
+
var c=this._jsonInterface.encode(a),d=this._clientSettings.gatewayUrl+z.gatewayPath,f=function(a,c){if(a){var d=e._jsonInterface.decode(c);b(a,d)}else{var f=c;b(a,f)}};this._httpClient.request("POST",d,c,"application/json",f);
|
|
646
|
+
}},K=b.Lang={};K.isMeaningfulString=function(a){return K.isValidString(a)&&null!=a&&"undefined"!=a&&"null"!=a},K.sanitizeStringToStringObject=function(a){var b={};for(var c in a)if(K.isMeaningfulString(c)){
|
|
647
|
+
var d=a[c];K.isMeaningfulString(d)&&(b[c]=d)}return b},K.validateInterface=function(a,b,c){if(null==a)throw new Error("Expected "+c+" implementation is null.");for(var d in b)if("function"!=typeof a[d])throw new Error("Expected method "+d+" in "+c+" implementation.");
|
|
648
|
+
},K.dictCount=function(a){var b,c=0;for(b in a)a.hasOwnProperty(b)&&c++;return c},K.ToString=function(a){return""+a},K.NumberToInt=function(a){return Math.floor(a)},K.NumberToUnsignedInt=function(a){return Math.abs(K.NumberToInt(a));
|
|
649
|
+
},K.AsBoolean=function(a){return Boolean(a)},K.isValidString=function(a){return"string"==typeof a&&""!==a},K.stringStartsWith=function(a,b){return"string"!=typeof a||"string"!=typeof b?!1:"function"==typeof a.indexOf?0===a.indexOf(b):!1;
|
|
650
|
+
},K.isBoolean=function(a){return"boolean"==typeof a},K.UrlEncodeString=function(a){return escape(a)},K.isObject=function(a){return"object"==typeof a},K.ObjectToString=function(a){var b="";for(var c in a){
|
|
651
|
+
var d=a[c],e=d;b+=c+"="+e}return"Object{"+b+"}"},K.ObjectShallowCopyOmitNull=function(a){var b=K.ObjectShallowCopy(a);for(var c in b)null==b[c]&&delete b[c];return b},K.ObjectShallowCopy=function(a){var b={};
|
|
652
|
+
for(var c in a)b[c]=a[c];return b},K.ObjectShallowEquals=function(a,b){if(typeof a!=typeof b)return!1;if(a instanceof Object&&b instanceof Object){if(K.dictCount(a)!==K.dictCount(b))return!1;var c=!0;for(var d in a)if(c=a[d]===b[d],
|
|
653
|
+
!c)return!1;return!0}return a===b},K.mergeObjects=function(){for(var a={},b=0;b<arguments.length;b++)for(var c in arguments[b])void 0!=arguments[b][c]&&null!=arguments[b][c]&&(a[c]=arguments[b][c]);return a;
|
|
654
|
+
},K.isInteger=function(a){if("number"!=typeof a)return!1;var b=Math.round(a);return b===a},K.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)},K.ArrayEquals=function(a,b){
|
|
655
|
+
if(a===b)return!0;if(null==a||null==b)return!1;if(a.length!=b.length)return!1;for(var c=0;c<a.length;++c)if(K.isArray(a[c])&&K.isArray(b[c])){if(!K.ArrayEquals(a[c],b[c]))return!1}else if(a[c]!==b[c])return!1;
|
|
656
|
+
return!0},K.isObjectDefinePropertyPresent=function(){return"undefined"!=typeof Object.defineProperty&&function(){try{return Object.defineProperty({},"x",{}),!0}catch(a){return!1}}()},K.defGet=function(a,b,c){
|
|
657
|
+
if(K.isObjectDefinePropertyPresent())Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:c});else{if("undefined"==typeof a.__defineGetter__)throw new Error("JavaScript runtime must support either Object.defineProperty or __defineGetter__");
|
|
658
|
+
a.__defineGetter__(b,c)}},K.defSet=function(a,b,c){if(K.isObjectDefinePropertyPresent())Object.defineProperty(a,b,{configurable:!0,set:c});else{if("undefined"==typeof a.__defineSetter__)throw new Error("JavaScript runtime must support either Object.defineProperty or __defineSetter__");
|
|
659
|
+
a.__defineSetter__(b,c)}},K.sha256=function W(a){function b(a,b){return a>>>b|a<<32-b}for(var c,d,e=Math.pow,f=e(2,32),g="length",h="",i=[],j=8*a[g],k=W.h=W.h||[],l=W.k=W.k||[],m=l[g],n={},o=2;64>m;o++)if(!n[o]){
|
|
660
|
+
for(c=0;313>c;c+=o)n[c]=o;k[m]=e(o,.5)*f|0,l[m++]=e(o,1/3)*f|0}for(a+="\x00";a[g]%64-56;)a+="\x00";for(c=0;c<a[g];c++){if(d=a.charCodeAt(c),d>>8)return;i[c>>2]|=d<<(3-c)%4*8}for(i[i[g]]=j/f|0,i[i[g]]=j,
|
|
661
|
+
d=0;d<i[g];){var p=i.slice(d,d+=16),q=k;for(k=k.slice(0,8),c=0;64>c;c++){var r=p[c-15],s=p[c-2],t=k[0],u=k[4],v=k[7]+(b(u,6)^b(u,11)^b(u,25))+(u&k[5]^~u&k[6])+l[c]+(p[c]=16>c?p[c]:p[c-16]+(b(r,7)^b(r,18)^r>>>3)+p[c-7]+(b(s,17)^b(s,19)^s>>>10)|0),w=(b(t,2)^b(t,13)^b(t,22))+(t&k[1]^t&k[2]^k[1]&k[2]);
|
|
662
|
+
k=[v+w|0].concat(k),k[4]=k[4]+v|0}for(c=0;8>c;c++)k[c]=k[c]+q[c]|0}for(c=0;8>c;c++)for(d=3;d+1;d--){var x=k[c]>>8*d&255;h+=(16>x?0:"")+x.toString(16)}return h},function(){var a={};a.two32=4294967296,a.MaxValue=a.two32-1,
|
|
663
|
+
a.MinValue=0,K.UInt32=a,K.UInt32.Cast=function(b){var c=parseInt(b,10);return c>a.MaxValue?c%=a.two32:c<a.MinValue&&(c=-c%a.two32,c=a.two32-c),c},K.UInt32.InRange=function(b){var c=parseInt(b,10);return c<=a.MaxValue&&c>=a.MinValue;
|
|
664
|
+
};var b={};b.MaxValue=2147483647,b.MinValue=-2147483648,K.Int32=b,K.Int32.Cast=function(a){var c=parseInt(a,10);return c>b.MaxValue?c%=b.MaxValue:c<b.MinValue&&(c=-c%b.MaxValue,c=b.MaxValue-c),c},K.Int32.InRange=function(a){
|
|
665
|
+
var c=parseInt(a,10);return c<=b.MaxValue&&c>=b.MinValue}}();var L=b.LogBuffer=function(){var a=32;this._buffer=[],this.add=function(b){this._buffer.length>=a&&this._buffer.shift(),this._buffer.push(b);
|
|
666
|
+
},this.flush=function(){var a=this._buffer;return this._buffer=[],a}},M=b.Ping=function(a,b,c){this._isSendingPing=!1,this._cachedBasePingUrl=null,this._logger=a,this._logger.setModuleName("Ping"),this._httpClient=b,
|
|
667
|
+
this._clientSettings=c,this.send=function(a){if(!this._isSendingPing){this._isSendingPing=!0;var b=this.getBasePingUrl()+"&d="+K.UrlEncodeString(a.toString());this._logger.error("send(): "+b),this._httpClient.request("GET",b,null,null,null),
|
|
668
|
+
this._isSendingPing=!1}},this.getBasePingUrl=function(){if(!this._cachedBasePingUrl){var a=M.SERVICE_URL+"?comp="+M.COMPONENT_NAME+"&clv="+d.version;if(this._clientSettings&&(a+="&cid="+this._clientSettings.customerKey),
|
|
669
|
+
a+="&sch="+z.SDK_METADATA_SCHEMA,!this._clientSettings)return a;this._cachedBasePingUrl=a}return this._cachedBasePingUrl}};M.COMPONENT_NAME="sdkjs",M.SERVICE_URL="https://pings.conviva.com/ping.ping";var N=b.Random={};
|
|
670
|
+
N.maxUInt32=4294967295,N.maxInt32=2147483647,N.minInt32=-2147483648,N.integer32=function(){return Math.floor(Math.random()*N.maxUInt32)+N.minInt32},N.uinteger32=function(){return Math.floor(Math.random()*N.maxUInt32);
|
|
671
|
+
};var O=b.Sanitize={};O.Integer=function(a,b,c,d){if(isNaN(a))return d;if("number"!=typeof a)return d;if(a==d)return d;var e=K.NumberToInt(a);return O.EnforceBoundaries(e,b,c)},O.EnforceBoundaries=function(a,b,c){
|
|
672
|
+
return null!=c&&a>c?a=c:null!=b&&b>a&&(a=b),a},O.sanitizeSpecialIntegerValue=function(a){return-1==a||-2==a?a:a=O.Integer(a,0,null,-1)};var P=b.StreamerError=function(){function a(a,c){b.errorCode=a,b.severity=c;
|
|
673
|
+
}var b=this;b.errorCode=null,b.severity=d.ErrorSeverity.FATAL,a.apply(b,arguments),this.getErrorCode=function(){return b.errorCode},this.getErrorSeverity=function(){return b.severity}},Q=b.HttpClient=function(a,b,c,d){
|
|
674
|
+
this._logger=a,this._logger.setModuleName("HttpClient"),this._httpInterface=b,this._callbackWithTimeout=c,this._systemSettings=d,this.request=function(a,b,c,d,e){var f=1e3*this._systemSettings.httpTimeout,g=null;
|
|
675
|
+
null!=e&&(g=this._callbackWithTimeout.getWrapperCallback(e,f,"HTTP timeout")),this._logger.debug("request(): calling HttpInterface.makeRequest"),this._httpInterface.makeRequest(a,b,c,d,f,g)}},R=b.Logger=function(a,b,c,d,e){
|
|
676
|
+
this._loggingInterface=a,this._timeInterface=b,this._settings=c,this._logBuffer=d,this._packageName=e,this.debug=function(a){this.log(a,h.LogLevel.DEBUG)},this.info=function(a){this.log(a,h.LogLevel.INFO);
|
|
677
|
+
},this.warning=function(a){this.log(a,h.LogLevel.WARNING)},this.error=function(a){this.log(a,h.LogLevel.ERROR)},this.log=function(a,b){var c=this.formatMessage(a,b);this._logBuffer.add(c),this._settings.logLevel<=b&&this._loggingInterface.consoleLog(c,b);
|
|
678
|
+
},this.prependModuleName=function(a){var b=a;return b="["+this._moduleName+"] "+b},this.prependPackageName=function(a){var b=a;return b="["+this._packageName+"] "+b},this.prependConvivaNamespace=function(a){
|
|
679
|
+
var b=a;return b="[Conviva] "+b},this.prependTime=function(a){var b=this._timeInterface.getEpochTimeMs(),c=(b/1e3).toFixed(3).toString();return"["+c+"] "+a},this.prependLogLevel=function(a,b){var c=R.getLogLevelString(b),d=a;
|
|
680
|
+
return d="["+c+"] "+d},this.prependSessionId=function(a){var b=a;return null!=this._sessionId&&(b="sid="+this._sessionId+" "+b),b},this.setSessionId=function(a){this._sessionId=a},this.setModuleName=function(a){
|
|
681
|
+
this._moduleName=a},this.formatMessage=function(a,b){return this.prependConvivaNamespace(this.prependTime(this.prependLogLevel(this.prependPackageName(this.prependModuleName(this.prependSessionId(a))),b)));
|
|
682
|
+
}};R.getLogLevelString=function(a){var b;switch(a){case h.LogLevel.ERROR:b="ERROR";break;case h.LogLevel.WARNING:b="WARNING";break;case h.LogLevel.INFO:b="INFO";break;case h.LogLevel.DEBUG:b="DEBUG"}return b;
|
|
683
|
+
};var S=b.Storage=function(a,b,c,d){this._logger=a,this._logger.setModuleName("Storage"),this._storageInterface=b,this._callbackWithTimeout=c,this._systemSettings=d,this.load=function(a,b){var c=this._callbackWithTimeout.getWrapperCallback(b,1e3*this._systemSettings.storageTimeout,"storage load timeout");
|
|
684
|
+
this._logger.debug("load(): calling StorageInterface.loadData"),this._storageInterface.loadData(S.STORAGE_SPACE,a,c)},this.save=function(a,b,c){var d=this._callbackWithTimeout.getWrapperCallback(c,1e3*this._systemSettings.storageTimeout,"storage save timeout");
|
|
685
|
+
this._logger.debug("save(): calling StorageInterface.saveData"),this._storageInterface.saveData(S.STORAGE_SPACE,a,b,d)}};S.STORAGE_SPACE="Conviva";var T=b.SystemMetadata=function(b,c,d){this._logger=b,
|
|
686
|
+
this._logger.setModuleName("SystemMetadata"),this._metadataInterface=c,this._exceptionCatcher=d,this._cachedMetadata=null,this.get=function(){return this._cachedMetadata||this.retrieve(),this._cachedMetadata;
|
|
687
|
+
},this.retrieve=function(){function b(a,b){d._exceptionCatcher.runProtected("Session.getSystemMetadataSchema(): "+a,function(){var c=b[a];b[a]=c.call(d._metadataInterface)})}var c={};c[T.BROWSER_NAME]=this._metadataInterface.getBrowserName,
|
|
688
|
+
c[T.BROWSER_VERSION]=this._metadataInterface.getBrowserVersion,c[T.DEVICE_BRAND]=this._metadataInterface.getDeviceBrand,c[T.DEVICE_MANUFACTURER]=this._metadataInterface.getDeviceManufacturer,c[T.DEVICE_MODEL]=this._metadataInterface.getDeviceModel,
|
|
689
|
+
c[T.DEVICE_TYPE]=this._metadataInterface.getDeviceType,c[T.DEVICE_VERSION]=this._metadataInterface.getDeviceVersion,c[T.FRAMEWORK_NAME]=this._metadataInterface.getFrameworkName,c[T.FRAMEWORK_VERSION]=this._metadataInterface.getFrameworkVersion,
|
|
690
|
+
c[T.OPERATING_SYSTEM_NAME]=this._metadataInterface.getOperatingSystemName,c[T.OPERATING_SYSTEM_VERSION]=this._metadataInterface.getOperatingSystemVersion,c[T.DEVICE_CATEGORY]=this._metadataInterface.getDeviceCategory;
|
|
691
|
+
var d=this;this._logger.debug("retrieve(): calling MetadataInterface methods");for(var e in c)b(e,c),K.isValidString(c[e])||delete c[e];var f=!1;if("undefined"!=typeof c[T.DEVICE_TYPE]){for(var g in a.Client.DeviceType)if(c[T.DEVICE_TYPE]===a.Client.DeviceType[g]){
|
|
692
|
+
f=!0;break}f||delete c[T.DEVICE_TYPE]}if(f=!1,"undefined"!=typeof c[T.DEVICE_CATEGORY]){for(var h in a.Client.DeviceCategory)if(c[T.DEVICE_CATEGORY]===a.Client.DeviceCategory[h]){f=!0;break}f||delete c[T.DEVICE_CATEGORY];
|
|
693
|
+
}this._cachedMetadata=K.ObjectShallowCopyOmitNull(c)}};T.BROWSER_NAME="browserName",T.BROWSER_VERSION="browserVersion",T.DEVICE_BRAND="deviceBrand",T.DEVICE_MANUFACTURER="deviceManufacturer",T.DEVICE_MODEL="deviceModel",
|
|
694
|
+
T.DEVICE_TYPE="deviceType",T.DEVICE_VERSION="deviceVersion",T.FRAMEWORK_NAME="frameworkName",T.FRAMEWORK_VERSION="frameworkVersion",T.OPERATING_SYSTEM_NAME="operatingSystemName",T.OPERATING_SYSTEM_VERSION="operatingSystemVersion",
|
|
695
|
+
T.DEVICE_CATEGORY="deviceCategory";var U=b.Time=function(a,b){this._timeInterface=a,this._logger=b,this._logger.setModuleName("Time"),this.current=function(){var a=this._timeInterface.getEpochTimeMs();return K.isInteger(a)||this._logger.error("current(): TimeInterface.getEpochTimeMs() did not return an integer ("+a+")"),
|
|
696
|
+
a}},V=b.Timer=function(a,b,c){var d=this;this._logger=a,this._logger.setModuleName("Timer"),this._timerInterface=b,this._exceptionCatcher=c,this.create=function(a,b,c){var e=function(){d._exceptionCatcher.runProtected(c,function(){
|
|
697
|
+
a()})},f=this.createTimer(e,b,c);return f},this.createOnce=function(a,b,c){var e={cancel:null},f=function(){d._exceptionCatcher.runProtected(c,function(){e&&"function"==typeof e.cancel&&(e.cancel(),e.cancel=null,
|
|
698
|
+
e=null),a()})},g=this.createTimer(f,b,c);return e.cancel=g,g},this.createTimer=function(a,b,c){return this._logger.debug("createTimer(): calling TimerInterface.create"),this._timerInterface.createTimer(a,b,c);
|
|
699
699
|
}}}()}(),a});
|