@flowplayer/player 3.28.0 → 3.28.1

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.
Files changed (53) hide show
  1. package/core.js +1 -1
  2. package/default.js +1 -1
  3. package/embed.js +2 -2
  4. package/flowplayer.css +1 -1
  5. package/index.d.ts +3 -1
  6. package/package.json +1 -1
  7. package/plugins/ads.d.ts +3 -1
  8. package/plugins/ads.js +1 -1
  9. package/plugins/airplay.d.ts +3 -1
  10. package/plugins/analytics.d.ts +3 -1
  11. package/plugins/analytics.js +1 -1
  12. package/plugins/asel.d.ts +3 -1
  13. package/plugins/audio.d.ts +3 -1
  14. package/plugins/chapters.d.ts +3 -1
  15. package/plugins/chromecast.d.ts +3 -1
  16. package/plugins/comscore.d.ts +3 -1
  17. package/plugins/consent.d.ts +3 -1
  18. package/plugins/context-menu.d.ts +3 -1
  19. package/plugins/context-menu.js +1 -1
  20. package/plugins/cuepoints.d.ts +3 -1
  21. package/plugins/dash.d.ts +3 -1
  22. package/plugins/drm.d.ts +3 -1
  23. package/plugins/endscreen.d.ts +3 -1
  24. package/plugins/fas.d.ts +3 -1
  25. package/plugins/float-on-scroll.d.ts +3 -1
  26. package/plugins/ga4.d.ts +3 -1
  27. package/plugins/gemius.d.ts +3 -1
  28. package/plugins/google-analytics.d.ts +3 -1
  29. package/plugins/hls.d.ts +3 -1
  30. package/plugins/id3.d.ts +3 -1
  31. package/plugins/iframe.d.ts +3 -1
  32. package/plugins/keyboard.d.ts +3 -1
  33. package/plugins/media-session.d.ts +3 -1
  34. package/plugins/message.d.ts +3 -1
  35. package/plugins/ovp.d.ts +3 -1
  36. package/plugins/ovp.js +1 -1
  37. package/plugins/playlist.d.ts +3 -1
  38. package/plugins/preview.d.ts +3 -1
  39. package/plugins/qsel.d.ts +3 -1
  40. package/plugins/qul.d.ts +3 -1
  41. package/plugins/rts.d.ts +3 -1
  42. package/plugins/rts.js +1 -1
  43. package/plugins/share.d.ts +3 -1
  44. package/plugins/speed.d.ts +3 -1
  45. package/plugins/speed.js +1 -1
  46. package/plugins/ssai.d.ts +3 -1
  47. package/plugins/ssai.js +1 -1
  48. package/plugins/subtitles.d.ts +3 -1
  49. package/plugins/thumbnails.d.ts +3 -1
  50. package/plugins/tizen.d.ts +3 -1
  51. package/plugins/vtsel.d.ts +3 -1
  52. package/plugins/webos.d.ts +3 -1
  53. package/util/loader.d.ts +3 -1
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.analytics=t())}(this,(function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i,o;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{const i=e(o.metadata,{event_type:t},r.data||r),a=function(e,t){return e.replace(n,r=>{const n=r.slice(1,r.length);return n in t?t[n].toString():(console.warn(`\n preparing url[${e}] failed\n\n parameter[${n}] not detected in params:\n\n ${JSON.stringify(t,null,2)}\n `),r)})}(o.url,i),s=Tracker.pluck_valid_keys(o,i),u=Tracker.ensure_required_keys(o,s);if(u.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${u}\n payload:\n ${JSON.stringify(s,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[a,this.verb,s])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var c="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var d=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(c(e).replace(/(.)/g,(function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(t)}catch(e){return c(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(d(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function R(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/100;return{segment_duration:t,breakpoints:Array(...Array(100)).map((function(e,r){return Math.floor(r*t*1e3)/1e3}))}}(e.duration))}function q(e,t,r){if(!t.segment_duration&&!R(e,t))return;const n=function(e,t,r){const n=t.last_idx,i=r?99:A(e,t);return t.last_idx=i,i<=n?[]:t.breakpoints.slice(n,99==i?100:i).map((function(e){return t.breakpoints.indexOf(e)}))}(e,t,r);0!=n.length&&e.emit(y,{position:n})}function A(e,t){return Math.min(Math.floor(e.currentTime/t.segment_duration),99)}function S(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var O;const b="vod",N="live",Q=[k,y,g];function x(e,t,r){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return q(e,t,"boolean"==typeof r&&r)}}function L(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const I=((O=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.hasState("consent-no-tracking"))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1},i={locked:void 0,ttl:6e3,task:()=>{x(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.28.0"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:Q,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",(function(){a&&a.destroy()})),r.on("config",(function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id)return;const o=m(a,"metadata.media_id");if(o&&i.media_id==o)return;const s=m(e,"analytics",{});a.put(i),a.put(s);const u=m(e,"metadata.live_start_time",e.live)?N:b;a.put({video_type:u,source:e.source||S()||""}),n.ticker=e.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},n.ended=!1,r.emit(k)}));let s=0;r.on("playing",(function(){if(!a)return;if(s||function(e,t){return e.metadata.media_id&&e.metadata.media_id==t.last_media_id}(a,n))return;a.put({muted:r.muted});const e=L(r);if(e)return s=Promise.resolve(e).then((function(){n.last_media_id=a.metadata.media_id,r.emit(g),s=0})).catch((function(){s=0}));n.last_media_id=a.metadata.media_id,r.emit(g)})),r.on("timeupdate",(function(){var t;a&&(s||L(r)||n.ended||(!e.live&&r.currentTime+.25>=r.duration&&x(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout((function(){return t.task(),function(e){return e.locked=void 0,e}(t)}),t.ttl))))})),r.on("seeked",(function(){a&&n.ticker&&"vod"==n.ticker.kind&&function(e,t){R(e,t),t.last_idx=A(e,t)}(r,n.ticker)})),r.on("ended",(function(){a&&function(e,t){t.ended||(t.ended=!0,x(e,t.ticker))}(r,n)}))}}).pluginName="analytics",O);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}("undefined"!=typeof window?window:void 0!==v?v:{},I)}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.analytics=t())}(this,(function(){"use strict";const e=(...e)=>e.reduce((e,t)=>Object.assign(Object.assign({},e),t),{}),t=(e,t)=>{const r=e.lastIndexOf(t);return~r&&e.splice(r,1),e};class RequestQueue{static of(){return new RequestQueue}static is_empty(e){return 0==e.pending.length}static is_high_water(e){return e.open.length==RequestQueue.MAX_OPEN_REQUESTS}static maybe_spawn_req(e){if(RequestQueue.is_empty(e))return e;if(RequestQueue.is_high_water(e))return e;try{const t=RequestQueue.lpop(e);t&&RequestQueue.request(e,t)}catch(e){}}static increment_failures(e){return e.stats.failures++,e.stats.failures>RequestQueue.MAX_FAILURE_COUNT&&(e.stats.ttl=Date.now()+RequestQueue.REQUEST_TTL_MS),e}static handle_error(e,t){RequestQueue.rm(e,t),RequestQueue.increment_failures(e)}static request(e,[t,r,n]){if(Date.now()<e.stats.ttl)return;const i=new XMLHttpRequest;e.open.push(i),i.timeout=RequestQueue.REQUEST_TIMEOUT_MS,i.ontimeout=function(){RequestQueue.handle_error(e,i)},i.onerror=function(t){RequestQueue.handle_error(e,i)},i.onreadystatechange=function(){i.readyState==XMLHttpRequest.DONE&&RequestQueue.rm(e,i),Math.floor(i.status/100)},i.onload=function(){RequestQueue.rm(e,i),e.stats.failures&&e.stats.failures--},i.open(r,t),i.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{i.send(JSON.stringify(n))}catch(e){}}static rpush(e,...t){return t.forEach(t=>{e.pending.length>=RequestQueue.MAX_PENDING||(e.pending.push(t),RequestQueue.maybe_spawn_req(e))}),e}static lpop(e){return e.pending.shift()}static rm(e,r){return t(e.open,r),e}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}RequestQueue.MAX_OPEN_REQUESTS=3,RequestQueue.MAX_PENDING=5,RequestQueue.REQUEST_TIMEOUT_MS=4e3,RequestQueue.REQUEST_TTL_MS=5e3,RequestQueue.MAX_FAILURE_COUNT=3;var r=RequestQueue.of();const n=/:([a-zA-Z_]+)/g;class Log{static prepare(e,t){const r=document.createEvent("Event");return r.initEvent(e,!1,!0),r.ns=e,r.data=t,r}static of(e){return new Log(e)}constructor(e){this.emitter=e}info(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.INFO,e))}error(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.ERROR,e))}warn(e){this.emitter.dispatchEvent(Log.prepare(Log.NAMESPACE.WARN,e))}}var i,o;Log.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(e){e.POST="POST",e.PUT="PUT",e.GET="GET"}(i||(i={}));class Tracker{static of(e,t){return new Tracker(e,t)}static ensure_required_keys(e,t){return e.required_keys.filter(e=>!(e in t))}static pluck_valid_keys(t,r){return((t,...r)=>Object.keys(t).filter(e=>~r.indexOf(e)).reduce((r,n)=>e(r,{[n]:t[n]}),{}))(r,...t.valid_keys)}static merge_metadata(t,r={}){return t.metadata=Tracker.pluck_valid_keys(t,e(t.metadata,r)),t}static assert_emitter_api(e){if("function"!=typeof(e||{}).addEventListener)throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if("function"!=typeof(e||{}).removeEventListener)throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(e,t,r){var n;e.listeners.push([t,r]),null===(n=e.emitter)||void 0===n||n.addEventListener(t,r)}constructor(t,i={}){const o=this;if(this.emitter=t,this.url=i.url,this.log=Log.of(this.emitter),this.verb=i.verb,this.metadata=e({},i.metadata||{}),this.rq=i.rq||r,this.events=i.events||[],this.required_keys=i.required_keys||[],this.optional_keys=i.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Tracker.assert_emitter_api(this.emitter),void 0===Tracker.verb[this.verb])throw new Error(`invalid HTTP verb[${this.verb}] passed`);if("string"!=typeof this.url)throw new Error(`invalid API url[${this.url}] passed`);Tracker.TRACKERS.push(this),o.events.forEach(t=>{Tracker.create_listener(this,t,(r={})=>{const i=e(o.metadata,{event_type:t},r.data||r),a=function(e,t){return e.replace(n,r=>{const n=r.slice(1,r.length);return n in t?t[n].toString():(console.warn(`\n preparing url[${e}] failed\n\n parameter[${n}] not detected in params:\n\n ${JSON.stringify(t,null,2)}\n `),r)})}(o.url,i),s=Tracker.pluck_valid_keys(o,i),u=Tracker.ensure_required_keys(o,s);if(u.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${u}\n payload:\n ${JSON.stringify(s,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[a,this.verb,s])})})}destroy(){this.listeners.forEach(([e,t])=>{var r;return null===(r=this.emitter)||void 0===r?void 0:r.removeEventListener(e,t)}),delete this.rq,delete this.emitter,t(Tracker.TRACKERS,this)}put(e={}){return Tracker.merge_metadata(this,e),this}}Tracker.TRACKERS=[],Tracker.QUEUE=r,Tracker.verb=i,function(e){e[e.ADS=2]="ADS",e[e.ANALYTICS=4]="ANALYTICS",e[e.NO_METERING=8]="NO_METERING",e[e.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",e[e.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(o||(o={}));const a=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function s(e,t){return!!~a.indexOf(e)||e.indexOf(t)===e.length-t.length}s.check_whitelist=function(e){return!!~a.indexOf(e)};function u(e){this.message=e}u.prototype=new Error,u.prototype.name="InvalidCharacterError";var c="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(e){var t=String(e).replace(/=+$/,"");if(t.length%4==1)throw new u("'atob' failed: The string to be decoded is not correctly encoded.");for(var r,n,i=0,o=0,a="";n=t.charAt(o++);~n&&(r=i%4?64*r+n:n,i++%4)?a+=String.fromCharCode(255&r>>(-2*i&6)):0)n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n);return a};var d=function(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(c(e).replace(/(.)/g,(function(e,t){var r=t.charCodeAt(0).toString(16).toUpperCase();return r.length<2&&(r="0"+r),"%"+r})))}(t)}catch(e){return c(t)}};function l(e){this.message=e}l.prototype=new Error,l.prototype.name="InvalidTokenError";var f=function(e,t){if("string"!=typeof e)throw new l("Invalid token specified");var r=!0===(t=t||{}).header?0:1;try{return JSON.parse(d(e.split(".")[r]))}catch(e){throw new l("Invalid token specified: "+e.message)}};f.InvalidTokenError=l;const p="production";function _(e,t){const r={valid_jwt:!1,raw:"",data:{acl:0},exp:0};let n={c:"{}",exp:0};t=t||{};try{n=f(e),r.valid_jwt=!0}catch(e){}return r.raw=e,r.data=JSON.parse(n.c),r.exp=n.exp,t.require_valid_token&&_.validate(r),r}function h(e){return{grant:e,is_granted:t=>(e&t)===t}}function m(e,t,r){const n=function(e){return Array.isArray(e)?e.slice(0):e.split(".")}(t);for(;n.length;){if(null==e)return r;const t=n.shift();if("string"!=typeof t)return r;e=e[t]}return null==e?r:e}_.validate=function(e){if("string"==typeof e&&(e=_(e)),!e||!e.raw){if(s.check_whitelist(window.location.hostname)||"dev"===p.toString())return!0;throw new Error("No token provided in configuration")}if(!e.valid_jwt)throw new Error("Invalid token provided");const t=window.location.hostname,r=s.bind(null,t);if("dev"!==p.toString()&&e.data.domain&&e.data.domain.length&&!e.data.domain.some(r))throw new Error("Domain not allowed");if("dev"!==p.toString()&&1e3*e.exp-Date.now()<0)throw new Error("Expired token");return!0},_.id=function(e){if(e)return"string"==typeof e&&(e=_(e)),e.data.id},h.of=h,h.from_token=function(e){const t=_(e,{require_valid_token:!0});return h.of(t.data.acl)},h.permissions=o;var v="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};var y="ping",k="display",g="view";const w=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],E=["created","position"],T=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function R(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/100;return{segment_duration:t,breakpoints:Array(...Array(100)).map((function(e,r){return Math.floor(r*t*1e3)/1e3}))}}(e.duration))}function q(e,t,r){if(!t.segment_duration&&!R(e,t))return;const n=function(e,t,r){const n=t.last_idx,i=r?99:A(e,t);return t.last_idx=i,i<=n?[]:t.breakpoints.slice(n,99==i?100:i).map((function(e){return t.breakpoints.indexOf(e)}))}(e,t,r);0!=n.length&&e.emit(y,{position:n})}function A(e,t){return Math.min(Math.floor(e.currentTime/t.segment_duration),99)}function S(){try{const e=window.location!==window.parent.location?document.referrer:document.location.href;return"string"==typeof e&&e.slice(0,200)}catch(e){return!1}}var O;const b="vod",N="live",Q=[k,y,g];function x(e,t,r){switch(null==t?void 0:t.kind){case"live":return function(e,t){const r=Date.now();r-t.last_tracked_ts<6e4||(t.last_tracked_ts=r,++t.ticks,e.emit(y,{position:60*t.ticks}))}(e,t);case"vod":return q(e,t,"boolean"==typeof r&&r)}}function L(e){const t=e.ads;return void 0!==t&&(void 0!==t.schedule&&("function"==typeof t.hasPreroll&&(t.currentRequests?t.currentRequests:!!t.adPlaying||!(!t.hasPreroll()||0!=t.nextIndex))))}const I=((O=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.hasState("consent-no-tracking"))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1},i={locked:void 0,ttl:6e3,task:()=>{x(r,n.ticker)}};const o={session_id:r.deviceId(),autoplay:r.autoplay,muted:r.muted,player_id:e.player_id,customer_user_id:e.customer_user_id,player_version:"3.28.1"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:Q,required_keys:w,optional_keys:T.concat(E).slice(0),metadata:o});r.on("reap",(function(){a&&a.destroy()})),r.on("config",(function(t){if(!a)return;const i=m(t,"data.metadata",{});if(!i.media_id)return;const o=m(a,"metadata.media_id");if(o&&i.media_id==o)return;const s=m(e,"analytics",{});a.put(i),a.put(s);const u=m(e,"metadata.live_start_time",e.live)?N:b;a.put({video_type:u,source:e.source||S()||""}),n.ticker=e.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},n.ended=!1,r.emit(k)}));let s=0;r.on("playing",(function(){if(!a)return;if(s||function(e,t){return e.metadata.media_id&&e.metadata.media_id==t.last_media_id}(a,n))return;a.put({muted:r.muted});const e=L(r);if(e)return s=Promise.resolve(e).then((function(){n.last_media_id=a.metadata.media_id,r.emit(g),s=0})).catch((function(){s=0}));n.last_media_id=a.metadata.media_id,r.emit(g)})),r.on("timeupdate",(function(){var t;a&&(s||L(r)||n.ended||(!e.live&&r.currentTime+.25>=r.duration&&x(r,n.ticker,!0),(t=i).locked||(t.locked=setTimeout((function(){return t.task(),function(e){return e.locked=void 0,e}(t)}),t.ttl))))})),r.on("seeked",(function(){a&&n.ticker&&"vod"==n.ticker.kind&&function(e,t){R(e,t),t.last_idx=A(e,t)}(r,n.ticker)})),r.on("ended",(function(){a&&function(e,t){t.ended||(t.ended=!0,x(e,t.ticker))}(r,n)}))}}).pluginName="analytics",O);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const r=e.flowplayer;return"function"==typeof r?(r(t),t):(Array.isArray(r.extensions)||(r.extensions=[]),~r.extensions.indexOf(t)||r.extensions.push(t),t)}("undefined"!=typeof window?window:void 0!==v?v:{},I)}));
package/plugins/asel.d.ts CHANGED
@@ -1518,7 +1518,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1518
1518
  */
