stormcloud-video-player 0.8.34 → 0.8.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +105 -16
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +2 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +105 -16
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +36 -16
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdBreakOrchestrator.d.cts +3 -7
- package/lib/player/AdConfigManager.d.cts +1 -1
- package/lib/player/AdTimingService.d.cts +1 -1
- package/lib/player/HlsEngine.d.cts +1 -1
- package/lib/player/PlayerControls.d.cts +1 -1
- package/lib/player/Scte35CueManager.d.cts +1 -1
- package/lib/player/Scte35Parser.d.cts +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +105 -16
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/player/playerTypes.d.cts +1 -1
- package/lib/players/HlsPlayer.cjs +105 -16
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +105 -16
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.cjs +62 -0
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +1 -1
- package/lib/{types-CSHvCbhZ.d.cts → types-cTqIKw_D.d.cts} +1 -0
- package/lib/ui/StormcloudVideoPlayer.cjs +105 -16
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/browserCompat.cjs +1 -0
- package/lib/utils/browserCompat.cjs.map +1 -1
- package/lib/utils/browserCompat.d.cts +1 -0
- package/lib/utils/tracking.d.cts +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StormcloudVideoPlayer } from '../player/StormcloudVideoPlayer.cjs';
|
|
3
|
-
import { a as StormcloudVideoPlayerConfig } from '../types-
|
|
3
|
+
import { a as StormcloudVideoPlayerConfig } from '../types-cTqIKw_D.cjs';
|
|
4
4
|
|
|
5
5
|
type StormcloudVideoPlayerProps = Omit<StormcloudVideoPlayerConfig, "videoElement"> & React.VideoHTMLAttributes<HTMLVideoElement> & {
|
|
6
6
|
onReady?: (player: StormcloudVideoPlayer) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/utils/browserCompat.cjs","../../src/utils/browserCompat.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","browserCompat_exports","detectBrowser","getBrowserConfigOverrides","logBrowserInfo","supportsFeature","supportsModernJS","module","exports","getChromeVersion","ua","match","parseInt","getWebKitVersion","getPlatform","navigator","userAgentData","platform","userAgent","test","version","majorVersion","isSmartTV","isLegacyTV","webOSVersion","tizenVersion","chromeVersionNum","chromeVersion","webkitVersion","parts","split"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/browserCompat.ts\nvar browserCompat_exports = {};\n__export(browserCompat_exports, {\n detectBrowser: () => detectBrowser,\n getBrowserConfigOverrides: () => getBrowserConfigOverrides,\n logBrowserInfo: () => logBrowserInfo,\n supportsFeature: () => supportsFeature,\n supportsModernJS: () => supportsModernJS\n});\nmodule.exports = __toCommonJS(browserCompat_exports);\nfunction getChromeVersion(ua) {\n const match = ua.match(/Chrome\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\nfunction getWebKitVersion(ua) {\n const match = ua.match(/AppleWebKit\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\nfunction getPlatform() {\n if (\"userAgentData\" in navigator && navigator.userAgentData?.platform) {\n return navigator.userAgentData.platform;\n }\n const ua = navigator.userAgent;\n if (/Mac|iPhone|iPad|iPod/i.test(ua)) {\n return /iPhone|iPad|iPod/i.test(ua) ? \"iPhone\" : \"MacIntel\";\n }\n if (/Win/i.test(ua)) {\n return \"Win32\";\n }\n if (/Linux/i.test(ua)) {\n return /Android/i.test(ua) ? \"Linux armv8l\" : \"Linux x86_64\";\n }\n if (/CrOS/i.test(ua)) {\n return \"CrOS\";\n }\n return navigator.platform || \"Unknown\";\n}\nfunction detectBrowser() {\n const ua = navigator.userAgent;\n const platform = getPlatform();\n let name = \"Unknown\";\n let version = \"0\";\n let majorVersion = 0;\n let isSmartTV = false;\n let isLegacyTV = false;\n let supportsModernJS2 = true;\n let webOSVersion;\n let tizenVersion;\n let chromeVersionNum;\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n chromeVersionNum = chromeVersion > 0 ? chromeVersion : void 0;\n if (/Web0S|webOS|LG Browser|LGSTB/i.test(ua)) {\n name = \"LG WebOS\";\n isSmartTV = true;\n let match = ua.match(/Web0S[/\\s]*([\\d.]+)/i) || ua.match(/webOS[/\\s]*([\\d.]+)/i);\n if (!match || !match[1]) {\n match = ua.match(/webOSTV[/\\s-]*([\\d.]+)/i) || ua.match(/webOS\\.TV[/\\s-]*([\\d.]+)/i);\n }\n if (match && match[1]) {\n version = match[1];\n const parts = version.split(\".\");\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n webOSVersion = majorVersion;\n } else if (chromeVersion > 0) {\n if (chromeVersion >= 79) {\n webOSVersion = 6;\n version = \"6.0\";\n majorVersion = 6;\n } else if (chromeVersion >= 68) {\n webOSVersion = 5;\n version = \"5.0\";\n majorVersion = 5;\n } else if (chromeVersion >= 53) {\n webOSVersion = 4;\n version = \"4.0\";\n majorVersion = 4;\n } else if (chromeVersion >= 38) {\n webOSVersion = 3;\n version = \"3.0\";\n majorVersion = 3;\n } else {\n webOSVersion = 2;\n version = \"2.0\";\n majorVersion = 2;\n }\n } else {\n version = \"Unknown\";\n webOSVersion = void 0;\n }\n isLegacyTV = webOSVersion !== void 0 && webOSVersion < 3;\n } else if (/Tizen/i.test(ua)) {\n name = \"Samsung Tizen\";\n isSmartTV = true;\n const match = ua.match(/Tizen[/\\s]*([\\d.]+)/i);\n version = match && match[1] ? match[1] : \"Unknown\";\n if (version !== \"Unknown\") {\n const parts = version.split(\".\");\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n tizenVersion = majorVersion;\n }\n isLegacyTV = tizenVersion !== void 0 && tizenVersion < 3;\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = \"Smart TV\";\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else if (/NetCast/i.test(ua)) {\n name = \"LG NetCast\";\n isSmartTV = true;\n isLegacyTV = true;\n } else if (/BRAVIA/i.test(ua)) {\n name = \"Sony BRAVIA\";\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else {\n if (chromeVersion > 0) {\n name = \"Chrome\";\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n if (chromeVersion < 50) {\n supportsModernJS2 = false;\n }\n }\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS2 = false;\n }\n }\n if (typeof Promise === \"undefined\" || typeof Map === \"undefined\" || typeof Set === \"undefined\") {\n supportsModernJS2 = false;\n }\n if (typeof URLSearchParams === \"undefined\") {\n supportsModernJS2 = false;\n }\n return {\n name,\n version,\n majorVersion,\n isSmartTV,\n isLegacyTV,\n platform,\n supportsModernJS: supportsModernJS2,\n webOSVersion,\n tizenVersion,\n chromeVersion: chromeVersionNum\n };\n}\nfunction getBrowserConfigOverrides() {\n const browser = detectBrowser();\n const overrides = {};\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n }\n return overrides;\n}\nfunction supportsModernJS() {\n try {\n return typeof Promise !== \"undefined\" && typeof Map !== \"undefined\" && typeof Set !== \"undefined\" && typeof Array.from !== \"undefined\" && typeof Object.assign !== \"undefined\" && typeof Array.prototype.forEach !== \"undefined\" && typeof String.prototype.includes !== \"undefined\";\n } catch (e) {\n return false;\n }\n}\nfunction logBrowserInfo(debug = false) {\n if (!debug) return;\n const browser = detectBrowser();\n console.log(\"[StormcloudVideoPlayer] Browser Compatibility Info:\", {\n browser: `${browser.name} ${browser.version}`,\n platform: browser.platform,\n isSmartTV: browser.isSmartTV,\n isLegacyTV: browser.isLegacyTV,\n supportsModernJS: browser.supportsModernJS,\n ...browser.webOSVersion !== void 0 ? { webOSVersion: browser.webOSVersion } : {},\n ...browser.tizenVersion !== void 0 ? { tizenVersion: browser.tizenVersion } : {},\n ...browser.chromeVersion !== void 0 ? { chromeVersion: browser.chromeVersion } : {},\n userAgent: navigator.userAgent\n });\n}\nfunction supportsFeature(feature) {\n switch (feature) {\n case \"urlsearchparams\":\n return typeof URLSearchParams !== \"undefined\";\n case \"textencoder\":\n return typeof TextEncoder !== \"undefined\";\n case \"promises\":\n return typeof Promise !== \"undefined\";\n case \"fetch\":\n return typeof fetch !== \"undefined\";\n case \"crypto\":\n return typeof crypto !== \"undefined\" && typeof crypto.subtle !== \"undefined\";\n default:\n return false;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n detectBrowser,\n getBrowserConfigOverrides,\n logBrowserInfo,\n supportsFeature,\n supportsModernJS\n});\n","interface NavigatorUAData {\n platform?: string;\n brands?: Array<{ brand: string; version: string }>;\n mobile?: boolean;\n}\n\ndeclare global {\n interface Navigator {\n userAgentData?: NavigatorUAData;\n }\n}\n\nexport interface BrowserInfo {\n name: string;\n version: string;\n majorVersion: number;\n isSmartTV: boolean;\n isLegacyTV: boolean;\n platform: string;\n supportsModernJS: boolean;\n webOSVersion?: number | undefined;\n tizenVersion?: number | undefined;\n chromeVersion?: number | undefined;\n}\n\nfunction getChromeVersion(ua: string): number {\n const match = ua.match(/Chrome\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\n\nfunction getWebKitVersion(ua: string): number {\n const match = ua.match(/AppleWebKit\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\n\nfunction getPlatform(): string {\n if ('userAgentData' in navigator && navigator.userAgentData?.platform) {\n return navigator.userAgentData.platform;\n }\n\n const ua = navigator.userAgent;\n if (/Mac|iPhone|iPad|iPod/i.test(ua)) {\n return /iPhone|iPad|iPod/i.test(ua) ? 'iPhone' : 'MacIntel';\n }\n if (/Win/i.test(ua)) {\n return 'Win32';\n }\n if (/Linux/i.test(ua)) {\n return /Android/i.test(ua) ? 'Linux armv8l' : 'Linux x86_64';\n }\n if (/CrOS/i.test(ua)) {\n return 'CrOS';\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return (navigator as any).platform || 'Unknown';\n}\n\nexport function detectBrowser(): BrowserInfo {\n const ua = navigator.userAgent;\n const platform = getPlatform();\n\n let name = 'Unknown';\n let version = '0';\n let majorVersion = 0;\n let isSmartTV = false;\n let isLegacyTV = false;\n let supportsModernJS = true;\n let webOSVersion: number | undefined;\n let tizenVersion: number | undefined;\n let chromeVersionNum: number | undefined;\n\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n chromeVersionNum = chromeVersion > 0 ? chromeVersion : undefined;\n\n if (/Web0S|webOS|LG Browser|LGSTB/i.test(ua)) {\n name = 'LG WebOS';\n isSmartTV = true;\n\n let match = ua.match(/Web0S[/\\s]*([\\d.]+)/i) || ua.match(/webOS[/\\s]*([\\d.]+)/i);\n\n if (!match || !match[1]) {\n match = ua.match(/webOSTV[/\\s-]*([\\d.]+)/i) || ua.match(/webOS\\.TV[/\\s-]*([\\d.]+)/i);\n }\n\n if (match && match[1]) {\n version = match[1];\n const parts = version.split('.');\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n webOSVersion = majorVersion;\n } else if (chromeVersion > 0) {\n if (chromeVersion >= 79) {\n webOSVersion = 6;\n version = '6.0';\n majorVersion = 6;\n } else if (chromeVersion >= 68) {\n webOSVersion = 5;\n version = '5.0';\n majorVersion = 5;\n } else if (chromeVersion >= 53) {\n webOSVersion = 4;\n version = '4.0';\n majorVersion = 4;\n } else if (chromeVersion >= 38) {\n webOSVersion = 3;\n version = '3.0';\n majorVersion = 3;\n } else {\n webOSVersion = 2;\n version = '2.0';\n majorVersion = 2;\n }\n } else {\n version = 'Unknown';\n webOSVersion = undefined;\n }\n\n isLegacyTV = webOSVersion !== undefined && webOSVersion < 3;\n } else if (/Tizen/i.test(ua)) {\n name = 'Samsung Tizen';\n isSmartTV = true;\n const match = ua.match(/Tizen[/\\s]*([\\d.]+)/i);\n version = match && match[1] ? match[1] : 'Unknown';\n if (version !== 'Unknown') {\n const parts = version.split('.');\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n tizenVersion = majorVersion;\n }\n\n isLegacyTV = tizenVersion !== undefined && tizenVersion < 3;\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = 'Smart TV';\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else if (/NetCast/i.test(ua)) {\n name = 'LG NetCast';\n isSmartTV = true;\n isLegacyTV = true;\n } else if (/BRAVIA/i.test(ua)) {\n name = 'Sony BRAVIA';\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else {\n if (chromeVersion > 0) {\n name = 'Chrome';\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n\n if (chromeVersion < 50) {\n supportsModernJS = false;\n }\n }\n\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS = false;\n }\n }\n\n if (typeof Promise === 'undefined' ||\n typeof Map === 'undefined' ||\n typeof Set === 'undefined') {\n supportsModernJS = false;\n }\n\n if (typeof URLSearchParams === 'undefined') {\n supportsModernJS = false;\n }\n\n return {\n name,\n version,\n majorVersion,\n isSmartTV,\n isLegacyTV,\n platform,\n supportsModernJS,\n webOSVersion,\n tizenVersion,\n chromeVersion: chromeVersionNum,\n };\n}\n\nexport function getBrowserConfigOverrides(): {\n allowNativeHls?: boolean;\n} {\n const browser = detectBrowser();\n const overrides: { allowNativeHls?: boolean } = {};\n\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n }\n\n return overrides;\n}\n\nexport function supportsModernJS(): boolean {\n try {\n return (\n typeof Promise !== 'undefined' &&\n typeof Map !== 'undefined' &&\n typeof Set !== 'undefined' &&\n typeof Array.from !== 'undefined' &&\n typeof Object.assign !== 'undefined' &&\n typeof Array.prototype.forEach !== 'undefined' &&\n typeof String.prototype.includes !== 'undefined'\n );\n } catch (e) {\n return false;\n }\n}\n\nexport function logBrowserInfo(debug: boolean = false): void {\n if (!debug) return;\n\n const browser = detectBrowser();\n\n console.log('[StormcloudVideoPlayer] Browser Compatibility Info:', {\n browser: `${browser.name} ${browser.version}`,\n platform: browser.platform,\n isSmartTV: browser.isSmartTV,\n isLegacyTV: browser.isLegacyTV,\n supportsModernJS: browser.supportsModernJS,\n ...(browser.webOSVersion !== undefined ? { webOSVersion: browser.webOSVersion } : {}),\n ...(browser.tizenVersion !== undefined ? { tizenVersion: browser.tizenVersion } : {}),\n ...(browser.chromeVersion !== undefined ? { chromeVersion: browser.chromeVersion } : {}),\n userAgent: navigator.userAgent,\n });\n}\n\nexport function supportsFeature(feature: string): boolean {\n switch (feature) {\n case 'urlsearchparams':\n return typeof URLSearchParams !== 'undefined';\n case 'textencoder':\n return typeof TextEncoder !== 'undefined';\n case 'promises':\n return typeof Promise !== 'undefined';\n case 'fetch':\n return typeof fetch !== 'undefined';\n case 'crypto':\n return typeof crypto !== 'undefined' && typeof crypto.subtle !== 'undefined';\n default:\n return false;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/ubuntu24-new/Dev/stormcloud-vp/lib/utils/browserCompat.cjs","../../src/utils/browserCompat.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","browserCompat_exports","detectBrowser","getBrowserConfigOverrides","logBrowserInfo","supportsFeature","supportsModernJS","module","exports","getChromeVersion","ua","match","parseInt","getWebKitVersion","getPlatform","navigator","userAgentData","platform","userAgent","test","version","majorVersion","isSmartTV","isLegacyTV","webOSVersion","tizenVersion","chromeVersionNum","chromeVersion","webkitVersion","parts","split"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils/browserCompat.ts\nvar browserCompat_exports = {};\n__export(browserCompat_exports, {\n detectBrowser: () => detectBrowser,\n getBrowserConfigOverrides: () => getBrowserConfigOverrides,\n logBrowserInfo: () => logBrowserInfo,\n supportsFeature: () => supportsFeature,\n supportsModernJS: () => supportsModernJS\n});\nmodule.exports = __toCommonJS(browserCompat_exports);\nfunction getChromeVersion(ua) {\n const match = ua.match(/Chrome\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\nfunction getWebKitVersion(ua) {\n const match = ua.match(/AppleWebKit\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\nfunction getPlatform() {\n if (\"userAgentData\" in navigator && navigator.userAgentData?.platform) {\n return navigator.userAgentData.platform;\n }\n const ua = navigator.userAgent;\n if (/Mac|iPhone|iPad|iPod/i.test(ua)) {\n return /iPhone|iPad|iPod/i.test(ua) ? \"iPhone\" : \"MacIntel\";\n }\n if (/Win/i.test(ua)) {\n return \"Win32\";\n }\n if (/Linux/i.test(ua)) {\n return /Android/i.test(ua) ? \"Linux armv8l\" : \"Linux x86_64\";\n }\n if (/CrOS/i.test(ua)) {\n return \"CrOS\";\n }\n return navigator.platform || \"Unknown\";\n}\nfunction detectBrowser() {\n const ua = navigator.userAgent;\n const platform = getPlatform();\n let name = \"Unknown\";\n let version = \"0\";\n let majorVersion = 0;\n let isSmartTV = false;\n let isLegacyTV = false;\n let supportsModernJS2 = true;\n let webOSVersion;\n let tizenVersion;\n let chromeVersionNum;\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n chromeVersionNum = chromeVersion > 0 ? chromeVersion : void 0;\n if (/Web0S|webOS|LG Browser|LGSTB/i.test(ua)) {\n name = \"LG WebOS\";\n isSmartTV = true;\n let match = ua.match(/Web0S[/\\s]*([\\d.]+)/i) || ua.match(/webOS[/\\s]*([\\d.]+)/i);\n if (!match || !match[1]) {\n match = ua.match(/webOSTV[/\\s-]*([\\d.]+)/i) || ua.match(/webOS\\.TV[/\\s-]*([\\d.]+)/i);\n }\n if (match && match[1]) {\n version = match[1];\n const parts = version.split(\".\");\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n webOSVersion = majorVersion;\n } else if (chromeVersion > 0) {\n if (chromeVersion >= 79) {\n webOSVersion = 6;\n version = \"6.0\";\n majorVersion = 6;\n } else if (chromeVersion >= 68) {\n webOSVersion = 5;\n version = \"5.0\";\n majorVersion = 5;\n } else if (chromeVersion >= 53) {\n webOSVersion = 4;\n version = \"4.0\";\n majorVersion = 4;\n } else if (chromeVersion >= 38) {\n webOSVersion = 3;\n version = \"3.0\";\n majorVersion = 3;\n } else {\n webOSVersion = 2;\n version = \"2.0\";\n majorVersion = 2;\n }\n } else {\n version = \"Unknown\";\n webOSVersion = void 0;\n }\n isLegacyTV = webOSVersion !== void 0 && webOSVersion < 3;\n } else if (/Tizen/i.test(ua)) {\n name = \"Samsung Tizen\";\n isSmartTV = true;\n const match = ua.match(/Tizen[/\\s]*([\\d.]+)/i);\n version = match && match[1] ? match[1] : \"Unknown\";\n if (version !== \"Unknown\") {\n const parts = version.split(\".\");\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n tizenVersion = majorVersion;\n }\n isLegacyTV = tizenVersion !== void 0 && tizenVersion < 3;\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = \"Smart TV\";\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else if (/NetCast/i.test(ua)) {\n name = \"LG NetCast\";\n isSmartTV = true;\n isLegacyTV = true;\n } else if (/BRAVIA/i.test(ua)) {\n name = \"Sony BRAVIA\";\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else {\n if (chromeVersion > 0) {\n name = \"Chrome\";\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n if (chromeVersion < 50) {\n supportsModernJS2 = false;\n }\n }\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS2 = false;\n }\n }\n if (typeof Promise === \"undefined\" || typeof Map === \"undefined\" || typeof Set === \"undefined\") {\n supportsModernJS2 = false;\n }\n if (typeof URLSearchParams === \"undefined\") {\n supportsModernJS2 = false;\n }\n return {\n name,\n version,\n majorVersion,\n isSmartTV,\n isLegacyTV,\n platform,\n supportsModernJS: supportsModernJS2,\n webOSVersion,\n tizenVersion,\n chromeVersion: chromeVersionNum\n };\n}\nfunction getBrowserConfigOverrides() {\n const browser = detectBrowser();\n const overrides = {};\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n overrides.pauseContentDuringAds = true;\n }\n return overrides;\n}\nfunction supportsModernJS() {\n try {\n return typeof Promise !== \"undefined\" && typeof Map !== \"undefined\" && typeof Set !== \"undefined\" && typeof Array.from !== \"undefined\" && typeof Object.assign !== \"undefined\" && typeof Array.prototype.forEach !== \"undefined\" && typeof String.prototype.includes !== \"undefined\";\n } catch (e) {\n return false;\n }\n}\nfunction logBrowserInfo(debug = false) {\n if (!debug) return;\n const browser = detectBrowser();\n console.log(\"[StormcloudVideoPlayer] Browser Compatibility Info:\", {\n browser: `${browser.name} ${browser.version}`,\n platform: browser.platform,\n isSmartTV: browser.isSmartTV,\n isLegacyTV: browser.isLegacyTV,\n supportsModernJS: browser.supportsModernJS,\n ...browser.webOSVersion !== void 0 ? { webOSVersion: browser.webOSVersion } : {},\n ...browser.tizenVersion !== void 0 ? { tizenVersion: browser.tizenVersion } : {},\n ...browser.chromeVersion !== void 0 ? { chromeVersion: browser.chromeVersion } : {},\n userAgent: navigator.userAgent\n });\n}\nfunction supportsFeature(feature) {\n switch (feature) {\n case \"urlsearchparams\":\n return typeof URLSearchParams !== \"undefined\";\n case \"textencoder\":\n return typeof TextEncoder !== \"undefined\";\n case \"promises\":\n return typeof Promise !== \"undefined\";\n case \"fetch\":\n return typeof fetch !== \"undefined\";\n case \"crypto\":\n return typeof crypto !== \"undefined\" && typeof crypto.subtle !== \"undefined\";\n default:\n return false;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n detectBrowser,\n getBrowserConfigOverrides,\n logBrowserInfo,\n supportsFeature,\n supportsModernJS\n});\n","interface NavigatorUAData {\n platform?: string;\n brands?: Array<{ brand: string; version: string }>;\n mobile?: boolean;\n}\n\ndeclare global {\n interface Navigator {\n userAgentData?: NavigatorUAData;\n }\n}\n\nexport interface BrowserInfo {\n name: string;\n version: string;\n majorVersion: number;\n isSmartTV: boolean;\n isLegacyTV: boolean;\n platform: string;\n supportsModernJS: boolean;\n webOSVersion?: number | undefined;\n tizenVersion?: number | undefined;\n chromeVersion?: number | undefined;\n}\n\nfunction getChromeVersion(ua: string): number {\n const match = ua.match(/Chrome\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\n\nfunction getWebKitVersion(ua: string): number {\n const match = ua.match(/AppleWebKit\\/(\\d+)/);\n return match && match[1] ? parseInt(match[1], 10) : 0;\n}\n\nfunction getPlatform(): string {\n if ('userAgentData' in navigator && navigator.userAgentData?.platform) {\n return navigator.userAgentData.platform;\n }\n\n const ua = navigator.userAgent;\n if (/Mac|iPhone|iPad|iPod/i.test(ua)) {\n return /iPhone|iPad|iPod/i.test(ua) ? 'iPhone' : 'MacIntel';\n }\n if (/Win/i.test(ua)) {\n return 'Win32';\n }\n if (/Linux/i.test(ua)) {\n return /Android/i.test(ua) ? 'Linux armv8l' : 'Linux x86_64';\n }\n if (/CrOS/i.test(ua)) {\n return 'CrOS';\n }\n\n // eslint-disable-next-line deprecation/deprecation\n return (navigator as any).platform || 'Unknown';\n}\n\nexport function detectBrowser(): BrowserInfo {\n const ua = navigator.userAgent;\n const platform = getPlatform();\n\n let name = 'Unknown';\n let version = '0';\n let majorVersion = 0;\n let isSmartTV = false;\n let isLegacyTV = false;\n let supportsModernJS = true;\n let webOSVersion: number | undefined;\n let tizenVersion: number | undefined;\n let chromeVersionNum: number | undefined;\n\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n chromeVersionNum = chromeVersion > 0 ? chromeVersion : undefined;\n\n if (/Web0S|webOS|LG Browser|LGSTB/i.test(ua)) {\n name = 'LG WebOS';\n isSmartTV = true;\n\n let match = ua.match(/Web0S[/\\s]*([\\d.]+)/i) || ua.match(/webOS[/\\s]*([\\d.]+)/i);\n\n if (!match || !match[1]) {\n match = ua.match(/webOSTV[/\\s-]*([\\d.]+)/i) || ua.match(/webOS\\.TV[/\\s-]*([\\d.]+)/i);\n }\n\n if (match && match[1]) {\n version = match[1];\n const parts = version.split('.');\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n webOSVersion = majorVersion;\n } else if (chromeVersion > 0) {\n if (chromeVersion >= 79) {\n webOSVersion = 6;\n version = '6.0';\n majorVersion = 6;\n } else if (chromeVersion >= 68) {\n webOSVersion = 5;\n version = '5.0';\n majorVersion = 5;\n } else if (chromeVersion >= 53) {\n webOSVersion = 4;\n version = '4.0';\n majorVersion = 4;\n } else if (chromeVersion >= 38) {\n webOSVersion = 3;\n version = '3.0';\n majorVersion = 3;\n } else {\n webOSVersion = 2;\n version = '2.0';\n majorVersion = 2;\n }\n } else {\n version = 'Unknown';\n webOSVersion = undefined;\n }\n\n isLegacyTV = webOSVersion !== undefined && webOSVersion < 3;\n } else if (/Tizen/i.test(ua)) {\n name = 'Samsung Tizen';\n isSmartTV = true;\n const match = ua.match(/Tizen[/\\s]*([\\d.]+)/i);\n version = match && match[1] ? match[1] : 'Unknown';\n if (version !== 'Unknown') {\n const parts = version.split('.');\n majorVersion = parts[0] ? parseInt(parts[0], 10) : 0;\n tizenVersion = majorVersion;\n }\n\n isLegacyTV = tizenVersion !== undefined && tizenVersion < 3;\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = 'Smart TV';\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else if (/NetCast/i.test(ua)) {\n name = 'LG NetCast';\n isSmartTV = true;\n isLegacyTV = true;\n } else if (/BRAVIA/i.test(ua)) {\n name = 'Sony BRAVIA';\n isSmartTV = true;\n isLegacyTV = chromeVersion > 0 && chromeVersion < 53;\n } else {\n if (chromeVersion > 0) {\n name = 'Chrome';\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n\n if (chromeVersion < 50) {\n supportsModernJS = false;\n }\n }\n\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS = false;\n }\n }\n\n if (typeof Promise === 'undefined' ||\n typeof Map === 'undefined' ||\n typeof Set === 'undefined') {\n supportsModernJS = false;\n }\n\n if (typeof URLSearchParams === 'undefined') {\n supportsModernJS = false;\n }\n\n return {\n name,\n version,\n majorVersion,\n isSmartTV,\n isLegacyTV,\n platform,\n supportsModernJS,\n webOSVersion,\n tizenVersion,\n chromeVersion: chromeVersionNum,\n };\n}\n\nexport function getBrowserConfigOverrides(): {\n allowNativeHls?: boolean;\n pauseContentDuringAds?: boolean;\n} {\n const browser = detectBrowser();\n const overrides: {\n allowNativeHls?: boolean;\n pauseContentDuringAds?: boolean;\n } = {};\n\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n overrides.pauseContentDuringAds = true;\n }\n\n return overrides;\n}\n\nexport function supportsModernJS(): boolean {\n try {\n return (\n typeof Promise !== 'undefined' &&\n typeof Map !== 'undefined' &&\n typeof Set !== 'undefined' &&\n typeof Array.from !== 'undefined' &&\n typeof Object.assign !== 'undefined' &&\n typeof Array.prototype.forEach !== 'undefined' &&\n typeof String.prototype.includes !== 'undefined'\n );\n } catch (e) {\n return false;\n }\n}\n\nexport function logBrowserInfo(debug: boolean = false): void {\n if (!debug) return;\n\n const browser = detectBrowser();\n\n console.log('[StormcloudVideoPlayer] Browser Compatibility Info:', {\n browser: `${browser.name} ${browser.version}`,\n platform: browser.platform,\n isSmartTV: browser.isSmartTV,\n isLegacyTV: browser.isLegacyTV,\n supportsModernJS: browser.supportsModernJS,\n ...(browser.webOSVersion !== undefined ? { webOSVersion: browser.webOSVersion } : {}),\n ...(browser.tizenVersion !== undefined ? { tizenVersion: browser.tizenVersion } : {}),\n ...(browser.chromeVersion !== undefined ? { chromeVersion: browser.chromeVersion } : {}),\n userAgent: navigator.userAgent,\n });\n}\n\nexport function supportsFeature(feature: string): boolean {\n switch (feature) {\n case 'urlsearchparams':\n return typeof URLSearchParams !== 'undefined';\n case 'textencoder':\n return typeof TextEncoder !== 'undefined';\n case 'promises':\n return typeof Promise !== 'undefined';\n case 'fetch':\n return typeof fetch !== 'undefined';\n case 'crypto':\n return typeof crypto !== 'undefined' && typeof crypto.subtle !== 'undefined';\n default:\n return false;\n }\n}\n"]}
|
|
@@ -26,6 +26,7 @@ interface BrowserInfo {
|
|
|
26
26
|
declare function detectBrowser(): BrowserInfo;
|
|
27
27
|
declare function getBrowserConfigOverrides(): {
|
|
28
28
|
allowNativeHls?: boolean;
|
|
29
|
+
pauseContentDuringAds?: boolean;
|
|
29
30
|
};
|
|
30
31
|
declare function supportsModernJS(): boolean;
|
|
31
32
|
declare function logBrowserInfo(debug?: boolean): void;
|
package/lib/utils/tracking.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as StormcloudVideoPlayerConfig, P as PlayerAnalyticsContext, C as ClientInfo, c as AdDetectInfo, d as AdImpressionInfo, e as AdLoadedInfo } from '../types-
|
|
1
|
+
import { a as StormcloudVideoPlayerConfig, P as PlayerAnalyticsContext, C as ClientInfo, c as AdDetectInfo, d as AdImpressionInfo, e as AdLoadedInfo } from '../types-cTqIKw_D.cjs';
|
|
2
2
|
|
|
3
3
|
declare function buildAnalyticsContext(config: Pick<StormcloudVideoPlayerConfig, "debugAdTiming" | "isLiveStream">): PlayerAnalyticsContext;
|
|
4
4
|
declare function getClientInfo(): ClientInfo;
|