@flowplayer/player 3.32.2-rc → 3.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core.js +1 -1
- package/default.js +1 -1
- package/embed.js +2 -2
- package/flowplayer.css +1 -1
- package/index.d.ts +8 -2
- package/package.json +1 -1
- package/plugins/ads.d.ts +8 -2
- package/plugins/ads.js +1 -1
- package/plugins/airplay.d.ts +8 -2
- package/plugins/analytics.d.ts +8 -2
- package/plugins/analytics.js +1 -1
- package/plugins/asel.d.ts +8 -2
- package/plugins/audio.d.ts +8 -2
- package/plugins/chapters.d.ts +8 -2
- package/plugins/chromecast.d.ts +8 -2
- package/plugins/comscore.d.ts +8 -2
- package/plugins/consent.d.ts +8 -2
- package/plugins/context-menu.d.ts +8 -2
- package/plugins/cuepoints.d.ts +8 -2
- package/plugins/dash.d.ts +8 -2
- package/plugins/dash.js +1 -1
- package/plugins/drm.d.ts +8 -2
- package/plugins/endscreen.d.ts +8 -2
- package/plugins/fas.d.ts +8 -2
- package/plugins/float-on-scroll.d.ts +8 -2
- package/plugins/ga4.d.ts +8 -2
- package/plugins/gemius.d.ts +8 -2
- package/plugins/google-analytics.d.ts +8 -2
- package/plugins/hls.d.ts +8 -2
- package/plugins/id3.d.ts +8 -2
- package/plugins/iframe.d.ts +8 -2
- package/plugins/keyboard.d.ts +8 -2
- package/plugins/media-session.d.ts +8 -2
- package/plugins/message.d.ts +8 -2
- package/plugins/ovp.d.ts +8 -2
- package/plugins/playlist.d.ts +8 -2
- package/plugins/preview.d.ts +8 -2
- package/plugins/qsel.d.ts +23 -2
- package/plugins/qsel.js +1 -1
- package/plugins/qul.d.ts +8 -2
- package/plugins/rts.d.ts +8 -2
- package/plugins/rts.js +1 -1
- package/plugins/share.d.ts +8 -2
- package/plugins/speed.d.ts +8 -2
- package/plugins/ssai.d.ts +8 -2
- package/plugins/ssai.js +1 -1
- package/plugins/subtitles.d.ts +8 -2
- package/plugins/thumbnails.d.ts +8 -2
- package/plugins/tizen.d.ts +8 -2
- package/plugins/vtsel.d.ts +8 -2
- package/plugins/webos.d.ts +8 -2
- package/util/loader.d.ts +8 -2
package/plugins/airplay.d.ts
CHANGED
|
@@ -967,6 +967,8 @@ declare class I18n implements Plugin_2 {
|
|
|
967
967
|
};
|
|
968
968
|
};
|
|
969
969
|
init(config: Config, _root: never, video: Player): void;
|
|
970
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
971
|
+
/* Excluded from this release type: languagesLoaded */
|
|
970
972
|
}
|
|
971
973
|
|
|
972
974
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1648,8 +1650,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1648
1650
|
* @public
|
|
1649
1651
|
*/
|
|
1650
1652
|
declare type QualityChangeEventDetail = {
|
|
1651
|
-
before?: Level
|
|
1652
|
-
|
|
1653
|
+
before?: (Level & {
|
|
1654
|
+
level?: number;
|
|
1655
|
+
}) | Representation;
|
|
1656
|
+
after: (Level & {
|
|
1657
|
+
level?: number;
|
|
1658
|
+
}) | Representation;
|
|
1653
1659
|
plugin: string;
|
|
1654
1660
|
automatic: boolean;
|
|
1655
1661
|
/* Excluded from this release type: downscale */
|
package/plugins/analytics.d.ts
CHANGED
|
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
|
|
|
961
961
|
};
|
|
962
962
|
};
|
|
963
963
|
init(config: Config, _root: never, video: Player): void;
|
|
964
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
965
|
+
/* Excluded from this release type: languagesLoaded */
|
|
964
966
|
}
|
|
965
967
|
|
|
966
968
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1642
1644
|
* @public
|
|
1643
1645
|
*/
|
|
1644
1646
|
declare type QualityChangeEventDetail = {
|
|
1645
|
-
before?: Level
|
|
1646
|
-
|
|
1647
|
+
before?: (Level & {
|
|
1648
|
+
level?: number;
|
|
1649
|
+
}) | Representation;
|
|
1650
|
+
after: (Level & {
|
|
1651
|
+
level?: number;
|
|
1652
|
+
}) | Representation;
|
|
1647
1653
|
plugin: string;
|
|
1648
1654
|
automatic: boolean;
|
|
1649
1655
|
/* Excluded from this release type: downscale */
|
package/plugins/analytics.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.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;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={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}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}}var o;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 d="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 c=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(d(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 d(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(c(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"];const R=100,q=1e3;function A(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/R;return{segment_duration:t,breakpoints:Array(...Array(R)).map(function(e,r){return Math.floor(r*t*q)/q})}}(e.duration))}function S(e,t,r){if(!t.segment_duration&&!A(e,t))return;const n=function(e,t,r){const n=t.last_idx,i=r?99:O(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 O(e,t){return Math.min(Math.floor(e.currentTime/t.segment_duration),99)}function b(){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 N;const Q="vod",x="live",L=[k,y,g];function I(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 S(e,t,"boolean"==typeof r&&r)}}function M(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 P=((N=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1},i={locked:void 0,ttl:6e3,task:()=>{I(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.32.2-rc"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:L,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&&i.stream_target_id&&(i.media_id=i.stream_target_id),!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)?x:Q;a.put({video_type:u,source:e.source||b()||""}),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=M(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||M(r)||n.ended||(!e.live&&r.currentTime+.25>=r.duration&&I(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){A(e,t),t.last_idx=O(e,t)}(r,n.ticker)}),r.on("ended",function(){a&&function(e,t){t.ended||(t.ended=!0,I(e,t.ticker))}(r,n)})}}).pluginName="analytics",N),C=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:{},P);return C});
|
|
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;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={})=>{var i;if(null===(i=this.emitter)||void 0===i?void 0:i.hasState("consent-no-tracking"))return;const a=e(o.metadata,{event_type:t},r.data||r),s=function(e,t){return e.replace(n,e=>{const r=e.slice(1,e.length);return r in t?t[r].toString():e})}(o.url,a),u=Tracker.pluck_valid_keys(o,a),d=Tracker.ensure_required_keys(o,u);if(d.length)return o.log.error(`Tracker.validate_metadata() failed for\n Event[${t}]\n missing keys: ${d}\n payload:\n ${JSON.stringify(u,null,2)}`);this.rq&&RequestQueue.rpush(this.rq,[s,this.verb,u])})})}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}}var o;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 d="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 c=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(d(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 d(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(c(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"];const R=100,q=1e3;function A(e,t){return e.duration/1===e.duration&&Object.assign(t,function(e){const t=e/R;return{segment_duration:t,breakpoints:Array(...Array(R)).map(function(e,r){return Math.floor(r*t*q)/q})}}(e.duration))}function S(e,t,r){if(!t.segment_duration&&!A(e,t))return;const n=function(e,t,r){const n=t.last_idx,i=r?99:O(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 O(e,t){return Math.min(Math.floor(e.currentTime/t.segment_duration),99)}function b(){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 N;const Q="vod",x="live",L=[k,y,g];function I(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 S(e,t,"boolean"==typeof r&&r)}}function M(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 P=((N=class Analytics{init(e,t,r){if(!h.from_token(e.token||"").is_granted(h.permissions.ANALYTICS))return;if(r.analytics)return;const n=r.analytics={ticker:void 0,last_media_id:"",ended:!1,played:!1},i={locked:void 0,ttl:6e3,task:()=>{I(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.33.0"},a=Tracker.of(r,{verb:Tracker.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:L,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&&i.stream_target_id&&(i.media_id=i.stream_target_id),!i.media_id)return n.last_media_id="";if(n.last_media_id===i.media_id)return;n.played=!1,n.last_media_id=i.media_id;const o=m(e,"analytics",{});a.put(i),a.put(o);const s=m(e,"metadata.live_start_time",e.live)?x:Q;a.put({video_type:s,source:e.source||b()||""}),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||n.played||!n.last_media_id)return;a.put({muted:r.muted});const e=M(r);if(e)return s=Promise.resolve(e).then(function(){n.played=!0,r.emit(g),s=0}).catch(function(){s=0});n.played=!0,r.emit(g)}),r.on("timeupdate",function(){var t;a&&(s||M(r)||n.ended||!n.last_media_id||(!e.live&&r.currentTime+.25>=r.duration&&I(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.last_media_id&&n.ticker&&"vod"==n.ticker.kind&&function(e,t){A(e,t),t.last_idx=O(e,t)}(r,n.ticker)}),r.on("ended",function(){a&&n.last_media_id&&function(e,t){t.ended||(t.ended=!0,I(e,t.ticker))}(r,n)})}}).pluginName="analytics",N),C=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:{},P);return C});
|
package/plugins/asel.d.ts
CHANGED
|
@@ -1078,6 +1078,8 @@ declare class I18n implements Plugin_2 {
|
|
|
1078
1078
|
};
|
|
1079
1079
|
};
|
|
1080
1080
|
init(config: Config, _root: never, video: Player): void;
|
|
1081
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
1082
|
+
/* Excluded from this release type: languagesLoaded */
|
|
1081
1083
|
}
|
|
1082
1084
|
|
|
1083
1085
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1759,8 +1761,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1759
1761
|
* @public
|
|
1760
1762
|
*/
|
|
1761
1763
|
declare type QualityChangeEventDetail = {
|
|
1762
|
-
before?: Level
|
|
1763
|
-
|
|
1764
|
+
before?: (Level & {
|
|
1765
|
+
level?: number;
|
|
1766
|
+
}) | Representation;
|
|
1767
|
+
after: (Level & {
|
|
1768
|
+
level?: number;
|
|
1769
|
+
}) | Representation;
|
|
1764
1770
|
plugin: string;
|
|
1765
1771
|
automatic: boolean;
|
|
1766
1772
|
/* Excluded from this release type: downscale */
|
package/plugins/audio.d.ts
CHANGED
|
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
|
|
|
961
961
|
};
|
|
962
962
|
};
|
|
963
963
|
init(config: Config, _root: never, video: Player): void;
|
|
964
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
965
|
+
/* Excluded from this release type: languagesLoaded */
|
|
964
966
|
}
|
|
965
967
|
|
|
966
968
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1642
1644
|
* @public
|
|
1643
1645
|
*/
|
|
1644
1646
|
declare type QualityChangeEventDetail = {
|
|
1645
|
-
before?: Level
|
|
1646
|
-
|
|
1647
|
+
before?: (Level & {
|
|
1648
|
+
level?: number;
|
|
1649
|
+
}) | Representation;
|
|
1650
|
+
after: (Level & {
|
|
1651
|
+
level?: number;
|
|
1652
|
+
}) | Representation;
|
|
1647
1653
|
plugin: string;
|
|
1648
1654
|
automatic: boolean;
|
|
1649
1655
|
/* Excluded from this release type: downscale */
|
package/plugins/chapters.d.ts
CHANGED
|
@@ -970,6 +970,8 @@ declare class I18n implements Plugin_2 {
|
|
|
970
970
|
};
|
|
971
971
|
};
|
|
972
972
|
init(config: Config, _root: never, video: Player): void;
|
|
973
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
974
|
+
/* Excluded from this release type: languagesLoaded */
|
|
973
975
|
}
|
|
974
976
|
|
|
975
977
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1651,8 +1653,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1651
1653
|
* @public
|
|
1652
1654
|
*/
|
|
1653
1655
|
declare type QualityChangeEventDetail = {
|
|
1654
|
-
before?: Level
|
|
1655
|
-
|
|
1656
|
+
before?: (Level & {
|
|
1657
|
+
level?: number;
|
|
1658
|
+
}) | Representation;
|
|
1659
|
+
after: (Level & {
|
|
1660
|
+
level?: number;
|
|
1661
|
+
}) | Representation;
|
|
1656
1662
|
plugin: string;
|
|
1657
1663
|
automatic: boolean;
|
|
1658
1664
|
/* Excluded from this release type: downscale */
|
package/plugins/chromecast.d.ts
CHANGED
|
@@ -1024,6 +1024,8 @@ declare class I18n implements Plugin_2 {
|
|
|
1024
1024
|
};
|
|
1025
1025
|
};
|
|
1026
1026
|
init(config: Config, _root: never, video: Player): void;
|
|
1027
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
1028
|
+
/* Excluded from this release type: languagesLoaded */
|
|
1027
1029
|
}
|
|
1028
1030
|
|
|
1029
1031
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1707,8 +1709,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1707
1709
|
* @public
|
|
1708
1710
|
*/
|
|
1709
1711
|
declare type QualityChangeEventDetail = {
|
|
1710
|
-
before?: Level
|
|
1711
|
-
|
|
1712
|
+
before?: (Level & {
|
|
1713
|
+
level?: number;
|
|
1714
|
+
}) | Representation;
|
|
1715
|
+
after: (Level & {
|
|
1716
|
+
level?: number;
|
|
1717
|
+
}) | Representation;
|
|
1712
1718
|
plugin: string;
|
|
1713
1719
|
automatic: boolean;
|
|
1714
1720
|
/* Excluded from this release type: downscale */
|
package/plugins/comscore.d.ts
CHANGED
|
@@ -961,6 +961,8 @@ declare class I18n implements Plugin_2 {
|
|
|
961
961
|
};
|
|
962
962
|
};
|
|
963
963
|
init(config: Config, _root: never, video: Player): void;
|
|
964
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
965
|
+
/* Excluded from this release type: languagesLoaded */
|
|
964
966
|
}
|
|
965
967
|
|
|
966
968
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1642,8 +1644,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1642
1644
|
* @public
|
|
1643
1645
|
*/
|
|
1644
1646
|
declare type QualityChangeEventDetail = {
|
|
1645
|
-
before?: Level
|
|
1646
|
-
|
|
1647
|
+
before?: (Level & {
|
|
1648
|
+
level?: number;
|
|
1649
|
+
}) | Representation;
|
|
1650
|
+
after: (Level & {
|
|
1651
|
+
level?: number;
|
|
1652
|
+
}) | Representation;
|
|
1647
1653
|
plugin: string;
|
|
1648
1654
|
automatic: boolean;
|
|
1649
1655
|
/* Excluded from this release type: downscale */
|
package/plugins/consent.d.ts
CHANGED
|
@@ -987,6 +987,8 @@ declare class I18n implements Plugin_2 {
|
|
|
987
987
|
};
|
|
988
988
|
};
|
|
989
989
|
init(config: Config, _root: never, video: Player): void;
|
|
990
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
991
|
+
/* Excluded from this release type: languagesLoaded */
|
|
990
992
|
}
|
|
991
993
|
|
|
992
994
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1668,8 +1670,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1668
1670
|
* @public
|
|
1669
1671
|
*/
|
|
1670
1672
|
declare type QualityChangeEventDetail = {
|
|
1671
|
-
before?: Level
|
|
1672
|
-
|
|
1673
|
+
before?: (Level & {
|
|
1674
|
+
level?: number;
|
|
1675
|
+
}) | Representation;
|
|
1676
|
+
after: (Level & {
|
|
1677
|
+
level?: number;
|
|
1678
|
+
}) | Representation;
|
|
1673
1679
|
plugin: string;
|
|
1674
1680
|
automatic: boolean;
|
|
1675
1681
|
/* Excluded from this release type: downscale */
|
|
@@ -968,6 +968,8 @@ declare class I18n implements Plugin_2 {
|
|
|
968
968
|
};
|
|
969
969
|
};
|
|
970
970
|
init(config: Config, _root: never, video: Player): void;
|
|
971
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
972
|
+
/* Excluded from this release type: languagesLoaded */
|
|
971
973
|
}
|
|
972
974
|
|
|
973
975
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1656,8 +1658,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1656
1658
|
* @public
|
|
1657
1659
|
*/
|
|
1658
1660
|
declare type QualityChangeEventDetail = {
|
|
1659
|
-
before?: Level
|
|
1660
|
-
|
|
1661
|
+
before?: (Level & {
|
|
1662
|
+
level?: number;
|
|
1663
|
+
}) | Representation;
|
|
1664
|
+
after: (Level & {
|
|
1665
|
+
level?: number;
|
|
1666
|
+
}) | Representation;
|
|
1661
1667
|
plugin: string;
|
|
1662
1668
|
automatic: boolean;
|
|
1663
1669
|
/* Excluded from this release type: downscale */
|
package/plugins/cuepoints.d.ts
CHANGED
|
@@ -1085,6 +1085,8 @@ declare class I18n implements Plugin_2 {
|
|
|
1085
1085
|
};
|
|
1086
1086
|
};
|
|
1087
1087
|
init(config: Config, _root: never, video: Player): void;
|
|
1088
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
1089
|
+
/* Excluded from this release type: languagesLoaded */
|
|
1088
1090
|
}
|
|
1089
1091
|
|
|
1090
1092
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1766,8 +1768,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1766
1768
|
* @public
|
|
1767
1769
|
*/
|
|
1768
1770
|
declare type QualityChangeEventDetail = {
|
|
1769
|
-
before?: Level
|
|
1770
|
-
|
|
1771
|
+
before?: (Level & {
|
|
1772
|
+
level?: number;
|
|
1773
|
+
}) | Representation;
|
|
1774
|
+
after: (Level & {
|
|
1775
|
+
level?: number;
|
|
1776
|
+
}) | Representation;
|
|
1771
1777
|
plugin: string;
|
|
1772
1778
|
automatic: boolean;
|
|
1773
1779
|
/* Excluded from this release type: downscale */
|
package/plugins/dash.d.ts
CHANGED
|
@@ -1032,6 +1032,8 @@ declare class I18n implements Plugin_2 {
|
|
|
1032
1032
|
};
|
|
1033
1033
|
};
|
|
1034
1034
|
init(config: Config, _root: never, video: Player): void;
|
|
1035
|
+
/* Excluded from this release type: _nonLanguageFields */
|
|
1036
|
+
/* Excluded from this release type: languagesLoaded */
|
|
1035
1037
|
}
|
|
1036
1038
|
|
|
1037
1039
|
declare const IN_VIEWPORT = "is-in-viewport";
|
|
@@ -1715,8 +1717,12 @@ QUALITY_CHANGE = "qualitychange";
|
|
|
1715
1717
|
* @public
|
|
1716
1718
|
*/
|
|
1717
1719
|
declare type QualityChangeEventDetail = {
|
|
1718
|
-
before?: Level
|
|
1719
|
-
|
|
1720
|
+
before?: (Level & {
|
|
1721
|
+
level?: number;
|
|
1722
|
+
}) | Representation;
|
|
1723
|
+
after: (Level & {
|
|
1724
|
+
level?: number;
|
|
1725
|
+
}) | Representation;
|
|
1720
1726
|
plugin: string;
|
|
1721
1727
|
automatic: boolean;
|
|
1722
1728
|
/* Excluded from this release type: downscale */
|