1519
1519
  declare type PlayerWith<T> = T & Player;
1520
1520
 
1521
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1521
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1522
+ /* Excluded from this release type: on */
1523
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1522
1524
  opts: PluginConfig;
1523
1525
  setOpts: (config: PluginConfig) => void;
1524
1526
  };
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
@@ -1403,7 +1403,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1403
1403
  */
1404
1404
  declare type PlayerWith<T> = T & Player;
1405
1405
 
1406
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1406
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1407
+ /* Excluded from this release type: on */
1408
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1407
1409
  opts: PluginConfig;
1408
1410
  setOpts: (config: PluginConfig) => void;
1409
1411
  };
@@ -1466,7 +1466,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1466
1466
  */
1467
1467
  declare type PlayerWith<T> = T & Player;
1468
1468
 
1469
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1469
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1470
+ /* Excluded from this release type: on */
1471
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1470
1472
  opts: PluginConfig;
1471
1473
  setOpts: (config: PluginConfig) => void;
1472
1474
  };
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
@@ -1427,7 +1427,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1427
1427
  */
1428
1428
  declare type PlayerWith<T> = T & Player;
1429
1429
 
1430
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1430
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1431
+ /* Excluded from this release type: on */
1432
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1431
1433
  opts: PluginConfig;
1432
1434
  setOpts: (config: PluginConfig) => void;
