boss-web-player-sdk 1.1.15 → 1.1.17
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/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{src-rLue6BwL.cjs → src-DKTjFFN1.cjs} +2 -2
- package/dist/{src-rLue6BwL.cjs.map → src-DKTjFFN1.cjs.map} +1 -1
- package/dist/{src-BbSBHdh2.js → src-DpzwcDhH.js} +53 -36
- package/dist/{src-BbSBHdh2.js.map → src-DpzwcDhH.js.map} +1 -1
- package/package.json +1 -1
package/dist/core.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-DKTjFFN1.cjs");var t=class{player;install(e){this.player=e,this.onInstall()}destroy(){this.onDestroy()}onDestroy(){}};exports.AnalyticsModule=e.l,exports.BasePlayerPlugin=t,exports.CastingModule=e.r,exports.ChaptersModule=e.o,exports.DRMModule=e.i,exports.FirebaseAnalyticsProvider=e.c,exports.KeyMomentsModule=e.s,exports.SubtitlesModule=e.a,exports.ThumbnailsModule=e.n,exports.VideoPlayerSDK=e.t;
|
|
2
2
|
//# sourceMappingURL=core.cjs.map
|
package/dist/core.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./src-
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./src-DpzwcDhH.js";
|
|
2
2
|
//#region ../plugins/src/plugins.ts
|
|
3
3
|
var l = class {
|
|
4
4
|
player;
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require("./src-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require("./src-DKTjFFN1.cjs");let l=require("react");l=s(l,1);let u=require("react-dom"),d=require("react/jsx-runtime"),ee=require("react-dom/client");function te({title:e=`Something Went Wrong`,subtitle:t=`We encountered an error while playing this video.
|
|
2
2
|
Please try again.`,onRetry:n}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`div`,{style:{width:80,height:80,borderRadius:`50%`,background:`rgba(255,255,255,0.08)`,display:`flex`,alignItems:`center`,justifyContent:`center`,flexShrink:0},children:(0,d.jsxs)(`svg`,{width:`36`,height:`36`,viewBox:`0 0 24 24`,fill:`none`,stroke:`rgba(255,255,255,0.85)`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`path`,{d:`M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,d.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,d.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]})}),(0,d.jsxs)(`div`,{style:{textAlign:`center`,padding:`0 24px`},children:[(0,d.jsx)(`p`,{style:{color:`#ffffff`,fontSize:22,fontWeight:700,margin:`0 0 8px`,letterSpacing:`-0.2px`},children:e}),(0,d.jsx)(`p`,{style:{color:`rgba(255,255,255,0.5)`,fontSize:14,margin:0,lineHeight:1.6,whiteSpace:`pre-line`},children:t})]}),(0,d.jsxs)(`button`,{onClick:n,style:{display:`flex`,alignItems:`center`,gap:10,background:`#ffffff`,color:`#09090e`,border:`none`,borderRadius:10,padding:`14px 32px`,fontSize:16,fontWeight:700,cursor:`pointer`,letterSpacing:`-0.1px`},children:[(0,d.jsxs)(`svg`,{width:`20`,height:`20`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,d.jsx)(`polyline`,{points:`1 4 1 10 7 10`}),(0,d.jsx)(`path`,{d:`M3.51 15a9 9 0 1 0 .49-3.51`})]}),`Retry Now`]})]})}var ne=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),re=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),ie=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),ae=e=>{let t=ie(e);return t.charAt(0).toUpperCase()+t.slice(1)},oe={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},se=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ce=(0,l.createContext)({}),le=()=>(0,l.useContext)(ce),ue=(0,l.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:ee=!1,color:te=`currentColor`,className:re=``}=le()??{},ie=r??ee?Number(n??d)*24/Number(t??u):n??d;return(0,l.createElement)(`svg`,{ref:c,...oe,width:t??u??oe.width,height:t??u??oe.height,stroke:e??te,strokeWidth:ie,className:ne(`lucide`,re,i),...!a&&!se(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,l.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),f=(e,t)=>{let n=(0,l.forwardRef)(({className:n,...r},i)=>(0,l.createElement)(ue,{ref:i,iconNode:t,className:ne(`lucide-${re(ae(e))}`,`lucide-${e}`,n),...r}));return n.displayName=ae(e),n},de=f(`airplay`,[[`path`,{d:`M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1`,key:`ns4c3b`}],[`path`,{d:`m12 15 5 6H7Z`,key:`14qnn2`}]]),fe=f(`captions`,[[`rect`,{width:`18`,height:`14`,x:`3`,y:`5`,rx:`2`,ry:`2`,key:`12ruh7`}],[`path`,{d:`M7 15h4M15 15h2M7 11h2M13 11h4`,key:`1ueiar`}]]),pe=f(`cast`,[[`path`,{d:`M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6`,key:`3zrzxg`}],[`path`,{d:`M2 12a9 9 0 0 1 8 8`,key:`g6cvee`}],[`path`,{d:`M2 16a5 5 0 0 1 4 4`,key:`1y1dii`}],[`line`,{x1:`2`,x2:`2.01`,y1:`20`,y2:`20`,key:`xu2jvo`}]]),p=f(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),me=f(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),he=f(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),ge=f(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),_e=f(`languages`,[[`path`,{d:`m5 8 6 6`,key:`1wu5hv`}],[`path`,{d:`m4 14 6-6 2-3`,key:`1k1g8d`}],[`path`,{d:`M2 5h12`,key:`or177f`}],[`path`,{d:`M7 2h1`,key:`1t2jsx`}],[`path`,{d:`m22 22-5-10-5 10`,key:`don7ne`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),ve=f(`list-video`,[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M10 12H3`,key:`1ulcyk`}],[`path`,{d:`M10 19H3`,key:`108z41`}],[`path`,{d:`M15 12.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997a1 1 0 0 1-1.517-.86z`,key:`ms4nik`}]]),ye=f(`maximize`,[[`path`,{d:`M8 3H5a2 2 0 0 0-2 2v3`,key:`1dcmit`}],[`path`,{d:`M21 8V5a2 2 0 0 0-2-2h-3`,key:`1e4gt3`}],[`path`,{d:`M3 16v3a2 2 0 0 0 2 2h3`,key:`wsl5sc`}],[`path`,{d:`M16 21h3a2 2 0 0 0 2-2v-3`,key:`18trek`}]]),m=f(`minimize`,[[`path`,{d:`M8 3v3a2 2 0 0 1-2 2H3`,key:`hohbtr`}],[`path`,{d:`M21 8h-3a2 2 0 0 1-2-2V3`,key:`5jw1f3`}],[`path`,{d:`M3 16h3a2 2 0 0 1 2 2v3`,key:`198tvr`}],[`path`,{d:`M16 21v-3a2 2 0 0 1 2-2h3`,key:`ph8mxp`}]]),be=f(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),xe=f(`picture-in-picture`,[[`path`,{d:`M2 10h6V4`,key:`zwrco`}],[`path`,{d:`m2 4 6 6`,key:`ug085t`}],[`path`,{d:`M21 10V7a2 2 0 0 0-2-2h-7`,key:`git5jr`}],[`path`,{d:`M3 14v2a2 2 0 0 0 2 2h3`,key:`1f7fh3`}],[`rect`,{x:`12`,y:`14`,width:`10`,height:`7`,rx:`1`,key:`1wjs3o`}]]),Se=f(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Ce=f(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),we=f(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Te=f(`volume-1`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}]]),Ee=f(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),De=f(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),Oe=f(`volume`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}]]),ke=1e4,Ae=!1,je=`
|
|
3
3
|
html, body { margin: 0; padding: 0; height: 100%; background: #000; overflow: hidden; }
|
|
4
4
|
* { box-sizing: border-box; }
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as e, t, u as n } from "./src-
|
|
1
|
+
import { c as e, t, u as n } from "./src-DpzwcDhH.js";
|
|
2
2
|
import { createContext as r, createElement as i, forwardRef as a, useCallback as o, useContext as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
3
3
|
import { createPortal as ee } from "react-dom";
|
|
4
4
|
import { Fragment as te, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
@@ -45,5 +45,5 @@ Schedule: ${o.map(e=>Cc(e))} pos: ${this.timelinePos}`),c.length&&this.log(`Remo
|
|
|
45
45
|
</div>
|
|
46
46
|
`,Error(t)}this.videoElement=document.createElement(`video`),this.videoElement.className=`sdk-html5-video`,this.videoElement.style.width=`100%`,this.videoElement.style.height=`100%`,this.videoElement.style.display=`block`,this.videoElement.style.backgroundColor=`#000000`,this.videoElement.playsInline=!0,this.videoElement.controls=!1,this.videoElement.muted=!!this.options.muted,this.options.container.appendChild(this.videoElement),this.drm.setupWatermark(this.options.container),this.bindMediaEvents(),this.loadSource(this.options.src),this.setupBackgroundControls()}bindMediaEvents(){let e=this.videoElement;e.addEventListener(`play`,()=>{this.analytics.track(`play`,e,this.getAnalyticsPayload()),this.analytics.startHeartbeat(e,()=>this.getAnalyticsPayload(),this.options.watchProgressInterval),this.emit(`play`,null)}),e.addEventListener(`pause`,()=>{this.clearStallWatchdog(),this.analytics.track(`pause`,e,this.getAnalyticsPayload()),this.analytics.stopHeartbeat(),this.emit(`pause`,null)}),e.addEventListener(`progress`,()=>{this.progressTick++}),e.addEventListener(`timeupdate`,()=>{let t=e.currentTime;if(e.seeking||(this.lastPlaybackPos=t),this.chapters.updateTime(t),this.refreshAdBreakState(t),this.isAdBreak)this.subtitles.setCustomSubtitleText(``);else if(this.subtitles.updateTime(this.videoTimeToContentTime(t)),this.hlsActiveSubtitleKey!==null){let e=(this.hlsSubtitleCues.get(this.hlsActiveSubtitleKey)??[]).filter(e=>t>=e.startTime&&t<e.endTime);this.subtitles.setCustomSubtitleText(e.map(e=>e.text).join(`<br />`))}this.emit(`timeupdate`,t)}),e.addEventListener(`seeking`,()=>{let t=this.lastPlaybackPos,n=e.currentTime,r=this.pendingSeekAttribution&&Date.now()<this.pendingSeekAttribution.expiresAt?this.pendingSeekAttribution:null;this.pendingSeekAttribution=null,r?this.analytics.track(r.eventType,e,{...this.getAnalyticsPayload(),...r.extras}):this.analytics.track(`seek`,e,{...this.getAnalyticsPayload(),seekFrom:t,seekTo:n}),this.lastPlaybackPos=n,this.emit(`seeking`,e.currentTime)}),e.addEventListener(`waiting`,()=>{this.isBuffering=!0,this.armStallWatchdog(),this.analytics.setBuffering(!0,e,()=>this.getAnalyticsPayload()),this.emit(`buffering`,!0)}),e.addEventListener(`playing`,()=>{this.isBuffering=!1,this.clearStallWatchdog(),this.analytics.setBuffering(!1,e,()=>this.getAnalyticsPayload()),this.emit(`buffering`,!1)}),e.addEventListener(`volumechange`,()=>{this.analytics.track(`volume_change`,e,this.getAnalyticsPayload()),this.emit(`volumechange`,{volume:e.volume,muted:e.muted})}),e.addEventListener(`ratechange`,()=>{this.analytics.track(`speed_change`,e,this.getAnalyticsPayload()),this.emit(`ratechange`,e.playbackRate)}),e.addEventListener(`ended`,()=>{this.refreshAdBreakState(1/0),this.analytics.track(`ended`,e,this.getAnalyticsPayload()),this.analytics.track(`complete`,e,{...this.getAnalyticsPayload(),watchPercentage:100}),this.analytics.stopHeartbeat(),this.emit(`ended`,null)}),e.addEventListener(`enterpictureinpicture`,()=>{this.analytics.track(`pip_toggle`,e,{...this.getAnalyticsPayload(),errorMessage:`entered`}),this.emit(`pipchange`,!0)}),e.addEventListener(`leavepictureinpicture`,()=>{this.analytics.track(`pip_toggle`,e,{...this.getAnalyticsPayload(),errorMessage:`exited`}),this.emit(`pipchange`,!1)}),e.addEventListener(`error`,()=>{let t=e.error;this.analytics.track(`error`,e,{...this.getAnalyticsPayload(),errorMessage:t?`${t.code}: ${t.message}`:`Unknown HTML5 video playback error`,errorCode:t?.code,isRecoverable:!1}),this.fail(t instanceof Error?t:Error(t?`${t.code}: ${t.message}`:`Unknown HTML5 video playback error`))});let t=e.textTracks;if(t){let n=(e,t)=>{if(e.kind!==`subtitles`&&e.kind!==`captions`||this.subtitles.getTracks().some(e=>e.isNative&&e.nativeTrackIndex===t))return;let n=e.kind===`captions`;this.subtitles.addTrack({id:`native-${t}`,label:e.label||e.language||(n?`CC ${t+1}`:`Track ${t+1}`),lang:e.language||`und`,isDefault:!this.hlsInstance&&(e.default||e.mode===`showing`),isNative:!0,nativeTrackIndex:t})};e.addEventListener(`loadedmetadata`,()=>{this.analytics.track(`video_loaded`,e,this.getAnalyticsPayload()),this.refreshAdBreakState(e.currentTime);let r=0,i=this.hlsInstance?[`captions`]:[`subtitles`,`captions`];for(let e=0;e<t.length;e++){if(!i.includes(t[e].kind))continue;let a=this.subtitles.getTracks().length;n(t[e],e),this.subtitles.getTracks().length>a&&r++}r>0&&this.emit(`subtitlesloaded`,this.subtitles.getTracks())}),t.addEventListener(`addtrack`,e=>{let r=e.track;if(r)for(let e=0;e<t.length;e++){if(t[e]!==r)continue;let i=this.subtitles.getTracks().length;n(r,e),this.subtitles.getTracks().length>i&&this.emit(`subtitlesloaded`,this.subtitles.getTracks());break}})}this.subtitles.onTrackSwitch(e=>{if(this.analytics.track(`subtitle_change`,this.videoElement,{...this.getAnalyticsPayload(),subtitleEnabled:e!==null,subtitleLanguage:e?.lang??``}),e===null||!e.isHls&&!e.isNative){if(this.hlsInstance)this.hlsInstance.subtitleTrack=-1;else if(t){for(let e=0;e<t.length;e++)t[e].mode=`disabled`,t[e].oncuechange=null;this.subtitles.setCustomSubtitleText(``)}}else if(e.isHls)this.hlsInstance&&e.hlsTrackId!==void 0&&(this.hlsInstance.subtitleTrack=e.hlsTrackId);else if(e.isNative&&t&&e.nativeTrackIndex!==void 0&&t[e.nativeTrackIndex])for(let n=0;n<t.length;n++)if(t[n].oncuechange=null,n===e.nativeTrackIndex){t[n].mode=`hidden`;let e=t[n];e.oncuechange=()=>{if(this.isAdBreak){this.subtitles.setCustomSubtitleText(``);return}let t=e.activeCues;if(t&&t.length>0){let e=Array.from(t).map(e=>e.text).join(`<br />`);this.subtitles.setCustomSubtitleText(e)}else this.subtitles.setCustomSubtitleText(``)}}else t[n].mode=`disabled`})}rewriteToProxy(e){return this.options.urlTransformer?this.options.urlTransformer(e):e}async loadSource(t){this.armStallWatchdog(),this.extractKeyMomentsFromManifest(t),this.extractAdBreaksFromManifest(t),this.extractSubtitlesFromManifest(t);let n=this.rewriteToProxy(t),r=n.endsWith(`.m3u8`)||n.includes(`.m3u8`),i=n.endsWith(`.mpd`)||n.includes(`.mpd`);if(r)if($.isSupported()){let r=new $({enableWorker:!0,lowLatencyMode:!0,backBufferLength:90,maxMaxBufferLength:30,renderTextTracksNatively:!1,xhrSetup:(e,n)=>{let r=this.drm.getAuthToken();if(!r)try{let e=new URL(t),n=e.searchParams.get(`token`)||e.searchParams.get(`key`)||e.searchParams.get(`auth`)||e.searchParams.get(`authToken`);n&&(r=n)}catch{}let i=this.drm.getAuthHeader();try{let t=this.rewriteToProxy(n),a=new URL(t,window.location.origin);r&&(i?e.setRequestHeader(i,r):a.searchParams.set(`token`,r)),e.open(`GET`,a.toString(),!0)}catch(e){console.error(`[PlayerSDK Core] Error in xhrSetup URL parsing:`,e)}}});this.hlsInstance=r,r.loadSource(n),r.attachMedia(this.videoElement),r.on($.Events.LEVEL_LOADED,(e,t)=>{let n=this.parseAdBreaksFromFragments(t.details.fragments);this.adBreaks=n,this.analytics.setAdBreaks(n),this.emit(`adbreaksloaded`,n)}),r.on($.Events.SUBTITLE_TRACKS_UPDATED,()=>{if(r.subtitleTracks.length===0)return;let e=r.subtitleTracks.map((e,t)=>({id:`subtitle-hls-${t}`,label:e.name||e.lang||`Track ${t+1}`,lang:e.lang||`und`,isDefault:!!e.default,isHls:!0,hlsTrackId:t}));this.subtitles.setHlsTracks(e),this.emit(`subtitlesloaded`,this.subtitles.getTracks())}),r.on($.Events.SUBTITLE_TRACK_SWITCH,(e,t)=>{if(this.hlsActiveSubtitleKey=null,this.subtitles.setCustomSubtitleText(``),t.id!==-1){let e=r.subtitleTracks[t.id];this.hlsActiveSubtitleKey=e?.default?`default`:`subtitles${t.id}`}}),r.on($.Events.CUES_PARSED,(e,t)=>{let n=this.hlsSubtitleCues.get(t.track)??[],r=t.cues.filter(e=>!n.some(t=>t.startTime===e.startTime&&t.endTime===e.endTime));r.length>0&&this.hlsSubtitleCues.set(t.track,[...n,...r])}),r.on($.Events.FRAG_LOADED,()=>{this.networkErrorRetries=0,this.mediaErrorRecovered=!1,this.progressTick++}),r.on($.Events.MANIFEST_LOADED,()=>{this.progressTick++}),r.on($.Events.LEVEL_LOADED,()=>{this.progressTick++}),r.on($.Events.MANIFEST_PARSED,()=>{this.qualityLevels=r.levels.map((e,t)=>({id:t,height:e.height,width:e.width,bitrate:e.bitrate,label:e.height?`${e.height}p`:`Option ${t+1}`}));let e={id:-1,height:0,width:0,bitrate:0,label:`Auto`};this.qualityLevels.unshift(e),this.activeQuality=e,this.emit(`qualitylevels`,this.qualityLevels),r.levels.length>0&&!this.hasPlayableLevel(r.levels)&&this.emit(`unsupportedcodec`,null),this.options.autoplay&&this.play()}),r.on($.Events.AUDIO_TRACKS_UPDATED,()=>{r.audioTracks.length>1&&(this.audioTrackList=r.audioTracks.map((e,t)=>({id:t,label:e.name||e.lang||`Audio ${t+1}`,lang:e.lang||``})),this.emit(`audiotracksloaded`,this.audioTrackList))}),r.on($.Events.AUDIO_TRACK_SWITCHED,(e,t)=>{let n=this.audioTrackList.find(e=>e.id===t.id);this.analytics.track(`audio_track_change`,this.videoElement,{...this.getAnalyticsPayload(),audioTrack:n?.label??``}),this.emit(`audiotrackchange`,t.id)}),r.on($.Events.LEVEL_SWITCHED,(e,t)=>{let n=this.qualityLevels.find(e=>e.id===t.level);n&&(this.analytics.track(`quality_change`,this.videoElement,{...this.getAnalyticsPayload(),rendition:n.label,bitrate:n.bitrate,isAutoSwitch:r.autoLevelEnabled}),this.emit(`qualitychange`,n))}),r.on($.Events.ERROR,(t,n)=>{let i=n.response?.code;if(i&&e.TERMINAL_HTTP_STATUSES.includes(i)){this.analytics.track(`network_error`,this.videoElement,{...this.getAnalyticsPayload(),errorMessage:n.details,errorCode:i,isRecoverable:!1}),this.fail(Error(`Network error ${i}: ${n.details}`));return}n.fatal&&(n.type===$.ErrorTypes.NETWORK_ERROR?(this.analytics.track(`network_error`,this.videoElement,{...this.getAnalyticsPayload(),errorMessage:n.details,errorCode:i??0,isRecoverable:this.networkErrorRetries<e.MAX_NETWORK_RETRIES}),this.networkErrorRetries<e.MAX_NETWORK_RETRIES?(this.networkErrorRetries++,r.startLoad()):this.fail(Error(`Network error: ${n.details}`))):n.type===$.ErrorTypes.MEDIA_ERROR?this.mediaErrorRecovered?this.fail(Error(`Media error: ${n.details}`)):(this.mediaErrorRecovered=!0,r.recoverMediaError()):this.fail(Error(`Playback error: ${n.details}`)))})}else this.videoElement.canPlayType(`application/vnd.apple.mpegurl`)&&(this.videoElement.src=t,this.qualityLevels=[{id:0,height:720,width:1280,bitrate:2e6,label:`720p (Native)`}],this.activeQuality=this.qualityLevels[0],this.options.autoplay&&this.videoElement.play().catch(console.error));else if(i){let e=await Promise.resolve().then(()=>require("./dash.all.min-CkVT4O2X.cjs")).catch(()=>null);if(!e){console.error(`[SDK] dashjs not installed — install it to use DASH streams`);return}let n=e.MediaPlayer().create();this.dashInstance=n,n.initialize(this.videoElement,t,!!this.options.autoplay),n.updateSettings({streaming:{abr:{autoSwitchBitrate:{video:!0,audio:!0}},buffer:{bufferTimeAtTopQuality:30}}}),this.qualityLevels=[{id:0,height:0,width:0,bitrate:0,label:`Auto (DASH)`}],this.activeQuality=this.qualityLevels[0],this.emit(`qualitylevels`,this.qualityLevels)}else this.videoElement.src=t,this.qualityLevels=[{id:0,height:1080,width:1920,bitrate:45e5,label:`1080p (Source)`}],this.activeQuality=this.qualityLevels[0],this.options.autoplay&&this.videoElement.play().catch(console.error)}setupBackgroundControls(){if(`mediaSession`in navigator){navigator.mediaSession.metadata=new MediaMetadata({title:`Video Player`,album:`Video Player`,artwork:[{src:`https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?w=512&q=80`,sizes:`512x512`,type:`image/jpeg`}]});try{navigator.mediaSession.setActionHandler(`play`,()=>this.play()),navigator.mediaSession.setActionHandler(`pause`,()=>this.pause()),navigator.mediaSession.setActionHandler(`seekbackward`,e=>{let t=e.seekOffset||10;this.attributeNextSeek(`fast_backward`,{skipSeconds:t}),this.seek(this.videoElement.currentTime-t)}),navigator.mediaSession.setActionHandler(`seekforward`,e=>{let t=e.seekOffset||10;this.attributeNextSeek(`fast_forward`,{skipSeconds:t}),this.seek(this.videoElement.currentTime+t)})}catch{console.warn(`[PlayerSDK Session] Action handler binding is unsupported by browser.`)}}}play(){this.videoElement.play().catch(e=>{console.warn(`[PlayerSDK Play] Autoplay blocked, wait for user interaction:`,e)})}pause(){this.videoElement.pause()}seek(e){let t=Math.max(0,Math.min(e,this.getDuration()));this.videoElement.currentTime=t}attributeNextSeek(e,t={}){this.pendingSeekAttribution={eventType:e,extras:t,expiresAt:Date.now()+1500}}setVolume(e){let t=Math.max(0,Math.min(e,1));this.videoElement.volume=t,this.videoElement.muted=t===0}setMute(e){this.videoElement.muted!==e&&this.analytics.track(`mute`,this.videoElement,{...this.getAnalyticsPayload(),isMuted:e}),this.videoElement.muted=e}setPlaybackRate(e){this.contentPlaybackRate=e,this.isAdBreak||(this.videoElement.playbackRate=e)}setQuality(e){let t=this.qualityLevels.find(t=>t.id===e);t&&(this.activeQuality=t,this.hlsInstance?this.hlsInstance.currentLevel=e:console.warn(`[PlayerSDK Core] Manual rendition switching is not supported by standard native players.`))}async togglePictureInPicture(){if(!document.pictureInPictureEnabled)return console.warn(`[PlayerSDK Core] Picture-in-Picture is disabled or unsupported.`),!1;try{return document.pictureInPictureElement?(await document.exitPictureInPicture(),!1):(await this.videoElement.requestPictureInPicture(),!0)}catch(e){return console.error(`[PlayerSDK Core] PiP toggle failed:`,e),!1}}toggleFullscreen(){let e=this.options.container;document.fullscreenElement?document.exitFullscreen():e.requestFullscreen().catch(e=>{console.error(`[PlayerSDK Fullscreen] Failed entering fullscreen:`,e)})}getVideoElement(){return this.videoElement}getCurrentTime(){return this.videoElement.currentTime}getDuration(){return this.videoElement.duration||0}getVolume(){return this.videoElement.volume}isMuted(){return this.videoElement.muted}getPlaybackRate(){return this.videoElement.playbackRate}getActiveQuality(){return this.activeQuality}getQualityLevels(){return this.qualityLevels}getBufferLength(){let e=this.videoElement.buffered,t=this.videoElement.currentTime;for(let n=0;n<e.length;n++)if(t>=e.start(n)&&t<=e.end(n))return e.end(n)-t;return 0}getBufferedRanges(){let e=this.videoElement.buffered,t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}hasPlayableLevel(e){if(typeof MediaSource>`u`||!MediaSource.isTypeSupported)return!0;let t=(e,t)=>{if(!t)return!0;try{return MediaSource.isTypeSupported(`${e}; codecs="${t}"`)}catch{return!0}};return e.some(e=>t(`video/mp4`,e.videoCodec)&&t(`audio/mp4`,e.audioCodec))}getAnalyticsPayload(){return{rendition:this.activeQuality.label,bitrate:this.activeQuality.bitrate,volume:this.videoElement.volume,speed:this.videoElement.playbackRate}}on(e,t){this.eventListeners[e]||(this.eventListeners[e]=[]),this.eventListeners[e].push(t)}off(e,t){this.eventListeners[e]&&(this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t))}emit(e,...t){this.eventListeners[e]&&this.eventListeners[e].forEach(e=>e(...t))}async extractSubtitlesFromManifest(e){try{let t=await this.buildManifestUrl(e),n=await fetch(t,{headers:this.drm.getRequestHeaders()});if(!n.ok)return;let r=(await n.text()).split(`
|
|
47
47
|
`),i=this.drm.getAuthToken()||void 0;if(!i)try{let t=new URL(e);i=t.searchParams.get(`token`)||t.searchParams.get(`key`)||t.searchParams.get(`auth`)||t.searchParams.get(`authToken`)||void 0}catch{}let a=e.substring(0,e.lastIndexOf(`/`)+1),o=e.includes(`.m3u8`)&&$.isSupported(),s=[];for(let e of r){if(!e.startsWith(`#EXT-X-MEDIA:`)||!/[,:]TYPE=SUBTITLES\b/i.test(e))continue;let t=e.match(/NAME="([^"]+)"/),n=e.match(/LANGUAGE="([^"]+)"/),r=e.match(/URI="([^"]+)"/),c=/DEFAULT=YES/i.test(e);if(!r)continue;let l=r[1],u=s.length,d=t?t[1]:n?n[1]:`Track ${u+1}`,f=n?n[1]:`und`;if(/\.m3u8?(\?|$)/i.test(l)){o||s.push({id:`subtitle-${u}`,label:d,lang:f,isDefault:c,isHls:!0,hlsTrackId:u});continue}let p=l.startsWith(`http`)?l:a+l,m=this.rewriteToProxy(p);if(i)try{let e=new URL(m,window.location.origin);e.searchParams.set(`token`,i),m=e.toString()}catch{}s.push({id:`subtitle-${u}`,label:d,lang:f,isDefault:c,src:m})}s.length>0&&(this.subtitles.setHlsTracks(s),this.emit(`subtitlesloaded`,this.subtitles.getTracks()))}catch(e){console.error(`[PlayerSDK] Error extracting subtitles from manifest:`,e)}}async extractKeyMomentsFromManifest(e){try{let t=await this.buildManifestUrl(e),n=await fetch(t);if(!n.ok)return;let r=(await n.text()).split(`
|
|
48
|
-
`),i=[];for(let e of r)if(e.startsWith(`#EXT-X-DATERANGE:`)){let t=e.match(/ID="([^"]+)"/),n=e.match(/START-DATE="([^"]+)"/),r=e.match(/X-TITLE="([^"]+)"/);t&&n&&r&&(i.some(e=>e.id===t[1])||i.push({id:t[1],startDate:n[1],title:r[1]}))}if(i.length>0){i.sort((e,t)=>e.startDate.localeCompare(t.startDate));let e=new Date(i[0].startDate).getTime(),t=i.map(t=>{let n=(new Date(t.startDate).getTime()-e)/1e3;return{title:t.title,startTime:n,endTime:0}});for(let e=0;e<t.length;e++)e<t.length-1?t[e].endTime=t[e+1].startTime:t[e].endTime=99999;this.keyMoments.setKeyMoments(t),this.emit(`keymomentsloaded`,t),this.emit(`chaptersloaded`,t)}}catch(e){console.error(`Error parsing manifest key moments:`,e)}}async extractAdBreaksFromManifest(e){try{let t=await this.buildManifestUrl(e),n=await fetch(t);if(!n.ok)return;let r=await n.text(),i=r.split(/\r?\n/).map(e=>e.trim());if(
|
|
49
|
-
//# sourceMappingURL=src-
|
|
48
|
+
`),i=[];for(let e of r)if(e.startsWith(`#EXT-X-DATERANGE:`)){let t=e.match(/ID="([^"]+)"/),n=e.match(/START-DATE="([^"]+)"/),r=e.match(/X-TITLE="([^"]+)"/);t&&n&&r&&(i.some(e=>e.id===t[1])||i.push({id:t[1],startDate:n[1],title:r[1]}))}if(i.length>0){i.sort((e,t)=>e.startDate.localeCompare(t.startDate));let e=new Date(i[0].startDate).getTime(),t=i.map(t=>{let n=(new Date(t.startDate).getTime()-e)/1e3;return{title:t.title,startTime:n,endTime:0}});for(let e=0;e<t.length;e++)e<t.length-1?t[e].endTime=t[e+1].startTime:t[e].endTime=99999;this.keyMoments.setKeyMoments(t),this.emit(`keymomentsloaded`,t),this.emit(`chaptersloaded`,t)}}catch(e){console.error(`Error parsing manifest key moments:`,e)}}async extractAdBreaksFromManifest(e){try{let t=await this.buildManifestUrl(e),n=await fetch(t);if(!n.ok)return;let r=await n.text(),i=e,a=r.split(/\r?\n/).map(e=>e.trim());if(a.some(e=>e.startsWith(`#EXT-X-STREAM-INF`))){let t=this.findFirstVariantUri(a);if(t){let n=this.resolveUrl(e,t),a=await this.buildManifestUrl(n),o=await fetch(a,{headers:this.drm.getRequestHeaders()});o.ok&&(r=await o.text(),i=n)}}this.adBreaks=this.parseAdBreaksFromPlaylist(r,i),this.analytics.setAdBreaks(this.adBreaks),this.adBreaks.length>0&&this.emit(`adbreaksloaded`,this.adBreaks),this.refreshAdBreakState(this.videoElement.currentTime)}catch(e){console.error(`Error parsing manifest ad breaks:`,e)}}async buildManifestUrl(e){let t=this.drm.getAuthToken()||void 0;if(!t)try{let n=new URL(e);t=n.searchParams.get(`token`)||n.searchParams.get(`key`)||n.searchParams.get(`auth`)||n.searchParams.get(`authToken`)||void 0}catch{}let n=this.rewriteToProxy(e);try{let e=new URL(n,window.location.origin);return t&&e.searchParams.set(`token`,t),e.toString()}catch{return n}}findFirstVariantUri(e){for(let t=0;t<e.length;t++)if(e[t].startsWith(`#EXT-X-STREAM-INF`)){let n=e[t+1]?.trim();if(n&&!n.startsWith(`#`))return n}return null}resolveUrl(e,t){try{return new URL(t,e).toString()}catch{return t}}parseAdBreaksFromFragments(e){if(e.length===0)return[];let t=e=>{try{return new URL(e.url).host}catch{return e.url??``}},n=t(e[0]),r=[];for(let i of e){let e=t(i)!==n,a=i.start??0,o=a+(i.duration??0),s=r[r.length-1];s&&s.isAd===e?s.endTime=o:r.push({isAd:e,startTime:a,endTime:o})}return r.filter(e=>e.isAd).map(e=>({startTime:e.startTime,endTime:e.endTime}))}parseAdBreaksFromPlaylist(e,t){let n=e.split(/\r?\n/).map(e=>e.trim()),r=[],i=0,a=null,o=null,s=null,c=!1,l=null,u=!1,d=e=>{let t=e.substring(e.indexOf(`:`)+1),n=t.match(/DURATION=([0-9.]+)/i)?.[1]??t,r=parseFloat(n);return Number.isFinite(r)?r:null},f=e=>{try{return new URL(e,t).host}catch{return e}};for(let e of n)if(e.startsWith(`#EXT-X-CUE-OUT`))c=!0,a=i,o=d(e);else if(e.startsWith(`#EXT-X-CUE-IN`)){if(a!==null){let e=o===null?i:a+o;e>a&&r.push({startTime:a,endTime:e}),a=null,o=null}}else if(e.startsWith(`#EXTINF:`)){let t=parseFloat(e.substring(8).split(`,`)[0]);Number.isFinite(t)&&(s=t)}else if(!e.startsWith(`#`)&&e.length>0){let t=i;if(s!==null&&(i+=s,s=null),!c){let n=f(e);l===null&&(l=n);let i=n!==l;i&&!u?(u=!0,a=t):!i&&u&&(u=!1,a!==null&&r.push({startTime:a,endTime:t}),a=null)}}if(a!==null){let e=c?o===null?i:a+o:i;e>a&&r.push({startTime:a,endTime:e})}return r}isTimeInAdBreak(e){return this.adBreaks.some(t=>e>=t.startTime&&e<t.endTime)}refreshAdBreakState(e){let t=this.videoElement,n=this.isTimeInAdBreak(e);n!==this.isAdBreak&&(this.isAdBreak=n,this.analytics.setAdBreak(n,t),n?(this.contentPlaybackRate=t.playbackRate,t.playbackRate=1):t.playbackRate=this.contentPlaybackRate,this.emit(`adbreakchange`,n))}videoTimeToContentTime(e){let t=e;for(let n of this.adBreaks)e>=n.endTime?t-=n.endTime-n.startTime:e>=n.startTime&&(t-=e-n.startTime);return Math.max(0,t)}getAdBreaks(){return this.adBreaks}setAdBreaks(e){this.adBreaks=e,this.analytics.setAdBreaks(e),this.emit(`adbreaksloaded`,e),this.refreshAdBreakState(this.videoElement.currentTime)}isInAdBreak(){return this.isAdBreak}getAudioTracks(){return this.audioTrackList}setAudioTrack(e){this.hlsInstance&&(this.hlsInstance.audioTrack=e)}armStallWatchdog(){if(this.hasFailed||this.stallTimer)return;let t=this.progressTick;this.stallTimer=setTimeout(()=>{if(this.stallTimer=null,this.hasFailed)return;let e=this.progressTick!==t,n=this.progressTick===0;if(!(!this.isBuffering&&!n)){if(e){this.armStallWatchdog();return}this.fail(Error(n?`Playback failed: stream could not be loaded`:`Playback stalled: no data received`))}},e.STALL_TIMEOUT_MS)}clearStallWatchdog(){this.stallTimer&&=(clearTimeout(this.stallTimer),null)}fail(e){this.hasFailed||(this.hasFailed=!0,this.clearStallWatchdog(),this.emit(`error`,e),this.destroy())}destroy(){this.clearStallWatchdog(),this.hlsSubtitleCues.clear(),this.hlsActiveSubtitleKey=null,this.analytics.stopHeartbeat(),this.drm.removeWatermark(),this.hlsInstance&&=(this.hlsInstance.destroy(),null),this.dashInstance&&=(this.dashInstance.reset(),null),this.videoElement&&(this.videoElement.pause(),this.videoElement.removeAttribute(`src`),this.videoElement.load(),this.videoElement.parentElement&&this.videoElement.parentElement.removeChild(this.videoElement)),this.eventListeners={}}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Au}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Du}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ju}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return wu}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Nu}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ku}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Mu}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Ou}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Pu}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return $}});
|
|
49
|
+
//# sourceMappingURL=src-DKTjFFN1.cjs.map
|