stormcloud-video-player 0.3.17 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -112
- package/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +3805 -6041
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +19 -102
- package/lib/index.d.ts +19 -102
- package/lib/index.js +3814 -6042
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +1497 -4885
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +9 -78
- package/lib/players/HlsPlayer.cjs +1497 -4885
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/HlsPlayer.d.cts +1 -1
- package/lib/players/index.cjs +1499 -4887
- package/lib/players/index.cjs.map +1 -1
- package/lib/sdk/adstormPlayer.cjs +908 -0
- package/lib/sdk/adstormPlayer.cjs.map +1 -0
- package/lib/sdk/adstormPlayer.d.cts +9 -0
- package/lib/sdk/hlsAdPlayer.cjs +84 -74
- package/lib/sdk/hlsAdPlayer.cjs.map +1 -1
- package/lib/sdk/hlsAdPlayer.d.cts +2 -2
- package/lib/{types-CryTJVCC.d.cts → types-Ca4ZDaWw.d.cts} +3 -8
- package/lib/ui/StormcloudVideoPlayer.cjs +1499 -4895
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +1 -1
- package/lib/utils/browserCompat.cjs +1 -52
- package/lib/utils/browserCompat.cjs.map +1 -1
- package/lib/utils/browserCompat.d.cts +1 -6
- package/lib/utils/tracking.d.cts +1 -1
- package/package.json +1 -1
- package/lib/sdk/ima.cjs +0 -1100
- package/lib/sdk/ima.cjs.map +0 -1
- package/lib/sdk/ima.d.cts +0 -12
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StormcloudVideoPlayer } from '../player/StormcloudVideoPlayer.cjs';
|
|
3
|
-
import { S as StormcloudVideoPlayerConfig } from '../types-
|
|
3
|
+
import { S as StormcloudVideoPlayerConfig } from '../types-Ca4ZDaWw.cjs';
|
|
4
4
|
|
|
5
5
|
type StormcloudVideoPlayerProps = Omit<StormcloudVideoPlayerConfig, "videoElement"> & React.VideoHTMLAttributes<HTMLVideoElement> & {
|
|
6
6
|
onReady?: (player: StormcloudVideoPlayer) => void;
|
|
@@ -58,18 +58,12 @@ __export(browserCompat_exports, {
|
|
|
58
58
|
getBrowserConfigOverrides: function() {
|
|
59
59
|
return getBrowserConfigOverrides;
|
|
60
60
|
},
|
|
61
|
-
getRecommendedAdPlayer: function() {
|
|
62
|
-
return getRecommendedAdPlayer;
|
|
63
|
-
},
|
|
64
61
|
logBrowserInfo: function() {
|
|
65
62
|
return logBrowserInfo;
|
|
66
63
|
},
|
|
67
64
|
supportsFeature: function() {
|
|
68
65
|
return supportsFeature;
|
|
69
66
|
},
|
|
70
|
-
supportsGoogleIMA: function() {
|
|
71
|
-
return supportsGoogleIMA;
|
|
72
|
-
},
|
|
73
67
|
supportsModernJS: function() {
|
|
74
68
|
return supportsModernJS;
|
|
75
69
|
}
|
|
@@ -111,9 +105,7 @@ function detectBrowser() {
|
|
|
111
105
|
var majorVersion = 0;
|
|
112
106
|
var isSmartTV = false;
|
|
113
107
|
var isLegacyTV = false;
|
|
114
|
-
var supportsIMA = true;
|
|
115
108
|
var supportsModernJS2 = true;
|
|
116
|
-
var recommendedAdPlayer = "ima";
|
|
117
109
|
if (/Web0S|webOS/i.test(ua)) {
|
|
118
110
|
name = "LG WebOS";
|
|
119
111
|
isSmartTV = true;
|
|
@@ -152,24 +144,18 @@ function detectBrowser() {
|
|
|
152
144
|
majorVersion = chromeVersion;
|
|
153
145
|
}
|
|
154
146
|
if (chromeVersion < 50) {
|
|
155
|
-
supportsIMA = false;
|
|
156
147
|
supportsModernJS2 = false;
|
|
157
148
|
isLegacyTV = true;
|
|
158
|
-
recommendedAdPlayer = "hls";
|
|
159
149
|
}
|
|
160
150
|
}
|
|
161
151
|
if (webkitVersion > 0 && webkitVersion < 600) {
|
|
162
152
|
supportsModernJS2 = false;
|
|
163
153
|
if (isSmartTV) {
|
|
164
154
|
isLegacyTV = true;
|
|
165
|
-
supportsIMA = false;
|
|
166
|
-
recommendedAdPlayer = "hls";
|
|
167
155
|
}
|
|
168
156
|
}
|
|
169
157
|
if (typeof Promise === "undefined" || typeof Map === "undefined" || typeof Set === "undefined") {
|
|
170
158
|
supportsModernJS2 = false;
|
|
171
|
-
supportsIMA = false;
|
|
172
|
-
recommendedAdPlayer = "hls";
|
|
173
159
|
}
|
|
174
160
|
if (typeof URLSearchParams === "undefined") {
|
|
175
161
|
supportsModernJS2 = false;
|
|
@@ -181,36 +167,9 @@ function detectBrowser() {
|
|
|
181
167
|
isSmartTV: isSmartTV,
|
|
182
168
|
isLegacyTV: isLegacyTV,
|
|
183
169
|
platform: platform,
|
|
184
|
-
|
|
185
|
-
supportsModernJS: supportsModernJS2,
|
|
186
|
-
recommendedAdPlayer: recommendedAdPlayer
|
|
170
|
+
supportsModernJS: supportsModernJS2
|
|
187
171
|
};
|
|
188
172
|
}
|
|
189
|
-
function supportsGoogleIMA() {
|
|
190
|
-
var browser = detectBrowser();
|
|
191
|
-
if (browser.isLegacyTV) {
|
|
192
|
-
return false;
|
|
193
|
-
}
|
|
194
|
-
if (typeof document === "undefined" || typeof document.createElement !== "function") {
|
|
195
|
-
return false;
|
|
196
|
-
}
|
|
197
|
-
try {
|
|
198
|
-
var video = document.createElement("video");
|
|
199
|
-
if (!video) {
|
|
200
|
-
return false;
|
|
201
|
-
}
|
|
202
|
-
} catch (e) {
|
|
203
|
-
return false;
|
|
204
|
-
}
|
|
205
|
-
if (typeof Promise === "undefined") {
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
return browser.supportsIMA;
|
|
209
|
-
}
|
|
210
|
-
function getRecommendedAdPlayer() {
|
|
211
|
-
var browser = detectBrowser();
|
|
212
|
-
return browser.recommendedAdPlayer;
|
|
213
|
-
}
|
|
214
173
|
function supportsModernJS() {
|
|
215
174
|
try {
|
|
216
175
|
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";
|
|
@@ -222,24 +181,18 @@ function logBrowserInfo() {
|
|
|
222
181
|
var debug = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
|
|
223
182
|
if (!debug) return;
|
|
224
183
|
var browser = detectBrowser();
|
|
225
|
-
var imaSupport = supportsGoogleIMA();
|
|
226
184
|
console.log("[StormcloudVideoPlayer] Browser Compatibility Info:", {
|
|
227
185
|
browser: "".concat(browser.name, " ").concat(browser.version),
|
|
228
186
|
platform: browser.platform,
|
|
229
187
|
isSmartTV: browser.isSmartTV,
|
|
230
188
|
isLegacyTV: browser.isLegacyTV,
|
|
231
|
-
supportsIMA: imaSupport,
|
|
232
189
|
supportsModernJS: browser.supportsModernJS,
|
|
233
|
-
recommendedAdPlayer: browser.recommendedAdPlayer,
|
|
234
190
|
userAgent: navigator.userAgent
|
|
235
191
|
});
|
|
236
192
|
}
|
|
237
193
|
function getBrowserConfigOverrides() {
|
|
238
194
|
var browser = detectBrowser();
|
|
239
195
|
var overrides = {};
|
|
240
|
-
if (browser.isLegacyTV || !browser.supportsIMA) {
|
|
241
|
-
overrides.adPlayerType = "hls";
|
|
242
|
-
}
|
|
243
196
|
if (browser.isSmartTV) {
|
|
244
197
|
overrides.allowNativeHls = true;
|
|
245
198
|
}
|
|
@@ -247,8 +200,6 @@ function getBrowserConfigOverrides() {
|
|
|
247
200
|
}
|
|
248
201
|
function supportsFeature(feature) {
|
|
249
202
|
switch(feature){
|
|
250
|
-
case "ima":
|
|
251
|
-
return supportsGoogleIMA();
|
|
252
203
|
case "urlsearchparams":
|
|
253
204
|
return typeof URLSearchParams !== "undefined";
|
|
254
205
|
case "textencoder":
|
|
@@ -267,10 +218,8 @@ function supportsFeature(feature) {
|
|
|
267
218
|
0 && (module.exports = {
|
|
268
219
|
detectBrowser: detectBrowser,
|
|
269
220
|
getBrowserConfigOverrides: getBrowserConfigOverrides,
|
|
270
|
-
getRecommendedAdPlayer: getRecommendedAdPlayer,
|
|
271
221
|
logBrowserInfo: logBrowserInfo,
|
|
272
222
|
supportsFeature: supportsFeature,
|
|
273
|
-
supportsGoogleIMA: supportsGoogleIMA,
|
|
274
223
|
supportsModernJS: supportsModernJS
|
|
275
224
|
});
|
|
276
225
|
//# sourceMappingURL=browserCompat.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ubuntu24/Dev/stormcloud-vp/lib/utils/browserCompat.cjs","../../src/utils/browserCompat.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","__getOwnPropNames","getOwnPropertyDescriptor","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","browserCompat_exports","detectBrowser","getBrowserConfigOverrides","getRecommendedAdPlayer","logBrowserInfo","supportsFeature","supportsGoogleIMA","supportsModernJS","module","exports","getChromeVersion","ua","match","parseInt","getWebKitVersion","getPlatform","navigator","userAgentData","platform","userAgent","test","version","majorVersion","isSmartTV","isLegacyTV","supportsIMA","recommendedAdPlayer","parts","split","chromeVersion","webkitVersion","toString","Promise","Map","Set","URLSearchParams","browser","document","createElement","video","e","Array","assign","forEach","String","includes","debug","imaSupport","console","log"],"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 getRecommendedAdPlayer: () => getRecommendedAdPlayer,\n logBrowserInfo: () => logBrowserInfo,\n supportsFeature: () => supportsFeature,\n supportsGoogleIMA: () => supportsGoogleIMA,\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 supportsIMA = true;\n let supportsModernJS2 = true;\n let recommendedAdPlayer = \"ima\";\n if (/Web0S|webOS/i.test(ua)) {\n name = \"LG WebOS\";\n isSmartTV = true;\n const match = ua.match(/Web0S[/\\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 }\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 }\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = \"Smart TV\";\n isSmartTV = true;\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 }\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n if (chromeVersion > 0) {\n if (!isSmartTV) {\n name = \"Chrome\";\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n }\n if (chromeVersion < 50) {\n supportsIMA = false;\n supportsModernJS2 = false;\n isLegacyTV = true;\n recommendedAdPlayer = \"hls\";\n }\n }\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS2 = false;\n if (isSmartTV) {\n isLegacyTV = true;\n supportsIMA = false;\n recommendedAdPlayer = \"hls\";\n }\n }\n if (typeof Promise === \"undefined\" || typeof Map === \"undefined\" || typeof Set === \"undefined\") {\n supportsModernJS2 = false;\n supportsIMA = false;\n recommendedAdPlayer = \"hls\";\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 supportsIMA,\n supportsModernJS: supportsModernJS2,\n recommendedAdPlayer\n };\n}\nfunction supportsGoogleIMA() {\n const browser = detectBrowser();\n if (browser.isLegacyTV) {\n return false;\n }\n if (typeof document === \"undefined\" || typeof document.createElement !== \"function\") {\n return false;\n }\n try {\n const video = document.createElement(\"video\");\n if (!video) {\n return false;\n }\n } catch (e) {\n return false;\n }\n if (typeof Promise === \"undefined\") {\n return false;\n }\n return browser.supportsIMA;\n}\nfunction getRecommendedAdPlayer() {\n const browser = detectBrowser();\n return browser.recommendedAdPlayer;\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 const imaSupport = supportsGoogleIMA();\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 supportsIMA: imaSupport,\n supportsModernJS: browser.supportsModernJS,\n recommendedAdPlayer: browser.recommendedAdPlayer,\n userAgent: navigator.userAgent\n });\n}\nfunction getBrowserConfigOverrides() {\n const browser = detectBrowser();\n const overrides = {};\n if (browser.isLegacyTV || !browser.supportsIMA) {\n overrides.adPlayerType = \"hls\";\n }\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n }\n return overrides;\n}\nfunction supportsFeature(feature) {\n switch (feature) {\n case \"ima\":\n return supportsGoogleIMA();\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 getRecommendedAdPlayer,\n logBrowserInfo,\n supportsFeature,\n supportsGoogleIMA,\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 supportsIMA: boolean;\n supportsModernJS: boolean;\n recommendedAdPlayer: 'ima' | 'hls';\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 supportsIMA = true;\n let supportsModernJS = true;\n let recommendedAdPlayer: 'ima' | 'hls' = 'ima';\n\n if (/Web0S|webOS/i.test(ua)) {\n name = 'LG WebOS';\n isSmartTV = true;\n const match = ua.match(/Web0S[/\\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 }\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 }\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = 'Smart TV';\n isSmartTV = true;\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 }\n\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n\n if (chromeVersion > 0) {\n if (!isSmartTV) {\n name = 'Chrome';\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n }\n\n if (chromeVersion < 50) {\n supportsIMA = false;\n supportsModernJS = false;\n isLegacyTV = true;\n recommendedAdPlayer = 'hls';\n }\n }\n\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS = false;\n if (isSmartTV) {\n isLegacyTV = true;\n supportsIMA = false;\n recommendedAdPlayer = 'hls';\n }\n }\n\n if (typeof Promise === 'undefined' ||\n typeof Map === 'undefined' ||\n typeof Set === 'undefined') {\n supportsModernJS = false;\n supportsIMA = false;\n recommendedAdPlayer = 'hls';\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 supportsIMA,\n supportsModernJS,\n recommendedAdPlayer,\n };\n}\n\nexport function supportsGoogleIMA(): boolean {\n const browser = detectBrowser();\n\n if (browser.isLegacyTV) {\n return false;\n }\n\n if (typeof document === 'undefined' ||\n typeof document.createElement !== 'function') {\n return false;\n }\n\n try {\n const video = document.createElement('video');\n if (!video) {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n if (typeof Promise === 'undefined') {\n return false;\n }\n\n return browser.supportsIMA;\n}\n\nexport function getRecommendedAdPlayer(): 'ima' | 'hls' {\n const browser = detectBrowser();\n return browser.recommendedAdPlayer;\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 const imaSupport = supportsGoogleIMA();\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 supportsIMA: imaSupport,\n supportsModernJS: browser.supportsModernJS,\n recommendedAdPlayer: browser.recommendedAdPlayer,\n userAgent: navigator.userAgent,\n });\n}\n\nexport function getBrowserConfigOverrides(): {\n adPlayerType?: 'ima' | 'hls';\n allowNativeHls?: boolean;\n} {\n const browser = detectBrowser();\n const overrides: any = {};\n\n if (browser.isLegacyTV || !browser.supportsIMA) {\n overrides.adPlayerType = 'hls';\n }\n\n if (browser.isSmartTV) {\n overrides.allowNativeHls = true;\n }\n\n return overrides;\n}\n\nexport function supportsFeature(feature: string): boolean {\n switch (feature) {\n case 'ima':\n return supportsGoogleIMA();\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\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/ubuntu24/Dev/stormcloud-vp/lib/utils/browserCompat.cjs","../../src/utils/browserCompat.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","__getOwnPropNames","getOwnPropertyDescriptor","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","parts","split","chromeVersion","webkitVersion","toString","Promise","Map","Set","URLSearchParams","Array","assign","forEach","String","includes","e"],"mappings":"AAAA;;;;;;;;;AACA,IAAIA,WAAAA,SAAYC,OAAOC,CAAAA,aAAc;IACrC,EAAIC,EAAAA,IAAAA,QAAAA,IAAmBF,AACnBG,OAD0BC,GAC1BD,QAAAA,EAAoBH,IAAAA,OAD8B;QAC9BA,CAAOK,IAAAA,GAAAA,CAAAA,KAAAA;QAAAA,IAAmB,QAAA;IAAA;AAClD,IAAIC,eAAeN,OAAOO,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,GAAA,SAAA,IAAA,CAACC,KAAAA,GAAQC,KAAAA;MACtB,EAAA,EAAK,IAAIC,EAAAA,CAAAA,OAAQD,qCAARC,MAAQD,GAAAA,KACfZ,MAAAA,IAAUW,QAAQE,MAAM,CAAA,SAAA,YAAA;YAAEC,kCAAAA,2BAAAA;;;gBAAAA,IAAKF,GAAG,CAACC,EAATC;kBAAgBC,EAAAA,CAAAA,SAAY,IAAA,IAAA,CAAA,IAAA,QAAA,QAAA,QAAK,UAAA,IAAA,KAAA;oBAAA,KAAA;+BAAA,IAAA,CAAA,IAAA;;oBAAA,YAAA,CAAA,CAAA,OAAA,iBAAA,MAAA,IAAA,KAAA,KAAA,UAAA;gBAAA;;gBAAjCD,IAAAA,YAASD,EAAK,gBAAA,0BAAdC,SAAAA,6BAAAA,QAAAA,yBAAAA;;YAAAA;YAAAA;;;qBAAAA,6BAAAA;oBAAAA;;;oBAAAA;0BAAAA;;;;IAC9B;IACA,EAAIE,KAAAA,SAAc,SAACC,IAAIC,MAAMC,QAAQC;IACnC,IAAIF,QAAQ,CAAA,OAAOA,qCAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;YAC7D,OAAA,SAAA;WAAA,YAAA,MAAA,IAAA,CAAA,GAAA,cAAA;QAAA,GAAA,IAAA;IAAA,IAAA;;;gBAAA,IAAIG,MAAJ,EAAA,CAAA;gBACH,IAAI,CAACd,WAAAA,EAAae,IAAI,CAACL,IAAII,QAAQA,QAAQF,QACzCnB,UAAUiB,IAAII,KAAK;sBAAEP;eAAAA,EAAK;;iCAAMI;eAAI,CAACG,IAAI;;;;;sBAAEN;eAAAA,OAAY,CAAEK,CAAAA,OAAOjB,iBAAiBe,MAAMG,IAAG,KAAMD,KAAKL,UAAU;;kBAAC,IAAA;eAAA;;;YAFpH,EAAA,GAAA,GAAK,UAAA,EAAWX,kBAAkBc,0BAA7B,SAAA,6BAAA,QAAA,yBAAA;;YAAA,IAAA,GAAA,KAAA,CAAA;cAAA,MAAA,KAAA,CAAA,EAAA,GAAA,SAAA,KAAA,CAAA,EAAA,EAAA,MAAA;;;qBAAA,GAAA,CAAA,yBAAA;sBAAA,GAAA,CAAA,EAAA,GAAA,SAAA,KAAA,CAAA,EAAA,EAAA,MAAA;;;QAAA;sBAAA,KAAA,eAAA,2BAAA,UAAA,aAAA,cAAA,+CAAA,yBAAA,QAAA,GAAA;8BAAA,QAAA,CAAA,QAAA;;;;QAGP,OAAA,oBAAA,IAAA,CAAA,MAAA,WAAA;MACA,OAAOD;IACT,IAAA,OAAA,IAAA,CAAA,KAAA;QACIM,OAAAA,QAAe,SAACC;aAAQR,YAAYhB,UAAU,CAAC,GAAG,cAAc;UAAEyB,OAAO,IAAA,CAAA,KAAA;QAAK,IAAID,GAAAA,WAAAA,IAAAA,CAAAA,MAAAA,iBAAAA;;IAEtF,IAAA,QAAA,IAAA,CAAA,KAAA,KAA6B;QCnB7BE,OAAAA,iBAAA,CAAA;IAAAhB,OAAAgB,uBAAA;MAAAC,KAAAA,UAAA,QAAA,IAAA;eAAAA;;MAAAC,EAAAA,KAAAA,UAAAA,QAAA,CAAA;eAAAA,IAAAA;;MAAAC,EAAAA,UAAAA,IAAA;iBAAAA,MAAAA;;MAAAC,EAAAA,aAAAA,EAAA;iBAAAA,WAAAA;;QAAAC,OAAAA,WAAA;mBAAAA,CAAAA;;QAAA,UAAA,SAAA,KAAA,CAAA,EAAA,GAAA,KAAA,CAAA,EAAA,GAAA;QAAAC,GAAAC,CAAAA,MAAA,GAAAV,GAAAA,UAAAG,CAAAA;YAsBA,GAASQ,CAAAA,QAAAA,MAAiBC,EAAA,KAAA,CAAA;YACxB,EAAMC,QAAQD,GAAGC,EAAAA,GAAA,CAAM,CAAA,CAAA,EAAA,GAAA,SAAA,KAAA,CAAA,EAAA,EAAA,MAAA;QACvB,OAAOA,SAASA,KAAA,CAAM,EAAC,GAAIC,SAASD,KAAA,CAAM,EAAC,EAAG,MAAM;IACtD,OAAA,IAAA,SAAA,IAAA,CAAA,KAAA;QAEA,KAASE,EAAAA,eAAiBH,EAAA;QACxB,IAAMC,QAAQD,GAAGC,KAAA,CAAM;QACvB,IAAA,CAAOA,QAAAA,EAASA,CAAAA,IAAA,CAAM,CAAA,CAAC,GAAIC,SAASD,KAAA,CAAM,EAAC,EAAG,MAAM;QACtD,UAAA,UAAA,MAAA,CAAA,EAAA,GAAA,MAAA,CAAA,EAAA,GAAA;QAEA,IAAA,CAASG,WAAAA,WAAAA;cAC6BC,EAAAA,SAAAA,QAAAA,KAAAA,CAAAA;YAApC,EAAI,aAAA,MAAA,CAAmBA,EAAAA,GAAAA,SAAAA,CAAaA,KAAAA,CAAAA,EAAAA,EAAAA,MAAAA,YAAAA,UAAUC,aAAA,cAAVD,+CAAAA,yBAAyBE,QAAA,GAAU;YACrE,OAAOF,UAAUC,aAAA,CAAcC,QAAA;MACjC,KAAA,IAAA,oBAAA,IAAA,CAAA,KAAA;QAEA,IAAMP,GAAAA,EAAKK,UAAUG,SAAA;QACrB,IAAI,QAAA,gBAAwBC,IAAA,CAAKT,KAAK;UACpC,CAAA,IAAA,EAAO,SAAA,IAAA,CAAA,KAAA,CAAoBS,IAAA,CAAKT,MAAM,WAAW;QACnD,OAAA;QACA,IAAI,OAAOS,CAAAA,GAAA,CAAKT,KAAK;YACnB,OAAO,EAAA;MACT,KAAA,IAAA,UAAA,IAAA,CAAA,KAAA;QACA,IAAI,GAAA,MAASS,IAAA,CAAKT,KAAK;YACrB,OAAO,CAAA,UAAWS,IAAA,CAAKT,MAAM,iBAAiB;MAChD;MACA,EAAI,QAAQS,IAAA,CAAKT,GAAAA,EAAK,eAAA;QACpB,OAAO,SAAA,iBAAA;MACT,EAAA,gBAAA,GAAA;QAGA,IAAA,CAAA,EAAQK,SAAAA,CAAkBE,QAAA,IAAY;YACxC,OAAA;YAEO,GAASf,OAAAA,cAAAA,QAAAA;YACd,EAAMQ,KAAKK,QAAAA,EAAUG,SAAA;QACrB,IAAMD,WAAWH;QAEjB,IAAI1B,OAAO,SAAA,IAAA;YACX,EAAIgC,UAAU,QAAA;YACd,EAAIC,WAAAA,IAAe;QACnB,IAAIC,YAAY;MAChB,IAAIC,aAAa;MACjB,EAAA,EAAIjB,cAAAA,KAAAA,CAAmB,eAAA,KAAA;QAEvB,IAAI,eAAea,CAAAA,GAAA,CAAKT,KAAK;YAC3BtB,OAAO,IAAA;cACPkC,WAAAA,CAAY;YACZ,IAAMX,QAAQD,GAAGC,KAAA,CAAM;UACvBS,UAAUT,SAASA,KAAA,CAAM,EAAC,GAAIA,KAAA,CAAM,EAAC,GAAI;UACzC,IAAIS,CAAAA,WAAY,CAAA,UAAW,KAAA,OAAA,QAAA,eAAA,OAAA,QAAA,aAAA;gBACzB,IAAMI,QAAQJ,QAAQK,KAAA,CAAM;cAC5BJ,eAAeG,KAAA,CAAM,EAAC,GAAIZ,SAASY,KAAA,CAAM,EAAC,EAAG,MAAM;UACrD,KAAA,oBAAA,aAAA;QACF,OAAA,IAAW,SAASL,IAAA,CAAKT,KAAK;UAC5BtB,OAAO;UACPkC,CAAAA,WAAY;YACZ,IAAMX,SAAQD,GAAGC,KAAA,CAAM;YACvBS,UAAUT,UAASA,MAAA,CAAM,EAAC,GAAIA,MAAA,CAAM,EAAC,GAAI;0BACzC,IAAIS,YAAY,WAAW;2BACzB,IAAMI,SAAQJ,QAAQK,KAAA,CAAM;4BAC5BJ,eAAeG,MAAA,CAAM,EAAC,GAAIZ,SAASY,MAAA,CAAM,EAAC,EAAG,MAAM;sBACrD;QACF,OAAA,IAAW,OAAA,aAAoBL,IAAA,CAAKT,KAAK;UACvCtB,OAAO;QACPkC,YAAY;IACd,KAAA,EAAA,IAAW,WAAWH,IAAA,CAAKT,KAAK;UAC9BtB,OAAO;YACPkC,GAAAA,OAAAA,EAAY,UAAA,eAAA,OAAA,QAAA,eAAA,OAAA,QAAA,eAAA,OAAA,MAAA,IAAA,KAAA,eAAA,OAAA,OAAA,MAAA,KAAA,eAAA,OAAA,MAAA,SAAA,CAAA,OAAA,KAAA,eAAA,OAAA,OAAA,SAAA,CAAA,QAAA,KAAA;UACZC,GAAAA,GAAAA,OAAa;QACf,OAAA,IAAW,UAAUJ,IAAA,CAAKT,KAAK;UAC7BtB,OAAO;QACPkC,YAAY;IACd,KAAA;QAAA,QAAA,iEAAA;MAEA,EAAA,CAAA,CAAMI,MAAAA,UAAgBjB,iBAAiBC;MACvC,EAAMiB,UAAAA,MAAgBd,iBAAiBH;MAEvC,IAAIgB,EAAAA,GAAAA,CAAAA,UAAgB,GAAG,0CAAA;YACrB,IAAI,CAACJ,GAAW,OAAXA,QAAW,IAAA,EAAA,KAAA,OAAA,QAAA,OAAA;gBACdlC,EAAAA,KAAO,GAAA,QAAA;gBACPgC,GAAAA,OAAUM,CAAAA,SAAAA,IAAcE,QAAA;gBACxBP,IAAAA,QAAAA,GAAeK,OAAAA;YACjB,cAAA,QAAA,gBAAA;YAEA,IAAIA,GAAAA,UAAAA,GAAgB,IAAI,EAAA;cACtBpB,oBAAmB;YACnBiB,aAAa;QACf,CAAA;MACF,EAAA,UAAA;MAEA,EAAII,YAAAA,CAAAA,GAAgB,KAAKA,gBAAgB,KAAK;UAC5CrB,MAAAA,SAAAA,EAAAA,GAAmB;YACnB,IAAIgB,EAAAA,SAAW,KAAA,GAAA;cACbC,aAAa;UACf,CAAA;IACF;IAEA,IAAI,CAAA,MAAOM,UAAAA,EAAY,KAAA,UACnB,OAAOC,QAAQ,eACf,OAAOC,QAAQ,aAAa;UAC9BzB,CAAAA,kBAAmB;QACrB,KAAA;YAEA,EAAI,KAAA,EAAO0B,KAAAA,eAAoB,KAAA,QAAa;YAC1C1B,CAAAA,mBAAmB;YACrB,OAAA,OAAA,gBAAA;QAEA,KAAA,EAAO;cACLlB,KAAAA,CAAAA,MAAAA,YAAAA;YACAgC,CAAAA,QAAAA;cACAC,KAAAA,OAAAA,EAAAA,QAAAA;YACAC,CAAAA,UAAAA;cACAC,KAAAA,OAAAA,WAAAA,eAAAA,OAAAA,OAAAA,MAAAA,KAAAA;YACAN,UAAAA;cACAX,KAAAA,aAAAA;MACF;AACF;AAEO,SAASA,oDAAAA;IACd,CAAA,CAAA,EAAI,KAAA,OAAA,GAAA;yBACF,OACE,OAAOuB,YAAY,eACnB,OAAOC,QAAQ,eACf,OAAOC,QAAQ,eACf,OAAOE,MAAMxC,IAAA,KAAS,eACtB,OAAOjB,OAAO0D,MAAA,KAAW,eACzB,OAAOD,MAAMlD,SAAA,CAAUoD,OAAA,KAAY,eACnC,OAAOC,OAAOrD,SAAA,CAAUsD,QAAA,KAAa;iCAEzC,EAAA,OAASC,GAAG;0BACV,OAAO;uBACT;IACF,kBAAA;CAEO,SAASlC","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 if (/Web0S|webOS/i.test(ua)) {\n name = \"LG WebOS\";\n isSmartTV = true;\n const match = ua.match(/Web0S[/\\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 }\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 }\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = \"Smart TV\";\n isSmartTV = true;\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 }\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n if (chromeVersion > 0) {\n if (!isSmartTV) {\n name = \"Chrome\";\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n }\n if (chromeVersion < 50) {\n supportsModernJS2 = false;\n isLegacyTV = true;\n }\n }\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS2 = false;\n if (isSmartTV) {\n isLegacyTV = true;\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 };\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 userAgent: navigator.userAgent\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 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}\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\n if (/Web0S|webOS/i.test(ua)) {\n name = 'LG WebOS';\n isSmartTV = true;\n const match = ua.match(/Web0S[/\\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 }\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 }\n } else if (/SMART-TV|SmartTV/i.test(ua)) {\n name = 'Smart TV';\n isSmartTV = true;\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 }\n\n const chromeVersion = getChromeVersion(ua);\n const webkitVersion = getWebKitVersion(ua);\n\n if (chromeVersion > 0) {\n if (!isSmartTV) {\n name = 'Chrome';\n version = chromeVersion.toString();\n majorVersion = chromeVersion;\n }\n\n if (chromeVersion < 50) {\n supportsModernJS = false;\n isLegacyTV = true;\n }\n }\n\n if (webkitVersion > 0 && webkitVersion < 600) {\n supportsModernJS = false;\n if (isSmartTV) {\n isLegacyTV = true;\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 };\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 userAgent: navigator.userAgent,\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 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"]}
|
|
@@ -18,19 +18,14 @@ interface BrowserInfo {
|
|
|
18
18
|
isSmartTV: boolean;
|
|
19
19
|
isLegacyTV: boolean;
|
|
20
20
|
platform: string;
|
|
21
|
-
supportsIMA: boolean;
|
|
22
21
|
supportsModernJS: boolean;
|
|
23
|
-
recommendedAdPlayer: 'ima' | 'hls';
|
|
24
22
|
}
|
|
25
23
|
declare function detectBrowser(): BrowserInfo;
|
|
26
|
-
declare function supportsGoogleIMA(): boolean;
|
|
27
|
-
declare function getRecommendedAdPlayer(): 'ima' | 'hls';
|
|
28
24
|
declare function supportsModernJS(): boolean;
|
|
29
25
|
declare function logBrowserInfo(debug?: boolean): void;
|
|
30
26
|
declare function getBrowserConfigOverrides(): {
|
|
31
|
-
adPlayerType?: 'ima' | 'hls';
|
|
32
27
|
allowNativeHls?: boolean;
|
|
33
28
|
};
|
|
34
29
|
declare function supportsFeature(feature: string): boolean;
|
|
35
30
|
|
|
36
|
-
export { type BrowserInfo, detectBrowser, getBrowserConfigOverrides,
|
|
31
|
+
export { type BrowserInfo, detectBrowser, getBrowserConfigOverrides, logBrowserInfo, supportsFeature, supportsModernJS };
|
package/lib/utils/tracking.d.cts
CHANGED