1433
1435
  };
@@ -1415,7 +1415,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1415
1415
  */
1416
1416
  declare type PlayerWith<T> = T & Player;
1417
1417
 
1418
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1418
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1419
+ /* Excluded from this release type: on */
1420
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1419
1421
  opts: PluginConfig;
1420
1422
  setOpts: (config: PluginConfig) => void;
1421
1423
  };
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.context_menu=t())}(this,(function(){"use strict";const e=document.createElement;function t(t,n){const o=n.href?function(t){const n=e("a");return n.href=t,n}(n.href):e("span"),c=n.onclick;return n.class&&(o.className=n.class),n.text&&(o.innerText=n.text),c&&o.addEventListener("click",(function(e){c(e,t)})),o}var n;const o=[{text:"Flowplayer © "+(new Date).getFullYear()},{href:"https://flowplayer.com",text:"About this player"},{href:"https://flowplayer.com/license/",text:"GPL based license"}];let c=!1;const s=e=>{e.classList.remove("fp-active"),c=!1};document.addEventListener("click",e=>{2!=e.button&&0!=c&&s(c)}),document.addEventListener("keyup",(function(){c&&s(c)}));const i=((n=class ContextMenu{init(e,n,s){const i=e.context_menu||o,l=document.createElement("div");l.className="fp-context-menu fp-menu",l.append(...i.map(e=>t(s,e)));const r=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(s,"flowplayer-ui");r&&r.addEventListener("contextmenu",(function(e){if(!l.parentNode)return;e.preventDefault(),s.emit("contextmenu");const t=l.getBoundingClientRect();l.style.left=e.clientX-window.scrollX-t.left+2+"px",l.style.right=e.clientY+window.scrollY-t.top-5+"px",l.classList.contains("fp-active")||(l.classList.contains("fp-active"),c=l)}))}}).pluginName="context-menu",n);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,i)}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.context_menu=t())}(this,(function(){"use strict";const e=document.createElement;function t(t,n){const o=n.href?function(t){const n=e("a");return n.href=t,n}(n.href):e("span"),c=n.onclick;return n.class&&(o.className=n.class),n.text&&(o.innerText=n.text),c&&o.addEventListener("click",(function(e){c(e,t)})),o}var n;const o=[{text:"Flowplayer © "+(new Date).getFullYear()},{href:"https://flowplayer.com",text:"About this player"},{href:"https://flowplayer.com/license/",text:"GPL based license"}];let c=!1;const s=e=>{e.classList.remove(".fp-active"),c=!1};document.addEventListener("click",e=>{2!=e.button&&0!=c&&s(c)}),document.addEventListener("keyup",(function(){c&&s(c)}));const i=((n=class ContextMenu{init(e,n,s){const i=e.context_menu||o,l=document.createElement("div");l.className=".fp-context-menu .fp-menu",l.append(...i.map(e=>t(s,e)));const r=function(e,t){const n=e._customElements.get(t);return n&&e.root.querySelector(n)||void 0}(s,"flowplayer-ui");r&&r.addEventListener("contextmenu",(function(e){if(!l.parentNode)return;e.preventDefault(),s.emit("contextmenu");const t=l.getBoundingClientRect();l.style.left=e.clientX-window.scrollX-t.left+2+"px",l.style.right=e.clientY+window.scrollY-t.top-5+"px",l.classList.contains(".fp-active")||(l.classList.contains(".fp-active"),c=l)}))}}).pluginName="context-menu",n);return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const n=e.flowplayer;return"function"==typeof n?(n(t),t):(Array.isArray(n.extensions)||(n.extensions=[]),~n.extensions.indexOf(t)||n.extensions.push(t),t)}(window,i)}));
@@ -1525,7 +1525,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1525
1525
  */
1526
1526
  declare type PlayerWith<T> = T & Player;
1527
1527
 
1528
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1528
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1529
+ /* Excluded from this release type: on */
1530
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1529
1531
  opts: PluginConfig;
1530
1532
  setOpts: (config: PluginConfig) => void;
1531
1533
  };
package/plugins/dash.d.ts CHANGED
@@ -1462,7 +1462,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1462
1462
  */
1463
1463
  declare type PlayerWith<T> = T & Player;
1464
1464
 
1465
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1465
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1466
+ /* Excluded from this release type: on */
1467
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1466
1468
  opts: PluginConfig;
1467
1469
  setOpts: (config: PluginConfig) => void;
1468
1470
  };
package/plugins/drm.d.ts CHANGED
@@ -1510,7 +1510,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1510
1510
  */
1511
1511
  declare type PlayerWith<T> = T & Player;
1512
1512
 
1513
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1513
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1514
+ /* Excluded from this release type: on */
1515
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1514
1516
  opts: PluginConfig;
1515
1517
  setOpts: (config: PluginConfig) => void;
1516
1518
  };
@@ -1408,7 +1408,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1408
1408
  */
1409
1409
  declare type PlayerWith<T> = T & Player;
1410
1410
 
1411
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1411
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1412
+ /* Excluded from this release type: on */
1413
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1412
1414
  opts: PluginConfig;
1413
1415
  setOpts: (config: PluginConfig) => void;
1414
1416
  };
package/plugins/fas.d.ts CHANGED
@@ -1455,7 +1455,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1455
1455
  */
1456
1456
  declare type PlayerWith<T> = T & Player;
1457
1457
 
1458
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1458
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1459
+ /* Excluded from this release type: on */
1460
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1459
1461
  opts: PluginConfig;
1460
1462
  setOpts: (config: PluginConfig) => void;
1461
1463
  };
@@ -1479,7 +1479,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1479
1479
  */
1480
1480
  declare type PlayerWith<T> = T & Player;
1481
1481
 
1482
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1482
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1483
+ /* Excluded from this release type: on */
1484
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1483
1485
  opts: PluginConfig;
1484
1486
  setOpts: (config: PluginConfig) => void;
