UNPKG

awscdk-construct-scte-scheduler

Version:

AWS CDK Construct for scheduling SCTE-35 events using the MediaLive schedule API

62 lines (58 loc) 2.17 kB
'use strict'; var createUserAgentStringParsingProvider = require('./createUserAgentStringParsingProvider'); const createDefaultUserAgentProvider = ({ serviceId, clientVersion }) => async (config) => { const navigator = typeof window !== "undefined" ? window.navigator : undefined; const uaString = navigator?.userAgent ?? ""; const osName = navigator?.userAgentData?.platform ?? fallback.os(uaString) ?? "other"; const osVersion = undefined; const brands = navigator?.userAgentData?.brands ?? []; const brand = brands[brands.length - 1]; const browserName = brand?.brand ?? fallback.browser(uaString) ?? "unknown"; const browserVersion = brand?.version ?? "unknown"; const sections = [ ["aws-sdk-js", clientVersion], ["ua", "2.1"], [`os/${osName}`, osVersion], ["lang/js"], ["md/browser", `${browserName}_${browserVersion}`], ]; if (serviceId) { sections.push([`api/${serviceId}`, clientVersion]); } const appId = await config?.userAgentAppId?.(); if (appId) { sections.push([`app/${appId}`]); } return sections; }; const fallback = { os(ua) { if (/iPhone|iPad|iPod/.test(ua)) return "iOS"; if (/Macintosh|Mac OS X/.test(ua)) return "macOS"; if (/Windows NT/.test(ua)) return "Windows"; if (/Android/.test(ua)) return "Android"; if (/Linux/.test(ua)) return "Linux"; return undefined; }, browser(ua) { if (/EdgiOS|EdgA|Edg\//.test(ua)) return "Microsoft Edge"; if (/Firefox\//.test(ua)) return "Firefox"; if (/Chrome\//.test(ua)) return "Chrome"; if (/Safari\//.test(ua)) return "Safari"; return undefined; }, }; const defaultUserAgent = createDefaultUserAgentProvider; exports.createUserAgentStringParsingProvider = createUserAgentStringParsingProvider.createUserAgentStringParsingProvider; exports.createDefaultUserAgentProvider = createDefaultUserAgentProvider; exports.defaultUserAgent = defaultUserAgent; exports.fallback = fallback;