1485
1487
  };
package/plugins/ga4.d.ts CHANGED
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
@@ -1426,7 +1426,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1426
1426
  */
1427
1427
  declare type PlayerWith<T> = T & Player;
1428
1428
 
1429
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1429
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1430
+ /* Excluded from this release type: on */
1431
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1430
1432
  opts: PluginConfig;
1431
1433
  setOpts: (config: PluginConfig) => void;
1432
1434
  };
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
package/plugins/hls.d.ts CHANGED
@@ -1456,7 +1456,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1456
1456
  */
1457
1457
  declare type PlayerWith<T> = T & Player;
1458
1458
 
1459
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1459
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1460
+ /* Excluded from this release type: on */
1461
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1460
1462
  opts: PluginConfig;
1461
1463
  setOpts: (config: PluginConfig) => void;
1462
1464
  };
package/plugins/id3.d.ts CHANGED
@@ -1467,7 +1467,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1467
1467
  */
1468
1468
  declare type PlayerWith<T> = T & Player;
1469
1469
 
1470
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1470
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1471
+ /* Excluded from this release type: on */
1472
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1471
1473
  opts: PluginConfig;
1472
1474
  setOpts: (config: PluginConfig) => void;
1473
1475
  };
@@ -1402,7 +1402,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1402
1402
  */
1403
1403
  declare type PlayerWith<T> = T & Player;
1404
1404
 
1405
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1406
+ /* Excluded from this release type: on */
1407
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1406
1408
  opts: PluginConfig;
1407
1409
  setOpts: (config: PluginConfig) => void;
1408
1410
  };
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
@@ -1401,7 +1401,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1401
1401
  */
1402
1402
  declare type PlayerWith<T> = T & Player;
1403
1403
 
1404
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1404
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1405
+ /* Excluded from this release type: on */
1406
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
1407
  opts: PluginConfig;
1406
1408
  setOpts: (config: PluginConfig) => void;
1407
1409
  };
@@ -1455,7 +1455,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1455
1455
  */
1456
1456
  declare type PlayerWith<T> = T & Player;
1457
1457
 
1458
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1458
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1459
+ /* Excluded from this release type: on */
1460
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1459
1461
  opts: PluginConfig;
1460
1462
  setOpts: (config: PluginConfig) => void;
1461
1463
  };
package/plugins/ovp.d.ts CHANGED
@@ -1435,7 +1435,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1435
1435
  */
1436
1436
  declare type PlayerWith<T> = T & Player;
1437
1437
 
1438
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1438
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1439
+ /* Excluded from this release type: on */
1440
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1439
1441
  opts: PluginConfig;
1440
1442
  setOpts: (config: PluginConfig) => void;
1441
1443
  };
package/plugins/ovp.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.ovp=t())}(this,(function(){"use strict";function e(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o}const t=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=(...e)=>e.reduce((e,n)=>t(n)?(Object.keys(n).forEach(r=>{if(t(e[r])&&t(n[r]))return e[r]=o(e[r],n[r]);e[r]=n[r]}),e):e,{});class Pipe{static of(e){return new Pipe(e)}static maybe(e,t,...o){return null==e?e:t.apply(e,[e,...o])}constructor(e){this.data=e}tap(e,...t){return e.apply(this,[this.data,...t]),new Pipe(this.data)}fmap(e,...t){const o=e.apply(this,[this.data,...t]);return new Pipe(o)}unwrap(){return this.data}}const n="https://ljsp.lwcdn.com".concat("/web/public/countdown/time.json"),r=window,a=r._flowplayerTimekeeper||(r._flowplayerTimekeeper={});function i(e){return fetch(e).then(e=>e.json())}function s(...e){let t=[].join.call(e,"/");return"/"!==t[0]&&(t="/"+t),c()+"/web/public/native/config"+t}const c=()=>"https://ljsp.lwcdn.com";function l(e){(async function(){const e=a.cachedServerOffset;if(e)return e;const t=a.pendingRequest||(a.pendingRequest=fetch(n)),o=await t,r=parseInt(o.headers.get("age")||"0"),i=await o.json(),s=Date.now()-i.millisUtc-1e3*r;return a.cachedServerOffset=s,a.cachedServerOffset})().then(t=>Object.assign(e,{server_time_offset:t}))}function d(e,t){var n,r;t="object"==typeof t?t:{};const a={title:null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.title,description:null===(r=null==e?void 0:e.metadata)||void 0===r?void 0:r.description},i={ima:{parameters:function({media_id:e,duration:t,title:o,tags:n,category_name:r,ad_keywords:a}){return{ad_keywords:a||"",media_id:e||"",category:r||"",media_name:o||"",media_tags:n||"",media_duration:t||-1}}((null==e?void 0:e.metadata)||{})}},s=t.embed||{};return delete s.src,o(i,a,e,(delete(c=t).src,delete c.metadata,delete c.title,delete c.description,delete c.duration,delete c.poster,c),s);var c}const p=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,u=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,m=/^[A-Za-z0-9]{8}$/,f=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function y(e){return"object"==typeof e&&"ovp/base64"==e.type}function v(e,t){return function(e,t){return!(!p.test(e)&&!u.test(e))&&(t.type="video/ovp",!0)}(e,t)||function(e,t){return!(!m.test(e)&&!f.test(e))&&(t&&(t.type="video/ovp"),!0)}(e,t)||y(t)}function w(e){try{return function(e){return null===e?{}:JSON.parse(e)}(decodeURIComponent(atob(e).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join("")))}catch(e){return{err:e.message}}}function h(e){const t=e.split(/[^0-9]/).map(e=>parseInt(e,10));return Date.UTC(t[0],t[1]-1,t[2],t[3],t[4],t[5])}function k(e){return e.live}var b=Object.freeze({__proto__:null,OVP_ERROR:"ovp:error",OVP_MEDIA_REQUEST_START:"ovp:request:start",OVP_MEDIA_REQUEST_COMPLETE:"ovp:request:media:complete",OVP_PLAYLIST_REQUEST_COMPLETE:"ovp:request:playlist:complete",LIVE_COUNTDOWN_TICK:"ovp:live:countdown:tick",LIVE_COUNTDOWN_START:"ovp:live:countdown:start",LIVE_COUNTDOWN_COMPLETE:"ovp:live:countdown:complete",OVP_MEDIA_CHANGED:"ovp:media:changed",OVP_REALTIME_MESSAGE:"ovp:message:realtime",OVP_CONFIG_FINALIZED:"ovp:config:finalized"});const P={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},g=Object.fromEntries(Object.entries(P).map(([e,t])=>[t,e]));const E=[1e7]+""+-1e3+-4e3+-8e3+-1e11,C="off";class FlowplayerError extends Error{static getErrorKey(e){return e in g?g[e]:g["00-00"]}constructor(e,t,o={}){super(e),this.message=e,this.flowplayerErrorCode=t,this.config=o,this.id="undefined"==typeof crypto?"":E.replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)),this.isFatal=!!o.isFatal,this.errorKey=FlowplayerError.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function A(e,t){const o=null==t?void 0:t.src;if(y(t))return function(e,t){const o=w(t.src||"");if(function(e){return"string"==typeof e.err}(o))return console.error(o.err);N(e,o)}(e,t);if(!o)return;e.setState("is-source-processing",!0);const n=s(function(e){return~e.indexOf("/")?e:"/media/"+e}(o));fetch(n).then(async t=>t.ok?N(e,await t.json()):function(e,t,o,n){e.setState("is-source-processing",!1);const r=new FlowplayerError(n.message||"error loading ovp source",function(e){const t="03-"+e;return t in g?t:P.NetworkUnknown}(o),{resource:t,isFatal:!0,retryOpts:{retry:C}});e.emit("flowplayer:error",{error:r})}(e,t.url,t.status,await t.json()))}function N(e,t){return e.emit("ovp:media:changed",t),function(e){return Array.isArray(e.playlist)}(t)?function(e,t){e.emit("ovp:request:playlist:complete",function(e,t){"number"!=typeof t.delay&&"number"!=typeof e.delay&&(t.delay=5);const n=Object.assign({},e),r=(null==e?void 0:e.playlist)||{},a=o(t,r),i=((null==a?void 0:a.playlist)||[]).map(e=>{t.ima&&Object.assign(e,{ima:t.ima});const o=d(e,n);return delete o.playlist,o});return delete a.ima,Object.assign(a,{playlist:i})}(e.opts,t))}(e,t):k(t)?function(e,t){var o,n;const r=(null===(o=null==t?void 0:t.metadata)||void 0===o?void 0:o.live_start_time)||(null===(n=null==t?void 0:t.metadata)||void 0===n?void 0:n.starttime);r&&(t.live_start_time=Pipe.of(r).fmap(h).unwrap());e.emit("ovp:live:countdown:start",Pipe.of(t).fmap(d,e.opts).unwrap())}(e,t):function(e,t){e.emit("ovp:request:media:complete",Pipe.of(t).fmap(d,e.opts).unwrap())}(e,t)}const _={};function M(e,t,o){"object"!=typeof _[t]&&(_[t]=o);const n=e.opts,r=(null==n?void 0:n.metadata)||{};r.player_id=t,n.metadata=r,o.title&&delete o.title,o.description&&delete o.description;const a=Object.assign(n,o);e.setOpts(a),o.autoplay&&e.togglePlay(!0)}let S=!1;function O(e,t,o){D()||Pipe.of("recommendation").fmap(s,t,o).fmap(i).fmap(t=>t.then(t=>function(e,t){const o=t.playlist;if(e.opts.recommendations=o,!o.length)return;e.emit("recommendationsready",{playlist:o.map((function(e){var t,o;return{poster:e.poster,src:e.src,title:null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.title,description:null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.description,metadata:e.metadata||{},chapters:e.chapters,thumbnails:e.thumbnails,subtitles:e.subtitles}}))})}(e,t)).catch(L))}function D(){return S}function L(e){S=!0,console.error("Failed to load recommendations: %j",e)}function T(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function F(e,t){const o=e._customElements.get(t);return o&&e.root.querySelector(o)||void 0}const R="flowplayer-live-countdown";function I(e){const t=Date.now()-(e.server_time_offset||0);return Math.floor(((e.live_start_time||0)-t)/1e3)}function H(e,t){let o=0;function n(){const n=I(t);if(n<0||isNaN(n)||0===e.reaper||void 0===t.live_start_time)return clearInterval(o),function(e,t,o){e.emit("ovp:live:countdown:complete");const n=F(e,R);if(n&&n.remove(),e.root.classList.remove("is-livecountdown"),o)return e.setState("is-source-processing",!1);e.emit("ovp:request:media:complete",t)}(e,t,void 0===t.live_start_time);var r,a,i;r=e,a=e.root,i=n,a.classList.add("is-livecountdown"),r.emit("ovp:live:countdown:tick",{remaining_time:U(i+1)}),r.hasState("is-starting")||r.setState("is-starting",!0)}l(t),n(),o=setInterval(n,250)}function U(e){const t=function(e){"number"!=typeof e&&(e=parseInt(e,10)),e=Math.round(e);const t=Math.floor(e/86400);e-=86400*t;const o=Math.floor(e/3600);e-=3600*o;const n=Math.floor(e/60);return{days:t,hours:o,minutes:n,seconds:e-=60*n}}(e);let o="";return t.days&&(o+=t.days+":"),o+T(t.hours)+":"+T(t.minutes)+":"+T(t.seconds)}class WebsocketBridge{static of(e){return new WebsocketBridge(e)}constructor(e){this.manualDisconnect=!1,this.video=e,this.onClose=this.onClose.bind(this),this.onMessage=this.onMessage.bind(this)}connect(e){this.client=new WebSocket("wss://player.ws.flowplayer.com?mediaId="+e),this.current_media_id=e,this.wireup()}onClose(){this.manualDisconnect?this.manualDisconnect=!1:this.current_media_id&&this.reconnect(this.current_media_id)}onMessage(e){JSON.parse(e.data).forEach(e=>{this.video.emit("ovp:message:realtime",e)})}reconnect(e){this.cleanup(),this.connect(e)}wireup(){this.client&&(this.client.addEventListener("message",this.onMessage),this.client.addEventListener("close",this.onClose))}cleanup(){this.client&&(this.client.removeEventListener("message",this.onMessage),this.client.removeEventListener("close",this.onClose),this.client=void 0)}disconnect(){this.client&&(this.manualDisconnect=!0,this.client.close())}}const j=(e,t)=>new(((e,t)=>{const o=e.get(t);if(!o)throw new Error(`no flowplayer component with the name ${t} exists`);const n=window.customElements.get(t);if(!n)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(o);return"function"!=typeof r?n:r})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerLiveCountdown extends FlowplayerComponent{constructor(e){super(e),this.classList.add("fp-livecountdown");const t=function(...e){const t=document.createElement("div");return 0==e.length||t.classList.add(...e),t}("fp-inner");this.append(t);const o=document.createElement("p");o.innerText=e.i18n("ovp.starting_in"),t.append(o);const n=document.createElement("p");n.classList.add("fp-countdown"),t.append(n),e.on("ovp:live:countdown:tick",t=>{const o=t.detail.remaining_time;e.root.classList.add("is-livecountdown"),n.innerText=o})}}const x=["*.lwcdn.com","*.flowplayer.com","*.wowza.com"];function V(){try{return window.location.hostname!==window.parent.location.hostname?function(e){const t=document.createElement("a");return t.href=e,t}(document.referrer).hostname:document.location.hostname}catch(e){return window.location.hostname}}function q(e){const t=document.createElement("a");t.href=e;const o=t.pathname&&t.pathname.split(".");return o.length>1&&o[o.length-1]}function K(e){switch(e){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return e}}const B=t=>{var{src:o}=t,n=e(t,["src"]);return[Object.assign({src:o,type:o?K("video/"+q(o)):""},n)]};function z(e){return B({src:e})}function W(t){var{src:o,type:n}=t,r=e(t,["src","type"]);return o&&n?[Object.assign({src:o,type:n},r)]:n&&!o?[Object.assign({type:n},r)]:B(Object.assign({src:o},r))}var G,$;!function(e){e[e.Err=0]="Err",e[e.Ok=1]="Ok"}(G||(G={}));const Q=(($=class OVP{constructor(e){((e,t,o)=>{window.customElements.get(t)||window.customElements.define(t,o),e.customElements.get(t)||e.customElements.set(t,t)})(e,R,FlowplayerLiveCountdown)}onload(e,t,o,n){if("string"==typeof(null==n?void 0:n.src))return"string"!=typeof e.player_id||0===n.src.indexOf(e.player_id)||y(n)||(n.src=[e.player_id,n.src].join("/")),A(o,n)}wants(e,t,o){return v(e,t)}init(t,n,r){const a=new WebsocketBridge(r);let c=Object.assign({},t);const l=function(e){if(!c)return e;t.autoplay!==c.autoplay&&(c.autoplay=t.autoplay),delete c.src;const n=o(e,c);return r.emit("ovp:config:finalized",n),n};r.on("src",()=>{(r.currentSrc||r.root.classList.contains("is-livecountdown"))&&(c=!1)}),r.on("ovp:request:start",(function(){r.setState("is-waiting",!0),t.recommendations&&(t.recommendations=!1)})),r.on("ovp:media:changed",(function({data:e}){var t;const o=null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.media_id;(null==e?void 0:e.live)&&o&&(a.disconnect(),a.connect(o))})),r.on("ovp:message:realtime",(function({data:e}){var o;const n=null==e?void 0:e.event,a=null==e?void 0:e.value,i=r.opt("metadata",{live_start_time:""});switch(n){case"METADATA":{const e=Object.assign(i,a),n=Object.assign(t,{metadata:e});n.live&&(null===(o=null==n?void 0:n.metadata)||void 0===o?void 0:o.live_start_time)&&(n.live_start_time=h(n.metadata.live_start_time)),r.setOpts(n);break}}})),r.on("beforeplay",(function(e){const o=t;if(k(o)){if(J(o))return;e.preventDefault()}})),r.on("ovp:request:media:complete",(function(e){const t=e.data;if(!t)return;var o;if(t.src&&(t.src=(o=t.src,"string"==typeof o?z(o):Array.isArray(o)||"object"!=typeof o?o.reduce((function(e,t){return"string"==typeof t&&(t=z(t)),"object"!=typeof t||Array.isArray(t)||(t=W(t)),e.concat(t)}),[]):W(o)).map(e=>(e.src&&e.src.startsWith("//")&&(e.src="https:"+e.src),e))),0==r.reaper||"object"!=typeof t||I(t)>0)return;const n=l(t);r.setOpts(n),r.setAttrs(n),n.src&&r.setSrc(n.src),r.setState("is-source-processing",!1)})),r.on("config",(function({data:e}){var o,a;if("string"==typeof t.src&&v(t.src,{}))return;if((null==e?void 0:e.domains)&&(null==e?void 0:e.domains.length)&&!((e,t)=>{const o=e.split(".").reverse();return t.concat(x).some(e=>{const t=e.split(".").reverse(),n="*"===t[t.length-1];return n&&t.pop(),(n||t.length===o.length)&&t.every((e,t)=>o[t]===e)})})(V(),e.domains))return function({root:e,video:t,data:o}){t&&t.destroy(),console.error(new Error(o.details||o.reason)),e.innerHTML="",e.classList.remove("flowplayer"),e.classList.add("flowplayer-fatal"),e.style.removeProperty("background-image");const n=document.createElement("h2");n.textContent="Playback Error";const r=document.createElement("p");r.textContent="Are you the site owner?";const a=document.createElement("a");a.classList.add("troubleshoot"),a.target="_blank",a.href="https://docs.flowplayer.com/troubleshooting/player#"+o.reason,a.textContent="Troubleshoot?";const i=document.createElement("img");i.src="https://flowplayer.com/user/pages/images/logo-white.png",e.append(n,r,a,i)}({root:n,video:r,data:{details:`Hostname ${V()} is not allowed to load player ${null===(o=e.metadata)||void 0===o?void 0:o.player_id}.`,reason:"domain"}});if(t.src&&Z(t.src))return;const c=null==e?void 0:e.brand_color;return c&&r.root.style.setProperty("--fp-brand-color","#"==c[0]?c:"#"+c),"string"==typeof t.player_id&&(null===(a=null==t?void 0:t.metadata)||void 0===a?void 0:a.player_id)!==t.player_id?function(e,t){if("object"==typeof _[t])return console.debug("using Cache(%s)",t),M(e,t,_[t]);Pipe.of(t).fmap(s).fmap(i).fmap(o=>o.then(o=>M(e,t,o)).catch(console.error))}(r,t.player_id):void 0})),r.on("ovp:request:playlist:complete",(function(t){var o;const n=t.data;if(!n||0==r.reaper)return;const{playlist:a}=n,i=e(n,["playlist"]),s=l(Object.assign(i,{playlist:Object.assign({},i)}));Array.isArray(s.playlist)&&(s.playlist=i),delete s.loop,s.playlist.playlist_title||(s.playlist.playlist_title=null===(o=i.metadata)||void 0===o?void 0:o.playlist_title),r.setOpts(s),r.setAttrs(s);const c={type:"flowplayer/playlist",items:a};r.setSrc(c),r.setState("is-source-processing",!1)})),r.on("ovp:live:countdown:start",(function(e){const o=e.data;if(!o||0==r.reaper)return;const a=l(o);if(r.setOpts(a),r.setAttrs(a),I(o)<=0)return r.emit("ovp:request:media:complete",o);F(r,R)||(n.appendChild(j(r,R)),H(r,t))})),r.on("timeupdate",(function(){var e,o,n;const a=t;k(a)?J(a)||(r.togglePlay(!1),r.emit("ended")):t.recommendations&&(null===(e=null==t?void 0:t.metadata)||void 0===e?void 0:e.media_id)&&(Array.isArray(t.recommendations)||r.currentTime/r.duration<.8||D()||(null===(o=null==t?void 0:t.metadata)||void 0===o?void 0:o.media_id)&&(null===(n=null==t?void 0:t.metadata)||void 0===n?void 0:n.player_id)&&O(r,t.metadata.media_id,t.metadata.player_id))})),r.on("reap",(function(){a.disconnect()}))}}).pluginName="ovp",$.events=b,$);function J(e){var t,o;const n=null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.live_stop_time;if(!n)return!0;return!!(null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.allow_after_stop_time)||h(n)>Date.now()}const Z=e=>{var t;if(e&&Array.isArray(e))return"object"==typeof e[0]&&"ovp/base64"===(null===(t=e[0])||void 0===t?void 0:t.type)};return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const o=e.flowplayer;return"function"==typeof o?(o(t),t):(Array.isArray(o.extensions)||(o.extensions=[]),~o.extensions.indexOf(t)||o.extensions.push(t),t)}(window,Q)}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):((e="undefined"!=typeof globalThis?globalThis:e||self).flowplayer=e.flowplayer||{},e.flowplayer.ovp=t())}(this,(function(){"use strict";function e(e,t){var o={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(o[n[r]]=e[n[r]])}return o}const t=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),o=(...e)=>e.reduce((e,n)=>t(n)?(Object.keys(n).forEach(r=>{if(t(e[r])&&t(n[r]))return e[r]=o(e[r],n[r]);e[r]=n[r]}),e):e,{});class Pipe{static of(e){return new Pipe(e)}static maybe(e,t,...o){return null==e?e:t.apply(e,[e,...o])}constructor(e){this.data=e}tap(e,...t){return e.apply(this,[this.data,...t]),new Pipe(this.data)}fmap(e,...t){const o=e.apply(this,[this.data,...t]);return new Pipe(o)}unwrap(){return this.data}}const n=window,r=n._flowplayerTimekeeper||(n._flowplayerTimekeeper={});function a(e){return fetch(e).then(e=>e.json())}function i(...e){let t=[].join.call(e,"/");return"/"!==t[0]&&(t="/"+t),s()+"/web/public/native/config"+t}const s=()=>"https://ljsp.lwcdn.com";function c(e){(async function(){const e=r.cachedServerOffset;if(e)return e;const t=r.pendingRequest||(r.pendingRequest=fetch("https://ljsp.lwcdn.com/web/public/countdown/time.json")),o=await t,n=parseInt(o.headers.get("age")||"0"),a=await o.json(),i=Date.now()-a.millisUtc-1e3*n;return r.cachedServerOffset=i,r.cachedServerOffset})().then(t=>Object.assign(e,{server_time_offset:t}))}function l(e,t){var n,r;t="object"==typeof t?t:{};const a={title:null===(n=null==e?void 0:e.metadata)||void 0===n?void 0:n.title,description:null===(r=null==e?void 0:e.metadata)||void 0===r?void 0:r.description},i={ima:{parameters:function({media_id:e,duration:t,title:o,tags:n,category_name:r,ad_keywords:a}){return{ad_keywords:a||"",media_id:e||"",category:r||"",media_name:o||"",media_tags:n||"",media_duration:t||-1}}((null==e?void 0:e.metadata)||{})}},s=t.embed||{};return delete s.src,o(i,a,e,(delete(c=t).src,delete c.metadata,delete c.title,delete c.description,delete c.duration,delete c.poster,c),s);var c}const d=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,p=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,u=/^[A-Za-z0-9]{8}$/,m=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function f(e){return"object"==typeof e&&"ovp/base64"==e.type}function y(e,t){return function(e,t){return!(!d.test(e)&&!p.test(e))&&(t.type="video/ovp",!0)}(e,t)||function(e,t){return!(!u.test(e)&&!m.test(e))&&(t&&(t.type="video/ovp"),!0)}(e,t)||f(t)}function v(e){try{return function(e){return null===e?{}:JSON.parse(e)}(decodeURIComponent(atob(e).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join("")))}catch(e){return{err:e.message}}}function w(e){const t=e.split(/[^0-9]/).map(e=>parseInt(e,10));return Date.UTC(t[0],t[1]-1,t[2],t[3],t[4],t[5])}function h(e){return e.live}var k=Object.freeze({__proto__:null,OVP_ERROR:"ovp:error",OVP_MEDIA_REQUEST_START:"ovp:request:start",OVP_MEDIA_REQUEST_COMPLETE:"ovp:request:media:complete",OVP_PLAYLIST_REQUEST_COMPLETE:"ovp:request:playlist:complete",LIVE_COUNTDOWN_TICK:"ovp:live:countdown:tick",LIVE_COUNTDOWN_START:"ovp:live:countdown:start",LIVE_COUNTDOWN_COMPLETE:"ovp:live:countdown:complete",OVP_MEDIA_CHANGED:"ovp:media:changed",OVP_REALTIME_MESSAGE:"ovp:message:realtime",OVP_CONFIG_FINALIZED:"ovp:config:finalized"});const b={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},P=Object.fromEntries(Object.entries(b).map(([e,t])=>[t,e]));const g=[1e7]+""+-1e3+-4e3+-8e3+-1e11,E="off";class FlowplayerError extends Error{static getErrorKey(e){return e in P?P[e]:P["00-00"]}constructor(e,t,o={}){super(e),this.message=e,this.flowplayerErrorCode=t,this.config=o,this.id="undefined"==typeof crypto?"":g.replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)),this.isFatal=!!o.isFatal,this.errorKey=FlowplayerError.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function C(e,t){const o=null==t?void 0:t.src;if(f(t))return function(e,t){const o=v(t.src||"");if(function(e){return"string"==typeof e.err}(o))return console.error(o.err);A(e,o)}(e,t);if(!o)return;e.setState("is-source-processing",!0);const n=i(function(e){return~e.indexOf("/")?e:"/media/"+e}(o));fetch(n).then(async t=>t.ok?A(e,await t.json()):function(e,t,o,n){e.setState("is-source-processing",!1);const r=new FlowplayerError(n.message||"error loading ovp source",function(e){const t="03-"+e;return t in P?t:b.NetworkUnknown}(o),{resource:t,isFatal:!0,retryOpts:{retry:E}});e.emit("flowplayer:error",{error:r})}(e,t.url,t.status,await t.json()))}function A(e,t){return e.emit("ovp:media:changed",t),function(e){return Array.isArray(e.playlist)}(t)?function(e,t){e.emit("ovp:request:playlist:complete",function(e,t){"number"!=typeof t.delay&&"number"!=typeof e.delay&&(t.delay=5);const n=Object.assign({},e),r=(null==e?void 0:e.playlist)||{},a=o(t,r),i=((null==a?void 0:a.playlist)||[]).map(e=>{t.ima&&Object.assign(e,{ima:t.ima});const o=l(e,n);return delete o.playlist,o});return delete a.ima,Object.assign(a,{playlist:i})}(e.opts,t))}(e,t):h(t)?function(e,t){var o,n;const r=(null===(o=null==t?void 0:t.metadata)||void 0===o?void 0:o.live_start_time)||(null===(n=null==t?void 0:t.metadata)||void 0===n?void 0:n.starttime);r&&(t.live_start_time=Pipe.of(r).fmap(w).unwrap());e.emit("ovp:live:countdown:start",Pipe.of(t).fmap(l,e.opts).unwrap())}(e,t):function(e,t){e.emit("ovp:request:media:complete",Pipe.of(t).fmap(l,e.opts).unwrap())}(e,t)}const N={};function _(e,t,o){"object"!=typeof N[t]&&(N[t]=o);const n=e.opts,r=(null==n?void 0:n.metadata)||{};r.player_id=t,n.metadata=r,o.title&&delete o.title,o.description&&delete o.description;const a=Object.assign(n,o);e.setOpts(a),o.autoplay&&e.togglePlay(!0)}let M=!1;function S(e,t,o){O()||Pipe.of("recommendation").fmap(i,t,o).fmap(a).fmap(t=>t.then(t=>function(e,t){const o=t.playlist;if(e.opts.recommendations=o,!o.length)return;e.emit("recommendationsready",{playlist:o.map((function(e){var t,o;return{poster:e.poster,src:e.src,title:null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.title,description:null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.description,metadata:e.metadata||{},chapters:e.chapters,thumbnails:e.thumbnails,subtitles:e.subtitles}}))})}(e,t)).catch(D))}function O(){return M}function D(e){M=!0,console.error("Failed to load recommendations: %j",e)}function L(e){const t="number"==typeof e?e:parseInt(e,10);return(t>9?"":"0")+t}function T(e,t){const o=e._customElements.get(t);return o&&e.root.querySelector(o)||void 0}const F="flowplayer-live-countdown";function R(e){const t=Date.now()-(e.server_time_offset||0);return Math.floor(((e.live_start_time||0)-t)/1e3)}function I(e,t){let o=0;function n(){const n=R(t);if(n<0||isNaN(n)||0===e.reaper||void 0===t.live_start_time)return clearInterval(o),function(e,t,o){e.emit("ovp:live:countdown:complete");const n=T(e,F);if(n&&n.remove(),e.root.classList.remove("is-livecountdown"),o)return e.setState("is-source-processing",!1);e.emit("ovp:request:media:complete",t)}(e,t,void 0===t.live_start_time);var r,a,i;r=e,a=e.root,i=n,a.classList.add("is-livecountdown"),r.emit("ovp:live:countdown:tick",{remaining_time:H(i+1)}),r.hasState("is-starting")||r.setState("is-starting",!0)}c(t),n(),o=setInterval(n,250)}function H(e){const t=function(e){"number"!=typeof e&&(e=parseInt(e,10)),e=Math.round(e);const t=Math.floor(e/86400);e-=86400*t;const o=Math.floor(e/3600);e-=3600*o;const n=Math.floor(e/60);return{days:t,hours:o,minutes:n,seconds:e-=60*n}}(e);let o="";return t.days&&(o+=t.days+":"),o+L(t.hours)+":"+L(t.minutes)+":"+L(t.seconds)}class WebsocketBridge{static of(e){return new WebsocketBridge(e)}constructor(e){this.manualDisconnect=!1,this.video=e,this.onClose=this.onClose.bind(this),this.onMessage=this.onMessage.bind(this)}connect(e){this.client=new WebSocket("wss://player.ws.flowplayer.com?mediaId="+e),this.current_media_id=e,this.wireup()}onClose(){this.manualDisconnect?this.manualDisconnect=!1:this.current_media_id&&this.reconnect(this.current_media_id)}onMessage(e){JSON.parse(e.data).forEach(e=>{this.video.emit("ovp:message:realtime",e)})}reconnect(e){this.cleanup(),this.connect(e)}wireup(){this.client&&(this.client.addEventListener("message",this.onMessage),this.client.addEventListener("close",this.onClose))}cleanup(){this.client&&(this.client.removeEventListener("message",this.onMessage),this.client.removeEventListener("close",this.onClose),this.client=void 0)}disconnect(){this.client&&(this.manualDisconnect=!0,this.client.close())}}const U=(e,t)=>new(((e,t)=>{const o=e.get(t);if(!o)throw new Error(`no flowplayer component with the name ${t} exists`);const n=window.customElements.get(t);if(!n)throw new Error(`no default flowplayer component with the name ${t} exists`);const r=window.customElements.get(o);return"function"!=typeof r?n:r})(e._customElements,t))(e);class FlowplayerComponent extends HTMLElement{constructor(e){super(),this.player=e}}class FlowplayerLiveCountdown extends FlowplayerComponent{constructor(e){super(e),this.classList.add("fp-livecountdown");const t=function(...e){const t=document.createElement("div");return 0==e.length||t.classList.add(...e),t}("fp-inner");this.append(t);const o=document.createElement("p");o.innerText=e.i18n("ovp.starting_in"),t.append(o);const n=document.createElement("p");n.classList.add("fp-countdown"),t.append(n),e.on("ovp:live:countdown:tick",t=>{const o=t.detail.remaining_time;e.root.classList.add("is-livecountdown"),n.innerText=o})}}const j=["*.lwcdn.com","*.flowplayer.com","*.wowza.com"];function x(){try{return window.location.hostname!==window.parent.location.hostname?function(e){const t=document.createElement("a");return t.href=e,t}(document.referrer).hostname:document.location.hostname}catch(e){return window.location.hostname}}function V(e){const t=document.createElement("a");t.href=e;const o=t.pathname&&t.pathname.split(".");return o.length>1&&o[o.length-1]}function q(e){switch(e){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return e}}const K=t=>{var{src:o}=t,n=e(t,["src"]);return[Object.assign({src:o,type:o?q("video/"+V(o)):""},n)]};function B(e){return K({src:e})}function z(t){var{src:o,type:n}=t,r=e(t,["src","type"]);return o&&n?[Object.assign({src:o,type:n},r)]:n&&!o?[Object.assign({type:n},r)]:K(Object.assign({src:o},r))}var W,G;!function(e){e[e.Err=0]="Err",e[e.Ok=1]="Ok"}(W||(W={}));const $=((G=class OVP{constructor(e){((e,t,o)=>{window.customElements.get(t)||window.customElements.define(t,o),e.customElements.get(t)||e.customElements.set(t,t)})(e,F,FlowplayerLiveCountdown)}onload(e,t,o,n){if("string"==typeof(null==n?void 0:n.src))return"string"!=typeof e.player_id||0===n.src.indexOf(e.player_id)||f(n)||(n.src=[e.player_id,n.src].join("/")),C(o,n)}wants(e,t,o){return y(e,t)}init(t,n,r){const s=new WebsocketBridge(r);let c=Object.assign({},t);const l=function(e){if(!c)return e;t.autoplay!==c.autoplay&&(c.autoplay=t.autoplay),delete c.src;const n=o(e,c);return r.emit("ovp:config:finalized",n),n};r.on("src",()=>{(r.currentSrc||r.root.classList.contains("is-livecountdown"))&&(c=!1)}),r.on("ovp:request:start",(function(){r.setState("is-waiting",!0),t.recommendations&&(t.recommendations=!1)})),r.on("ovp:media:changed",(function({data:e}){var t;const o=null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.media_id;(null==e?void 0:e.live)&&o&&(s.disconnect(),s.connect(o))})),r.on("ovp:message:realtime",(function({data:e}){var o;const n=null==e?void 0:e.event,a=null==e?void 0:e.value,i=r.opt("metadata",{live_start_time:""});switch(n){case"METADATA":{const e=Object.assign(i,a),n=Object.assign(t,{metadata:e});n.live&&(null===(o=null==n?void 0:n.metadata)||void 0===o?void 0:o.live_start_time)&&(n.live_start_time=w(n.metadata.live_start_time)),r.setOpts(n);break}}})),r.on("beforeplay",(function(e){const o=t;if(h(o)){if(Q(o))return;e.preventDefault()}})),r.on("ovp:request:media:complete",(function(e){const t=e.data;if(!t)return;var o;if(t.src&&(t.src=(o=t.src,"string"==typeof o?B(o):Array.isArray(o)||"object"!=typeof o?o.reduce((function(e,t){return"string"==typeof t&&(t=B(t)),"object"!=typeof t||Array.isArray(t)||(t=z(t)),e.concat(t)}),[]):z(o)).map(e=>(e.src&&e.src.startsWith("//")&&(e.src="https:"+e.src),e))),0==r.reaper||"object"!=typeof t||R(t)>0)return;const n=l(t);r.setOpts(n),r.setAttrs(n),n.src&&r.setSrc(n.src),r.setState("is-source-processing",!1)})),r.on("config",(function({data:e}){var o,s;if("string"==typeof t.src&&y(t.src,{}))return;if((null==e?void 0:e.domains)&&(null==e?void 0:e.domains.length)&&!((e,t)=>{const o=e.split(".").reverse();return t.concat(j).some(e=>{const t=e.split(".").reverse(),n="*"===t[t.length-1];return n&&t.pop(),(n||t.length===o.length)&&t.every((e,t)=>o[t]===e)})})(x(),e.domains))return function({root:e,video:t,data:o}){t&&t.destroy(),console.error(new Error(o.details||o.reason)),e.innerHTML="",e.classList.remove("flowplayer"),e.classList.add("flowplayer-fatal"),e.style.removeProperty("background-image");const n=document.createElement("h2");n.textContent="Playback Error";const r=document.createElement("p");r.textContent="Are you the site owner?";const a=document.createElement("a");a.classList.add("troubleshoot"),a.target="_blank",a.href="https://docs.flowplayer.com/troubleshooting/player#"+o.reason,a.textContent="Troubleshoot?";const i=document.createElement("img");i.src="https://flowplayer.com/user/pages/images/logo-white.png",e.append(n,r,a,i)}({root:n,video:r,data:{details:`Hostname ${x()} is not allowed to load player ${null===(o=e.metadata)||void 0===o?void 0:o.player_id}.`,reason:"domain"}});if(t.src&&J(t.src))return;const c=null==e?void 0:e.brand_color;return c&&r.root.style.setProperty("--fp-brand-color","#"==c[0]?c:"#"+c),"string"==typeof t.player_id&&(null===(s=null==t?void 0:t.metadata)||void 0===s?void 0:s.player_id)!==t.player_id?function(e,t){if("object"==typeof N[t])return console.debug("using Cache(%s)",t),_(e,t,N[t]);Pipe.of(t).fmap(i).fmap(a).fmap(o=>o.then(o=>_(e,t,o)).catch(console.error))}(r,t.player_id):void 0})),r.on("ovp:request:playlist:complete",(function(t){var o;const n=t.data;if(!n||0==r.reaper)return;const{playlist:a}=n,i=e(n,["playlist"]),s=l(Object.assign(i,{playlist:Object.assign({},i)}));Array.isArray(s.playlist)&&(s.playlist=i),delete s.loop,s.playlist.playlist_title||(s.playlist.playlist_title=null===(o=i.metadata)||void 0===o?void 0:o.playlist_title),r.setOpts(s),r.setAttrs(s);const c={type:"flowplayer/playlist",items:a};r.setSrc(c),r.setState("is-source-processing",!1)})),r.on("ovp:live:countdown:start",(function(e){const o=e.data;if(!o||0==r.reaper)return;const a=l(o);if(r.setOpts(a),r.setAttrs(a),R(o)<=0)return r.emit("ovp:request:media:complete",o);T(r,F)||(n.appendChild(U(r,F)),I(r,t))})),r.on("timeupdate",(function(){var e,o,n;const a=t;h(a)?Q(a)||(r.togglePlay(!1),r.emit("ended")):t.recommendations&&(null===(e=null==t?void 0:t.metadata)||void 0===e?void 0:e.media_id)&&(Array.isArray(t.recommendations)||r.currentTime/r.duration<.8||O()||(null===(o=null==t?void 0:t.metadata)||void 0===o?void 0:o.media_id)&&(null===(n=null==t?void 0:t.metadata)||void 0===n?void 0:n.player_id)&&S(r,t.metadata.media_id,t.metadata.player_id))})),r.on("reap",(function(){s.disconnect()}))}}).pluginName="ovp",G.events=k,G);function Q(e){var t,o;const n=null===(t=null==e?void 0:e.metadata)||void 0===t?void 0:t.live_stop_time;if(!n)return!0;return!!(null===(o=null==e?void 0:e.metadata)||void 0===o?void 0:o.allow_after_stop_time)||w(n)>Date.now()}const J=e=>{var t;if(e&&Array.isArray(e))return"object"==typeof e[0]&&"ovp/base64"===(null===(t=e[0])||void 0===t?void 0:t.type)};return function(e,t){if("object"==typeof exports&&"undefined"!=typeof module)return t;if(null===document.currentScript)return t;"flowplayer"in e||(e.flowplayer={extensions:[]});const o=e.flowplayer;return"function"==typeof o?(o(t),t):(Array.isArray(o.extensions)||(o.extensions=[]),~o.extensions.indexOf(t)||o.extensions.push(t),t)}(window,$)}));
@@ -1456,7 +1456,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1456
1456
  */
1457
1457
  declare type PlayerWith<T> = T & Player;
1458
1458
 
1459
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1459
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1460
+ /* Excluded from this release type: on */
1461
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1460
1462
  opts: PluginConfig;
1461
1463
  setOpts: (config: PluginConfig) => void;
1462
1464
  };
@@ -1407,7 +1407,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1407
1407
  */
1408
1408
  declare type PlayerWith<T> = T & Player;
1409
1409
 
1410
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1410
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1411
+ /* Excluded from this release type: on */
1412
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1411
1413
  opts: PluginConfig;
1412
1414
  setOpts: (config: PluginConfig) => void;
1413
1415
  };
package/plugins/qsel.d.ts CHANGED
@@ -1402,7 +1402,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1402
1402
  */
1403
1403
  declare type PlayerWith<T> = T & Player;
1404
1404
 
1405
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1405
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1406
+ /* Excluded from this release type: on */
1407
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1406
1408
  opts: PluginConfig;
1407
1409
  setOpts: (config: PluginConfig) => void;
1408
1410
  };
package/plugins/qul.d.ts CHANGED
@@ -1395,7 +1395,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1395
1395
  */
1396
1396
  declare type PlayerWith<T> = T & Player;
1397
1397
 
1398
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1398
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1399
+ /* Excluded from this release type: on */
1400
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1399
1401
  opts: PluginConfig;
1400
1402
  setOpts: (config: PluginConfig) => void;
1401
1403
  };
package/plugins/rts.d.ts CHANGED
@@ -1601,7 +1601,9 @@ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1601
1601
  */
1602
1602
  declare type PlayerWith<T> = T & Player;
1603
1603
 
1604
- declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = Omit<PluginPlayer, "opts" | "setOpts"> & {
1604
+ declare type PlayerWithOpts<PluginPlayer extends Player = Player, PluginConfig extends Config = Config> = {
1605
+ /* Excluded from this release type: on */
1606
+ } & Omit<PluginPlayer, "opts" | "setOpts"> & {
1605
1607
  opts: PluginConfig;
1606
1608
  setOpts: (config: PluginConfig) => void;
1607
1609
  };